# Furnace: a multi-system chiptune tracker that loads DefleMask modules

> Furnace emulates dozens of sound chips inside one tracker and can open and save DefleMask .dmf modules. It is aimed at chip musicians who want one tool across many platforms, and it is GPL licensed.

**tildearrow/furnace** — a multi-system chiptune tracker compatible with DefleMask modules

- Repository: https://github.com/tildearrow/furnace
- Stars: 3,849 · Forks: 327
- Language: C++
- License: NOASSERTION
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/tildearrow-furnace

## What Furnace is for, and who ends up using it

Furnace is a tracker for composing music that targets real sound chips rather than a single generic synthesizer. The README describes it as a multi-system chiptune tracker and lists the chips it emulates, from Yamaha FM parts such as the YM2151, YM2612 and YMF262 through square wave chips like the AY-3-8910 and TI SN76489 to sample and wavetable chips including the SNES, Amiga, SegaPCM, HuC6280 and NES. That breadth is the point: a composer who writes for a Sega Genesis and a PC Engine in the same week does not have to keep two trackers open.

The secondary purpose is compatibility. Furnace loads DefleMask .dmf modules from all versions the README lists, beta 1 to 1.2.0, and saves them in both modern and legacy form, which lets it act as a module downgrader. It also reads and writes .dmp instruments and .dmw wavetables. That matters to anyone who has a back catalogue of DefleMask files and a target platform that only accepts an older format. The README states the compatibility work is a clean-room design using guesswork and ABX tests, with no decompilation, and that some bugs and quirks are reproduced behind compatibility flags.

## How the chip abstraction works in practice

The architecture visible from the repository is a tracker core plus a set of emulation cores. The README names the cores it uses: Nuked, MAME, SameBoy, Mednafen PCE, NSFplay, puNES, reSID, Stella, SAASound, vgsound_emu and ymfm. Each chip in the feature list is backed by one of these, so playback in the editor is meant to approximate the hardware rather than a simplified software voice.

On top of that sit presets. The README says there are over 200 ready to use presets drawn from computers, game consoles and arcade boards, and that you can create your own, up to 32 chips or 128 channels in total. A module therefore is not tied to one chip: you pick a configuration, and the pattern data addresses the channels that configuration exposes. Export follows the same idea. VGM is the general one, with ZSM for the Commander X16, TIunA for the Atari 2600 and SAP type R for POKEY, plus audio export of the whole song, one chip, or one channel.

The constraint is that a preset is a ceiling. Thirty-two chips and 128 channels is the documented maximum, and the README does not describe what happens when a module exceeds it or how the editor reports that. If your arrangement depends on stacking many chips, that number is the one to check against your song before you build a workflow around it.

## Installing Furnace and opening a first module

The README points to the Releases page for downloads and says binaries are available for Windows, macOS and Linux. On Windows the instruction is to extract the .zip into a new directory. On macOS you drag Furnace into Applications and everything else into a separate directory, then right-click the app and choose Open the first time. Linux is described as similar unless you use a package manager.

If you would rather not use a release archive, several distributions package it. The README lists Flathub, Arch Linux official repositories, Chimera Linux contrib, FreeBSD ports, Nix and openSUSE. For Flatpak the application ID is org.tildearrow.furnace:

```bash
flatpak install flathub org.tildearrow.furnace
flatpak run org.tildearrow.furnace
```

After the app starts, the README's quick start guide lives at doc/1-intro/quickstart.md and the FAQ at doc/1-intro/faq.md. To bring in an existing DefleMask project, use the load command in the file menu and select the .dmf file; the README states that modules from all DefleMask versions, beta 1 to 1.2.0, are supported. To turn a module into an older format, load it and save as .dmf, choosing the legacy option. The README describes this as the downgrader use case.

For other operating systems the README says to build from source and points at the developer info section rather than giving a command. The repository has a CMakeLists.txt at the top level, so a CMake build is the shape of it, but the README does not spell out the exact invocation, so check the developer documentation before assuming flags.

## Where Furnace is the wrong tool

Furnace is a tracker, and trackers ask you to think in patterns, channels and effect columns. If you write music by drawing notes on a piano roll and never want to see a hex column, the workflow will fight you. The README does not describe a piano-roll editing mode, so there is no reason to expect one.

The second limitation is scope. The chip list is long, but a long list is not the same as a complete one, and the README is the authority on what is emulated. If your target hardware is not named there, you are outside the supported set. The README also does not document rollback: if a new release changes how a module plays, there is no described procedure for pinning an older version or reverting a project, so keep your own copies of working files before upgrading. That is a real cost for anyone maintaining a released soundtrack.

The third is the build path. Releases exist for Windows, macOS and Linux, but the README sends other operating systems to the source build and does not give a copy-paste command for it. Anyone on an unlisted platform is doing development work, not installing an application.

## Furnace compared with a single-chip tracker

The obvious alternative is a tracker built around one chip, such as a dedicated NES or Genesis tracker. The difference is in what the file means. A single-chip tracker usually maps its pattern columns directly onto that chip's registers, so the editor can show you exactly what the hardware will do and the file format is close to the hardware. Furnace instead abstracts over many chips and lets a module hold a preset of up to 32 of them, which is why it needs emulation cores and a compatibility layer for DefleMask.

That abstraction buys portability and costs directness. You gain the ability to move between chips and to import and downgrade .dmf files. You lose the guarantee that what you see is what the register dump says, because the editor is running an emulation core, and the README is explicit that the DefleMask compatibility path relies on guesswork and ABX tests rather than a specification. If your goal is bit-exact output for one specific board and you already have a tracker that does that, Furnace's extra layer is not helping you.

## Maintenance, upgrades and the licence question

The repository is not archived, and the last push was on 2026-09-23. Releases are frequent and small: v0.6.8.1 on 2025-04-03, v0.6.8.2 on 2025-05-25 and v0.6.8.3 on 2025-06-12, with the release titles themselves describing fixes and a regression fix. A project that ships regression-fix releases is responding to problems, but it also means a version bump can change playback behaviour, which is exactly why the absence of a documented rollback path matters.

Upgrade cost is mostly your own testing. The README describes compatibility flags for DefleMask quirks, so the things to re-check after an upgrade are the modules that depend on those quirks and anything you exported to VGM, ZSM, TIunA or SAP type R. Nothing in the README describes an automated way to verify an export against a previous version.

On licensing, the README says Furnace is open-source under GPLv2 or later and GPLv3, and the repository carries LICENSE, LICENSE.GPLv2 and LICENSE.GPLv3 files. The metadata for the repository does not resolve to a single SPDX identifier, so read those files yourself before you decide how the terms apply to your distribution. This is not legal advice; it is a pointer to the files that contain the terms.

## Conclusion

Adopt Furnace if you write chip music across several sound chips or need to open and downgrade DefleMask .dmf modules; it runs on Windows, macOS and Linux and is packaged for Arch, Flatpak, FreeBSD, Nix and openSUSE. Skip it if you want a simple one-chip tracker or a tool that does not need a build step, since no official Windows or macOS installer is described and the README points to the Releases page for binaries. Before committing, check the LICENSE file yourself because the repository metadata does not resolve a single licence identifier, and confirm that the .dmf quirks you rely on survive a round trip through the current release.

## FAQ

### Can Furnace open DefleMask .dmf modules?

Yes. The README states that Furnace loads .dmf modules from all DefleMask versions, beta 1 to 1.2.0, and saves them in both modern and legacy form, which lets it act as a module downgrader. It also loads and saves .dmp instruments and .dmw wavetables.

### Which operating systems does Furnace support?

The README says releases are available for Windows, macOS and Linux, and that other operating systems may build the source. It also lists packages for Flathub, Arch Linux, Chimera Linux, FreeBSD, Nix and openSUSE.

### How many sound chips can a Furnace module use at once?

The README states you can create your own presets with up to 32 chips or a total of 128 channels, on top of over 200 ready to use presets drawn from computers, game consoles and arcade boards.

### Does Furnace export to formats other than its own module files?

The README lists VGM export, ZSM export for the Commander X16, TIunA export for the Atari 2600, SAP type R export for POKEY, and audio file export of an entire song, per chip or per channel.

## Sources

- [Issues](https://github.com/tildearrow/furnace/issues)
- [README](https://github.com/tildearrow/furnace/blob/master/README.md)
- [Releases](https://github.com/tildearrow/furnace/releases)
- [tildearrow/furnace on GitHub](https://github.com/tildearrow/furnace)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tildearrow-furnace
