Another Saturn SDK

It looks like getting Code::Blocks building from a Windows machine won't be too difficult. I just have to generate the makefile, then use sed to fix the few issues that arise. After doing a manual run on the IDE repository it looks good. Next will be to integrate the IDE into the install process. Be forewarned that it has not been extensively tested, so use at your own risk (or if you want to help improve it, submit a pull request to the Git repo on GitHub, using the saturn_ide branch).

EDIT: Here's a quick screenshot
uc

uc
 
Last edited:
> Now that I think about it; I don't even have a way to program the chips on the board, anyway.  That was a major oversight.  I'd appreciate it if you could populate the board.


You can program the chips by using a Saturn and flasher utility ↓
http://ppcenter.webou.net/devblog/article/58/saturn-cartridge-firmware-flasher-utility-major-final-update.html
It requires your Saturn to be modchipped, but it is not necessary if you can boot from CD-R by using swap trick method.
(please let me know if you want complete cartridge, or PCB only, or nothing special)


Your integration to Code::Blocks looks good !
If it can compile a couple of sample projects just after installation, it will certainly bring new Saturn homebrewers :)
(Note : 3AM is late enough to sleep :D )
 
cafe-alpha said:
> Now that I think about it; I don't even have a way to program the chips on the board, anyway.  That was a major oversight.  I'd appreciate it if you could populate the board.


You can program the chips by using a Saturn and flasher utility ↓
http://ppcenter.webou.net/devblog/article/58/saturn-cartridge-firmware-flasher-utility-major-final-update.html
It requires your Saturn to be modchipped, but it is not necessary if you can boot from CD-R by using swap trick method.
(please let me know if you want complete cartridge, or PCB only, or nothing special)
I haven't tried the disc swap trick before, plus I only have one Saturn (that works =P). When you say "complete cartridge" do you mean a populated PCB or a plastic cartridge, too? I have some 3rd party memory cartridges that I don't mind modifying.

cafe-alpha said:
Your integration to Code::Blocks looks good !
If it can compile a couple of sample projects just after installation, it will certainly bring new Saturn homebrewers :)
(Note : 3AM is late enough to sleep :D )
Thanks. It took a lot of looking around the Code::Blocks source, modifying a few things, recompiling, and testing to figure out how to set up the Saturn project wizard. It was straightforward in the end. I have a simple while( 1 ) program, though I haven't tried to integrate it into the IDE yet.

Yeah, I got to sleep at 05:00. I couldn't sleep knowing there was one more thing I could tweak to make the build work without user intervention.

Currently, I'm having quite a time getting it building on my Windows machine via SSH. As I use GnuWin32's sed and coreutils, Cygwin is interfering with them. The reason is that I'm using Cygwin's sshd (as it was the one that worked with no problems), then calling 'cmd' to launch a Windows command prompt. Cygwin passes in its PATH, which has Cygwin's binary directories before the base Windows ones. So I need to somehow remove all pahts with cygwin/cygwin64 in them.
 
Good and bad news. The bad news is that the 32-bit Linux version of the IDE isn't 100% working. The good news is that if you want to try it out on Windows 32-/64-bit or Linux 64-bit, it should be okay. Currently, there is no support for the Saturn in any capacity. I could shift focus onto that now, though I still haven't got a native 32-bit Linux or native 64-bit Windows build working (at the moment, the 32-bit Windows version is running on 64-bit Windows). Version information is also broken at the moment.

Project documentation is non-existent, and I would like to fix that. For now I'm going to try and use the GitHub wiki system per project to outline what each component is and does as well as future improvements. I also encourage everyone to use the bug tracking system on GitHub if you find something doesn't work the way it should.

Going forward, version 1.0 of the IDE will have codenames, using Virtua Fighter characters as the codenames. An initial roadmap can be found on the wiki: https://github.com/SaturnSDK/Saturn-SDK-IDE/wiki/Roadmap.
splash_saturn.png
 
> I haven't tried the disc swap trick before, plus I only have one Saturn (that works =P). When you say "complete cartridge" do you mean a populated PCB or a plastic cartridge, too? I have some 3rd party memory cartridges that I don't mind modifying.

By complete cartridge, I mean a populated & flashed PCB only. Unfortunately, I don't provide cases, but you can use your USB dev cart without anyway :)
 
Update on the Windows 64-bit and Linux 32-bit versions of Code::Blocks. It would appear that Code::Blocks for Win64 would work, but I need to use an experimental, unstable version of the IDE to do so, which may also mean moving the Linux version to it as they both use a newer version of wxWidgets. I have no idea what is broken in the new version, so until a stable version is out, there's still the option to use the current 32-bit Windows IDE for both 32-bit and 64-bit Windows. As for the 32-bit Linux version, I'm creating a new VPS to build that, so it shouldn't be a problem.

cafe-alpha said:
> I haven't tried the disc swap trick before, plus I only have one Saturn (that works =P). When you say "complete cartridge" do you mean a populated PCB or a plastic cartridge, too? I have some 3rd party memory cartridges that I don't mind modifying.

By complete cartridge, I mean a populated & flashed PCB only. Unfortunately, I don't provide cases, but you can use your USB dev cart without anyway :)

A complete cartridge would be great, thanks =D.
 
A quick, but important, update. The 32-bit Linux version is working. Unfortunately, I haven't been able to get wxWidgets 3.0 to work with Code::Blocks to successfully build for 64-bit Windows. At least the 32-bit Windows version will work on both 64-bit and 32-bit. I will be concentrating on getting a basic template done for the Saturn from within Code::Blocks. Then I'll be working on GDB integration (at least on physical hardware for the time being).

EDIT: I almost forgot; GCC 5.1 is being released on Wednesday, so look forward to that =D.
 
GCC 5.1.0 is now available, you can use the maintenance tool (uninstall in older versions of the installer) to update to the latest version. I have removed the version numbers when installing, the full description now has the version number.

I'll be working on getting a simple Saturn game sample up and running with the IDE, as well as including an ISO creation tool in the SDK. At the moment, it would seem the Qt Installer Framework does not allow for setting environment variables on none-Windows platforms, which means on Linux, you will need to edit your ~/.profile with the line:
export SATURN_ROOT=$HOME/saturndev/saturn-sdk
Which will be fine for the default location of the SDK. Change this environment variable to suit your installation.

N.B: Last night I accidentally committed a change that broke the IDE for Linux, which I didn't test before uploading. Sorry about that. It's fixed, now.

24|04|2015 @000
I figured it didn't make sense to create a new post. I've set up an SH-2 compiler for Code::Blocks (requires the SATURN_ROOT environment variable) and have successfully built a simple Saturn program that does nothing other than endlessly loop. Though the process of creating the IP.BIN file, CD content layout, and the ISO are not implemented. There are still issues (such as a few warning messages when creating a Saturn Game project) remaining, but they shouldn't pose too big of a problem. Once these issues are resolved, I'll start work on a remote GDB server on real hardware.
 
great job RRR  :ridinghorse: i test gcc 5.1 and will check if there is some speed improvements :)
 
Thanks, vbt. cafe-alpha sent out a USB development cartridge last week, it looks like it may be here tomorrow according to the delivery status information. I've tried building mkisofs for Windows, which has been more difficult than I anticipated. On Linux I can build for the architecture the Makefile is run on, but can't figure out how to set it up to cross-compile. Unfortunate, but that shouldn't be a problem. At the moment, I'm working on a FLTK/command line IP maker tool and also figuring out how to integrate setting up the IP details from within Code::Blocks (currently looking at a few wxWidgets tutorials).
 
wxWidgets isn't too bad, I prefer it over Qt. When I first picked it up I had a hard time with the various GUI builders doing weird things, and came across random advice saying to learn by skipping those entirely, and random advice was right on the money. Way easier to learn that way.
 
Thank you RedRingRico for providing gcc 5.1 for SH-2 !
I updated my dev environment, and everything compiles/run fine. I didn't compared with previous gcc version however.
 
There is a very simple bare-bones example which you can create from the IDE (File>New>Project...>[SEGA Saturn]>SEGA Saturn Base), you will need to set SATURN_ROOT to point to your Saturn SDK directory before starting Code::Blocks (${HOME}/saturndev/saturn-sdk by default). The code is on GitHub: https://github.com/SaturnSDK/Saturn-SDK-Sample-00-Basic

I have been pretty busy with this game project, sorry it's taking me so long to get back around to the SDK. The next thing I want to do (other than GDB on hardware) is to automatically set the SATURN_ROOT environment variable (QtIFW makes it easy in Windows, but not so much in Linux =/).
 
Red Ring Rico said:
There is a very simple bare-bones example which you can create from the IDE (File>New>Project...>[SEGA Saturn]>SEGA Saturn Base), you will need to set SATURN_ROOT to point to your Saturn SDK directory before starting Code::Blocks (${HOME}/saturndev/saturn-sdk by default).  The code is on GitHub: https://github.com/SaturnSDK/Saturn-SDK-Sample-00-Basic

I have been pretty busy with this game project, sorry it's taking me so long to get back around to the SDK.  The next thing I want to do (other than GDB on hardware) is to automatically set the SATURN_ROOT environment variable (QtIFW makes it easy in Windows, but not so much in Linux =/).

Thank you :D ,
I'll check the example and I'll try to import the source of SonicJump.
 
I've had a mishap with my main development PC. The CPU is overheating and I cannot figure out why, the motherboard is reporting 84C at idle and I've tried four different HFS solutions (including water-cooling). At the moment, I'm thinking either the CPU is defective or the motherboard. As both are from late 2009, if I get a new motherboard and that doesn't resolve the issue, I'll have to also get a new CPU (and RAM, either way, I haven't found an AM3+ motherboard supporting DDR2). This has been something I have tried to resolve over the past month and it's been a laborious process of testing and re-testing, using up most of my nitrile glove supply.

At the moment (until I can get enough to afford a new motherboard and CPU) I'm working on my laptop, which only has Windows 7 installed (for testing my game). Currently I'm installing Sabayon (don't want to wear out my USB drive with Gentoo) under VirtualBox in order to get back to some sweet Saturn development.

As a side note; is anyone interested in an ARM+GNU/Linux version of the SDK? I'm thinking of people who have a Raspberry Pi or who want to switch to ARM for their machines for light development.
 
I've had a mishap with my main development PC. The CPU is overheating and I cannot figure out why, the motherboard is reporting 84C at idle and I've tried four different HFS solutions (including water-cooling). At the moment, I'm thinking either the CPU is defective or the motherboard. As both are from late 2009, if I get a new motherboard and that doesn't resolve the issue, I'll have to also get a new CPU (and RAM, either way, I haven't found an AM3+ motherboard supporting DDR2).
try to install "AMD OverDrive" and underclock one of your cpu core, on mine cpu2 is faulty, i have a x3.5 instead of x4 =)
 
Back
Top