• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

FBI's HM type-check hack

Uncommon

Oozma Kappa
192
Posts
8
Years
For posterity's sake, I might as well do exactly as you directed though.

Spoiler:


Just a quick question as well: which version of XSE was used for this to work successfully? I was using version 1.0.1. I already tried to use the update function, but apparently support for this program has been discontinued and it could not check for a newer version.

Thanks for documenting your process so well! I just tried to recreate this by following the same steps on a clean ROM, and I wasn't able to reproduce the error. I checked the XSE version and mine is v1.1.1 - that is likely the issue. Maybe "bufferpartypokemon" is a keyword not recognized by older versions? You can try getting v1.1.1 from here and see if that solves the problem.
 
22
Posts
15
Years
  • Age 37
  • Seen Sep 15, 2021
Updating to XSE 1.1.1 absolutely fixed the problem I was having. The script compiled and I saved the log it made. I got a few steps into the hex editing stuff and when I looked at how much more there was to do for something I already have working properly I just stopped. Make sure you tell people to specifically get XSE version 1.1.1 in the main post. Thanks for being so active.

Oddly enough the update check on 1.1.1 actually functions and returns that 1.1.1 is the newest version. Weird that 1.0.1 can't be updated in this way.
 

lilbluedemon

Crunching the numbers!
208
Posts
9
Years
  • Age 29
  • Seen May 4, 2019
How do you do Diving and Rock Climbing?

I'm not 100% sure, but wouldn't these need some extra work, since even though Dive is in FRLG, it doesn't have any function as a field move since Kanto, and the Sevii Islands have no underwater areas.

And Rock Climbing isn't a thing in FRLG, but I know some people have made scripts, and codings for it.
 

Uncommon

Oozma Kappa
192
Posts
8
Years
How do you do Diving and Rock Climbing?

I'm not 100% sure, but wouldn't these need some extra work, since even though Dive is in FRLG, it doesn't have any function as a field move since Kanto, and the Sevii Islands have no underwater areas.

And Rock Climbing isn't a thing in FRLG, but I know some people have made scripts, and codings for it.

lilbluedemon is exactly right - Dive's and Rock Climb's field effects don't exist in vanilla FireRed, so they also don't exist in this patch. A few people have built their own versions, including Spherical Ice off the top of my head. Maybe if I somehow got a ton of free time someday I could add them to this, but at the moment I have no plans to do so.

However, mbcn10ww's fork of this hack does include both Dive and Rock Climb (according to his thread, I haven't personally tested it).
 
37
Posts
8
Years
  • Age 27
  • Seen Sep 10, 2018
So correct me if I'm wrong, but it should be possible to have multiple types able to use HMs, right? I'm looking at the script for Strength:

Code:
#org @newstrength

call @init            'initialization check, from original
call @flagcheck       'check if new check system is enabled 
if 0x0 goto @originalstrength

lockall
checkflag 0x828       'set this to the new badge you want (828 is the pkmn menu)
if 0x0 goto 0x81BE185
checkflag 0x805       'strength active flag - do not change
if 0x1 goto 0x81BE18E

setvar 0x8000 0x1     'set this to the type you want (1 is Fighting)
special2 0x4001 0x12B
compare 0x4001 0x6
if 0x4 goto 0x81BE185
'setvar 0x4001 LASTRESULT 

goto @strengthaction

It should be possible to call the type check twice for Fighting and, if that fails, let's say Rock. It won't necessarily use the first Pokemon in the party (e.g. a Geodude up front and a Machop at the end would result in Machop using Strength because Fighting was checked first) but it would allow either to work. I haven't worked with XSE a whole lot yet but it looks like a second comparison of variable 0x4001 to 6 would work: if equal go to the second type check.
 
25
Posts
6
Years
  • Age 25
  • Seen Apr 18, 2020
So correct me if I'm wrong, but it should be possible to have multiple types able to use HMs, right? I'm looking at the script for Strength:
Spoiler:

It should be possible to call the type check twice for Fighting and, if that fails, let's say Rock. It won't necessarily use the first Pokemon in the party (e.g. a Geodude up front and a Machop at the end would result in Machop using Strength because Fighting was checked first) but it would allow either to work. I haven't worked with XSE a whole lot yet but it looks like a second comparison of variable 0x4001 to 6 would work: if equal go to the second type check.

TRY THIS
Spoiler:
 

Uncommon

Oozma Kappa
192
Posts
8
Years
So correct me if I'm wrong, but it should be possible to have multiple types able to use HMs, right? I'm looking at the script for Strength:

...

It should be possible to call the type check twice for Fighting and, if that fails, let's say Rock. It won't necessarily use the first Pokemon in the party (e.g. a Geodude up front and a Machop at the end would result in Machop using Strength because Fighting was checked first) but it would allow either to work. I haven't worked with XSE a whole lot yet but it looks like a second comparison of variable 0x4001 to 6 would work: if equal go to the second type check.

Absolutely! I believe that's exactly how mbcn10ww did it in his fork of the hack. Fly is slightly more complicated since it's done through ASM, but I was able to modify its routine for mbcn10ww to check two types as well.
 

Dr. Seuss

Will finish GS Chronicles, I swear!
523
Posts
10
Years
Well, for the ones using this awesome hack but want to get rid forever of the old HM field moves there is a way to remove it.

You just need to write FF FF FF FF FF FF FF FF FF FF FF FF FF FF at 0x45A77B and that will remove the check for the moves that have an outside field effect. Here is a gif with this applied:

kJvlM6K.gif


This will just remove the move check from HM01 to HM07, This will NOT remove the field effect for other moves like Teleport or Dig,
 
Last edited:

Uncommon

Oozma Kappa
192
Posts
8
Years
Well, for the ones using this awesome hack but want to get rid forever of the old HM field moves there is a way to remove it.

You just need to write 00 00 00 00 00 00 00 00 00 00 00 00 00 00 at 0x45A77B and that will remove the check for the moves that have an outside field effect. Here is a gif with this applied:

kJvlM6K.gif


This will just remove the move check from HM01 to HM07, This will NOT remove the fied effect for other moves like Teleport or Dig,

Ooh, this is really cool! I had wanted to add this but had no idea how to do it. How did you figure it out? Thanks for sharing!
 

Dr. Seuss

Will finish GS Chronicles, I swear!
523
Posts
10
Years
Ooh, this is really cool! I had wanted to add this but had no idea how to do it. How did you figure it out? Thanks for sharing!

By using the documentation from FBI's method to add more field moves. And well, I updated the information I posted because by doing what I wrote will give you some errors with Pokémon with less than 4 moves.
 
12
Posts
4
Years
  • Age 28
  • Seen Mar 18, 2023
I have a question, i cant seem to figure out how to change or create a IPS file to remove the HM restrictions and change all the moves to water Type. {need it for a mod i am currently creating}.
IPS editors either say the file cannot be opened or i cannot change anything.
XSE complains that there is something wrong with the code on line ??? even when copied 1:1
 

McPaul

On my way to become a controversial and hated memb
288
Posts
6
Years
Could it be possible to port this amazing patch to Ruby/ Sapphire, Emerald, Diamond/Pearl, Platinum, HGSS, BW and BW2?

This is the best thing ever! I could not imagine playing any Pokémon game with HMs anymore, we need this for EVERY GBA and DS game! Even just to play vanilla games without being bothered.
 

__fred__40

fred
277
Posts
4
Years
What if I added Dive as an HM in FR,would your script automatically recognized it and set fi the water type as the needed type to use it?
 

Uncommon

Oozma Kappa
192
Posts
8
Years
Hi all! Haven't logged on in many months, just checking in and answering a couple questions.

Could it be possible to port this amazing patch to Ruby/ Sapphire, Emerald, Diamond/Pearl, Platinum, HGSS, BW and BW2?

This is the best thing ever! I could not imagine playing any Pokémon game with HMs anymore, we need this for EVERY GBA and DS game! Even just to play vanilla games without being bothered.

I believe porting to Emerald is totally doable, which also means that Ruby/Sapphire would be as well but no one hacks them so it would be a waste.

Anything beyond GBA though is a totally different ballgame. You could use the concept of this patch but all the hacking work would need to be done from scratch.

What if I added Dive as an HM in FR,would your script automatically recognized it and set fi the water type as the needed type to use it?

No, this would not recognize or affect any new HMs you add. However, if you're already adding the effects for something like Dive, it would not be hard for you to modify those scripts similarly to what I did for the existing HMs to make them activate in the same way.
 
4
Posts
4
Years
  • Age 25
  • Seen Jan 24, 2021
Does anyone know if someone made a similar method for emerald. or if i can implement the same steps in Pokemon emerald ?
 
Back
Top