The PokéCommunity Forums Fan Games ROM Hacking
[ARCHIVE] Simple Questions (SEARCH BEFORE ASKING A QUESTION)

ROM Hacking Need a helping hand? You can get help on any ROM Hacking-related problems or questions you have here.


Closed Thread
 
Thread Tools
  #22176    
Old August 4th, 2012 (3:41 AM).
redriders180's Avatar
redriders180 redriders180 is offline
Mastermind of Pokemon Glazed
     
    Join Date: Jun 2010
    Location: Path of Victory, Tunod
    Gender: Male
    Nature: Quirky
    Posts: 540
    Quote:
    Originally Posted by Zupplu View Post
    Hey guys, I am completely new to ROM hacking, and I am wondering what are the best programs for hacking DS and GBA games? Thanks :).
    As for the DS games, I believe the best program out there is something called PPRE, or Project Pokemon's ROM editor. It functions for the DS games similarly to how Gamer2020's Pokemon Game Editor functions for the GBA games; As a sort of tool that calls other tools. It's a little clunky, since its only at version 0.14, but it seems to get the job done.

    I'm only a noob at DS ROM hacking myself (I just started trying it a few days ago), so my info might be somewhat outdated. I believe that most aspects of the games are editable, but maps seem to be one of the harder, or least documented, aspect of hacking the DS Games. Other useful tools I've seen so far are PokeTex, which edits OWs (in a much more hard-to-understand way, nothing like XSE or Overworld Editor RE), and a program to look at .narc files, which are all the files inside of a DS game (I have NDS Editor).

    This meager amount of info I've only gained from poking around here, so Google is your friend in this case. While it might not turn up as many hits as looking up info on GBA tutorials and tools, someone's probably done a fair amount of investigation on whatever you need (as such, the most-known about games are probably D/P, and the least-known about are probably B2/W2).

    Good Luck!

    Edit: PPRE works best for D/P/Pt, although a couple of its tools work with HG/SS.
    __________________


    I think I'm done with ROM hacking. I'll still pop in and visit, though.



    Relevant Advertising!

      #22177    
    Old August 4th, 2012 (3:51 AM).
    Ω Ruby and α Sapphire's Avatar
    Ω Ruby and α Sapphire Ω Ruby and α Sapphire is offline
    Hope will never die! ~Lucina
       
      Join Date: Apr 2011
      Location: Victoria, Australia
      Gender: Male
      Nature: Quiet
      Posts: 735
      Quote:
      Originally Posted by redriders180 View Post
      As for the DS games, I believe the best program out there is something called PPRE, or Project Pokemon's ROM editor. It functions for the DS games similarly to how Gamer2020's Pokemon Game Editor functions for the GBA games; As a sort of tool that calls other tools. It's a little clunky, since its only at version 0.14, but it seems to get the job done.

      I'm only a noob at DS ROM hacking myself (I just started trying it a few days ago), so my info might be somewhat outdated. I believe that most aspects of the games are editable, but maps seem to be one of the harder, or least documented, aspect of hacking the DS Games. Other useful tools I've seen so far are PokeTex, which edits OWs (in a much more hard-to-understand way, nothing like XSE or Overworld Editor RE), and a program to look at .narc files, which are all the files inside of a DS game (I have NDS Editor).

      This meager amount of info I've only gained from poking around here, so Google is your friend in this case. While it might not turn up as many hits as looking up info on GBA tutorials and tools, someone's probably done a fair amount of investigation on whatever you need (as such, the most-known about games are probably D/P, and the least-known about are probably B2/W2).

      Good Luck!

      Edit: PPRE works best for D/P/Pt, although a couple of its tools work with HG/SS.

      Thanks mate definitely look into it. Okay, how can i add a new house into a city? I made one on Advance Map, but how do I make the inside and stuff? But when i go to the door it doesn't open or anything. Thanks in advance.
        #22178    
      Old August 4th, 2012 (4:00 AM).
      ArthurWaine ArthurWaine is offline
         
        Join Date: Jul 2012
        Gender: Male
        Posts: 21
        Quote:
        Originally Posted by Zupplu View Post
        Okay, how can i add a new house into a city? I made one on Advance Map, but how do I make the inside and stuff? Thanks.
        For starters, every single map you enter is a single map in A-Map. So, the make a new 'inside' for a house, you'll have to make a new map, which you'll have to connect to the outside of your house. Here's how:

        First, have a look at the different tabs in A-Map.
        For starters, you'll need to confirm what movement permissions you need to have, and what kind of tile for entering (for just you normal house, the entire house needs to be set to 1, and door tiles automatically have the correct function for warps to work), then, you'll have to figure out where to put your 'warp' event: the thing that lets you teleport to another map, in this case the inside of your house. You could just check some other houses (clicking on the 'events' tab will show you all events on a map: people, signs, warps, and scripts), but for doors the general rule is to put them on top of the door tile.

        Then, you'll have to select your warp, and tell it where it needs to go: it will ask for a warp #, a map #, and bank #, which really speak for itself. Of course, this means the inside of the house needs to have a warp as well, which (in normal cases) points right back to the one on the outside of your house.

        Well, that's pretty much it, hope it helped.
          #22179    
        Old August 4th, 2012 (10:36 AM). Edited August 4th, 2012 by destinydownloads.
        destinydownloads's Avatar
        destinydownloads destinydownloads is offline
           
          Join Date: Jan 2012
          Location: London
          Gender: Male
          Posts: 41
          Is it possible to remove a pokemon from the player with poketscript. If so what is the command?

          Quote:
          Originally Posted by Darkrai Lv.1000 View Post
          Hey guys, just a quick question regarding the 25 extra ???????? slots for adding extra Pokemon. If I were to make these into new Pokemon, these will not show up in the National PokeDex, right?
          I believe they will not show up in the pokedex.
            #22180    
          Old August 4th, 2012 (10:51 AM).
          atangerine's Avatar
          atangerine atangerine is offline
             
            Join Date: Aug 2011
            Location: MI
            Gender: Male
            Posts: 16
            Can someone please tell me what's wrong with my script? I'm trying to make this person give me the running shoes. Everything seems to work fine until I actually try to use the running shoes, which I then find out that I don't have it (or it doesn't work).

            --------------------------------

            #org $script
            lock
            faceplayer
            checkflag 0x1202
            if 0x01 goto $done
            message $talk
            $talk 1 = Hi \v\h01! You've gotten\nso tall.\pAnyway, I have a gift for you!
            boxset 6
            fanfare 0x13E
            setflag 0x82F
            message $recieve
            $recieve 1 = You recieved the RUNNING SHOES!
            boxset 4
            waitfanfare
            #raw 0x68
            setflag 0x1201
            message $cya
            $cya 1 = Good luck on your journey!
            boxset 6
            setflag 0x1202
            release
            end

            #org $done
            message $bye
            $bye 1 = Make sure you visit your\nmother from time to time.
            boxset 6
            release
            end
              #22181    
            Old August 4th, 2012 (10:58 AM). Edited August 4th, 2012 by redriders180.
            redriders180's Avatar
            redriders180 redriders180 is offline
            Mastermind of Pokemon Glazed
               
              Join Date: Jun 2010
              Location: Path of Victory, Tunod
              Gender: Male
              Nature: Quirky
              Posts: 540
              Quote:
              Originally Posted by destinydownloads View Post
              Is it possible to remove a pokemon from the player with poketscript. If so what is the command?
              There is no script command for removal of a Pokemon, although it's not very hard to ASM one. If you were to write a routine to do it, you'd basically move the data of the pokemon below the deleted Pokemon up one slot, and then erase the last one by filling it with FFs.

              A fair amount of ASM tutorials have tackled this exact request, since its such a common one, so I recommend looking at a few (I'm at work, so I don't have any helpful tutorials bookmarked for you :().
              __________________


              I think I'm done with ROM hacking. I'll still pop in and visit, though.


                #22182    
              Old August 4th, 2012 (10:59 AM).
              Nate VonGrimm's Avatar
              Nate VonGrimm Nate VonGrimm is offline
                 
                Join Date: Oct 2011
                Location: Uxbridge
                Age: 26
                Gender: Male
                Nature: Relaxed
                Posts: 124
                Quote:
                Originally Posted by destinydownloads View Post
                Is it possible to remove a pokemon from the player with poketscript. If so what is the command?
                Unfortunately, You can't with scripts.
                To remove a Pokémon from the player, it requires ASM hacking.

                The only thing you can do is use the command to send Pokémon to the Daycare centre and remove the daycare centre from the game so the player cannot retrieve the removed Pokémon. But to do this, the player does need to have at least 2 Pokémon.

                I don't know what the command is on PokeScript as I am an XSE user.
                __________________
                Currently working on a new Pokemon Hack with an in-depth story line!
                That's about as much as you're going to get for now...


                  #22183    
                Old August 4th, 2012 (2:25 PM).
                Cold Ivory's Avatar
                Cold Ivory Cold Ivory is offline
                   
                  Join Date: Mar 2011
                  Gender: Male
                  Nature: Mild
                  Posts: 30
                  How does one determine the RAM address for a given variable?
                  Specifically, I'm looking for either the address of LASTRESULT in Ruby or how I can go about finding it.
                  But if I knew how to determine the pointer for any given variable, that would be just as useful.

                  I am also correct in understanding that a var is a 2-byte structure, so using writebytetooffset only effects "half" of the variable, yes?
                    #22184    
                  Old August 4th, 2012 (3:14 PM).
                  Megiddo-san's Avatar
                  Megiddo-san Megiddo-san is offline
                  Barium - Summer '12 Return?
                     
                    Join Date: Dec 2007
                    Location: Where you least expect it
                    Age: 26
                    Gender: Male
                    Nature: Relaxed
                    Posts: 1,331
                    Has anyone encountered the bug with Tile Molester that causes it to make all evolutions crash Fire Red(BPRE)? If so, do you know how fix it?
                    __________________

                    Hashire! Asu e tsudzuku shinka no micha wa
                      #22185    
                    Old August 4th, 2012 (4:08 PM).
                    Ω Ruby and α Sapphire's Avatar
                    Ω Ruby and α Sapphire Ω Ruby and α Sapphire is offline
                    Hope will never die! ~Lucina
                       
                      Join Date: Apr 2011
                      Location: Victoria, Australia
                      Gender: Male
                      Nature: Quiet
                      Posts: 735
                      How do you set a tile as a warp point? I set the behaviour byte to 69 00but when i go to events and select warp point it doesn't come up! Thanks in advance.
                        #22186    
                      Old August 4th, 2012 (4:50 PM).
                      tajaros's Avatar
                      tajaros tajaros is offline
                      Hi I'm dawg
                         
                        Join Date: Apr 2012
                        Location: Philippines
                        Age: 19
                        Gender: Male
                        Nature: Timid
                        Posts: 857
                        Hi, I got a question is it possible to make Pokemon FireRed read GIF's images as sprites? Can it be done through Hex Edting or ASM? or much complicated manner... :)
                        __________________
                          #22187    
                        Old August 4th, 2012 (7:52 PM).
                        Shootingace's Avatar
                        Shootingace Shootingace is offline
                        Lord
                           
                          Join Date: Jun 2012
                          Age: 22
                          Gender: Male
                          Nature: Calm
                          Posts: 81
                          I have a question. If you had to create the scene in FR where after you collect your pokemon, Gary battles you. How do i do this from scratch. I know it has something to do with Advancedmap and XSE.
                          __________________

                          Hacks i strongly recommend:
                            #22188    
                          Old August 4th, 2012 (9:59 PM).
                          Ω Ruby and α Sapphire's Avatar
                          Ω Ruby and α Sapphire Ω Ruby and α Sapphire is offline
                          Hope will never die! ~Lucina
                             
                            Join Date: Apr 2011
                            Location: Victoria, Australia
                            Gender: Male
                            Nature: Quiet
                            Posts: 735
                            I'm trying to make a map but his comes up when i try to save. Help! Thanks! :)
                            Attached Images
                            File Type: png Capture.PNG‎ (154.6 KB, 14 views) (Save to Dropbox)
                              #22189    
                            Old August 4th, 2012 (10:34 PM). Edited August 4th, 2012 by tajaros.
                            tajaros's Avatar
                            tajaros tajaros is offline
                            Hi I'm dawg
                               
                              Join Date: Apr 2012
                              Location: Philippines
                              Age: 19
                              Gender: Male
                              Nature: Timid
                              Posts: 857
                              Quote:
                              Originally Posted by Shootingace View Post
                              I have a question. If you had to create the scene in FR where after you collect your pokemon, Gary battles you. How do i do this from scratch. I know it has something to do with Advancedmap and XSE.
                              Actually you can just open scripts and use them as your own... :)

                              But there's really nothing that much special in the Gary's Tutorial Battle it just uses this command

                              trainerbattle 0x9 0x(Trainer no. (Hex)) 0x3 @(Message to be displayed when you won) @(Message to be displayed when you lose)

                              The only peculiar about it is the 0x9 at the first part of it cause normal trainer battles just leave it 0x0...

                              Here let me give you an example of a script that uses that script... :) (This is in XSE)
                              (I'll also explain how the scripts work... :))

                              Quote:
                              #dynamic 0x800000 <- This is needed for every script in XSE, with this XSE finds some Free Space needed starting from offset 0x800000

                              #org @start <- Starts the script
                              lock <- Locks the NPC to the player
                              faceplayer <- Makes the NPC face the player
                              msgbox @hi 0x6 <- Loads the message in the pointer "@hi"
                              trainerbattle 0x9 0x1 0x0 @win @lose <- Loads the trainerbattle scene, that battles trainer 0x1, @win-loads the Message with the pointer @win when you win against the trainer, @lose-loads the Message with the pointer @lose when you lose to the trainer, (Also not if you didn't edited the trainers in A-trainer it will load the Leader of Team Aqua with a level 5 Ekans.
                              msgbox @after 0x6 <- Loads the message in the pointer "@after"
                              fadescreen 0x1 <- Fades the screen to black
                              hidesprite 0x1 <- Hide's the sprite with the person event no.1
                              fadescreen 0x0 <- Fades the screen back to normal
                              setflag 0x1000 <- Set's the flag 0x1000, if you want the event to not happen again, you should put 1000 on the person ID in Advance-Map
                              release <- Releases the NPC to the player
                              end <- Ends the script

                              #org @hi <- Message of @hi
                              = \v\h06: Hi there \v\h01!\pLet's battle!\p\v\h01: But, I don't know how...\p\v\h06: Don't worry PROF.OAK will\nteach you as we battle...\p\v\h01: Ok, let's do this!

                              #org @win <- Message of @win
                              = Wow!, You're great for a begginer!

                              #org @lose <- Message of @lose
                              = Woah, that was fun!

                              #org @after <- Message of @after
                              = \v\h06: Wow, You're really good\nfor a begginer!\p\v\h01: Thanks!\p\v\h06: Well I'll be going now\nI'll be seeing you later!\p\v\h01: Ok, bye!
                              Here's the clean script without the explanations if you want to use it... :)
                              Quote:
                              #dynamic 0x800000

                              #org @start
                              lock
                              faceplayer
                              msgbox @hi 0x6
                              trainerbattle 0x9 0x1 0x0 @win @lose
                              msgbox @after 0x6
                              fadescreen 0x1
                              hidesprite 0x1
                              fadescreen 0x0
                              setflag 0x1000
                              release
                              end

                              #org @hi
                              = \v\h06: Hi there \v\h01!\pLet's battle!\p\v\h01: But, I don't know how...\p\v\h06: Don't worry PROF.OAK will\nteach you as we battle...\p\v\h01: Ok, let's do this!

                              #org @win
                              = Wow!, You're great for a begginer!

                              #org @lose
                              = Woah, that was fun!

                              #org @after
                              = \v\h06: Wow, You're really good\nfor a begginer!\p\v\h01: Thanks!\p\v\h06: Well I'll be going now\nI'll be seeing you later!\p\v\h01: Ok, bye!
                              After you have done this make sure that you have your ROM opened in XSE, after that compile it and copy the offset of @start since it's the very first pointer, then copy that offset in Advance-Map... :)

                              Note: Use XSE 1.1.1 and Advance-Map 1.95... :)

                              Also maybe reposting my question will bring some people to answer it.. xD
                              Quote:
                              Hi, I got a question is it possible to make Pokemon FireRed read GIF's images as sprites? Can it be done through Hex Edting or ASM? or much complicated manner... :)
                              __________________
                                #22190    
                              Old August 4th, 2012 (11:54 PM).
                              Ω Ruby and α Sapphire's Avatar
                              Ω Ruby and α Sapphire Ω Ruby and α Sapphire is offline
                              Hope will never die! ~Lucina
                                 
                                Join Date: Apr 2011
                                Location: Victoria, Australia
                                Gender: Male
                                Nature: Quiet
                                Posts: 735
                                Hey guys, I was wondering how to change what professor oak says when you pick your starter, because I changed the starter pokemon to Cacnea, Carvhana and Hondour but he says bulbasuar ect. If possible can you put it really simply because i have no knowledge on scripting and abbreviations/acronyms. Thanks :)
                                  #22191    
                                Old August 5th, 2012 (1:38 AM).
                                Satoshi Ookami's Avatar
                                Satoshi Ookami Satoshi Ookami is offline
                                Memento Mori
                                 
                                Join Date: Jul 2008
                                Location: Abyss of Time, Great Seal
                                Age: 25
                                Gender: Male
                                Nature: Calm
                                Posts: 14,528
                                Quote:
                                Originally Posted by Zupplu View Post
                                Hey guys, I was wondering how to change what professor oak says when you pick your starter, because I changed the starter pokemon to Cacnea, Carvhana and Hondour but he says bulbasuar ect. If possible can you put it really simply because i have no knowledge on scripting and abbreviations/acronyms. Thanks :)
                                You can edit it either by using A-Text or by editing Oak's script by using XSE.
                                __________________
                                ROM hacking FAQ - Read before asking how to play a hack.

                                Anime List | PSN Trophy List
                                  #22192    
                                Old August 5th, 2012 (2:01 AM).
                                Ω Ruby and α Sapphire's Avatar
                                Ω Ruby and α Sapphire Ω Ruby and α Sapphire is offline
                                Hope will never die! ~Lucina
                                   
                                  Join Date: Apr 2011
                                  Location: Victoria, Australia
                                  Gender: Male
                                  Nature: Quiet
                                  Posts: 735
                                  Quote:
                                  Originally Posted by Ash493 View Post

                                  You can edit it either by using A-Text or by editing Oak's script by using XSE.
                                  How can I do that? This is all new to me so i don't know much.
                                  __________________
                                    #22193    
                                  Old August 5th, 2012 (3:12 AM).
                                  ArthurWaine ArthurWaine is offline
                                     
                                    Join Date: Jul 2012
                                    Gender: Male
                                    Posts: 21
                                    Quote:
                                    Originally Posted by Zupplu View Post
                                    How do you set a tile as a warp point? I set the behaviour byte to 69 00but when i go to events and select warp point it doesn't come up! Thanks in advance.
                                    Actually, it's quite simple. If you want to have a warp, go to the 'events' tab, and have a look at the menu bar on the right of your map. On the bottom of it, it lists the number of events you have, and all of the numbers have up/down arrows next to them. Either click the arrows, or put in a number in the box yourself, and click the button underneath the boxes: change events. It will add (I don't know if remove works in quite the same fashion, as I always use the big 'delete event' button for that) events of the specified types up to what you specified, and these will appear in the upper-left corner.

                                    So, for example, say my map had 1 warp event, I typed in '10' in the 'warps' box and hit 'change events'. I would then get 9 warp events in my top left corner, which I could then just drag wherever I wanted them to be :)

                                    Quote:
                                    I'm trying to make a map but his comes up when i try to save. Help! Thanks!
                                    Yeah, that's a problematic one. As far as I know, that tends to mean the ROM you're using is, for lack of a better word, 'broken'. Personally, I've had that specific issue with every LeafGreen rom I've tried to use, after which I switched to a FireRed one which never gave me any trouble at all. So yeah, a re-download of your ROM in case /might/ fix it, but if it doesn't, try finding the same ROM from a different source, or try using the other game (FireRed if using LeafGreen, Ruby if using Sapphire, etc.).


                                    [QUOTE] Don't have acces to advance map right now, so I'm afraid I can't check anything for you in advance map, but I can give you some pointers to begin with. First off, get your script editor ready, because is, indeed, going to require you to get the scripting muscles flexing.

                                    First off, go to advance map, and set your script editor of choice as default script editor (I believe that option is found under 'options', but if not, it's somewhere in that top line). Then, go to the script in question (which is, if I'm not mistaken, the script on the pokeballs themselves), and either double-click, or select 'open script' on the menu on the left. You'll get a box with a terrible mess of garbled junk (if you've never seen any script before, that is. Trust me, it starts making sense after a couple days :P) I can't help you on the pictures right now, wouldn't know how to do that off the top of my head, and as I said I don't have acces to Advance map atm. However, editing the text isn't all that hard:

                                    First, you want to, logically, search for the text you want to change. It's going to be in the bottom part of the window, where you'll get a bunch of these kind of things below each other:

                                    Spoiler:
                                    #org 0xnumber
                                    = text

                                    #org 0xnumber
                                    = text

                                    etc.


                                    Now search for the text for, say, bulbasaur. I've got no idea what it says, but it should be easily found, and once you do, it's really as simple as erasing the text, and replacing it with your new one (you'll need to keep the =, as otherwise it won't recognize your string as text, but for everything else you're free to go). HOWEVER, there is one catch: if you simply replace the text, the new text MUST be shorter than or of equal length with the original text. If not, things are going to get completely messed up, because you'll start writing data to bytes that are already holding other data, which causes really odd things to happen, and just might break it. So, if you're sure your text is shorter than the old one, you're set! Just test it to make sure it all works, and make sure to make use of text-managing commands:\n puts the text after it on a new line, \l scrolls up the previous line and then puts the new line in (remember, the text boxes only have two lines and about 35 characters per line), and last but not least \p lets you open a new 'page' so to say. I can't explain this one that well, but just try it out, you'll get it when you see it. Now, if this was all, don't forget to hit the button called 'compile' when you're done, this will write the changes you made in the script to the ROM (so anything you do before you hit that button has no actual effect whatsoever).

                                    So, what about when what you want to say is longer than the original? Well, don't worry, that just requires a little more work. Step by step:

                                    1. I'm not an XSE user, so I /might/ get the terminology slightly wrong, but I believe it goes like this: put #dynamic 0x800000 at the top of your script. This tells XSE to look for free space large enough to hold all the new stuff, starting at 0x800000 (this is where the empty space on ROMS tends to start, it's actually around 0x740000 I believe, but just to be safe 0x800000 has kind of become the standard) and it is connected to @-signs. If you have #org @whateverisconvenient (seriously though, you just need to make sure that if you have multiple orgs that need inserting, you'll have to make sure to use differnt tags, so your first text is called @text1, the second @text2, etc. Just an example though, it honestly doesn't matter what you call them).

                                    2. Now, change your text (this could also be step one, as the order in which you do these things doesn't really matter, as long as you make sure that the compiling happens LAST). You don't have to pay any attention to length whatsoever this time, as we're going to get you some empty space to put the new stuff in, yay!

                                    3. Now, you'll need to replace all instances of the #org of your new text with @text (or whatever you want to use). Personally, I'd use the find/replace function to do this (I'm going to assume XSE has it...), but you could just do it by hand. Now, make sure to ONLY replace the NUMBER with @text. You'll actually need the #org for your script to work :)

                                    4. If you're sure you've replaced everything by what you want it to be, you just hit that compile button again, and voila! You should get a list of offsets, but in this case those don't matter as you didn't replace the starting offset, and you should be able to just ignore them. If you want to make sure it all worked properly, just close the script and open it again, and you should see the changes you made reflected in the script.

                                    Well, hope this works for ya, if it doesn't, just have a look at some tuts, it really isn't all that hard, just takes some getting into :)
                                      #22194    
                                    Old August 5th, 2012 (9:33 AM).
                                    destinydownloads's Avatar
                                    destinydownloads destinydownloads is offline
                                       
                                      Join Date: Jan 2012
                                      Location: London
                                      Gender: Male
                                      Posts: 41
                                      I want to try to learn ASM hacking but I don't know of any tutorials on someone teaching you. Could someone give me some links these tutorials?
                                        #22195    
                                      Old August 5th, 2012 (9:57 AM).
                                      Andrut's Avatar
                                      Andrut Andrut is offline
                                      Collecting dust since 1898
                                         
                                        Join Date: Dec 2009
                                        Location: Warsaw, Poland
                                        Age: 19
                                        Posts: 286
                                        How to change the items sold in shops in Emerald? I know there are tools which change the ones in Pokémarts, but I would like to change the items in one that is not in a Pokémart, like the market in Slateport.
                                          #22196    
                                        Old August 5th, 2012 (1:14 PM).
                                        redriders180's Avatar
                                        redriders180 redriders180 is offline
                                        Mastermind of Pokemon Glazed
                                           
                                          Join Date: Jun 2010
                                          Location: Path of Victory, Tunod
                                          Gender: Male
                                          Nature: Quirky
                                          Posts: 540
                                          Quote:
                                          Originally Posted by xoax View Post
                                          How to change the items sold in shops in Emerald? I know there are tools which change the ones in Pokémarts, but I would like to change the items in one that is not in a Pokémart, like the market in Slateport.
                                          The most direct way is to open one of their scripts. All pokemarts follow the same basic structure:

                                          #org @start
                                          lock
                                          faceplayer
                                          preparemsg @welcome *\This command is basically a "msgbox" command
                                          waitmsg *\basically a "closeonkeypress" command
                                          pokemart @item_data
                                          msgbox @comeagain MSG_KEEPOPEN
                                          release
                                          end

                                          The @item_data pointer then points to the list of items to sell. It's laid out in this structure:

                                          #org @item_data
                                          #raw word 0xItem_Number_One
                                          #raw word 0xItem_Number_Two
                                          ...
                                          #raw word 0x0 <--REQUIRED! Marks the end of the table

                                          The item numbers are the exact same as the item numbers in a giveitem command. So, for just the four basic Poke Balls, the list would look like so:

                                          #org @item_data
                                          #raw word 0x1 (Master Ball)
                                          #raw word 0x2 (Ultra Ball)
                                          #raw word 0x3 (Great Ball)
                                          #raw word 0x4 (Pokeball)
                                          #raw word 0x0 (End of List)
                                          Quote:
                                          Originally Posted by tajaros View Post


                                          Actually you can just open scripts and use them as your own... :)

                                          But there's really nothing that much special in the Gary's Tutorial Battle it just uses this command

                                          trainerbattle 0x9 0x(Trainer no. (Hex)) 0x3 @(Message to be displayed when you won) @(Message to be displayed when you lose)

                                          The only peculiar about it is the 0x9 at the first part of it cause normal trainer battles just leave it 0x0...

                                          Here let me give you an example of a script that uses that script... :) (This is in XSE)
                                          (I'll also explain how the scripts work... :))

                                          Here's the clean script without the explanations if you want to use it... :)
                                          After you have done this make sure that you have your ROM opened in XSE, after that compile it and copy the offset of @start since it's the very first pointer, then copy that offset in Advance-Map... :)

                                          Note: Use XSE 1.1.1 and Advance-Map 1.95... :)

                                          Also maybe reposting my question will bring some people to answer it.. xD
                                          Darn autoquote...in any case, your question refers to sprites as gif images, instead of .png files? When you upload sprites with Unlz.gba or NSE, you're not actually inserting .png files into a game. Those programs simply accept .png files, since they typically end up being the cleanest, with no rasterizing or anything funny, and convert them into the GBA's primary mode of image display. As such, while the GBA makes no distinction of file formats, the programs to insert them do. The only way around it is to convert to .png.

                                          Quote:
                                          Originally Posted by Cold Ivory View Post
                                          How does one determine the RAM address for a given variable?
                                          Specifically, I'm looking for either the address of LASTRESULT in Ruby or how I can go about finding it.
                                          But if I knew how to determine the pointer for any given variable, that would be just as useful.

                                          I am also correct in understanding that a var is a 2-byte structure, so using writebytetooffset only effects "half" of the variable, yes?
                                          Probably the easiest way is to make a script that increments LASTRESULT by 0x1, and try scrolling through the memory in VBA (with Auto-Update checked) to find the value. I only know about Firered, but under the assumption that the variable structure is similar, there are a few clues:

                                          1. In Firered, the variables of the 0x8000 family are stored in the 0x02000000 range (all the other variables are DMA protected, and hidden away in one of the save blocks that gets shuffled around). In Firered, the location of LASTRESULT (which is really 0x800D) is at 0x020370B8, if its any use.

                                          2. In Firered, the 0x8000 variables are all stored one after another.

                                          You're correct about the size: each variable is a half-word, or two bytes. Writebytetooffset only writes one byte at a time, so you need to use it twice. Also, don't forget the bytes are flipped, similar to how pointers work. So 0x1234 is 34 12 in the RAM.
                                          __________________


                                          I think I'm done with ROM hacking. I'll still pop in and visit, though.


                                            #22197    
                                          Old August 5th, 2012 (3:21 PM).
                                          MissDigitalis's Avatar
                                          MissDigitalis MissDigitalis is offline
                                             
                                            Join Date: Dec 2011
                                            Gender: Female
                                            Posts: 115
                                            I keep getting errors after I open Pidgey's stats in YAPE but everything seems to be fine in GBA Pokemon Game Editor's Pokemon Editor. Is there a way to keep the error from occurring other than going back to the beginning of my game and comparing ALL the changes I've made?
                                            __________________

                                              #22198    
                                            Old August 5th, 2012 (4:06 PM).
                                            Shootingace's Avatar
                                            Shootingace Shootingace is offline
                                            Lord
                                               
                                              Join Date: Jun 2012
                                              Age: 22
                                              Gender: Male
                                              Nature: Calm
                                              Posts: 81
                                              Tajaros gave a good explanation which i copied onto a word document.
                                              I still have 2 more questions about starting Gary's battle scene from scratch:

                                              1) When you walk south in the lab then Gary stops you. Which commands do i use for him to walk up to you and stop you?

                                              2) In XSE and Advanced Map, how do i open a script from Advancedmap to XSE?
                                              For example if i want to adjust Gary's script on XSE, how do i get his script on the tab there?
                                              __________________

                                              Hacks i strongly recommend:
                                                #22199    
                                              Old August 5th, 2012 (4:44 PM).
                                              MidiMasterShiro's Avatar
                                              MidiMasterShiro MidiMasterShiro is offline
                                              Music Hacker/Composer
                                                 
                                                Join Date: Aug 2012
                                                Location: United States
                                                Age: 21
                                                Gender: Male
                                                Nature: Relaxed
                                                Posts: 31
                                                This question has to do with the music in the ROM of Pokemon Fire Red.

                                                I know how to hack GBA music very well, but how would I set different music for different trainers. For example, different trainers in RSE have different music set for them, like the Elite 4 has battle music different from the Gym Leaders, and team members do not have the ordinary trainer battle music.
                                                __________________
                                                  #22200    
                                                Old August 5th, 2012 (4:50 PM).
                                                machomuu's Avatar
                                                machomuu machomuu is online now
                                                 
                                                Join Date: Apr 2008
                                                Location: Americalanavania
                                                Gender: Male
                                                Nature: Relaxed
                                                Posts: 10,356
                                                Quote:
                                                Originally Posted by MidiMasterShiro View Post
                                                This question has to do with the music in the ROM of Pokemon Fire Red.

                                                I know how to hack GBA music very well, but how would I set different music for different trainers. For example, different trainers in RSE have different music set for them, like the Elite 4 has battle music different from the Gym Leaders, and team members do not have the ordinary trainer battle music.
                                                Ah, the very adept hacker, Aichiya Sanae, can help you there. Please note that this information was originally meant for the hack Touhoumon: Another World, but it still applies.

                                                Quote:
                                                Controlling Music
                                                Variable 0x4090 and 0x4092 pair and variable 0x4091 and 0x4093 pair are used for controlling sound. As you can see that some trainers used their specific song theme while battle.
                                                I will explain a bit, for example I will use 0x4090 and 0x4092 pair
                                                0x4090 value determines which song that will be changed
                                                0x4092 value determines which new song will be used
                                                Value is the song ID

                                                For example I want change trainer battle song... from default song (Faith is for the Transient People) to Splendid Encount~2nd Style song...
                                                Trainer Battle song ID is 0x129 and the desired song (Splendid Encount~2nd Style) ID is 0x172
                                                So the script would be:


                                                #org 0x834830
                                                msgbox 0x8834930 0x4
                                                closeonkeypress
                                                pause 0x20
                                                setvar 0x4090 0x129
                                                setvar 0x4092 0x172
                                                trainerbattle 0x3 0x57 0x0 0x8834970
                                                setvar 0x4090 0x0
                                                setvar 0x4092 0x0
                                                pause 0x20
                                                msgbox 0x88349B0 0x4
                                                closeonkeypress
                                                release
                                                end


                                                As you can see, put both variable before trainerbattle line.
                                                Additionally, you need to write again variable after battle with value 0x0 to return into original song...
                                                To be safe, you need to put servar value 0x0 in every level script in the outside of healing spots, this is because the value won’t revert to 0x0 if you lost a battle (because the script won’t continue)
                                                But, all healing spots are already used, so don’t bother about it, because I already wrote all level scipts in gensokyo. Except, you want to add more healing spots.

                                                You don’t need to add setvar 0x4090 0x0 and setvar 0x4092 0x0 lines if you want to change the song forever.

                                                I have a simple script:

                                                #org 0x890000
                                                setvar 0x4090 0x129
                                                setvar 0x4092 0x169
                                                setvar 0x4091 0x12A
                                                setvar 0x4093 0x16D
                                                end
                                                __________________
                                                Paired to and madly in love with a literal Symphony of legs.


                                                I also watch anime sometimes. Just a little.
                                                Closed Thread

                                                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 10:12 AM.