Romhacking.net

Romhacking => ROM Hacking Discussion => Topic started by: TheLoneSurvivor on January 03, 2016, 09:12:02 pm

Title: How do 32X pointers work?
Post by: TheLoneSurvivor on January 03, 2016, 09:12:02 pm
So I was ROM hacking the 32X port of Doom, and I was reading the 32X Doom hacking notes by Saxman, and one of the things it said was "0x005C16 -- List of voice pointers" I know what a pointer is, because I am an intermediate ROM hacker (I found and modified graphics, text and sound in the SNES port of Doom, and noticed uncompiled ASM code in the SPC RAM, and was able to do a Pokemon ROM hack that was the full deal, ASM, sounds, graphics, maps, scripts, sprites, and a ROM expanded to 32MB, so I know how to ROM hack), so I go into HxD, press goto and enter 5C16, which brought me to the right offset, but the pointers were strange. They all ended with different bytes, from what I can tell, they appear to be 4-byte pointers (can't tell if they are little or big endian) and every 3 pointers the last byte's number goes up by one (it goes like XX XX XX 01 XX XX XX 01 XX XX XX 01 XX XX XX 02 XX XX XX 02 XX XX XX 02 XX XX XX 03 XX XX XX 03 XX XX XX 03).

Perhaps the byte at the end represents a bank? If I am correct on that, how do banks work on a 32X/Genesis, and how do I find them through pointers?

Thanks.
Title: Re: How do 32X pointers work?
Post by: KingMike on January 04, 2016, 01:22:40 am
Are 32X pointers the same as standard Genesis?
4 bytes, big-endian (do not reverse the byte order), pointer = ROM address (00-padded to 4 bytes)

From what I've heard, VERY few Genesis games needed mappers (I heard PS4 used a mapper to swap $200000-3FFFFF between the last MB of ROM and SRAM, and SSF2 probably used one to get past the Genesis 4MB ROM limit (supposedly using ROM addresses above 3FFFFF would break if the Sega CD or 32X was attached).
Title: Re: How do 32X pointers work?
Post by: Lilinda on January 04, 2016, 01:24:23 am
Would they work the same? The SH2 wasn't the same endianness as an 68000 I think...