Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

TrollandToad.com
Reply
 
Thread Tools
  #1    
Old January 2nd, 2011 (2:49 PM). Edited April 24th, 2011 by Jambo51.
Jambo51's Avatar
Jambo51 Jambo51 is offline
Glory To Arstotzka
     
    Join Date: Jun 2009
    Gender: Male
    Nature: Quiet
    Posts: 732
    As you will all know by now, certain trainers in FireRed have a pre-battle mugshot which is displayed as the music starts to play. What I want to do is have the game apply this pre-battle mugshot to any given trainer with any given picture.

    AS ALWAYS, THESE ROUTINES ARE ONLY FOR BPRE 1.0!

    The following routines give us full control over whether or not the battle will have a mugshot and indeed what pallet the game will load. This does require you to create a custom table with custom pallets for proper full customisation, but is fully compatible with the game's original pallets.

    First thing's first, the game is quite clever with these pallets. It only uses the first 10 colours (including the transparent one) from the rom, and overwrites the rest with gender appropriate background colours for the player. It does this while the pallet is stored in a temporary location. This location is dynamic, so I haven't quite nailed down how it's obtained yet, but it's not important.

    First, the part which allows it to be activated:
    Code:
    .text
    .align 2
    .thumb
    .thumb_func
    .global mugshothackone
    main:
     ldrb r5, [r4, #0x3]
     lsl r5, r5, #0x18
     lsr r5, r5, #0x18
     cmp r5, #0x0
     beq normalchecks
     mov r1, #0x5A
     ldr r5, returnone
     bx r5
    normalchecks: cmp r1, #0x57
     bne later
     add r1, r2, #0x0
     mov r0, #0xCD
     ldr r5, returntwo
     bx r5
    later: ldr r5, returnone
     bx r5
    .align
    returntwo: .word 0x0807FFA5
    returnone: .word 0x08080009
    This first routine checks the trainerbattle's script for a byte which is otherwise unused (only the case in FireRed!). If this byte is 0x0, then it'll skip the new procedure and continue to load as normal (ie, it will still have mugshots for the elite 4 and the champion). If it is not 0x0, it will "pretend" to be champion class and load as if it was a champion battle. Works under the circumstances.

    Code:
    .text
    .align 2
    .thumb
    .thumb_func
    .global mugshothacktwo
    main:
     cmp r0, #0x87
     beq there
     cmp r0, #0x88
     beq there
     ldr r4, ramoffset
     ldrh r4, [r4, #0x0]
     lsl r5, r4, #0x2
     add r5, r4, r5
     lsl r4, r5, #0x3
     ldr r5, place
     ldr r5, [r5, #0x0]
     add r0, r4, r5
     ldrb r0, [r0, #0x3]
    there: add r4, r0, #0x0
     add r5, r1, #0x0
     add r6, r2, #0x0
     mov r9, r3
     ldr r7, [sp, #0x34]
     ldr r0, return
     bx r0
    .align
    place:  .word 0x08044028
    ramoffset: .word 0x020386AE
    return:  .word 0x0808386D
    This routine changes the sprite which is loaded to the sprite which is used in the actual trainerbattle. You CANNOT use the player's sprites as opponents using their standard slots, as if it was possible, it would interfere with the loading of the player's sprite in the mugshot sequence. But every other sprite is useable here. Note that it has support for extended trainerbattle tables too, as it stands. No need to worry about changing pointers in this routine!

    Code:
    .text
    .align 2
    .thumb
    .thumb_func
    .global mugshotpallethack
    main:
     ldr r1, ramoffset
     ldrh r1, [r1, #0x0]
     lsl r0, r1, #0x2
     add r0, r0, r1
     lsl r1, r0, #0x3
     ldr r0, trainertable
     ldr r0, [r0, #0x0]
     add r1, r0, r1
     ldrb r1, [r1, #0x1]
     cmp r1, #0x5A
     beq oldway
     cmp r1, #0x57
     beq oldway
     ldr r1, ramoffset
     ldrb r1, [r1, #0x3]
     sub r1, #0x1
     lsl r1, r1, #0x2
     ldr r0, table2
     add r1, r1, r0
     ldr r0, [r1, #0x0]
     b back
    oldway: ldr r1, table
     mov r2, r8
     mov r3, #0x26
     ldrh r0, [r2, r3]
     lsl r0, r0, #0x2
     add r0, r0, r1
     ldr r0, [r0, #0x0]
    back: ldr r1, return
     bx r1
    .align
    ramoffset: .word 0x020386AE
    trainertable: .word 0x08044028
    table:  .word 0x083FA740
    table2:  .word 0x08FFFFFF
    return:  .word 0x080D28D5
    This final routine allows the hacker to change the background pallet of the mugshot. It uses the same byte as the activation to determine which pallet it should load, and it will load the same slot from table2. Ie, if you set the byte as 0x1, it will load the first slot on the table. Table2 does not exist within the rom, but it is simply a table of pointers to the pallets to use. So nothing horrendously complicated. Create your table, with pointers to valid pallets, and change the 0x08FFFFFF pointer to your new table.

    These routines insert locations are as follows:
    Musghot Hack One:
    Insert at 0x0807FF90:
    004A1047XXXXXX08

    Mugshot Hack Two:
    Insert at 0x08083862:
    014C20470000XXXXXX08

    Mugshot Pallet Hack:
    Insert at 0x080D28C6:
    014908470000XXXXXX08

    As always, the XXXXXX08s represent your pointer to the routine's insert location plus 1 for thumb mode.
    Finally, change the byte at 0x080801F5 to 0x78.

    Now, once these routines are all present and correct, and you have some pallets set up, all you need to do is change how you write a script which requires a mugshot trainerbattle. This is NOT complicated compared to the set up, so here's hoping you'll be able to use it well.

    Code:
    trainerbattle [TYPE - BYTE] [TRAINER ID - HALF WORD] [MUGSHOT PALLET - BYTE AND 0x0 - BYTE] [MESSAGES]
    What that means, if it's unclear, is that for pallet 1, you'd set the middle h-word as 0x100, pallet 2, 0x200 etc. This does NOT use any extra space, as the 0x0 (of the original trainerbattle) always stands for a half-word.

    The game "Frankensteins" the pallets, glueing the chosen pallet for the battle with the relevant gender pallet for the player, then stores it to the actual pallet slot at 0x050001E0.

    This covers just about everything related to the hack, except the pallet editing. Please note, these pallets are purely for the background of the mugshot. The overlayed sprites' pallets are loaded separately.
    The pallets (for the in game mugshots) are at:
    0x3FA660 (Agatha)
    0x3FA680 (Bruno)
    0x3FA6A0 (Lorelei)
    0x3FA6C0 (Lance)
    0x3FA6E0 (Gary Champion)
    0x3FA700 (Male Player BG)
    0x3FA720 (Female Player BG)

    To replicate these pallets, and make them work, I recommend looking at them in APE, and messing around with them until you get the desired pallet.
    __________________
    Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
    Reply With Quote

    Relevant Advertising!

      #2    
    Old July 24th, 2011 (7:30 PM).
    Teh Blazer's Avatar
    Teh Blazer Teh Blazer is offline
    Divider of Zero
       
      Join Date: Feb 2009
      Location: 'MERICA
      Age: 22
      Gender: Male
      Nature: Relaxed
      Posts: 772
      I probably sound really stupid right now because the answer could be so simple, but how could we load the sprite so that it looks like the more recent ones with the faces (ex:
      Spoiler:
      )
      but not replace the actual trainer sprites (ex:
      Spoiler:
      ?
      __________________
      Being a hero is overrated anyways
      Reply With Quote
        #3    
      Old July 25th, 2011 (4:06 AM).
      TheDarkShark TheDarkShark is offline
      Metal Headed Hacker
         
        Join Date: May 2010
        Location: Germany
        Gender: Male
        Nature: Calm
        Posts: 56
        When I'm on my own PC again, I'm gonna take a look into porting this over to BPRD (Firered German). But for now I only gotta say 'Awesome work, dude! I'm sure gonna use this!'
        __________________
        There are two things every Rom-Hacker should learn:
        1. Don't give away everything you know!

        Reply With Quote
          #4    
        Old July 25th, 2011 (11:28 AM).
        Jambo51's Avatar
        Jambo51 Jambo51 is offline
        Glory To Arstotzka
           
          Join Date: Jun 2009
          Gender: Male
          Nature: Quiet
          Posts: 732
          Quote:
          Originally Posted by Teh Blazer View Post
          I probably sound really stupid right now because the answer could be so simple, but how could we load the sprite so that it looks like the more recent ones with the faces (ex:
          Spoiler:
          )
          but not replace the actual trainer sprites (ex:
          Spoiler:
          ?
          As of right now, no. We don't understand the code well enough to do it yet. However, if I can find the part of the code which scales up the sprite, and make it so that it's selectively called, (or not called at all) we could simply replace the sprite table pointer with a new table which has the mugshots on it.

          Quote:
          Originally Posted by TheDarkShark View Post
          When I'm on my own PC again, I'm gonna take a look into porting this over to BPRD (Firered German). But for now I only gotta say 'Awesome work, dude! I'm sure gonna use this!'
          So long as you credit me with the original routines, feel free to do so!
          __________________
          Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
          Reply With Quote
            #5    
          Old July 25th, 2011 (6:34 PM).
          Chaos Rush's Avatar
          Chaos Rush Chaos Rush is offline
             
            Join Date: May 2007
            Gender: Male
            Posts: 1,303
            I'm just curious, but what parts of the ASM code needs to be changed in order for it to work with Pokemon Ruby?
            __________________
            Reply With Quote
              #6    
            Old July 25th, 2011 (7:24 PM).
            DuoRyan's Avatar
            DuoRyan DuoRyan is offline
            Hack'in as usual, it seem.
               
              Join Date: Nov 2009
              Location: Somewhere.
              Age: 20
              Gender: Male
              Nature: Calm
              Posts: 336
              What do you mean when we can't used the player sprite as a opponent?
              __________________
              Pokemon Treasure.
              Progress: Planning.
              Reply With Quote
                #7    
              Old July 26th, 2011 (4:53 AM).
              Jambo51's Avatar
              Jambo51 Jambo51 is offline
              Glory To Arstotzka
                 
                Join Date: Jun 2009
                Gender: Male
                Nature: Quiet
                Posts: 732
                Quote:
                Originally Posted by Chaos Rush View Post
                I'm just curious, but what parts of the ASM code needs to be changed in order for it to work with Pokemon Ruby?
                Probably very little of it. You would need to find the parts of Ruby's code which are the equivalents of the parts I mentioned to hack in FR, change registers to work, and pointers. That's dependant on the actual mugshot code being in Ruby, which I think it is, IIRC.

                Quote:
                Originally Posted by DuoRyan View Post
                What do you mean when we can't used the player sprite as a opponent?
                The mugshot won't work with either of the player sprites, because if I had left that option open, then the game would have overwritten the player's sprite in the mugshot. I could probably do a minor rewrite to let the game support them though.
                __________________
                Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
                Reply With Quote
                  #8    
                Old August 25th, 2011 (1:41 PM).
                HackChu's Avatar
                HackChu HackChu is offline
                I need a haircut...
                • Silver Tier
                 
                Join Date: Jan 2007
                Location: Bankrupt Amerika
                Age: 24
                Gender: Male
                Nature: Modest
                Posts: 673
                Be nice to do this to the gym leaders and boss rocket.
                __________________
                Join us!

                My 'learning how to combine battle scripts' thread:
                http://www.pokecommunity.com/showthread.php?t=183001

                SoulSilver FC:1162 1864 5409
                Name: Ethan

                Black FC: 2666 1354 4379
                Name: Ashton

                White 2 FC: 1120 8065 3049
                Name: Nate

                3DS Friend Code: 1349-4646-2412
                Name: tysonrss
                Reply With Quote
                  #9    
                Old September 30th, 2011 (3:55 PM).
                shinyabsol1's Avatar
                shinyabsol1 shinyabsol1 is offline
                Pokemon DarkJasper!?
                   
                  Join Date: Aug 2010
                  Gender: Male
                  Nature: Calm
                  Posts: 330
                  Quote:
                  Originally Posted by Jambo51
                  This final routine allows the hacker to change the background pallet of the mugshot. It uses the same byte as the activation to determine which pallet it should load, and it will load the same slot from table2. Ie, if you set the byte as 0x1, it will load the first slot on the table. Table2 does not exist within the rom, but it is simply a table of pointers to the pallets to use. So nothing horrendously complicated. Create your table, with pointers to valid pallets, and change the 0x08FFFFFF pointer to your new table.
                  I've got this all working except for this part, because I don't understand what I am supposed to do. Specifically, the part in bold. Can someone please help me get this right?

                  I've learned a lot of things since I started rom hacking, but creating a new table is not one of them...
                  Reply With Quote
                    #10    
                  Old September 30th, 2011 (4:55 PM).
                  Full Metal's Avatar
                  Full Metal Full Metal is offline
                  C(++) Developer.
                  • Silver Tier
                   
                  Join Date: Jan 2008
                  Location: In my mind.
                  Age: 22
                  Gender: Male
                  Nature: Timid
                  Posts: 806
                  A table with pointers is simply a sequence of pointers.
                  Eg:
                  080102030801030408010405
                  ^ And so forth( Of course, fill in with actual pointers. That tends to work better )
                  You can put it anywhere you want, and whatever the 0x08FFFFFF pointer is, change that to repoint to your table. ( I would elaborate more, but I haven't actually red this tutorial )
                  __________________

                  ★ full metal.

                  I like to push it,
                  and push it,
                  until my luck is over.
                  Reply With Quote
                    #11    
                  Old September 30th, 2011 (7:47 PM).
                  shinyabsol1's Avatar
                  shinyabsol1 shinyabsol1 is offline
                  Pokemon DarkJasper!?
                     
                    Join Date: Aug 2010
                    Gender: Male
                    Nature: Calm
                    Posts: 330
                    Quote:
                    Originally Posted by Full Metal
                    A table with pointers is simply a sequence of pointers.
                    Eg:
                    080102030801030408010405
                    ^ And so forth( Of course, fill in with actual pointers. That tends to work better )
                    You can put it anywhere you want, and whatever the 0x08FFFFFF pointer is, change that to repoint to your table. ( I would elaborate more, but I haven't actually red this tutorial )
                    Thanks for helping out. Now I understand how pointer tables work, but I'm still having a problem. It did work once, but the game crashed the next time I tried to load the save file. I think that what I'm doing wrong has to do with the 0x8FFFFFF pointer. When the tut says to "change the 0x08FFFFFF pointer to your new table" does that mean to change it in the ASM code

                    Here:

                    Code:
                    ...
                    table2:  .word 0x08FFFFFF
                    ...
                    or in the ROM itself? Also, what is the difference between the 08 being at the beginning of a pointer rather than the end?

                    Thanks again.
                    Reply With Quote
                      #12    
                    Old October 1st, 2011 (1:39 AM).
                    Jambo51's Avatar
                    Jambo51 Jambo51 is offline
                    Glory To Arstotzka
                       
                      Join Date: Jun 2009
                      Gender: Male
                      Nature: Quiet
                      Posts: 732
                      Hello, my friend. A table (in Pokemon ROM hacking) is a list of data stored in the rom in a consistent format, usually used when there are multiple possible items which can use a piece of data.

                      In this case, you want to point the 0x08FFFFFF (either in the ASM file or in the ROM, just remember that doing it in the ROM means you need to reverse hex the pointer, while if you do it in the ASM file, it will be done automatically by the compiler) to some aligned free space (that is, the pointer ends with a 0, 4, 8 or C) and fill in the entries of the table with little endian pointers to the pallets which are to be used in the background of the mugshot.

                      Little Endian = Reverse Hex.

                      That should help you!
                      __________________
                      Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
                      Reply With Quote
                        #13    
                      Old October 1st, 2011 (2:05 PM).
                      shinyabsol1's Avatar
                      shinyabsol1 shinyabsol1 is offline
                      Pokemon DarkJasper!?
                         
                        Join Date: Aug 2010
                        Gender: Male
                        Nature: Calm
                        Posts: 330
                        Quote:
                        Originally Posted by Jambo51
                        Hello, my friend. A table (in Pokemon ROM hacking) is a list of data stored in the rom in a consistent format, usually used when there are multiple possible items which can use a piece of data.

                        In this case, you want to point the 0x08FFFFFF (either in the ASM file or in the ROM, just remember that doing it in the ROM means you need to reverse hex the pointer, while if you do it in the ASM file, it will be done automatically by the compiler) to some aligned free space (that is, the pointer ends with a 0, 4, 8 or C) and fill in the entries of the table with little endian pointers to the pallets which are to be used in the background of the mugshot.

                        Little Endian = Reverse Hex.

                        That should help you!
                        Thanks Jambo51. Now I understand what I was doing wrong and it works. Nice work figuring out how to do this, by the way.
                        Reply With Quote
                          #14    
                        Old December 11th, 2011 (5:58 AM).
                        Hackrex Hackrex is offline
                           
                          Join Date: Aug 2007
                          Gender:
                          Posts: 35
                          well what should I say....
                          In the firered english rom it works without any problems. In the german rom it doesn´t work. Of course I have researched and changed (in the scripts) the offsets in/for the german rom. I am really sure that this are the right offsets. But it doesn´t work. I think there is a small different between the german and the english rom. Can you please try it on a german rom and say what should I change? I can give you the researched offsets. I am sure that they are right. But it doesn´t work. Maybe the could be wrong....

                          Well I currently don´t know where I have my document. If you want the offsets and test (maybe make it work) for the german rom please PM me (or send me a PM, I don´t know how I have to write it in english).
                          __________________
                          Temporarily not available
                          Reply With Quote
                            #15    
                          Old May 13th, 2012 (12:37 AM). Edited May 13th, 2012 by Haru~.
                          Haru~'s Avatar
                          Haru~ Haru~ is offline
                          Can't resist the chubbiness :3
                             
                            Join Date: Mar 2012
                            Gender: Female
                            Nature: Modest
                            Posts: 16
                            I noticed that this doesn't seem to work when the trainerbattle type is 0x9 (the one with Prof. Oak's speech in-battle) even if the half-word is 0x100 and above.

                            Edit: Nevermind. I just made the routine make a flag check and so on and so forth...
                            This hack is really amazing, I love it!
                            Reply With Quote
                              #16    
                            Old September 2nd, 2012 (3:55 AM).
                            LugiaMZ's Avatar
                            LugiaMZ LugiaMZ is offline
                               
                              Join Date: Dec 2011
                              Gender: Male
                              Posts: 74
                              Hello everyone, I have a question for this theard. Routine of this theard is for add a VS screen to any trainer?

                              Thanks.
                              Reply With Quote
                                #17    
                              Old September 4th, 2012 (7:10 AM).
                              LugiaMZ's Avatar
                              LugiaMZ LugiaMZ is offline
                                 
                                Join Date: Dec 2011
                                Gender: Male
                                Posts: 74
                                Quote:
                                Originally Posted by shinyabsol1 View Post
                                Yes.

                                ------------------------
                                For now I don't know how to make a script to call mugshot, I already inserted routine, can you write a example script to me and explain the command? Another question, the 3rd background pallet routine I changed the 0x08FFFFFF to 0x08800000, so I need to write a pointer table? If that how to write the table to load my pallet? Or can directly change 0x08FFFFFF to my pallet offset?

                                Thanks.
                                Reply With Quote
                                  #18    
                                Old September 12th, 2012 (4:50 PM).
                                shinyabsol1's Avatar
                                shinyabsol1 shinyabsol1 is offline
                                Pokemon DarkJasper!?
                                   
                                  Join Date: Aug 2010
                                  Gender: Male
                                  Nature: Calm
                                  Posts: 330
                                  Quote:
                                  Originally Posted by LugiaMZ
                                  For now I don't know how to make a script to call mugshot, I already inserted routine, can you write a example script to me and explain the command?

                                  Thanks.
                                  All you have to do is change one thing in the trainerbattle command:

                                  Code:
                                  trainerbattle 0x[battle type] 0x[Trainer ID] 0x0 [pointers to messages]
                                  That's the part in bold. Instead of that byte being 0x0 as it usually is, change it to 0x100, 0x200, 0x300, etc... depending on the slot of the palette you want to use in your table. So 0x100 would be the first palette...and so on.

                                  Quote:
                                  Another question, the 3rd background pallet routine I changed the 0x08FFFFFF to 0x08800000, so I need to write a pointer table? If that how to write the table to load my pallet? Or can directly change 0x08FFFFFF to my pallet offset?
                                  If you have put 800000 in place of the Fs, then the ASM will think that your table is at 0x800000. So starting at that offset, put the pointers to your palettes.
                                  Reply With Quote
                                    #19    
                                  Old September 15th, 2012 (1:51 AM).
                                  LugiaMZ's Avatar
                                  LugiaMZ LugiaMZ is offline
                                     
                                    Join Date: Dec 2011
                                    Gender: Male
                                    Posts: 74
                                    Quote:
                                    Originally Posted by shinyabsol1 View Post
                                    All you have to do is change one thing in the trainerbattle command:

                                    Code:
                                    trainerbattle 0x[battle type] 0x[Trainer ID] 0x0 [pointers to messages]
                                    That's the part in bold. Instead of that byte being 0x0 as it usually is, change it to 0x100, 0x200, 0x300, etc... depending on the slot of the palette you want to use in your table. So 0x100 would be the first palette...and so on.



                                    If you have put 800000 in place of the Fs, then the ASM will think that your table is at 0x800000. So starting at that offset, put the pointers to your palettes.

                                    Thanks for your help! Now I can add mugshot to my gym leader or some important character, thanks you very much.
                                    Reply With Quote
                                      #20    
                                    Old October 6th, 2012 (3:55 AM).
                                    tajaros's Avatar
                                    tajaros tajaros is offline
                                    Hi I'm dawg
                                       
                                      Join Date: Apr 2012
                                      Location: Philippines
                                      Age: 18
                                      Gender: Male
                                      Nature: Timid
                                      Posts: 857
                                      How can you make sprites appear in the mugshots, do they have to be included in the table as well? :/ Repoint something? And can you make custom sprites appear?

                                      Well, I'm gonna try this and see what happens...
                                      __________________
                                      Reply With Quote
                                        #21    
                                      Old October 6th, 2012 (4:09 AM).
                                      Jambo51's Avatar
                                      Jambo51 Jambo51 is offline
                                      Glory To Arstotzka
                                         
                                        Join Date: Jun 2009
                                        Gender: Male
                                        Nature: Quiet
                                        Posts: 732
                                        Quote:
                                        Originally Posted by tajaros View Post
                                        How can you make sprites appear in the mugshots, do they have to be included in the table as well? :/ Repoint something? And can you make custom sprites appear?

                                        Well, I'm gonna try this and see what happens...
                                        It automatically uses the sprite assigned to the trainer you are battling. So if you're battling Misty, it'll display Misty's sprite in the mugshot. The exception to that is when the trainer uses the hero/heroine sprite, if it uses either of those sprites, it loads Gary's sprite.
                                        __________________
                                        Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
                                        Reply With Quote
                                          #22    
                                        Old October 6th, 2012 (4:11 AM).
                                        tajaros's Avatar
                                        tajaros tajaros is offline
                                        Hi I'm dawg
                                           
                                          Join Date: Apr 2012
                                          Location: Philippines
                                          Age: 18
                                          Gender: Male
                                          Nature: Timid
                                          Posts: 857
                                          Quote:
                                          Originally Posted by Jambo51 View Post
                                          It automatically uses the sprite assigned to the trainer you are battling. So if you're barreling Misty, it'll display Misty's sprite in the mugshot.

                                          Ohhh, but what about the palletes? :/
                                          __________________
                                          Reply With Quote
                                            #23    
                                          Old October 6th, 2012 (4:21 AM).
                                          Jambo51's Avatar
                                          Jambo51 Jambo51 is offline
                                          Glory To Arstotzka
                                             
                                            Join Date: Jun 2009
                                            Gender: Male
                                            Nature: Quiet
                                            Posts: 732
                                            Quote:
                                            Originally Posted by tajaros View Post
                                            Ohhh, but what about the palletes? :/
                                            Read this very helpful post by shinyabsol1, it explains it rather well.

                                            Quote:
                                            Originally Posted by shinyabsol1 View Post
                                            All you have to do is change one thing in the trainerbattle command:

                                            Code:
                                            trainerbattle 0x[battle type] 0x[Trainer ID] 0x0 [pointers to messages]
                                            That's the part in bold. Instead of that byte being 0x0 as it usually is, change it to 0x100, 0x200, 0x300, etc... depending on the slot of the palette you want to use in your table. So 0x100 would be the first palette...and so on.



                                            If you have put 800000 in place of the Fs, then the ASM will think that your table is at 0x800000. So starting at that offset, put the pointers to your palettes.
                                            __________________
                                            Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
                                            Reply With Quote
                                              #24    
                                            Old October 8th, 2012 (11:33 PM).
                                            tajaros's Avatar
                                            tajaros tajaros is offline
                                            Hi I'm dawg
                                               
                                              Join Date: Apr 2012
                                              Location: Philippines
                                              Age: 18
                                              Gender: Male
                                              Nature: Timid
                                              Posts: 857
                                              Quote:
                                              Originally Posted by Jambo51 View Post
                                              Read this very helpful post by shinyabsol1, it explains it rather well.
                                              OMG, I just made this work thanks for this Jambo51!
                                              __________________
                                              Reply With Quote
                                                #25    
                                              Old January 14th, 2013 (7:56 PM). Edited January 14th, 2013 by Omega Zero.
                                              Omega Zero's Avatar
                                              Omega Zero Omega Zero is offline
                                              Is back...
                                              • Gold Tier
                                               
                                              Join Date: Dec 2009
                                              Location: I'm always living aren't I?
                                              Age: 19
                                              Gender: Male
                                              Nature: Relaxed
                                              Posts: 445
                                              Hey, how do i get this to work with the Prof.oak dialogue version, the first battle with Blue?
                                              0x9 0x? 0x100 doesn't work
                                              __________________
                                              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 1:29 PM.