Saturn Game Tutorial & Demo

RockinB

Established Member
Saturn Game Tutorial & Demo

About:

This is supposed to help people to get into Saturn homebrew development.

It's made of 3 parts:

Saturn Game Tutorial,

Saturn Demo

sprite/animation preprocessing script for The GIMP

The Saturn Demo is build with SaturnOrbit, the Saturn dev environment for Windows.

Join the C4 - 2005 Saturn Coding Contest!

Feedback is appreciated!

SaturnOrbit, the C4 - 2005 Saturn Coding Contest, the Saturn Game Tutorial & Demo......

what alse could be done to recrute new Saturn coders 😀 ?

Read online:

http://www.rockin-b.de/saturn/SaturnGameTu...ameTutorial.htm

Download:

Saturn Game Tutorial (html + images) +

Saturn demo (for SaturnOrbit, C source, bin, iso, all GFX and SFX, conversion scripts, NO CD AUDIO TRACKS) +

sprite & animation conversion script for The GIMP 2

SaturnGameTutorial_050701.rar

mp3 music for the Saturn demo (seperate CD AUDIO TRACKS which are not included above)

SaturnGameTutorial_music.rar

Features of the demo:

* background bitmap image with DHUFF compression is loaded from CD

* sprite/ texture table can be loaded from CD (with optional RLE compression) or hardcoded in binary executable

* textured polygons (Saturn planet: 256, Saturn rings: 32)

* realtime gouraud shading (Saturn planet only)

* full featured CD audio playback, audio tracks included

* PCM playback (2 small hardcoded, 1 large loaded from CD)

* short sprite animation of images in sprite table

* long sprite animation loaded compressed from CD

* multitap compatible

* multiregion

* exit to multiplayer or demo demo loader by pressing START+A+B+C

Burn the demo:

Download both files above, place the mp3 music in the demo folder.

Burn the demo/SaturnGameTutorial.cue sheet with

Nero, Alcohol 120%, Fireburner or CDRWin

Controls of the demo:

Holding down one of the A/B/C/X/Y/Z triggers activates a certain input mode.

For each mode, the D-PAD, START button and L/R triggers have special meanings,

which is displayed on screen by the text HUD.

modes:

A - sprite x/y position + sprite change

B - sprite zoom/rotate + sprite change

C - polygon x/y/z position, toggle realtime gouraud

X - PCM player, 3 sounds

Y - CD audio player, play, pause, stop, fast forward/backward, next/previous track

Z - polygon x/y/z rotate, toggle realtime gouraud
 
Saturn Game Tutorial & Demo

Someone please make a better screenshot,

this one is from Saturnin:

(on real hardware there are not wholes between the polygons)

[attachmentid=1354]
 

Attachments

  • SGT_Demo_Saturnin.PNG
    SGT_Demo_Saturnin.PNG
    63.6 KB · Views: 269
  • SGT_Demo_Saturnin.PNG
    SGT_Demo_Saturnin.PNG
    63.6 KB · Views: 269
  • SGT_Demo_Saturnin.PNG
    SGT_Demo_Saturnin.PNG
    63.6 KB · Views: 266
  • SGT_Demo_Saturnin.PNG
    SGT_Demo_Saturnin.PNG
    63.6 KB · Views: 259
Saturn Game Tutorial & Demo

Never again will we have to pour through the SGL manuals to remember how to do something :lol: , heck, I know personally there's alot of the stuff in the tutorial I had no clue even existed, and can't wait to try out!!

Thanks for your hard work Rockin'-B!!

Between this & SaturnOrbit...now there's totally no excuse for new coders not to jump on board.
 
Saturn Game Tutorial & Demo

It's not meant to replace any good manual.

Wow, thanks for your incredible feedback, guys!

I had 5 replies in a few hours on another board...
 
Saturn Game Tutorial & Demo

Rockin'-B,

An excellent tutorial! Thank you so much for all your hard work and contribution to the Saturn Development scene.
 
Saturn Game Tutorial & Demo

Rockin, your tutorial is really good and I think i'll use it for the some parts that I have no skills (sound for instance 🙂) but I notice something that may be wrong here :

Unlocking the CD:

As you have booted the Saturn from cartridge, the CD block has not authenticated/unlocked the data track.

But you can't access the CD (except CDDA, maybe) as long is it's locked.

You can request authentification manually at startup of your game, before accessing or initializing any CD file system stuff, by calling CdUnlock().

Pitfall: just like when starting the Saturn with a CD-R you will have to perform the swap trick here, unless your Saturn got a modchip.


For me you can read a data track after calling cdUnlock if there is no IP.bin on the CD.

I'm sure I managed to read the content of a cd by this way. I was close to run my bootloader from a binary sent through a PAR.
 
Saturn Game Tutorial & Demo

Thanks for your feedback, it's always welcome!

Originally posted by vbt@Sat, 2005-07-23 @ 05:23 PM

...something that may be wrong here:

For me you can read a data track after calling cdUnlock if there is no IP.bin on the CD.

I'm sure I managed to read the content of a cd by this way. I was close to run my bootloader from a binary sent through a PAR.

[post=137145]Quoted post[/post]​


If that's the case, my friend, it's just everybodies solution!

( This would mean the security ring is only read when an IP.BIN is present....cracking the copy protection: making a Saturn app which performs CdUnlock(), flash the PAR with it, burn ISOs without IP.BIN -> copy protection cracked. Think we should divide the price into 2 pieces, vbt 😉 )

I can't test it as I don't have a Commslink cart. This definitely needs to be confirmed.

Again, if this is true, than you are my god!
 
Saturn Game Tutorial & Demo

Originally posted by Rockin'-B@Sun, 2005-07-24 @ 01:46 PM

Thanks for your feedback, it's always welcome!

If that's the case, my friend, it's just everybodies solution!

( This would mean the security ring is only read when an IP.BIN is present....cracking the copy protection: making a Saturn app which performs CdUnlock(), flash the PAR with it, burn ISOs without IP.BIN -> copy protection cracked. Think we should divide the price into 2 pieces, vbt 😉 )

I can't test it as I don't have a Commslink cart. This definitely needs to be confirmed.

Again, if this is true, than you are my god!

[post=137178]Quoted post[/post]​


🙂 It was dicussed here :

http://forums.segaxtreme.net/index.php?showtopic=15520&st=60

Anyway I'll retry 🙂 I'd like to load a binary on a Cd from the PAR. Do you know a way to load a binary into memory after loading a first binary (without using the FLD Lib) ?
 
Saturn Game Tutorial & Demo

Originally posted by vbt+Sun, 2005-07-24 @ 05:07 PM--><div class='quotetop'>QUOTE(vbt @ Sun, 2005-07-24 @ 05:07 PM)</div><div class='quotemain'>🙂 It was dicussed here :

http://forums.segaxtreme.net/index.php?showtopic=15520&st=60

[/b]


Oh yeah, I'm so forgetfull...

<!--QuoteBegin-vbt
@Sun, 2005-07-24 @ 05:07 PM

Anyway I'll retry 🙂 I'd like to load a binary on a Cd from the PAR. Do you know a way to load a binary into memory after loading a first binary (without using the FLD Lib) ?

[post=137182]Quoted post[/post]​

[/quote]

Why not loading (to the default location) and executing the ip.bin (doing it like the BIOS, but without BIOS call)? The file must be placed on the CD as all other files. I'll try it, too. But It's not my interest that the copy protection gets cracked.
 
Saturn Game Tutorial & Demo

I can confirm that!

You definitely can access a data track of a CD without security ring, if it does not contain an IP.BIN. Calling CdUnlock() does not perform the security ring check, if the IP.BIN is not present on the disc.

Cool! This is good news for homebrew commercial games :banana .
 
Saturn Game Tutorial & Demo

Originally posted by Rockin'-B@Mon, 2005-07-25 @ 10:15 PM

I can confirm that!

You definitely can access a data track of a CD without security ring, if it does not contain an IP.BIN. Calling CdUnlock() does not perform the security ring check, if the IP.BIN is not present on the disc.

Cool! This is good news for homebrew commercial games :banana .

[post=137248]Quoted post[/post]​


It's time to finish your racing game 😉

I'd try to have a look on it 🙂 Do you know the limit of polygons you can display ?
 
Saturn Game Tutorial & Demo

Originally posted by Rockin'-B@Fri, 2005-07-01 @ 02:31 PM

Someone please make a better screenshot,

this one is from Saturnin:

(on real hardware there are not wholes between the polygons)

[attachmentid=1354]

[post=136108]Quoted post[/post]​


Cool, some stuff working on Saturnin 😛

Good work Rockin'B :thumbs-up:

Holes between polygons appear on some kind of sprites (I don't remember which ones), I have to change global positioning of the remaining sprites (just adding one pixel to the display, not much to do 😉 )
 
Back
Top