Running SaturnOrbit project on actual hardware?

Hi!

I've built an iso based on one of the SaturnOrbit examples (Reinhart's cube) and it runs in Yabause but not on actual hardware using the swap trick. I get the Sega logo but then it tries to read the disk and then falls back to the CD player dashboard.

Is there something I must do to make it work on hardware?

Thanks!

EDIT: Also works in SSF.
 
Last edited:
I don't think asking about the process is frowned upon here. If I knew how to do the swap trick, I would be of some assistance, however, I've always used a cartridge-based method (ARP or USB Development Cartridge) to alleviate stress on the Saturn's laser.
 
I've seen the USB-Cart from PPCenter, but I wasn't sure if was for me. It says it "allow(s) USB-based fast data transfer between your Saturn and PC." but it wasn't clear to me what kind. If I built a homebrew ISO, can I send it to the Saturn through the USB-cart and have it run? Does it have space limitations? What about if the homebrew project is large?

Like I said, I'm not sure what it does, so I don't know what I'd be able to do with it :)
 
What about the gamedata? Stored on a disk?

You can have your data on a CD and upload your binary. I've never done it myself, though.

Here's the thing though. If your application is very small, why bother with reading from the CD-ROM drive? Why not just store all your data in the binary itself?
 
If it's small, sure, keep it all on in the binary. I'm just wondering about how big that binary can be (how big?) and what you can do if you bust the limit.
 
If it's small, sure, keep it all on in the binary. I'm just wondering about how big that binary can be (how big?) and what you can do if you bust the limit.

Yes, and I would say to worry about that when you get there. You have close to 1MiB or less since you're using the SGL.

Undefined behavior. If you have some data that passes the 1MiB boundary, I believe you'll be reading a mirrored address (wrong data).
 
Yes, and I would say to worry about that when you get there. You have close to 1MiB or less since you're using the SGL.

It can even be close to 2MB in the case you upload data/watever to LRAM (1MB), then upload&execute main program from HRAM (around 1MB).


Undefined behavior. If you have some data that passes the 1MiB boundary, I believe you'll be reading a mirrored address (wrong data).

I confirm, undefined behavior, and you will wonder why your program don't work as expected until you verify program's .map file contents ^^
 
Going back to the original topic, I've written a simple shmup prototype and while it's working in Yabause, it's not booting up at all on actual hardware. I recently got and flashed an Action Replay. I've been able to run non-homebrew ISOs but not my homebrew projects. Any idea?

saturn_shooter.png
 
Cut down your project to the bare minimum, add back functionality in small increments that you can verify as working on the real hardware.
 
nice work ! which lib are you using ? did you setup cycle patterns ? did you create a valid ip.bin for the iso to boot up ?
send the binary here many people can test with a dev card .
 
If you're reluctant to show us the source, then providing some info on how you set the VDP1 and VDP2 would be helpful.
 
Cut down your project to the bare minimum, add back functionality in small increments that you can verify as working on the real hardware.

That's gonna burn a lot of CDs :)

nice work ! which lib are you using ? did you setup cycle patterns ? did you create a valid ip.bin for the iso to boot up ?
send the binary here many people can test with a dev card .

I'm using SaturnOrbit, I started my project off from the S_9_1 sample, which is a controller background with a hand icon pointing at various buttons when pressed.

I don't know what setup cycle patterns are.

The ip.bin I assume was built automatically through the toolchain. I'd need to verify that.

If you're reluctant to show us the source, then providing some info on how you set the VDP1 and VDP2 would be helpful.

I'll eventually release the code but for this problem, I'll just link to the original project I mentioned at the top of the thread. They're the simplest ones that show the problem.

https://dl.dropboxusercontent.com/u/17303735/saturn/spinningcube_sl_elf.iso

the project code:
https://dl.dropboxusercontent.com/u/17303735/saturn/cube.zip

and the project I worked from:

https://dl.dropboxusercontent.com/u/17303735/saturn/controller_sl_elf.iso

Maybe it is something with the packaging. I'll have to check when I get the time.

If someone can test those on a dev cart, that would be mighty kind!
 
Did some more poking around.

The IP.BIN used is indeed a default one from SaturnOrbit. Does it have to be customized?

If I compare Virtua Fighter 2's CD contents with my built ISO, it has the three .txt files and a 0.bin file but the VF2 disk has no 0.bin file. How does the Saturn know which file to load at the start?

EDIT: I noticed a AAAVF2.bin file on the VF2 disk. Maybe it just loads the first file by alphabetical name?
 
Back
Top