This is nothing short of awesome. This is an idea which could apply to so many games out there that have extensive amounts of remixed/remastered music floating around. In an ideal world, there would be a bare bones function available for anyone willing to chop up their PSX video files and insert them strategically where appropriate. Obviously that's out of the scope of this idea, just day dreaming I guess.
Given how the SPC-700 operates, I think it would be definitely doable to make something like CTM for other SNES games. But it would require a tremendous amount of work, and little from CTM would be reusable.
For those that don't know- the SPC-700 is a seperate processor from the SNES's main CPU. And communications between these two processors occurs over 4 ports. Thus, the CPU sends commands, parameters, uploads information, etc. over these 4 ports. Thus if you know how a game's music/sound engine works (since in most causes these are probably custom written programs, since the SPC-700 is operating a program uploaded by the game when the game first starts), you can understand what the game is doing from a spectators perspective. For example, Chrono Trigger sends the command 0x10 (and some parameters of course) to the first APU port to trigger a song change, 0x14 is a song interrupt, 0x11 usually resumes from interrupts, 0x81 is a volume change, 0x18 is a sound effect, etc. etc.
(If you wanna see these happening with a game, use a debug emulator and set write breakpoints on $2140 - $2143-- those are the hardware registers for the APU ports.)
Now catching some of these when they occur can be hard because they happen so fast. I had this issue for a while-- especially when I decided I needed to support volume changes. I would only be able to catch, like, 1 out of 25 of those. So that's where my 'special code' comes in. I patch subroutines that do volume changes, song changes, etc. They then jump to my code, copy the command and its parameters to the end of RAM (this is free generally, but the overworld does decompress graphics here. But after multiple playthroughs of both Prophet's Guile and Chrono Trigger- I have never seen any side effects). And from here I can access them at my leisure. Implementing this solved a lot of problems and let me clean a lot of stuff up.
But, there are times that you have to account for the programmers pulling some funny tricks. I know that sounds kinda odd or vague, but you never know what a game does. For example, the songs 0x3F and 0x50 (off the top of my head, I could be wrong) write to the APU out ports and allow scenes to be synced to the music. This is why the Epoch and Credits fix both exist. If 0x50 isn't played during the Epoch scene (taking the Epoch to 1999AD), the out port values will never be written and the game will hang while waiting for the out port values to be written. Even if you change the song to a different one using Temporal Flux, the scene will hang- it has to be those exact songs (actually, you could probably play 0x3F during the Epoch scene and it would work, but the timing would be broken). As for the credits scene, it is used to time the credits- and if values are never written the timing will be off and it will hang at a certain part of the credits (but 0x50 couldn't be used here, it doesn't write enough values over the span of itself playing).TL;DR
or to sum things up,
I believe it would definitely be possible to make something like CTM for other games, but it would require a ton of work, and little could be taken from CTM. And along with all the work would be a lot of testing-- I tested CTM myself and after playing through Chrono Trigger 5 times (end to end, got every ending as well and twice did all the side quests) I was pretty burnt out
. But I would definitely be excited to see anyone pick up a similar project for another game, I would even be willing to help them.