# shellcheck shell=bash # Part of JoeyLib, Copyright (c) 2026 Scott Duensing, under the MIT License. # See LICENSE.md for license information. # SPDX-License-Identifier: MIT # # Furnace, tildearrow's open-source multi-system chiptune tracker (GPLv2 or # later), the recommended tool for JoeyLib's chip-tracker music # (docs/Assets.adoc, "Content Creation Tools"): write the song for the TI # SN76489 (or the AY-3-8910 / YM2149), export it as VGM, and # tools/vgm2song turns that into a .song for tools/songbake. Its own Linux # x86_64 release, unpacked into toolchains/opt/furnace. Nothing builds with # it, so no group installs it: ./install.sh install furnace. # scripts/check-vgm.sh exports the SN76489 and AY demo songs it comes with # through it when it is installed. # # Furnace keeps its settings in ~/.config/furnace; the gates run it with HOME # pointed at their work folder so they leave none. compDescription="content: Furnace 0.6.8.3 chiptune tracker (optional; chip-tracker music, docs/Assets.adoc)" compGroups="optional" compRequires="host" compHostDeps="gl-dev asound-dev x11-dev" compUrl="https://github.com/tildearrow/furnace/releases/download/v0.6.8.3/furnace-0.6.8.3-linux-x86_64.tar.gz" compSha256="298a4e30bbdfe5ad88ed7f3bd90bd657a3f0b2e6e7dfc2091663dda71424d555" compPin="$compSha256" compInstall() { local archive archive="$(fetchFile "$compUrl" "$compSha256")" rm -rf "$compDir" extractArchive "$archive" "$compDir" 1 } compInstalled() { [ -x "$compDir/furnace" ] && [ -d "$compDir/demos" ] } # It starts and knows VGM export (its settings go to a scratch home). compVerify() { local tmp local usage tmp="$(mktemp -d)" usage="$(HOME="$tmp" "$compDir/furnace" -help 2>&1 || true)" rm -rf "$tmp" [[ "$usage" == *"-vgmout"* ]] } compEnv() { envVar FURNACE "$compDir/furnace" envVar FURNACE_DEMOS "$compDir/demos" }