Getting started

I would like to start programming for the Saturn. What would I need to get started?? I already have a system and some programming skills, but would I have to code in assembly or are there libraries in C or something?


Staff member
The absolute minimum you need in order to get started:

1) A test platform - this can be a real Saturn with commslink (requires a commslink card in your PC (requires an ISA slot, sadly) and a commslink-equipped cheat cart in the Saturn) or an emulator (can't find good emu links at the moment). If you're not troubled by landfills taking over the planet, you could also just burn every new version of your code to CD-R and use a modboard or the swap trick to boot them.

2) A SuperH assembler/linker. GNU binutils can function in this capacity, though it has a couple syntax peculiarities. If you want to build and use a GNU toolchain on a Windows OS, Cygwin is your gift and your curse. Prebuilt binaries of an older official Sega build of GCC/binutils are floating around, though I'm not sure if they're on a stable web site at this time.

3) Knowledge of the Saturn architecture. Some of the manuals can be found at this place, but for those to be useful you'll need a Saturn memory map. A basic one can be found here, or you can try to find the SCU manual, which also contains a memory map.

If you want to use C, you could build a SuperH cross-gcc (which is what Sega provided to developers). As for libraries, the official one (called SGL) is floating around, but can be difficult to get since nobody seems to want to put them on stable web space...


Extra Hard Mid Boss
These people provide prebuilt up-to-date SH crosscompilers, saving you at least one headache. Bart Trzynadlowski has SNASMSH2 and SNASM68K on his site (should be at least semi-legal, according to him SN Systems has shown interest in opensourcing the assemblers).

BTW, what's the status of the SGL libs? I mean, is Sega actively going after people who make them available? If they're safe, I guess I could put them up on my webspace, along with the docs I have.
Oh, that's nto the problem. It's just that it is an incredible huge file, mutch bigger than the crosscompiler, i belive it's 23Mb or so. This is due to the fact that _all_ the samples there were built before compressing, including preprocessing stuff and so on. Maybe one should make a cleaner zip, without the binarys.

Mutch like the homebrewn DC development, it seems like Sega is not really caring about Saturn dev. They're nice people like that, i suppose

Also, as for GCC releases that support the SH-2 processor, little or nothing beneficial was updated since the main Sega developer (head of programmer for Saturn and 32x) stopped. It is _very_ advisable to get the "leaked" compiler, if not for very important Saturn specific details included that i have not found anywhere else (like overlaying and usage of the hardware multiplier and divider).


Extra Hard Mid Boss
Right, I put what I have here. If you have newer versions of the compiler/libs/docs or docs I don't have, send them my way and I'll add them.