ROM Hack Rebuilding games for 4.x?

WulfyStylez

SALT/Bemani Princess
OP
Member
Joined
Nov 3, 2013
Messages
1,149
Trophies
0
XP
2,867
Country
United States
As I understand it, a couple of things currently cause games to not boot on 4.x.
First, 5.0 added the ability for games to store the CXI logo near the cleartext part of the NCCH header rather than in ExeFS. Say we rebuild ExeFS with the logo in it.
7.0 introduced a new encryption method, encrypting RomFS and everything except what NS needs in ExeFS with a different key. Obviously we can decrypt this, re-encrypt it the old way, and disable the flag that enables this new encryption.
Finally, there are checks on version, but they only seem to go as far as checking the plaintext region of the header (correct me if I'm wrong). These checks could be bypassed by putting spoofed data here (lower version numbers to 4.x-happy ones.

After everything, there's still a fairly significant chance that some titles will require dependencies from newer SDK versions. This is unavoidable, and those titles just won't work. If we're lucky, though, many games won't have newer dependencies. The 360 and PS3 scene get away with running newer titles on older libraries a lot, might be similar here.

My question is, given a game is processed like I mentioned above and we get lucky with code running on the older SDK version, shouldn't this be theoretically completely possible?
 

WulfyStylez

SALT/Bemani Princess
OP
Member
Joined
Nov 3, 2013
Messages
1,149
Trophies
0
XP
2,867
Country
United States
There's a lot of dicking around with the exheader needed to get newer games to boot, it seems. I'll look into it more later. It still seems possible at this point, for some titles at least.
 
  • Like
Reactions: ChrisX930

WulfyStylez

SALT/Bemani Princess
OP
Member
Joined
Nov 3, 2013
Messages
1,149
Trophies
0
XP
2,867
Country
United States
An update: It is technically possible and works for some titles.
That being said, it requires so much manual work (exheader dependencies need to be patched down, etc) and is on such a case-by-case basis that I can't consider it to be comfortably working. Games generally need to use very basic SDK libraries - ones that don't change much. Puyo Puyo Tetris worked fine on 4.5.

I'm going to leave this idea at that, and I'll be picking back up on another project that accomplishes the same means and then some. It's far too early to announce anything yet, but if anyone else is super familiar with ARM assembly, has a lot of free time, and knows/is willing to learn 3DS-specific technical stuff, PM me so I can get you in a relevant group. (Please don't bother me if don't meet those, though.) Thanks to anyone who's interested!!
 

Ericss

Well-Known Member
Member
Joined
Sep 1, 2010
Messages
464
Trophies
0
XP
365
Country
United States
I'm not savvy on ARM assembly, but I wish you good luck. This should be useful for both CFW and GW users (as that means being able to take screenshots and use plugins on recent games with NTR CFW).
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,754
Trophies
4
Age
45
Location
Engine room, learning
XP
15,644
Country
France
with ROM tool, Games have a required Kernel version.
Do you know what's its purpose?

chance are that it's used to tell which SDK functions it requires, right? probably the minimum system version required to run the game. but the version don't match system menu versions numbering.

Majora's mask : Req. Kernel Version: 2.39-0
Mario kart 7 : Req. Kernel Version: 2.31-40
Monster hunter 4 : Req. Kernel Version: 2.44-5

maybe one specific title version? NATIV_FIRM?
 

WulfyStylez

SALT/Bemani Princess
OP
Member
Joined
Nov 3, 2013
Messages
1,149
Trophies
0
XP
2,867
Country
United States
I'm not savvy on ARM assembly, but I wish you good luck. This should be useful for both CFW and GW users (as that means being able to take screenshots and use plugins on recent games with NTR CFW).
It's actually something that aims to supersede both GW and the current hacky "CFW". Don't get hype yet, though. I'm still on the stage of taking notes on other payloads and such. It'll be a while, even longer if I end up not being able to find some other people to collaborate with.

with ROM tool, Games have a required Kernel version.
Do you know what's its purpose? what the version correspond to 3DS system menu/SDK?

chance are that it's used to tell which SDK functions it requires, right?

Majora's mask : Req. Kernel Version: 2.39-0
Mario kart 7 : Req. Kernel Version: 2.31-40
Monster hunter 4 : Req. Kernel Version: 2.44-5

Those values come from the plaintext region of the NCCH, as well as a bunch of version references and dependencies in the exheader. Patching those locations to lower versions, along with doing the stuff with decryption and logo data I mentioned in my first post, allowed a couple basic games to run on 4.5.

EDIT: oh, and 'what sdk functions are required' also come from a long list near the beginning of the exheader. They've got versions too.
 
  • Like
Reactions: Cyan

lisreal2401

Well-Known Member
Member
Joined
Jun 4, 2013
Messages
853
Trophies
1
Age
27
XP
2,861
Country
United States
Interesting. My question is - is this any different from the firmware spoofing tools we already have? I was also under the impression the games that don't work spoofed, simply don't work due to SDK dependencies being changed. The game used in your example (Puyo Tetris) which is 6.2, works using spoof tools already. I suppose a good test subject would be Theatrhythm Curtain Call. JPN version works spoofed with regular tools, but the US/EUR version don't. JPN is 6.2, US/EUR is 7.x. I can't imagine any 7.x SDK libraries were introduced in the English version, so it must the tools unable to patch out 7.x encryption. 6.X and under SDK all seem to work without a hitch in my experience.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan
    ReZ and Xdqwerty, please stop looking at me.
  • BigOnYa @ BigOnYa:
    Offer to clean house, wash windows, walk dogs, anything. You gotta have drive in life to get anything. Nothing is just given to you, atleast when you get older.
  • ZeroT21 @ ZeroT21:
    it's gud pocket money
  • BigOnYa @ BigOnYa:
    I remember when I was 14, I lived by a Coffee delivery service, and I asked the owner if I could work, and he had me wash the trucks on weekends to make money.
  • ZeroT21 @ ZeroT21:
    i did carpet cleaning jobs, it was weird but doable
    +1
  • ZeroT21 @ ZeroT21:
    especially with all the tools available nowadays
  • ZeroT21 @ ZeroT21:
    back then all i had were brushes, cleaning agents and lots of elbow grease to work with
  • BigOnYa @ BigOnYa:
    Most kids don't want to work nowdays, they want everything handed to them. And to think you're poor just cause you don't own a Switch is ridiculous.
  • K3Nv2 @ K3Nv2:
    @BigOnYa, Give me money
    +2
  • ZeroT21 @ ZeroT21:
    some would say, being poor and healthy is fine, rather than being rich, sick and dying
    +1
  • ZeroT21 @ ZeroT21:
    need food? just grow some potatoes or whatever veggie. But society just messes shit up and make us work for paper to buy food
  • The Real Jdbye @ The Real Jdbye:
    being poor and healthy is the worst case scenario because you have the longest amount of time to "enjoy" being poor
  • wolffangalchemist @ wolffangalchemist:
    Yeah back in my late teens I used to mow about 10 lawns every two weeks for $35 a yard. It was stupid big yards I knew where paying a lot more than that to lawn care companies in a some what up tier gated community a few blocks from the area I lived. Was great getting $700 a month with no bills at the time and good excercise too, now I have bills so I never have any money to buy things.
  • K3Nv2 @ K3Nv2:
    Yet kids are always like I WANNA BE ADULT
    +1
  • BigOnYa @ BigOnYa:
    I wish I could go back to 14, living at home free and little to no worries.
  • K3Nv2 @ K3Nv2:
    Kids still have bs getting manipulated easily, believing dumb youtube content etc
    +1
  • BigOnYa @ BigOnYa:
    If I could go back, I'd be more of a horn ball than I am now. I'd be chasing all the girls I never had the balls to back then
  • K3Nv2 @ K3Nv2:
    I'd drop out of school sooner
  • wolffangalchemist @ wolffangalchemist:
    Yeah I would probably drop out sooner too, the country ass high school I went to wouldn't know intelligence if it hit the up side the head.
  • BigOnYa @ BigOnYa:
    I used to play those goonies games on NES, used to piss me off
  • wolffangalchemist @ wolffangalchemist:
    I think the most frustrating nes game as a kid to me was contra.
  • BakerMan @ BakerMan:
    well, i got school tomorrow, night yall
    BakerMan @ BakerMan: well, i got school tomorrow, night yall