View Single Post
 
Old December 6th, 2016 (1:24 PM). Edited April 15th, 2017 by mbcn10ww.
mbcn10ww's Avatar
mbcn10ww mbcn10ww is offline
     
    Join Date: Oct 2016
    Location: Brazil
    Gender: Male
    Nature: Lonely
    Posts: 366
    [Version 2.X Released]

    Hi everyone, I made a patch of my custom settings of Uncommon's thread (Credits to him for making this great patch, for FBI and all people involved on making this awesome system):

    Old Information:
    Spoiler:
    - Showing correct names of Pokémon when using the moves;
    - Changed the offsets to 0x990000-0x990692 instead of 0x760000-0x760692 (for someone with compatibility problems on hacks in progress);
    - Changed the MAP Position of START Menu to become compatible with FBI's Switching Between Two START Menus (with SAVE and without SAVE);
    - Changed flags for each move to the badge check flags.
    Badge Check Flags Offsets:
    Spoiler:
    Cut - 0x9900DF
    Fly - 0x99055C
    Surf - 0x9902D8
    Strength - 0x9901FD
    Flash - 0x990044
    Rock Smash - 0x99016D
    Waterfall - 0x99038D

    <Download>

    ADD-ON: If someone wants a second flag check, I made a patch to do it, now it checks if you have the respective badge and in my rom I made it checks if you have the respective HM in your Bag (you just need to place a "setflag" on each script of the game you receive the respective HM, but you can use it the way you want), except for Fly it checks only if you have the HM. (It needs expanded flags to work.)
    The flags for each HM (and offsets to change the flags):
    0x11E1 - Cut (0x9900E8)
    0x11E2 - Fly (0x99055C) (It checks this flag instead of the badge flag.)
    0x11E3 - Surf (0x9902E1)
    0x11E4 - Strength (0x990206)
    0x11E5 - Flash (0x99004D)
    0x11E6 - Rock Smash (0x990176)
    0x11E7 - Waterfall (0x990396)
    <Download AddOn>

    2nd ADD-ON: I've added to my rom's HM type check, another Pokémon type to check, here's the list and the offsets respectively if you want to change types to your desired type or simply to change to one type on all offsets of the same HM, it's your choice:

    Note: The script will check the types by order, then if you have a Steel and a Grass Pokémon in your party, the Steel Pokémon will never use Cut because Grass first priority.

    Cut - Grass (0x9906CA) / Steel (0x990772) / Bug (0x99078D) / Psychic (0x9907A8)
    Surf - Water (0x990696) / Ice (0x990859)
    Strength - Fighting (0x990708) / Rock (0x9908AB) / Psychic (0x9908D3)
    Flash - Fire (0x990727) / Electric (0x99094C)
    Rock Smash - Fighting (0x9906E4) / Rock (0x990997) / Psychic (0x9909B3)
    Waterfall - Water (0x9906B0) / Flying (0x990A33)

    I made this patch because now will have more options of setting up your team to don't lose any HM move.

    Note: The Psychic type can use many HM moves because it really can do a lot of things other Pokémon can't, and I want to edit Fly to work with Psychic because it will be a great addition. (But it will happen only if the ASM routine is modified.)

    Types in Hex:
    Spoiler:
    Normal 0x0
    Fighting 0x1
    Flying 0x2
    Poison 0x3
    Ground 0x4
    Rock 0x5
    Bug 0x6
    Ghost 0x7
    Steel 0x8
    ??? (egg) 0x9
    Fire 0xA
    Water 0xB
    Grass 0xC
    Electric 0xD
    Psychic 0xE
    Ice 0xF
    Dragon 0x10
    Dark 0x11


    I haven't added a new type to Fly because it isn't script and it's hard to edit because it's ASM.

    Note: It only works if you have used the previous patches.
    <Download 2nd AddOn>



    Misc Bug Fixes:
    Spoiler:
    - The description of the menu seems to be shuffled, then place 6C 05 99 08 at 0x3A736C and 49 A0 41 08 6F A0 41 08 34 06 99 08 B7 A0 41 08 at 0x3A73A0 and it will fix it;
    - Place C9 at 0x17D72C to fix Oak's first dialogue.


    Flag Check Patches (Only works with the full patch):
    Spoiler:
    <Badge Check Only> (It will check only if you have the required badge to use the move)
    <Alternate Check Only> (Instead of checking if you have a specific badge, it will check the custom flags 0x11E1 to 0x11E7)
    <Menu Option Check Only> (It will check only if you have the option "Pokémon" in your START Menu bypassing the badge/custom flag checks)



    Full Patch with all ADD-ONs and Bug Fixes (New Version 1.1 avaliable):

    Spoiler:
    <Version 1.0>
    <Version 1.1>

    Changelog for Version 1.1:
    Spoiler:
    - Added a new fixed Fly system (with the help of Uncommon & FBI);
    - Used offsets 0x98FF00-0x990B0F;
    - The new Fly routine will check the main flag, the badge flag and the alternate flag (0x828, 0x822, 0x11E2, respectively);
    - Now the new Fly routine will check if you have a Flying Pokémon, if not, it checks if you have a Psychic Pokémon, in order;
    - You don't need any of the previous patches to use this patch.

    Offsets for changing the Fly flags and types:
    Code:
    0x990AA6 = Flying Type
    0x990ABC = Psychic Type
    0x990AF8 = Badge Check
    0x990AFC = Alternate Check



    Full Patch Version 2.X
    Changelog Version 2.X
    Spoiler:
    - Used offsets 0x98FE00 - 0x99119F (it don't uses all of it, but it's more safe to have this all free space);
    - Added Rock Climb system;
    - Added Dive system;
    - Replaced unused RSE protagonists sprites with new Dive sprites for Red and Leaf;
    - Changed the Alternate Flags to default/unused safe flags (don't need expanded flags anymore).


    Important Information Version 2.X
    Spoiler:
    Flash: Make a Level Script on each map you want to use Flash, with the following settings; Script Type = 02 Validates values... / Flag = 4000 / Value = 0001 / Script offset 2 = $990024

    Dive:
    Note 0: I added a Dive block tile (22E) but you can use the tile you want, just assign its behaviour byte to 0x19.
    1 - Choose your Overworld map (the map you want to use Dive to go Underwater), go to Map Header, then in Map Options section change its Type to "06 ???";
    2 - Choose/Make your Underwater map (the map you want to use Emerge to go Overworld), go to Map Header, then in Map Option section change its Type to "Underwater" and change its Weather to "Underwater mist";
    3 - On the Overworld map, make a Dive connection to the Underwater map, to do it go to Map Connections, then Add, and choose Dive on the Direction box, then choose the Map Bank and Number to warp (the Underwater map);
    4 - On the Underwater map, make an Emerge connection to the Overworld map, to do it go to Map Connections, then Add, and choose Emerge on the Direction box, then choose the Map Bank and Number to warp (the Overworld map);
    5 - On the Overworld map, create a signpost/green_script tile and place the Dive script offset (0x990F40), if you are using signpost set its Talking Level to "01 Height 0 (Surf)";
    6 - On the Underwater map, create a signpost/green_script tile and place the Emerge script offset (0x99106B), if you are using signpost set its Talking Level to "00 Always".
    Note 1: Find a good location to place the signpost/green_script, because the script will warp you to the same X/Y position you are when you talk with the script.
    Note 2: Don't forget to edit the Map Header section like said, because if you don't edit, may cause bugs, freezes and other things.

    Rock Climb:
    Note 0: I added a Rock Climb block tile (22F) but you can use the tile you want, just assign its behaviour byte to 0xA5.
    0 - The Rock Climb system will function with signposts/person events (I recommend signposts and the tutorial will be only with them), look at these images:

    Note 1: The image shows the way you need to do it, if you will use only 1 Rock Climb tile you only need 1 signpost, but if you will use 2 or more Rock Climb tiles in sequence you need 2 signposts.
    1 - To use with only 1 signpost, just create a signpost and place the Rock Climb script offset (0x990B18), then place it like the image shows, with the following settings, Talking Level "00 Always" and Signpost type "Script";
    2 - To use with 2 signposts, just create the signposts and place the Rock Climb script offset (0x990B18), then place it like the image shows, with the following settings, Talking Level "00 Always", Signpost type "Script, if hero is facing up" for the bottom signpost and Signpost type "Script, if hero is facing down" for the top signpost.
    Note 2: You cannot use the Rock Climb script if the player is facing left or right to talk with the script.


    Offsets Version 2.X
    Note: There are 2 offsets of each item for Dive, because it have 2 separate scripts, one for Dive and one for Emerge.
    Spoiler:
    Types:
    Spoiler:

    Cut
    Grass (0x9906CA)
    Steel (0x990772)
    Bug (0x99078D)
    Psychic (0x9907A8)

    Fly
    Flying (0x990AA6)
    Psychic (0x990ABC)

    Surf
    Water (0x990696)
    Ice (0x990859)

    Strength
    Fighting (0x990708)
    Rock (0x9908AB)
    Psychic (0x9908D3)

    Flash
    Fire (0x990727)
    Electric (0x99094C)

    Rock Smash
    Fighting (0x9906E4)
    Rock (0x990997)
    Psychic (0x9909B3)

    Waterfall
    Water (0x9906B0)
    Flying (0x990A33)

    Dive
    Water (0x990F89 / 0x9910B4)
    Dragon (0x990FA4 / 0x9910CF)
    Psychic (0x990FBF / 0x9910EA)

    Rock Climb
    Ground (0x990B60)
    Rock (0x990B7B)
    Steel (0x990B96)


    Badge Flags:
    Spoiler:
    Cut (0x9900DF)
    Fly (0x990AF8)
    Surf (0x9902D8)
    Strength (0x9901FD)
    Flash (0x990044)
    Rock Smash (0x99016D)
    Waterfall (0x99038D)
    Dive (0x990F52 / 0x99107D)
    Rock Climb (0x990B29)


    Alternate Flags:
    Spoiler:
    0x237 - Cut (0x9900E8)
    0x238 - Fly (0x990AFC)
    0x239 - Surf (0x9902E1)
    0x23A - Strength (0x990206)
    0x23B - Flash (0x99004D)
    0x2EF - Rock Smash (0x990176)
    0x22F - Waterfall (0x990396)
    0x22E - Dive (0x990F5B / 0x991086)
    0x22D - Rock Climb (0x990B32)



    Misc Version 2.X
    Spoiler:
    Pokémon Types in Hex:
    Spoiler:
    0x0 = Normal
    0x1 = Fighting
    0x2 = Flying
    0x3 = Poison
    0x4 = Ground
    0x5 = Rock
    0x6 = Bug
    0x7 = Ghost
    0x8 = Steel
    0x9 = ??? (egg)
    0xA = Fire
    0xB = Water
    0xC = Grass
    0xD = Electric
    0xE = Psychic
    0xF = Ice
    0x10 = Dragon
    0x11 = Dark


    Badge Flags:
    Spoiler:
    0x820 = BOULDERBADGE (Flash)
    0x821 = CASCADEBADGE (Cut)
    0x822 = THUNDERBADGE (Fly)
    0x823 = RAINBOWBADGE (Strength)
    0x824 = SOULBADGE (Surf)
    0x825 = MARSHBADGE (Rock Smash)
    0x826 = VOLCANOBADGE (Waterfall)
    0x827 = EARTHBADGE (Dive / Rock Climb)



    CREDITS:
    FBI: Researcher and ASM Developer of this HM system, researcher of the custom Field Moves;
    FBI & knizz: Researchers of the Fly system;
    FBI & Touched: Researchers of the Modified Special 0x12B;
    Uncommon: Writer, tester, creator and owner of the original HM system patch.
    mbcn10ww: Bug fixes, custom changes (Multi Type Check, Alternate Flags), new Red/Leaf Dive sprites, Dive type check, Rock Climb type check.
    Nisarg: Help with Dive and Rock Climb.
    Spherical Ice: Unused Dive scripts offsets, Tutorial for changing player's default sprite to Dive sprite while in Underwater, the Rock Climb script.
    JPAN: Modified Special 0x7F.
    __________________
    My Works:
    [Fire Red] Adding New Trainer Sprites
    [Fire Red] My Version of HMs Type Check
    [Fire Red] Touched's Mega Evolution System (PATCH)
    Reply With Quote