Sonic Classic Collection/Technical information
From Sonic Retro
Revision as of 06:54, 27 January 2021 by Ccawley2011 (talk | contribs)
- Back to: Sonic Classic Collection.
This teeny-tiny article needs some work. You can help Sonic Retro by expanding it. |
TODO:
- Move emulation information from the main page
- More information about Game.pak
- Document any modifications made to the Mega Drive ROMs
- Full list of tracks from the .mods files?
Music and Sound effects
Rather than emulating the Mega Drive audio hardware, all of the music and sound effects are pre-recorded and stored in .mods files. These can be unpacked using this QuickBMS script.
The file format consists of a 32-bit integer containing the number of sound effects or tracks, followed by an array of 32-bit integers, each containing a pointer to a structure containing information about the particular sound. If a pointer is identical to the following pointer, then that pointer is for an empty sound, and should be ignored. The structure uses the following structure:
Offset | Type | Description |
---|---|---|
0 | 4 Bytes | Length of the sound in bytes, including this header. |
4 | 4 Bytes | Number of bytes from the end to be looped. |
8 | 2 Bytes | Sample rate. |
A | 6 Bytes | Unknown. |
The audio data follows immediately after this header, using the IMA ADPCM codec described here.
UI graphics
The graphics for the user interface are stored in the screensGame_eu.dat file. The exact format of the file is currently unknown, but the following is known about it:
- The number of images is stored as a 32-bit word at offset 0x0.
- The data between offsets 0x4 and 0xF2C is unknown.
- Image names are stored between offsets 0xF2C and 0x3558.
- More unknown data is stored between offsets 0x6000 and 0x24A500. (192 * 4 bytes per image?)
- Potentially compressed data is stored between offsets 0x24A600 and 0x2F0000.
- Raw 16-bit RGB555 image data is stored from offset 0x2F0000 to the end of the file.
References
Sonic Classic Collection | |
---|---|
Manuals |