• Rise from your gwave!

Pseudo Saturn Kai official thread

Discussion in 'Saturn Dev' started by vbt, Nov 4, 2015.

  1. cafe-alpha

    cafe-alpha Member

    Apart the problem of Saturn connector not being a standard part, that's shouldn't seems a difficult project. I personally want to focus development on cartridges and suitable firmware for them, so it's not at the top of my priorities however :)
  2. performcanhe

    performcanhe New Member

    HI Cafe Alpha,

    I have a "Ultimate Game Memory Card", which is a third party Saturn memory card, AKA Saturn Region Convertor card. It looks as this:

    I tried to flash it with PS Kai latest version 20170423, tried with both the pskai_alternate_flasher.iso and
    I got always a "Erase verification failure" error, as below image. Any hints to resolve it?

    BTW, as failed to flash it, I had to purchase a AR card and flashed the AR card successfully.
  3. performcanhe

    performcanhe New Member

    I noticed in the readme.txt, there is a success report for a card with same "vendor id/device id".
    - nastyvandal : 5345/4741 SST29EE010 counterfeit ? (Flasher v3.746)

    In Flasher v3.746, I think there is no Erase Verification Test code (from the change history). Should I try with this old version?
  4. cafe-alpha

    cafe-alpha Member

    I didn't know about this cartridge, thank you for the report !
    Not all cartridges are compatible with Pseudo Saturn Kai : some carts use read only ROM, and consequently can't be flashed.
    Some other carts may also use UV-EPROM, which is out of the scope of Pseudo Saturn Kai flasher utility too. It requires ultra-violet lamp to be erased, so it's simpler and cheaper to buy another cartridge than trying to flash this kind of ROM.

    Your picture of flasher utility shows that ROM wasn't modified : ROM header indicates 19940807 time stamp, which is not a time stamp used by Pseudo Saturn Kai (I didn't started Saturn homebrew projects that early :D), but most likely to be the initial ROM contents intact.

    If possible, can you take a picture of cartridge's PCB both front and rear side ? This would give more concrete information of which kind of flash ROM chip is used on this cartridge.

    And, does this cartridge boots directly to multiplayer even if game is inserted in CD lid ? Because I suppose this is similar to "Memory Cartridge Plus", and consequently would be interested in getting your cartridge's ROM dumped if it wasn't done before. Save Data Manager & Flasher CD-ROM have a feature to give more details about cartridge ROM header, so can please use it to get more information ?
    1. Use pskai_sdm_flasher.iso and use your favorite swap trick/modchip/ODE/etc method to boot it with cartridge inserted
    2. From Save Data Manager main menu, push R shoulder button
    3. Select "Cartridge ROM Hexview"
    4. Take a picture of the screen, and post it here
    5. Press R shoulder button twice in order to show ROM contents from offset 0x02000060
    (ROM description message is stored from address 0x02000060)
    6. Take a picture of the screen, and post it here
    The steps above are optional, in order to verify if this ROM needs to preserved or not, so I won't anger if you skip them :)

    Short answer : no, you will very probably waste a CD-R with old version of flasher.
    Flash ROM access didn't changed between old and latest flasher utilities, and the erase verification is performed after writing to flash ROM. So old version of flasher with just display some kind of "write ended" message, even if actually not or incorrectly written.

    Detailed answer about why flashing cartridges with 5345/4741 IDs may work :
    5345/4741 are the hex values for SEGA, as read from cartridge ROM's first bytes. Theses are the values read when vendor/device IDs acquisition sequence didn't had effect, or when write access to ROM is not available. In first case, it is possible to flash the cartridge (see details below), and in the latter case, it's not possible.

    Some Action Replay flash ROMs don't provide valid vendor/device IDs, but can be written with the "SST29EE" way of accessing to flash ROM. This is possible because Action Replay requires write access to flash ROM for working (cheat codes and memory cartridge feature require it), but firmware supports only this "SST29EE" kind of flash ROM.
    (Extending support to other flash ROM types would require some changes on Action Replay firmware itself, and I suppose that the lack of such know-how on Action Replay manufacturer side made them sticking to theses obsolete flash ROMs for decades)
    So when flash ROM IDs are incorrectly detected, flasher utility just displays a warning message, and then writes with this "SST29EE" Action Replay-ish access.
    Last edited: May 23, 2018
  5. performcanhe

    performcanhe New Member

    Thanks for the detailed response.

    Here are some information of the cartridge. It works as a "Magic Card v2", Swap Enable + Region Convertor. Please refer to this page: https://www.segaretro.org/Magic_Card_V2

    Steps to play backup CDR with it: (Cartridge inserted in Slot)
    1, Put original CD in CD lid
    2, Boot into multiplyer GUI. The CD stops and it prompts to change game cd
    3, Swap the backup CDR in and press "start" button in game pad. Game starts.

    I took pictures per suggestion as below: (click to enlarge)
    HEX Information:
    Last edited: May 24, 2018
  6. performcanhe

    performcanhe New Member

    Seems strange, there are all "20"s in the address range of offset 0x02000060.

    I took more pictures as below:

    offset 0x02000030
    offset 0x02000090 (all 20, not uploaded.)
    offset 0x020000c0
    offset 0x020000f0
  7. antime

    antime Extra Hard Mid Boss

    Those are real old-school EPROMs. You need an UV lamp to erase the memory contents before they can be reprogrammed.
  8. performcanhe

    performcanhe New Member

    Thanks for the information. So I just keep it as is, seems the best option so far.
  9. Kuta

    Kuta Staff Member

    If those EPROM windows don't have stickers over them you may lose the data on them.
  10. cafe-alpha

    cafe-alpha Member

    Thank you very much for the pictures ! The grey color used to display ROM characters is terrible, sorry. Next version will display in same white color as used for HEX codes. And, the fact that no characters is displayed with "20" HEX value is normal, because this is the ASCII code for blank character. Usually, some description of the ROM is indicated in this header, but in the case of Magic Card V2, this is blank.

    So, I verified the HEX dumps, and I do confirm you are the lucky owner of a Magic Card V2 :) AFAIK, this is quite rare, so please keep it preciously.
    I suppose that the top connector was used to connect some kind of "sold separately" (C) save memory unit.
    Additionally, this cartridge doesn't features expansion RAM : the two chips at the right side of the PCB are for ROM, and the two other ones are glue logic between Saturn and ROM and backup memory slot.

    As antime mentioned, theses flash ROM chips require UV lamp to be erased, hence not supported by Pseudo Saturn Kai flasher utility.
    (This kind of ROM can be easily identified with the small "window" at the top side of the chip : this is where UV light needs to be applied in order to erase the ROM contents)

    Important : as mentioned by Kuta, this window is usually covered with opaque tape, or anything similar in order to prevent sunlight to alter the ROM contents. Exposition to direct sunlight may erase or alter ROM contents, so please put back the PCB in its shell to preserve integrity of the firmware.
    (I already PM'd you about that yesterday, but I prefer to repeat for any other curious user owning similar kind of cartridge)
    SaturnTeam likes this.
  11. mrkotfw

    mrkotfw Member

    Random question.

    To stay compatible with antime's original program, would it be possible to allow Kai to jump back using:

    void __noreturn
            ((void (*)(void))0x0203F800)();
            while (true) {
    Or is there a reliable way to ensure that this function works with Kai and antime's?
  12. cafe-alpha

    cafe-alpha Member

    That's software, hence technically possible, but is that useful ? Personally, I embed USB transfer code and copy/exec stub (for use in the case new program to execute overlaps current one) directly into my Saturn projects, so that it's a long time I didn't used this ROM code, and consequently dropped it in Pseudo Saturn Kai.
    Additionally, you're one of the few last dudes still making useful things with USB dev cart, so if you just want this feature back for backward compatibility but actually don't need it, then there's probably no real interest to add this back.

    Antime already answered this question : there's no reliable way to do that.

    BTW, is keeping this 0x0203F800 address is super mandatory, or can it be moved to a more convenient address ? That's in order to reduce unused ROM areas in Pseudo Saturn Kai ROM.
    And, do you just want this ROM call to show the good old USB dev cart blinking screen ?

    Extra details :
    - In latest (WIP) version, 0x0203F800 is somewhere around Pseudo Saturn exploit code and end of cheat codes handler and codes list : in order to keep compatibility with Action Replay carts, ROM map near 256KB offset is a bit messy ...
    - Original ROM by antime doesn't features this ROM call. So strictly speaking, current version of Pseudo Saturn Kai is USB dev cart original ROM compatible :D
  13. cafe-alpha

    cafe-alpha Member

    I just added back the USB dev cart blinking screen from 0x0203F440 address. It will be available on next release of Pseudo Saturn Kai.

    Additionally, an header is available from address 0x0203F400, which includes :
    - 2 magic numbers, for simple verification of ROM code availability
    - A constant string, for safe verification of ROM code availability
    - Length and CRC of the ROM code, for paranoid verification
    Header structure definition and everything else will be available in Pseudo Saturn Kai sources.

    This took 2KB of cartridge ROM, initially reserved for cheat codes, so I hope this will be useful to make some cool and open source applications for Saturn.
    (It's summer hot here, so maybe not the good moment to believe in Santa Claus ...)
  14. mrkotfw

    mrkotfw Member

    Thanks for the informative reply.

    I took some time to think about what you've wrote. You made a lot of good points. I'll go ahead and remove this from Yaul, as it's better to just soft reboot the system via SMPC or jumping to 0x20000240.
  15. cafe-alpha

    cafe-alpha Member

    OK, but this will remain as-is (with USB dev cart blinking screen available from outside) because I'm too lazy to revert things back :)

    Apart having to wait for animation logo, a SMPC reset is definitely the best solution : it works for 99% of cartridges (I keep the remaining 1% for cartridges that would do weird things with /RESET line), and put back Saturn in a stable state too.
  16. mrkotfw

    mrkotfw Member

    Got it.

    Do you mean that weird state where the system doesn't actually reset? Or you mean that problem where the Saturn won't turn back on?
  17. cafe-alpha

    cafe-alpha Member

    No, I was just speaking about cartridges not (re)initializing their ROMs after a pulse on /RESET line. That basically doesn't concerns any existing cartridge :)
  18. Joref

    Joref New Member

    Okay, I have a pretty standard question, but I didn't know where to ask it besides here.

    So, I was using a cartridge with Pseudo Saturn on it, and it was working normal for a day. I came home the next day, turned my Saturn, and it got stuck on the SEGA License screen. Does anybody have a solution?
  19. Ponut

    Ponut New Member

    Could you or anyone else have ever removed the cart from the console in that time?
    SegaSaturnShrine likes this.
  20. cafe-alpha

    cafe-alpha Member

    I would bet for a weak connection between Pseudo Saturn cartridge and your Saturn : after turning off the Saturn, please re-insert the cartridge, and ... pray it boots correctly after that :) If this doesn't works, slightly lifting the cartridge after re-inserting it may help a little.
    SegaSaturnShrine likes this.

Share This Page