Today is some kind of special day for me : among many other things, this is the anniversary of Jean-Luc Le Ténia, the best French singer in the world ! Jean-Luc would had be 45 years old today but unfortunately is no longer here to celebrate today with us.
Today is also the 4th anniversary of Gamer's Cartridge initial public release. For more than three years, this project was the occasion to meet many people, to loose hair on many bug and -I hope- to have contributed in a better Saturn community
Jean-Luc Le Ténia is no longer here, Gamer's Cartridge production was frozen (not to say discontinued) last year because of enough free time lacking to assemble new cartridges. And Saturn gamers are now either using Action Replay (reliable expansion RAM but no backup memory) or "all-in-one" cartridge (backup memory but sometimes buggy expansion RAM) to play their favorite games.
To makes things a little brighter, the best I can do is to develop a new Pseudo Saturn Kai fitting more nowadays needs and situation :
Built-in support with latest ODEs
In-game save data access for Satiator ODE
Save data storage on cartridge flash ROM
As a consequence of my free time being limited from this year, I thought in stopping non-priority projects to focus on other (not necessarily Saturn) ones. But on the other side, if I don't improve Pseudo Saturn Kai, I'm not sure that somebody else would do it for me !
So if the Saturn community shows enough interest, I would like to contribute to a newer Pseudo Saturn Kai
And to measure if the community is interested or not, I'm making Pseudo Saturn Kai development crowdfunding-based.
Principle is simple : the more interest (support) from the community, the more free time I allocate on Pseudo Saturn Kai. And the less interest from community, the more free time I spend on other projects.
I don't plan to make a living in developing Pseudo Saturn Kai, and for this reason all the development made so far was done on a altruist basis.
All the development made so far (cheat codes, Rhea/Phoebe support etc) was cool but honestly a lot of work. So with your help I would like to find enough energy to give it birth again
I was recently asked about the instructions to compile Pseudo Saturn Kai from sources archive provided with Pseudo Saturn Kai binaries, so let's write a short blog article to make things clear to everyone.
The simple answer is : Pseudo Saturn Kai can't be compiled with theses sources.
End of simple answer. Those who want more details can refer to the few lines below.
Technically, some sources files are missing from source archive, preventing someone from opening sources archive, making some few changes, and installing it on a cartridge.
Why ? For the simple reason nobody won't help me if ...
Some dude takes sources, change logo and credits page and then release this as "Pseudo Saturn Kai Gold Edition made by some dude".
Some dude adds a major new feature to Pseudo Saturn Kai, and start doing business by making this firmware (and the cartridges compatible with it) available for paying. This dude will eventually forget to release any source, but who care about that except me and few other nerds ...
Maybe I would be told this I'm overthinking, but case 1 and 2 above already exist. Theses are detailed in another blog entry, and deserve a look if your time allows it.
Concretely speaking, there is one model using Pseudo Saturn sources (whose sources are fully available, and with build instructions too), hacked to don't show any startup menu (why not would you say, it's more convenient for the consumer), and consequently not showing any credits nor any mention it was made from Pseudo Saturn ... why not would you say, but that's a massive NO for me, and the Pseudo Saturn team will certainly not appreciate that too.
Some other projects are using fancy case and label instead of Action Replay ones (I'm OK with that, especially because Action Replay design guidelines are completely outdated), but don't mention anything about Pseudo Saturn Kai on their covers and labels until booting the cartridge and discovering ... a vanilla version of Pseudo Saturn Kai without any mention of the fancy product name advertised on the cartridge box and label I'm sorry for the consumers who were expecting firmware design to be unified with cartridge box and label : this wasn't done because some few files are missing in Pseudo Saturn Kai sources !
This case of "some people are making money from rebranded homebrew projects" is also detailed on Segaxtreme forums, which deserves a look if your time allows it.
The thread there is not by me, nor about Pseudo Saturn Kai, so I hope how real the fact is that there are people making money from other people's hard work ... that's maybe normal in any work place (), but that's a dick move in such a small Saturn homebrew community.
To sum up the bulky paragraph above, the way of sharing Pseudo Saturn Kai source code is not how it works in free software world.
In an ideal world, everybody share source code, and everybody other make contributions, and the project is getting brighter by brighter. So if the story stops here, I'm the bad one, but in real world, people deface the credits page, rebrand the projects under fancy names and start making cash and show business from projects they didn't contributed on ... Maybe it's selfish from me, but I don't want that and consequently removed few files from Pseudo Saturn Kai source code.
And if I may add an additional paragraph about Pseudo Saturn Kai, I would like to say it is quite open in the magic world of application to play games on Saturn real hardware : modchips are completely closed-sources, ODE too. In Pseudo Saturn Kai, the sources of the exploit to play CD-Rs, as well as the ones to redirect memory devices to SD card are available. The source code of the implementation of cheat codes engine is available too. I coded it from scratch because sources of Action Replay firmware are not open source ...
To add a bit of melodramatic taste to this blog article, I would like to say I spent the last four years developing Pseudo Saturn Kai.
I didn't asked for any payment about it. The next day after I received a $5 donation for it, I changed my donation page from "send money here if you want" to "send me kind message or a comment on my blog".
I didn't begged for any kind of crowdfunding too, and just wanted to continue the project where CyberWarriorX left it.
While four years seems a long period for just two or three features, you probably may want to look at Pseudo Saturn Kai credits page, and all the people who contributed to it. Theses two or three feature are not the kind of thing someone develop, test, re-test, fix, and keep testing more and more during a weekend. From my own experience, normal people don't continue development so far and just give up development after a couple of weeks. And, I won't appreciate this credits page to be defaced. Not for my nick to be removed (I'm listed there only one time), but for the respect to all the contributors being lost.
And while I developed custom cartridge using Pseudo Saturn Kai, I kept support for Action Replay cartridge and their clones. That may sound obvious, but technically speaking it isn't, mostly because Action Replay have limited ROM size. At some point of Pseudo Saturn Kai development, I hesitated to put cheat codes feature in a ROM portion larger than current one, but unavailable from Action Replay cartridges. This would had made more cheat codes available, but the feature itself usable on Gamer's Cartridge only. I choose to keep a reasonable size for cheat codes list, so that it would be available for everyone on Action Replay cartridges
Words count for this initially expected "short" article is about to reach four digits soon (it's 827 words now), and as I doubt a lot of people will read it entirely, it's probably time to conclude :
No full sources for Pseudo Saturn Kai
If you want to make you own Saturn cartridge firmware, then feel free to use Pseudo Saturn sources as a starting point.
Feel free to technically refer to Pseudo Saturn Kai source code, and to merge whatever you find interesting there to your project.
Still begging for Pseudo Saturn Kai full source code ? No problem, I shall make it available to everyone ... if there's not a physical disaster on my dev laptop or its SSD in the meanwhile.
At that time, this will definitely be the end of Pseudo Saturn Kai development. For you, and for me too.
It's not like being under a quota of articles to write every months would stop the financing of my Saturn projects and in fact, as described on my "donate" page or this blog article, I don't have any interest in crowdfunding, or some kind of third party financing : if I'm not in the mood, or don't have enough free time to update this blog, then I don't update it
But well, moreover not being paid for not writing blog articles, as I actually have to pay to keep this blog alive (web page hosting is cheap but not free, but at least it's my own homepage ), I like to feed this blog from time to time even when being busy with real life things
So don't worry, I didn't stopped this blog : currently, I have one ongoing article that is waiting for its last paragraph and proofreading etc, but as I started more than two weeks ago (yes, that's my usual pace when preparing blog articles), please be patient until I finish it
I do have some ideas for future articles too, but theses are just ideas currently recorded as single lines in my TODO list, so I don't know when I actually start writing them
Regarding Pseudo Saturn Kai project, I ... didn't had a lot of free time to continue it recently In fact, I think I just turned on my Saturn once last month just to test if -as requested by someone by email- DoDonPachi worked with Pseudo Saturn Kai or not. The game worked fine here, so I turned off my dev Saturn an put it back in my closet for better times when I will be more available
BTW, I'm currently experiencing an unexpected burst of things to do at work, so it may take a while until things return back to normal But as I can't live without doing my Saturn projects, I promise that things will return back to normal as soon as possible
... Well, the contents in this article are a bit poor, so let's fill remaining space with random facts about my life recently The "okra" plant I wrote about in a previous blog article is still going well and I continue to water it regularly.
Okra in all its glory, 2018/10/18
Since summer is now finished, I no longer have to water it everyday, so that I now just do this regularly enough to prevent it from finishing yellow and burned And yes, the kid who took back that from school completely forgot about its existence
I'm not keen on gardening (as suggested on the picture above, I don't even own a garden), but have a couple of pictures of other green things in reserve ... and I keep theses to fill future small posts
... One month ago, I wanted to announce that I wouldn't be available for several weeks, but I was suddenly taken in a storm of bringing/taking kids to/from schoolchildren care, washing bento boxes, going to work and the usual dish-wash/throw trash/laundry/whatever daily routines
Personally, I only had two rest days at the middle of August generously offered by employer as summer holidays ... two days !! That's one day, and ... one another day Moreover both are consecutive And that's ... so long I fear I would forget everything about work after such a long rest
Well, more seriously I took some day-off here and there during August too, and theses were a good occasion to refresh from everyday life
As a consequence, I completely neglected my email box during this period of time. Sorry to all concerned people !
I will try to tidy-up my mail box this week, but can't guarantee that everything will be done on planned time since day work went a bit crazy recently
So here comes some lines about my summer holidays ... hey, that's my homepage which I pay for hosting and where I installed and filled this blog, so I write whatever I want on it
So if you're not interested in me talking about my life, please skip until next horizontal separator
Summer 2018 activity #1 : going to the beach
As every summer, I celebrated the lapse of one year by going to the beach : four years ago, I spent nearly two months at hospital without any occasion to go outside, so that I like to take a revenge every year
At that time, I had around 50-60% of chances to be still here today. It's good to be alive
Well, there were a bit more medusa than usual, so I didn't swam so much, but that's better than not being able to go to beach at all anyway
Title: Japanese style toilet, by cafe-alpha kids, 2018
I like that they didn't spent half a day to do a instagram-compliant thing that would then be destroyed by the sea but had fun anyway
Summer 2018 activity #2 : watching typhoons
I don't know if that's limited to the region I live, but there were a lot of typhoons this year ! There wasn't any kind of major damage nearby, but not everybody in Japan could be that fortunate ...
Personally, it was the occasion to do some cleanup on the balcony : I trashed several things that accumulated over past year, and Mr Typhoon helped to clean up dust after that
I wish typhoon and other similar kind of natural disasters could evolve into intelligent entities to clean up earth from climate-skeptical trolls
Rare footage from the birth of a French citizen
(That's not super related with typhoons, but this is my blog,
and I write whatever I want on it )
Summer 2018 activity #3 : going to several kinds of museums
The kids like museums, especially to watch insects, machines or similar stuff. But museums close early, unfortunately.
Close at 4PM ?!
That's not a museum, but an hideout for civil workers
Always should read the little letters : "open until 4:30 PM ... but can't enter after 4PM"
The rear door was still open, so we could sneak inside anyway ... that's funny to hack museum rules
Went to aquarium too. That's a Hammerhead Shark.
And it's also a multi-purpose drawing :
tilt your screen and E.T. will appear
Summer 2018 activity #4 : watering plants Kid bring back okra from school. One of summer vacations homework was to take care of that thing, but from the limited range I could see, only me was doing such boring duty
Mr Okra in all its glory.
I put it near the space for hanging
laundry so that I don't forget to water it
Summer 2018 activity #5 : watching Saturn for real !
Local astronomy group prepared an "Watch Jupiter, Saturn, and also a bunch of other stars I forgot their name" event ... so I was super interested in it
土星, during small explanations about how to locate things in the sky.
Saturn was so bright it's hard to miss it in the night sky
But Mars was even brighter this summer !
This was also an occasion to assemble a small telescope by oneself. That's a cheap "30 bucks" model, but with lens good enough to see Jupiter moons oO
Summer 2018 activity #6 : adventuring in Tokyo
In order to renew a identification paper, I had to go to embassy located Tokyo : this was basically one day spent in transports, except 15 minutes at the embassy itself to sign a couple of papers, have my fingerprints taken, and pay 12198 yens
That's a long time I didn't get lost in Tokyo Everything was more or less smooth in changing from plane → train/subway → bus, but in the last steps walking to the embassy, the battery of my phone decided take a little rest for the remaining of the day
I was aware that battery wouldn't last long, so I printed nearly all directions, but last "use your own foots" steps weren't detailed a lot Fortunately the "ask random people around" solution could guide me to the embassy
The return back to home without help from phone was more or less OK, and when back to home I finally could unlock my phone
Why unlock ? Because my phone's power switch is broken At a moment, I asked for an estimation to my phone carrier to get this fixed, and price was around 80 buck-ish, so I decided it would be better to live with this broken switch rather than paying that
Now, I'm used enough to my phone power in sequence that I no longer consider it as a problem, but instead as child lock feature : if kid try to play game on it while it is running on battery, it turns off after around 5 minutes
My secret method to turn the phone on is to tweak the debounce circuit with a small wire. Electronics components there are super small (which is probably why the power switch broke ...), why requires the usage of tweezers or a small pliers hence can't be done outside since I don't always bring my electronics toolbox with me when I go on travel
This was "just" a routine appointment for periodic screening, and everything was OK This time was the occasion to celebrate the fourth year still alive after surgery
This is an archive picture : all the "no pokemon go in hopital"
warnings were removed. Instead there was a notice that
North side parking is not available, but I didn't took a
picture of it since I doubt the average reader of this
blog is concerned by such news
End of the personal and boring news August was also a time do PCB design to celebrate the 10th birthday of my favorite PCB house
(More pragmatically, I rushed to finish PCB design until August 31st because they were offering discount coupons until that date to celebrate this event )
Among PCBs ordered, there was minor change for Gamer's Cartridge, and a small board to flash MAX3000A CPLDs used in Gamer's Cartridge.
Gamer's Cartridge PCB rev 3.3 (c)
There's nothing changed nor deleted : I just added footprints for alternate voltage regulator : I'm using this alternate regulator in another project, so I would like to unify electronic components used in order to reduce stock management/space/etc to store theses two components. Additionally, this alternate voltage regulator is a bit easier to solder, so at the end I would like to stick with this one
CPLD flash board
That's a really simple board to interface between CPLD and programming hardware : so far I was flashing Gamer's Cartridge CPLD one by one after soldering each cartridges, but thanks to this board it may be possible to flash a batch of CPLDs in a row hence save some bits of time on my side
Synthesis ... this is the kind of blog article posted at the end of December in normal blogs, but since this is not a normal blog, and that I can't respect any schedule for it, let's prepare this article at the beginning of January
Last year started well with an order of Gamer's Cartridge from IGK, who is administrator of Dezaemon DB homepage. More than administrating Dezaemon DB, he is also a dezaemoner who (among other titles) developed Biometal Nemesis, which deserves its youtube link in this blog :)
Biometal Nemesis - Click above if you like shmups
I really like the style of this Dezaemon game ! Thank you very much IGK for creating such gem
Thanks to IGK, it was possible to finish support of Saturn Floppy Disk Drive on Save Data Manager : initialization of this device is slightly different than with internal backup memory and backup memory cartridge, and consequently was causing troubles on various configurations such as no backup memory cartridge inserted, but floppy disk connected, etc. Fixing all possible patterns wouldn't had been possible without kind help and beta testing from IGK. Thank you
Save Data Manager (version around 2017/01/30)
Configuration when this screen was taken was no "backup memory cartridge inserted, and floppy disk connected", which was causing troubles because among other things, unavailable device in the middle of devices table wasn't supported.
Additionally, this was the occasion to add virtual floppy disk support on Gamer's Cartridge, making Saturn considering a floppy disk drive is available, even if not physically connected. Main purpose of this feature is to add 5 more save and load slots in Dezaemon 2, which, in addition of the 5 slots on backup memory cartridge, makes possible to manage up to 10 saves into a Dezaemon 2 session directly from a single SD card I don't remember exactly what was the trigger which started the addition of this feature, but I think that a suggestion from IGK like "it would be cool if floppy disk would be supported by Gamer's Cartridge too" and me "Ah yeah, that's a nice idea ... how many save slots do you want ?"
After that, IGK continued to surprise me by asking his friend beebaraka to draw a Dezaemon 2 themed label for Gamer's Cartridge ... As a result, I received images for two labels, which I personally consider as the masterpieces among Gamer's Cartridge label collection My preference goes to the white-themed label, but I suppose it's just a matter of personal taste.
Dezaemon 2 themed Gamer's Cartridges
Like shooting games ? Like DIY ? Theses cartridges are designed for you
In parallel of theses Dezaemon 2 adventures, generous contributors helped in dumping firmware of some exotic Saturn cartridges, and were successfully added to Pseudo Saturn Kai Save Data Manager. Most relevant dumps were for X-Terminator cartridge, and Urawaza Dataro cartridge : first one is a cartridge with extended support for cheat codes, especially with extra controller allowing in-game search of cheat codes. Later one provides special save data for several (around 34 IIRC) Japanese games. Special thanks to Madrom for providing dump of this cartridge !
All the points below contributed to prepare the "20170423" release of Pseudo Saturn Kai. Warm thanks to all contributors who could make it possible !
Second half of the year mostly concerned cheat codes addition to Pseudo Saturn Kai. It started in June (or May ... I don't remember correctly) from a Gamer's Cartridge user asking when cheat codes will be available in Pseudo Saturn Kai ... this reminded me I still had to finish that until next release
First working version of cheat codes
hander, with USB transfer support
It's not visible on this picture, but many polygons weren't
drawn because of performance issues.
Unlimited time cheat code working : it took me around
one month to fix missing polygons, because of unoptimized
implementation of cheat codes handler), but I did it
Cheat codes kept me busy for six solid months, basically in understanding to manage cheat codes in a similar way as is it done on Action Replay firmware, optimizing critical code, importing codes list, finishing cheat codes related interface, testing several games, etc. That's honestly a hard work, but this was also an occasion to add in-game USB transfer via USB dev cart. Thanks to this, the basis in order to fix or improve cheat codes is ready Proper PC software for cheat codes detection is still missing, but hopefully this will be done someday.
Akumajo Dracula-X illustration with Maria's inifinite jump cheat code.
This game was a nasty one regarding cheat code support, with very
tight CPU and RAM left for cheat codes handler. This was an occasion
to develop many cheat codes debug features
Summer was also the occasion for me to officially end manufacturing and support of USB dev cart : after 5 years involved in this adventure, I considered it was enough, because : 1. USB dev cart interests basically nobody 2. In the rare cases USB dev cart interests somebody, it is usually used for closed-source projects (But there are notable exceptions where USB dev cart contributed to Saturn open source projects. Big thanks to theses concerned peoples for making Saturn homebrew scene brighter )
I'm hesitating about the timing for next Pseudo Saturn Kai release : should I take some extra months in order to get proper cheat codes support for most popular games ? Or should I release it under few weeks with minimal cheat codes support (around an handful of games are currently tested and working), and hope to receive some feedback from users, so that I will eventually know which games need their cheat codes to be fixed ?
That's a very difficult choice : cheat codes is a niche feature (as everything else regarding Saturn !), so I shouldn't hope a lot of feedback. On the other hand, adding a cheat codes edition screen, and allowing cheat codes input on user side is (IMHO) a mistake too : maybe a motivated user would fix and/or add codes for some games, but rarely theses codes will be publicly available for everybody else, and in the other cases, user will simply consider Pseudo Saturn Kai cheat codes as a broken feature. Let's see ... I honestly don't have any precise idea when next release should be done. Any suggestion regarding this is welcome in the comments
Generally speaking, I'm tired about Pseudo Saturn Kai maintenance : I started it around two years ago (yes, largely over than nine thousands hours !!!), edit: that was around three years ago (I though we were at the beginning of year 2017 ), am finally seeing the end of my TODO list to realize that ... majority of users shifted to hardware ODE, or simply left the scene without any last final word ...
Well, whatever it may be, I continue development of Pseudo Saturn Kai because I went too far to stop so near of the end (that's quite a pragmatic argument, sorry), but also (and that's the most important), because that's a nice hobby, which is important in order to keep a balance between private and work
Also, my first steps in Pseudo Saturn Kai maintenance were made during my hospitalization for cancer, and keeping such hobby during theses hard times was worth gold. I don't know (and don't want to know) how things would had turned without my Saturn hobbies.
BTW, things concerning my health are getting well : I'm still undergoing periodical screening, which all were OK last year Last year was the celebration of 3 years all right after surgery, which is not bad for a cancer with 50-60% 5 years survival rate
Pokemon Go still not allowed in hospital. Fortunately, usage Saturn dev laptop isn't forbidden
To finish this article on a rant note (sorry if you went here for some final positive note ), I would like to say "thank you for nothing" to Rhea/Phoebe development team rmenu author. (← updated on 2018/06/20)
Why ? Reason is that I would like to add a rmenu equivalent to Pseudo Saturn Kai, but don't have any technical information to implement it, and it's not like I didn't asked about theses informations, but simply didn't received any relevant reply from concerned developer(s).
For a semi-commercial product, I can understand to keep schematics, source codes and other development resources private. But I don't request disclosure of theses resources, and just want some minimal information for interoperability, which isn't publicly available, and that's a pity.
Why is that a pity ? Because some cheat codes will certainly not work by having rmenu running between Pseudo Saturn Kai and Saturn game. I know there's the solution to use rmenu's full boot, which does a system reset of nearly everything (except Rhea/Phoebe, obviously) after selecting a game, so that cheat codes can be enabled after that ... but I really don't know anybody motivated to do this messy setup : everybody is using the rmenu's quick boot solution, right ?
Pseudo Saturn Kai's rmenu, dated 20151214. Latest version have some major improvements, such as scrolling title of select game, etc Because of lack of Rhea/Phoebe API, this feature is disabled.
I'm personally (and honestly) not concerned about this problem : my modded Saturn + USB dev cart are enough for my development needs, and I don't want to pay for a device costing an arm and a leg (plus a kidney when buying from ebay ...) and then having to do the reverse-engineering job for it after that ! So unless I got external help, clean support for Rhea/Phoebe will be done ... without me
From what I could found from static analysis of rmenu itself, version is checked by seeking to the last available data sector of the CD track, and game is selected by seeking to sectors just before that last available one.
After that's it's difficult to guess what data should be expected from Rhea/Phoebe without testing on real hardware. And reverse-engineering is usually a sluggish and hard work (I estimate the remaining as around a two weeks course ... and hope this to be a pessimistic estimation), and really would like to spend this time to other projects funnier.
2018/06/20 update : there will be proper support of Rhea/Phoebe image selection in Pseudo Saturn Kai, and consequently an user-friendly way of enabling cheat codes when using theses ODE
Very big thanks to Deunan Knute for the great job, providing the technical informations and everything else
And also I would like to thank privateye for contacting Deunan, his patience and great help in beta testing