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,647
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,647
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,681
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
    Xdqwerty @ Xdqwerty: