The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Resource [EM][FR] Pokemon Overworld Form(e) change.

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.


Reply
 
Thread Tools
  #1    
Old January 14th, 2017 (11:43 AM). Edited July 30th, 2017 by Chacha Dinosaur.
Chacha Dinosaur's Avatar
Chacha Dinosaur Chacha Dinosaur is offline
Adamant and adaptive dinosaur.
     
    Join Date: Jul 2013
    Age: 23
    Gender: Male
    Posts: 454
    Pokemon Overworld Form(e) Change Project

    The Battle Engine Upgrade code only handles the form(e) changes that happen in Battle.
    So, here is a separate project made by me in C and python which contains the code for different types of form(e) changes that not happen in the Battle but the Overworld.

    So why there is an another form(e) change resource thread when one already exists?
    1. Some of the routines here are specially coded to be used in conjunction with the Battle Engine Upgrade. The existing form(e) change routines in PC might not work without modifying them.
    2. It also provides the complex Rotom form change special move handling with mechanism to automatically generate scripts that are hardwired to the Rotom form handling routines.
    3. C is better than ASM.

    What is Implemented?
    Spoiler:

    -Arceus/Silvally Formes (Handling for form(e) changes in box left)
    -Giratina Formes (Handling for form(e) changes in box left)
    -Genesect Formes (Handling for form(e) changes in box left)
    -Rotom Forms
    -Deoxys Formes
    -Shaymin Formes
    -Genie Formes
    -Kyurem Formes
    -Hoopa Formes


    What is Left?
    Spoiler:

    -Keldeo Forme Change (reversion)
    -Handling for Hold Item formes changes in the PC
    -2 more Shaymin revert scenarios (Low priority)


    Source Code:-

    Installation instructions:-
    Spoiler:

    - Download devkitpro. Follow the instructions.
    (Note: you can only install devkitARM)

    - Download the latest version of python(3.5).
    After downloading and before proceeding to install make sure that the 'add to path' checkbox is ticked, otherwise you'll have to add the python path in the environment variables manually.

    - Download the master folder from this github page
    (click 'Clone or Download', then 'Download Zip')

    - Get your ROM, rename it BPEE0.gba and place it the main(master) folder.

    - To decide the offsets where you want to insert the code:

    * in the 'insert.py' file in the folder 'scripts' change default=0xF00000 to the location you want to insert the Upgrade data (let it be X)

    * in the 'linker.ld' file change 'ORIGIN = 0x08F00000' to X+0x8000000 (for e.g if default=0x1A10000 then ORIGIN = 0x9a10000)

    - Run the cmd.exe in the main folder.
    You can do this by typing 'cmd' and hitting enter in the url address or selecting 'run command prompt from here' from right clciking on empty space while holding the shift key

    - In command prompt window, type 'python scripts//build.py', press Enter and then 'python scripts//insert.py' (here we output a text file containing a list of all the offsets), press Enter.
    A new gba file will appear named as test.gba and an offsets.ini file.
    That is your resultant file.



    Setting up different form(e)s:-
    Spoiler:

    Giratina:
    Spoiler:
    1. In config.h, update the index of POKE_GIRATINA and POKE_GIRATINA_O
    2. Set the hold item effect of the item to be used as Griseous Orb to 0x49 (73)


    Arceus/Silvally:
    Spoiler:
    1. In config.h, update the index of POKE_ARCEUS and POKE_ARCEUS_FIGHTING.
    You don't need to update the rest of formes if all the formes are placed in consecutive slots and are
    in the same order defined in the enum. Otherwise, set them the same way as done for ARCUES_FIGHTING
    (add an =value to the corresponding entry). Same goes for Silvally
    2. Set the ability of all the formes as MULTITYPE. RKS System in case of Silvally
    3. For the plates, set the hold item effect as 0x90 (145). Item effect quality as the type boost factor.
    And the extra field as the type index to represent the plate type. The hold item effect for Memories are 0x91 (146).


    Genesect:
    Spoiler:
    1. In config.h, update the index of POKE_GENESECT and its formes in the similar way as done for Arcues.
    2. For the drives, the hold item effect is 0x8C (140). The extra field will decide the Genesect form. 1 for Douse, 2 for Burn, 3 for Chill and 4 for Shock.


    Rotom:
    Spoiler:
    1. In config.h, update the index of POKE_ROTOM and its formes in the same way as done for Arcues.
    2. Prepare a custom mulitichoice box for Rotom formes exactly same as ORAS. You will need to expand multichoice boxes to add a custom one.
    3. Then update the multichoice index in the 'config.s' file.
    4. Open the offsets.ini file and note the offset of rotom_main script and attach it as a signpost script.


    Deoxys:
    Spoiler:
    1. In config.h, update the index of deoxys formes.
    2. Open the offsets.ini file and note the offset of deoxys_main script and attach it as a signpost script


    Shaymin, Genie Forms, Hoopa, Kyurem:
    Spoiler:

    1. In config.h, update the index of all the respective forms.
    2. Open the offsets.ini file and note the offsets of item_forme_change_handler_gracidea,
    item_forme_change_handler_reveal_glass, item_forme_change_handler_dna_splicers & item_forme_change_handler_prison_bottle
    for Shaymin, Genies, Kyurem & Hoopa respectively
    3. Open an item editor, select the item to be used as Gracidea and set the Field Usage Pointer to the offset corresponding to item_forme_change_handler_gracidea[B}+1[/B].
    4. Select type of the item to '2. use of select'.
    5. Repeat steps 3-4 for Reveal Glass, DNA Splicers and Prison Bottle Respectively.
    6. Importantly for kyurem fusion, install a saveblock hack, then in src/config.h, set the value of SAVE_FUSEE to a RAM area consisting of 80 free bytes of saveblock space.
    (saveblock hack comes bundled with the Dynamic Pokemon Expansion for EM:- https://www.pokecommunity.com/showthread.php?t=380296
    for FR use PGE for Pokemon Expansion or JPAN's saveblock hack). If you don't want to use kyurem formes set SAVE_FUSEE to 0x0.

    Note: Shaymin and Hoopa revert when being withdrawn from PC. The Genie formes are interchangable with the item itself.


    Keldeo:
    Spoiler:

    1. Just modify the keldeo form(e) indices in config.h
    2. Open 'offsets.ini' file to get the offset of keldeo_main and assign it to a NPC.




    BUGS/Oddities:-
    Spoiler:

    The pokemon icon sprites don't update immediately after giving or taking the item for form(e) change. They only update after changing the screens.


    Major Changes:-
    Spoiler:

    Port to Fire Red
    Scripts for Rotom and Deoxys now build with the source. Simplifies the insertion process more.


    Credits:-
    Spoiler:

    The_Learner - Helping me to bring the project to near closure and doing the entire port to FR. Huge Thanks!
    Dizzy - My partner in the Battle Engine Upgrade, the Run Script from Item routine (which i translated to C) and telling some important offsets.
    Spherical Ice - Sharing his Rotom Script used in Gaia to get an idea of the workflow for Rotom.
    Sagiri - Identifying ORAS messages for Rotom and Deoxys Scripts.
    Tetrable - Keldeo Form(e) change.
    Reply With Quote

    Relevant Advertising!

      #2    
    Old January 14th, 2017 (6:12 PM). Edited January 14th, 2017 by LCCoolJ95.
    LCCoolJ95's Avatar
    LCCoolJ95 LCCoolJ95 is offline
    Limited Capacity
       
      Join Date: May 2009
      Location: The World That Never Was
      Age: 22
      Gender: Male
      Nature: Naive
      Posts: 529
      For the dynamic offsets, I would recommend using this:

      #freespace 0xFF
      #dynamic 0x9C0B20

      This only overwrites FF bytes, and not 00 and FF, because overwriting 00 could lead to possible graphical and sound errors.

      Also, the Rotom and Deoxys scripts are not working...
      __________________
      "The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

      Pokémon Theta Emerald EX: https://www.pokecommunity.com/showthread.php?t=386240
      Reply With Quote
        #3    
      Old January 14th, 2017 (7:50 PM).
      Chacha Dinosaur's Avatar
      Chacha Dinosaur Chacha Dinosaur is offline
      Adamant and adaptive dinosaur.
         
        Join Date: Jul 2013
        Age: 23
        Gender: Male
        Posts: 454
        Quote:
        Originally Posted by LCCoolJ95 View Post
        For the dynamic offsets, I would recommend using this:

        #freespace 0xFF
        #dynamic 0x9C0B20

        This only overwrites FF bytes, and not 00 and FF, because overwriting 00 could lead to possible graphical and sound errors.

        Also, the Rotom and Deoxys scripts are not working...
        I see.
        In what ways the scripts aren't working? Care to elaborate?
        Reply With Quote
          #4    
        Old January 14th, 2017 (8:34 PM).
        LCCoolJ95's Avatar
        LCCoolJ95 LCCoolJ95 is offline
        Limited Capacity
           
          Join Date: May 2009
          Location: The World That Never Was
          Age: 22
          Gender: Male
          Nature: Naive
          Posts: 529
          Here's Rotom's script:
          Spoiler:
          #freespace 0xFF
          #dynamic 0x300000

          '---------------
          #org @main
          lock
          msgbox @appliance_detection_string MSG_KEEPOPEN
          closeonkeypress
          callasm 0x8F0033D
          compare 0x800D 0x0
          if 0x1 goto @finish_rotom_menu
          compare 0x800D 0x2
          if 0x1 goto @choose_candidate_rotom
          #org @investigation_prompt
          bufferpartypokemon 0x1 0x8004
          msgbox @rotom_investigation_string MSG_KEEPOPEN
          closeonkeypress
          msgbox @investigation_prompt_string MSG_YESNO
          compare 0x800D 0x0
          if 0x1 goto @finish_rotom_menu
          preparemsg @appliance_choice_string
          waitmsg
          multichoice 0x72 0x0 0xD 0x0
          compare 0x800D 0x6
          if 0x1 goto @finish_rotom_menu
          callasm 0x8F00425
          compare 0x800D 0x0
          if 0x1 goto @rotom_already_in_motor
          compare 0x800D 0x4
          if 0x1 goto @rotom_already_out_of_motor
          compare 0x800D 0x3
          if 0x1 goto @delete_move_after_revert
          copyvar 0x8007 0x800D
          msgbox @entered_motor_string MSG_KEEPOPEN
          closeonkeypress
          compare 0x8007 0x2
          if 0x1 goto @rotom_learn_special_move
          special 0xE0
          bufferattack 0x2 0x8003
          msgbox @forgot_special_move_string MSG_KEEPOPEN
          closeonkeypress

          #org @rotom_learn_special_move
          callasm 0x8F00549
          compare 0x8006 0x0
          if 0x1 goto @finish_rotom_menu
          special 0xE2
          compare LASTRESULT 0x4
          if 0x1 goto @rotom_move_delete_prompt

          #org @learned_special_move
          callasm 0x8F005A9
          bufferattack 0x2 0x8006
          fanfare 0x101
          msgbox @learn_special_move_string MSG_KEEPOPEN
          waitfanfare
          closeonkeypress

          #org @finish_rotom_menu
          release
          end

          #org @rotom_move_delete_prompt
          bufferattack 0x2 0x8006
          msgbox @try_to_learn_move_string MSG_YESNO
          compare LASTRESULT 0x0
          if 0x1 goto @revert_for_not_learning_new_move
          special 0xDF
          waitstate
          compare 0x8005 0x3
          if 0x2 goto @finish_rotom_menu
          msgbox @pff_move_string MSG_KEEPOPEN
          closeonkeypress
          callasm 0x8F005D5
          bufferattack 0x2 0x8003
          special 0xE0
          bufferpartypokemon 0x1 0x8004
          msgbox @forgot_special_move_string MSG_KEEPOPEN
          closeonkeypress
          callasm 0x8F00549
          goto @learned_special_move

          #org @rotom_already_in_motor
          msgbox @already_appliance_string MSG_KEEPOPEN
          closeonkeypress
          goto @finish_rotom_menu

          #org @rotom_already_out_of_motor
          msgbox @not_in_motor_string MSG_KEEPOPEN
          closeonkeypress
          goto @finish_rotom_menu

          #org @delete_move_after_revert
          bufferattack 0x2 0x8003
          special 0xE0
          setvar 0x8006 0x0
          callasm 0x8F005A9
          msgbox @left_motor_string MSG_KEEPOPEN
          closeonkeypress
          msgbox @forgot_special_move_string MSG_KEEPOPEN
          closeonkeypress
          callasm 0x8F00549
          compare 0x8006 0x0
          if 0x1 @finish_rotom_menu
          callasm 0x8F005A9
          goto @finish_rotom_menu

          #org @revert_for_not_learning_new_move
          setvar 0x800D 0x5
          callasm 0x8F00425
          msgbox @left_motor_string MSG_KEEPOPEN
          closeonkeypress
          goto @finish_rotom_menu

          #org @choose_candidate_rotom
          special 0xA2
          waitstate
          callasm 0x8F003D1
          compare 0x800D 0x1
          if 0x1 goto @investigation_prompt
          msgbox @not_valid_rotom_msg MSG_KEEPOPEN
          closeonkeypress
          goto @finish_rotom_menu

          '---------
          ' Strings
          '---------
          #org @appliance_detection_string
          = It's full of cardboard boxes with\nelectrical appliances in them.

          #org @rotom_investigation_string
          = Oh? [buffer2] would like to\ninvestigate the motors of\pthe electrical appliances....

          #org @investigation_prompt_string
          = Is that OK?

          #org @appliance_choice_string
          = Which appliance's motor will you allow\n[buffer2] to enter?

          #org @entered_motor_string
          = [buffer2] entered the motor.

          #org @left_motor_string
          = [buffer2] emerged from the motor.

          #org @forgot_special_move_string
          = [buffer2] forgot [buffer3]!

          #org @learn_special_move_string
          = [buffer2] learned [buffer3]!

          #org @try_to_learn_move_string
          = [black_fr][buffer2] is trying to\nlearn [buffer3].\pBut, it can't learn\nmore than four moves.\pDelete a move to make\nroom for [buffer3]?

          #org @pff_move_string
          = \c\h08î1, \c\h08Ô2, and\c\h08Ô[.] \c\h08Ô[.] \c\h08Ô[.] \c\h08Ô\c\h10\h31 Poof!

          #org @already_appliance_string
          = This Rotom has already entered\nthat appliance motor.

          #org @not_in_motor_string
          = [buffer2] hasn't entered a motor.

          #org @not_valid_rotom_msg
          = Not a valid rotom.


          Here's Deoxys' script:
          Spoiler:
          #freespace 0xFF
          #dynamic 0x300000

          #org @main
          lock
          msgbox @meteorite_detection_string MSG_KEEPOPEN
          closeonkeypress
          callasm 0x8F00631
          compare 0x800D 0x0
          if 0x1 goto @finish_deoxys_menu
          compare 0x800D 0x2
          if 0x1 goto @choose_candidate_deoxys

          #org @reaction_prompt
          bufferpartypokemon 0x1 0x8004
          msgbox @deoxys_reaction_string MSG_KEEPOPEN
          closeonkeypress
          msgbox @reaction_prompt_string MSG_YESNO
          compare 0x800D 0x0
          callasm 0x8F006A1
          compare 0x800D 0x1
          if 0x1 call @change_to_attack
          compare 0x800D 0x2
          if 0x1 call @change_to_defense
          compare 0x800D 0x3
          if 0x1 call @change_to_speed
          compare 0x800D 0x4
          if 0x1 call @change_to_original
          #org @finish_deoxys_menu
          release
          end

          #org @choose_candidate_deoxys
          special 0xA2
          waitstate
          callasm 0x8F0075D
          compare 0x800D 0x1
          if 0x1 goto @reaction_prompt
          msgbox @not_valid_deoxys_msg MSG_KEEPOPEN
          closeonkeypress
          goto @finish_deoxys_menu

          #org @change_to_attack
          msgbox @attack_forme_string MSG_KEEPOPEN
          closeonkeypress
          return

          #org @change_to_defense
          msgbox @defense_forme_string MSG_KEEPOPEN
          closeonkeypress
          return

          #org @change_to_speed
          msgbox @speed_forme_string MSG_KEEPOPEN
          closeonkeypress
          return

          #org @change_to_original
          msgbox @balance_forme_string MSG_KEEPOPEN
          closeonkeypress
          return

          '---------
          ' Strings
          '---------

          #org @meteorite_detection_string
          = It's a meteor that fell from space...

          #org @deoxys_reaction_string
          = [Buffer2] is reacting to the meteorite...

          #org @reaction_prompt_string
          = Would you like to bring\nthe Deoxys in your party\pcloser to the meteorite?

          #org @attack_forme_string
          = [Buffer2] has changed to have\nsuperior stats for attacking!

          #org @defense_forme_string
          = [Buffer2] has changed to have\nsuperior stats when defending!

          #org @speed_forme_string
          = [Buffer2] has changed to have\nincreased speed!

          #org @balance_forme_string
          = [Buffer2] has changed to have\nbalanced stats!

          #org @not_valid_deoxys_msg
          = The pokemon does not react\nto the meteor.


          It seems that even if Rotom/Deoxys is in the party, the first piece of text reads, and the script ends. It doesn't freeze, the game works after the first string of text. Maybe missing a check for them?
          __________________
          "The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

          Pokémon Theta Emerald EX: https://www.pokecommunity.com/showthread.php?t=386240
          Reply With Quote
            #5    
          Old January 14th, 2017 (8:39 PM).
          Chacha Dinosaur's Avatar
          Chacha Dinosaur Chacha Dinosaur is offline
          Adamant and adaptive dinosaur.
             
            Join Date: Jul 2013
            Age: 23
            Gender: Male
            Posts: 454
            Quote:
            Originally Posted by LCCoolJ95 View Post
            Here's Rotom's script:
            Spoiler:
            #freespace 0xFF
            #dynamic 0x300000

            '---------------
            #org @main
            lock
            msgbox @appliance_detection_string MSG_KEEPOPEN
            closeonkeypress
            callasm 0x8F0033D
            compare 0x800D 0x0
            if 0x1 goto @finish_rotom_menu
            compare 0x800D 0x2
            if 0x1 goto @choose_candidate_rotom
            #org @investigation_prompt
            bufferpartypokemon 0x1 0x8004
            msgbox @rotom_investigation_string MSG_KEEPOPEN
            closeonkeypress
            msgbox @investigation_prompt_string MSG_YESNO
            compare 0x800D 0x0
            if 0x1 goto @finish_rotom_menu
            preparemsg @appliance_choice_string
            waitmsg
            multichoice 0x72 0x0 0xD 0x0
            compare 0x800D 0x6
            if 0x1 goto @finish_rotom_menu
            callasm 0x8F00425
            compare 0x800D 0x0
            if 0x1 goto @rotom_already_in_motor
            compare 0x800D 0x4
            if 0x1 goto @rotom_already_out_of_motor
            compare 0x800D 0x3
            if 0x1 goto @delete_move_after_revert
            copyvar 0x8007 0x800D
            msgbox @entered_motor_string MSG_KEEPOPEN
            closeonkeypress
            compare 0x8007 0x2
            if 0x1 goto @rotom_learn_special_move
            special 0xE0
            bufferattack 0x2 0x8003
            msgbox @forgot_special_move_string MSG_KEEPOPEN
            closeonkeypress

            #org @rotom_learn_special_move
            callasm 0x8F00549
            compare 0x8006 0x0
            if 0x1 goto @finish_rotom_menu
            special 0xE2
            compare LASTRESULT 0x4
            if 0x1 goto @rotom_move_delete_prompt

            #org @learned_special_move
            callasm 0x8F005A9
            bufferattack 0x2 0x8006
            fanfare 0x101
            msgbox @learn_special_move_string MSG_KEEPOPEN
            waitfanfare
            closeonkeypress

            #org @finish_rotom_menu
            release
            end

            #org @rotom_move_delete_prompt
            bufferattack 0x2 0x8006
            msgbox @try_to_learn_move_string MSG_YESNO
            compare LASTRESULT 0x0
            if 0x1 goto @revert_for_not_learning_new_move
            special 0xDF
            waitstate
            compare 0x8005 0x3
            if 0x2 goto @finish_rotom_menu
            msgbox @pff_move_string MSG_KEEPOPEN
            closeonkeypress
            callasm 0x8F005D5
            bufferattack 0x2 0x8003
            special 0xE0
            bufferpartypokemon 0x1 0x8004
            msgbox @forgot_special_move_string MSG_KEEPOPEN
            closeonkeypress
            callasm 0x8F00549
            goto @learned_special_move

            #org @rotom_already_in_motor
            msgbox @already_appliance_string MSG_KEEPOPEN
            closeonkeypress
            goto @finish_rotom_menu

            #org @rotom_already_out_of_motor
            msgbox @not_in_motor_string MSG_KEEPOPEN
            closeonkeypress
            goto @finish_rotom_menu

            #org @delete_move_after_revert
            bufferattack 0x2 0x8003
            special 0xE0
            setvar 0x8006 0x0
            callasm 0x8F005A9
            msgbox @left_motor_string MSG_KEEPOPEN
            closeonkeypress
            msgbox @forgot_special_move_string MSG_KEEPOPEN
            closeonkeypress
            callasm 0x8F00549
            compare 0x8006 0x0
            if 0x1 @finish_rotom_menu
            callasm 0x8F005A9
            goto @finish_rotom_menu

            #org @revert_for_not_learning_new_move
            setvar 0x800D 0x5
            callasm 0x8F00425
            msgbox @left_motor_string MSG_KEEPOPEN
            closeonkeypress
            goto @finish_rotom_menu

            #org @choose_candidate_rotom
            special 0xA2
            waitstate
            callasm 0x8F003D1
            compare 0x800D 0x1
            if 0x1 goto @investigation_prompt
            msgbox @not_valid_rotom_msg MSG_KEEPOPEN
            closeonkeypress
            goto @finish_rotom_menu

            '---------
            ' Strings
            '---------
            #org @appliance_detection_string
            = It's full of cardboard boxes with\nelectrical appliances in them.

            #org @rotom_investigation_string
            = Oh? [buffer2] would like to\ninvestigate the motors of\pthe electrical appliances....

            #org @investigation_prompt_string
            = Is that OK?

            #org @appliance_choice_string
            = Which appliance's motor will you allow\n[buffer2] to enter?

            #org @entered_motor_string
            = [buffer2] entered the motor.

            #org @left_motor_string
            = [buffer2] emerged from the motor.

            #org @forgot_special_move_string
            = [buffer2] forgot [buffer3]!

            #org @learn_special_move_string
            = [buffer2] learned [buffer3]!

            #org @try_to_learn_move_string
            = [black_fr][buffer2] is trying to\nlearn [buffer3].\pBut, it can't learn\nmore than four moves.\pDelete a move to make\nroom for [buffer3]?

            #org @pff_move_string
            = \c\h08î1, \c\h08Ô2, and\c\h08Ô[.] \c\h08Ô[.] \c\h08Ô[.] \c\h08Ô\c\h10\h31 Poof!

            #org @already_appliance_string
            = This Rotom has already entered\nthat appliance motor.

            #org @not_in_motor_string
            = [buffer2] hasn't entered a motor.

            #org @not_valid_rotom_msg
            = Not a valid rotom.


            Here's Deoxys' script:
            Spoiler:
            #freespace 0xFF
            #dynamic 0x300000

            #org @main
            lock
            msgbox @meteorite_detection_string MSG_KEEPOPEN
            closeonkeypress
            callasm 0x8F00631
            compare 0x800D 0x0
            if 0x1 goto @finish_deoxys_menu
            compare 0x800D 0x2
            if 0x1 goto @choose_candidate_deoxys

            #org @reaction_prompt
            bufferpartypokemon 0x1 0x8004
            msgbox @deoxys_reaction_string MSG_KEEPOPEN
            closeonkeypress
            msgbox @reaction_prompt_string MSG_YESNO
            compare 0x800D 0x0
            callasm 0x8F006A1
            compare 0x800D 0x1
            if 0x1 call @change_to_attack
            compare 0x800D 0x2
            if 0x1 call @change_to_defense
            compare 0x800D 0x3
            if 0x1 call @change_to_speed
            compare 0x800D 0x4
            if 0x1 call @change_to_original
            #org @finish_deoxys_menu
            release
            end

            #org @choose_candidate_deoxys
            special 0xA2
            waitstate
            callasm 0x8F0075D
            compare 0x800D 0x1
            if 0x1 goto @reaction_prompt
            msgbox @not_valid_deoxys_msg MSG_KEEPOPEN
            closeonkeypress
            goto @finish_deoxys_menu

            #org @change_to_attack
            msgbox @attack_forme_string MSG_KEEPOPEN
            closeonkeypress
            return

            #org @change_to_defense
            msgbox @defense_forme_string MSG_KEEPOPEN
            closeonkeypress
            return

            #org @change_to_speed
            msgbox @speed_forme_string MSG_KEEPOPEN
            closeonkeypress
            return

            #org @change_to_original
            msgbox @balance_forme_string MSG_KEEPOPEN
            closeonkeypress
            return

            '---------
            ' Strings
            '---------

            #org @meteorite_detection_string
            = It's a meteor that fell from space...

            #org @deoxys_reaction_string
            = [Buffer2] is reacting to the meteorite...

            #org @reaction_prompt_string
            = Would you like to bring\nthe Deoxys in your party\pcloser to the meteorite?

            #org @attack_forme_string
            = [Buffer2] has changed to have\nsuperior stats for attacking!

            #org @defense_forme_string
            = [Buffer2] has changed to have\nsuperior stats when defending!

            #org @speed_forme_string
            = [Buffer2] has changed to have\nincreased speed!

            #org @balance_forme_string
            = [Buffer2] has changed to have\nbalanced stats!

            #org @not_valid_deoxys_msg
            = The pokemon does not react\nto the meteor.


            It seems that even if Rotom/Deoxys is in the party, the first piece of text reads, and the script ends. It doesn't freeze, the game works after the first string of text. Maybe missing a check for them?
            I fixed an issue where it doesn't support expanded roms. Try doing this again.

            EDIT: Also make sure that you specify a offset in the dynamic such that all of the components of the scripts are placed together (i.e enough free space to insert the whole script).
            Reply With Quote
              #6    
            Old January 16th, 2017 (8:47 AM).
            LCCoolJ95's Avatar
            LCCoolJ95 LCCoolJ95 is offline
            Limited Capacity
               
              Join Date: May 2009
              Location: The World That Never Was
              Age: 22
              Gender: Male
              Nature: Naive
              Posts: 529
              Just tried it today, same thing happened.

              Rotom Script:
              Spoiler:
              '---------------
              #org 0x31CAAE
              lock
              msgbox 0x831CC7E MSG_KEEPOPEN '"It's full of cardboard boxes with\..."
              closeonkeypress
              callasm 0x8F0033D
              compare LASTRESULT 0x0
              if 0x1 goto 0x831CB90
              compare LASTRESULT 0x2
              if 0x1 goto 0x831CC5B
              '---------------
              #org 0x31CB90
              release
              end

              '---------------
              #org 0x31CC5B
              special 0xA2
              waitstate
              callasm 0x8F003D1
              compare LASTRESULT 0x1
              if 0x1 goto 0x831CAD4
              msgbox 0x831CEBF MSG_KEEPOPEN '"Not a valid rotom."
              closeonkeypress
              goto 0x831CB90

              '---------------
              #org 0x31CAD4
              bufferpartypokemon 0x1 0x8004
              msgbox 0x831CCC1 MSG_KEEPOPEN '"Oh? [buffer2] would like to\ninves..."
              closeonkeypress
              msgbox 0x831CD10 MSG_YESNO '"Is that OK?"
              compare LASTRESULT 0x0
              if 0x1 goto 0x831CB90
              preparemsg 0x831CD1E '"Which appliance's motor will you a..."
              waitmsg
              multichoice 0x72 0x0 0xD 0x0
              compare LASTRESULT 0x6
              if 0x1 goto 0x831CB90
              callasm 0x8F00425
              compare LASTRESULT 0x0
              if 0x1 goto 0x831CBE6
              compare LASTRESULT 0x4
              if 0x1 goto 0x831CBF5
              compare LASTRESULT 0x3
              if 0x1 goto 0x831CC04
              copyvar 0x8007 LASTRESULT
              msgbox 0x831CD54 MSG_KEEPOPEN '"[buffer2] entered the motor."
              closeonkeypress
              compare 0x8007 0x2
              if 0x1 goto 0x831CB5A
              special 0xE0
              bufferattack 0x2 0x8003
              msgbox 0x831CD89 MSG_KEEPOPEN '"[buffer2] forgot [buffer3]!"
              closeonkeypress
              '---------------
              #org 0x31CBE6
              msgbox 0x831CE6B MSG_KEEPOPEN '"This Rotom has already entered\nth..."
              closeonkeypress
              goto 0x831CB90

              '---------------
              #org 0x31CBF5
              msgbox 0x831CEA2 MSG_KEEPOPEN '"[buffer2] hasn't entered a motor."
              closeonkeypress
              goto 0x831CB90

              '---------------
              #org 0x31CC04
              bufferattack 0x2 0x8003
              special 0xE0
              setvar 0x8006 0x0
              callasm 0x8F005A9
              msgbox 0x831CD6C MSG_KEEPOPEN '"[buffer2] emerged from the motor."
              closeonkeypress
              msgbox 0x831CD89 MSG_KEEPOPEN '"[buffer2] forgot [buffer3]!"
              closeonkeypress
              callasm 0x8F00549
              compare 0x8006 0x0
              if 0x1 call 0x831CB90
              callasm 0x8F005A9
              goto 0x831CB90

              '---------------
              #org 0x31CB5A
              callasm 0x8F00549
              compare 0x8006 0x0
              if 0x1 goto 0x831CB90
              special 0xE2
              compare LASTRESULT 0x4
              if 0x1 goto 0x831CB93
              '---------------
              #org 0x31CB93
              bufferattack 0x2 0x8006
              msgbox 0x831CDD2 MSG_YESNO '"[darkgrey_em][buffer2] is trying t..."
              compare LASTRESULT 0x0
              if 0x1 goto 0x831CC42
              special 0xDF
              waitstate
              compare 0x8005 0x3
              if 0x2 goto 0x831CB90
              msgbox 0x831CE3E MSG_KEEPOPEN '"\c\h08î1, \c\h08Ô2, and\c\h08Ô[.] ..."
              closeonkeypress
              callasm 0x8F005D5
              bufferattack 0x2 0x8003
              special 0xE0
              bufferpartypokemon 0x1 0x8004
              msgbox 0x831CD89 MSG_KEEPOPEN '"[buffer2] forgot [buffer3]!"
              closeonkeypress
              callasm 0x8F00549
              goto 0x831CB79

              '---------------
              #org 0x31CC42
              setvar LASTRESULT 0x5
              callasm 0x8F00425
              msgbox 0x831CD6C MSG_KEEPOPEN '"[buffer2] emerged from the motor."
              closeonkeypress
              goto 0x831CB90

              '---------------
              #org 0x31CB79
              callasm 0x8F005A9
              bufferattack 0x2 0x8006
              fanfare 0x101
              msgbox 0x831CD99 MSG_KEEPOPEN '"[buffer2] learned [buffer3]!"
              waitfanfare
              closeonkeypress

              '---------
              ' Strings
              '---------
              #org 0x31CC7E
              = It's full of cardboard boxes with\nelectrical appliances in them.

              #org 0x31CEBF
              = Not a valid rotom.

              #org 0x31CCC1
              = Oh? [buffer2] would like to\ninvestigate the motors of\pthe electrical appliances....

              #org 0x31CD10
              = Is that OK?

              #org 0x31CD1E
              = Which appliance's motor will you allow\n[buffer2] to enter?

              #org 0x31CD54
              = [buffer2] entered the motor.

              #org 0x31CD89
              = [buffer2] forgot [buffer3]!

              #org 0x31CE6B
              = This Rotom has already entered\nthat appliance motor.

              #org 0x31CEA2
              = [buffer2] hasn't entered a motor.

              #org 0x31CD6C
              = [buffer2] emerged from the motor.

              #org 0x31CDD2
              = [darkgrey_em][buffer2] is trying to\nlearn [buffer3].\pBut, it can't learn\nmore than four moves.\pDelete a move to make\nroom for [buffer3]?

              #org 0x31CE3E
              = \c\h08î1, \c\h08Ô2, and\c\h08Ô[.] \c\h08Ô[.] \c\h08Ô[.] \c\h08Ô\c\h10\h31 Poof!

              #org 0x31CD99
              = [buffer2] learned [buffer3]!


              Deoxys Script:
              Spoiler:
              '---------------
              #org 0x31CED3
              lock
              msgbox 0x831CF97 MSG_KEEPOPEN '"It's a meteor that fell from space..."
              closeonkeypress
              callasm 0x8F00631
              compare LASTRESULT 0x0
              if 0x1 goto 0x831CF45
              compare LASTRESULT 0x2
              if 0x1 goto 0x831CF48
              '---------------
              #org 0x31CF45
              release
              end

              '---------------
              #org 0x31CF48
              special 0xA2
              waitstate
              callasm 0x8F0075D
              compare LASTRESULT 0x1
              if 0x1 goto 0x831CEF9
              msgbox 0x83256B3 MSG_KEEPOPEN '"The pokemon does not react\nto the..."
              closeonkeypress
              goto 0x831CF45

              '---------------
              #org 0x31CEF9
              bufferpartypokemon 0x1 0x8004
              msgbox 0x831F310 MSG_KEEPOPEN '"[buffer2] is reacting to the meteo..."
              closeonkeypress
              msgbox 0x8320ED8 MSG_YESNO '"Would you like to bring\nthe Deoxy..."
              compare LASTRESULT 0x0
              callasm 0x8F006A1
              compare LASTRESULT 0x1
              if 0x1 call 0x831CF6B
              compare LASTRESULT 0x2
              if 0x1 call 0x831CF76
              compare LASTRESULT 0x3
              if 0x1 call 0x831CF81
              compare LASTRESULT 0x4
              if 0x1 call 0x831CF8C
              '---------------
              #org 0x31CF6B
              msgbox 0x8320F24 MSG_KEEPOPEN '"[buffer2] has changed to have\nsup..."
              closeonkeypress
              return

              '---------------
              #org 0x31CF76
              msgbox 0x83230A4 MSG_KEEPOPEN '"[buffer2] has changed to have\nsup..."
              closeonkeypress
              return

              '---------------
              #org 0x31CF81
              msgbox 0x8325660 MSG_KEEPOPEN '"[buffer2] has changed to have\ninc..."
              closeonkeypress
              return

              '---------------
              #org 0x31CF8C
              msgbox 0x832568A MSG_KEEPOPEN '"[buffer2] has changed to have\nbal..."
              closeonkeypress
              return


              '---------
              ' Strings
              '---------
              #org 0x31CF97
              = It's a meteor that fell from space...

              #org 0x3256B3
              = The pokemon does not react\nto the meteor.

              #org 0x31F310
              = [buffer2] is reacting to the meteorite...

              #org 0x320ED8
              = Would you like to bring\nthe Deoxys in your party\pcloser to the meteorite?

              #org 0x320F24
              = [buffer2] has changed to have\nsuperior stats for attacking!

              #org 0x3230A4
              = [buffer2] has changed to have\nsuperior stats when defending!

              #org 0x325660
              = [buffer2] has changed to have\nincreased speed!

              #org 0x32568A
              = [buffer2] has changed to have\nbalanced stats!


              Here's my config if that helps any:
              Spoiler:
              #ifndef CONFIG_H
              #define CONFIG_H

              #include "types.h"

              #define ALL_POKES 886 //number of all pokemon
              #define ALL_ITEMS 644 //number of all items
              #define NUM_OF_EVOS 8 //number of evolutions per pokemon

              //////////////////////////////////////////////////////////////////////////////
              //// GIRATINA CONFIG ////
              //////////////////////////////////////////////////////////////////////////////
              #define POKE_GIRATINA 540
              #define POKE_GIRATINA_O 797

              //////////////////////////////////////////////////////////////////////////////
              //// ARCEUS CONFIG ////
              //////////////////////////////////////////////////////////////////////////////
              #define POKE_ARCEUS 546
              enum arceus_formes_idx {
              POKE_ARCEUS_FIGHTING = 799, // This a enum. The subsequent value of indexes will be 1302, 1303 etc.
              POKE_ARCEUS_FLYING,
              POKE_ARCEUS_POISON,
              POKE_ARCEUS_GROUND,
              POKE_ARCEUS_ROCK,
              POKE_ARCEUS_BUG,
              POKE_ARCEUS_GHOST,
              POKE_ARCEUS_STEEL,
              POKE_ARCEUS_FIRE,
              POKE_ARCEUS_WATER,
              POKE_ARCEUS_GRASS,
              POKE_ARCEUS_ELECTRIC,
              POKE_ARCEUS_PSYCHIC,
              POKE_ARCEUS_ICE,
              POKE_ARCEUS_DRAGON,
              POKE_ARCEUS_DARK,
              POKE_ARCEUS_FAIRY,
              };

              //////////////////////////////////////////////////////////////////////////////
              //// SILVALLY CONFIG ////
              //////////////////////////////////////////////////////////////////////////////
              #define ABILITY_RKS_SYSTEM 240
              #define POKE_SILVALLY 1340
              enum silvally_forms_idx {
              POKE_SILVALLY_FIGHTING = 1341,
              POKE_SILVALLY_FLYING,
              POKE_SILVALLY_POISON,
              POKE_SILVALLY_GROUND,
              POKE_SILVALLY_ROCK,
              POKE_SILVALLY_BUG,
              POKE_SILVALLY_GHOST,
              POKE_SILVALLY_STEEL,
              POKE_SILVALLY_FIRE,
              POKE_SILVALLY_WATER,
              POKE_SILVALLY_GRASS,
              POKE_SILVALLY_ELECTRIC,
              POKE_SILVALLY_PSYCHIC,
              POKE_SILVALLY_ICE,
              POKE_SILVALLY_DRAGON,
              POKE_SILVALLY_DARK,
              POKE_SILVALLY_FAIRY,
              };

              //////////////////////////////////////////////////////////////////////////////
              //// GENESECT CONFIG ////
              //////////////////////////////////////////////////////////////////////////////
              #define POKE_GENESECT 702
              enum genesect_formes{
              POKE_GENESECT_DOUSE = 831,
              POKE_GENESECT_BURN = 829,
              POKE_GENESECT_CHILL = 830,
              POKE_GENESECT_SHOCK = 828
              };

              enum drives
              {
              DOUSE_DRIVE_EFFECT=1,
              BURN_DRIVE_EFFECT,
              CHILL_DRIVE_EFFECT,
              SHOCK_DRIVE_EFFECT
              };


              //////////////////////////////////////////////////////////////////////////////
              //// ROTOM CONFIG ////
              //////////////////////////////////////////////////////////////////////////////
              #define POKE_ROTOM 532

              enum rotom_forms
              {
              POKE_ROTOM_HEAT=792,
              POKE_ROTOM_WASH,
              POKE_ROTOM_FROST,
              POKE_ROTOM_FAN,
              POKE_ROTOM_MOW
              };

              //////////////////////////////////////////////////////////////////////////////
              //// DEOXYS CONFIG ////
              //////////////////////////////////////////////////////////////////////////////
              enum deoxys_forms
              {
              POKE_DEOXYS_ATTACK=781,
              POKE_DEOXYS_DEFENSE,
              POKE_DEOXYS_SPEED,
              };

              #endif /* CONFIG_H */
              __________________
              "The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

              Pokémon Theta Emerald EX: https://www.pokecommunity.com/showthread.php?t=386240
              Reply With Quote
                #7    
              Old January 17th, 2017 (9:33 AM).
              Chacha Dinosaur's Avatar
              Chacha Dinosaur Chacha Dinosaur is offline
              Adamant and adaptive dinosaur.
                 
                Join Date: Jul 2013
                Age: 23
                Gender: Male
                Posts: 454
                Quote:
                Originally Posted by LCCoolJ95 View Post
                Just tried it today, same thing happened.

                Rotom Script:
                Spoiler:
                '---------------
                #org 0x31CAAE
                lock
                msgbox 0x831CC7E MSG_KEEPOPEN '"It's full of cardboard boxes with\..."
                closeonkeypress
                callasm 0x8F0033D
                compare LASTRESULT 0x0
                if 0x1 goto 0x831CB90
                compare LASTRESULT 0x2
                if 0x1 goto 0x831CC5B
                '---------------
                #org 0x31CB90
                release
                end

                '---------------
                #org 0x31CC5B
                special 0xA2
                waitstate
                callasm 0x8F003D1
                compare LASTRESULT 0x1
                if 0x1 goto 0x831CAD4
                msgbox 0x831CEBF MSG_KEEPOPEN '"Not a valid rotom."
                closeonkeypress
                goto 0x831CB90

                '---------------
                #org 0x31CAD4
                bufferpartypokemon 0x1 0x8004
                msgbox 0x831CCC1 MSG_KEEPOPEN '"Oh? [buffer2] would like to\ninves..."
                closeonkeypress
                msgbox 0x831CD10 MSG_YESNO '"Is that OK?"
                compare LASTRESULT 0x0
                if 0x1 goto 0x831CB90
                preparemsg 0x831CD1E '"Which appliance's motor will you a..."
                waitmsg
                multichoice 0x72 0x0 0xD 0x0
                compare LASTRESULT 0x6
                if 0x1 goto 0x831CB90
                callasm 0x8F00425
                compare LASTRESULT 0x0
                if 0x1 goto 0x831CBE6
                compare LASTRESULT 0x4
                if 0x1 goto 0x831CBF5
                compare LASTRESULT 0x3
                if 0x1 goto 0x831CC04
                copyvar 0x8007 LASTRESULT
                msgbox 0x831CD54 MSG_KEEPOPEN '"[buffer2] entered the motor."
                closeonkeypress
                compare 0x8007 0x2
                if 0x1 goto 0x831CB5A
                special 0xE0
                bufferattack 0x2 0x8003
                msgbox 0x831CD89 MSG_KEEPOPEN '"[buffer2] forgot [buffer3]!"
                closeonkeypress
                '---------------
                #org 0x31CBE6
                msgbox 0x831CE6B MSG_KEEPOPEN '"This Rotom has already entered\nth..."
                closeonkeypress
                goto 0x831CB90

                '---------------
                #org 0x31CBF5
                msgbox 0x831CEA2 MSG_KEEPOPEN '"[buffer2] hasn't entered a motor."
                closeonkeypress
                goto 0x831CB90

                '---------------
                #org 0x31CC04
                bufferattack 0x2 0x8003
                special 0xE0
                setvar 0x8006 0x0
                callasm 0x8F005A9
                msgbox 0x831CD6C MSG_KEEPOPEN '"[buffer2] emerged from the motor."
                closeonkeypress
                msgbox 0x831CD89 MSG_KEEPOPEN '"[buffer2] forgot [buffer3]!"
                closeonkeypress
                callasm 0x8F00549
                compare 0x8006 0x0
                if 0x1 call 0x831CB90
                callasm 0x8F005A9
                goto 0x831CB90

                '---------------
                #org 0x31CB5A
                callasm 0x8F00549
                compare 0x8006 0x0
                if 0x1 goto 0x831CB90
                special 0xE2
                compare LASTRESULT 0x4
                if 0x1 goto 0x831CB93
                '---------------
                #org 0x31CB93
                bufferattack 0x2 0x8006
                msgbox 0x831CDD2 MSG_YESNO '"[darkgrey_em][buffer2] is trying t..."
                compare LASTRESULT 0x0
                if 0x1 goto 0x831CC42
                special 0xDF
                waitstate
                compare 0x8005 0x3
                if 0x2 goto 0x831CB90
                msgbox 0x831CE3E MSG_KEEPOPEN '"\c\h08î1, \c\h08Ô2, and\c\h08Ô[.] ..."
                closeonkeypress
                callasm 0x8F005D5
                bufferattack 0x2 0x8003
                special 0xE0
                bufferpartypokemon 0x1 0x8004
                msgbox 0x831CD89 MSG_KEEPOPEN '"[buffer2] forgot [buffer3]!"
                closeonkeypress
                callasm 0x8F00549
                goto 0x831CB79

                '---------------
                #org 0x31CC42
                setvar LASTRESULT 0x5
                callasm 0x8F00425
                msgbox 0x831CD6C MSG_KEEPOPEN '"[buffer2] emerged from the motor."
                closeonkeypress
                goto 0x831CB90

                '---------------
                #org 0x31CB79
                callasm 0x8F005A9
                bufferattack 0x2 0x8006
                fanfare 0x101
                msgbox 0x831CD99 MSG_KEEPOPEN '"[buffer2] learned [buffer3]!"
                waitfanfare
                closeonkeypress

                '---------
                ' Strings
                '---------
                #org 0x31CC7E
                = It's full of cardboard boxes with\nelectrical appliances in them.

                #org 0x31CEBF
                = Not a valid rotom.

                #org 0x31CCC1
                = Oh? [buffer2] would like to\ninvestigate the motors of\pthe electrical appliances....

                #org 0x31CD10
                = Is that OK?

                #org 0x31CD1E
                = Which appliance's motor will you allow\n[buffer2] to enter?

                #org 0x31CD54
                = [buffer2] entered the motor.

                #org 0x31CD89
                = [buffer2] forgot [buffer3]!

                #org 0x31CE6B
                = This Rotom has already entered\nthat appliance motor.

                #org 0x31CEA2
                = [buffer2] hasn't entered a motor.

                #org 0x31CD6C
                = [buffer2] emerged from the motor.

                #org 0x31CDD2
                = [darkgrey_em][buffer2] is trying to\nlearn [buffer3].\pBut, it can't learn\nmore than four moves.\pDelete a move to make\nroom for [buffer3]?

                #org 0x31CE3E
                = \c\h08î1, \c\h08Ô2, and\c\h08Ô[.] \c\h08Ô[.] \c\h08Ô[.] \c\h08Ô\c\h10\h31 Poof!

                #org 0x31CD99
                = [buffer2] learned [buffer3]!


                Deoxys Script:
                Spoiler:
                '---------------
                #org 0x31CED3
                lock
                msgbox 0x831CF97 MSG_KEEPOPEN '"It's a meteor that fell from space..."
                closeonkeypress
                callasm 0x8F00631
                compare LASTRESULT 0x0
                if 0x1 goto 0x831CF45
                compare LASTRESULT 0x2
                if 0x1 goto 0x831CF48
                '---------------
                #org 0x31CF45
                release
                end

                '---------------
                #org 0x31CF48
                special 0xA2
                waitstate
                callasm 0x8F0075D
                compare LASTRESULT 0x1
                if 0x1 goto 0x831CEF9
                msgbox 0x83256B3 MSG_KEEPOPEN '"The pokemon does not react\nto the..."
                closeonkeypress
                goto 0x831CF45

                '---------------
                #org 0x31CEF9
                bufferpartypokemon 0x1 0x8004
                msgbox 0x831F310 MSG_KEEPOPEN '"[buffer2] is reacting to the meteo..."
                closeonkeypress
                msgbox 0x8320ED8 MSG_YESNO '"Would you like to bring\nthe Deoxy..."
                compare LASTRESULT 0x0
                callasm 0x8F006A1
                compare LASTRESULT 0x1
                if 0x1 call 0x831CF6B
                compare LASTRESULT 0x2
                if 0x1 call 0x831CF76
                compare LASTRESULT 0x3
                if 0x1 call 0x831CF81
                compare LASTRESULT 0x4
                if 0x1 call 0x831CF8C
                '---------------
                #org 0x31CF6B
                msgbox 0x8320F24 MSG_KEEPOPEN '"[buffer2] has changed to have\nsup..."
                closeonkeypress
                return

                '---------------
                #org 0x31CF76
                msgbox 0x83230A4 MSG_KEEPOPEN '"[buffer2] has changed to have\nsup..."
                closeonkeypress
                return

                '---------------
                #org 0x31CF81
                msgbox 0x8325660 MSG_KEEPOPEN '"[buffer2] has changed to have\ninc..."
                closeonkeypress
                return

                '---------------
                #org 0x31CF8C
                msgbox 0x832568A MSG_KEEPOPEN '"[buffer2] has changed to have\nbal..."
                closeonkeypress
                return


                '---------
                ' Strings
                '---------
                #org 0x31CF97
                = It's a meteor that fell from space...

                #org 0x3256B3
                = The pokemon does not react\nto the meteor.

                #org 0x31F310
                = [buffer2] is reacting to the meteorite...

                #org 0x320ED8
                = Would you like to bring\nthe Deoxys in your party\pcloser to the meteorite?

                #org 0x320F24
                = [buffer2] has changed to have\nsuperior stats for attacking!

                #org 0x3230A4
                = [buffer2] has changed to have\nsuperior stats when defending!

                #org 0x325660
                = [buffer2] has changed to have\nincreased speed!

                #org 0x32568A
                = [buffer2] has changed to have\nbalanced stats!


                Here's my config if that helps any:
                Spoiler:
                #ifndef CONFIG_H
                #define CONFIG_H

                #include "types.h"

                #define ALL_POKES 886 //number of all pokemon
                #define ALL_ITEMS 644 //number of all items
                #define NUM_OF_EVOS 8 //number of evolutions per pokemon

                //////////////////////////////////////////////////////////////////////////////
                //// GIRATINA CONFIG ////
                //////////////////////////////////////////////////////////////////////////////
                #define POKE_GIRATINA 540
                #define POKE_GIRATINA_O 797

                //////////////////////////////////////////////////////////////////////////////
                //// ARCEUS CONFIG ////
                //////////////////////////////////////////////////////////////////////////////
                #define POKE_ARCEUS 546
                enum arceus_formes_idx {
                POKE_ARCEUS_FIGHTING = 799, // This a enum. The subsequent value of indexes will be 1302, 1303 etc.
                POKE_ARCEUS_FLYING,
                POKE_ARCEUS_POISON,
                POKE_ARCEUS_GROUND,
                POKE_ARCEUS_ROCK,
                POKE_ARCEUS_BUG,
                POKE_ARCEUS_GHOST,
                POKE_ARCEUS_STEEL,
                POKE_ARCEUS_FIRE,
                POKE_ARCEUS_WATER,
                POKE_ARCEUS_GRASS,
                POKE_ARCEUS_ELECTRIC,
                POKE_ARCEUS_PSYCHIC,
                POKE_ARCEUS_ICE,
                POKE_ARCEUS_DRAGON,
                POKE_ARCEUS_DARK,
                POKE_ARCEUS_FAIRY,
                };

                //////////////////////////////////////////////////////////////////////////////
                //// SILVALLY CONFIG ////
                //////////////////////////////////////////////////////////////////////////////
                #define ABILITY_RKS_SYSTEM 240
                #define POKE_SILVALLY 1340
                enum silvally_forms_idx {
                POKE_SILVALLY_FIGHTING = 1341,
                POKE_SILVALLY_FLYING,
                POKE_SILVALLY_POISON,
                POKE_SILVALLY_GROUND,
                POKE_SILVALLY_ROCK,
                POKE_SILVALLY_BUG,
                POKE_SILVALLY_GHOST,
                POKE_SILVALLY_STEEL,
                POKE_SILVALLY_FIRE,
                POKE_SILVALLY_WATER,
                POKE_SILVALLY_GRASS,
                POKE_SILVALLY_ELECTRIC,
                POKE_SILVALLY_PSYCHIC,
                POKE_SILVALLY_ICE,
                POKE_SILVALLY_DRAGON,
                POKE_SILVALLY_DARK,
                POKE_SILVALLY_FAIRY,
                };

                //////////////////////////////////////////////////////////////////////////////
                //// GENESECT CONFIG ////
                //////////////////////////////////////////////////////////////////////////////
                #define POKE_GENESECT 702
                enum genesect_formes{
                POKE_GENESECT_DOUSE = 831,
                POKE_GENESECT_BURN = 829,
                POKE_GENESECT_CHILL = 830,
                POKE_GENESECT_SHOCK = 828
                };

                enum drives
                {
                DOUSE_DRIVE_EFFECT=1,
                BURN_DRIVE_EFFECT,
                CHILL_DRIVE_EFFECT,
                SHOCK_DRIVE_EFFECT
                };


                //////////////////////////////////////////////////////////////////////////////
                //// ROTOM CONFIG ////
                //////////////////////////////////////////////////////////////////////////////
                #define POKE_ROTOM 532

                enum rotom_forms
                {
                POKE_ROTOM_HEAT=792,
                POKE_ROTOM_WASH,
                POKE_ROTOM_FROST,
                POKE_ROTOM_FAN,
                POKE_ROTOM_MOW
                };

                //////////////////////////////////////////////////////////////////////////////
                //// DEOXYS CONFIG ////
                //////////////////////////////////////////////////////////////////////////////
                enum deoxys_forms
                {
                POKE_DEOXYS_ATTACK=781,
                POKE_DEOXYS_DEFENSE,
                POKE_DEOXYS_SPEED,
                };

                #endif /* CONFIG_H */
                Can you give your test rom patch and save? I'm bit busy in office so directly testing your rom will speed up the process.
                Reply With Quote
                  #8    
                Old January 17th, 2017 (12:35 PM).
                LCCoolJ95's Avatar
                LCCoolJ95 LCCoolJ95 is offline
                Limited Capacity
                   
                  Join Date: May 2009
                  Location: The World That Never Was
                  Age: 22
                  Gender: Male
                  Nature: Naive
                  Posts: 529
                  I sent the ROM and save. Also, when trying to get the offsets.txt, using 'python scripts//insert --debug>offsets.txt', I get this error:
                  Spoiler:
                  Traceback (most recent call last):
                  File "scripts//insert", line 239, in <module>
                  with open('offsets.txt', 'w') as fout:
                  PermissionError: [Errno 13] Permission denied: 'offsets.txt'
                  __________________
                  "The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

                  Pokémon Theta Emerald EX: https://www.pokecommunity.com/showthread.php?t=386240
                  Reply With Quote
                    #9    
                  Old January 18th, 2017 (5:18 AM).
                  Chacha Dinosaur's Avatar
                  Chacha Dinosaur Chacha Dinosaur is offline
                  Adamant and adaptive dinosaur.
                     
                    Join Date: Jul 2013
                    Age: 23
                    Gender: Male
                    Posts: 454
                    Quote:
                    Originally Posted by LCCoolJ95 View Post
                    I sent the ROM and save. Also, when trying to get the offsets.txt, using 'python scripts//insert --debug>offsets.txt', I get this error:
                    Spoiler:
                    Traceback (most recent call last):
                    File "scripts//insert", line 239, in <module>
                    with open('offsets.txt', 'w') as fout:
                    PermissionError: [Errno 13] Permission denied: 'offsets.txt'
                    There was some issue in the script compilation. So I have added goto statements to avoid that issue.

                    Download the latest build for updated XSE scripts. This should fix the issue.

                    Regarding the debug error, i have disabled the debug parameter for the insert script and instead, it outputs the offsets.txt file for generate_offsets.py by default.
                    Reply With Quote
                      #10    
                    Old January 18th, 2017 (12:17 PM).
                    LCCoolJ95's Avatar
                    LCCoolJ95 LCCoolJ95 is offline
                    Limited Capacity
                       
                      Join Date: May 2009
                      Location: The World That Never Was
                      Age: 22
                      Gender: Male
                      Nature: Naive
                      Posts: 529
                      Fixed now, but now there's this:
                      Have this glitch when leveling up...empty spots in party level up:
                      __________________
                      "The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

                      Pokémon Theta Emerald EX: https://www.pokecommunity.com/showthread.php?t=386240
                      Reply With Quote
                        #11    
                      Old January 18th, 2017 (7:11 PM).
                      Chacha Dinosaur's Avatar
                      Chacha Dinosaur Chacha Dinosaur is offline
                      Adamant and adaptive dinosaur.
                         
                        Join Date: Jul 2013
                        Age: 23
                        Gender: Male
                        Posts: 454
                        Quote:
                        Originally Posted by LCCoolJ95 View Post
                        Fixed now, but now there's this:
                        Have this glitch when leveling up...empty spots in party level up:
                        I think this is not related to forme change project. It might be a exp share bug.
                        Reply With Quote
                          #12    
                        Old March 16th, 2017 (1:00 PM).
                        Marky Vigoroth's Avatar
                        Marky Vigoroth Marky Vigoroth is online now
                        ...I just liked the Scyther icon.
                           
                          Join Date: Aug 2015
                          Location: Puerto Rico
                          Gender: Male
                          Nature: Naive
                          Posts: 80
                          Would you do Castform, too?
                          __________________
                          Hack-player; hack-maker.
                          Reply With Quote
                            #13    
                          Old March 16th, 2017 (7:39 PM).
                          Chacha Dinosaur's Avatar
                          Chacha Dinosaur Chacha Dinosaur is offline
                          Adamant and adaptive dinosaur.
                             
                            Join Date: Jul 2013
                            Age: 23
                            Gender: Male
                            Posts: 454
                            Quote:
                            Originally Posted by Marky Vigoroth View Post
                            Would you do Castform, too?
                            It is already covered in the Emerald Battle Engine Upgrade.
                            Reply With Quote
                              #14    
                            Old May 8th, 2017 (4:27 AM).
                            Chacha Dinosaur's Avatar
                            Chacha Dinosaur Chacha Dinosaur is offline
                            Adamant and adaptive dinosaur.
                               
                              Join Date: Jul 2013
                              Age: 23
                              Gender: Male
                              Posts: 454
                              UPDATE

                              So this project was progressing at a snail's ace (despite not being relatively large) and was likely to go this way. But then The_Learner approached me for learning Rom hacking with C.
                              After teaching some basics of rom hacking. I decided to take him in a live project which helped both me and him as the pace of project sped up rapidly and The_Learner became more potent in writing code in C. He is also responsible for porting this repo to Fire Red side by side.

                              Anyways, the update consists of forme changes for Shamyin, Hoopa, Genie Trio, & Kyurem as well as the process of inserting Rotom and Deoxys form(e)s have been simplified as they are now built within the code itself (no need for XSE).

                              An entire Fire Red port done by The_Learner!

                              See the first port for more details and instructions to set them up!
                              Reply With Quote
                                #15    
                              Old May 16th, 2017 (4:59 AM).
                              558741236 558741236 is offline
                                 
                                Join Date: Apr 2017
                                Posts: 16
                                I have met some problems about Kyurem.When I use the dna_splicers to relieve the black or white ,it hints there is no enough place in the party. But it still returns.After I want to fusion again, it hints mulitype fusions are not allowed.
                                Another thing is that if I fusion 2 Kyurem black or white, and then I relieve them, the first fusion can not return, just the second. Maybe it is my fault, I didn't understand the saveblock about SAVE_FUSEE, I just write the 0x0203CF64 in Dynamic Pokemon Expansion for EM.
                                Sorry about that I don't know how to send a picture, could you understand what I said, it's really sorry about that.THANKS for your great work.
                                Reply With Quote
                                  #16    
                                Old May 17th, 2017 (2:48 AM).
                                Froosty's Avatar
                                Froosty Froosty is offline
                                The_Learner
                                   
                                  Join Date: Sep 2014
                                  Location: Somewhere in this world.
                                  Age: 19
                                  Gender: Male
                                  Nature: Brave
                                  Posts: 542
                                  Quote:
                                  Originally Posted by 558741236 View Post
                                  I have met some problems about Kyurem.When I use the dna_splicers to relieve the black or white ,it hints there is no enough place in the party. But it still returns.After I want to fusion again, it hints mulitype fusions are not allowed.
                                  Another thing is that if I fusion 2 Kyurem black or white, and then I relieve them, the first fusion can not return, just the second. Maybe it is my fault, I didn't understand the saveblock about SAVE_FUSEE, I just write the 0x0203CF64 in Dynamic Pokemon Expansion for EM.
                                  Sorry about that I don't know how to send a picture, could you understand what I said, it's really sorry about that.THANKS for your great work.
                                  That problem with the 6 poke but reverting..
                                  That was a silly coding mistake ;-;
                                  I fixed it actually... get the latest code now.. it should be working.

                                  The multiple fusion thing will be executed when you have done the fusion or if the saveblock area is not so free (usable)

                                  and yeah the codes are managed such that only one fusion is possible in the game..
                                  (Means NO hacking with multiply kyurems) :P
                                  __________________
                                  Want to talk with me regarding Rom-hacking ??? Want to get access to my works exclusive than anywhere else ???
                                  Click here to get in the discord server here where rom-hacking is a everyday talk and task.

                                  Want to showcase your hack on discord server ??? Click here to get the dask done.

                                  My works:
                                  TOOL: TL's Quick Enhancer
                                  TUTORIAL: Fire red habitat editing
                                  TUTORIAL: Fire red Transparent text-box


                                  | |
                                  Reply With Quote
                                    #17    
                                  Old May 17th, 2017 (4:23 AM).
                                  558741236 558741236 is offline
                                     
                                    Join Date: Apr 2017
                                    Posts: 16
                                    Quote:
                                    Originally Posted by The_learner View Post
                                    That problem with the 6 poke but reverting..
                                    That was a silly coding mistake ;-;
                                    I fixed it actually... get the latest code now.. it should be working.

                                    The multiple fusion thing will be executed when you have done the fusion or if the saveblock area is not so free (usable)

                                    and yeah the codes are managed such that only one fusion is possible in the game..
                                    (Means NO hacking with multiply kyurems) :P
                                    And how to solve the problem that the saveblock is not free, now if I revert the black or white, the dex information will all be cleared, after fusion again it comes back.
                                    It is so sorry that I really know noting about the RAM and the saveblock,but I don't want to give up the kyurem. ;-;
                                    I have used the saveblock hack in the Dynamic Pokemon Expansion for EM and also use the item expasion,so will it cause that the free space is not enough?:(
                                    Reply With Quote
                                      #18    
                                    Old May 17th, 2017 (4:40 AM).
                                    Froosty's Avatar
                                    Froosty Froosty is offline
                                    The_Learner
                                       
                                      Join Date: Sep 2014
                                      Location: Somewhere in this world.
                                      Age: 19
                                      Gender: Male
                                      Nature: Brave
                                      Posts: 542
                                      Quote:
                                      Originally Posted by 558741236 View Post
                                      And how to solve the problem that the saveblock is not free, now if I revert the black or white, the dex information will all be cleared, after fusion again it comes back.
                                      It is so sorry that I really know noting about the RAM and the saveblock,but I don't want to give up the kyurem. ;-;
                                      I have used the saveblock hack in the Dynamic Pokemon Expansion for EM and also use the item expasion,so will it cause that the free space is not enough?:(
                                      The dex-information...
                                      I think we hadnt check that.. if it clears after revert or not ~_~

                                      and yeah about the saveblock thing ... I too dont know much about it but KDS once told that there is something related to it in Egg's battle engine upgrade..
                                      and he might be able to tell you.

                                      Sorry but I too dunno about this saveblock free ram area...
                                      __________________
                                      Want to talk with me regarding Rom-hacking ??? Want to get access to my works exclusive than anywhere else ???
                                      Click here to get in the discord server here where rom-hacking is a everyday talk and task.

                                      Want to showcase your hack on discord server ??? Click here to get the dask done.

                                      My works:
                                      TOOL: TL's Quick Enhancer
                                      TUTORIAL: Fire red habitat editing
                                      TUTORIAL: Fire red Transparent text-box


                                      | |
                                      Reply With Quote
                                        #19    
                                      Old May 17th, 2017 (4:51 AM).
                                      558741236 558741236 is offline
                                         
                                        Join Date: Apr 2017
                                        Posts: 16
                                        Quote:
                                        Originally Posted by The_learner View Post
                                        The dex-information...
                                        I think we hadnt check that.. if it clears after revert or not ~_~

                                        and yeah about the saveblock thing ... I too dont know much about it but KDS once told that there is something related to it in Egg's battle engine upgrade..
                                        and he might be able to tell you.

                                        Sorry but I too dunno about this saveblock free ram area...
                                        Thanks for your help and reply. Maybe I can try to look for other ways to solve the problem.
                                        Reply With Quote
                                          #20    
                                        Old May 18th, 2017 (10:36 AM).
                                        AtecainCorp.'s Avatar
                                        AtecainCorp. AtecainCorp. is offline
                                        Rejishan awake...
                                           
                                          Join Date: Jun 2008
                                          Location: Takoabe Town (Region Thonsu)
                                          Age: 25
                                          Gender: Male
                                          Nature: Hardy
                                          Posts: 1,280
                                          Good things. So sad that this is not in ASM. since it will been easier for me to convert routine into Ruby rom.
                                          __________________
                                          - My new Project comming Soon
                                          Reply With Quote
                                            #21    
                                          Old May 18th, 2017 (10:43 AM).
                                          DizzyEgg's Avatar
                                          DizzyEgg DizzyEgg is offline
                                             
                                            Join Date: Feb 2014
                                            Location: Poland
                                            Age: 20
                                            Gender: Male
                                            Nature: Quiet
                                            Posts: 716
                                            Quote:
                                            Originally Posted by AtecainCorp. View Post
                                            Good things. So sad that this is not in ASM. since it will been easier for me to convert routine into Ruby rom.
                                            I thought you do not said ASM?
                                            Reply With Quote
                                              #22    
                                            Old May 18th, 2017 (10:50 AM).
                                            AtecainCorp.'s Avatar
                                            AtecainCorp. AtecainCorp. is offline
                                            Rejishan awake...
                                               
                                              Join Date: Jun 2008
                                              Location: Takoabe Town (Region Thonsu)
                                              Age: 25
                                              Gender: Male
                                              Nature: Hardy
                                              Posts: 1,280
                                              ASM is easier for me to port int ruby engine than C scripts.
                                              __________________
                                              - My new Project comming Soon
                                              Reply With Quote
                                                #23    
                                              Old May 19th, 2017 (2:13 AM).
                                              Froosty's Avatar
                                              Froosty Froosty is offline
                                              The_Learner
                                                 
                                                Join Date: Sep 2014
                                                Location: Somewhere in this world.
                                                Age: 19
                                                Gender: Male
                                                Nature: Brave
                                                Posts: 542
                                                Quote:
                                                Originally Posted by AtecainCorp. View Post
                                                Good things. So sad that this is not in ASM. since it will been easier for me to convert routine into Ruby rom.
                                                Quote:
                                                Originally Posted by AtecainCorp. View Post
                                                ASM is easier for me to port int ruby engine than C scripts.
                                                The ASM future seems so faint and dark actually..
                                                If things like dissaembly happen successfully then yeah I think we wont be needing the asm more.. ;)
                                                __________________
                                                Want to talk with me regarding Rom-hacking ??? Want to get access to my works exclusive than anywhere else ???
                                                Click here to get in the discord server here where rom-hacking is a everyday talk and task.

                                                Want to showcase your hack on discord server ??? Click here to get the dask done.

                                                My works:
                                                TOOL: TL's Quick Enhancer
                                                TUTORIAL: Fire red habitat editing
                                                TUTORIAL: Fire red Transparent text-box


                                                | |
                                                Reply With Quote
                                                  #24    
                                                Old May 20th, 2017 (6:08 AM).
                                                Chacha Dinosaur's Avatar
                                                Chacha Dinosaur Chacha Dinosaur is offline
                                                Adamant and adaptive dinosaur.
                                                   
                                                  Join Date: Jul 2013
                                                  Age: 23
                                                  Gender: Male
                                                  Posts: 454
                                                  Quote:
                                                  Originally Posted by 558741236 View Post
                                                  I have met some problems about Kyurem.When I use the dna_splicers to relieve the black or white ,it hints there is no enough place in the party. But it still returns.After I want to fusion again, it hints mulitype fusions are not allowed.
                                                  Another thing is that if I fusion 2 Kyurem black or white, and then I relieve them, the first fusion can not return, just the second. Maybe it is my fault, I didn't understand the saveblock about SAVE_FUSEE, I just write the 0x0203CF64 in Dynamic Pokemon Expansion for EM.
                                                  Sorry about that I don't know how to send a picture, could you understand what I said, it's really sorry about that.THANKS for your great work.
                                                  You can do this. Use 0x0203CF64 for kyurem and 0x0203CF64+0x64 for Pokemon Expansion.
                                                  Reply With Quote
                                                    #25    
                                                  Old May 21st, 2017 (3:09 AM).
                                                  558741236 558741236 is offline
                                                     
                                                    Join Date: Apr 2017
                                                    Posts: 16
                                                    Quote:
                                                    Originally Posted by KDS View Post
                                                    You can do this. Use 0x0203CF64 for kyurem and 0x0203CF64+0x64 for Pokemon Expansion.
                                                    Er...I just try it, but it can succeed only once. After I revert the black or white kyurem, it can't fusion again. It always hints 'multiple fusions are not allowed.';-;
                                                    Reply With Quote
                                                    Reply

                                                    Quick Reply

                                                    Join the conversation!

                                                    Create an account to post a reply in this thread, participate in other discussions, and more!

                                                    Create a PokéCommunity Account

                                                    Sponsored Links
                                                    Thread Tools

                                                    Posting Rules
                                                    You may not post new threads
                                                    You may not post replies
                                                    You may not post attachments
                                                    You may not edit your posts

                                                    BB code is On
                                                    Smilies are On
                                                    [IMG] code is On
                                                    HTML code is Off

                                                    Forum Jump


                                                    All times are GMT -8. The time now is 5:26 PM.