Homebrew Discussion SNES Online - Mod Discussion

Status
Not open for further replies.

18Phoenix

Well-Known Member
OP
Member
Joined
Nov 21, 2005
Messages
766
Trophies
1
XP
2,298
Country
Germany
SNES-Switch-rcm625x413.jpg

Hi everyone :)

I thought it's good to start a new thread to talk and share about modding SNES Online to get additional roms working.
I already love it to mod the NES Online, now I can't await it to go on with SNES Online.
First it has looked almost equal. Same folders, same structure, again same files lclassics.titlesdb + xtx.z.

I tried out some steps but it's not working even if I copy a given rom and rename folder and files.
The SNES roms are sfrom files. This file type is already known by the SNES Mini and others for use with the canoe emu.
But the given sfrom files work fine with SNES9x emu.

I already got this great info by DarkAkuma :bow: :
Hello! I came across this thread while researching the switch tools I'd need to peek at the snes files so I can confirm some Preset ID's/check for VC patches.

I can say right now that the Switch .sfrom format is different from the SNESClassic/WiiU, or even 3DS. The switch .sfroms work with snes9x simply because they are the normal .sfc rom with some footer data tacted onto the end.

That said, while I'm not sure about the .sfromsig file blocking anything, I can surmise that if you aren't putting a footer at the end of the rom yourself, it likely wont work either. I'll be looking into understanding this footer format over the coming days. For now, you may want to just try copying the footer from a similarly sized game for any injection attempts. Bytes #5 and 6 are the preset it bytes, if you want to manually change them.

I edited the lclassics.titlesdb and added a line therefore in string.lng.
The prog starts and the new roms appears. Even the new cover appears (converted with NES ONLINE Game Injector MOD).

cover added.jpg

But neither the roms works (nothing happens pressing A) nor the detail screen (after pressing X nothing goes in the menu anymore)

That's very disappointing. I hope someone else gets it work the next days.

So, let's share our findings here and discuss about the progress. :D
 
Last edited by 18Phoenix,

18Phoenix

Well-Known Member
OP
Member
Joined
Nov 21, 2005
Messages
766
Trophies
1
XP
2,298
Country
Germany
Like with NES Online, the lclassics.titlesdb is located here: 01008D300C50C000\romfs\titles\

To test I just added one game like this:
"S-2501_e": {
"code": "2501_e",
"rom": "/titles/S-2501_e/2501_e.sfrom",
"sort_title": "actraiser",
"details_screen": "/titles/S-2501_e/S-2501_e-details.xtx.z",
"copyright": "©1995 Nintendo",
"title": "ActRaiser",
"armet_threshold": 0,
"lcla6_release_date": "2019-09-01",
"armet_version": "off",
"sort_publisher": "nintendo",
"title_zhHant": "ー",
"save_count": 1,
"volume": 87,
"title_zhHans": "ー",
"publisher": "Nintendo",
"title_ko": "ActRaiser",
"rewind_interval": 1.5,
"release_date": "1995-10-04",
"players_count": 1,
"cover": "/titles/S-2501_e/S-2501_e.xtx.z",
"simultaneous": false,
"autoplay": []
}

I just have chosen S-2501_e as a new rom folder.
I converted cover and screenshot with the same tool like for the NES Online.
For testing I just copied and renamed 2 given *.sfrom + *.sfromsig to see if it works like this.
The prog started, the menu appeared and the cover was added like planed.
So far so good.
But starting didn't work at all. After pressing A to start the "new" game nothing happens at all.

Then I tried to edit the text in the string.lng which is again located here: 01008D300C50C000\romfs\bootapp\resources\strings\<lang>\
I added a line like it works for me with NES Online:
....
"strings": {
"META_TITLE_COMMENT_S_2501_e": "Test for ActRaiser",
"META_TITLE_COMMENT_S_2002_e": ""People are going missing in Bayside City, .....",
....
Checking the detail screen by pressing Y still works for the given roms.
But not for the new one: Pressing Y leads to the menu not reacting to all buttons at all.
 
Last edited by 18Phoenix,

18Phoenix

Well-Known Member
OP
Member
Joined
Nov 21, 2005
Messages
766
Trophies
1
XP
2,298
Country
Germany
Hello! I came across this thread while researching the switch tools I'd need to peek at the snes files so I can confirm some Preset ID's/check for VC patches.

I can say right now that the Switch .sfrom format is different from the SNESClassic/WiiU, or even 3DS. The switch .sfroms work with snes9x simply because they are the normal .sfc rom with some footer data tacted onto the end.

Great infos, thanks :)
Your right. I compared the SNES Online sfrom file "2002_e.sfrom" for Brawl Brothers with "Brawl Brothers (U) [!].sfc" in a hexeditor.
Just the end is different, 2 lines have been added.

That said, while I'm not sure about the .sfromsig file blocking anything, I can surmise that if you arent putting a footer at the end of the rom yourself, it likely wont work either. I'll be looking into understanding this footer format over the coming days. For now, you may want to just try copying the footer from a similarly sized game for any injection attempts. Bytes #5 and 6 are the preset it bytes, if you want to manually change them.
I'm just a rookie, unfortunately I can't do much with "Bytes #5 and 6 ...".
 
Last edited by 18Phoenix,

Falo

Well-Known Member
Member
Joined
Jul 22, 2012
Messages
680
Trophies
2
XP
2,627
Country
Germany
SNES Signature (sig) Files:

Way 1: patch RSA Key:
Code:
.rodata:00000000005412A0 = Public Key
.rodata:00000000005413A0 = Exponent

Way 2: patch RSA check:
Code:
.text:000000000001D92C 29 00 00 94                 BL              sub_1D9D0
to
MOV W0, 1

sub_1D9D0 checks the RSA hash against the signature and returns 0 on fail and 1 on success, so exefs needs to be patched, but a cheat code should also work, so:

Code:
Super Nintendo Entertainment System - Nintendo Switch Online - Update 0 (v1.0.0)
TitleId: 01008D300C50C000
BuildId: 8025A0DF4699C23C

[Remove Signature Check (on)]
04000000 0001D92C 52800020
[Remove Signature Check (off)]
04000000 0001D92C 94000029

Note: i didn't test if the code works, thats up to you guys
 

18Phoenix

Well-Known Member
OP
Member
Joined
Nov 21, 2005
Messages
766
Trophies
1
XP
2,298
Country
Germany
Note: i didn't test if the code works, thats up to you guys
Looks cool. But I as a rookie don't understand a word.
Which file can be patched how?
Can you got a bit more in detail please?
Removing the signature check sounds great but how?
Must I edit a special file with an hexeditor, search for "52800020" and change it to "94000029" ?
And which file? One of the 7 in the exefs folder (main,...,subsdk2) ?
Or must I use a different editor ?
 
Last edited by 18Phoenix,
  • Like
Reactions: romuloarpini

Kirby567fan

Well-Known Member
Member
Joined
Jan 6, 2018
Messages
402
Trophies
0
Age
23
XP
2,641
Country
Morocco
Looks cool. But I as a rookie don't understand a word.
Which file can be patched how?
Can you got a bit more in detail please?
Removing the signature check sounds great but how?
Must I edit a special file with an hexeditor, search for "52800020" and change it to "94000029" ?
And which file? One of the 7 in the exefs folder (main,...,subsdk2) ?
Or must I use a different editor ?
Those are cheat codes, so you dont need to edit something in main, copy this to atmosphere/titles and youre good to go.
Also you need Edizon.
 

Attachments

  • 01008D300C50C000.rar
    374 bytes · Views: 507

Falo

Well-Known Member
Member
Joined
Jul 22, 2012
Messages
680
Trophies
2
XP
2,627
Country
Germany
Use Edizon or SXOS? This is a Switch cheat code, not a patch tutorial.

If you want to patch the exefs, then use nx2elf.exe and elf2nso.exe

- extract main from exefs
- use nx2elf.exe to convert it to elf
- open it in HxD, goto 0x1E1B4 and replace "29 00 00 94" with "20 00 80 52"
- use elf2nso.exe to convert it back to nso
- place it in the exefs folder on sd card
 

arthur_bleme

Active Member
Newcomer
Joined
Jun 18, 2018
Messages
30
Trophies
0
Age
35
Location
France
XP
259
Country
France
SNES Signature (sig) Files:

Way 1: patch RSA Key:
Code:
.rodata:00000000005412A0 = Public Key
.rodata:00000000005413A0 = Exponent

Way 2: patch RSA check:
Code:
.text:000000000001D92C 29 00 00 94                 BL              sub_1D9D0
to
MOV W0, 1

sub_1D9D0 checks the RSA hash against the signature and returns 0 on fail and 1 on success, so exefs needs to be patched, but a cheat code should also work, so:

Code:
Super Nintendo Entertainment System - Nintendo Switch Online - Update 0 (v1.0.0)
TitleId: 01008D300C50C000
BuildId: 8025A0DF4699C23C

[Remove Signature Check (on)]
04000000 0001D92C 52800020
[Remove Signature Check (off)]
04000000 0001D92C 94000029

Note: i didn't test if the code works, thats up to you guys

it works ! I was able to replace the Zelda rom with the French PAL version and it starts

thank you !
 

18Phoenix

Well-Known Member
OP
Member
Joined
Nov 21, 2005
Messages
766
Trophies
1
XP
2,298
Country
Germany
Use Edizon or SXOS? This is a Switch cheat code, not a patch tutorial.

If you want to patch the exefs, then use nx2elf.exe and elf2nso.exe

- extract main from exefs
- use nx2elf.exe to convert it to elf
- open it in HxD, goto 0x1E1B4 and replace "29 00 00 94" with "20 00 80 52"
- use elf2nso.exe to convert it back to nso
- place it in the exefs folder on sd card

BIG Thanks for for great and detailed answer but I didn't found a nx2elf.exe or elf2nso.exe,
just the github for compiling and I don't have the knowledge therefore, I'm only a user and editor.

How do I use cheats with SXOS ??? Never done it before.
 

Kirby567fan

Well-Known Member
Member
Joined
Jan 6, 2018
Messages
402
Trophies
0
Age
23
XP
2,641
Country
Morocco
BIG Thanks for for great and detailed answer but I didn't found a nx2elf.exe or elf2nso.exe,
just the github for compiling and I don't have the knowledge therefore, I'm only a user and editor.

How do I use cheats with SXOS ??? Never done it before.
Copy the SNESOnlineDisableCheck folder from the rar file to atmosphere/exefs_patches.
Its an ips patch and probably is the simplest this will get to.
Shoutouts to Falo for finding and patching the check.
 
Last edited by Kirby567fan,

Fugelmir

Well-Known Member
Member
Joined
Mar 9, 2016
Messages
633
Trophies
0
Age
36
XP
2,676
Country
Canada
So this method that falo outlines involves modifying the rom itself, then using cheats to disable the signature check?
 

BlueFoot

Member
Newcomer
Joined
Sep 7, 2019
Messages
9
Trophies
0
Age
28
XP
72
Country
Israel
I'm a rookie but I don't know where to start
I put the cheat in the edizon
1.extract the xci

now where should I put the rom?
 

KapuDaKoopa

That One Splatoon Dataminer
Member
Joined
Mar 12, 2016
Messages
474
Trophies
0
XP
984
Country
United States
It's great that already people have been able to patch out the sigchecks, but apparently data gets sent to Nintendo through prepo (which I believe might be the same as NES Online app actually?? I'm forgetting) so I'm wondering if sigcheck patching even matters. Do we know if Nintendo ever banned people for running custom entries in the NES Online app?
 

Falo

Well-Known Member
Member
Joined
Jul 22, 2012
Messages
680
Trophies
2
XP
2,627
Country
Germany
It's great that already people have been able to patch out the sigchecks, but apparently data gets sent to Nintendo through prepo (which I believe might be the same as NES Online app actually?? I'm forgetting) so I'm wondering if sigcheck patching even matters. Do we know if Nintendo ever banned people for running custom entries in the NES Online app?

It's a common thing now, Nintendo wants more info on playtime, played games and lots of other information through a new api called PlayReport.
The first game to use that new Api was Fire Emblem Three Houses (it did send full playreport and lots of savegame data), the second was Astral Chain, now the SNES app.

The data is collected with: romfs\bootapp\resources\scripts\system\playreport.lua
To avoid this, just stay offline.
 

KapuDaKoopa

That One Splatoon Dataminer
Member
Joined
Mar 12, 2016
Messages
474
Trophies
0
XP
984
Country
United States
It's a common thing now, Nintendo wants more info on playtime, played games and lots of other information through a new api called PlayReport.
The first game to use that new Api was Fire Emblem Three Houses (it did send full playreport and lots of savegame data), the second was Astral Chain, now the SNES app.

The data is collected with: romfs\bootapp\resources\scripts\system\playreport.lua
To avoid this, just stay offline.
Ah, makes sense. But, would it just send all the data upon launching the app while connected to the internet or does it not store it like some other games I know do?
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • The Real Jdbye @ The Real Jdbye:
    cyberpunk at 4k without DLSS/fidelityfx *might* exceed 12gb
    +1
  • The Real Jdbye @ The Real Jdbye:
    but that game barely runs at native 4k
  • Psionic Roshambo @ Psionic Roshambo:
    I think it was some newer games and probably poorly optimized PS4 or PS5 ports
  • The Real Jdbye @ The Real Jdbye:
    they definitely will age better but i feel dlss might outweigh that since it looks about as good as native resolution and much less demanding
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    When I played Cyberpunk on my old 2080 Ti it sucked lol
  • The Real Jdbye @ The Real Jdbye:
    AMD could introduce something comparable to DLSS but nvidia's got a lot more experience with that
  • The Real Jdbye @ The Real Jdbye:
    least amd 7xxx has tensor cores which the previous generations didn't so there is the potential for AI upscaling
  • Psionic Roshambo @ Psionic Roshambo:
    They have FSR or whatever it's called and yeah it's still not great
  • The Real Jdbye @ The Real Jdbye:
    so AMD seem to finally be starting to take AI seriously
  • Psionic Roshambo @ Psionic Roshambo:
    Oh yeah those new 8000 CPUs have AI cores built in that's interesting
  • Psionic Roshambo @ Psionic Roshambo:
    Maybe they plan on offloading to the CPU?
  • Psionic Roshambo @ Psionic Roshambo:
    Would be kinda cool to have the CPU and GPU working in random more
  • Psionic Roshambo @ Psionic Roshambo:
    Tandem even
  • The Real Jdbye @ The Real Jdbye:
    i think i heard of that, it's a good idea, shouldn't need a dedicated GPU just to run a LLM or video upscaling
  • The Real Jdbye @ The Real Jdbye:
    even the nvidia shield tv has AI video upscaling
  • The Real Jdbye @ The Real Jdbye:
    LLMs can be run on cpu anyway but it's quite slow
  • BakerMan @ BakerMan:
    Have you ever been beaten by a wet spaghetti noodle by your girlfriend because she has a twin sister, and you got confused and fucked her dad?
  • Psionic Roshambo @ Psionic Roshambo:
    I had a girlfriend who had a twin sister and they would mess with me constantly.... Until one chipped a tooth then finally I could tell them apart.... Lol
  • Psionic Roshambo @ Psionic Roshambo:
    They would have the same hair style the same clothes everything... Really messed with my head lol
  • Psionic Roshambo @ Psionic Roshambo:
    @The Real Jdbye, I could see AMD trying to pull off the CPU GPU tandem thing, would be a way to maybe close the gap a bit with Nvidia. Plus it would kinda put Nvidia at a future disadvantage since Nvidia can't make X86/64 CPUs? Intel and AMD licensing issues... I wonder how much that has held back innovation.
  • The Real Jdbye @ The Real Jdbye:
    i don't think nvidia wants to get in the x64 cpu market anyways
  • The Real Jdbye @ The Real Jdbye:
    you've seen how much intel is struggling getting into the gpu market
  • The Real Jdbye @ The Real Jdbye:
    and nvidia is already doing ARM
  • The Real Jdbye @ The Real Jdbye:
    i don't think they want to take more focus away from their gpus
    The Real Jdbye @ The Real Jdbye: i don't think they want to take more focus away from their gpus