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
28
XP
302
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,942
Trophies
1
Age
31
XP
5,156
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
  • Sicklyboy @ Sicklyboy:
    I'm not familiar with the technicalities of the differences between the two versions, but I'm wondering if at least some of those differences are things that you could port over to the US version in your patch without having to include copyrighted assets from the EU version
  • TwoSpikedHands @ TwoSpikedHands:
    @Sicklyboy I am wanting to fully change the game and bend it to my will lol. I would like to eventually have the ability to add more characters, enemies, even have a completely different story if i wanted. I already have the ability to change the tilemaps in the US version, so I can basically make my own map and warp to it in game - so I'm pretty far into it!
  • TwoSpikedHands @ TwoSpikedHands:
    I really would like to make a hack that I would enjoy playing, and maybe other people would too. swapping to the EU version would also mean my US friends could not legally play it
  • TwoSpikedHands @ TwoSpikedHands:
    I am definitely considering porting over some of the EU features without using the actual ROM itself, tbh that would probably be the best way to go about it... but i'm sad that the voice acting is so.... not good on the US version. May not be a way around that though
  • TwoSpikedHands @ TwoSpikedHands:
    I appreciate the insight!
  • The Real Jdbye @ The Real Jdbye:
    @TwoSpikedHands just switch, all the knowledge you learned still applies and most of the code and assets should be the same anyway
  • The Real Jdbye @ The Real Jdbye:
    and realistically they wouldn't

    be able to play it legally anyway since they need a ROM and they probably don't have the means to dump it themselves
  • The Real Jdbye @ The Real Jdbye:
    why the shit does the shitbox randomly insert newlines in my messages
  • Veho @ Veho:
    It does that when I edit a post.
  • Veho @ Veho:
    It inserts a newline in a random spot.
  • The Real Jdbye @ The Real Jdbye:
    never had that i don't think
  • Karma177 @ Karma177:
    do y'all think having an sd card that has a write speed of 700kb/s is a bad idea?
    trying to restore emunand rn but it's taking ages... (also when I finished the first time hekate decided to delete all my fucking files :wacko:)
  • The Real Jdbye @ The Real Jdbye:
    @Karma177 that sd card is 100% faulty so yes, its a bad idea
  • The Real Jdbye @ The Real Jdbye:
    even the slowest non-sdhc sd cards are a few MB/s
  • Karma177 @ Karma177:
    @The Real Jdbye it hasn't given me any error trying to write things on it so I don't really think it's faulty (pasted 40/50gb+ folders and no write errors)
  • DinohScene @ DinohScene:
    run h2testw on it
    +1
  • DinohScene @ DinohScene:
    when SD cards/microSD write speeds drop below a meg a sec, they're usually on the verge of dying
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Samsung SD format can sometimes fix them too
  • Purple_Heart @ Purple_Heart:
    yes looks like an faulty sd
  • Purple_Heart @ Purple_Heart:
    @Psionic Roshambo i may try that with my dead sd cards
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    It's always worth a shot
  • TwoSpikedHands @ TwoSpikedHands:
    @The Real Jdbye, I considered that, but i'll have to wait until i can get the eu version in the mail lol
  • I @ I-need-help-with-wup-wiiu:
    i need help with nusspli failed downloads, can someone respond to my thread? pretty please:wub: