Homebrew PKMN-NTR: Real-time memory editing program for Pokémon games [WIP]

drgoku282

Well-Known Member
OP
Member
Joined
Oct 16, 2014
Messages
427
Trophies
0
Age
31
XP
724
Country
Mexico
New preview release: https://github.com/drgoku282/PKMN-NTR/releases/tag/3.6.6539

This starts with Ultra Sun and Ultra Moon support, currently only pokemon read and write should be working. Ultra Sun might not work at all because it can have different RAM addresses, tell me if it works or not. Make sure to do a save backup beforehand, this is an alpha version, so it's not really tested and it can break your savefile.
 

YoshiOG1

Well-Known Member
Newcomer
Joined
Apr 15, 2016
Messages
52
Trophies
0
Age
27
XP
292
Country
United States
New preview release: https://github.com/drgoku282/PKMN-NTR/releases/tag/3.6.6539

This starts with Ultra Sun and Ultra Moon support, currently only pokemon read and write should be working. Ultra Sun might not work at all because it can have different RAM addresses, tell me if it works or not. Make sure to do a save backup beforehand, this is an alpha version, so it's not really tested and it can break your savefile.
It seems there's still an issue with the cloning feature, because whenever I try to clone a Pokemon, it throws an exception:

************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: source
at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
at pkmn_ntr.MainForm.StartCloneDelete(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
PKMN-NTR
Assembly Version: 3.6.6539.618
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
PKHeX.Core
Assembly Version: 1.0.0.0
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
PKHeX
Assembly Version: 1.0.0.0
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
Octokit
Assembly Version: 0.28.0.0
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
Assembly Version: 0.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Also note that I started the program with the parameter "--hax" so I could inject Pokemon regardless of PKHeX's legality check.

P.S.: In my opinion, I think you should just allow illegal mons to be injected with a warning prompt by default, instead of making people start the program with --hax.

Edit: I think the problem only occurs when trying to clone an illegal Pokemon in --hax mode.

EDIT 2: I found the offset for trades in Ultra Moon. It's 0x30000660 (can't test it in Ultra Sun, but it seems to point to valid EK7 data in Ultra Moon)
 
Last edited by YoshiOG1,
  • Like
Reactions: RustInPeace

drgoku282

Well-Known Member
OP
Member
Joined
Oct 16, 2014
Messages
427
Trophies
0
Age
31
XP
724
Country
Mexico
It seems there's still an issue with the cloning feature, because whenever I try to clone a Pokemon, it throws an exception:

************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: source
at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
at pkmn_ntr.MainForm.StartCloneDelete(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
PKMN-NTR
Assembly Version: 3.6.6539.618
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
PKHeX.Core
Assembly Version: 1.0.0.0
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
PKHeX
Assembly Version: 1.0.0.0
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
Octokit
Assembly Version: 0.28.0.0
Win32 Version: 3.6.6539.618
CodeBase: file:///C:/Users/myosh/Documents/PokemonStuff/_POKES/PKMN-NTR/PKMN-NTR.exe
----------------------------------------
System.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
Assembly Version: 0.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Also note that I started the program with the parameter "--hax" so I could inject Pokemon regardless of PKHeX's legality check.

P.S.: In my opinion, I think you should just allow illegal mons to be injected with a warning prompt by default, instead of making people start the program with --hax.

Edit: I think the problem only occurs when trying to clone an illegal Pokemon in --hax mode.

EDIT 2: I found the offset for trades in Ultra Moon. It's 0x30000660 (can't test it in Ultra Sun, but it seems to point to valid EK7 data in Ultra Moon)

Bug confirmed and fixed.

Also, I really don't want to get rid of the -hax mode, because if you mess with pokemon data, you can break your save game, that's also why party write is disabled by default. So, it provides a safety check, only people who know what they're doing should enable these modes.
 
Last edited by drgoku282,
  • Like
Reactions: YoshiOG1

drgoku282

Well-Known Member
OP
Member
Joined
Oct 16, 2014
Messages
427
Trophies
0
Age
31
XP
724
Country
Mexico
New alpha version is up: https://github.com/drgoku282/PKMN-NTR/releases/tag/3.6.6545

This fixes a couple of bugs and adds trade dumping (needs testing), seeds, trainer and items editing for Ultra Sun/Ultra Moon. I made some code changes (mostly related to RAM addresses) to make it cleaner, tell me if I broke something due bad copy/paste.

If anyone wants to help, I need RAM addresses for Nursery and Wild pokémon data (just finished first trial in game, lol), PokéDigger can be used for this. These are the valid memory regions for USUM.

valid memregions:
Start address - End Address, - size
0x00100000 - 0x006d3fff , size: 0x005d4000
0x006dd000 - 0x006ecfff , size: 0x00010000
0x008b2000 - 0x00910fff , size: 0x0005f000
0x08000000 - 0x08424fff , size: 0x00425000
0x0ffc0000 - 0x10000fff , size: 0x00041000
0x10002000 - 0x10002fff , size: 0x00001000
0x1f000000 - 0x1f5fffff , size: 0x00600000
0x30000000 - 0x34183fff , size: 0x04184000

All interesting data should be in the last one, probably after the memory address 0x32000000.
 

TheEzeJC

Member
Newcomer
Joined
Nov 22, 2017
Messages
8
Trophies
0
XP
44
Country
United States
Does anyone know how to use the breeding bot? I believe the steps from GitHub are outdated...
Edit: I got it to work, but had to downgrade. The new version doesn’t have filters.
 
Last edited by TheEzeJC,

RustInPeace

Samurai Cop
Member
Joined
Oct 13, 2014
Messages
5,940
Trophies
1
Age
31
XP
5,118
Country
United States
Surprisingly the 1.1 update hasn't affected this, I can still read and write data, unfortunately the disable NFC patch (IPS and UltraSuMoFramework feature) no longer works and needs to be updated. Until then you can only connect on the continue screen or if online through Festival Plaza (at least I think so on the latter, server maintenance prevents checking that out now).

Edit: it does disconnect when entering the game past the continue screen, probably because of the NFC patch no longer working.
 
Last edited by RustInPeace,
  • Like
Reactions: TheEzeJC

drgoku282

Well-Known Member
OP
Member
Joined
Oct 16, 2014
Messages
427
Trophies
0
Age
31
XP
724
Country
Mexico
New alpha version is up: https://github.com/drgoku282/PKMN-NTR/releases/tag/3.6.6559

This version adds 1.1 USUM support (1.0 is dropped), and adds Wild pokémon preview (it seems memory address wasn't changed from SM). Tell me if something isn't working, specially wild pokémon data or trade data.

With this only nursery offsets are needed before I start working with bots.
 

TheEzeJC

Member
Newcomer
Joined
Nov 22, 2017
Messages
8
Trophies
0
XP
44
Country
United States

dotarice

Well-Known Member
Member
Joined
Nov 10, 2015
Messages
135
Trophies
0
XP
268
Country
Bahrain
will there be any improvements added on the wonder trade bot when it is implemented for ultra sun and ultra moon? because i would love for it to at least get past the "communication failed", etc, error at least. maybe, if there's a certain amount of tries, the bot should use the touch screen instead of the "a" button and see if that can get past the error.
 

drgoku282

Well-Known Member
OP
Member
Joined
Oct 16, 2014
Messages
427
Trophies
0
Age
31
XP
724
Country
Mexico
New beta version is up: https://github.com/drgoku282/PKMN-NTR/releases/tag/3.6.6587

This adds the Wonder Trade bot for USUM, please see the release note and the wiki before using the bot. I only tested it on Ultra Sun, it might not work in Ultra Moon due memory differences, but I tried to predict the memory addresses based on the NFC offset in both games, if something doesn't work please report and keep the log.
 

drgoku282

Well-Known Member
OP
Member
Joined
Oct 16, 2014
Messages
427
Trophies
0
Age
31
XP
724
Country
Mexico
Another beta version: https://github.com/drgoku282/PKMN-NTR/releases/tag/3.6.6588

This adds the Breeding bot for USUM, it was tested on Ultra Moon, so Ultra Sun might not work (reverse of the Wonder Trade bot, lol). I made a bit of style changes and hope I didn't break anything. As always, if something doesn't work, please report and keep the log.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Veho @ Veho:
    The fuuuuu---
  • Veho @ Veho:
    I thought it was an actual xBox at that price.
  • Sicklyboy @ Sicklyboy:
    I wanna grab a 360 Slim and a 360 E one of these days. Missed the boat of getting them at their lowest though, once they were discontinued. Could've got them for cheap back when I was a broke 20 something working at Target, but then again, I was a broke 20 something working at Target
  • Veho @ Veho:
    Being broke is no fun.
  • K3Nv2 @ K3Nv2:
    @Sicklyboy, $150 isn't that bad for a jtag slim on ebay
  • Veho @ Veho:
    I only wish it was actually playable.
  • Veho @ Veho:
    There's a guy on the Tube of You that makes playable mechanical arcade games out of Lego. This could work on the same principle.
  • Veho @ Veho:
    Just a couple of guys taking their manatee out for some fresh air, why you have to molest them?
  • Veho @ Veho:
    Stupid Chinese shop switched their shipping company and this one is slooooooow.
  • LeoTCK @ LeoTCK:
    STOP BUYING CHINESE CRAP THEN
  • LeoTCK @ LeoTCK:
    SUPPORT LOCAL PRODUCTS, MAKE REVOLUTION
  • LeoTCK @ LeoTCK:
    THEY KEEP REMOVING LOCAL SHIt AND REPLACING WItH INFERIOR CHINESE CRAP
  • LeoTCK @ LeoTCK:
    THATS WHY MY PARTNER CANT GET A GOOTWEAR HIS SIZE ANYMORE
  • LeoTCK @ LeoTCK:
    HE HAS BIG FOOT AND BIG DUCK
  • LeoTCK @ LeoTCK:
    d*ck i mean*
  • LeoTCK @ LeoTCK:
    lol
  • Veho @ Veho:
    Mkay.
  • Veho @ Veho:
    I just ordered another package from China just to spite you.
  • SylverReZ @ SylverReZ:
    Communism lol
  • SylverReZ @ SylverReZ:
    OUR products
  • The Real Jdbye @ The Real Jdbye:
    @LeoTCK actually good quality products are dying out because they can't compete with dropshipped chinese crap
    +1
    The Real Jdbye @ The Real Jdbye: @LeoTCK actually good quality products are dying out because they can't compete with dropshipped... +1