Written by cafealpha 4 comments
Among the boring tasks remaining in Pseudo Saturn Kai development, there was "IP header CRCs merge to cheat codes list" task remaining ... ... There was, because I finally finished to merge the CRCs I could gather here ! Well, I think there are still 20-30% of the games in cheat codes list still not associated with any CRC, but anyway that's a fair amount of work done so far
Last CRC merged, at the end of cheat codes list Left text file : list of IP headers and their CRCs for each games I have here Right text file : Pseudo Saturn Kai cheat codes list
What is that CRC thing ? That's a value I use in order to identify each Saturn games. Thanks to such CRC value, it's possible to easily associate each cheat codes to a given game, and consequently automatically select game in cheat codes list according to CD-ROM inserted in Saturn CD lid. You don't like to manually select a game from cheat codes "select game" menu ? Me too So that I added this "automagically select game" thing in Pseudo Saturn Kai cheat code feature
By the way, it's probably a bit late for a surprise effect, but I'm glad to to announce that cheat codes feature will be available in Pseudo Saturn Kai next release
Basically, cheat codes handler now works ... for a majority of games tested so far. And user interface regarding cheat codes stuff is more or less okay ... but still needs to be perfected here and there.
So as you guessed, there are still details to complete until considering Pseudo Saturn Kai cheat codes feature ready for public release, and unfortunately polishing details usually (always) require time in software development, so let's hope next release will be available in a near future, which is "this year" in my own time scale regarding Saturn projects
Nights into dream cheat codes working ! That's the first game I used in order to test assembly version
of cheat codes handler
Having fun with cheat codes and USB connectivity on Radiant Silvergun
In-game memory contents are mine ! Ph34r my l33t h4Cklng sKI1lZ
So, the next development jobs are to support multiple CRCs per game : cheat codes list have several CRCs defined for some games (this is typically used for games using several CD-ROMs), but Pseudo Saturn Kai currently supports one CRC per game. Modifying the cheats list → data conversion utility in order to support multiple CRCs will be also an occasion to add some extra verification stuff regarding CRC, such as verifying that two different games don't collide on the same CRC, which is something like around 2500 different CDs versus 4 billions possible CRCs ... hence should be OK, but who know what may happen when developing software
After that, it will be probably be the time to do some testing on as many games as possible, in order to verify that cheat code and game are correctly associated, and to verify that cheat codes are correctly working, etc. Such task will require a significant manpower, hence to find a lot of beta testers. So if you're ready to give a hand, please stay tuned
Written by cafealpha 6 commentsPseudo Saturn Kai firmware development is currently paused in order to focus development into Save Data Manager application
Saturn Save Data Manager is an application in order to manage (copy, delete, etc) save data on your Saturn. Basically, it is similar to the save data manager provided by Saturn BIOS, but also offers extra things, such as multiple selection of items to copy/delete, GPL license, and also save data import from various formats.
Saturn Save Data Manager main screen running on emulator. It also works on real hardware, but I was too lazy to take a picture of my TV screen
At first, this Save Data Manager was made only in order to test Virtual Memory Cart behavior, so maybe user interface looks a little cheap, but I plan to improve this in the future according to first users eventual feedback
I really want to thank two people whose work helped to make this application : - Rockin-B : for his good old SaveGameManager application (yes, I copied the name of the application). - hitomi2500 : for his ss-save-parser application that really helped to understand Saturn Save Data structure. Also, I merged its Save Import related sources to my project, so that copying save data from dump file is possible directly on Saturn too
And, there's one screen that I need to show from ss-save-parser application : the "extract options screen". This is image is worth a thousand words when trying to explain how save data is arranged in Saturn backup RAM
THE screen everyone need to see before hacking Saturn saves data Save data is arranged as header (containing save name, comment, etc), then blocks allocation table, then data itself, with header data at the beginning of each blocks.
Extra #1 : last month, I took a video of USB dev cart in action ! Nothing really spectacular however, but please watch it if you want to see what developing application with USB dev cart looks like
My dev laptop, a plain, not modded Saturn and USB dev cart, ready for testing Saturn application on real hardware
Summary of the video (more details available in youtube page of the video) : - USB dev cart firmware update - CD-ROM unlock by using Pseudo Saturn hack - Upload and execution of program from PC to Saturn via USB, allowing testing of application performing CD-ROM access.
And last but not least, many thanks to beta testers for their cooperation and patience
Beta cartridge loaded on modded Japanese Saturn. Thanks to MeteK for beta testing and taking this picture Last week, MeteK reported that basic SD card access worked on his Saturn
Pseudo Saturn Kai System Information screen. Thanks to Alexandre Souza from www.tabalabs.com.br for beta testing and taking this picture
Additional pictures from Alexandre : cartridge without, then with shell. Alexandre is currently trying to 3D print cartridge shells. Please do your best
I still can't getting things working on Alexandre side : SD card doesn't respond to SPI requests from Saturn via my cartridge ... I suppose this is due to a bad hardware design on cartridge side, but I still need to investigate about this ...
Edit (2015/11/11) : it is fixed and verified here Fortunately, it was not an hardware error, but a firmware (SH-2 side) error. About details : I access SD card by using SPI protocol, and the reason some cards couldn't be initialized was due to the fact that commands were incorrectly received by SD card. Sending a dummy synchronization byte before sending command to SD card fixed the problem.
Log taken from my dev Saturn : first half is SD card initialization sequence, and second half is data blocks reading.
It works under custom build of yabause too Thanks to this, most of the tests could be done on PC, which saved a lot of development time. Thank you yabause team
After doing some testings on my side, I could verify that : - SD card access works fine on all the 6 Saturns I own - Some SD card can't be accessed via my cartridge, while the others work fine. (← fixed)
Saturns used for testing. The one on the top of the picture is my good old dev unit
SD card that aren't recognized by my cartridge. Edit (2015/11/11) : I fixed firmware and 32GB micro SD card above was recognized (I didn't tested with the other SD cards, but I suppose it is now OK too.)
SD cards that were correctly recognized by my cartridge.
To conclude this article, I have to say than this project doesn't make exception to Muphy's Law :
Anything that can go wrong will go wrong
Beginning of year (2015) : Virtual Memory Cart related debug. After verifying that it has the chance to work, I temporary stop its development, mostly because I was bored to continue development of this feature ^^; Until this summer : a lot of struggle with Pseudo Saturn 0.831/0.832/flasher/etc related things. September : SD card library related troubles. Try to get a solution by using -and trying to fix- thinfat32 library. Using fat_io_lib was a better choice, thank you hitomi2500 for your advice about this library October ～ Now : Troubles with SD card on Alexandre side ... will work if another SD card is used (currently waiting for test results) ?
Anything that can go wrong will go wrong
But at least, beta cartridge half works, so I can safely continue its development
I plan to release the first batch of cartridges with SD card included, so that there won't be incompatibility issues on user side. As my project is a low cost one, and also because it won't load commercial games, I plan to sell the cartridges with low cost (8GB or maybe 16GB) SD cards. Edit (2015/11/11) : SD card compatibility is likely to be fixed, and as far as possible I don't want to do SD card stock management/etc, I will probably release cartridges only. There still no release date to announce, because some fixes/features addition/testing/etc is remaining, and also because I mostly do this for fun
Written by cafealpha no comments
After making some cleanup in my development folders, I found an old archive file It is dated 2007 June 20, and contains a very early version of ietx2, which is an adaptation of yeti3D engine to Saturn. At that time, I was using a PentiumIV processor and 80GB IDE hard disk in order to run sh-elf-gcc provided by SaturnOrbit ... very nostalgic times ... but I definitely prefer nowadays for Saturn development
Iso file can be found >>> here <<<. (No, there are no sources available, because I didn't kept archives of sources at that time.)
Please don't waste a CD-R for this. You can try on yabause, or just look at screenshot and say "hey, very ugly stuff" however.
ietx2 beta screenshot : not enough time to draw last quads in VDP1 list, hence the garbage on foreground.
ietx2 beta screenshot : example of incorrect rendering when quads coordinates exceed 16 bits range.
You can find current version (ietx2) and sources of my Yeti3D adaptation here (dated 2011 April 19). Also, there are videos of ietx2 available below. Click on the links to display them on youtube.
I'm still maintaining sources of ietx2. I renamed project name to ietx3 (yeah, I'm not very original when choosing project names ), and now use a lite version of Yeti3D PRO engine ... "lite" means original, minus a lot of features, in order to keep a decent frame rate, and fitting to Saturn resources. You can find some videos (binaries are not released, sorry) on my youtube channel :