ROM Hack [Release] Ultimate SNES VC Injector for 3DS

Erxkum

Well-Known Member
Member
Joined
Apr 15, 2017
Messages
104
Trophies
0
Age
37
XP
279
Country
Portugal
The original Japanese rom dump you can find for this game is Fire Emblem 5 Trachia 776 (Rom Version) (J).fig (Size: 4.00 MB - CRC32: 95E289DD).

In order to convert this to SFC (no header) format, you'll need to use:
  • https://smc2sfc2.herokuapp.com/
  • ADD FILES → All Files (*.*)File Name: Fire Emblem 5 Trachia 776 (Rom Version) (J).figDownload ROMsno headers (*.sfc) → etc.
There should be sfc ROMs.zip containing:
  • Fire Emblem 5 Trachia 776 (Rom Version) (J).sfc (4.00 MB - FC519952)
Download the ProjectExile.zip patch found at:
Apply ProjectExile103.bps (250 KB - 2144DF1C) to the SFC rom with Floating IPS v1.31.

The english patched SFC rom should be (6.00 MB - 95684A59).

Everything checks out until the last step, my english patched SFC rom:
Size: 6,291,456
CRC-32: 0DA1E4B2
MD-5: 0cfdd6600cf2c4d62157deec672ea1dd

Everything else before it has the same exact CRC32 and size.

I used the Ultimate SNES VC Injector for 3DS again and it gave me the same error, "rom isn't lorom or hirom, or its trimmed"
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,945
Country
United States
Everything checks out until the last step, my english patched SFC rom:

Everything else before it has the same exact CRC32 and size.

I used the Ultimate SNES VC Injector for 3DS again and it gave me the same error, "rom isn't lorom or hirom, or its trimmed"
Your output SFC rom with CRC32 hash 0DA1E4B2 is correct.

I retraced my steps and found out I have an earlier version of this patch, ProjectExile101.bps (249 KB - 2144DF1C), that when applied to SFC rom (FC519952), will output English patched SFC rom (95684A59).

If you haven't noticed, both the ProjectExile101.bps and ProjectExile103.bps patches share the same CRC32 hash!

It's weird to witness hash collision first hand. Look in the 7z archive and check yourself.
 

Attachments

  • ProjectExile_101&103.7z
    275.2 KB · Views: 202

Erxkum

Well-Known Member
Member
Joined
Apr 15, 2017
Messages
104
Trophies
0
Age
37
XP
279
Country
Portugal
Your output SFC rom with CRC32 hash 0DA1E4B2 is correct.

I retraced my steps and found out I have an earlier version of this patch, ProjectExile101.bps (249 KB - 2144DF1C), that when applied to SFC rom (FC519952), will output English patched SFC rom (95684A59).

If you haven't noticed, both the ProjectExile101.bps and ProjectExile103.bps patches share the same CRC32 hash!

It's weird to witness hash collision first hand. Look in the 7z archive and check yourself.

Well, since version 103 of the patch has many bug fixes, I'm going to settle for an snes9x forwarder.
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,945
Country
United States
Well, since version 103 of the patch has many bug fixes, I'm going to settle for an snes9x forwarder.
I would like to add that I originally downloaded the version 1.03 patch from reddit, which must have been mistakenly labelled as such before the poster corrected the link to the real 1.03. Just letting you know I didn't purposely mislead you with incorrect patching.
Ultimate SNES VC Injector for 3DS is outdated. Go back to using NSUI Beta 27 with Injection method: [ RetroArch CATSFC forwarder | RetroArch CATSFC Plus forwarder ] if you're going to have any luck running this game on n3DS / n3DSXL / n2DSXL.
o2DS / o3DS / o3DSXL users should probably consider playing this on desktop snes9x.
 

Erxkum

Well-Known Member
Member
Joined
Apr 15, 2017
Messages
104
Trophies
0
Age
37
XP
279
Country
Portugal
I would like to add that I originally downloaded the version 1.03 patch from reddit, which must have been mistakenly labelled as such before the poster corrected the link to the real 1.03. Just letting you know I didn't purposely mislead you with incorrect patching.
Ultimate SNES VC Injector for 3DS is outdated. Go back to using NSUI Beta 27 with Injection method: [ RetroArch CATSFC forwarder | RetroArch CATSFC Plus forwarder ] if you're going to have any luck running this game on n3DS / n3DSXL / n2DSXL.
o2DS / o3DS / o3DSXL users should probably consider playing this on desktop snes9x.

Which one is better for a n3dsXL? RetroArch CATSFC forwarder or RetroArch CATSFC Plus forwarder?

I've been using snes9x forwarder from NSUI Beta 27 because last time I tried CATSFC Plus, I had this weird sound during the emulation not noticeable on the snes9x forwarder injection.
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,945
Country
United States
Which one is better for a n3dsXL? RetroArch CATSFC forwarder or RetroArch CATSFC Plus forwarder?

I've been using snes9x forwarder from NSUI Beta 27 because last time I tried CATSFC Plus, I had this weird sound during the emulation not noticeable on the snes9x forwarder injection.
We kinda went over this back at the NSUI thread starting around (your) post #343. CATSFC Plus is suppose to have better audio accuracy than CATSFC but at the cost of performance.
However, sound distortion may be an aftereffect of the game being emulated too slowly. If that happens, you can try playing FE5 injected with CATSFC. I notice for certain games, CATSFC tends to cause occasional popping noises. You pick and choose by trial and error whichever works best for you.

Other things to consider:
  • Dump the DSP audio codec with DSP1: sdmc:/3ds/dspfirm.cdc
  • Use higher n3ds clock speed: Luma3DS v10.0 configuration, New 3DS CPU: Clock+L2(x)
  • If you have an 128 GB or larger SD card, consider reformatting it under FAT32 + 64 KB cluster size for some read & write performance gain.
    • 64 GB and smaller cards should stick to FAT32 + 32 KB cluster size.
 
  • Like
Reactions: Erxkum

Erxkum

Well-Known Member
Member
Joined
Apr 15, 2017
Messages
104
Trophies
0
Age
37
XP
279
Country
Portugal
We kinda went over this back at the NSUI thread starting around (your) post #343. CATSFC Plus is suppose to have better audio accuracy than CATSFC but at the cost of performance.
However, sound distortion may be an aftereffect of the game being emulated too slowly. If that happens, you can try playing FE5 injected with CATSFC. I notice for certain games, CATSFC tends to cause occasional popping noises. You pick and choose by trial and error whichever works best for you.

Other things to consider:
  • Dump the DSP audio codec with DSP1: sdmc:/3ds/dspfirm.cdc
  • Use higher n3ds clock speed: Luma3DS v10.0 configuration, New 3DS CPU: Clock+L2(x)
  • If you have an 128 GB or larger SD card, consider reformatting it under FAT32 + 64 KB cluster size for some read & write performance gain.
    • 64 GB and smaller cards should stick to FAT32 + 32 KB cluster size.

Thank you for clearing my questions.
 
  • Like
Reactions: TurdPooCharger

bahamut920

Well-Known Member
Member
Joined
Jan 23, 2009
Messages
582
Trophies
1
XP
2,088
Country
United States
There are already several available emulators for the 3DS that implement those chips, which is far easier than opening up an already compiled emulator, reverse-engineering the code, and then coding in new features (in Assembly) into it. Sorry if you like the official VC emulator, but it's a lot of work for no real benefit.
 

_DrBecks_

Well-Known Member
Newcomer
Joined
Mar 9, 2018
Messages
84
Trophies
0
Age
35
XP
595
Country
Germany
Hey guys, I need your help: Is there a patch for Secret of Evermore which fixes missing sound? Any help is appreciated. The game works despite a few missing sound-elements. I found similar patches for Terranigma and Illusion of Time, which were designed for SNES Mini but also worked on VC of New 3DS. So please if someone could help - thx in Advance. On the Snes Mini the preset ID EF10 Solves this issue. But how to apply on VC?
 
Last edited by _DrBecks_,

k1r92

Active Member
Newcomer
Joined
Mar 5, 2016
Messages
28
Trophies
0
Age
32
XP
164
Country
United States
Hey guys, I need your help: Is there a patch for Secret of Evermore which fixes missing sound? Any help is appreciated. The game works despite a few missing sound-elements. I found similar patches for Terranigma and Illusion of Time, which were designed for SNES Mini but also worked on VC of New 3DS. So please if someone could help - thx in Advance. On the Snes Mini the preset ID EF10 Solves this issue. But how to apply on VC?

you'll need to fully extract your Secret Of Evermore .cia and edit the data.bin located in the romfs.

Offset 0x3D should be changed to EF10 and the sound will work once you repack everything back to .cia
 
  • Like
Reactions: _DrBecks_

_DrBecks_

Well-Known Member
Newcomer
Joined
Mar 9, 2018
Messages
84
Trophies
0
Age
35
XP
595
Country
Germany
you'll need to fully extract your Secret Of Evermore .cia and edit the data.bin located in the romfs.

Offset 0x3D should be changed to EF10 and the sound will work once you repack everything back to .cia

Thanks a lot!!!
 

k1r92

Active Member
Newcomer
Joined
Mar 5, 2016
Messages
28
Trophies
0
Age
32
XP
164
Country
United States
Thanks a lot!!!

here's a quick tutorial for whoever stumbles upon this and needs help

the New Super Ultimate Injector can easily extract and rebuild CIA's

create and export a Secret Of Evermore .cia
Tools -> Cia extract and rebuild
extract the CIA and go to temp\extracted\ExtractedRomFS\data.bin
open the data.bin with a hex editor
https://i.imgur.com/AcqlKN2.png
change the highlighted to EF10 and save the data.bin (make sure there's no backup file created by your hex editor program)
rebuild the CIA. it will appear in \temp\ as *_Edited.cia
 
Last edited by k1r92,
  • Like
Reactions: _DrBecks_

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
2,623
Trophies
1
Age
36
XP
5,460
Country
Germany
Wh do all these tools almost work under Linux with mono? This one hangs when clicking "Next step (3d banner)".
 

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
2,623
Trophies
1
Age
36
XP
5,460
Country
Germany
The thing is we shouldn't need wine for this. These injectors are written in C#, so they run under .NET on Windows and under mono on Linux/Mac:
Code:
$ file Ultimate\ SNES\ VC\ Injector\ for\ 3DS.exe
Ultimate SNES VC Injector for 3DS.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows
$ mono Ultimate\ SNES\ VC\ Injector\ for\ 3DS.exe

Anyway, for some tasks (showing the 3d banner maybe?) they use a OpenGL library which seems to be Windows specific and fails on Linux. They should just use one of the major cross-platform OpenGL libs and be good, example: https://www.reddit.com/r/gamedev/comments/408svs/finding_a_modern_opengl_library_for_cnetmono/
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,945
Country
United States
The thing is we shouldn't need wine for this. These injectors are written in C#, so they run under .NET on Windows and under mono on Linux/Mac:
Code:
$ file Ultimate\ SNES\ VC\ Injector\ for\ 3DS.exe
Ultimate SNES VC Injector for 3DS.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows
$ mono Ultimate\ SNES\ VC\ Injector\ for\ 3DS.exe

Anyway, for some tasks (showing the 3d banner maybe?) they use a OpenGL library which seems to be Windows specific and fails on Linux. They should just use one of the major cross-platform OpenGL libs and be good, example: https://www.reddit.com/r/gamedev/comments/408svs/finding_a_modern_opengl_library_for_cnetmono/
On my 64-bit Manjaro XFCE edition setup, injection doesn't work for NSUI with just WINE and mono installed (no banner rendering). After trying KleinesSinchen's method of installing dotnet40 and vcrun2013, it finally did get the program to inject CIAs.

Running Windows programs on Linux is always a hit or miss experience.. If you manage to find a different way to run NSUI on Linux, we're all ears.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Sonic Angel Knight @ Sonic Angel Knight: :ninja: