Well, I wasted a few days of my life and made something I always wanted, the Action 52 NSF!
Since Cheetahmen 2 uses the same music, I guess this is a rip of that too. The CM2 title theme is just "Fuzz Power".
Anyways, it was a huge massive hack, but was alot of fun too.
I started by disassembling the music engine, and learned that it was the same across all 52 games. The code on it appears to be "too good" for the A52, and I highly suspect it might be ripped from somewhere.
I will post the complete commented source for it soon, after I clean it up, along with the music data format.
Basically what I did was I dumped a 32K bank of every single Action 52 game including the intro to Cheetahmen (it's a "game" like the others) and then all 6 of the Cheetahmen levels (which are separate "games" too).
Incidentally, the special title screens on a few of the other games are also separate "games", as are the screens of the intro.
I did not capture the digital audio in this rip but I will eventually. It all does raw writes to 4011 and does not use DPCM at all, even on the Cheetahmen game.
After ripping the game banks (58 of them), I wrote a QBASIC program to go through and check/extract all the music it could find, verifying that the data was good. It also relocated the music to 0000h, from wherever it happened to be.
Turns out there were alot of crappy pointers that lead to never-never land and were not used!
After all that, I had 300-some separate track files which held all the "tunes" and SFX, one per file. I ZIPed them up and then sorted by CRC to remove the duplicates, leaving just 1 copy of everything.
Then I wrote some more QBASIC to stitch and relocate the music into banks.
Incidentally, the music and data was just sprayed ALL OVER ROM... After seeing this, I'm almost convinced the games were put together with a hex editor. There were all sorts of little errors in the music due to what looked like manual data entry.
That "unpaused" SFX is in nearly every game, and it appeared in memory in 40 places or so- a different place for each game. The music driver almost always used the same places in RAM (390-48f) except for games with a title screen, and the cheetahmen, but the driver code was again sprayed all over the ROM.
Fortunately, finding the table offset was fairly easy, so knowing that my programs could extract the music fairly effectively.
Once I had all the parts I did some very minimal mods to the player code (basically adding bank support) and made the NSF.
I hope people enjoy
http://blog.kevtris.org/blogfiles/Action%2052.nsf
Since Cheetahmen 2 uses the same music, I guess this is a rip of that too. The CM2 title theme is just "Fuzz Power".
Anyways, it was a huge massive hack, but was alot of fun too.
I started by disassembling the music engine, and learned that it was the same across all 52 games. The code on it appears to be "too good" for the A52, and I highly suspect it might be ripped from somewhere.
I will post the complete commented source for it soon, after I clean it up, along with the music data format.
Basically what I did was I dumped a 32K bank of every single Action 52 game including the intro to Cheetahmen (it's a "game" like the others) and then all 6 of the Cheetahmen levels (which are separate "games" too).
Incidentally, the special title screens on a few of the other games are also separate "games", as are the screens of the intro.
I did not capture the digital audio in this rip but I will eventually. It all does raw writes to 4011 and does not use DPCM at all, even on the Cheetahmen game.
After ripping the game banks (58 of them), I wrote a QBASIC program to go through and check/extract all the music it could find, verifying that the data was good. It also relocated the music to 0000h, from wherever it happened to be.
Turns out there were alot of crappy pointers that lead to never-never land and were not used!
After all that, I had 300-some separate track files which held all the "tunes" and SFX, one per file. I ZIPed them up and then sorted by CRC to remove the duplicates, leaving just 1 copy of everything.
Then I wrote some more QBASIC to stitch and relocate the music into banks.
Incidentally, the music and data was just sprayed ALL OVER ROM... After seeing this, I'm almost convinced the games were put together with a hex editor. There were all sorts of little errors in the music due to what looked like manual data entry.
That "unpaused" SFX is in nearly every game, and it appeared in memory in 40 places or so- a different place for each game. The music driver almost always used the same places in RAM (390-48f) except for games with a title screen, and the cheetahmen, but the driver code was again sprayed all over the ROM.
Fortunately, finding the table offset was fairly easy, so knowing that my programs could extract the music fairly effectively.
Once I had all the parts I did some very minimal mods to the player code (basically adding bank support) and made the NSF.
I hope people enjoy
http://blog.kevtris.org/blogfiles/Action%2052.nsf