Hacking [Release]NTR CFW 3.2 with experimental Real-Time Save feature.

Status
Not open for further replies.

Zidapi

Well-Known Member
Member
Joined
Dec 1, 2002
Messages
3,112
Trophies
3
Age
42
Website
Visit site
XP
2,681
Country
Edit: Ninja'd by gamesquest1 *tips hat*

nice, very nice :D
But I can't find a downloadlink for NTR CFW 1.0 and no tutorial that describes how to install it x_x
Can you post it for me?
I posted a guide to setting up NTR1 in your thread earlier, along with a link to the translated release thread on the Chinese forum.

Thanks :D
Problem: Can't find any downloads for Gateway 2.2 right now x_X
You don't have to look very far, it's still available on Gateway's server.

All you need is the file name, which is “GW_OMEGA_2.2_RELEASE.zip” :teach:
 
  • Like
Reactions: ChrisX930

AlanWeird

Well-Known Member
Member
Joined
Nov 10, 2011
Messages
304
Trophies
0
Age
38
Location
Scotland
XP
494
Country
Weird.

NTR's not been mega reliable at booting for me.

I've had to uninstall and reinstall a few times... it does work occasionally,

but the common issue is... it gets to freeing memory. and halts at 00000063.

Is this a common fault and I just haven't googled properly?

New 3ds. Eur version. 9.2.0-20 fw.
 

yafeee

Well-Known Member
Newcomer
Joined
Oct 22, 2008
Messages
45
Trophies
1
XP
660
Country
France
Weird.

NTR's not been mega reliable at booting for me.

I've had to uninstall and reinstall a few times... it does work occasionally,

but the common issue is... it gets to freeing memory. and halts at 00000063.

Is this a common fault and I just haven't googled properly?

New 3ds. Eur version. 9.2.0-20 fw.

Same here, with 9.0 European firmware.


In the future, will it be possible to launch NTR through Ninjhax with a .3dsx file ?
 

dandymanz

Well-Known Member
Member
Joined
Dec 5, 2014
Messages
182
Trophies
0
Age
42
XP
227
Country
Senegal
I got NTR to boot successfully on average like 1 out of 4 tries. The rates are better than trying to boot PBT or Palantine CFW, and at least it's pretty stable once you manage to launch it.
 

JasonMoh

Well-Known Member
Newcomer
Joined
Mar 2, 2012
Messages
51
Trophies
0
XP
132
I got NTR CFW 2.2 to boot 4/5 times in N3DS US v9.0.0. 1 time it failed because I booted CN and NTR in haste. Didn't even wait 10 seconds before I booted CN from 3ds dashboard (main menu). Been using it for 4 days now but maybe I will get problems l8r. Will see what happens.
 

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,727
Trophies
2
XP
8,518
Country
Tuvalu
cell9 - bravely default end layer does not run when i am in ntr mode. i get a black screen with an error message. is this normal?
the game usually wants fw 9.4, but ntr ignores the update?

or, it would be very good if there was a way to dump/restore the save of a game without having to load the game. because, i want to dump my save, but i cannot because i cannot run the game :)
 

Xsiide

Active Member
Newcomer
Joined
Nov 14, 2014
Messages
27
Trophies
0
Location
Stgo
XP
270
Country
Cote d'Ivoire
The server is down? i can't install on n3ds fw 9.0. I get a black screen freeze and error message in home menu.
I have the ntr.bin on sd card and internet connection works fine.
 

Oishikatta

Well-Known Member
Member
Joined
Oct 30, 2014
Messages
971
Trophies
0
XP
603
Country
United States
Yes, I believe so. Working on a plugin?


I'm kind of stuck trying to do the equivalent of write(...) in the NTR debugger from a plugin. E.g. for the eshop patch.

Anyone know of any sort of documentation at all for the svc_* functions? VS shows the arguments at least, but that's apparently not enough to get it working.
 

NewWorldOrder

Active Member
Newcomer
Joined
Dec 23, 2014
Messages
34
Trophies
0
XP
73
Country
Netherlands
I'm kind of stuck trying to do the equivalent of write(...) in the NTR debugger from a plugin. E.g. for the eshop patch.

Anyone know of any sort of documentation at all for the svc_* functions? VS shows the arguments at least, but that's apparently not enough to get it working.

working example code: https://github.com/yuriks/3ds-process-dumper

Also, I'm asking myself why NTR does not use other stuff that's available and known to work reliably and stable, such as libkhax?

edit: or wouldn't using libkhax result in a 100% success rate?
 
  • Like
Reactions: Margen67

Zidapi

Well-Known Member
Member
Joined
Dec 1, 2002
Messages
3,112
Trophies
3
Age
42
Website
Visit site
XP
2,681
Country
It would be a very awesome solution for new3ds, but when will be available for o3ds?
old3DS owners can use NTR 1.0

Those waiting for NTR 2 to support older models will, according to cell9, waiting "a long time".
old3ds support is working in progress, however it is not at the top priority and maybe you have to wait a long time.
 

Oishikatta

Well-Known Member
Member
Joined
Oct 30, 2014
Messages
971
Trophies
0
XP
603
Country
United States
working example code: https://github.com/yuriks/3ds-process-dumper

Also, I'm asking myself why NTR does not use other stuff that's available and known to work reliably and stable, such as libkhax?

edit: or wouldn't using libkhax result in a 100% success rate?


Is that your code? That gives me the right syntax at least, but now I have no way of knowing if it doesn't work because of NTR not giving access, or another code issue...

If NTR doesn't give the permissions, then it's just not possible right?

Code:
nim handle: 0086003b, ret: 00000000
debugActiveProcess failed, ret: f8c007f4
nimDebug handle: 00000000
 
svc_readProcessMemory ret: d9002002
svc_writeProcessMemory ret: d9002002

Code:
#include "global.h"
 
Handle fsUserHandle;
FS_archive sdmcArchive = {0x9, (FS_path){PATH_EMPTY, 1, (u8*)""}};
 
u32 doPatch() {
    u32 ret;
    u32 nimPid = 0x00000025;
    Handle nim = 0;
    Handle nimDebug = 0;
 
    const char patch[] = { 0x00, 0x20, 0x08, 0x60, 0x70, 0x47 };
   
    ret = svc_openProcess(&nim, nimPid);
    if (ret != 0) {
        showDbg("openProcess failed, ret: %08lx", ret, 0);
    }
    showDbg("nim handle: %08lx, ret: %08lx", (u32)nim, ret);
 
    ret = svc_debugActiveProcess(&nimDebug, nimPid);
    if (ret != 0) {
        showDbg("debugActiveProcess failed, ret: %08lx", ret, 0);
    }
    showDbg("nimDebug handle: %08lx, ret: %08lx", (u32)nimDebug, ret);
 
    char buf[0x3F] = { 0 };
    ret = svc_readProcessMemory(buf, nimDebug, (u32)0x14E1BC, 0x3E);
 
    showDbg("str: %08lx, ret: %08lx", (u32)*buf, ret);
 
    ret = svc_writeProcessMemory(nimDebug, &patch, (u32)0x10DD28, sizeof(patch));
    showDbg("ret: %08lx - wrote to nim", ret, 0);
 
    return 0;
}
 
int main() {
 
    initSharedFunc();
    nsDbgPrint("initializing eshop plugin\n");
    plgGetSharedServiceHandle("fs:USER", &fsUserHandle);
    plgRegisterMenuEntry(1, "Patch eShop", doPatch);
}
 

cell9

Well-Known Member
OP
Member
Joined
Nov 14, 2014
Messages
229
Trophies
0
Age
32
XP
1,017
Country
China
Is that your code? That gives me the right syntax at least, but now I have no way of knowing if it doesn't work because of NTR not giving access, or another code issue...

If NTR doesn't give the permissions, then it's just not possible right?

Code:
nim handle: 0086003b, ret: 00000000
debugActiveProcess failed, ret: f8c007f4
nimDebug handle: 00000000
 
svc_readProcessMemory ret: d9002002
svc_writeProcessMemory ret: d9002002

Code:
#include "global.h"
 
Handle fsUserHandle;
FS_archive sdmcArchive = {0x9, (FS_path){PATH_EMPTY, 1, (u8*)""}};
 
u32 doPatch() {
    u32 ret;
    u32 nimPid = 0x00000025;
    Handle nim = 0;
    Handle nimDebug = 0;
 
    const char patch[] = { 0x00, 0x20, 0x08, 0x60, 0x70, 0x47 };
 
    ret = svc_openProcess(&nim, nimPid);
    if (ret != 0) {
        showDbg("openProcess failed, ret: %08lx", ret, 0);
    }
    showDbg("nim handle: %08lx, ret: %08lx", (u32)nim, ret);
 
    ret = svc_debugActiveProcess(&nimDebug, nimPid);
    if (ret != 0) {
        showDbg("debugActiveProcess failed, ret: %08lx", ret, 0);
    }
    showDbg("nimDebug handle: %08lx, ret: %08lx", (u32)nimDebug, ret);
 
    char buf[0x3F] = { 0 };
    ret = svc_readProcessMemory(buf, nimDebug, (u32)0x14E1BC, 0x3E);
 
    showDbg("str: %08lx, ret: %08lx", (u32)*buf, ret);
 
    ret = svc_writeProcessMemory(nimDebug, &patch, (u32)0x10DD28, sizeof(patch));
    showDbg("ret: %08lx - wrote to nim", ret, 0);
 
    return 0;
}
 
int main() {
 
    initSharedFunc();
    nsDbgPrint("initializing eshop plugin\n");
    plgGetSharedServiceHandle("fs:USER", &fsUserHandle);
    plgRegisterMenuEntry(1, "Patch eShop", doPatch);
}

NTR has unlocked all the syscalls, however the debug flag is disabled on retail units by default.
See here for how to enable the debug flag for all process:
https://github.com/yuriks/bootstrap/tree/debug-flag
 
  • Like
Reactions: WhoAmI?

Zidapi

Well-Known Member
Member
Joined
Dec 1, 2002
Messages
3,112
Trophies
3
Age
42
Website
Visit site
XP
2,681
Country
Also, I'm asking myself why NTR does not use other stuff that's available and known to work reliably and stable, such as libkhax?

edit: or wouldn't using libkhax result in a 100% success rate?
Because libkhax had only been available for two weeks and is still in Alpha?
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Right onto uremums 3d printed dildo