Sorry for the long hiatus, everyone. I'm happy to report that this project is still alive and well. I had reached a point where I knew that the remaining bugs were due to a fundamental lack of understanding of the original sound engine, leading to an endless game of whack-a-mole with the muting-related bugs. Unfortunately, that meant two things: 1) The code probably needed a complete rewrite, and 2) Before I wrote a single line of new code, the first thing I needed to do was disassemble ALL of the original sound engine code, on both the SNES and SPC sides, and get a much better understanding of its inner workings. The project basically stalled out because I knew that was going to be a HUGE undertaking, and I didn't want to even attempt it until I had the time and motivation to do it right. Well... that time has come
I have disassembled close to 80% of the SNES side of the engine, and MathOnNapkins graciously provided me with his disassembly of the SPC side, and between the two, I have managed to figure out many of the places where I went wrong with my assumptions. I've also begun the rewrite, which has already produced fantastic results in only a few short days. The bad news is that this means starting the testing phase completely from scratch as well, but between the better understanding of the engine, as well as my experience with the last two rewrites, I'm fairly confident that there should be far fewer bugs this time around, and any new bugs introduced should be fairly straightforward to figure out. This rewrite should also completely eradicate even the possibility of certain kinds of bugs found in the previous iterations, such as the infinite loop softlocks (e.g. the character select screen, the ending with the fireworks, etc). Once the new code is complete, then comes the next huge task, which is going through all of the FMV's scene-by-scene to fine tune the dithering settings, but we'll cross that bridge when we come to it.