ROM Hack Modified NTR Client with Gateshark support

Status
Not open for further replies.

Deleted member 369977

Felyne Hunter
OP
Member
Joined
Aug 16, 2015
Messages
383
Trophies
0
XP
346
Country
Germany
Hmm.. seems like there isn't just a memregion of the correct size.
I would have to do some dumps and I'm not working on the 3ds currently. Sorry. Maybe somebody else can do it.
 
  • Like
Reactions: Deleted User
D

Deleted User

Guest
Hmm.. seems like there isn't just a memregion of the correct size.
I would have to do some dumps and I'm not working on the 3ds currently. Sorry. Maybe somebody else can do it.
Ok, thank you anyways! :)
 

_eyCaRambA_

Well-Known Member
Member
Joined
Apr 22, 2009
Messages
525
Trophies
1
Location
Right around the corner™
XP
409
Country
United States
Hm, I'm trying to use parts of your modded client in a private project but for some reason I don't receive any traffic from commands (works fine on the clean build from your repo).
In particular, I'm trying to get the pid for a specific process but due to the lack of response your logMsg.StartsWith("pid: ") addition and subsequently my modified routine doesn't trigger.
Listprocess() doesn't show any response apart from null in the log either, it's really weird.
Sayhello() on the other hand shows the green flash on the console as intended so somehow it's just ingoing traffic I guess?

Any ideas from top off your head? Otherwise I'll just send you a trimmed down version of the project source code if you feel like looking at it. Lemme know.
 
Last edited by _eyCaRambA_,

Deleted member 369977

Felyne Hunter
OP
Member
Joined
Aug 16, 2015
Messages
383
Trophies
0
XP
346
Country
Germany
NTR responds with 1 message that has all these pids together. Separate them into a string array using String.split(Environment.NewLine); Then get the pids.
 

_eyCaRambA_

Well-Known Member
Member
Joined
Apr 22, 2009
Messages
525
Trophies
1
Location
Right around the corner™
XP
409
Country
United States
Yeah, the problem is that I don't get this very response from the server for some reason. Not sure what's wrong, neither running the command "Listprocess()" nor the actual "SendEmptyPacket(5)" returns anything.
Or if it is returned, it's not picked up in PacketRecvThread
 
Last edited by _eyCaRambA_,

tomx86

Well-Known Member
Member
Joined
Jun 3, 2015
Messages
778
Trophies
0
Age
38
XP
2,186
Country
Poland
Hello, GBAtemp.
Some weeks ago I created a fork of the original NTR debugger made by cell9 from the following github page: https://github.com/44670/NTRClient . My intention was to create some easier cheating methods for the 3ds then having to write a NTR plugin yourself or buying gateway. I also wanted to make it easier for people to start working with the NTR debugger, therefor I added some buttons to make life easier. Since some of you have already seen this debugger on reddit I finally decieded to make a post here. Also because people wanted to use gateshark codes with NTR.

This does only work with kernel access. You need a sysNAND version of 9.2 or below. I'd recommend using NTR on emuNAND. All versions are supported.

I'm no longer working on this project. If somebody wants to for the project, go to the github page and do so. Hope somebody does so.

Basic tab
This is the "BASIC" tab as of Version 1.2-2
6614350c601419ff98658e6585799a23.png

As you can see in the first tab I created separate buttons to 'connect', 'disconnect', 'list all processes', 'see the memlayout', 'dump a file of a specified memregion', 'See an address' and 'write to an address'.
When starting your 3ds you have to start NTR first with any method you like. I prefer the BootNTR cia for version NTR 3.3. When you started NTR press X+Y and start the debugger. When that's finished just connect the debugger on your pc by entering the Nintendo 3ds IP address in the corresponding textfield. Press 'Connect'. This might take some tries, NTR is pretty buggy when connecting. Often the connection will just 'Timeout' after maybe 30 seconds. If that happens you have to try again. This is a problem with NTR itself. Once you connected start a game and press the 'List processes' button. You should see a list of all currently running processes on your 3ds. One of them should stand out. Game Process names often start capitalized or are in full caps. The process name is not the same as the game name. 'Monster Hunter 4 Ultimate' for example has the process name 'REDGIANT'. Next to the process list you should see the PID of that process. Enter the PID, which looks something like: 29, 2A, 3A, 3F, 34.. etc , into the 'Process PID' textbox - You mustn't write the 0x in front of the PID.

Once you finished setting up everything you can finally start using cheats. I prepared some sample cheatcodes in the corresponding tabs ( EUR, USA, JPN ), but there aren't very many. You might also notice the Gateshark tab. For some gateshark instructions please open the following SPOILER
The gateshark tab as of version 1.2-2
df9516be9ef3d13a0fc83ecc8fff9be1.png


This is the gateshark tab. You can use most gateshark codes using this. Codes that require button presses will ignore the button presses, since you can't emulate this. There are also a few not yet supported gateshark codes, mostly the conditional codes. If your code doesn't work, please report it in the comments.

To find gateshark codes go to http://www.fort42.com/gateshark/

Using the gateshark codes with the modified NTR debugger:
Once you grabbed a gateshark code from fort42 simply insert it into the textbox with the default code
Code:
00000000 00000000
and override it. Press 'Try Gateshark' first to see this code can be compiled. This doesn't automatically mean the code will work! If some numbers and letters appeared in the right textbox hit 'Execute Gateshark'. This will execute it.

For gateshark codes that have multiple different effect depending on the button presses, please split them using the following:
To split a gateshark code into multiple different codes we will use the following example ( because I'm bad at explaining )
Code:
B8100000 00000000  ; READ OFFSET FROM 8100000
DD000000 00000001 ; BUTTON COMBO INDEX 1
00100000 12345678  ; WRITE 12345678 TO 100000
D0000000 00000000  ; END BUTTON COMBO
DD000000 00000002  ; BUTTOM COMBO INDEX 2
00200000 90ABCDEF  ; WRITE 90ABCDEF TO 200000
D0000000 00000000  ; END BUTTON COMBO

We can split this code into 3 different parts. The following spoiler shows the same code again, with the parts infront of the lines:
Code:
1 : B8100000 00000000  ; READ OFFSET FROM 8100000
2 : DD000000 00000001  ; BUTTON COMBO INDEX 1
2 : 00100000 12345678  ; WRITE 12345678 TO 100000
2 : D0000000 00000000  ; END BUTTON COMBO
3 : DD000000 00000002  ; BUTTOM COMBO INDEX 2
3 : 00200000 90ABCDEF  ; WRITE 90ABCDEF TO 200000
3 : D0000000 00000000  ; END BUTTON COMBO
As you can see part 2 and 3 are the individual codes with the button presses in front of them. Part 1 is needed for both part 2 and part 3, since it's written without any button combo needed. That way we can split this into 2 different codes. It will look the following:

Code:
[OUR CODE 1]
B8100000 00000000  ; READ OFFSET FROM 8100000
DD000000 00000001  ; BUTTON COMBO INDEX 1
00100000 12345678  ; WRITE 12345678 TO 100000
D0000000 00000000  ; END BUTTON COMBO

[OUR CODE 2]
B8100000 00000000  ; READ OFFSET FROM 8100000
DD000000 00000002  ; BUTTOM COMBO INDEX 2
00200000 90ABCDEF  ; WRITE 90ABCDEF TO 200000
D0000000 00000000  ; END BUTTON COMBO

Don't worry about the unneccessary Button combos, the debugger will simply ignore them.
Well done, you just split your code into 2. You can also ask me if you need help. That's no problem :)

Here are some screenshots of the modified NTR debugger.
When starting the debugger
c8e7f6ecda9af8b1b7c55563b19878e9.png

NTR debugger in use:
2cb7adcffd7a4cd06dc99e205b4517a7.png

As of version 1.4 I started making some small previews of upcoming features. If you want to view them just open the following spoiler

Clearing the log
35b54eb306a13ccb204df0784cfba19a.gif

Heartbeat codes - Gateshark codes automatically executed all 4 seconds.
a4422b135b7e321c63abc0474f073144.gif

Update checker
10f36af574ab5a8a5bf93a6001466491.gif

Selecting a process:
eaefc3b8fbb6ad239c8dd7d1ec399803.png

Download link: https://github.com/imthe666st/NTRClient/releases
Having an issue or an idea for an enhancement? : https://github.com/imthe666st/NTRClient/issues ( or just post it in the comments right here)
Having issues with booting NTR? Take a look http://gbatemp.net/threads/release-ntr-cfw-3-2-with-experimental-real-time-save-feature.385142/


DISCLAIMER
I am in no way responsive or to blame if you get caught cheating online and get banned. This is primarily for singleplayer use only! If you got banned it's your own fault!
Hi guys, is it possible to make sub folders in the .txt files of gateshark like for example:

[Miscellaneous codes] [-]
->[+]Level up
->[ ]Max money
[Health codes] [+]
[Status codes] [+]

Please tell me:bow:
 
Last edited by tomx86,

tomx86

Well-Known Member
Member
Joined
Jun 3, 2015
Messages
778
Trophies
0
Age
38
XP
2,186
Country
Poland
Nope, Gateway haven't such function.

But my Gateshark2NTR have it. :)
I know but I thought there is some kind of code to make it look like that in the gateway cheats menu, it would be helpful, oh well thanks for the quick reply, bye.
 

Feeling it!

Pure Logical Feels.
Member
Joined
Feb 21, 2016
Messages
386
Trophies
0
Age
55
Location
Running.
XP
289
Country
United States
Hello, GBAtemp.
Some weeks ago I created a fork of the original NTR debugger made by cell9 from the following github page: https://github.com/44670/NTRClient . My intention was to create some easier cheating methods for the 3ds then having to write a NTR plugin yourself or buying gateway. I also wanted to make it easier for people to start working with the NTR debugger, therefor I added some buttons to make life easier. Since some of you have already seen this debugger on reddit I finally decieded to make a post here. Also because people wanted to use gateshark codes with NTR.

This does only work with kernel access. You need a sysNAND version of 9.2 or below. I'd recommend using NTR on emuNAND. All versions are supported.

I'm no longer working on this project. If somebody wants to for the project, go to the github page and do so. Hope somebody does so.

Basic tab
This is the "BASIC" tab as of Version 1.2-2
6614350c601419ff98658e6585799a23.png

As you can see in the first tab I created separate buttons to 'connect', 'disconnect', 'list all processes', 'see the memlayout', 'dump a file of a specified memregion', 'See an address' and 'write to an address'.
When starting your 3ds you have to start NTR first with any method you like. I prefer the BootNTR cia for version NTR 3.3. When you started NTR press X+Y and start the debugger. When that's finished just connect the debugger on your pc by entering the Nintendo 3ds IP address in the corresponding textfield. Press 'Connect'. This might take some tries, NTR is pretty buggy when connecting. Often the connection will just 'Timeout' after maybe 30 seconds. If that happens you have to try again. This is a problem with NTR itself. Once you connected start a game and press the 'List processes' button. You should see a list of all currently running processes on your 3ds. One of them should stand out. Game Process names often start capitalized or are in full caps. The process name is not the same as the game name. 'Monster Hunter 4 Ultimate' for example has the process name 'REDGIANT'. Next to the process list you should see the PID of that process. Enter the PID, which looks something like: 29, 2A, 3A, 3F, 34.. etc , into the 'Process PID' textbox - You mustn't write the 0x in front of the PID.

Once you finished setting up everything you can finally start using cheats. I prepared some sample cheatcodes in the corresponding tabs ( EUR, USA, JPN ), but there aren't very many. You might also notice the Gateshark tab. For some gateshark instructions please open the following SPOILER
The gateshark tab as of version 1.2-2
df9516be9ef3d13a0fc83ecc8fff9be1.png


This is the gateshark tab. You can use most gateshark codes using this. Codes that require button presses will ignore the button presses, since you can't emulate this. There are also a few not yet supported gateshark codes, mostly the conditional codes. If your code doesn't work, please report it in the comments.

To find gateshark codes go to http://www.fort42.com/gateshark/

Using the gateshark codes with the modified NTR debugger:
Once you grabbed a gateshark code from fort42 simply insert it into the textbox with the default code
Code:
00000000 00000000
and override it. Press 'Try Gateshark' first to see this code can be compiled. This doesn't automatically mean the code will work! If some numbers and letters appeared in the right textbox hit 'Execute Gateshark'. This will execute it.

For gateshark codes that have multiple different effect depending on the button presses, please split them using the following:
To split a gateshark code into multiple different codes we will use the following example ( because I'm bad at explaining )
Code:
B8100000 00000000  ; READ OFFSET FROM 8100000
DD000000 00000001 ; BUTTON COMBO INDEX 1
00100000 12345678  ; WRITE 12345678 TO 100000
D0000000 00000000  ; END BUTTON COMBO
DD000000 00000002  ; BUTTOM COMBO INDEX 2
00200000 90ABCDEF  ; WRITE 90ABCDEF TO 200000
D0000000 00000000  ; END BUTTON COMBO

We can split this code into 3 different parts. The following spoiler shows the same code again, with the parts infront of the lines:
Code:
1 : B8100000 00000000  ; READ OFFSET FROM 8100000
2 : DD000000 00000001  ; BUTTON COMBO INDEX 1
2 : 00100000 12345678  ; WRITE 12345678 TO 100000
2 : D0000000 00000000  ; END BUTTON COMBO
3 : DD000000 00000002  ; BUTTOM COMBO INDEX 2
3 : 00200000 90ABCDEF  ; WRITE 90ABCDEF TO 200000
3 : D0000000 00000000  ; END BUTTON COMBO
As you can see part 2 and 3 are the individual codes with the button presses in front of them. Part 1 is needed for both part 2 and part 3, since it's written without any button combo needed. That way we can split this into 2 different codes. It will look the following:

Code:
[OUR CODE 1]
B8100000 00000000  ; READ OFFSET FROM 8100000
DD000000 00000001  ; BUTTON COMBO INDEX 1
00100000 12345678  ; WRITE 12345678 TO 100000
D0000000 00000000  ; END BUTTON COMBO

[OUR CODE 2]
B8100000 00000000  ; READ OFFSET FROM 8100000
DD000000 00000002  ; BUTTOM COMBO INDEX 2
00200000 90ABCDEF  ; WRITE 90ABCDEF TO 200000
D0000000 00000000  ; END BUTTON COMBO

Don't worry about the unneccessary Button combos, the debugger will simply ignore them.
Well done, you just split your code into 2. You can also ask me if you need help. That's no problem :)

Here are some screenshots of the modified NTR debugger.
When starting the debugger
c8e7f6ecda9af8b1b7c55563b19878e9.png

NTR debugger in use:
2cb7adcffd7a4cd06dc99e205b4517a7.png

As of version 1.4 I started making some small previews of upcoming features. If you want to view them just open the following spoiler

Clearing the log
35b54eb306a13ccb204df0784cfba19a.gif

Heartbeat codes - Gateshark codes automatically executed all 4 seconds.
a4422b135b7e321c63abc0474f073144.gif

Update checker
10f36af574ab5a8a5bf93a6001466491.gif

Selecting a process:
eaefc3b8fbb6ad239c8dd7d1ec399803.png

Download link: https://github.com/imthe666st/NTRClient/releases
Having an issue or an idea for an enhancement? : https://github.com/imthe666st/NTRClient/issues ( or just post it in the comments right here)
Having issues with booting NTR? Take a look http://gbatemp.net/threads/release-ntr-cfw-3-2-with-experimental-real-time-save-feature.385142/


DISCLAIMER
I am in no way responsive or to blame if you get caught cheating online and get banned. This is primarily for singleplayer use only! If you got banned it's your own fault!
"No connection could be made because the target machine actively refused it " Any help on fixing this? also I do not know if I opened the proper debugger folder since there really is not one labeled it.
 

Feeling it!

Pure Logical Feels.
Member
Joined
Feb 21, 2016
Messages
386
Trophies
0
Age
55
Location
Running.
XP
289
Country
United States
Did you enable Debugging by pressing X+Y after starting NTR and enabled debugging?
Otherwise, did you make sure you use the correct IP address?
Ok I got to the part where I need the pid and of course I have that of the game process but where do I enter it? there is no pid box under ip.
at this point I put that PID into the hex id and then put in some codes and my 3ds crashed. this is really fun XD
 
Last edited by Feeling it!,

Deleted member 369977

Felyne Hunter
OP
Member
Joined
Aug 16, 2015
Messages
383
Trophies
0
XP
346
Country
Germany
If there are no processes in the combobox, just press the list processes button. It will send 'listprocesses()', then just select the process you need.
 
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.
    SylverReZ @ SylverReZ: @OctoAori20, Thank you. Hope you're in good spirits today like I am. :)