Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HM Integration/Move Tutor Hijack Tutorial
- --------------------------------------------------------------------------------------------------
- This tutorial will let you maintain the base game HM cut-ins, but you don't have to teach any pokemon HMs unless you desperately want to teach a pokemon Fly for some reason.
- It uses AdrsValueSet and CheckHeadbuttCompatibility to fake the existence of a new tutor who checks for compatibility for the HM being asked for(ie you clicked a CUT tree) among your available pokemon.
- So long as such a Pokemon is found, it will use that Pokemon for the HM animation.
- --------------------------------------------------------------------------------------------------
- There are SIX sections to this tutorial. Read ALL sections first, then follow the instructions one by one.
- Programs Needed:
- Newest Canary DSPRE build(check the pins in DSPRE Support)
- HxD(or another hex editor) - https://mh-nexus.de/en/downloads.php?product=HxD20
- Pre-Existing Edits needed:
- Surf check removal hex edit in Overlay_1, from the Discord:
- https://discord.com/channels/446824489045721090/468060243688161300/1258565663736463473
- -------------------------------------------WAZA Section-------------------------------------------
- 1----------------------------------------WAZA OSHIE Edits-----------------------------------------
- -----------------------------------------------HXD------------------------------------------------
- In your extracted rom Contents folder, navigate to data\fielddata\wazaoshie. You'll see a file called waza_oshie.bin.
- Edit the file extension to say .bin.bak aka:
- waza_oshie.bin.bak
- Download my replacement file from the next post after this tutorial in the Discord's Tutorial Zone:
- https://discord.com/channels/446824489045721090/477197363954581542/1409795456929894522
- Place that .bin file in the folder.
- You're done with this section.
- -------------------------------------------ARM9 Section-------------------------------------------
- 2-----------------------------------------ARM9 Tutor Hex------------------------------------------
- -----------------------------------------------HXD------------------------------------------------
- Open the Arm9.bin in a hex editor and navigate to 0xFE930
- If you have not previously edited your Overlay_1 move tutor table specifically, copy the following bytes:
- 23 01 28 00 BD 00 20 01 D2 00 20 00 C4 00 30 00 CD 00 20 01 09 00 40 00 07 00 40 00 14 01 30 01 08 00 40 00 BA 01 28 01 91 01 28 01 D2 01 30 00 7C 01 20 01 AD 00 20 02 B4 00 28 02 3A 01 30 00 0E 01 28 02 1B 01 40 01 C8 00 30 01 F6 00 28 01 EB 00 28 02 44 01 28 01 AC 01 40 00 9A 01 30 00 9E 01 28 01 B9 01 20 01 EF 00 28 01 92 01 28 01 4E 01 28 01 89 01 28 02 83 01 30 02 54 01 20 01 0F 01 30 00 01 01 30 01 1A 01 28 00 85 01 28 00 81 00 28 02 FD 00 30 02 A2 00 28 01 DC 00 40 01 51 00 20 02 6E 01 30 02 64 01 20 02 84 01 20 02 15 01 20 02 10 01 30 02 D7 00 30 02 43 00 20 01 8F 00 40 01 4F 01 20 02 C2 01 20 00 1D 00 00 03 0F 00 00 0B 13 00 00 0B 39 00 00 0B 46 00 00 0B FA 00 00 0B F9 00 00 0B 7F 00 00 0B AF 01 00 0B 94 00 00 0B
- Confirm you're at 0xFE930, and if using HXD, use CTRL+B to paste in those copied bytes.
- Save and you're done with this section.
- ----------------------------------------Overlay_1 Section-----------------------------------------
- 3-----------------------------------------Table Repoint-------------------------------------------
- -----------------------------------------------HXD------------------------------------------------
- Open an uncompressed and marked uncompressed Overlay_1 in a hex editor.
- In this section we're repointing the move tutor table from Overlay_1 to the ARM9 area from the previous section.
- Copy the following bytes:
- 30 E9 0F 02
- Use the copied bytes to replace the following bytes(E0 93 20 02) at all of these locations:
- 0x1D320
- 0x1D324
- 0x1D4FC
- 0x1D74C
- Then we'll be changing the expected table length from 34 to 3D. Navigate to and edit these locations:
- 0x1D312
- 0x1D4EA
- Save and you're done with this section.
- ----------------------------------------Script Section 1------------------------------------------
- 4-----------------------------------------HM Integration------------------------------------------
- ----------------------------------------------DSPRE-----------------------------------------------
- In this we use checks for both the HM item itself, the appropriate badge, and pokemon compatibility(no teaching), as well as adding the flight system logic and flag checks.
- -
- In DSPRE back up your Script File 146.
- Import the Script File 146 file from the attached post in the Discord's Tutorial Zone:
- https://discord.com/channels/446824489045721090/477197363954581542/1412040581776936970
- Search the script for HM0 and confirm that all instances of:
- CheckBadge ? 0x800C
- are accurate to your game, as like me you may intend to have different gym badges allow HM use.
- ie the script/function that has:
- CheckItem ITEM_HM01 1 0x800C
- should also have:
- CheckBadge 1 0x800C
- Vanilla as follows:
- Cut - Hive Badge
- CheckItem ITEM_HM01 1 0x800C
- CheckBadge 1 0x800C
- Fly - Storm Badge
- CheckItem ITEM_HM02 1 0x800C
- CheckBadge 4 0x800C
- Strength - Plain Badge
- CheckItem ITEM_HM04 1 0x800C
- CheckBadge 2 0x800C
- Whirlpool - Glacier Badge
- CheckItem ITEM_HM05 1 0x800C
- CheckBadge 6 0x800C
- Rock Smash - Zephyr Badge
- CheckItem ITEM_HM06 1 0x800C
- CheckBadge 0 0x800C
- Waterfall - Rising Badge
- CheckItem ITEM_HM07 1 0x800C
- CheckBadge 7 0x800C
- Rock Climb - Earth Badge
- CheckItem ITEM_HM08 1 0x800C
- CheckBadge 15 0x800C
- Save the script and this section is done.
- ----------------------------------------Script Section 2------------------------------------------
- 5------------------------------------------Flight NPCs--------------------------------------------
- ----------------------------------------------DSPRE-----------------------------------------------
- Now we'll add the Flight NPC and Flight Pokemon to each town. You can replace them with whomever you want and whatever pokemon you prefer, but I used the bird tamer and in Kanto I used Pidgeot, in Johto I used Noctowl.
- Add these NPCs to the Event files in your towns, and take note of the overworld ID of the pokemon you chose.
- Now to the town Script files. The important part is to make sure the command:
- CMD_775 255 ??
- has the overworld ID of the pokemon npc from your event file instead of the question marks.
- So add these scripts to the bottom of each town Script File's Scripts section, renumbering these scripts to be just past the existing scripts, ie if the last one was 17, you would make these 18 and 19.
- JOHTO
- Script 200:
- ClearFlag 2585
- SetVar 0x800D 0
- CommonScript 0x2723
- CheckFlag 2585
- JumpIf DIFFERENT Function#200
- SendBackFollowingPoke
- CMD_775 255 ??
- FadeScreen 6 1 0 0
- WaitTime 32 0x800C
- Warp 0x40B0 0 0x40B1 0x40B2 Down
- FadeScreen 6 1 1 0
- WaitFadeScreen
- ReleaseAll
- End
- Script 201:
- FacePlayer
- LockAll
- PlayCry SPECIES_NOCTOWL 0
- Message 21
- WaitCry
- WaitButton
- CloseMessage
- ReleaseAll
- End
- -
- Next, add this function in the Functions section, it will automatically renumber itself.
- Function 200:
- ReleaseAll
- End
- ----------
- KANTO
- Script 200:
- ClearFlag 2585
- SetVar 0x800D 1
- CommonScript 0x2723
- CheckFlag 2585
- JumpIf DIFFERENT Function#200
- SendBackFollowingPoke
- CMD_775 255 ??
- FadeScreen 6 1 0 0
- WaitTime 32 0x800C
- Warp 0x40B0 0 0x40B1 0x40B2 Down
- FadeScreen 6 1 1 0
- WaitFadeScreen
- ReleaseAll
- End
- Script 201:
- FacePlayer
- LockAll
- PlayCry SPECIES_PIDGEOT 0
- Message 21
- WaitCry
- WaitButton
- CloseMessage
- ReleaseAll
- End
- Next, add this function in the Functions section, it will automatically renumber itself.
- Function 200:
- ReleaseAll
- End
- ----------
- Save and this section is done.
- -------------------------------------------Text Section-------------------------------------------
- 6------------------------------------------HM/Fly Text--------------------------------------------
- ----------------------------------------------DSPRE-----------------------------------------------
- Open Text Archive 211 in DSPRE and import my version of the file from the discord Tutorial Zone:
- https://discord.com/channels/446824489045721090/477197363954581542/1409795456929894522
- Save and this tutorial is done.
Advertisement
Add Comment
Please, Sign In to add comment