PPCenter :: devblog

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

Back from Holidays

Written by cafealpha 2 comments
Just a small post to indicate I'm back from holidays
In fact, I went back home one week ago, but didn't had time to write this article so far ... but in comparison with other articles on this blog, this one is quite timely anyway


Hand Spinner ! 540 Yens ! 売れています!
It seems I took vacations to the last place in the world where
hard spinner are still popular


Pseudo Saturn Kai development is continuing at its own rhythm. Development finally escaped from off days without a lot of progress, and is now in the period when I want to hurry to finish "this and that features" before release. Let's hope that motivation will continue flowing, and also that work won't be too greedy with my free time too

I honestly have no idea when Pseudo Saturn Kai will be ready for release except than "when it's done" So, please be more patient until having fun with cheat codes !

Among other small things, I'm currently making some updates to the credits page. Because a careless mistake until version 6.074, credits page was available only in Pseudo Saturn Kai full version, hence this will be the debut for it on next release for Action Replay users

Read more Back from Holidays

Gamer's Cartridge available back soon !

Written by cafealpha no comments
A small article to keep informed about Gamer's Cartridge availability

So, I recently went out of Dezaemon 2 themed labels. Because being game-specific, I was expecting theses labels popular only for a niche of users, and prepared stocks accordingly, but theses actually became the main choice among the few labels available for Gamer's Cartridge, without letting me time to prepare extra stock for them

Okay, I admit I didn't checked actively the stock of theses labels, and started to panic when I saw that only 1 or 2 were remaining Additionally, I didn't had a lot of time during Spring holidays too ... March is always a busy month in Japan


Next batch of Dezaemon 2 labels is currently in preparation, so please be patient until they become available
I don't prepare theses labels by myself for the simple reason that my friend Darius cut them way better than me (1), so some extra delay is required for shipping. But basically theses will be available on the second half of this month

(1) And also because my printer is barely good enough to prepare new year postcards, and jam when processing A4 paper There's also some know-how required to prepare theses labels, such as selection of paper (it is using paper designed for use on car body), as well as cutting process too, as detailed in an previous article. Without Darius, labels for Gamer's Cartridge wouldn't exist


Dezaemon 2 labels for Gamer's Cartridge
Design by Mr beebaraka, and printing/cutting by Darius.
That's probably the component I'm the least involved in,
which explains why it's the most fancy one



On a less positive note, I am in the regret to announce that I'm out of stock of black shells, and that theses are no longer available for purchase

White Saturns have their plastics fading in several tones from "pure white as on first day" to "heavy smoker's dirty yellow", making difficult to adjust color difference between Saturn body and cartridge. Black Saturns doesn't have this plastic fade problem, which was the main reason why I was providing black cartridge shells

As I'm re-using Action Replay cartridge shells for Gamer's Cartridge, and that standard color for them is white, it's very unlikely I will get black shells in the future. But anyway, that doesn't stops availability of Gamer's Cartridge itself


Black cartridges out of production !
But white ones are still available from time to time

Read more Gamer's Cartridge available back soon !

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

One more new PCB color !

Written by cafealpha no comments
As indicated in the title, I tried a new PCB color ! This time, this is yellow


Rare picture where all PCB colors I tried so far are gathered

The manufacturing of theses yellow PCBs took a bit longer than usual : maybe was it because this color is not ordered frequently ? Or just a bad luck with timings ? I don't know, but anyway I'm definitely more at ease with good old green color

Blue PCB in the picture above also needs some attention because it's quite a long time I didn't soldered PCBs with such color. In fact, it was probably the first time for this Gamer's Cartridge PCB revision

So, what's the reason why this article is posted so early ? I mean, pictures of theses PCBs were taken around one month ago, while preparation for one article here is usually in the half a year range, with majority of articles are canceled in the midway of their preparation  Well, the reason comes from accidentally watching TV recently, and realizing that colors match a given pattern !


Gamer's Cartridge, Olympic Games Edition

That would had be the the occasion to do some fancy "Gamer's Cartridge Olympic Games (C) (R) TM Edition" advertisements on all major social networks, modifying prices during this period, make sponsorship with some whatever sportswear brands, but I don't like such kind of show business, and ... the fact PCB colors match those on the Olympic flag is a coincidence

So, I'm glad to introduce you Gamer's Cartridge at the Olympic Games colors ! There's no sponsorship, no changes in the prices, no super event (except this poor blog article), but Saturn projects are still my favorite hobby, which is the most important


PS : I unfortunately no longer have all PCB colors gathered in first picture of this article, so it's not possible the re-take a picture in same layout as Olympic flag.

PPS : there wasn't snowball fight Olympic discipline this time too Let's hope next edition will finally feature competition of a sport which I understand the rules

Read more One more new PCB color !

Happy Birthday Panzer Dragoon Saga !

Written by cafealpha no comments
According to wikipedia, it seems that Japanese version of Panzer Dragoon Saga turned 20 years old this week, so,

Happy Birthday

 Panzer Dragoon Saga !

Hrm, I feel old to hear over and over that games I played in my childhood are becoming vintage ... time flies

So well, I don't want to write an article for the anniversary of each Saturn game That's too depressing, and I prefer to use this time for other things The reason for this article is to help people wanting to play Panzer Dragoon Saga, but not from level 1, and failing to find appropriate save states for use on their Saturn.

There aren't many saves for Panzer Dragoon save files available for importing from Save Data Manager, but good quality saves can be found on Panzer Dragoon Legacy homepage :


The reason why theses saves aren't added to Pseudo Saturn Kai Save Data Manager CDROM is because the readme included with theses saves states that saves can't be hosted elsewhere than on Panzer Dragoon Legacy. I personally think this is a pity, because theses saves are really good.
(2018/02/12 : it seems OK regarding copyright See the bottom of this article for details)

Panzer Dragoon Saga is one of the few games not allowing in-game usage of Gamer's Cartridge. A workaround to that is to use Saturn's internal backup memory.
So, it is possible to import theses saves to Saturn's internal backup memory by using Gamer's Cartridge and Save Data Import feature :
 1. Copy all save data folders from archive to SD card → SAVES folder
 2. Insert Gamer's Cartridge into Saturn, power on Saturn
 3. From main menu, select "Save Data Manager"
 4. Select "Save Data Import"
 5. Browse for save data file where to import from
    Example : SAVES folder → saga_01 → BKRAM1.BIN
 6. Select all saves with Y button and confirm import to internal memory device with A button

Then, it is possible to use theses saves from the game. Unfortunately, Panzer Dragoon Saga is one of the few games not supporting in-game memory cartridge support with Gamer's Cartridge, so the only workaround is to use Saturn internal backup memory.
2018/02/12 : the steps above are still valid, but work on Gamer's Cartridge only. Next release of Pseudo Saturn Kai will feature theses saves directly from Save Data Manager, so that theses will be available for Action Replay cartridges users too (See the bottom of this article for details)

I hope I will be able to make this game compatible with Gamer's Cartridge in the future ! I recently tried to find what's causing this game not working ... and realized it would be harder to fix (I thought game was re-authenticating CD-ROM just before starting to play, but I didn't found any code doing that)
I'm not a genius programmer, but on the other hand, I don't give up on the first failure I meet, so hope next attempt to fix support for this game will be the good one



Update 2018/02/12
: I just received the agreement to add theses saves to Save Data Manager More details can be found on Panzer Dragoon Legacy forums, and screen copy of related posts are available here for the records.
Special thanks to Solo_Wing, who solved this problem in a couple of messages ! Please keep the good work







Read more Happy Birthday Panzer Dragoon Saga !

Rss feed of the articles