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

Asdolo

the Hedgehog
OP
Member
Joined
Apr 29, 2016
Messages
600
Trophies
3
Age
30
Location
Buenos Aires
Website
twitter.com
XP
1,256
Country
Argentina
nope, not really. you could do some kind of magic with ncchinfo generation and xorpads, but that's pretty dirty. or have the user encrypt the DLP child CIA, which is also not that good.

one of these would be good to have but we don't yet:
  • wait for custom firmwares to support zerokey crypto. this is easy since the key is just zeros. only Gateway and Nintendo developer hardware supports this though right now.
  • wait for custom firmwares to remove the encryption requirement for NAND titles. not sure how hard this is.
  • wait for a bootrom dump, so we can get the missing crypto keys.
There's absolutely no software to encrypt a CIA EVEN if the user provides the necessary files dumped from say, Decrypt9?
 

ihaveahax

Well-Known Member
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,839
Country
United States
Is absolutely no software to encrypt a CIA EVEN if the user provides the necessary files dumped from say, Decrypt9?
no, and that sucks. there isn't anything to "dump" one-time. the way the 3DS crypto works doesn't make it so we can just dump keys (otherwise we'd have everything necessary to de/encrypt games console-less without xorpads).

best you can do is, like mentioned before, you could either generate a CIA for the DLP child, have the user encrypt it with Decrypt9, give it to the program which then rebuilds the final contents. or, generate an ncchinfo.bin for that game, have the user generate xorpads using it with Decrypt9, then use that to encrypt the CIA.

the reason you can't have a re-usable xorpad for every game is because some of the encryption things change depending on the title ID (the CTR/Counter), so changing that would mean the encryption changes.

if you decide to do one of the above things, I can help you more on something like discord or whatever, which is faster than PMs/posts. if you choose the xorpad method, remember to set the proper bits in the NCCH header (NCCH flags about crypto).
 

Asdolo

the Hedgehog
OP
Member
Joined
Apr 29, 2016
Messages
600
Trophies
3
Age
30
Location
Buenos Aires
Website
twitter.com
XP
1,256
Country
Argentina
no, and that sucks. there isn't anything to "dump" one-time. the way the 3DS crypto works doesn't make it so we can just dump keys (otherwise we'd have everything necessary to de/encrypt games console-less without xorpads).

best you can do is, like mentioned before, you could either generate a CIA for the DLP child, have the user encrypt it with Decrypt9, give it to the program which then rebuilds the final contents. or, generate an ncchinfo.bin for that game, have the user generate xorpads using it with Decrypt9, then use that to encrypt the CIA.

the reason you can't have a re-usable xorpad for every game is because some of the encryption things change depending on the title ID (the CTR/Counter), so changing that would mean the encryption changes.

if you decide to do one of the above things, I can help you more on something like discord or whatever, which is faster than PMs/posts. if you choose the xorpad method, remember to set the proper bits in the NCCH header (NCCH flags about crypto).
I will definitely let the user to encrypt the CIA, and import it in the DP partition.

Also, I look at both "master" and "child/slave" code.bin, and they have small differences, maybe just the necessary things to control the second player in the child code.bin. Can be possible that the way I decrypted the child CIA makes the code.bin different? (Because the "master" CIA I looked into was not decrypted by me).

Thank you for all your help, I'm learning a lot.
 

ihaveahax

Well-Known Member
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,839
Country
United States
I will definitely let the user to encrypt the CIA, and import it in the DP partition.

Also, I look at both "master" and "child/slave" code.bin, and they have small differences, maybe just the necessary things to control the second player in the child code.bin. Can be possible that the way I decrypted the child CIA makes the code.bin different? (Because the "master" CIA I looked into was not decrypted by me).

Thank you for all your help, I'm learning a lot.
both have different codebins, it's not how you decrypted it. the romfs is 100% identical.
 

ihaveahax

Well-Known Member
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,839
Country
United States
@Asdolo to be honest I've not actually used these injectors, how do you rebuild the CIA? makerom? if so you'll probably want to use a newer build than the release.
 

Asdolo

the Hedgehog
OP
Member
Joined
Apr 29, 2016
Messages
600
Trophies
3
Age
30
Location
Buenos Aires
Website
twitter.com
XP
1,256
Country
Argentina
So I'll do this:
Add a checkbox to Download Play support.

If you check that, the NES injector will create two CIAs instead of one, and it will tell you what to do with one of them. You will decrypt one of them (the one the NES injector tell you) and you will go back to the NES injector (which you didn't close), open the encrypted CIA, and then the NES injector will make just one final CIA.
 

ihaveahax

Well-Known Member
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,839
Country
United States
Yes, makerom. Sorry, what is in the newer releases?
newer ones build the meta region (at the end of the CIA), which I don't know if it's actually required. the meta region has things like the icon/smdh from exefs and title ID dependency list from the exheader. if you need the newest makerom commit for windows, I can do that (32 and/or 64bit)
 

CatmanFan

Anxious and regretful
Member
Joined
Aug 14, 2016
Messages
1,962
Trophies
0
Website
www.youtube.com
XP
2,595
Country
Morocco
So I'll do this:
Add a checkbox to Download Play support.

If you check that, the NES injector will create two CIAs instead of one, and it will tell you what to do with one of them. You will decrypt one of them (the one the NES injector tell you) and you will go back to the NES injector (which you didn't close), open the encrypted CIA, and then the NES injector will make just one final CIA.
Finally.

Also, can you also add custom DMG borders and New VC support for your Ultimate GB Injector? And New VC support for GBC if necessary?
 

daddu3

Well-Known Member
Member
Joined
Jul 8, 2012
Messages
103
Trophies
1
XP
658
Country
Finland
Hey, been trying to inject in Ganbare Goemon 2 (FC) with english translation patch applied - but upon booting it up on 3DS; I get a gray screen. The other games with translation patches worked for me fine before (Adventure of Valkyrie, Quest of Ki).
 
Last edited by daddu3,

CatmanFan

Anxious and regretful
Member
Joined
Aug 14, 2016
Messages
1,962
Trophies
0
Website
www.youtube.com
XP
2,595
Country
Morocco
Hey, been trying to inject in Ganbare Goemon 2 (FC) with english translation patch applied - but upon booting it up on 3DS; I get a gray screen. The other games with translation patches worked for me fine before (Adventure of Valkyrie, Quest of Ki).
Probably an issue with either the VC emulator or the injector. Use manual injection to make sure that Ganbare Goemon 2 (the English patched version) does not work with the VC emulator in any way. If the game does work with manual injection, just assume that it's an issue with the injector, as it has been previously unable to inject most games before being updated for better compatibility.
 

Sonic Angel Knight

Well-Known Member
Member
Joined
May 27, 2016
Messages
14,405
Trophies
1
Location
New York
XP
12,965
Country
United States
Hey, been trying to inject in Ganbare Goemon 2 (FC) with english translation patch applied - but upon booting it up on 3DS; I get a gray screen. The other games with translation patches worked for me fine before (Adventure of Valkyrie, Quest of Ki).
Make sure game works in a emulator before injecting, either using FCEUltra, or NESTOPIA. Note that all games won't work, like ones using enhancement chips like MMC5 or large file sizes over 1MB.

Rockman 4 minus infinity will work with VC only using the MMC3 patch not MMC5 and rom hacks like Zelda, legend of link over 2 MB will not, as well as final fantasy 7 rom hack is also over 2MB and will not work. Super mario bros 3 mix will work as i tested it myself, but i think there is slight glitches, people reported glitches on actual hardware as well, and even emulators so is a bug in the hack.
 
Last edited by Sonic Angel Knight,
  • Like
Reactions: CatmanFan

daddu3

Well-Known Member
Member
Joined
Jul 8, 2012
Messages
103
Trophies
1
XP
658
Country
Finland
Make sure game works in a emulator before injecting, either using FCEUltra, or NESTOPIA. Note that all games won't work, like ones using enhancement chips like MMC5 or large file sizes over 1MB.

Rockman 4 minus infinity will work with VC only using the MMC3 patch not MMC5 and rom hacks like Zelda, legend of link over 2 MB will not, as well as final fantasy 7 rom hack is also over 2MB and will not work. Super mario bros 3 mix will work as i tested it myself, but i think there is slight glitches, people reported glitches on actual hardware as well, and even emulators so is a bug in the hack.

The game works on both Emus, and it's also been released to 3DS VC in Japan. I suppose I could try manual injection, seeing that it's a faulty rom...
 

sedusg

Member
Newcomer
Joined
Jan 23, 2016
Messages
5
Trophies
0
Age
41
XP
75
Country
Switzerland
@Asdolo,Thank you for your great tool.
I have some suggestion.

1.Add choices for selecting VC language.I mean the bottom screen always english.Maybe you can add Japanese language.

2.For nes inject,I found the output VC give me a 240p screen.But the offical NTSC vc such as nes jpn vc should output a 224p in center.The top and bottom are blank just like the left and right.

PS:
For the 2nd question,I found the answer when I tried edited config.ini using cots's tool.I edited config.ini myself just to change that from 1 to 8 as that is what should be seen on NTSC.
I suggest you add a ClipUp & ClipDown value option.

3.Add choice to change font and size for VC NES 3D banners title separately.So I can change small font for title and large font for publish year.

4.More,what did you tried to get more roms compatibility?A good offical VC version or patch file for every special rom?As I found even I tried cot's tool and edited config.ini myself,I got a glictch when I tried Fire Emblem Gaiden (Japan) on that.
But your tool give me a correct VC,just the ClipUp & ClipDown not perfect.

Thank you again.
 
Last edited by sedusg,
  • Like
Reactions: CatmanFan

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=kaQqCfuxKoE