Thread: Development: Making Dive Work in FireRed
View Single Post
Old July 19th, 2011 (12:53 PM). Edited July 19th, 2011 by knizz.
knizz's Avatar
knizz knizz is offline
    Join Date: Aug 2007
    Posts: 192
    From Underwater: call script 081BE3D4
    From Overworld: call script 081BE38B

    To connect change the hometown-connection to a dive-connection set 08352754 to 05

    To disable the check whether you actually have a dive pokemon with you set the 6 bytes 081BE394-081BE399 to 0. This function also decides which pokemon is shown in the black bar. So if you disable it and see a bad egg. That's because of this.

    Disable the badge-check for HMs set 0812462E to 0.

    There are two ways to warp. The special one is just used when the behaviour of the tile the player is standing on is 0x19 and when the light byte is set to 0x5. Through different ways the execution can reach 0806DFB0. To avoid that you can destroy the bne/beqs. Write 0000 to 0806DF82 and 0806DF9C. This is not a good solution though. I'm sure there is a reason why these if's are there.

    I don't know if the warp destination is correct. But the bank and mapnumber are in the variables 7004 and 7005.
    Firered IDA 6.6 DB:
    VBA-M with lua scripting support
    Reply With Quote