Skip to content

dannye/crystal-tracker

Repository files navigation

Crystal Tracker

A song and sound editor for pokecrystal, pokegold, pokeyellow-crysaudio, pokered-crysaudio, and pokepinball.

Crystal Tracker provides the ability to directly create and modify pokecrystal-based asm song files, with in-app immediate playback by dynamically loading and synthesizing custom channel 3 waveforms and channel 4 drumkits.

The editor exports fully complete asm song files, so that you can "Save" your changes and then immediately make your project and instantly have a new ROM file with your modifications included — no additional conversion tools or steps required.

Screenshot

Getting Started

Windows

Download the latest Windows executable from the Releases section. To build from source, see INSTALL.md.


Linux

See INSTALL.md to build from source or run the Windows executable via Wine.


Mac

Download the latest dmg from the Releases section or run the Windows executable via Wine. To build from source, follow the Linux instructions in INSTALL.md plus a dash of common sense (ie, perhaps use clang++ in place of g++-8 if building libopenmpt from source).


The example/ directory contains crystaltracked.asm, an original composition by Mickey-A 42.

Be sure to see the Help menu for a full explanation on how to use the editor.

Upgrading a legacy project

If your project uses the "legacy" macros (pre-2020), you will need to upgrade your project.

Download tools/upgrade.py and put it at the root of your project. Run the upgrade script on your music folder, like:

python3 upgrade.py -v audio/music/

It can also be used to upgrade individual files, like:

python3 upgrade.py -v audio/drumkits.asm

The script also works with python2. Run ./upgrade.py -h for all options.

Be sure to make adequate backups of your song files (via git or otherwise) before upgrading, just in case.

Then you must copy all modern audio macros from the latest macros/scripts/audio.asm and macros/legacy.asm into your project.

Special Thanks

This project takes a lot of inspiration (and a lot of backbone code structure) from Polished Map. A huge thank you to Rangi42!

Additional thanks to mid-kid for the Mac port.