ROM Hack Modified NTR Client with Gateshark support

Status
Not open for further replies.
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,
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.
 
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
 
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,
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,
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.
 
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,
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
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
 
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
 
Could you please provide the log? And the cheat code you want to use?
I'll add a real bugreport button in the next version. ( maybe )
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum