ROM Hack Had anyone tried to extract the limited release Fire Emblem: Shadow Dragon & the Blade of Light NSP?

iRonOfficial

New Member
OP
Newbie
Joined
Feb 2, 2021
Messages
3
Trophies
0
XP
35
Country
Philippines
Hi! I had a few experience extracting contents of the Switch games that I owned. But just recently, I bought Fire Emblem: Shadow Dragon and the Blade of Light (for those who don't know, it was the first Fire Emblem game on the Famicom except it was English localized).

But anyways, I bought it, and like usual, I decide to extract it and see if there is some .nes file that runs it (like from the NES Switch Online). I extracted it, and this one, is very interesting (and not fun). (See attachement below).

This is not like any NSPs that usually is inside. This one has no .tik file (which was commonly useful to fully see the contents).

I tried digging in to see if there were any things that can extract the game contents, and nothing.

Even the Switch emulators we used (that can dump RomFS), can't be able to do it.

So, is there a way that this can be extracted in any way? (I don't know if there were any threads for this btw.)

Thanks.
 

Attachments

  • FireEmblemNSPExtracted.PNG
    FireEmblemNSPExtracted.PNG
    14.3 KB · Views: 232

cucholix

00000780 00000438
Member
Joined
Jan 17, 2017
Messages
3,035
Trophies
1
Age
42
XP
5,030
Country
Chile
Idk but the game could only have exefs? I wasn’t able to find romfs with nxdumptool from my copy either
 
Last edited by cucholix,

MrVtR

Well-Known Member
Member
Joined
Sep 30, 2017
Messages
282
Trophies
0
Age
21
XP
1,426
Country
Brazil
Hey, have you made any progress? I was wondering if it's possible to extract this game, since there isn't romfs to extract
 

Worldblender

Well-Known Member
Member
Joined
May 27, 2019
Messages
289
Trophies
0
Age
25
XP
1,612
Country
United States
I caught notice of this thread, so I decided to jump in. Continuing from where the original author left off, I used the NSZ tool (from https://github.com/nicoboss/nsz) and hactool (from https://github.com/SciresM/hactool) in order to complete the extraction part. The title keys need to be extracted as part of this process.
The file to perform the extraction process on is 3e1d6097fa7d9cc0dd0675bf3d2eb654.nca, since it is the largest of the NCA files, likely containing the bulk of the game data. Extract the contents of the exefs preferably into a directory (called 'main' in the screenshot below). The other files that may appear are not needed here.
Screenshot_20210515_014133.png


Navigate to the directory with the contents of the exefs. Its contents should look like in the next screenshot below:
Screenshot_20210515_014105.png

At first, I was struggling like the OP to find a .nes file that can be reused in emulators, but gained hope using a hex editor (KDE's Okteta). In the end, I made the following significant observations and conclusions:
  • 'main' contains almost all of the translated English text (scrolling required to see them, and some text may look broken), starting at offset 000B:4990. A search in UTF-8/string mode for 'Marth' (case-sensitive) brings multiple results, proving that the translated text really does reside in the program itself. I determined that translation is done on-the-fly, as done with Super Mario 64 (Shindou ROM Pack) included in Super Mario 3D All-Stars.
  • The actual ROM file is likely to be embedded in one of the files in the screenshot above. To determine which file has this ROM image, I will need to know the size of the original release of
    Fire Emblem: Shadow Dragon & the Blade of Light.
After making these conclusions, I made another larger one: This localization is likely neither reuse-friendly nor mod-friendly, due to the program being designed in a way that stops people from easily extracting a ROM file and using it in an emulator. Instead, it's likely the original release in Japanese shipping with on-the-fly English translation patches, which, as a side effect, makes piracy of this localization harder, but not impossible. Should other people successfully extract the translated text, and create a fan-made localization on top of the original release of Fire Emblem: Shadow Dragon & the Blade of Light using this text, it may be possible to effectively port it for appearing in emulators and less likely real hardware.
Sorry if I let anyone down with these observations, but reuse of anything useful from this localization and any kind of modding for it is a lot harder then we thought. There is also no ROM file in easy sight; it requires a more thorough search than what I'm willing to do for now.
 

MrVtR

Well-Known Member
Member
Joined
Sep 30, 2017
Messages
282
Trophies
0
Age
21
XP
1,426
Country
Brazil
I caught notice of this thread, so I decided to jump in. Continuing from where the original author left off, I used the NSZ tool (from https://github.com/nicoboss/nsz) and hactool (from https://github.com/SciresM/hactool) in order to complete the extraction part. The title keys need to be extracted as part of this process.
The file to perform the extraction process on is 3e1d6097fa7d9cc0dd0675bf3d2eb654.nca, since it is the largest of the NCA files, likely containing the bulk of the game data. Extract the contents of the exefs preferably into a directory (called 'main' in the screenshot below). The other files that may appear are not needed here.
View attachment 262979

Navigate to the directory with the contents of the exefs. Its contents should look like in the next screenshot below:
View attachment 262980
At first, I was struggling like the OP to find a .nes file that can be reused in emulators, but gained hope using a hex editor (KDE's Okteta). In the end, I made the following significant observations and conclusions:
  • 'main' contains almost all of the translated English text (scrolling required to see them, and some text may look broken), starting at offset 000B:4990. A search in UTF-8/string mode for 'Marth' (case-sensitive) brings multiple results, proving that the translated text really does reside in the program itself. I determined that translation is done on-the-fly, as done with Super Mario 64 (Shindou ROM Pack) included in Super Mario 3D All-Stars.
  • The actual ROM file is likely to be embedded in one of the files in the screenshot above. To determine which file has this ROM image, I will need to know the size of the original release of
    Fire Emblem: Shadow Dragon & the Blade of Light.
After making these conclusions, I made another larger one: This localization is likely neither reuse-friendly nor mod-friendly, due to the program being designed in a way that stops people from easily extracting a ROM file and using it in an emulator. Instead, it's likely the original release in Japanese shipping with on-the-fly English translation patches, which, as a side effect, makes piracy of this localization harder, but not impossible. Should other people successfully extract the translated text, and create a fan-made localization on top of the original release of Fire Emblem: Shadow Dragon & the Blade of Light using this text, it may be possible to effectively port it for appearing in emulators and less likely real hardware.
Sorry if I let anyone down with these observations, but reuse of anything useful from this localization and any kind of modding for it is a lot harder then we thought. There is also no ROM file in easy sight; it requires a more thorough search than what I'm willing to do for now.
Normally I work with Kruptar7 app to make fan-made translations here, which requires the game pointers to map the texts and remap the pointers on the app when I change the number of letters on the text.
I made some texts with this game last month and I had the same conclusions that you observed. I tried to modify only one letter on the text and the game recognized the text, but when I add one more letter than normal on an phrase, the game returns me to an error screen, almost 100% sure that this is some pointer issue
If you or someone find the pointer table on these files, I can make some file here on Kruptar and attach here for other users translate to their languages too
 

Worldblender

Well-Known Member
Member
Joined
May 27, 2019
Messages
289
Trophies
0
Age
25
XP
1,612
Country
United States
Normally I work with Kruptar7 app to make fan-made translations here, which requires the game pointers to map the texts and remap the pointers on the app when I change the number of letters on the text.
I made some texts with this game last month and I had the same conclusions that you observed. I tried to modify only one letter on the text and the game recognized the text, but when I add one more letter than normal on an phrase, the game returns me to an error screen, almost 100% sure that this is some pointer issue
If you or someone find the pointer table on these files, I can make some file here on Kruptar and attach here for other users translate to their languages too
Where can I find the Kruptar translation program? If it's open-source, where is its source code repository? How did you make your text changes, I wonder?
I may take me a long time to dig out anything beyond what I have already noted, as my focus is on other games. I wonder if it's even possible to extract the ROM image from the files I listed (likely for use in emulators), that could possibly include the QOL improvements.
 

MrVtR

Well-Known Member
Member
Joined
Sep 30, 2017
Messages
282
Trophies
0
Age
21
XP
1,426
Country
Brazil
Where can I find the Kruptar translation program? If it's open-source, where is its source code repository? How did you make your text changes, I wonder?
I may take me a long time to dig out anything beyond what I have already noted, as my focus is on other games. I wonder if it's even possible to extract the ROM image from the files I listed (likely for use in emulators), that could possibly include the QOL improvements.
Kruptar7 is an Russian translation app made on 2009-2011 with some Russian and Brazilian teams, the predecessor(Kruptar6) was made in 2003-2005, it's an universal editor for games, the user can map any kind of game if you have the pointers/offsets to go to the text line, you can find it here. This app have english/portuguese/russian language.
For the documentation, you can find here only in an russian PDF or here an quick tutorial for dummies made by the app creator
As for the source code, here the repo, it was made in Delphi

The text changes I made on an hex editor, I just located the string "New Game" and changed to "Bew Game", it's supposed to work this change, cuz the text didn't move on the byte address, if you add one extra char, the game doesn't open anymore, like "BBew Game", this is an normal issue with pointer, you have to recalculate the pointers (And that's what Kruptar7 can do with just one button, besides supplies an interface to edit texts)

It's possible that you can extract the ROM too and change it, if it's running on an NES emulator, somewhere in the code you'll have the ROM I guess
 
Last edited by MrVtR,

Worldblender

Well-Known Member
Member
Joined
May 27, 2019
Messages
289
Trophies
0
Age
25
XP
1,612
Country
United States
It's possible that you can extract the ROM too and change it, if it's running on an NES emulator, somewhere in the code you'll have the ROM I guess
That part of finding exactly where the ROM image is in the files, is hard for me. I'm sure that an NES/Famicom emulator (likely the same one used in the NES Mini and then Nintendo Switch Online NES games). I'm not too good at doing things like this by myself, unless you can tell me if other people have already done the extraction process of this game.

Main reason why I came here is to see if it's possible to play this localization elsewhere other than a Nintendo Switch; preferably an emulator on other platforms, PC included. It's possible I may give up should this become too difficult.
 

MrVtR

Well-Known Member
Member
Joined
Sep 30, 2017
Messages
282
Trophies
0
Age
21
XP
1,426
Country
Brazil
That part of finding exactly where the ROM image is in the files, is hard for me. I'm sure that an NES/Famicom emulator (likely the same one used in the NES Mini and then Nintendo Switch Online NES games). I'm not too good at doing things like this by myself, unless you can tell me if other people have already done the extraction process of this game.

Main reason why I came here is to see if it's possible to play this localization elsewhere other than a Nintendo Switch; preferably an emulator on other platforms, PC included. It's possible I may give up should this become too difficult.
I guess no one extracted the game yet to change the ROM on it, I think that could be the same process of Mario all-stars3D(that's a big maybe)
 

Worldblender

Well-Known Member
Member
Joined
May 27, 2019
Messages
289
Trophies
0
Age
25
XP
1,612
Country
United States
I guess no one extracted the game yet to change the ROM on it, I think that could be the same process of Mario all-stars3D(that's a big maybe)
Can you remind me of the process used with Super Mario 3D All-Stars? I tuned in at some point, but lost interest when some people said that that game compilation was designed to be mod-hostile (for example swapping the original ROM images for other ones for other games). I'm open to learning the kinds of internals, even if I may not have interest in playing a certain game at a certain time.
 
General chit-chat
Help Users
    C @ CommanderCool: Any good places mirroring Sea of Harkinian lately besides their shitty discord?