HomeForumsWhat's newResources 
 
 
Saturn Boot Process
Mask of Destiny - Aug 14, 2005
 Mask of Destiny Aug 14, 2005
I took a look at the disc standards doc and I have a few questions.

From what I gather, the AIP is only executed after the security ring check, is this correct? What address does this get loaded to?

What exactly is the 1st read file? I understand that it gets loaded while the Saturn logo is doing it's thing, but how is this file identified, I didn't see an entry in IP.BIN for it?

 antime Aug 14, 2005
The IP is loaded to 0x6002000, so the address of the AIP is 0x6002000 + sizeof(boot code). The exact address depends on how many area codes you have. The first read file is the first file listed in the root directory of the filesystem.

 RockinB Aug 14, 2005
Hey MOD,

just want to say that it's great that you got yourself a Saturn and try something out.

A new coder cable or something to upload test binaries is a very good idea. The method with the CommsLink and Action Replay requires a lot of hardware, the Saturn cartridge slot is rapidly dying and modern PCs don't have any ISA slot....

So there is really much use for your idea. You could use the serial port on the back or the controller port.

Good luck! :cheers

 Mask of Destiny Aug 14, 2005
I'd imagine the serial port is +5V and not a 12V port like on a PC so I'd need to use one of the MAX converter chips. Controller port is simpler and probably faster too. Using my crappy protocol with the Sega CD I was able to get ISDN speeds, I'd imagine between the new protocol I want to use and the speed of the SH-2 I can increase the speed by quite a bit. Only disadvantage is that it's more processor intensive than the serial solution so it may be less ideal for streaming data after the initial load. There isn't any way to get custom code running on the SMPC is there?

I think I'm going to dig around in the Saturn boot ROM a bit and see if there are any exploitable bugs that would allow me to run code before the ring check. The transfer program is quite small, so I should have no problems fitting it within the first 16 sectors.

 cgfm2 Aug 15, 2005

  
	
	
Originally posted by Mask of Destiny@Mon, 2005-08-15 @ 07:49 AM

I'd imagine the serial port is +5V and not a 12V port like on a PC so I'd need to use one of the MAX converter chips.



Correct. On the serial connector you get the SCI pins for both SH-2's and a MIDI serial channel used by the SCSP (that you can directly program using the 68000).

There is/was a Japanese website that had unofficial schematics for the Saturn which were mostly complete. I think the author's nickname was 'babax' if that helps with a Google search. If you need this stuff and the site isn't around anymore I believe I saved all the images at one time.


  
	
	
Controller port is simpler and probably faster too. Using my crappy protocol with the Sega CD I was able to get ISDN speeds, I'd imagine between the new protocol I want to use and the speed of the SH-2 I can increase the speed by quite a bit. Only disadvantage is that it's more processor intensive than the serial solution so it may be less ideal for streaming data after the initial load. There isn't any way to get custom code running on the SMPC is there?



Did you use a serial connection for the Genesis? If so, isn't that limited to 4800bps by hardare (or was this a software driven protocol instead of using the built-in serial hardware?)

The SMPC is a mask programmed microcontroller, so there's no way to change the code.


  
	
	
I think I'm going to dig around in the Saturn boot ROM a bit and see if there are any exploitable bugs that would allow me to run code before the ring check. The transfer program is quite small, so I should have no problems fitting it within the first 16 sectors.



Unless I'm wrong, you'd still need a modchip (or swap trick) for the Saturn to even read anything off the disc and go through the boot process. Then again this is not my area of expertise.

 Mask of Destiny Aug 15, 2005

  
	
	
Originally posted by cgfm2+Mon, 2005-08-15 @ 08:07 PM-->
QUOTE(cgfm2 @ Mon, 2005-08-15 @ 08:07 PM)
Did you use a serial connection for the Genesis? If so, isn't that limited to 4800bps by hardare (or was this a software driven protocol instead of using the built-in serial hardware?)[/b]



It's a 4 bit parallel protocol with 2 bits for handshaking. I think I gave you source for it a while back. After I got it working I realized that my handshaking was quite innefficient so if I should be able to get a decent speedup with a rewrite. It needs it anyway to fix some initial sync issues.


  
	
	
Originally posted by cgfm2@

The SMPC is a mask programmed microcontroller, so there's no way to change the code.

Figured as much. Oh well.