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

colcolstyles

Yours truly
1,588
Posts
15
Years
Quick question. Spinda has upwards of about 200 something sprites (according to Seribii) so if I edit the sprite in NSE how many of those 200 something sprites would I actually be changing?

I don't think that's how it works. I believe Spinda has one sprite and its spots' positions are randomly generated based on its Personality value.
 
30
Posts
13
Years
  • Seen Mar 1, 2012
Exracting music from a GBA Rom.

My question is simple, how do you extract music from a GBA rom? I want to get music out of a Mother 3 rom so I can put it on my ipod. Can anyone help? =/
NOTE: DO NOT tell me to go search Google/Bing/Yahoo. I've already done this, and can't find anything to help.
 
12
Posts
12
Years
  • Seen Oct 23, 2012
Assistance Would Be Lovely

I recently got into rom hacking and I don't know how long I'll keep this little personal project up (it'll probably be forgotten and picked up again repeatedly in the future due to college), but I'm enjoying myself and I had some questions. First off, I wanted to make some major changes to the intro (I'm working with Fire Red) including removing Oak's sprite so that the origin of the voice at the beginning is unknown, replacing the background (or replacing it with a recolor more specifically), making the prompt for your name come before anything else, removing the name prompt for your rival, and removing gender-select. I want the main character to always be male for secret plot purposes. Sorry this is so much stuff. I'm having a lot of fun with the plot though (I'm a writer by hobby) and wanted to see what I could do. This second thing is a bit unorthodox and relates very specifically to the plot I'm working at, but is it possible to completely change the main character's sprite later in the game and the name that the game addresses you with? I mean, I'm sure it's possible for a real hacker, but since there's no tool for that and I'm an amateur I wouldn't be sure how to even start going about this. I wanted to swap to a different character at one point (the main character's Pokemon would, in the plot, be transferred to this other character), but I'm sure this would be pretty complicated. Anyway, right now I mainly want to know how to mess with the intro if the sprite/name change thing is too hard. If someone could recommend a good tool for changing conversation text, that would be awesome too as the one from Wahack doesn't appear to like me.
 

Sawakita

Not Invented Here
181
Posts
13
Years
  • Age 34
  • Seen Nov 17, 2019
I need some help with Hex editing, which I've never done before. I'm following the guide here (Crystal level-up moves and evolution), and I ran into an issue very quickly. I can get to offset 425b1, but from there...how do I follow these pointers? How does this lead me to the data I want to change?

If I'm understanding this correctly, 425b1 points to Bulbasaur, 425b4 points to Charmander, and so on?

To be frank I'm completely lost here.

EDIT: Oh, right, can't post urls yet. Well, I'm following the guide on Skeetendo regarding editing level-up moves and evolution that Sawakita linked to on page 801.
Each one of those pointers is 2-byte long, little-endian format (i.e. least significant byte comes first). If you don't know how GB pointers work you might want to do a search (the link in my sig contains some links to pointers too).
Basically the formula to get the address from a 2-byte pointer are *EDIT* the folloowing are formulas to get the 2-byte pointer and the bank id from an effective address:
Code:
IF address > $3FFF:
    POINTER (2 bytes) = (Address MOD $4000) + $4000
    BANK ID (1 byte)  = Address \ $4000

IF address < $3FFF:
    POINTER (2 bytes) = Address
    BANK ID (1 byte)  = 0 (zero)
 
Last edited:
5
Posts
12
Years
  • Seen Dec 8, 2011
Great! Just a few things to clear up and and I think (hope) I'll have it! What does the "$" represent? Oh, and I'm assuming the two "4000" numbers are hexidecimal, not decimal?

So if my offset is 0x0425b1 Then I would mod divide by 4000 (which gives me 0x25b1) and add 4000, giving me 65b1. So would that be the address I'm looking for, or do I need to switch the bytes (b165)?

I this case the bank number would be 0x10, correct? How can I tell if I need a bank number, and would that just be added onto the end of the previous bytes (b16510)?
 

Sawakita

Not Invented Here
181
Posts
13
Years
  • Age 34
  • Seen Nov 17, 2019
Great! Just a few things to clear up and and I think (hope) I'll have it! What does the "$" represent? Oh, and I'm assuming the two "4000" numbers are hexidecimal, not decimal?

So if my offset is 0x0425b1 Then I would mod divide by 4000 (which gives me 0x25b1) and add 4000, giving me 65b1. So would that be the address I'm looking for, or do I need to switch the bytes (b165)?

I this case the bank number would be 0x10, correct? How can I tell if I need a bank number, and would that just be added onto the end of the previous bytes (b16510)?
Actually I have to apologize because, due to hurry, I wrote the opposite formulas (those formulas transform an effective address into a pointer). To get the effective address from the pointer you have to do the reverse:
Code:
Address = [Bank] * $4000 + [Pointer (big-endian format)]
(By the way, $4000 is the size of each bank; it's a consequence of the Game Boy hardware architecture.)

Also, $425b1 is the address where you will find the list of pointers, it's not the pointer to the data you're looking for. So what's the byte at $425b1? it's $A7, while the byte at $425b2 is $67. So the first pointer is $A767 (little-endian), or $67A7 (big-endian). How will you get the address that the pointer points to? You correctly obtained the bank, $10; the full address is then:
Code:
$10 * $4000 + ($67A7 MOD $4000) = $427A7
So, $427A7 is the address where Bulbasaur's level-up moves and evolution data begin at.

The "$" has the same meaning as "0x", it's a hex prefix.


Feel free to point out if there's anything unclear.
 
63
Posts
18
Years
  • Seen Aug 5, 2013
1.im really not understanding how to add a Pokemon in ruby in the 25 extra slots? I've tried I'm not comprehending :(.

2.i want to basically use a snivy ^ for question 1, but I want to start off with it instead of catching it. If possible. But I also still want one of three starters.

Can you please help I'd be eternally grateful!
 

Flowerchild

fleeting assembly
8,709
Posts
13
Years
I recently got into rom hacking and I don't know how long I'll keep this little personal project up (it'll probably be forgotten and picked up again repeatedly in the future due to college), but I'm enjoying myself and I had some questions. First off, I wanted to make some major changes to the intro (I'm working with Fire Red) including removing Oak's sprite so that the origin of the voice at the beginning is unknown, replacing the background (or replacing it with a recolor more specifically), making the prompt for your name come before anything else, removing the name prompt for your rival, and removing gender-select. I want the main character to always be male for secret plot purposes. Sorry this is so much stuff. I'm having a lot of fun with the plot though (I'm a writer by hobby) and wanted to see what I could do.
To remove Oak's sprite, you could find his image in uNLZ and import a blank image with the same size and bgcolor, which should - no guarantees, because half the time uNLZ doesn't work properly - make him invisible.
Use Advanced Palette Editor (APE) to change the into background color.
The other stuff is more complex and would require the use of ASM. It's not impossible, though.

This second thing is a bit unorthodox and relates very specifically to the plot I'm working at, but is it possible to completely change the main character's sprite later in the game and the name that the game addresses you with? I mean, I'm sure it's possible for a real hacker, but since there's no tool for that and I'm an amateur I wouldn't be sure how to even start going about this. I wanted to swap to a different character at one point (the main character's Pokemon would, in the plot, be transferred to this other character), but I'm sure this would be pretty complicated. Anyway, right now I mainly want to know how to mess with the intro if the sprite/name change thing is too hard. If someone could recommend a good tool for changing conversation text, that would be awesome too as the one from Wahack doesn't appear to like me.
It's possible to make a script that switches control of the player to another OW character. If you want the new character to have an unchangable name, then it won't be hard. If you want them, as well, to be nameable, it's not that hard either. Y'see, there are two variables in scripting called [player] and [rival]. They contain the names of the player and the rival, that way people in the game can call the player by name ("Hi [player]!" would turn into "Hi Bob!" if you named your player Bob). If you're getting rid of the rival, you could reuse the [rival] variable, and whatever [rival] contained could become the name of the second player.

P.S.If you don't know what a variable is, Google it. It's simple, really.
P.P.S. Use Advance-Text to modify text.
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
Use Advanced Palette Editor (APE) to change the into background color.

How weird I'm asking such a similar question to the one above...
I want to change the Oak's Background at the beginning screen too. I have the colors, I just need the pallate's offset. Can someone tell me how to find it (preferred) or tell me the offset?
 

DrFuji

[I]Heiki Hecchara‌‌[/I]
1,691
Posts
14
Years
How weird I'm asking such a similar question to the one above...
I want to change the Oak's Background at the beginning screen too. I have the colors, I just need the pallate's offset. Can someone tell me how to find it (preferred) or tell me the offset?

You can find a pallet by using VBA and a HEX Editor. To get Oak's background pallet offset, open your game and get to his intro. In VBA go to 'Tools > Debug > Pallet Viewer' (The pathway may differ depending on what version of VBA you're using) and a window will pop up full of small squares with colours in them - These are the pallets that are currently being loaded by VBA for the game. Unsurprisingly the pallet you're looking for is found in the 'Background' side of the pallet viewer, being the first row of colours. When you click on one of the colours in the pallet, the 'Value' in the bottom right hand corner will update, this is important as it is giving you the HEX value of the colour you're looking at. Every colour in the Gameboy has a HEX value, which will make it easy to find a string of them in a HEX Editor. Write down the values of the first three or four colours and flip their bytes (e.g. Value 0x1234 become 0x3412)

Open up your HEX Editor of choice and enter the search function (generally Ctrl+F) and enter the flipped values of your first few colours. If you come up with a result then compare a few of the other colours in the pallet with their respective bytes in the HEX editor to ensure you've got the correct pallet - If you don't have any results from searching then you've either input the flipped values incorrectly or there is the possibility that the pallet you're looking for has been compressed. Anyway, go to the beginning of the pallet in the HEX Editor and write down its location. You can now edit in the editor or APE.

Just for the record: Oak's background pallet can be found at 0x460568 :D
 
17
Posts
13
Years
  • Seen Aug 15, 2013
Alright, I've got a generic trainer in Fire Red. His offset is completely unique and there's nothing to differentiate his script from any other. He can be battled completely normally to boot in the actual game. However; if any battle occurs (Such as a wild one) when this particular trainer is on the screen outside his specific battle, my control shifts to this trainer. I've tried moving him to a different map just to test, and it's still specifically attached to this trainer. Help?
 

colcolstyles

Yours truly
1,588
Posts
15
Years
Alright, I've got a generic trainer in Fire Red. His offset is completely unique and there's nothing to differentiate his script from any other. He can be battled completely normally to boot in the actual game. However; if any battle occurs (Such as a wild one) when this particular trainer is on the screen outside his specific battle, my control shifts to this trainer. I've tried moving him to a different map just to test, and it's still specifically attached to this trainer. Help?

Is his behavior set to "Look Down"? If so, change it to "No Movement" and that should fix it.
 
3
Posts
12
Years
  • Seen Jan 6, 2014
Hey guys, new here, anyways can anyone explain how to open Advanced Trainer. I've tried converting it to a simple bundle using winebottler, and the Icon appears on my desktop , but when I click it, nothing happens. Thanks.
 

AustinWolff

has left
100
Posts
12
Years
Hey guys, new here, anyways can anyone explain how to open Advanced Trainer. I've tried converting it to a simple bundle using winebottler, and the Icon appears on my desktop , but when I click it, nothing happens. Thanks.

yeah, winebottler doesn't work in most cases. trust me, I have a mac and that does not suit well for hacking. Worst case scenario you can either:

1. buy bootcamp or
2. Work on a windows

If you dont have a windows then you should definitely get boot camp if you want to continue hacking. hope this helps
 
63
Posts
18
Years
  • Seen Aug 5, 2013
indexing help

i serioulsy dont understand how to index a sprite...ive read tutorials and im just drawing a blank,..they are clearbut i just cant grasp it and idk its just not coming out...

i am wanting to index a snivy sprite to add into ruby.

please help me please the turtorials are not helping me for some reason...please step by step instructions on how to index would be great. thank you.

Edit:maybe im not using the right tools...idk :(...
 
Last edited:
124
Posts
12
Years
Hey guys, new here, anyways can anyone explain how to open Advanced Trainer. I've tried converting it to a simple bundle using winebottler, and the Icon appears on my desktop , but when I click it, nothing happens. Thanks.

The program can't run on Mac OS. The program uses the .net framework so you'll either have to emulate Windows on your Mac or use a Windows computer.
 

RRC

5
Posts
12
Years
  • Seen Oct 17, 2015
Hi there. I am interesting in editing the battle frontier's pokemon stats, EVs, IVs, and nature for pokemon emerald. However, I've search for almost an hour and I can't find the link to download the file. Please help. Thank you.
 

Rasen

ASM is very cool!
71
Posts
12
Years
i serioulsy dont understand how to index a sprite...ive read tutorials and im just drawing a blank,..they are clearbut i just cant grasp it and idk its just not coming out...

i am wanting to index a snivy sprite to add into ruby.

please help me please the turtorials are not helping me for some reason...please step by step instructions on how to index would be great. thank you.

Edit:maybe im not using the right tools...idk :(...

It's easy...

Follow these steps:
1. Open your Snivy sprite in Paint
2. Fill the background with any color that doesn't match with sprite color (I think Snivy doesn't have red so you can use red)
3. Save your sprite as PNG file (I recommend Snivy.png)
4. Download IrfanView
5. Open your Snivy.png in IrfanView
6. Click Image->Decrease Color Depth...
7. Choose 16 Colors (4 BPP) and click OK
8. Click Image->Palette->Edit palette...
9. Swap the first color with the background color (so if you have first green and second red, then make the first color red and the second green)
10. Your sprite looks now strange but it's OK
11. Save your image as (I recommend) Snivy_indexed.png
12. Open your Snivy.png in Paint
13. Choose "Select all" and then "copy"
14. Then open Snivy_indexed.png in Paint
15. Now paste the previously copied sprite (Snivy.png) and then save
16. Congratulations! You have indexed a sprite!

Sorry for my english... :)
 
2
Posts
12
Years
  • Seen Sep 28, 2012
I'm really sorry if this has been posted before but I couldn't seem to find it.
I know how to use hidesprite to make a sprite disappear after a particular event, and then how to use showsprite to show them again. But what I don't get is how to have a sprite hidden in the first place (before any event is activated) and then have them appear for a particular event. So for example, I want my player character to choose their starter Pokemon, and then the rival to walk into the room to choose his. How would I do this? Do I need to use hidesprite/showsprite in a particular way, or is there a different command or what?
I'm using XSE if it helps. Thanks!
 
Status
Not open for further replies.
Back
Top