ROM Hack Modified NTR Client with Gateshark support

Status
Not open for further replies.

jimmyleen

Well-Known Member
Member
Joined
Feb 28, 2016
Messages
1,171
Trophies
0
XP
704
Country
WARNING: if you try to implement cheats midway in Etrian odyssey 4 the game will delete your save file along with any game settings.

Edit: this only happens when using this modified NTR client, if you use the .plg cheats this does not happen.
 
Last edited by jimmyleen,

jimmyleen

Well-Known Member
Member
Joined
Feb 28, 2016
Messages
1,171
Trophies
0
XP
704
Country
The modified NTR client 1.5 pre only works with one version of ntr.bin and that is 3.4 beta. I have tried the older ntr.bin's but they make the windows ntr client crash without any warning.
 

dsrules

Well-Known Member
Member
Joined
Sep 20, 2005
Messages
8,714
Trophies
2
XP
6,278
Country
WARNING: if you try to implement cheats midway in Etrian odyssey 4 the game will delete your save file along with any game settings.

Edit: this only happens when using this modified NTR client, if you use the .plg cheats this does not happen.
it only corrupts a save if the cheat itself is bad, it has nothing to do with the program
 

haganebr

Member
Newcomer
Joined
Jan 30, 2008
Messages
16
Trophies
1
XP
246
Country
Brazil
Sorry, let me clarify. I'm talking about codes like this one:
C0000000 0000001D
1ADD0BDC 0000FFFF
DC000000 00000140
D2000000 00000000

Looking at the program's output. It's clear that only the second line is being processed. In this case, this is a code to max out all jobs in Bravely Second. After trying it out, only one job is being maxed, obviously something to do with the other lines.

After taking a gander at https://gbatemp.net/threads/i-need-help-understanding-these-d-code-lines-please.417985/ I figured this code is supposed to write the same line a number of times, I'll try to expand it instead and see what happens.

EDIT: Expanding the code seems to have worked. It took me a while to increment ADD0BDC by 140H 29 times, but it works!
 
Last edited by haganebr,

temper999

Well-Known Member
Member
Joined
Sep 22, 2015
Messages
327
Trophies
0
XP
520
Country
Gambia, The
Thx for your reply. Oh I am no kind of programmer :(
As I have now discovered there are also some other solutions:

NTR Cheat Tool: https://github.com/valarnin/NTRRemoteDebugger/releases
NTR-Client Multiplatform: https://github.com/MichaelGatesDev/NTRClient-Multiplatform/releases

But as for now your version still works so I will stay with it.

I was testing your Client with Bravely Default and was able to find some Offsets.
Injecting new values for money eg. are also working.
But while trying to save the 3DS crashes.
Is this a normal behavor for some games?

Since editing values in SM3DL eg. was working.

Edit:
Tried the 3.3-3D release by @Shadowtrance.
Editing Money in BD was working now w/o problems.
 
Last edited by temper999,

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
As far as I know there is nobody currently working on this project. Shadowtrance did a nice cleanup of the entire project, feel free to fork it if you want to add anything.
Yep that cleanup was LONG overdue... oh how ugly it was lol

On another note, has anyone else tried the remoteplay / ntrviewer with my cleaned up version? I keep getting "illegal quality" every time i try after it sends the disconnect command. :( Don't know if it's an issue with the debugger or ntr itself as it works with the debugger in the ntrviewer download.
I really can't figure out what the problem is...

Code:
> Remoteplay()
null
Disconnecting in 10 seconds to improve performance
illegal quality
> Disconnect()
null
Unable to read data from the transport connection: A blocking operation was interrupted by a call to WSACancelBlockingCall.
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at ntrclient.Prog.CS.NtrClient.ReadNetworkStream(Stream stream, Byte[] buf, Int32 length) in C:\Visual_Studio_Projects\Projects\NTRClient\ntrclient\Prog\CS\NtrClient.cs:line 41
   at ntrclient.Prog.CS.NtrClient.PacketRecvThreadStart() in C:\Visual_Studio_Projects\Projects\NTRClient\ntrclient\Prog\CS\NtrClient.cs:line 62
Server disconnected.
 

Deleted member 369977

Felyne Hunter
OP
Member
Joined
Aug 16, 2015
Messages
383
Trophies
0
XP
346
Country
Germany
I think in the review 2 version cell9 added arguments to the remoteplay() command. Sadly he hasn't updated the sourcecode yet, but I guess I could quickly try to get it to work.
It should probably look like similar to this:
Code:
public void remoteplay(uint priorityMode = 0, uint priorityFactor = 5, uint quality = 90, uint qosValue = 100)
{
    Program.NtrClient.SendEmptyPacket(901, priorityMode, priorityFactor, quality, qosValue);
    // timer and stuff
}

Reporting back in a second! :)

EDIT1: Well.. seems like simply adding the arguments doesn't work ^^' time to tinker a bit.

EDIT2: Guess I could just run wireshark and send a packet with the original client and reverse engineer it.
 
Last edited by Deleted member 369977,

Deleted member 369977

Felyne Hunter
OP
Member
Joined
Aug 16, 2015
Messages
383
Trophies
0
XP
346
Country
Germany
I found something. This is the data send by the ntrclient to my 3ds:
d6aecfbf46d9894cfb48567267eff378.png


The first 4 bytes are the magic, (0x12345678)
the next 4 are the current seq, (0xBB80)
the next 4 are the type of packet, (0x0)
then the 4 are the command, (0x385)
and then the arguments.

So we have to send a type=0, cmd=901 packet, quality has to be the 2nd argument. I'll try to patch something together and then make a commit. :)

EDIT: Got it to work, not quite optimal yet, but it works now :P
 
Last edited by Deleted member 369977,
  • Like
Reactions: Shadowtrance

Shadowtrance

Well-Known Member
Member
Joined
May 9, 2014
Messages
2,493
Trophies
0
Location
Hervey Bay, Queensland
XP
1,807
Country
I found something. This is the data send by the ntrclient to my 3ds:
d6aecfbf46d9894cfb48567267eff378.png


The first 4 bytes are the magic, (0x12345678)
the next 4 are the current seq, (0xBB80)
the next 4 are the type of packet, (0x0)
then the 4 are the command, (0x385)
and then the arguments.

So we have to send a type=0, cmd=901 packet, quality has to be the 2nd argument. I'll try to patch something together and then make a commit. :)

EDIT: Got it to work, not quite optimal yet, but it works now :P
Good job on getting the remoteplay function to work. :) Although i just realized the whole wireshark stuff probably wasn't needed as we could just open the debugger that comes with NTRViewer in JetBrains dotPeek (or similar) and find the function in there. haha

Like so... :D

27c1f36632.png
 

hacksn5s4

Banned!
Banned
Joined
Aug 12, 2015
Messages
4,332
Trophies
0
XP
1,322
Country
Thing is if I want a Pokemon shiny bot I need a way to read memory to know if it's in an encounter and if the pokemonor shiny
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Skelletonike @ Skelletonike: Still a few hours left until I can go home and play some more Stellar Blade :'( +1