Jump to content

Recommended Posts

Infinite TMs in Gen IV
---
Let me first preface this by saying that this was figured out by Mikelan98 (with some help from Nextworld and BagBoy to find some of the offsets in different languages). Mikelan98 has requested that you give credit to him if you implement this in your hack.
 
This is simply a documentation so the information doesn't get lost - I didn't figure out any of this myself!
 
This is for the American (U) versions of Platinum and Heart Gold / Soul Silver.
 
Step 1: Extract the relevant files
---
First we need to get the right files out of the ROM.
 
For Platinum, you'll need the arm9.bin and the overlay_0084.bin files.
For HG / SS, you'll need the decompressed arm9.bin and a decompressed overlay_0015.bin files. (Use the Extract(U) option in crystaltile2 to decompress.) 
 
Step 2: Edit the code to make the TM quantity not drop after use
---
For Platinum, we want to make the following changes:
* Search for "FE 00 28 07 D1 08 48" in the arm9.bin file.
* Replace the "D1" with "E0" so that it now reads "FE 00 28 07 E0 08 48".
 
For HG/SS, we want to make the following changes:
* Search for "FD 00 28 07 D1 0A 48" in the decompressed arm9.bin file.
* Replace the "D1" with "E0" so that it now reads "FD 00 28 07 E0 0A 48".
 
Step 3: Edit the code to make the item quantity not appear for TMs in the bag
---
For Platinum, we want to make the following changes:
* Search for "FF F7 83 FF 04 B0" in the overlay_0084.bin file.
* Replace the first four bytes with "00 00 00 00", so it should now read "00 00 00 00 04 B0".
 
For HG/SS, we want to make the following changes:
* Search for "81 42 53 D3" in the decompressed overlay_0015.bin file.
* Replace the "D3" with E0 so that it now reads "81 42 53 E0".
 
Step 4: Rebuild the ROM
---
You'll need to reinsert the relevant files as needed. For HG/SS, you'll need to recompress them when adding them to the ROM by using the "Compression" option to import them back when using crystaltile2.
 
After that, save and/or build your ROM, and you should find that TMs don't show a quantity anymore, and they also won't disappear after being used. 

Edited by TheShadyRelapse
Tutorial
  • Like 3
Link to comment
Share on other sites

Cool! This only made them unlimited but however countable? Can you always collect more than 1 and sell/toss them? This was exactly what I was searching for HG/SS where the Flash TM isn't unlimited like the original HM in G/S/C and this is ugly. Can I also always give them to a pokémon? I need also to make un-giveable 2 items exactly like the apricorn balls in HG/SS, do you know where is the HG/SS table that determines which items are un-giveable? I could replace sport ball and park ball whit mine if necessary, in the normal gameplay you can't have them in your bag, then if the space is limited I could replace them. Can you please tell me how do it? :D

Link to comment
Share on other sites

Thank you very much for posting this!

I've been after this knowledge for ages but I had no idea how to figure this out. Thank you again, this is a simple change but such a good quality of life improvement to the games.

edit:
Ah, sorry, I don't think I can actually use this in my hacks. It looks like while it does make the TMs infinite, it makes everything else infinite too. So you can use Rare Candies infinitely, give/take items from Pokémon to duplicate held items etc. It's very abusable. But this is still good for a personal playthrough on vanilla Platinum/HG/SS so it's still great that you've shared this!

Is there any reason you chose to replace 49 with BD specifically, by the way? I tried some other bytes in place of BD to see what would happen and I got the infinite item effect with a few others like FF. 

This was all tested on Platinum, by the way.

Edited by Drayano
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Exactly there is also the strange effect that don't allow you to toss them and if you give you duplicate them...

 

Isn't very cool to make a great quality hack, I didn't know 'til know, 'cause I was out in traveling and I haven't my PC to verify it. There is a fix to allow us to however toss them, to have only the effect of a reusable TM like the glass flutes? I can actually sell them and re buy them like normal items, but I want only a function to avoid the consumption but only when used to teach moves, nothing else. :)

Link to comment
Share on other sites

  • 3 weeks later...
On 4/18/2019 at 10:40 PM, Drayano said:

Thank you very much for posting this!

I've been after this knowledge for ages but I had no idea how to figure this out. Thank you again, this is a simple change but such a good quality of life improvement to the games.

edit:
Ah, sorry, I don't think I can actually use this in my hacks. It looks like while it does make the TMs infinite, it makes everything else infinite too. So you can use Rare Candies infinitely, give/take items from Pokémon to duplicate held items etc. It's very abusable. But this is still good for a personal playthrough on vanilla Platinum/HG/SS so it's still great that you've shared this!

Is there any reason you chose to replace 49 with BD specifically, by the way? I tried some other bytes in place of BD to see what would happen and I got the infinite item effect with a few others like FF. 

This was all tested on Platinum, by the way.

I chose 49 because at the time I was thinking maybe If I change the the byte to any number it would do something so I tried 49 and it worked I also tried 64 which also worked so I'm glad that it works

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...
  • 4 weeks later...
  • 11 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...