[Release] OpenRegion - Bypass region lock without internet on 4.x

Discussion in '3DS - Homebrew Development and Emulators' started by YourNerdyJoe, Jan 24, 2015.

  1. YourNerdyJoe
    OP

    YourNerdyJoe Member

    Newcomer
    40
    56
    Jul 18, 2014
    United States
    Update: Now works on firmware 4.x and 6.x

    https://github.com/YourNerdyJoe/openregion

    Jan 23, 2015:
    This is a little something I've been working on the past two days. The GO launcher kept giving me problems in regionthree even after I got it to work once so decided to make my own version for fun.

    Right now it only works on 4.1-4.5 and while you can already do this with a gateway, this doesn't require emuNand and it boots faster. Hopefully someone finds this useful or can learn from it. It uses NSS:RebootSystem just like smea's launcher but without the GPU DMA vuln and built into a simple ROP chain. Should be able to get it to work on 6.x if I could get my hands on my friend's 3ds but no promises ;).

    Update May 27, 2015:
    So I got it to work on 6.x a while ago but haven't got around to officially releasing it. Well here it is. Region unlock on 6.x that only requires a ds mode flash cart to set up and can run alongside ninjhax. It also installs perfectly fine through bangai-o sploit.

    ReadMe:
    OpenRegion - bypass region lock on 3DS firmware v4.x and v6.x

    Launch games from any region using the well known DS profile exploit in System Settings.
    Dependancies:

    1) ropMultiloader (link) or another working ROP chain installer.
    2) A DS mode flash cart that works with your firmware version.
    Installation:

    For firmware version 4.x:
    1) Install ROP using a DS mode flash cart (choose Launcher.dat 4.x when using the ropMultiloader)
    2) Copy the Launcher.dat file to the root of your SD card.
    For firmware version 6.x:
    1) Install ROP using a DS mode flash cart (choose MSetForBoss.dat 6.x when using the ropMultiloader)
    2) Copy the Launcher.dat file to the root of your SD card.
    Usage:

    After putting the game cart in your 3DS goto:
    System Setting -> Other Settings -> Profile -> Nintendo DS Profile
    Then wait a few seconds for your game to launch.
    Happy Gaming!
    Compiling:

    If you wish to compile the source yourself then you will need to:
    1) download ARMIPS (link).
    2) change the ARMIPS_PATH variable in the Makefile accordingly.
     
    memomo, Margen67, zfreeman and 9 others like this.
  2. dontay0100

    dontay0100 GBAtemp Fan

    Member
    467
    108
    Mar 18, 2007
    United States
    Awesome, things are getting exciting for the 3ds scene for sure. Don't need it but the progress is outstanding!!! Keep up the good work everyone!!
     
    Margen67 likes this.
  3. Sliter

    Sliter GBAtemp Addict

    Member
    2,997
    785
    Dec 7, 2013
    Brazil
    ᕕ( ᐛ )ᕗ
    well This is not usefull for me because I'm on 9.2 but I love everything related to region free xD
    Good work!
     
  4. Rinnegatamante

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,260
    Nov 24, 2014
    Italy
    Bologna
    Good release, could you explain rapidly what the code does? I want to try to create something in DAT format but i'm not very expert about this.

    (For example why you call a RebootSystem with this 0x0010C250 and not with this 0x00100180 (according to 3dbrew info))
     
  5. YourNerdyJoe
    OP

    YourNerdyJoe Member

    Newcomer
    40
    56
    Jul 18, 2014
    United States
    It's an ROP chain not asm. So the program counter is jumping to 0x0010C250 which is the memory location that contains a function that runs the RebootSystem command.
     
    Margen67 likes this.
  6. YourNerdyJoe
    OP

    YourNerdyJoe Member

    Newcomer
    40
    56
    Jul 18, 2014
    United States
    Updated to work with 6.x. See OP.
     
    Margen67 likes this.
  7. smasbros

    smasbros GBAtemp Regular

    Member
    163
    61
    Nov 15, 2014
    It seems much more complex than regionthree, can you explain what's difference between this and regionthree? Any advantages?
     
    Margen67 likes this.
  8. YourNerdyJoe
    OP

    YourNerdyJoe Member

    Newcomer
    40
    56
    Jul 18, 2014
    United States
    Actually, regionthree is much more complex than this. Regionthree uses an exploit to inject a block of code into the download play app (which requires a very complex rop chain).
    Openregion is just a rop chain version of that small block of code which in c looks something like:
    Code:
    NS_RebootToTitle(2, 0); //launch game cart
    svcSleepThread(0x0FFFFFFFFFFFFFFF); //wait forever
    Advantages:
    no internet requirement
    much more stable (so far I haven't seen it crash while loading unlike regionthree)

    Disadvantages:
    requires a ds flash cart for initial set up but nothing after that (regionthree doesn't need external hardware at all)
    can't use another mset launcher.dat on 4.x at the same time such as gateway (if there's a ninjhax file manager out there that can rename files, that could get around this)
    only works on v4.x and 6.x (regionthree works up to v9.5)
     
    Margen67 likes this.