Pseudo Saturn FAQ, May 2017 edition

Written by cafealpha 8 comments
Here is a small FAQ about Pseudo Saturn, so that it may help people experiencing troubles when installing or using Pseudo Saturn, and also ... reduce the number of inquiries in my mailbox

Pseudo Saturn 0.832 "Booting CD ... Error 1" message when trying to load a game.


The "Booting CD ... Error 1" message.
Special Thanks to C.L. for reporting the problem and sending the picture

This problem happens with Pseudo Saturn 0.832, both "no logo" initial build and final release with classy logo.

It concerns :
 - A specific hardware revision of Saturn : Japanese grey model 1 (95% sure), with power supply connector screwed to Saturn top case (not so sure).
 - Any game or application on burned on CD-R

So if you have Pseudo Saturn 0.832 and the "wrong" (incompatible) hardware revision of Saturn, it's not possible to play any CD-R copy of your games, and consequently can't upgrade your cartridge to other version of Pseudo Saturn, since it requires to boot a CD-R

Annoying isn't it ? The countermeasure is to either :
 1. Install latest Pseudo Saturn Kai on your Saturn cartridge
 2. Use another Saturn, compatible with Pseudo Saturn 0.832 :
      - Model 2 Saturns are 99% safe : I didn't received any "Boot Error 1" report with model 2 Saturn.
      - Please try on another model 1 Saturn only if you were lucky that day, else please be sure that this other Saturn won't be compatible too

Owning a spare and compatible Saturn -or being friend with somebody owning one- is the best solution, since it allows to both upgrade to Pseudo Saturn Kai, and to play games compatible with "JHL (PS 0.832)" game loader.

Owning only 0.832 incompatible Saturn(s) will bring you to "install Pseudo Saturn Kai on a bare Saturn" step, so basically requires to open your Saturn, watch swap trick tutorials on youtube, fail several times in trying that ('%)=(&$ swap trick, finally success in installing Pseudo Saturn Kai , look for one missing screw in order to put back Saturn top cover, re-open the Saturn in order to remove the tape on CD-ROM lid open switch, and finally put back the Saturn in its original condition

Long install steps ? Yes, but at the end the problem will be fixed (if not, please contact me)
However, there's a limitation when using Pseudo Saturn Kai on model 1 incompatible Saturns : the few games not compatible with Pseudo Saturn 0.831 won't be playable
Incompatible games are the ones marked as requiring Pseudo Saturn patcher utility, in Pseudo Saturn Kai compatibility list. Notable examples are Panzer Dragoon Saga, Batman Forever and Alien Trilogy.

You sold a kidney in order to buy original discs of Panzer Dragoon Saga, and really want to play their CD-R copies on your model 1 Japanese Saturn so that original discs won't be damaged ?

Except selling the remaining kidney in order to buy a Rhea/Phoebe (), the only solution is to wait until a new version of Pseudo Saturn Kai is released, and hope I find a fix to this problem.
While waiting for new version of Pseudo Saturn Kai, how about trying games that Pseudo Saturn Kai can play with its good old "CWX (PS 0.831)" game loader ? I would for example recommend NiGHTS into dreams, Shining Force 3 series, and also Virtua Fighter Kids



"Firmware file read error !" message when trying to install Pseudo Saturn Kai

"Firmware file read error !" message (hard to read, sorry).
Grabbed from reddit, special thanks to yoqu for reporting the problem

First, I fixed error text display in Pseudo Saturn Kai's latest release (v6.074) : it is now displayed with white background color. Readability varies from a TV monitor to another, so please contact me if that's still not readable on your TV

This problem is generally caused by incorrect timing when performing swap trick, which makes Saturn booting Save Data Manager and Flasher utility from CD-R, but not being able to read files from CD-R after that.
Another causes may be Saturn's laser incorrect calibration, or affinity problem between Saturn CD block and CD-R brand, or burn settings.

The countermeasure is simple : please use Pseudo Saturn Kai alternate flasher utility, located in Pseudo Saturn Kai latest archive → pskai_alternate_flasher.iso. This requires another CD-R, but this will work
And, burning Pseudo Saturn Kai Save Data Manager and Flasher utility (pskai_sdm_flasher.iso) wasn't a waste, since it will boot correctly after flashing your cartridge to Pseudo Saturn Kai. Save Data Manager contains many save data to import to your Saturn, so you probably want to use them in order to start playing your favorite game elsewhere than level 1

So, what's the magic behind Pseudo Saturn Kai alternate flasher utility ? nothing really special in fact : both flasher executable and Pseudo Saturn Kai firmware data are packed in a single Saturn executable file. So as firmware data is loaded just after performing swap trick, file read error won't happen


Definitely not a smart way to counter a problem,
but it works, which is the most important


This "alternate" flasher utility was developed before Pseudo Saturn Kai, and used in Pseudo Saturn 0.83x flasher utilities. I then developed an "all in one" Save Data Manager & Flasher utility on a single CD-ROM which allows to flash cartridge, manage save data, etc.

I though this would make the "alternate" initial flasher utility obsolete, so that it was dropped in Pseudo Saturn Kai 6.036 and 6.037 releases ... unfortunately I was reported about that "Firmware file read error !" problem after that
So as a countermeasure, I restored this utility from Pseudo Saturn 6.074. Sorry for the troubles caused

Additionally, some more informations about this problem are displayed in current (W.I.P.) Pseudo Saturn Kai version.

Updated error message in flasher utility.

Pseudo Saturn Kai development continues ! Stay tuned

Read more Pseudo Saturn FAQ, May 2017 edition

Gamer's Cartridge out of stock :]

Written by cafealpha 5 comments
Out of stock ":]". I'm glad to have finished this batch
I don't plan to sell Gamer's Cartridge for a while, because stock of parts to build theses cartridges (electronics components, PCBs, labels, etc) is currently very low here. I'm even lacking of bubble paper used when shipping cartridges

So, what's next ? Of course, Saturn stuff  I plan to use this "break" in cartridges manufacturing and sales in order to continue Pseudo Saturn Kai development.
Main feature to add is cheat codes, which is a bit "heavy" one to implement, because processing in order to make cheat codes working isn't documented in details.
But that will be done ! Also, there are some side quests here and there regarding Pseudo Saturn Kai features. I plan to implement as far I can, so it will be limited only by my free time, my motivation, and flash ROM remaining on cartridge

data/images/20170215_sgc_v33b_gerber_preview.tb.png
Gerber preview before ordering PCB on
Seeed Studio, very classy and realistic

Edit (2017/05/11) : finally back in stock
I catched the occasion to make some minor improvements to my homepage, such as adding anchor link to some sections, adding some directions for Japanese users, etc ... and I'm already full up with writing HTML

Edit (2017/05/12) : half of the stock already reserved oO
data/images/20170512_escalated_quickly.jpg
Cartridges are assembled by hand, hence stock is small, but I'm impressed anyway

Read more Gamer's Cartridge out of stock :]

Pseudo Saturn Kai lite firmware fixes and improvements

Written by cafealpha no comments
One month from last update, but not significant updates
The reason is that children fought with nearly all typical winter diseases during the last three weeks : mumps, influenza (x2), gastro enteritis, and finally otitis ... x2 too

data/images/20160314_gg_winter.tb.jpg
Internet husband ...
I hesitated to put other pictures like "x2 combo !"
and "body temperature over 40 ? High score !"

Children were relatively safe from winter diseases until last month, but last spurt until summer was relatively heavy for them


So, no significant updates, but various minor updates :]

Among theses updates, main menu display has been improved when lite version of the firmware is used :
 - "Extra" features moved to main menu
 - System status now displays Saturn related informations (BIOS version and PAL/NTSC frequency information) rather than nothing when USB and SD card aren't detected.
Theses changes concerns USB dev cart and Action Relay users, hence the majority of Pseudo Saturn Kai future users, so theses changes couldn't be avoided before initial release

Here are pictures taken before and after the changes.
Many thanks to Zone66x for testing and taking theses pictures

data/images/20160303_pskai_5820.tb.jpg
Pseudo Saturn Kai v5.820 : status display was a little "empty"
And USB port was incorrectly detected when running from Action Replay ...



data/images/20160310_pskai_5875.tb.png
Pseudo Saturn Kai v5.875 : some saturn informations are now displayed.
There's no simple way to detect if cartridge is Action Replay or not,
so generic "Boot Cart" string is displayed when cartridge type is unknown.

And main menu is a little simpler :
no longer need to go to sub menu in order to access extra features.


Also, Zone66x verified that Action Replay communication port (parallel-like port) was usable with Pseudo Saturn Kai. Thank you for testing



Another new feature I'm proud enough to introduce it on my blog is the soft reset "à la carte"
Soft reset is used in Pseudo Saturn Kai when loading game from CD-ROM, and also when executing program received from USB port.
Basically, it wipes all memory, and puts VDPs memory and registers in initial state, which is good when loading game from CD-ROM, but causes problem when Saturn developer wants to do something else than "just" executing program on main RAM.
The "à la carte" advantage comes here : it is possible to select which module to soft-reset, and which one to let as-is before executing program.

Here is an example :

data/images/20160318_pskai_main_screen.tb.jpg
Pseudo Saturn Kai (lite version installed on USB dev cart) main screen.
Test program will be executed from this screen.

Let's try to let VDP registers and VDP1 RAM as-is when uploading test program :
data/images/20160318_test1_satlink.tb.jpg data/images/20160318_test1_result.tb.jpg
Soft reset "à la carte" settings and execution result :
Starfield (VDP1) remains in memory and is displayed on test program.


One more try, but with VDP1 RAM clear before execution :

data/images/20160318_test2_satlink.tb.jpg data/images/20160318_test2_result.tb.jpg
Soft reset "à la carte" settings and execution result :
As VDP1 RAM is cleared, starfield is no longer displayed.

Possibilities for this features are relatively wide : it's for example possible to upload graphics on VRAM, then level data on sub RAM, then execute test program on RAM.
I hope this will help to improve Saturn homebrew development scene :)

Read more Pseudo Saturn Kai lite firmware fixes and improvements

Iso/Cue "loader" works on real hardware :]

Written by cafealpha no comments
(For more informations, you can also read this old article.)

I finally had time to use my Saturn, and I could verify that iso/cue "loader" works on real hardware !
Of course it works well when reading from RomFs, and it works also well when reading file from SD card

data/images/20150626_iso_loader.tb.jpg
My test environment ... sorry for the mess
(Micro SD card is located on top-left of the cartridge)

I lost some time to understand why data transfer from SD card was slower than expected, but finally understand why : some debug/whatever delay routine was called when accessing cartridge registers ...
Just putting some #if 0 around this delay code solved the "problem" ^^;

Read more Iso/Cue "loader" works on real hardware :]

Iso/Cue "loader" works :)

Written by cafealpha no comments
Classified in : etc, Saturn, Programming, Mylife Tags : saturn, iso, loader, firmware, beta
So I am making an enhanced version of Pseudo Saturn firmware.
And, as an extra feature of this firmware, I added an iso/cue "loader".
data/images/20150603_dr.evil.laser2.tb.jpg

Why the quotes around "loader" ? Because it doesn't emulates CD-block
So, it only loads few homebrew games, but it's enough for me, and I don't want to waste more time on adding CD block software emulator while better solutions (rhea, jhl's "mpeg" cart, etc) already exist.

As an other bonus, I also added RomFs support to my Saturn library
It is like romdiskfs that is widely used on linux, DS homebrew, etc, but it allows file compression, some other features, and ... is probably buggy because I coded it from scratch

(*) Virtual file system is not really new on Saturn homebrew scene, because Piratero already implemented one in libyaul a while ago


data/images/20150603_romfs_filelist.png
RomFs root folder contents. I will load sl_elf.iso file in the next paragraph.

So here is a capture of yabause running sl_elf.iso, after decompressing it from virtual file system stored in Flash memory.
sl_elf.iso is "satdemo" made by CharlesDoty, grabbed from SaturnOrbit's examples (Thank you Rockin'B for making SaturnOrbit ! After 10 years, it still have it installed on my laptop's hard disk ).

data/images/20150603_isocueloader.png
yabause running Saturn demo from iso file, near SatLink software I use in order to debug my Saturn programs.

Very big thanks to the yabause team ! I grabbed the iso/cue loading routines from yabause sources, and it was very easy to port them

Edit : I removed unused code (CD Block emulation routines, etc) from iso loader module, and .o size dropped from 74KB to 18KB oO

Edit (2015/06/26) : I tested this code on real hardware, and it works too ! Please see this article for more details.

Read more Iso/Cue "loader" works :)

Rss feed of the tag