Well, after about two months of work, both programming and figuring out how Chrono Trigger behaves when playing music, I present you with the Chrono Trigger MusiCompanion (CTM for short).
To start things off, I'll give you a video of CTM in action.http://www.youtube.com/watch?v=Gte4UPbx_5I
Chrono Trigger MusiCompanion (currently v1.3) is a DLL that is injected into an emulator (ZSNES v1.51, Snes9x v1.52Fix4, Geiger's Debug Snes9x ep9r8 & ep10r2) and allows you to play Chrono Trigger using an external soundtrack. It is Windows only, and has been tested and works fine on Windows XP and Windows 7 (and should work on other versions of Windows). There are various configurable options that let you tweak some settings about CTM, giving you a little more control over how CTM works. And most notably your replacement sound track is configured with a text file, all you have to do is set a path to the replacement file for the song you wish to replace. It is possible to mix in game and out of game music, all you have to do is enable an option in the configuration file and not set a replacement track for the song. CTM does all the patching for you.
* Works with any Chrono Trigger ROM (not the pre-release though). I have tested CTM with the original Chrono Trigger, Prophet's Guile, and beta versions of Crimson Echoes. CTM has preformed perfectly with all of them.
* Supports ZSNES v1.51, Snes9x v1.52Fix4, Geiger's Debug Snes9x ep9r8 & ep10r2.
* Supports song changing, song interruptions, and volume changes.
* Supports volume changes being interrupted with new volume changes, and song changes occurring while the volume is being changed.
* Benchmarks you computer and automatically sets up volume change speeds to match the speed of the original Chrono Trigger's as closely as possible (unless you configure it differently)
* Uses irrKlang, so multiple file formats are supported, most notably MP3, FLAC, and OGG.
* Patches Chrono Trigger when it is loaded into RAM (with up to 334 bytes of changes depending on your setup).
* Custom code is patched to any available space that is found (the first song that is no longer needed) and all jumps to my code are patched to correctly jump to wherever I put my custom code.
* All patches to the ROM are in RAM and none are permanent. All are lost once the ROM is unloaded from RAM.
* Tempo changes are not supported and probably won't ever be.
* Reloading a new ROM is not supported, hard and soft resets work, but you must quit and restart CTM to load a new ROM.
* Commands that Chrono Trigger uses to wait for the end of a song are unsupported (and can't be).
* Rewinding, Saves States, and Fast Forwarding are not officially supported, but generally don't break things too badly. They are not recommended though.
* Echo is not supported, this is due to limitations with irrKlang and with how Chrono Trigger does Echo.
The source code for the programming is included for educational purposes. CTM is my first program I've written outside of school (so go easy on me if you want to criticize my code :3), and it has been a major learning experience. I have referenced other code and examples to better understand how to do certain things, so my intent with releasing the source is for others to reference and learn from. I am not releasing the source so you can steal it, claim it as your own, or tweak it and release the program as something completely new and your own, so please respect my wishes
. Also, if you look at the changelog, please leave my version numbers alone, I know they are totally screwy
This release comes with no music, as I'm not a composer/remixer myself and audio isn't a strong suit. I wish to possibly create an 'unofficial soundtrack' that could be distributed alongside CTM, but interest wasn't high enough to get anything possibly done before a release (this would be a large project). If you are interested please hop over to the OCRemix thread I started for such a project (http://ocremix.org/forums/showthread.php?t=29321
) and offer to help/voice you option/whatever.
If you encounter any bugs, please report them here and I will take a look at them and get back to you, hopefully with a fix. Or if you wish to leave feedback/feature suggestion- tell me and I'll see what I can do. I'm thinking that if enough people want tempo changing support I might do it. But I really don't think the work is worth the very small reward in this case.
And, most importantly, a download link-
CTM V1.3 (12/4/10) - http://www.mediafire.com/?l80ei2iuqvmups8
See the changelog for updates.
Now... Who was it that said you can't use MP3s with Chrono Trigger?