Home | Forums | What's new | Resources | |
Windows Dev Environment for Saturn |
VladR - Sep 26, 2018 |
VladR | Sep 26, 2018 | |||
Hi, Not sure if anyone here follows Jaguar development, but I'm currently a full-time Atari Jaguar developer (took a break in my SW engineering career, to follow my passion), with my first game to be released around January 2019. Here's a very old vid of the game, originally inspired by StunRunner, running on the engine I've been developing in my free time these past few years (before going fulltime recently):
Since Jag & Saturn are so close, HW-wise, I have put a great deal of thought into porting my games to Saturn too. Initially, I was considering Dreamcast, but that's too far, technologically, and visually, so Saturn makes much more sense from that standpoint. And, given its VDP1/2 capabilities, adding texturing should be very easy. As Saturn has a fully working C compiler for SH-2s, it should be very easy for me to support Saturn as a second platform, compared to the development hell on Jaguar. Of course, the initial learning curve will be steep, but as I'm quite proficient in RISC and 68000 assembler, I know exactly what to focus on, so I really only need the initial nudge towards proper dev env. From some initial lurking around here, I noticed one thread about the dev env set-up (Red Rico's, I believe) that mentioned exactly same environment that I did 6 months ago when I was considering Dreamcast - to be more specific: - mingw-64 - texinfo - newlib - kos - gcc-4.73 - sh4-binutils - sh4-gcc - sh-elf - genromfs All that was done under MSYS. Am I going to be able to reuse this environment for Saturn ? The sh compiler supports multiple targets anyway, so SH-2 should be targetable, I presume ? Or is there a different, better alternative right now, in 2018 ? Note, that while I have working Saturn at home, it's unmodded, so initially, all my dev would be against emulator. For the developer, is yabause best or are there other emulators that would be better suited (say, with debugging, dump, or other dev functionality) ? |
SaturnTeam | Sep 26, 2018 | |||
I'd say the most modern option is using Jo Engine with Yabause and Pseudo Saturn Kai. But there are certainly different ways of going about it. |
VladR | Sep 26, 2018 | |||||
Thanks, just googled it and researching it. Haven't encountered it before, though noticed being mentioned in forums... |
mrkotfw | Sep 26, 2018 | |||
Yaul... has support for ROMDISK (and its related tools), as well as other features that would help you in development. The major downside is that it doesn't have sound support. Yaul is also open source, and it's license friendly for any commercial projects. There's also a MinGW 64-bit installer available here... with the cross compiler and all tools. I'm the author of Yaul, by the way. I have a few things under a private repo at the moment, which (should) help you. 1. Functions to synchronize both VDP1 and VDP2 2. DMA queue manager with per-request customization 3. Simpler approach to creating linked lists of VDP1 commands There's a few bugs I'm trying to iron out before I merge to the public repo. One thing to consider is that Jo is built on top of SGL. SGL/SBL are Sega's official libraries. There is Iaepetus..., but it hasn't been worked on quite a while. |
mrkotfw | Sep 26, 2018 | |||
As XL2 pointed out, you can hit the ground running with Sega's libraries. If you want to prototype on the Saturn, go with SGL, then port it to Yaul |
antime | Sep 26, 2018 | |||
If your SH4 toolchain was built using the KallistiOS build scripts, it only supports SH4 little-endian. It also has some KOS-specific modifications. |
antime | Sep 27, 2018 | |||
GCC can certainly be built under Cygwin, it just runs slower. |
mrkotfw | Sep 27, 2018 | |||
You can probably use the Yaul MSYS64 installer for SGL. That'll get you up and running the fastest. But in my toolchain, I removed support for Newlib. |