This re-implements smkdan's Chrono Trigger anime intro hack made back in 2011 for the "21fx", a SNES multimedia add-on which is known as the MSU1 nowadays. I created this by disassembling smkdan's work (the sourcecode of which apparently got lost over the years) and making it compatible with the latest MSU1 specifications.
While making this patch, no less than four different emulators were used:
- Geiger's Snes9x tracer v1.43ep9r8, for tracing the original boot routine in CT.
- bsnes v058 debugger, which has 21fx support and allowed me to trace close to 99% of smkdan's code.
- bsnes v071 debugger, which supports the MSU1 _and_ has a nice tracer as well.
- higan v094, which is the latest software that supports the MSU1.
Before I started to update smkdan's code, I made sure it assembled just fine, resulting in a byte-perfect copy of his original hacked ROM. This achieved, "porting" the hack to MSU1 was basically a piece of cake. One of the major challenges was to get bsnes v071 to cooperate by finding a suitable template XML file, which is needed for the emulator to actually enable MSU1 support. While the original MSU1 data file simply had to be renamed, the WAV file was converted to PCM using wav2msu.
The original implementation of the 21fx had the data port (and all of its control registers) sitting on the B-bus of the SNES, which required developers to buffer the streamed data in WRAM for DMA. In the course of the transition to the MSU1, ports and registers were thankfully relocated to the A-bus, allowing the data port to be used as a fixed source for DMA. (Fortunately, I had saved copies of nearly all 21fx/MSU1 documentation from byuu's website ...)
Initially, I didn't bother to eliminate the WRAM buffer. Later on, I decided to update the hack in that regard for the sake of simplicity and code readability. Also, the issue that users of sd2snes had to rename the PCM file is now resolved, and the hack should run on both sd2snes and higan out-of-the-box.
So I hope you have just as much fun testing this out as I had disassembling and re-coding it.
Download (UPDATED Sept 28th):
http://manuloewe.de/snestuff/projects/c ... ro_msu1.7z (source is included)