PPCenter :: devblog

PPcenter. Arts and craft for my Sega Saturn. Since 1847 :D

Compiling Pseudo Saturn Kai

Written by cafealpha 2 comments
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 ...
  1. Some dude takes sources, change logo and credits page and then release this as "Pseudo Saturn Kai Gold Edition made by some dude".
  2. 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.

Read more Compiling Pseudo Saturn Kai

Pseudo Saturn Kai v6.314 - The newer the better

Written by cafealpha no comments
As indicated in the title : I'm glad to announce the release of Pseudo Saturn Kai v6.374 ! It is available for download at the usual address on my homepage.

This time, there aren't any "big" feature added, but rather a streak of small fixes as well as few minor improvements too. So don't wait to upgrade your cartridge and enjoy even more your favorite games with Pseudo Saturn

What's new :
  • Show error message when SD card is not inserted into Rhea/Phoebe ODE.
  • Added RmenuKai : enjoy cheat codes on Rhea/Phoebe even without cartridge !
  • Improved compatibility of JHL loader-only games with Rhea/Phoebe ODEs.
    (Panzer Dragoon Saga can now be correctly loaded from Rhea ODE)
  • Improvements in automatic selection of game in cheats codes feature.
  • Improvements regarding Virtual Memory Cartridge automatic settings.
  • Fixed support for some third party wireless pads.
RmenuKai for Rhea/Phoebe : test with cheat codes for NiGHTS
If you prefer hedgehogs, there is also a similar video with Sonic 3D.


And there's also a small Easter egg hidden in some menus ... will you be able to trigger it ?

What didn't changed :
  • Plays games backed up on CD-R, without the need of any hardware mod.
  • Comes with a bunch of pre-installed cheat codes.
  • Provides image selection menu for Rhea and Phoebe ODE.
  • Available for free and for everyone : it doesn't costs any license to install, and I didn't begged any money to develop Pseudo Saturn Kai too.

This version was thoroughly tested by same beta testers who followed development from last public release, but on the other hand it was tested by ... nobody else during beta testing phase ... this is probably a fault from me (it was announced for one week on segaxtreme forums, and ... for one day on this blog), but today is the third anniversary of initial release of Pseudo Saturn Kai as well as Gamer's Cartridge so I didn't wanted to miss this occasion 

So don't worry and happy playing ! I spent last 5 months in developing this version, and my favorite beta tester spent the same period in testing around twenty beta builds so it will run fine on your Saturn ! Trust me, I'm an engineer
 

Not my favorite PCB,
but at least it works.


It's time to pick up the kids at their Monday evening activities but I still have many tidbit stories to relate about ! So please stay tuned in future article(s)


Edit (2019/06/10) : it should be a good idea to add links for discussions on external sites :

Read more Pseudo Saturn Kai v6.314 - The newer the better

Pseudo Saturn Kai PRO edition - RC1

Written by cafealpha no comments
Once upon a night, I wanted to verify Pseudo Saturn Kai products lineup and realized PRO edition was recently added !

The PRO edition itself was based on same technology as lite one, but requiring a small subscription (in one-digit dollar range) in order to allow installation. In other words, the same contents as lite (free of charge) edition, but financially supporting firmware development and maintenance costs.

Pseudo Saturn Kai PRO edition was so popular that it was attracting enough money to cover my daily personal expenses and at some point it was even enough for apartment rent as well as family's cost of fuel and light ! On the other hand, Pseudo Saturn Kai PRO edition support team was greedier and greedier about new features, visual improvements of the firmware's UI, and the longer it went the more oppressed I was to maintain Pseudo Saturn Kai code base.

And then, the poor man's alarm clock (= in simpler words, light of the morning sun) woke me covered in sweat and experiencing high heart pulsations.
I had to verify this was a nightmare ! ... But before that it was time to start the day with laundry, because procrastinating the laundry duty delays all the subsequent tasks after that until the end of the day

So during my earliest spare moment during that day (somewhere between 6:30PM and 7PM), I could verify that everything was normal regarding Pseudo Saturn Kai project : the lite version free for everybody, and the full version also free but usable only in my hardware projects.
So no deadline, no pressure, and no impatient users ! I was relieved because I have enough of that at regular work !!

~ Development of Pseudo Saturn Kai PRO edition ~
By Mr Quino, from Mafalda  #1212


"Wow, look at what I saw in the newspaper :
a millionaire died from overwork !"
"Yeah, there are such kind of stupid people who
get accustomed to millions and then can't stop."


"And they want more ! Again !"
"Again ! Again millions !"


"Again ! AGAIN ! AGAIN !"





On a more serious note, I'm glad to announce that release candidate version for next release of Pseudo Saturn Kai is ready !
This RC version was thoroughly tested by same beta testers who followed development from last public release, so the risk of bricking cartridge or facing bugs bigger than an elephant are quite low.
I'm however not confident about usage in unusual configuration, so that I would like it to be tested by a few more people for my peace of mind before putting it on the wild.

So if you are volunteer for testing (and reporting me testing results) please contact me by PM on segaxtreme forums, or by email from my contact page.

On the other hand, if you just want to use latest version and don't plan to give testing feedback, then please *don't* contact me and wait patiently for one week or two until RC version becomes publicly available.

What's new in upcoming next release : basically there aren't new major feature available (like cheat codes in previous v6.274 release), but enough changes and/or improvements to make everybody wanting to upgrade.
  • Show error message when SD card is not inserted into Rhea/Phoebe ODE.
  • Added RmenuKai : enjoy cheat codes on Rhea/Phoebe even without cartridge !
  • Improved compatibility of JHL loader-only games with Rhea/Phoebe ODEs.
    (Panzer Dragoon Saga can now be correctly loaded from Rhea ODE)
  • Improvements in automatic selection of game in cheats codes feature.
  • Improvements regarding Virtual Memory Cartridge automatic settings.
  • Fixed support for some third party wireless pads.

And there's also a small Easter egg hidden in some menus ... will you be able to trigger it ?

To shortly sum up the changelog, Rhea/Phoebe ODE users will be happy to find that this release will allow usage of cheat codes without the need of any cartridge  And some Rhea users shall also appreciate Pseudo Saturn Kai finally loading Panzer Dragoon Saga correctly.
There are also some fixes and improvements around cheat codes (available for everybody, not requiring ODE or any special cartridge) and I sincerely hope theses will contribute to make more people enjoying playing Saturn


Rare footage of Pseudo Saturn Kai development room.
Foreground : me preparing next beta.
Background : privateye testing latest beta.

Read more Pseudo Saturn Kai PRO edition - RC1

Various Pseudo Saturn cartridges

Written by cafealpha no comments
Long time no see ! It's a super long while I wanted to write about several kinds of Pseudo Saturn cartridges (other than the usual Action Replay/Gameshark couple) but as a lot of things in this blog, always postponed it.

But recently I discovered a cartridge that breaks all records in term of extra cheap design and appropriation of other people's work that now I really want to terminate this article

(Note : it's already 10 13 14 29 days after the creation of this article, and it is still not published yet ... but I do my best to finish it )


Disclaimer : I am not affiliated with the designers or developers or sellers of the cartridges below. The reviews below are just my personal opinion and may not reflect the exact contents or behavior of the cartridges. And in case of questions regarding theses cartridges, please contact their sellers instead of me.
Also, please try theses cartridges at your own risks : whatever it may be, I'm not responsible about any damage caused to your Saturn, your cartridges, your dog, your house or anything else !

And let it be clear : the first purpose of this article is to inform users that such kind of not so usual cartridges exist, so that potential users can consider about theses cartridges for their own usage.
But if a cartridge deserves to be flamed, then I don't refrain about that, especially when it concerns the appropriation of other's people work.



Saturn NinjaDrive


From what I could see, that's an Action Replay cartridge with custom label and Pseudo Saturn Kai pre-installed. The "deluxe" edition features a stylish box for the cartridge.
It probably would had been appreciated to indicate that Pseudo Saturn Kai is installed rather to rebrand everything under a different name ...

Pros :
 - The price without stylish box is not that bad
 - Pseudo Saturn Kai is pre-installed
Con :
 - It would had been fair to indicate that cartridge is made from Action Replay cart
 - There's no indication about which firmware is installed



Saturn Unlocker



That's in the same range of contents (and price) as NinjaDrive : Action Replay with Pseudo Saturn Kai pre-installed. At least there's no attempt to hide about what is installed.
A description video at the lower half of the cartridge's page shows that Pseudo Saturn 0.832 is installed, which doesn't works at all on some Japanese model 1 Saturn The video itself is quite old, so let's hope that latest version of Pseudo Saturn Kai is installed on the cartridges now

Pros :
 - Classy box and label, a must have on your collection shelf
 - Pseudo Saturn Kai is pre-installed
Con :
 - It would had been fair to indicate that cartridge is made from Action Replay cart
 - Maybe a bit expensive ?



All in One RAM Backup Cartridge


All in one cartridge, front side.
Picture credits : SaturnGuru.

I couldn't find an official homepage for this "all in one" cartridge, but this is paradoxically the most valuable cartridge in this article
This cartridge model features both Action Replay support (boot ROM and 1MB/4MB expansion RAM) and 512KB backup memory storage. In simple words, it is the result of Action Replay and official memory cartridges blended together.

The backup memory is implemented with its own flash ROM chip, in the fashion as official backup memory cartridges, thus shall provide a 99% compatible (I keep the last 1% just in case of any eventual picky game that would cause problem, but this would be surprising such one exist) and in-game support for cartridge backup memory.

Using dedicated flash ROM for backup memory unfortunately means that it will be corrupted and finally no longer accessible after many write cycles, but ... this is how official cartridges worked too
However, since boot ROM and backup memory are stored in physically different flash ROM chips, the cartridge will still boot Pseudo Saturn Kai even if backup memory chip is damaged, which is one point over Action Replay where damage of backup memory ROM means the loss of nearly all other features.

Regarding firmware installed, the ebay pages selling this cartridge model I could see so far clearly mention that latest Pseudo Saturn Kai version (v6.074 at current time) is installed, and even explain the basis regarding cartridge usage such as loading a game, or accessing Save Data Manager, etc, which is quite a fair and remarkable way of doing

A review with only praises may look a bit biased (and no, I didn't received any money nor even any email from seller of this cartridge), so I would like to critic about the electronics parts used in this cartridges : theses are the same as used in Action Replay or official backup memory cartridges.
As a consequence, the technology used is no longer produced, thus probably coming from shady old stock, or counterfeit chips factory, or recycled from vintage devices. In each case, this means that in the long term, quality may not be at the meet.


An interesting related question is "Why releasing such cartridge around 20 years late ? This could exist at the time Action Replay cartridge development was still active !".
My guess about this question is that Action Replay development and/or sales team wanted to put everything (boot ROM and cartridge memory) in a single flash ROM chip, giving birth to the "if a ROM feature breaks, the whole cartridge is bricked" cartridge architecture used in Action Replay carts.

I personally like to write to flash ROM only when upgrading cartridge firmware, so that I dropped backup memory support on Pseudo Saturn Kai lite.
So my second guess is that it motivated someone to finally merge Action Replay and backup memory cartridge in a single one ? If this guess is right, then I'm glad to have indirectly contributed to the development of this cartridge

And yes, I am the only one responsible of this backup memory feature no longer available after installing Pseudo Saturn Kai. That's a deliberate choice to avoid cartridge bricking and I will never add a feature for that, so don't hesitate to share your hate towards me in the comments of this article 


As an extra note, I could notice that several hardware variation for this cartridge model may exist, so anyone interested in purchasing such "all in one" cartridge should carefully verify it's item description page as well as features list indicated at the back side of the cartridge.
All in one cartridge : list of features available.
Picture credits : SaturnGuru.

And finally, please enjoy a picture of each sides of the cartridge PCB Theses pictures clearly indicate how the cartridge works, and were a great help when preparing this article.

All in one cartridge font side.
Left half : expansion RAM and glue logic for each chips.
Right half : flash ROM chips for cartridge firmware.
Picture credits : SaturnGuru.

All in one cartridge rear side.
Flash ROM for cartridge backup memory.
Picture credits : SaturnGuru.

Pros :
 - Supports basically nearly all the Saturn games library
   (Except the couple of games requiring their own ROM cartridge, and those others eventually not compatible with Pseudo Saturn Kai)
 - Pseudo Saturn Kai is pre-installed
 - There's no attempt to hide that Pseudo Saturn Kai is installed
Con :
 - Cartridge backup memory may deteriorate after heavy usage.


Edit (2019/01/09) : there is also some kind of "dual boot" cartridge that seems to allow to select among two firmwares which one to boot.

Dual boot cartridge, front side
Thanks to toze3 for informing me about this cartridge

Dual boot cartridge, rear side
Thanks to toze3 for informing me about this cartridge



Saturn PASS

You're full of all theses cartridges to digest in a single article ? That's bad for you, because I kept the most greasy dish for the last time

Saturn PASS cartridge

This is a very simple cartridge with only boot ROM, and nothing else : no cartridge shell, and not even decoupling capacitors near the ROM chip ...
The decoupling capacitors protect neighboring components against voltage spikes : as theses apparently don't have any functional purpose, they are sometimes removed by cheap device cloners ...

Additionally, ROM chip used seems to be a UV EPROM, easily identifiable with the small round window at the center of the chip.

UV EPROM chip detail
Yes, I did hit the snapshot key around 10 times to get
the right moment when UV window is visible
(Screenshot from this video)

As a consequence, firmware update requires dedicated device to illuminate the chip with UV light prior writing of the ROM and basically can't be easily done on user side.

Additionally from being technically difficult to upgrade, Saturn PASS users will also have to enjoy the custom firmware pre-installed : apparently it's a stripped version of Pseudo Saturn (or it will be an huge coincidence that log message under "Loading CD" is the same in both firmwares) with only the bare minimum remaining :
 - No boot menu
 - "Pseudo Saturn" name changed to "Saturn PASS"
 - Addition of URL to Saturn PASS homepage
 - Removal of Pseudo Saturn credits

Saturn PASS boot screen
For unknown reason they left as-is the
log display in is_audio_cd function.
(Screenshot from this video)

Pseudo Saturn is open source, so anyone with enough skills is free to change things in the firmware to their preferences. But rebranding the whole thing and trashing credits to original development team is not how open source works.
So if someone wants to thank somebody for Saturn PASS to exist, they should refer to credits displayed in Pseudo Saturn :
Copyright 2011-2015 Pseudo Saturn Team
http://github.com/cyberwarriorx/pseudosaturn
At a glance, removal of boot menu and only keeping the Pseudo Saturn exploit sounds a good idea, because that's one step less to do on user side before playing a game.
But except that point, it's complete crap : extra features (to verify if cartridge is working correctly or not, or to verify version of Saturn internals, etc) are no longer available, as well as credits page too.

Personally, I derived Kai from Pseudo Saturn specifically for adding features other than Pseudo Saturn exploit : memory cartridge support in previous releases, cheat codes in next release(s), and probably something more in future release(s). So removing all the menus and extra features just to spare the push of one button to play a game is "no, I won't do that"

Pseudo Saturn Kai credits page is probably just a feature to boost my own ego, but I am not the only one listed there, and everybody credited contributed for free : done on their free time and without financial compensation. So muting them is definitely not an option. Also, I made several graphic improvements when displaying credits, so I hope you will enjoy them in next release

To finish on a positive note about Saturn PASS, it should be mentioned that its price is relatively reasonable : 350 Thai Bath = around 10 US Dollars, which makes this cartridge affordable for Thailand users

Pro :
 - Affordable for Thailand users.
Cons :
 - Poor hardware design.
 - Can't upgrade firmware.
 - No credits to original firmware developers.

PS : I heard about this cartridge from furrtek. Special thanks to him for the information

Read more Various Pseudo Saturn cartridges

Cheat codes overlap check feature

Written by cafealpha 4 comments
"Overlap check" ... yeah, I know that I'm always terrible when finding a name for a new feature or a new project

So, as its name may suggest, this feature check for cheat codes that would not work correctly together, and automatically unselect some cheat(s) in order to get things working as expected.
One illustration would be level select cheat code : some games may have a list of cheats like "play level 2", "play level 3", "play level 4", and so on. (no, there is usually no cheat code to play level 1 )

Example with Sonic 3D blast cheat codes : it's no longer
possible to simultaneously enable several "Play xyz level" codes
thanks to this overlap check feature


When trying cheat codes for the first time, the reflex would be "enable them all !", and in that case this would lead to undefined behavior. In typical case, game just work fine and since cheat codes are executed in the order from their list, the last overlapping cheat takes priority.

But, some games are quite picky regarding execution time, so the faster cheat codes handler is executed, the better. In other words, the less codes enabled, the more chances game have to work correctly.
Here is one example in video with NiGHTs into dreams : first half of the video shows cheat codes causing graphic glitches, and second half show updated Pseudo Saturn Kai version fixing theses glitches :


 
NiGHTs into dreams : graphic glitches caused by
cheat codes slow handler.
Video available on youtube.
Left : slow cheat codes handler, causing missing quads on screen
Right : game as well as unlimited time cheat code working fine

Hrm, that's around half a year ago, and I'm still fixing things for the same main feature  Well, that's how software development works : fixing bugs, adding new bugs, and returning back to step zero. Maybe smart people can develop things faster, but ... I'm not smart, so the best solution is to continue the endless development iterations until getting something OK for release


Illustration of Pseudo Saturn Kai development
(From The Crimson Permanent Insurance movie)

So well, let's go back to original topic, and let's add that I also felt bad each time I was enabling two incompatible codes. "Play level 2" : enable, "Play level 3" : enable, start game ... what will it do ? Maybe a thermonuclear meltdown because of some divide by zero error  ?! Well, it actually plays level 3, but that's unpleasant anyway.
I implemented cheat codes features from (basically) scratch first for fun (yes, I like 6+ months span software development projects ! ), but also for the freedom of making what I want. Especially, making cheat codes as user-friendly as possible ! So that this "overlap check" feature was added

Here is another example with cheat codes for Virtua Fighter Kids : this is an interesting example because some cheat codes for this game are using "enable code" (starting with `D') : this kind of code is sometimes used to prevent from executing other codes, typically when game module to cheat is not yet loaded, and that writing something to its location would make the game not working correctly.
As a consequence, "enable code" have a global effect on all enabled cheats, hence multiple "enable code" can't be enabled simultaneously.

Virtua Fighter kids uses "enable code" for a slightly different purpose : setting player health to a given value (50% of maximum, one HP, etc) only when it is set to maximum, ie on fight start time. By using this trick, game can then decrease health value, allowing to set some handicap to a given player.
This behavior is completely different in comparison to "unlimited health" cheat that always forces health value to maximum

Virtua Fighter Kids cheat codes list : "50% healt" and
"1-Hit Death" codes are the ones using enable codes


And, Virtua Fighter Kids is a good example, because it uses "enable code" at two different locations : at player 1 health value (06045974) and player 2 health value (06046A74). As only one "enable code" can be used, it's for example not possible to enable "1-hit death" code for both players.


Left : 1-Hit Death code enabled for P1
Right : P1 1-Hit Death code automatically disabled after
1-Hit Death code for P2 is enabled

Additionally, unlimited health for P2 is also automatically disabled, which is normal because it is in contradiction with 1-hit death code for it. From cheat code point of view, theses two codes write to same address, which doesn't makes sense.

"Hey, but I like "One Punch Man" series, and really want to enable theses two 1-hit death codes when playing Virtua Fighter Kids !" would you say ?
Well, that's not possible as-is, but adding a new cheat code setting both players health to 1 when health of any player is set to max value should do the job ♪
I didn't verified this code for real (in fact, I thought about it when writing this article), but it should be OK : "trust me, I'm an engineer"

1-Hit Death code for both P1 and P2
This could also be named "Two gentlemen duel"




I would like to finish this article with the introduction of a bug I fixed recently : I usually don't spend time in speaking about bugs I fix, because this would take too much time But the behavior of this one is very unexpected :

Text display is suddenly uncentered !?
Never though though such goofy bug
would be possible


So, this bug is triggered when selecting item in menu with scrolling text, and when text starts to scroll. The two features in relation with this bug (text centering and scrolling) are apparently unrelated, but the menu module used by Pseudo Saturn Kai is so spaghetti-ish that theses two features can collide into a bug

I'm honestly proud of this menu module It was initially designed for simple menu without even vertical scrolling, but evolved little by little in order to support each new features added to Pseudo Saturn Kai.
It's a complete spaghetti monster, but it works ! Yes, it works : trust me, I'm an engineer !

Read more Cheat codes overlap check feature

Rss feed of the tag