• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[ARCHIVE] Simple Questions (SEARCH BEFORE ASKING A QUESTION)

Status
Not open for further replies.

Satoshi Ookami

Memento Mori
14,254
Posts
15
Years
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.
 
22
Posts
11
Years
  • Seen Jan 18, 2015
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 :)

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.).


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:


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 :)
 

Andrut

Collecting dust since 1898
284
Posts
14
Years
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.
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
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)


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.

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.
 
115
Posts
12
Years
  • Seen Dec 30, 2012
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?
 
81
Posts
11
Years
  • Age 28
  • Seen Jun 9, 2017
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?
 

MidiMasterShiro

Music Hacker/Composer
31
Posts
11
Years
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.
 

machomuu

Stuck in Hot Girl Summer
10,507
Posts
16
Years
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.

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
 

Satoshi Ookami

Memento Mori
14,254
Posts
15
Years

How can I do that? This is all new to me so i don't know much.
If you use A-Text then just search for the part of string and A-Text will find it in ROM.
Then you just need to enter what you want and save the ROM.

If you want to do it XSE-way (which will help you in future when you start scripting), I would suggest reading some scripting tutorials, they will surely help you ;)

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?
1) OWs are moved by using applymovement commands.
2) You need to set XSE as default script editor and then just click on Open Script.
 
81
Posts
11
Years
  • Age 28
  • Seen Jun 9, 2017
hi guys i have another question:

1) If i wanted to create Arceus in FR, which tools do i use for its sprite and image?
 
Last edited:

Epitaph93

Intermediate Digidestined
120
Posts
12
Years
hi guys i have another question:

1) If i wanted to create Arceus in FR, which tools do i use for its sprite and image?

I use GraphicsGale to edit the sprites, then use Advanced Sprite Inserter to replace a pokemon with the new one's image.
 

Ω Ruby and α Sapphire

Guest
0
Posts
Hey guys quick question. I can't seem to find the reason why one of my warps in pallet town only works one way? I go into a cave and can't return back to pallet town? Any help is appreciated :)
 

tajaros

Hi I'm dawg
855
Posts
12
Years
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?

You use the applymovement command... :)

Applymovement goes like this:

Applymovement 0x(Person Event no.(Hex)) @offset(input any pointer just make sure it doesn't have spaces... :)

Here's an example script... :)
#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"
applymovement 0xff @down <- Makes the person with the person event no. 0xff move it loads the movement in the pointer "@down", note 0xFF is the players person event no., so that means that this will move your player... :)
waitmovement 0x0 <- Waits the movement to be finished so that it will continue, you have to input these after every applymovement commands... :)
msgbox @haha 0x6 <- Loads the message in the pointer "@haha"
release <- Releases the NPC to the player
end <- Ends the script

#org @hi <- Message of @hi
= GIRL: Hello there!\pDo you believe that I have Psychic\nPowers?\p\v\h01: No, your just an ordinary\ngirl.\pGIRL: Well, let's see If your\ncorrect!\pI will control you to move\ndownwards.

#org @down <- Loads the movement to be done...
#raw 0x10 <- Makes the player move one step down
#raw 0x10 <- Makes the player move one step down
#raw 0x10 <- Makes the player move one step down
#raw 0xfe <- Now in every movement commands you have to input #raw 0xfe at the last part if you don't do this it somehows messes up your script...

#org @haha < - Message of @haha
= \v\h01: Woah!, that's scary!\pGIRL: Haha, that's what you get\nfor not believing me.

You might ask how did I know that it's raw 0x10?

I have a list of the raw movements here they are so you can use them... :)
Spoiler:


Again you might want the clean script so here it is... :)
#dynamic 0x800000

#org @start
lock
faceplayer
msgbox @hi 0x6
applymovement 0xff @down
waitmovement 0x0
msgbox @haha 0x6
release
end

#org @hi
= GIRL: Hello there!\pDo you believe that I have Psychic\nPowers?\p\v\h01: No, your just an ordinary\ngirl.\pGIRL: Well, let's see If your\ncorrect!\pI will control you to move\ndownwards.

#org @down
#raw 0x10
#raw 0x10
#raw 0x10
#raw 0fe

#org @haha
= \v\h01: Woah!, that's scary!\pGIRL: Haha, that's what you get\nfor not believing me.

In order to make XSE open scripts in Advance-Map you have to goto "Settings" and then click on the "Choose script editor" then browse for XSE and XSE can now open scripts in A-map! :)

Also if you want the Original Gary Script here it is... :)
Spoiler:


Or if you want you can manually decompile the offset using XSE all you need is the script's offset... :) Gary script offset is 0x1692F3 just input that in XSE and decompile it, remove the 0x it's not needed... :)

hi guys i have another question:

1) If i wanted to create Arceus in FR, which tools do i use for its sprite and image?

To insert sprites use the Advanced Pokemon Sprite Editor, or Wichu's Sprite Editor, it also includes the Advance Sprite Position Editor, and Advanced Pokemon Icon Editor... :) You can also Use UNLZ but you need to index them while in the Advanced series you don't have to index the sprites cause it reads images with colors higher than 16 colors and automatically indexes them... :)

You can use either YAPE or Poke Edit Pro, if you want to edit the Info about the Pokemon... :)
 

BrandoSheriff

Has a tendency to figure things out
776
Posts
16
Years
*goes into a corner and cries*

I can't change attack animations. I extended the attack table perfectly, I added the attacks, and I detailed the attacks, but the animations are all wrong, for example, Roost has Pound's animation. I've tried using Pokemon Game Editor to give Roost the same animation pointer as Featherdance, but it still uses Pound's animation. How do I go about changing animations the right way? I'm using Ruby, by the way.
 
7
Posts
11
Years
  • Seen Jan 3, 2013
How do I play pokemon hacks? Sorry, I'm new to playing pokemon hacks. And if this has been asked before, I'm sorry.
 
1
Posts
13
Years
  • Seen Apr 20, 2016
Okay so I am new to this whole place (I have had an account, but that was just to download some of your guys awesome hacks) and I have been inspired to make me own hack... so I understand why you all have soooo many people helping cause it is hard as a one person job.

So anyway my question, whenever I changed up littleroot I messed something up because everytime the avatar walks out the door this happens
oi45.tinypic[.]com/2iarbwy.jpg (I cannot post urls cause I am to new :disappoin)
So I hit A and it goes into a loop... I have not changed any scripts in the town yet, all I have done is changed what it looks like and I added some new warps and people in it...
So I am sorry if other people have asked this, or if it doesn't belong in this thread... but please please help.
 
Status
Not open for further replies.
Back
Top