In this thread AspectEdit with Sonic Chaos? | Sonic and Sega Retro Forums (sonicretro.org) I started dabbling with editing Sonic Triple Trouble levels using Aspect Edit and like with Chaos, offsets to the ROM are required in order to load up a level. They didn't appear to be documented anywhere particularly obvious, so I've been working out what they all are based on the info/notes in Glitch's disassembly and Rolken's map generation thread. I thought it might be helpful to others to have these in one place so that it's easier to get started EDIT - Got all the normal levels done now, would be nice to do the special stages as well! EDIT 2 - Added the special stages EDIT 3 - added time attack stage Code (Text): -level layout 480C0 - GTZ1 489B4 - GTZ2 6B049 - GTZ3 4925A - SPZ1 49C15 - SPZ2 / SPZ3 4A5AA - MJZ1 4AF45 - MJZ2 53280 - MJZ3 535A5 - RWZ1 54000 - RWZ2 4B923 - RWZ3 54666 - TPZ1 55034 - TPZ2 55A0B - TPZ3 55B10 - ADZ1 5657A - ADZ2 56FE3 - ADZ3 57568 - SSZ1 5793B - SSZ3 6B2AB - SSZ5 5B12A - Time Attack -mappings 44000 GTZ 45B80 SPZ 6C000 MJZ 50000 RWZ 519E0 TPZ 6DC00 ADZ 64340 SSZ1/3/5 -tileset 404C4 tileset GTZ 4174A tileset SPZ 4C000 tileset MJZ 4D05A tileset RWZ 4E718 tileset TPZ 71C94 tileset ADZ 58000 tileset SSZ1/3/5 -foreground palette 3B8DC - GTZ 3B8FC - SPZ 3B91C - MJZ 3B93C - RWZ 3B95C - TPZ 3B97C - ADZ 3BA9C - SSZ1/3/5 -background palette 3BABC - GTZ 3BADC - SPZ 3BAFC - MJZ 3BB1C - RWZ 3BB3C - TPZ 3BC1C - TPZ Underwater 3BB5C - ADZ 3BBBC - SSZ1 3BD9C - SSZ3 3BDBC - SSZ5 tile offset 192 for all levels width/height GTZ1 width 168 height 24 GTZ2 width 168 height 24 GTZ3 width 64 height 24 SPZ1 width 168 height 24 SPZ2/3 width 128 height 32 MJZ1 width 128 height 32 MJZ2 width 128 height 32 MJZ2 width 64 height 32 RWZ1 width 128 height 32 RWZ2 width 128 height 32 RWZ2 width 96 height 40 TPZ1 width 128 height 32 TPZ2 width 48 height 80 TPZ3 width 64 height 16 ADZ1 width 128 height 32 ADZ2 width 96 height 40 ADZ3 width 168 height 24 SSZ1 width 168 height 24 SSZ3 width 48 height 80 SSZ5 width 128 height 32 Time Attack width 168 height 24
Holy Cow! I was able to get rid of all the rings and ring monitors in GTZ act 1! Well almost. Just the ones that were a part of the level tiles. For example, at the start of the game there is an extra ring that is an actual object (since behind it is a tree art tile) so how should I look into editing objects? Even if it is manually via a hex editor. What offset am I looking for and how much in hex numbers does a single object contain? I assume it should at least have the number of what object it is as seen with this map: https://info.sonicretro.org/images/f/fd/STT_gtz1_map.png Followed by X and Y coordinates. Subtype? Mappings? I am just going to quote you from the other thread in case others miss it: "The level layout is saved out as a separate bin file, you need to paste the bytes back in at the appropriate offset to add it into the game" -Bobblen This fact helped me out a lot. And having a hex editor that can overwrite hex via paste. The very idea of having Sonic Chaos hacks and Sonic Triple Trouble hacks is like a dream come true!
The objects follow the same format as Sonic 2 SMS so check this page out. SCHG:Sonic the Hedgehog 2 (Master System)/Object Editing - Sonic Retro The object list for GTZ1 starts at 0x705a4, each object is 9 bytes just like Sonic 2, and the list is terminated by an FF byte, then the next act/zone's list immediately follows. The offset for Sonic Chaos SMS THZ1 is 0x705ae. Credit for finding that offset goes to Rolken and his map generator script. Or probably others, but that's where I got it from! As an aside, I've been documenting the STT monitor subtypes to see if there's anything interesting in there as part of my endless mission to find all the 1 ups in all the classic Sonics. Monitor ID is 06 in STT. 00 = nothing rendered 01 = special stage 02 = pogo stick 03 = check point 04 = extra life (not used in game, it's always 0b) 05 = invincible 06 = blank/static (not used in game) 07 = blank/static (not used in game) 08 = 10 rings 09 = rocket shoes / fast flight for Tails 0a = underwater propeller shoes / submarine 0b = extra life 0c = surf board / fast flight for Tails 0d = speed shoes 0e = reset timer to 0130 in special stage (also works in a normal level, although less helpful if you break it when the timer hasn't reach 0130 yet! :D ) 0f = rocket shoes (not used in game, it's always 09)
That's nice to see, glad my toiling with offsets wasn't in vain! One thing to watch out for (which is always a problem when working from a ROM instead of a disassembly) is that the layouts are probably compressed, which means that you have to make sure your new layout compresses at least as well as what you're replacing, otherwise you're gonna run into other data. So don't make it too interesting! :D
@GT Koopa I did have a quick look at removing objects, you can just set the Object ID (first byte) to 00 and it won't show up in the level. Ring objects first byte is 1D so they're easy to find. Of course when making a proper level you'll probably want to make use of every object slot you've got, but good to know you can easily switch them off for testing!