Sonic the Hedgehog (Mega Drive) Disassembly
Differences with the disassembly on the Sonic Retro Github page:
- dma macro - Replaces writeVRAM and writeCRAM macros.
- gmptr macro - Generates ids for game modes.
- index & ptr macros - Creates relative and absolute pointer lists; automatically generates id numbers.
- lsline macro - Allows level select menu strings to be stored as plain ascii.
- __sonic_sprites__ macro - The index for Sonic's mappings is reused for DPLCs, keeping them both congruous.
- filedef & incfile macros - Records the file name and decompressed size of graphics for VRAM management.
- objpos macro - Object placement in levels, also uses object ids instead of fixed numbers.
- plcm macro - Generates tile ids for VRAM addresses (e.g. tile_Nem_Ring). Automatically places graphics after previous graphics, if no VRAM address is specified.
- spritemap & piece macros - Creates sprite mappings.
- Z80 macros - See axm68k.
- Different labels used for object status table.
- Constants used for render and status flags.
- Different labels used for some RAM addresses and routines.
- Automatic recompression of Kosinski and Nemesis-compressed data. Thanks to Clownacy for the Kosinski and Nemesis compressors.
- Automatic RAM management.
- Prevents word/longword variables starting on an odd address.
- Prevents accidental clearing of bytes after the end of a cleared section (which are always in multiples of 4 bytes).
- Indicates how much RAM is used (and unused) in errors.txt.
- DAC driver is compiled, compressed and inserted seamlessly. Thanks to AuroraFields for the Dual PCM tool.