Home | Forums | What's new | Resources | |
Multi region disc |
fonzievoltonov - May 15, 2005 |
ExCyber | May 16, 2005 | |||
I think the main issue is that the details of the bootloader's behavior are poorly documented. |
Mask of Destiny | May 16, 2005 | |||
Hey my documentation ( http://www.retrodev.com/segacd.html... ) on the boot process isn't that bad. MainCPU is really easy. All you need to do is load the data indicated by offset 0x30 (location) and 0x34 (length, ignored by BIOS because of bug) to 0xFF0000 on the Genesis side and then jump to 0xFF0000. Unfortunately, the Sega logo code seems to be incompatible between Japan and everything else so you'll have to either hack this or just skip over it and try to insert an equivalent delay. SubCPU is more complicated. 0x40 and 0x44 tell you what to load off the disc (to 0x6000 I believe), but there's more you have to do. There's a datastructure with multiple entry points that gets passed to a SubCPU BIOS call and then there's a link field which allows more of these structures to be loaded. You don't jump to both pieces of code simultaneousy. The BIOS jumps to the Sega logo code first on the main processor and then goes about loading the SubCPU code off the disc. VDP settings shouldn't be a big deal though. |