Go to file
tildearrow 137258c269 update SDL to prepare for MinGW 2021-12-07 13:31:02 -05:00
extern update SDL to prepare for MinGW 2021-12-07 13:31:02 -05:00
src acknowledgements 2021-12-07 13:01:59 -05:00
.gitignore update gitignore 2021-12-04 01:14:02 -05:00
.gitmodules update SDL to prepare for MinGW 2021-12-07 13:31:02 -05:00
CMakeLists.txt preliminary audio file output 2021-12-07 12:21:23 -05:00
LICENSE add license 2021-05-13 03:37:04 -05:00
README.md update readme 2021-12-07 13:08:48 -05:00

README.md

Furnace

this is a work-in-progress chip music player (currently) for the .dmf format.

features

  • supports Sega Genesis, Master System, Game Boy, PC Engine, NES and C64 (for now, with more systems coming soon)
  • clean-room design (zero reverse-engineered code and zero decompilation; using official DMF specs, guesswork and ABX tests only)
  • bug/quirk implementation for increased playback accuracy
  • accurate emulation cores (Nuked, MAME, SameBoy, Mednafen PCE, puNES and reSID (hahaha!))
  • open-source. GPLv2.

dependencies

  • CMake
  • SDL2
  • zlib
  • JACK (optional)

SDL2 and zlib are included as submodules for Windows and macOS.

compilation

your typical CMake project. clone (including submodules) and:

Windows using MSVC

from the developer tools command prompt:

mkdir build
cd build
cmake ..
msbuild ALL_BUILD.vcxproj

macOS and Linux

mkdir build
cd build
cmake ..
make

usage

./furnace <file>

this will play a file (must be in .dmf format).

./furnace -view commands <file>

this will play a .dmf file and enable the commands view.

./furnace -loops 0 <file>

this will play a .dmf file and not loop it.

./furnace -output audio.wav <file>

this will render a .dmf file to .wav.