The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Tutorial Pokémon Generation III ROM Hacking [Video Series]

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


Reply
 
Thread Tools
  #101    
Old July 14th, 2017 (6:48 AM).
Cheifed Out Gamer Cheifed Out Gamer is offline
     
    Join Date: Jun 2017
    Posts: 1
    I need help everytime I go to use advancemapping to make my hack ill use firered and it says that the file needs to be extracted or that its not a gba file plz help
    Reply With Quote

    Relevant Advertising!

      #102    
    Old July 24th, 2017 (8:00 AM).
    TWIST3DHYBR1D TWIST3DHYBR1D is offline
       
      Join Date: Jul 2017
      Posts: 2
      Great work on the tutorial series, Anthroyd, it is very comprehensive.

      I have a question. Is it possible to add another menu option to the START screen? I ask because I want to try to implement a Persona/Shin Megami Tensei style Fusion Mechanic and I don't know if that would be possible given the tools we have.
      Reply With Quote
        #103    
      Old September 5th, 2017 (12:26 PM).
      The_Architect's Avatar
      The_Architect The_Architect is offline
         
        Join Date: Sep 2017
        Location: Somewhere north of Johto
        Gender: Male
        Nature: Serious
        Posts: 1
        Anthroyd--

        THANK YOU for this. Your series has convinced me to start work on the hack I've been planning over lunch breaks for ages. Have a bump, keep the content rolling!
        Reply With Quote
          #104    
        Old September 10th, 2017 (6:20 AM).
        HuK HuK is offline
           
          Join Date: Jan 2017
          Posts: 27
          I can't use OWM because my rom base is 1460 patched version
          so F000000 has data on it....
          WHAT SHOULD I DO ?!
          Reply With Quote
            #105    
          Old December 23rd, 2017 (12:02 PM). Edited 4 Weeks Ago by metaloath.
          metaloath's Avatar
          metaloath metaloath is offline
          MetalOath
             
            Join Date: Dec 2017
            Location: Earth
            Gender: Male
            Nature: Bold
            Posts: 4
            Hello Anthroyd, I would like to thank you for the amazing quality of this series. This is what one might call a proper video tutorial series.
            UPDATE: I have Figured this out, see the edit.
            Everything between the two dashed lines below should be ignored if you are new to the scene, it is a wall of confusing nonsense.
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Spoiler:

            I would like to ask you something about the general use of XSE and AdvMap specifically with regards to map scripts (level scripts).
            (Small Background: this is my first attempt at rom hacking ever, and thus I have little to no experience with how roms are supposed to behave when edited like that).

            To begin, I will walk you through the steps in which to reproduce my problem.
            So here goes:
            1) Open PGE and load a fresh Pokemon FireRed v1.0 file.
            2) Launch AdvMap through PGE and navigate to the Map in which to do the edit. (In this case Prof. Oak's laboratory).
            3) Go to the Header Tab, press CTRL+H and look at the Map script offset (which includes the parts to be edited). (I am not sure if this is how it's supposed to be done)
            4) At this point I have tried to do two things in order to complete the edit:

            4a) Copy the Map script offset, go to PGE and open XSE, and then paste the Map script offset (168F7E) in the Offset box, toggle the Map Script button on, and finally decompile.
            Do some edits to the script (in this case I'm editing the text part of the Srings section), Debug to make sure there are no errors, and then Compile.
            Then return to AdvMap, save my work using the menu bar button and then test the result with VBA.
            This results in some interesting things. The Script will run correctly, but it seems to have damaged some other part of the rom (possibly overwritten some data or parts of another script),
            in this case resulting in Oak's individual person script being damaged. (I tried this multiple times, checking both scripts before and after compiling, and Oak's script seems to change right after the Map Script's compilation).
            Is this supposed to happen when recompiling one of the original scripts?

            4b) Copy the Map script offset, go to PGE and open XSE, do the pasting and decompiling, then edit the script to allocate it's pointers dynamically
            (In my mind, this is to create a new copy of the script somewhere that wouldn't intrude or overwrite any original data [I have no idea if that's how things actually work])
            by adding the "#dynamic 0x800000" to the beginning of the script and modifying all pointers to begin with @, removing most "0x"s and "0x8"s, except for variables and such, making it effectively a completely new script.
            Then compile it and copy it's offset to the Map script offset field and hit "save changes and reload map" in AdvMap (which automatically updates the Script Offset field in the non-advanced Header view),
            then save my work and test the hack. In this case, no other scripts seem to be affected, however, the newly compiled script runs smoothly all the way until it gets to the "END" line.
            At this point the game will freeze, while the music still runs normally, my inputs stop working completely, and everything seems to be static.
            (I have tried inserting msgbox commands in between the last lines of the main function to see where exactly the game is freezing, and It seems to be freezing right after displaying the msgbox before the END command,
            leaving me unable to even close the msgbox. Note: this happens when using No$GBA. When tested in VBA, I am stuck at the last message box before the end command, and after completing the normal text,
            it displays messages of giving the player a master ball then an ultra ball, then a great ball (all out of nowhere), then continues to spit out complete gibberish)

            Here are both scripts I have attempted, and the original:

            Original Script
            Spoiler:

            '---------------
            #org 0x168F7E
            #raw 0x3
            #raw pointer 0x8168F8E
            #raw 0x4
            #raw pointer 0x8168FE1
            #raw 0x2
            #raw pointer 0x8168FF0
            #raw 0x0

            '---------------
            #org 0x168FE1
            #raw word 0x4055
            #raw word 0x1
            #raw pointer 0x8168FEB
            #raw word 0x0

            '---------------
            #org 0x168FF0
            #raw word 0x4055
            #raw word 0x1
            #raw pointer 0x816923E
            #raw word 0x4055

            '---------------
            #org 0x168F8E
            setflag 0x2CF
            compare 0x4055 0x1
            if 0x1 call 0x8168FC6
            compare 0x4055 0x7
            if 0x1 call 0x8168FD5
            compare 0x4055 0x8
            if 0x1 call 0x8168FC0
            checkflag 0x247
            if 0x1 call 0x8168FBC
            end

            '---------------
            #org 0x168FEB
            spriteface 0xFF 0x2
            end

            '---------------
            #org 0x16923E
            lockall
            textcolor 0x0
            applymovement 0x4 0x81692B0
            waitmovement 0x0
            hidesprite 0x4
            movesprite2 0x4 0x6 0x3
            spritebehave 0x4 0x8
            clearflag 0x2B
            applymovement MOVE_PLAYER 0x81692B7
            waitmovement 0x0
            applymovement 0x8 0x81A75E9
            waitmovement 0x0
            clearflag 0x4001
            playsong2 0x0
            fadedefault
            msgbox 0x818DC94 MSG_KEEPOPEN '"[rival]: Gramps!\nI'm fed up with ..."
            closeonkeypress
            pause 0x3C
            msgbox 0x818DFBC MSG_KEEPOPEN '"OAK: [rival]?\nLet me think[.]\pOh..."
            closeonkeypress
            pause 0x1E
            applymovement 0x8 0x81692C0
            waitmovement 0x0
            msgbox 0x818DCB9 MSG_KEEPOPEN '"[rival]: Hey! Gramps! No fair!\nWh..."
            msgbox 0x818E0EA MSG_KEEPOPEN '"OAK: Be patient, [rival].\nYou can..."
            setvar 0x4055 0x2
            releaseall
            end

            '---------------
            #org 0x168FC6
            movesprite2 0x4 0x6 0xB
            spritebehave 0x4 0x7
            playsong2 0x12E
            return

            '---------------
            #org 0x168FD5
            movesprite2 0x4 0x6 0xB
            spritebehave 0x4 0x7
            return

            '---------------
            #org 0x168FC0
            setvar 0x4055 0x9
            return

            '---------------
            #org 0x168FBC
            setflag 0x24F
            return


            '---------
            ' Strings
            '---------
            #org 0x18DC94
            = [rival]: Gramps!\nI'm fed up with waiting!

            #org 0x18DFBC
            = OAK: [rival]?\nLet me think[.]\pOh, that's right, I told you to\ncome! Just wait!\pHere, [player].\pThere are three POKéMON here.\pHaha!\pThe POKéMON are held inside\nthese POKé BALLS.\pWhen I was young, I was a serious\nPOKéMON TRAINER.\pBut now, in my old age, I have\nonly these three left.\pYou can have one.\nGo on, choose!

            #org 0x18DCB9
            = [rival]: Hey! Gramps! No fair!\nWhat about me?

            #org 0x18E0EA
            = OAK: Be patient, [rival].\nYou can have one, too!


            '-----------
            ' Movements
            '-----------
            #org 0x1692B0
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org 0x1692B7
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org 0x1A75E9
            #raw 0x2E 'Face Up (Delayed)
            #raw 0xFE 'End of Movements

            #org 0x1692C0
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0xFE 'End of Movements


            4a Script (Only speech text under Strings edited)
            Spoiler:

            '---------------
            #org 0x168F7E
            #raw 0x3
            #raw pointer 0x8168F8E
            #raw 0x4
            #raw pointer 0x8168FE1
            #raw 0x2
            #raw pointer 0x8168FF0
            #raw 0x0

            '---------------
            #org 0x168FE1
            #raw word 0x4055
            #raw word 0x1
            #raw pointer 0x8168FEB
            #raw word 0x0

            '---------------
            #org 0x168FF0
            #raw word 0x4055
            #raw word 0x1
            #raw pointer 0x816923E
            #raw word 0x4055

            '---------------
            #org 0x168F8E
            setflag 0x2CF
            compare 0x4055 0x1
            if 0x1 call 0x8168FC6
            compare 0x4055 0x7
            if 0x1 call 0x8168FD5
            compare 0x4055 0x8
            if 0x1 call 0x8168FC0
            checkflag 0x247
            if 0x1 call 0x8168FBC
            end

            '---------------
            #org 0x168FEB
            spriteface 0xFF 0x2
            end

            '---------------
            #org 0x16923E
            lockall
            textcolor 0x0
            applymovement 0x4 0x81692B0
            waitmovement 0x0
            hidesprite 0x4
            movesprite2 0x4 0x6 0x3
            spritebehave 0x4 0x8
            clearflag 0x2B
            applymovement MOVE_PLAYER 0x81692B7
            waitmovement 0x0
            applymovement 0x8 0x81A75E9
            waitmovement 0x0
            clearflag 0x4001
            playsong2 0x0
            fadedefault
            msgbox 0x818DC94 MSG_KEEPOPEN '"[rival]: Gramps!\nI'm fed up with ..."
            closeonkeypress
            pause 0x3C
            msgbox 0x818DFBC MSG_KEEPOPEN '"OAK: [rival]?\nLet me think[.]\pOh..."
            closeonkeypress
            pause 0x1E
            applymovement 0x8 0x81692C0
            waitmovement 0x0
            msgbox 0x818DCB9 MSG_KEEPOPEN '"[rival]: Hey! Gramps! No fair!\nWh..."
            msgbox 0x818E0EA MSG_KEEPOPEN '"OAK: Be patient, [rival].\nYou can..."
            setvar 0x4055 0x2
            releaseall
            end

            '---------------
            #org 0x168FC6
            movesprite2 0x4 0x6 0xB
            spritebehave 0x4 0x7
            playsong2 0x12E
            return

            '---------------
            #org 0x168FD5
            movesprite2 0x4 0x6 0xB
            spritebehave 0x4 0x7
            return

            '---------------
            #org 0x168FC0
            setvar 0x4055 0x9
            return

            '---------------
            #org 0x168FBC
            setflag 0x24F
            return


            '---------
            ' Strings
            '---------
            #org 0x18DC94
            = [rival]: Gramps!\nI'm fed up with waiting!

            #org 0x18DFBC
            = OAK: Hmm? [rival]?\nWhy are you here already?\lI said for you to come back\llater...\lAh, whatever! Just wait there.\pLook, [player]! Do you see that ball on\nthe table?\lIt's called a POKé BALL. It holds\la POKéMON inside.\lYou may have it! Go on, take it!

            #org 0x18DCB9
            = [rival]: Hey! Gramps!\nWhat about me?

            #org 0x18E0EA
            = OAK: Be patient, [rival],\nI'll give you one later.


            '-----------
            ' Movements
            '-----------
            #org 0x1692B0
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org 0x1692B7
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org 0x1A75E9
            #raw 0x2E 'Face Up (Delayed)
            #raw 0xFE 'End of Movements

            #org 0x1692C0
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0xFE 'End of Movements


            4b New Script
            Spoiler:

            #dynamic 0x800000
            '---------------
            #org @168F7E
            #raw 0x3
            #raw pointer @168F8E
            #raw 0x4
            #raw pointer @168FE1
            #raw 0x2
            #raw pointer @168FF0
            #raw 0x0

            '---------------
            #org @168FE1
            #raw word 0x4055
            #raw word 0x1
            #raw pointer @168FEB
            #raw word 0x0

            '---------------
            #org @168FF0
            #raw word 0x4055
            #raw word 0x1
            #raw pointer @16923E
            #raw word 0x4055

            '---------------
            #org @168F8E
            setflag 0x2CF
            compare 0x4055 0x1
            if 0x1 call @168FC6
            compare 0x4055 0x7
            if 0x1 call @168FD5
            compare 0x4055 0x8
            if 0x1 call @168FC0
            checkflag 0x247
            if 0x1 call @168FBC
            end

            '---------------
            #org @168FEB
            spriteface 0xFF 0x2
            end

            '---------------
            #org @16923E
            lockall
            textcolor 0x0
            applymovement 0x4 @1692B0
            waitmovement 0x0
            hidesprite 0x4
            movesprite2 0x4 0x6 0x3
            spritebehave 0x4 0x8
            clearflag 0x2B
            applymovement MOVE_PLAYER @1692B7
            waitmovement 0x0
            applymovement 0x8 @1A75E9
            waitmovement 0x0
            clearflag 0x4001
            playsong2 0x0
            fadedefault
            msgbox @18DC94 MSG_KEEPOPEN '"[rival]: Gramps!\nI'm fed up with ..."
            closeonkeypress
            pause 0x3C
            msgbox @18DFBC MSG_KEEPOPEN '"OAK: Hmm? [rival]?\nWhy are you he..."
            closeonkeypress
            pause 0x1E
            applymovement 0x8 @1692C0
            waitmovement 0x0
            msgbox @18DCB9 MSG_KEEPOPEN '"[rival]: Hey! Gramps!\nWhat about ..."
            msgbox @18E0EA MSG_KEEPOPEN '"OAK: Be patient, [rival],\nI'll gi..."
            setvar 0x4055 0x2
            releaseall
            end

            '---------------
            #org @168FC6
            movesprite2 0x4 0x6 0xB
            spritebehave 0x4 0x7
            playsong2 0x12E
            return

            '---------------
            #org @168FD5
            movesprite2 0x4 0x6 0xB
            spritebehave 0x4 0x7
            return

            '---------------
            #org @168FC0
            setvar 0x4055 0x9
            return

            '---------------
            #org @168FBC
            setflag 0x24F
            return


            '---------
            ' Strings
            '---------
            #org @18DC94
            = [rival]: Gramps!\nI'm fed up with waiting!

            #org @18DFBC
            = OAK: Hmm? [rival]?\nWhy are you here already?\lI said for you to come back\llater...\lAh, whatever! Just wait there.\pLook, [player]! Do you see that ball on\nthe table?\lIt's called a POKé BALL. It holds\la POKéMON inside.\lYou may have it! Go on, take it!

            #org @18DCB9
            = [rival]: Hey! Gramps!\nWhat about me?

            #org @18E0EA
            = OAK: Be patient, [rival],\nI'll give you one later.


            '-----------
            ' Movements
            '-----------
            #org @1692B0
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org @1692B7
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org @1A75E9
            #raw 0x2E 'Face Up (Delayed)
            #raw 0xFE 'End of Movements

            #org @1692C0
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0xFE 'End of Movements


            So what exactly am I doing wrong?

            It would be great if you can elaborate more specifically on the header tab, the difference between the script offsets specified in the normal and advanced views, and most importantly the correct way to modify or replace them.

            Thank you for reading this if you did, and good luck with your studies!
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Edit:
            So as it turns out, I was attempting to modify a level script without understanding the scripts themselves or the User Interface under the Header tab in AdvMap.
            I was trying to modify the "Map Script Offset" script in the advanced header view (CTRL+H when in the header tab), when I should have been working with individual level scripts in the normal header view.
            For some reason, it was completely unclear to me how to navigate an individual Map's pre-existing scrips even though it turned out to be very simple.

            Anyways, to see the level scripts of any given map, look under the Header Tab, in the Map Script box, Under the "Script No:" text. There is a white box with 0 in it and two tiny arrow buttons pointing up and down.
            Using these buttons you can see all the map scripts attached to this map starting at script number 0, and going up. In my case, I've opened "PALLET TOWN (4.3)" which is Oak's lab.
            Script No:0 is a Type 03 level script, and clicking on the up arrow button twice reveals two additional map scripts of types 04 and 02, script numbers 1 and 2, respectively.
            The part which I wanted to edit was the text under the "Strings" section of the type 02 level script. You can see this part by copying the offset under "Script offset 2:", in my case (16923E),
            and pasting it in XSE in the "Offset" box and clicking the decompile button (the one to the right of this box). Taking a look under the "Strings" section,
            you can see the text that Oak says when you first enter the lab in the intro event where he gives you your first Pokemon.

            In order to perform an edit, you must do some heavy editing to the original script before attempting anything new, in order to avoid damaging any original data.
            Here is how i did it:
            Spoiler:
            #dynamic 0x800000
            '---------------
            #org @16923E
            lockall
            textcolor 0x0
            applymovement 0x4 @1692B0
            waitmovement 0x0
            hidesprite 0x4
            movesprite2 0x4 0x6 0x3
            spritebehave 0x4 0x8
            clearflag 0x2B
            applymovement MOVE_PLAYER @1692B7
            waitmovement 0x0
            applymovement 0x8 @1A75E9
            waitmovement 0x0
            clearflag 0x4001
            playsong2 0x0
            fadedefault
            msgbox @18DC94 MSG_KEEPOPEN '"[rival]: Gramps!\nI'm fed up with ..."
            closeonkeypress
            pause 0x3C
            msgbox @18DFBC MSG_KEEPOPEN '"OAK: [rival]?\nLet me think[.]\pOh..."
            closeonkeypress
            pause 0x1E
            applymovement 0x8 @1692C0
            waitmovement 0x0
            msgbox @18DCB9 MSG_KEEPOPEN '"[rival]: Hey! Gramps! No fair!\nWh..."
            msgbox @18E0EA MSG_KEEPOPEN '"OAK: Be patient, [rival].\nYou can..."
            setvar 0x4055 0x2
            releaseall
            end


            '---------
            ' Strings
            '---------
            #org @18DC94
            = [rival]: Gramps!\nI'm fed up with waiting!

            #org @18DFBC
            = OAK: Hmm? [rival]?\nWhy are you here already?\lI said for you to come back\llater...\lAh, whatever! Just wait there.\pLook, [player]! Do you see that ball on\nthe table?\lIt's called a POKé BALL. It holds\la POKéMON inside.\lYou may have it! Go on, take it!

            #org @18DCB9
            = [rival]: Hey! Gramps!\nWhat about me?

            #org @18E0EA
            = OAK: Be patient, [rival],\nI'll give you one later.


            '-----------
            ' Movements
            '-----------
            #org @1692B0
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org @1692B7
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org @1A75E9
            #raw 0x2E 'Face Up (Delayed)
            #raw 0xFE 'End of Movements

            #org @1692C0
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0xFE 'End of Movements

            Original Script:
            Spoiler:

            '---------------
            #org 0x16923E
            lockall
            textcolor 0x0
            applymovement 0x4 0x81692B0
            waitmovement 0x0
            hidesprite 0x4
            movesprite2 0x4 0x6 0x3
            spritebehave 0x4 0x8
            clearflag 0x2B
            applymovement MOVE_PLAYER 0x81692B7
            waitmovement 0x0
            applymovement 0x8 0x81A75E9
            waitmovement 0x0
            clearflag 0x4001
            playsong2 0x0
            fadedefault
            msgbox 0x818DC94 MSG_KEEPOPEN '"[rival]: Gramps!\nI'm fed up with ..."
            closeonkeypress
            pause 0x3C
            msgbox 0x818DFBC MSG_KEEPOPEN '"OAK: [rival]?\nLet me think[.]\pOh..."
            closeonkeypress
            pause 0x1E
            applymovement 0x8 0x81692C0
            waitmovement 0x0
            msgbox 0x818DCB9 MSG_KEEPOPEN '"[rival]: Hey! Gramps! No fair!\nWh..."
            msgbox 0x818E0EA MSG_KEEPOPEN '"OAK: Be patient, [rival].\nYou can..."
            setvar 0x4055 0x2
            releaseall
            end


            '---------
            ' Strings
            '---------
            #org 0x18DC94
            = [rival]: Gramps!\nI'm fed up with waiting!

            #org 0x18DFBC
            = OAK: [rival]?\nLet me think[.]\pOh, that's right, I told you to\ncome! Just wait!\pHere, [player].\pThere are three POKéMON here.\pHaha!\pThe POKéMON are held inside\nthese POKé BALLS.\pWhen I was young, I was a serious\nPOKéMON TRAINER.\pBut now, in my old age, I have\nonly these three left.\pYou can have one.\nGo on, choose!

            #org 0x18DCB9
            = [rival]: Hey! Gramps! No fair!\nWhat about me?

            #org 0x18E0EA
            = OAK: Be patient, [rival].\nYou can have one, too!


            '-----------
            ' Movements
            '-----------
            #org 0x1692B0
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org 0x1692B7
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0x11 'Step Up (Normal)
            #raw 0xFE 'End of Movements

            #org 0x1A75E9
            #raw 0x2E 'Face Up (Delayed)
            #raw 0xFE 'End of Movements

            #org 0x1692C0
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0x26 'Step on the Spot Up (Faster)
            #raw 0xFE 'End of Movements

            As you can see, I replaced all "#org 0x" with "#org @", and parts where functions are called like "applymovement MOVE_PLAYER 0x8" with "applymovement MOVE_PLAYER @".
            Just be careful not to replace things like variables and such. In short, If you can't read and understand the script, you shouldn't be doing this yet.
            So I basically changed all pointers into dynamic pointers and added "#dynamic 0x800000" to the beginning of the script such that it will compile as a completely new script.
            This is done so that when you compile the script, It wouldn't overwrite the original script, which can result in some weird things happening in the game, potentially breaking it.
            Now you may change whatever you want to change,
            hit the compile button, and copy your new script's offset. Going back to AdvMap, go back to your level script, again, in my case the type 02 level script in Oak's lab,
            and you replace the script's old offset with the new one (under "Script offset 2:" for type 02 level scripts) and hit save map scripts, and then save the changes to the rom (CTRL + S). And that should be it.
            If I have made any mistakes explaining this, please do inform me.

            Note: the rest of this event's scripts are normal Person events and scripts found under the events section of AdvMap.
            Reply With Quote
              #106    
            Old February 15th, 2018 (8:46 AM).
            Anthroyd's Avatar
            Anthroyd Anthroyd is offline
               
              Join Date: May 2016
              Location: United States
              Age: 20
              Gender: Male
              Posts: 124
              I'm updating this thread to alert that the twenty-sixth tutorial has been completed and released!
              __________________
              Pokémon Generation III ROM Hacking

              Video Series

              Reply With Quote
                #107    
              Old February 17th, 2018 (9:07 AM).
              metaloath's Avatar
              metaloath metaloath is offline
              MetalOath
                 
                Join Date: Dec 2017
                Location: Earth
                Gender: Male
                Nature: Bold
                Posts: 4
                Quote:
                Originally Posted by Anthroyd View Post
                I'm updating this thread to alert that the twenty-sixth tutorial has been completed and released!
                Thank you.
                Reply With Quote
                  #108    
                Old March 21st, 2018 (9:38 AM).
                Vladmir_Fox Vladmir_Fox is offline
                   
                  Join Date: Jan 2013
                  Gender: Male
                  Posts: 42
                  This series of videos has been a great help and I thank you for putting in the effort to make it. 10/10
                  Reply With Quote
                    #109    
                  Old March 21st, 2018 (11:11 AM).
                  Anthroyd's Avatar
                  Anthroyd Anthroyd is offline
                     
                    Join Date: May 2016
                    Location: United States
                    Age: 20
                    Gender: Male
                    Posts: 124
                    Quote:
                    Originally Posted by Vladmir_Fox View Post
                    This series of videos has been a great help and I thank you for putting in the effort to make it. 10/10
                    Thanks so much. :)
                    __________________
                    Pokémon Generation III ROM Hacking

                    Video Series

                    Reply With Quote
                      #110    
                    Old 4 Weeks Ago (2:49 PM).
                    Anthroyd's Avatar
                    Anthroyd Anthroyd is offline
                       
                      Join Date: May 2016
                      Location: United States
                      Age: 20
                      Gender: Male
                      Posts: 124
                      I'm updating this thread to alert that the twenty-seventh tutorial has been completed and released!
                      __________________
                      Pokémon Generation III ROM Hacking

                      Video Series

                      Reply With Quote
                        #111    
                      Old 1 Week Ago (8:04 AM).
                      Alan Flygon's Avatar
                      Alan Flygon Alan Flygon is offline
                      A new GUY!!!
                         
                        Join Date: May 2018
                        Location: INDIA, KERALA
                        Gender: Male
                        Nature: Gentle
                        Posts: 8
                        I love this tutorial
                        I am hoping for the next series
                        Reply With Quote
                          #112    
                        Old 5 Days Ago (8:52 PM).
                        Esarty Esarty is offline
                           
                          Join Date: Nov 2017
                          Posts: 6
                          Might've been covered in a video and I missed it but, what about editing stuff like game corner prizes? I've found tools that take care of the majority of stuff that I'm working on but nothing on this particular thing. I thought it'd be similar to the mart but it's a bit more complicated.
                          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 12:04 AM.