PPCenter :: devblog

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

Pseudo Saturn, Kai, and Dragon Ball too

Written by cafealpha 14 comments
The kids are currently on winter holidays, I don't want unexpected and messy task at work before entering new years holidays, so today was spent at movie theater with kids
We went to see Dragon Ball Super - Broly, and it was cool !! I really appreciated the "フリーザー!「カコク」ってなんだ!?" from Goku just after Freezer used "過酷" word in a dramatic scene

So well, it seems it's the good moment to announce a new public section in my homepage, which is about Dragon Ball cards
More than 15 years ago (but it feels like last week ... I'm really getting old !), I spent many afternoons in scanning my collection of Dragon Ball cards, and then put everything on a CD-R ... because internet was paid for each minutes connected, and my maximum transfer speed at that time was around 7KB/s, hence not suitable for uploading hundreds of megabytes of data

All theses limitations are no longer a problem, so please enjoy my digital cards collection

Broly when I was a kid

Oh, I forgot to say that everything in more or less in its original state, including the html, so in advance I'm sorry for any reaction to Comic Sans MS font and flashy image background Also, the textual contents are left as-is in omelette du fromage language

My main Saturn project during the last four years was named after watching a Dragon Ball Kai episode on TV, so in a related note, I'm glad to announce a new version of Pseudo Saturn Kai is available
But ... there's currently a bug so I shall re-release it soon
After everything will be fixed and verified, I shall make a proper announcement in this article, so if you don't want to flash your cartridge twice, please keep tuned for one day or two !

Edit (2018/12/31) : version v6.274 was released a couple of a days ago, and so far I didn't received major claims about it, so let's consider this version a stable one ! Please find below an overview of the changes and additions in this release.

What's new in Pseudo Saturn Kai v6.274

Automatic Game Loader

So far in Pseudo Saturn Kai 6.074, user had to choose which game loader to choose before starting a game, but this is now done automatically on Pseudo Saturn Kai side.
There's no magic around this feature : it just uses a list of games not compatible with CWX loader, and decides accordingly
Pseudo Saturn Kai boot menu
No need to worry about which loader to choose ♪

Cheat Codes

That's a big addition for this release. Its development spans around June 2017 to Spring 2018.
The main features for cheat codes are :
  • Built-in : don't need to manually enter the cheat codes
  • User friendly : just push X button when booting a game, and then select the cheat(s) to enable.
  • Maintained by cafe-alpha () : rather than adding an "enter cheat codes by yourself" feature, I plan to continue improving and maintaining the cheat codes list

Disc image selection menu for Rhea/Phoebe ODEs

Back in 2015, I added a stub of alternate rmenu to Pseudo Saturn Kai, but didn't had the technical information regarding Rhea/Phoebe API so the feature was disabled in its unfinished state.
And this summer, an enthusiast friend helped a lot to get this technical information, so that I could finally finish this feature
Development of this feature was an occasion to bring usage of proportional font in image selection menu, thus showing more information on a single screen. Base of menu module was developed around 2010 without any consideration for proportional font, so development of this side feature was a nightmare, but I don't regret for having done it now it is finished

Image selection menu for Rhea/Phoebe ODEs

Dezaemon 2 Save Game Manager 3

Dezaemon 2 is a shooting game maker application for Saturn. And Save Game Manager is a collection of user games for Dezaemon 2.
By the past, there were two volumes released by Madroms : SGM1 in 2007 and SGM2 in 2008.
And 10 years after that, SGM3 is released and contains some new user games as well as all the games from SGM1 and SGM3 : one SGM to rule them all

Special thanks to Dezaemon DB for gathering a community around Dezaemon 2, and dumping the user games

A stylish logo for Pseudo Saturn Kai

That's maybe a detail, but that was really missing from a long time !
Special thanks to Alien^PDX for the logo, and CyberWarriorX for putting me in touch with him
Pseudo Saturn Kai logo, 2017/12/31
Yes, taken one year ago !

In-game connectivity for USB dev cart

This uses cheat codes routine, hence requires at least a valid master code to be set. It can do USB connectivity while doing transfer with PC, but that's a bit slow (because of unoptimized C running from cartridge ROM), and consequently may cause glitches on some games.
As a countermeasure, there is another mode who does only USB connectivity (hence no cheat codes) but does it fast since the code for it is written directly in assembly and running in RAM.

That may be cool for game hacking, or looking for new cheat codes ... but I still need to add a proper cheat codes finder feature on SatLink before looking for cheat codes on my favorite games

I stopped USB dev cart support, so this feature is disabled and software on PC side won't be released.

In-game USB connectivity in action.
Radiant Silvergun was one of the very first games
to work correctly with Pseudo Saturn Kai cheat codes

Virtual Memory Cartridge support via USB dev cart

This is similar to "Virtual Memory Cartridge" used in Gamer's Cartridge, but access save data files on PC via USB dev cart instead of SD card.
That's convenient for save data hacking, or testing several saves, but for normal use then using SD card is (in my opinion) a better choice.
As a consequence, full firmware can now be installed on USB dev cart. But cartridges not using SST39SF040 flash chips are not supported (because there's not enough room in flash ROM) and in that case only lite firmware can be installed.

I stopped USB dev cart support, so this feature is disabled and software on PC side won't be released.

Virtual Memory Cartridge via USB dev cart
It was convenient for taking screenshots
for Dezaemon 2 Save Game Manager 3

Fixed support for 3D pad

In previous version, using 3D pad would sometimes cause an emergency exit to multiplayer screen when touching analog buttons. This is now fixed, and additionally supports input from analog buttons.
Pseudo Saturn Kai is not a 3D game, so the interest of using analog buttons is a bit questionable, but at least it is supported now

And the most voluminous change is ... :
Fixed many bugs everywhere, added other bugs here and there
Everything should work now ! Trust me, I'm an engineer

Congratulations, you reached the end of this long article
Last but not least, I wish you a Merry Christmas, happy new year 2019 and happy gaming

Read more Pseudo Saturn, Kai, and Dragon Ball too

Similar looking kanji definitions file update

Written by cafealpha no comments
It's been a while I didn't received an email not related to Saturn from my homepage, so I was quite happy when siikamiika asked me if he could safely license similar kanjis definition file in MIT licence in his similar-kanji project

What is "similar kanjis definition file" ? It is a text file used in "My JWPce" which defines ... kanjis looking similar
The original idea about this is not from me : I initially found this feature in kanji.free.fr (Japanese → Omelette du fromage online kanji dictionary), and thought it would be cool if this feature could be available directly from my favorite Japanese electronic dictionary.
So I build this "similar kanjis definition file", and added support for it in "My JWPce".

Example of in JWPce's kanji information
dialog : "似" looks like "以",
"代" and "伐"

If you're Japanese, or were learning Chinese characters from elementary school, this definition file is probably a complete nonsense for you, since you know how to enter the correct kanji from keyboard on first try.
But that's not the same done for foreigners who started to learn Japanese in their twenties, so that this feature helped me a lot when learning new kanjis :
 1. In JWPce, enter a kanji similar the new one you can't read
 2. Search for that new kanji in similar kanjis list
 3. ????
 4. Profit !

So of course, MIT licensing of this file is OK, and I was also glad to overwrite my old definition file with siikamiika's version, so that I could enjoy all new entries added in this version
Open source is love, open source is life, thank you siikamiika

Read more Similar looking kanji definitions file update

The quick lazy brown dog jumps over the foxes ?

Written by cafealpha no comments
The quick lazy brown dog jumps over the foxes ?
The brown fox quick lazy jump jumps over the ?
The ... well, I forgot what it was, but just to say that I spent a some time in messing with fonts in my Save Data Manager application
In fact, it would be more accurate to speak about code pages (*), because I finally added support for Japanese text display :]

(*) For those who forgot what code pages was :
Once upon a time, before Unicode unified every characters, (and also made strlen function not working correctly on UTF-8 text), there was a custom for all countries in the developed world to define up to 128 extra characters that would be used in second half of ASCII character table.
Of course, Japan wanted to do the same, so it added poor looking "1 byte kana" characters on this extra 128 character page, and also added the remaining characters (including kanjis) after that, which gave birth to Shift-JIS encoding.

Since Saturn was developed, during this prehistoric "codepage" era, it is normal to find can find some code page remnants in Saturn software

One of these "code page remnants" is the comment string stored in each Saturn saves : didn't you noticed that sometimes BIOS displays Japanese characters in its save management screen ?

So, Save Data Manager must display Japanese characters instead of garbage characters when showing comment in save data selection menu !

What save comment looked like before
adding Japanese characters display ...
(It's a 6 months old screenshot)

How to do this ?
First, I need to verify that BIOS was defining characters according to Shift-JIS charset, and the best way to do this was to modify some save states and see what BIOS is displaying on screen.

And if possible, displaying as much as possible characters at once would improve the job's efficiency, so I choose to modify Keio Flying Squadron saves since they take only 32 bytes each.

So here comes the reason I choose a such weird title for this article : I wanted to display all font characters at once on screen
In the facts, I didn't used such a complex "lazy brown dog jump blah blah blah" sentence. I just displayed all the character in ascending order, and here is what it looked like in BIOS screen :

Repeat after me : -アイウエオカキクケコサシスセソ...
Looks good  That's definitely 1 byte kana characters in typical order.

Saturn BIOS also has ability to display European (accented) character, and switching from a codepage to another is just the matter of changing a byte per save data, so let's try and see what it looks likes :
Same text as above, I just changed the language value

Oh, it looks like the good old ISO 8859-1 (latin1) charset

The picture above was displayed by setting French (my native language) language code in save, and setting to another language code (I tried with Spanish) gave unsurprisingly the same results.

So in the Saturn world, one byte equals one character, and there are two codepages to handle in order to display save comment string.
I first feared I had to deal with multi-byte characters (that is a real pain to handle when coding software), but that's not the case, and in fact it's relatively easy to do.

(2 hours later)
data/images/20160203_font_katakana.png data/images/20160203_font_francais.png
Katakana and European fonts

Hmm, theses characters are looking cute :)
It's seems that it is time to feed my image conversion tool ^^

(5 minutes later)
Okay, latin.bin and katakana.bin files are ready, I should add some codepage stuff in my text display code now !

(1 hour later)
Finally some exotic language displayed !
I lost 30 minutes in wondering why application wasn't
initially showing Japanese characters ... and it appears that
I was "cleaning up" the comment string by replacing exotic
character into space character
"It wasn't a bug, it was a feature "

It made sense when Japanese character wasn't displayed
correctly, but it was time to remove this string cleanup code.

Job complete ? Well, there are still some details to fix, and this is what take the most of time when developing software, but at least the boring part of the job is done :]

As a reward for me, I can now set save comment to a cool one when importing save data and that comment isn't defined.
I initially used a dummy "ImportData" string, but the holy "セガサターン,シロ" string defined in hitomi2500's ss-save-parser project is definitely better.
セガサターン,シロ !

Last but not least : finishing this main quest opens doors to firmware translation side quest !
Well, Japanese translation would be ugly, because kanji characters are not available (just old-looking katakana characters : this article title would look like ザレージフォックスジャンプオーバーザブラウンドッグ on firmware :D), and on software side, handling multi byte characters is a real mess, so I don't want to do make a Japanese version of Pseudo Saturn Kai and Save Game Manager.

However, translation for European languages is now technically possible
Well, "possible" doesn't means I will do this right now  This is a low priority job, so I will do it when I will have enough time and motivation for it.

BTW, in order to test if exotic character display was OK on Pseudo Saturn, I tried to print "beta" glyph (defined in European codepage) on the title bar :
Pseudo Saturn Kai main menu
Without any surprises (text display routines are common between Pseudo Saturn Kai and Save Data Manager), it works !
I can finally indicate that this is a beta version ^^

Edit : oops, the feature to inform me when a comment is posted seems (once again) not to work, and consequently I didn't noticed new comments :/

Here are the comments I replied so far. Since I'm late, they deserve to be re-posted here :

I am really happy to hear that you don't have cancer anymore!! Congratulations! I wish you a really long and happy life! :)     Anon

@Anon : It doesn't guarantee I'm cancer free !
CT scans indicate that there is no evidence of cancer relapse, but CT scan has limits (it doesn't shows millimeter-order tumors), so I continue regular cancer screening and taking care in everyday life

Hey @Spawn, could you upload those Saturn saves you have on your PC?
I have been looking for an archive of Saturn game saves for months now and I haven't found any.
Maybe with the save states I have, and your saves I can upload them somewhere and start an archive? I'll give you credit for it of course.     ReyVGM
@ReyVGM : Thank you for sharing your saves on segaxtreme !
They will be available for everybody on Save Data Manager, so that it will be easy to import on Saturn or emulator.

best wishes for 2016 !!!     vbt
@vbt : Thank you ! Best wishes for 2016 too !!!
Well, we are already in February, sorry ^^;

It's great to see your active development, cause my saturn projects are almost in hibernation today (i'm a bit in a time trouble). And i'm glad my code is of some use.
Good luck!     hitomi2500
@hitomi2500 : Hehe, I got some free time until end of March ... I don't know what it will be after that, but what's sure is that I will continue to have fun with my Saturn  Please keep continuing the good work too :]


stunned and confused

last night I went on a sega saturn nostalgia trip.

I had to catch up with 8+ years @ segaxtreme.
I found antime's usbcart, hitomi2500's fork, hitomi2500's new "wasca" and your stuff here.

sounds great ...
I need to dig up my saturn and finally start something.
I have a usb-cart from 2006 from pinchy (he seems inactive since 2007).     seal1
@seal1 : Hey, I remember seeing your nick in segaxtreme thread about yano/Freewing transfer device (I built a Freewing device at that time).
It was a long time before I made my first USB dev cart ... nostalgia.
Many members forgot about Saturn and left segaxtreme, but luckily vbt and antime are still active.
You're always welcome on segaxtreme, even if it just to say "hi"

Read more The quick lazy brown dog jumps over the foxes ?

Old project release : JWPds

Written by cafealpha no comments
Last day, I was digging in my HDD, and found an unreleased project !

Project name was JWPds, and about Japanese words/kanjis translation tool running on Nintendo DS.
Looking for the meaning of 絵 kanji on my DS :
bottom screen allows kanji input and
kanji meaning is displayed on top screen.

Looking for the meaning of 絵 kanji on my PC with JWPce.
(JWPce is not my project, it is just for comparison with JWPds)

Project is unfinished, because developing things on DS took more time than expected, and also because I learned enough Japanese, hence didn't needed to develop/use this application any more

Stable binaries and latest (not stable) sources are available, so please have fun with them

For more informations, download links, screenshots, etc, please have a look in the project page .

If you have any message, etc to send to me, don't hesitate to post a comment to this article

PS for DS fans lost here, and wanting leave a comment : comments require a Turing test asking for my favorite game console, and it's not DS
Please have a look in my blog in order to solve this test (If you are an human, it won't be difficult ).

PPS to Saturn fans here : don't worry, I don't plan to shift to DS homebrew development !
The console I like to debug on is and will always be Saturn

Read more Old project release : JWPds

マイノートパソコン やっとWin7へアップグレード - Finally could install Win7 on my note PC

Written by cafealpha no comments



Read more マイノートパソコン やっとWin7へアップグレード - Finally could install Win7 on my note PC

Rss feed of the tag