ROM Hack Hosting an out-of-region local multiplayer game

Neobeo

Well-Known Member
OP
Newcomer
Joined
Jul 20, 2008
Messages
58
Trophies
0
XP
336
Country
So it is well-established that certain games will not allow you to host a local multiplayer game if you are using the wrong region. I've quoted a couple of them here:
I using US 3ds

I tried running EUR Tetris and I can't host a local multiplayer game. I try JPN Puyo Puyo tetris and can't open local multiplayer also.
When both are on 2.1, i can't. Like Taiko no Tatsujin it throw an error when i click on "Host".

This is with Luma v6.6, regardless of the locale settings. Things like playing online always work fine. I believe joining a local multiplayer game also works fine (though the game would need to have been hosted by a console of the correct region).

I haven't found any success on gbatemp.net or otherwise on how to get around this, so decided to investigate a bit further. I believe the problem is caused by the system trying to host a Download Play copy. For the purpose of this thread, I'm not interested in Download Play, so I'm wondering if this problem can be solved by simply eliminating the Download Play part somehow. I'm also not interested in trying to get different regions to play together, e.g. EUR Tetris with USA Tetris.

My question is thus as follows: Is it feasible to patch out the code that shares the Download Play, perhaps on a per-title basis? I'm thinking anything beyond this is probably too difficult. Would this be as simple as NOPping some instructions in code.bin, or do you think we'd need to play around with modifying some NCCH headers and/or other partitions?

(Or maybe this problem has in fact already been solved and I just haven't found it)
 

Neobeo

Well-Known Member
OP
Newcomer
Joined
Jul 20, 2008
Messages
58
Trophies
0
XP
336
Country
After some research, it appears that DLPSRVR:Initialize is failing due to the region mismatch. Of course we don't have any control over how/when it fails.

I figured Luma was somehow modifying Cfg:SecureInfoGetRegion for the locales patch, and was hoping we might adapt their patch to our situation. But upon further investigation it seems Luma doesn't actually "patch" that method, it just replaces the call with the intended return value. Which doesn't quite work for DLPSRVR:Initialize assuming we want it to initialize.

This leaves us with two options:
  1. Try to get Download Play working (in some form) after all. The easiest way that comes to mind would probably to just modify the download play partition/cia so that it matches the system's region. It's then not clear whether it would fail some sort of hash/signature checks, but it'll probably work. An extension to this idea, if it works, is to probably get Luma to update the Download Play cia on-the-fly.
  2. Prevent Download Play from doing anything at all, as was the original idea. Meaning we still host the multiplayer game, but we'd have to sift through all instances of when DLPSRVR is used to do something, and replace that with some "do-nothing" code that "makes sense". Which would probably require actually understanding all the operations of DLPSRVR. In most cases NOPping would probably suffice, but it still seems like quite a fair bit of effort.
I think option 1 seems more attractive at this point.
 

total_split

Member
Newcomer
Joined
Mar 4, 2008
Messages
14
Trophies
0
XP
192
Country
United States
I have a US and European 3ds and run into this too when trying to multiplayer, its really frustrating.

One thing i have observed is with Terraria, I can successfully multiplayer between both systems as long as no updates are installed. even if both copies have the same level of update patches they wont talk to each other, and i've tried both systems with the Europe version, and mixing US/EUR. if i remove all Terraria updates they will play together. I haven't been messing with luma region patching in this case as the game already starts without it

I think the game itself also has to cooperate or be hacked to work, as well as the download play / 3ds components hacked or patched somehow.
 

Neobeo

Well-Known Member
OP
Newcomer
Joined
Jul 20, 2008
Messages
58
Trophies
0
XP
336
Country
From my experience, the updates don't really affect anything. If I had to guess why your Terraria updates worked without the updates, it would be either than the download play child (for the base game) was already region patched, or that the base game didn't have a download play option at all.

In any case, I've fixed this in a recent Luma commit.
 
  • Like
Reactions: DarkSynopsis

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    realtimesave @ realtimesave: I have it in my hands