complete newb to Saturn dev needing advice

Hi. I am a fairly experienced C/C++/x86 assembly developer, but I have only developed for PC's. I am very enthusiastic about trying to develop for the Saturn, but I have a couple of questions about the toolchain. Sorry if these things have been covered thousands of times, or if there is a tutorial out there somewhere I'm missing; most of the information I've found is broken and incomplete, also making me wonder about how up to date it is.

Here are my questions:

I prefer to use Linux systems...I can set up my toolchain for Saturn development on such a system, right?

What compiler do I need to generate code for the Saturn? Is it open-source, or will I be stuck with a maybe will/maybe won't work build? (I doubt the original saturn compiler was open source, but being that it's this day and age, thought I'd ask).

If it will be necessary for my to program in assembler for the Hitachi SH2 (those are the two main procs right?), can someone point me to a good source of information on the instruction set/architecture (I know I could find some of this with googling, but I'm looking for more of a technical doc that explains everything).

What other programs will I need to package the data together/create an iso? Is any of this open source? I would prefer to build everything myself if possible, as I know the original builds devs used for Saturn are probably ages old and incompatible with my system.

As I said, I'm sure this stuff has been covered countless times, so I'm sorry for asking! I've found assorted tutorials across the net, some of it attempting to answer some of these questions, but all of them already assume a fair amount of knowledge from the reader, and when it comes to Saturn development, I have none! Experienced developers out there, please take pity on me and help me into this community! I know absolutely nothing about Saturn programming and need someone to explain the basics of the development environment needs.

Thanks!
 
Mirakus said:
Hi. I am a fairly experienced C/C++/x86 assembly developer, but I have only developed for PC's.

Well, that puts you in a better starting position than most. One thing to keep in mind is that x86 is a fairly atypical architecture in that it lets you get away with almost anything. On architectures like SuperH you'll have to get used to things like that alignment actually does matter.

I prefer to use Linux systems...I can set up my toolchain for Saturn development on such a system, right?

What compiler do I need to generate code for the Saturn? Is it open-source, or will I be stuck with a maybe will/maybe won't work build?

GCC works. I believe Renesas have a Linux version of their compiler, but it is commercial and closed-source. There's a thread here on how to build a cross-compiler.

If it will be necessary for my to program in assembler for the Hitachi SH2 (those are the two main procs right?), can someone point me to a good source of information on the instruction set/architecture (I know I could find some of this with googling, but I'm looking for more of a technical doc that explains everything).

Check the link in my signature.

What other programs will I need to package the data together/create an iso?

Mkisofs/genisoimage. We have a thread about that too. Creating a bootable CD is a bit more involved than just putting an executable on an image, but the Sega Disc Format Standards Specification document explains most of it.
 
Thanks so much, kind sir! I'm sure I'll be "hello worlding" it for a bit, but I'm sure you all will be hearing from me a lot on these forums as I progress. I have one project that I'm trying to wrap up before digging too deeply into this, but seriously, thanks a lot!
 
What other programs will I need to package the data together/create an iso?

Unless you need to have it on CD, the USB DataLink (you can find more info about it in other threads here on the forum) is a convenient alternative for testing homebrew stuff on the Saturn. It allows you to upload and execute binaries using a USB dongle that connects to a Pro Action Replay cartridge. I don't remember the exact size limit for the binary, but it's something like a couple of MB.

For SH2 assembly programming on the Saturn I've got some examples, including one that runs on both SH2s in parallel: http://jiggawatt.org/badc0de/console.htm#saturn
 
Yabause (GPL Sega Saturn emulator) works pretty well under Linux. Obviously an emulator is not a full replacement for real hardware, but I find it faster to test on that especially giving my programming style.
 
slinga said:
Yabause (GPL Sega Saturn emulator) works pretty well under Linux. Obviously an emulator is not a full replacement for real hardware, but I find it faster to test on that especially giving my programming style.

Hi slinga.

I actually really like Yabause as it is an open-source emulator, but I've had some problems getting it to run games smoothly. It might just be my system, but I also realize the emulator is not yet fully mature. I was planning on using it to test though! I'm probably going to start out doing mostly 2D oriented stuff anyways.
 
Back
Top