Homebrew Saturn emulation using Cotton/Guardian Force testing and debug

  • Thread starter Thread starter lisreal2401
  • Start date Start date
  • Views Views 433,907
  • Replies Replies 2,005
  • Likes Likes 32
I just managed, here are the steps:
- Download Ultimate-Switch-Hack-Script from github
- Install Guardian Force - Saturn Tribute NSP on your switch (I failed using Cotton2, Guardian worked)
- After the title was installed, from your switch dump prod.keys and title.keys using Lockpick
- Insert your switch sd card on your PC, move prod.keys and title.keys from sdcard/switch/ to your PC
- Now you can finally generate your game, launch Ultimate-Switch-Hack-Script
- Proceed to the main menu where you see the entry "6: Other functions?"
- After entering that submenu, proceed to "16: Inject a Sega Saturn game"

The rest is straight forward, it will ask you for the keys files you generated, it will also ask you for a 256x256 jpeg cover (non-interlaced, has to be less than 128k).

After the nsp has been generated, you can go inside the Ultimate-Switch-Hack-Script folders and find the uncompressed content of Guardian Force, here you can swap some files around. If you go back a few threads, you will see a Texture.tex file that makes the lower-right menu icon disappear, there are also ini files being shared with good settings for various games.

Hope it helps!
I always get a "Failed to create placeholder" error after installing the newly created game. The Icon on the main menu is always loading and i have to delete the installed saturn game. Tried it with Cotton2 and Guardian. Prodkeys are fresh and everything else should be alright too.
The script also throws an error "failed to match key".
 
Last edited by Zephir1991,
just a friendly reminder that if you share the New NSP injected in public, it will have your shared Console Keys, plus a Pirated game with it
If you talk about NSPs that was created by my script I don't think it will have console's shared keys cause they are not used during a NSP creation. I haven't tried to install a NSP that I have created on an other console so I can't confirm.
 
  • Like
Reactions: ZER-O
I just managed, here are the steps:
- Download Ultimate-Switch-Hack-Script from github
- Install Guardian Force - Saturn Tribute NSP on your switch (I failed using Cotton2, Guardian worked)
- After the title was installed, from your switch dump prod.keys and title.keys using Lockpick
- Insert your switch sd card on your PC, move prod.keys and title.keys from sdcard/switch/ to your PC
- Now you can finally generate your game, launch Ultimate-Switch-Hack-Script
- Proceed to the main menu where you see the entry "6: Other functions?"
- After entering that submenu, proceed to "16: Inject a Sega Saturn game"

The rest is straight forward, it will ask you for the keys files you generated, it will also ask you for a 256x256 jpeg cover (non-interlaced, has to be less than 128k).

After the nsp has been generated, you can go inside the Ultimate-Switch-Hack-Script folders and find the uncompressed content of Guardian Force, here you can swap some files around. If you go back a few threads, you will see a Texture.tex file that makes the lower-right menu icon disappear, there are also ini files being shared with good settings for various games.

Hope it helps!
There's no "16: Inject a Sega Saturn game" option for me in Ultimate-Switch-Hack-Script and trying to update it, i got "no internet connection" error, any workaroud for this?

nvm, figured it is in the master version not the latest release
 
Last edited by fagnerkof,
If you talk about NSPs that was created by my script I don't think it will have console's shared keys cause they are not used during a NSP creation. I haven't tried to install a NSP that I have created on an other console so I can't confirm.
i have not had a proper look of what is stored with the output, all i know is each key is unique or traceable to the console it come from, this isn't a big deal unless something from those prod.keys was stored in the output

there is something else i am not at liberty to discuss in public which concerns me

i just dont want to get you into the spot light if some Black Sheep start using the Script and share the games to TinFoil or other pirate sites, many Eyes are glued to this thread and are already making Articles about what we have achieved in their own Websites

what we are doing is a very Grey Area for Nintendo Game Package property

also on another subject, someone started to figure out the proper settings for some games
does your script cares what was the name for the game settings.ini
does it automatically correct the name or do i have to keep the name to Guardian_Force.ini before i point your Script to it
forgive my ignorance i did not test it myself and was looking for a quick reply before i test it again


the idea is to keep a folder with your tool and add all the config_settings.ini that we customized for each game as resource to use while we build NSP
 
Last edited by ZER-O,
  • Like
Reactions: Thorhax
I always get a "Failed to create placeholder" error after installing the newly created game. The Icon on the main menu is always loading and i have to delete the installed saturn game. Tried it with Cotton2 and Guardian. Prodkeys are fresh and everything else should be alright too.
The script also throws an error "failed to match key".

Got this same error here
 
Try to use the script in debug mode (not full debug) and attach the log file.
Came to realization that i need to dump my prod.keys & title.keys after NSP installation, previously I did it before. Your error message helped guide the way. Everything now went as expected and can start optimizing individual games.

Your script is quite good! If I can get my hands on another V1 Switch I'll attempt a full run with it
 
i have not had a proper look of what is stored with the output, all i know is each key is unique or traceable to the console it come from, this isn't a big deal unless something from those prod.keys was stored in the output
Good to be cautious, but for accuracy - most keys dumped from a Switch into prod.keys are generic and the same between all Switches. The only unique ones are those used to encrypt the eMMC etc. Keys used to make new NSPs and decrypt existing ones are generic, and there would be no reason for any identifiable key to end up in a resulting NSP, unless the script literally bundled the prod.keys file into it by accident.

If you wanted confirmation that most keys are generic, you could google "prod.keys pastebin" or similar to see what's publicly (tho not legally per se) available and compare the keys to your own file.
 
Sakura Wars (Japan) (English Translation) - Perfect (Emulator will not read ISO+WAV+CUE, you will need to convert to BIN+CUE. I recommend AnyBurn to accomplish this.)
How did you combine the discs to make one bin and cue? I see that you said you used cdmage to combine everything into one bin and cue, but I don't see how to do that within the application.
 
How did you combine the discs to make one bin and cue? I see that you said you used cdmage to combine everything into one bin and cue, but I don't see how to do that within the application.
You need to use the "save as..." option. It will merge all files that way.
 
Yes, but how do I load multiple discs? Or will I just have to switch the files when I get to the point in the game in which I need to swap discs.
I think nobody has tried that yet.

If the game allows to save before the disc changing (ala Final Fantasy VII) just save and load in the next disc. If the game does not allow that.. well, then that's a problem. But not only in this emulator, even some ODEs has this problem (like Fenrir, tho it will receive a disc hot-swap feature in the future).

I guess ZebraEngine should have the same save format as SSF, so maybe you could bypass the disc swapping on PC.
 
Last edited by Deleted member 323844,
I think nobody has tried that yet.

If the game allows to save before the disc changing (ala Final Fantasy VII) just save and load in the next game. If the game does not allow that.. well, then that's a problem. But not only in this emulator, even some ODEs has this problem (like Fenrir, tho it will receive a disc hot-swap feature in the future).

I guess ZebraEngine should have the same save format as SSF, so maybe you could bypass the disc swapping on PC.
Well shoot. That blows.
I'll keep SSF in mind.
 
Last edited by corncheetos,
OK, finally trying this myself using my GuardianForce install.

Save game has been deleted.

What am I doing wrong?

Do I need to configure atmosphere to use these files instead of the game ones?

View attachment 280081
The answer is that I wasn't doing anything wrong. I needed to wait for the splash screen to pass and the actual Saturn game to boot. LOL

Waialae no Kiseki 36 Extra Holes is playing perfectly understand Guardian. Force. No overclock. No lag that I can discern. Pretty vital for a good game to have reliable timing on the input button presses.
 
Last edited by matt!,
Bio Hazard / Resident Evil (Both) work, indeed. But, here comes the weird part, you have to let the initial Capcom logo to play, you can skip the second video (pre-intro) if you want. Otherwise Title Screen will be stucked and it won't show the Press Start Button text. I skipped both videos the first time, that's why it was not working for me.

It also seem to requiere CDBlockNoWait="1". Default CD speeds seem to lock the game sometimes in the door transitions, with faster loading speed I haven't got any issue until the firs Item Box, haven't played more, but seems stable. Don't use deinterlacing, otherwise you will see an awful ghosting effect behind the character.

No other tweak seem to be required. 450 BlockClock works fine and BusWait makes the game always show the Press Start Button text, but in the third or fourth camera cut (depending on the character) the game always hangs.
 
Creating nsp I keep getting the warnings:
[WARN]: Failed to match key "bis_kek_source", (value "*")
[WARN]: Failed to match key "eticket_rsa_kek", (value "*")
[WARN]: Failed to match key "eticket_rsa_kek_source", (value "*")
[WARN]: Failed to match key "eticket_rsa_kekek_source", (value "*")
[WARN]: Failed to match key "per_console_key_source", (value "*")
[WARN]: Failed to match key "retail_specific_aes_key_source", (value "*")
[WARN]: Failed to match key "rsa_oaep_kek_generation_source", (value "*")
[WARN]: Failed to match key "rsa_private_kek_generation_source", (value "*")
[WARN]: Failed to match key "save_mac_key", (value "*")
[WARN]: Failed to match key "sd_seed", (value "*")
[WARN]: Failed to match key "ssl_rsa_kek", (value "*")
[WARN]: Failed to match key "ssl_rsa_kek_source_x", (value "*")
[WARN]: Failed to match key "ssl_rsa_kek_source_y", (value "*")
[WARN]: Failed to match key "xci_header_key", (value "*")

And it doesn't work, can't install properly on switch, and yuzu loads the nsp but the game don't start

Have no clue of what to do to fix this. This happens both with my prod,keys extracted via Lockpick or using other prod,keys found out there
 
Creating nsp I keep getting the warnings:
[WARN]: Failed to match key "bis_kek_source", (value "*")
[WARN]: Failed to match key "eticket_rsa_kek", (value "*")
[WARN]: Failed to match key "eticket_rsa_kek_source", (value "*")
[WARN]: Failed to match key "eticket_rsa_kekek_source", (value "*")
[WARN]: Failed to match key "per_console_key_source", (value "*")
[WARN]: Failed to match key "retail_specific_aes_key_source", (value "*")
[WARN]: Failed to match key "rsa_oaep_kek_generation_source", (value "*")
[WARN]: Failed to match key "rsa_private_kek_generation_source", (value "*")
[WARN]: Failed to match key "save_mac_key", (value "*")
[WARN]: Failed to match key "sd_seed", (value "*")
[WARN]: Failed to match key "ssl_rsa_kek", (value "*")
[WARN]: Failed to match key "ssl_rsa_kek_source_x", (value "*")
[WARN]: Failed to match key "ssl_rsa_kek_source_y", (value "*")
[WARN]: Failed to match key "xci_header_key", (value "*")

And it doesn't work, can't install properly on switch, and yuzu loads the nsp but the game don't start

Have no clue of what to do to fix this. This happens both with my prod,keys extracted via Lockpick or using other prod,keys found out there
Same. I for some reason never had the ability to get my prod or title keys from lockpick. I have to use the Lockpick_RCM to get my keys. When i use that, I get errors such as what you listed when injecting. I am not very good at understanding this lol
 
2021101717071600-0C87AADF5C7669AB4F25F77B3E61F738.jpg
2021101718165900-0C87AADF5C7669AB4F25F77B3E61F738.jpg

https://segaxtreme.net/threads/sega-saturn-26th-anniversary-game-competition.24626/
 
I was thinking... could SimpleModManager be a solution to managing multiple games?
My idea was to put all game bins in the romfs folder and then use SimpleModManager to select games by swapping cue files.

Here's how it looks:

1. Parent game and count of available alternate games
3CA9B30F-0A22-407B-AD99-C84D814E5573.jpeg


2. Select a game
49B8EF31-E12D-4F33-9D66-D609D96C3E28.jpeg


3. (Deactivate any previously active game) Activate a game (this copies over just the cue file so is pretty much instant)
3E2E2CE3-48DC-47B8-ADAA-272C370F7A21.jpeg


4. Game is now active
2A63AF38-BBF5-4B65-A73E-B48F7A8962E4.jpeg

5. Go to home menu, launch parent game, have fun 😎
 
Last edited by matt!,

Site & Scene News

Popular threads in this forum