Monday, April 13, 2015
THIS JUST IN: Adding custom music is 100% doable [for PS2 mixes]
In the mean time, I have successfully transplanted music from one PS2 DDR game to another - again, replacing existing music. I overwrote the music for Burning Heat! (3 Option Mix) with the music for MAX. (Period), from the Japanese PS2 version of DDR EXTREME.
Heh, makes me wonder if I can, at Burning Heat's 166 BPM, come close to syncing steps to the music... of course, once I discover where the true BPM data for a song is stored, that will be a needless venture. If I could venture a guess, I'd say THAT information lies with the step data. Where that data is... I have no idea. Sty tuned!
Friday, April 10, 2015
IF you wanted to change what preview music played...
Apparently a piece of data in the song definition files for DDRMAX2 gets left out by IDA pro. These few bytes, which precede the song tempo information, reverence the sound byte in the game's data\SD.bin file that plays when you have the game highlighted in the song wheel.
Messing around with the specific value of 2 bytes, I've found that the game indexes a list of all the addresses of all the sound bytes in the file, though where that is exactly I have yet to discover. The files appear to be stored in the following order: sound effects, then announcer sound bytes, then game menu music files, then song preview clips used in the music select screen, then songs used for the various credit screens, full length songs, then a repeat of an announcer sound clip (albeit much quieter), and lastly, some odd, high pitch/speed string of announcer bytes.
This may not seem like much in some respect, but in the context of manipulating the game's data, this is pretty important. Next, I will need to look up where the indexes being referenced to, and the associated offsets in the sd.bin file, are stored within the game. Then, theoretically, I could add my own files into the game, and add my own offsets into the data array.
All of this, of course, is hinging on whether or not the data I found is in fact an index to some table of data.
EDIT: Here is a video demonstrating this. I am running the PS2 emulator PCSX2 v1.2.1, and using a RAM dumper to manipulate the bytes of data.