I was reading this thread at project2612's forums and I found out that Toy Story supposedly supports MOD playback. Since the actual MOD used is available on the internet (as said in that thread), Oerg suggested me that the MOD data might actually be present in the ROM, so we looked for that and we found out that that's the case. Only a few bytes are different between the standalone MOD file and the data in the ROM. We then tried to put some other MODs in the ROM, and we found out that it works. So yeah, Toy Story contains a semi-functional 4-channels MOD player; it doesn't support all the MOD effects, and the quality isn't that awesome, but still, someone might attempt to disassemble this and use MOD songs in their hacks. They can sound better than smps, and they are smaller than PCM files. I think the load on the 68k is very high though, so this may be useful only for title screens or something. Now, on to the resources. Toy Story ROM from romnation.net Rename said ROM to "toy.bin" and get this nice utility I wrote to replace any MOD file into Toy Story's ROM (granted that said MOD's size is smaller than 93996 bytes). Also yes, lol filename, I didn't rename it kthx. Grab this gens savestate to go straight to the title screen since Toy Story has like 9001 splash screens. Just press start once to hear your replaced MOD. Have fun with this. Also, in before Oerg.
By the way, for your interest, the original MOD from the game extracted is here. BTW: The MOD Player plays the MODs 1x too fast. That means on every F** command in the MOD, the value has to be increased by 1, because: Let's take a MOD with an F06 at the beginning. It plays too fast. Change the F06 to F07 and it will play just or almost like it was intended to be.
OK, so Update *ding* The timing of the MOD was really related to PAL/NTSC Dickery. Here is a download of the PAL ROM. I looked up the data in this ROM and it's at $2A2B8 So I modified nineko's tool to write to that address to check and BINGO - The MODs play at the right speed. Download the tool for the PAL Version here lolfilename1up EDIT: loltypo EDIT: Link fixed.
Very cool! I recall being very impressed at the DAC-based playback in Toy Story, and it's awesome to know that it's more than possible to put your own custom music in there. This could be put to great use in demos, homebrew, and hacks alike. The first thing I'll do is try out that "Spring Yard Past" module I haveāthat's bound to sound awesome. Fantastic work!
Keep in mind that only 4-channels, 31-samples, ProTracker modules will work. Despite the .mod extension, some modules can't be played here. Namely, old 15-samples MODs won't work (but it's easy to fix them by adding 16 blank samples), just like non-4-channels MODs. I've yet to check compatibility with other MOD subformats, though most of them were pretty much compatible so there is some hope.
By the way, you all should thank Oerg if this thread exists -- I thought nobody was going to be interested into this, but he was so enthusiastic about it that I couldn't avoid to post what we've done :p edit: I just found this. I swear, Oerg and I didn't know about it when we were working on this Oh well.
Awesome. I had always wondered about that song in particular, and why did it sound more like a SNES game... Just wondering, is the same MOD being used for the PAL and NTSC versions?
Almost. The NTSC one has a lower speed set because the NTSC 60HZ to 50Hz difference automatically makes it faster. The PAL one is the same, just without any speed command because the MOD Player is written for 50HZ and therefore does not need a speed compension.
That MOD player needs to be extracted, and made into a 68K+Z80 player, so Z80 would do playback, which will give some free time on 68K side and greatly improve playback quality as there will not be any jitter, or at least not as much. It will still be too CPU heavy for use in some Sonic hack...
Heh, just noticed that, going by the pattern numbers, it looks like that cool intro to the main music was done as an afterthought, even after the second track in the MOD had already been started. It's quite cool being able to tamper with these music files in their original format. Even the original instrument names are in there, in the MOD's comments. This reminds me a lot of the music in Amiga games. EDIT: Also, they didn't bother deleting a copy of pattern #0, at the very end.
Well, that's not a big problem, as pattern 0 is stored only once, they just left that entry in the pattern table; in the XM format, the pattern table has a fixed length so that 0 wouldn't take any additional byte, I'm not very familiar with the MOD internals, but I guess that it's either like that, or it takes only one more byte. Another possibility is that they specified an incorrect song length in the header, so it's reading invalid data (0) after the end of the pattern table. But this is speculation. Either way, that 0 isn't a big waste in terms of filesize.
Bit of a necro topic bump, but I thought people may be interested to hear the developer themselves talking about this: http://www.youtube.com/watch?v=x3m3JrVImmU
Yeah, I saw that video the other day and I immediately thought back at this discussion, too bad that this never proceeded further By the way, I really, really wish he could join this forum