• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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.
11
Posts
12
Years
  • Seen Apr 14, 2012
What tool can I use to edit the text of a Pokémon Fire Red ROM (for a translation)? I'm using advance text right now to edit the dialogue (as well as some other programs to edit item text, attack text and the pokedex) but I'm unable to edit battle text, map text and menu text, as well as trainer names (+ probably more). Someone else told me I need to use relative searching with a hex editor. I downloaded WindHex but I literally do not understand anything in that program at all... the guy tried to explain how I have to search for the text using the "relative difference between characters" but, I'm sorry, could I get that in English please??? He gave me some example strings (like 03 01 02 0E) to search for, but I searched for them in WindHex and got the same error every time: "Sorry, the string was not found". And what is all this I'm reading about having to build a table first?

It'd be really nice if someone could explain this to me. I've googled and everything but there aren't any walkthroughs available, nor would walkthroughs even help me because I need someone to explain it to me. :\ Because I have literally no experience with ROM hacking whatsoever...
 

droomph

weeb
4,285
Posts
12
Years
What tool can I use to edit the text of a Pokémon Fire Red ROM (for a translation)? I'm using advance text right now to edit the dialogue (as well as some other programs to edit item text, attack text and the pokedex) but I'm unable to edit battle text, map text and menu text, as well as trainer names (+ probably more). Someone else told me I need to use relative searching with a hex editor. I downloaded WindHex but I literally do not understand anything in that program at all... the guy tried to explain how I have to search for the text using the "relative difference between characters" but, I'm sorry, could I get that in English please??? He gave me some example strings (like 03 01 02 0E) to search for, but I searched for them in WindHex and got the same error every time: "Sorry, the string was not found". And what is all this I'm reading about having to build a table first?

It'd be really nice if someone could explain this to me. I've googled and everything but there aren't any walkthroughs available, nor would walkthroughs even help me because I need someone to explain it to me. :\ Because I have literally no experience with ROM hacking whatsoever...
XSE or PKSV can decompile scripts pretty easily. Also search some tutorials.
Spoiler:
Also if you're going to do any work you're going to post here you might as well search to see if that language hasn't been already taken. And also check if the ROM supports all the characters in your language, as the ROM is not in Unicode, so a majority of languages must be re-fonted to add support to other languages.
 
Last edited:

destinedjagold

You can contact me in PC's discord server...
8,593
Posts
16
Years
  • Age 33
  • Seen Dec 23, 2023
Oh, okay. I'll try, after I redo everything... I'll probably have to get around to it this weekend.
And it's weird. If I leave my computer running and reopen the rom, everything is fine. If I open up another copy of the same stage that I made as a backup, everything is messed up. If I restart my computer, everything is messed up.

Before you open your ROM via Unlz-GBA, I suggest you first delete two files with the extensions .spr and .pal
edit: the files are located on the same location where your ROM is.
And after you deleted those files, Unlz-GBA will reset locating the things in your ROM.
Spoiler:


That's what I always do when I change something in my ROM via Unlz-GBA, especially if I assigned an offset for repointing.
 

Darkdata

15 year old me was an idiot.
137
Posts
18
Years
  • Age 39
  • Seen Nov 25, 2013
The Pokemon games use uncompressed strings. And they are easy to repoint and work with.

Here is a table file:
Code:
00= 
01=À
02=Á
03=Â
04=Ç
05=È
06=É
07=Ê
08=Ë
09=Ì
0B=Î
0C=Ï
0D=Ò
0E=Ó
0F=Ô
10=Œ
11=Ù
12=Ú
13=Û
14=Ñ
15=ß
16=à
17=á
19=ç
1A=è
1B=é
1C=ê
1D=ë
1E=ì
20=î
21=ï
22=ò
23=ó
24=ô
25=œ
26=ù
27=ú
28=û
29=ñ
2A=º
2B=ª
2D=&
2E=+
34=[Lv]
35==
36=;
51=¿
52=¡
53=[pk]
54=[mn]
55=[po]
56=[ké]
57=[bl]
58=[oc]
59=[k]
5A=Í
5B=%
5C=(
5D=)
68=â
6F=í
79=[U]
7A=[D]
7B=[L]
7C=[R]
85=<
86=>
A1=0
A2=1
A3=2
A4=3
A5=4
A6=5
A7=6
A8=7
A9=8
AA=9
AB=!
AC=?
AD=.
AE=-
AF=·
B0=...
B1=«
B2=»
B3='
B4='
B5=|m|
B6=|f|
B7=$
B8=,
B9=*
BA=/
BB=A
BC=B
BD=C
BE=D
BF=E
C0=F
C1=G
C2=H
C3=I
C4=J
C5=K
C6=L
C7=M
C8=N
C9=O
CA=P
CB=Q
CC=R
CD=S
CE=T
CF=U
D0=V
D1=W
D2=X
D3=Y
D4=Z
D5=a
D6=b
D7=c
D8=d
D9=e
DA=f
DB=g
DC=h
DD=i
DE=j
DF=k
E0=l
E1=m
E2=n
E3=o
E4=p
E5=q
E6=r
E7=s
E8=t
E9=u
EA=v
EB=w
EC=x
ED=y
EE=z
EF=|>|
F0=:
F1=Ä
F2=Ö
F3=Ü
F4=ä
F5=ö
F6=ü
F7=|A|
F8=|V|
F9=|<|
FA=|nb|
FB=|nb2|
FC=|FC|
FD=|FD|
FE=|br|
FF=|end|

If you load this, you should be able to see any string you search for. To repoint a string, say this guy:
W0khZ.png


First, search for his string in a hex editor, I use WINDHEX, so I can load a table and search in ASCII characters directly. When I look for it, I find it at 0x17d80d

Now, saw there was not enough room for this string, first I need to find the pointer to it, to do that, you take the bytes, and reverse the order. So 0x17d80d -> [17] [D8] [0D] becomes [0d] [d8] [17], we then add an [08] to the end.

So, [0d] [d8] [17] [08] (0DD81708) is what we search for! After searching, we find it at 0x165831. Keep note of this.

Now, we just need to find some free space. There's about 3MB of free space floating around for anyone to use, just look around 0x800000. So i'll just use that.

So, I insert/write my new text into that slot.
Benl7.png

Now, we just convert 0x800000 into a pointer the same way we did the old text: [80] [00] [00] -> [00] [00] [80] [08] adding [08] to the end like normal.

Now we go back to the first text pointer we found: 0DD81708 at 0x165831, remember? and replace that pointer (0DD81708) with our new one (00008008).
Z1nM5.png

xTSD7.png


FE=|br|, is the first linebreak you make, then you use FB=|nb2|, for each line after in the same box. To make a new box appear, you use FA=|nb|. Always have a [FF] at the end to terminate the string.
 
Last edited:
8
Posts
12
Years
  • Seen Apr 17, 2014
Hi, I wanted to check if one can create a new behavioural byte for pokemon emerald,
Because I am attempting to create a "super region",
And I want kanto maps that I port into Emerald to play kanto battle themes and wild encounter themes when I am on those maps!
 

Speedster

The Unknown
134
Posts
12
Years
Hi, I wanted to check if one can create a new behavioural byte for pokemon emerald,
Because I am attempting to create a "super region",
And I want kanto maps that I port into Emerald to play kanto battle themes and wild encounter themes when I am on those maps!
Well if you want to put FireRed themes into Emerald you will have to overwrite the themes of emerald. Then you can use A-Map for needs of changing what music plays in each map.
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
Hi, I wanted to check if one can create a new behavioural byte for pokemon emerald,
Because I am attempting to create a "super region",
And I want kanto maps that I port into Emerald to play kanto battle themes and wild encounter themes when I am on those maps!

I would consult this tutorial on how to switch between two different tracks for different regions. It allows you to have "replace" a track with another track, easy peasy.
 
3
Posts
15
Years
  • Seen Dec 13, 2014
Hello people,

me and my brother are new here and we decided to try make our own hack. However, we have some difficulties with editing pallets and inserting new tiles. We searched forum and followed few walkthrought here but still we can't edit that with proper success.

So, here is the problem.
We want to use some of these(those ice blocks) on weasleyfg.weebly.com (projectmarnianregionl00.png), but we just can't put them into the rom (FireRed). Point is, that when we try to insert them, the final pallet and block edit is in different color scheme. Any ideas what are we doing wrong?

Thanks for any advice:)
 
8
Posts
12
Years
  • Seen Apr 17, 2014
I would consult tutorial on how to switch between two different tracks for different regions. It allows you to have "replace" a track with another track, easy peasy.

I came across that site before,
And I attempted to copy it on firered
But I messed up.

Perhaps you can reguide me through the steps,
cause if I can mess up such an elaborate tutorial,
It pretty much means I misunderstood a certain step.
(though it mighht have been my final script that I messed up with)..

also, I'm trying to do that on emerald, and I'm not sure what different offsets it uses
 

Speedster

The Unknown
134
Posts
12
Years
Hello people,

me and my brother are new here and we decided to try make our own hack. However, we have some difficulties with editing pallets and inserting new tiles. We searched forum and followed few walkthrought here but still we can't edit that with proper success.

So, here is the problem.
We want to use some of these(those ice blocks) on weasleyfg.weebly.com (projectmarnianregionl00.png), but we just can't put them into the rom (FireRed). Point is, that when we try to insert them, the final pallet and block edit is in different color scheme. Any ideas what are we doing wrong?

Thanks for any advice:)
Well in most tutorials they explain how the tiles you insert MUST match the colors of tiles already in the game. Either wise the newly inserted tiles will have an odd looking pallet. You could also change a pallet but if you change the pallet of a highly used one the tiles already in game will get messed up. For a suggestion you could edit the pallet of Pallet #7 which is usually 2 colors (black and pink) and no tiles use that pallet so you can use it yourself. Hope this clears things up.
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
Well in most tutorials they explain how the tiles you insert MUST match the colors of tiles already in the game. Either wise the newly inserted tiles will have an odd looking pallet. You could also change a pallet but if you change the pallet of a highly used one the tiles already in game will get messed up. For a suggestion you could edit the pallet of Pallet #7 which is usually 2 colors (black and pink) and no tiles use that pallet so you can use it yourself. Hope this clears things up.

In addition to this, I'd like to point out that the Pallate for everything from 7 down changes depending on the tileset, so you'll have to change all the pallates for the tilesets you're using. However, with a little searching around, you can usually find a pallate you currently have with the colors you need. Pallate 3 for Firered has plenty of white and grays, as well as blue, so you can go that route too. I don't know about RSE thought, but I'm sure you can find one.
 
2
Posts
12
Years
  • Seen Mar 27, 2017
ok i'm a little new to all this, so please just bear with me. now i've serched all day and i just cant seem to find out how to write a complex level script for fire red. im trying to change the begining prof. oak script for when you try to leave town, i understand how to script but i just need a little visual on how it should look..also i was wondering if there was a way to add pokemon without replacing any
 

DrFuji

[I]Heiki Hecchara‌‌[/I]
1,691
Posts
14
Years
ok i'm a little new to all this, so please just bear with me. now i've serched all day and i just cant seem to find out how to write a complex level script for fire red. im trying to change the begining prof. oak script for when you try to leave town, i understand how to script but i just need a little visual on how it should look..also i was wondering if there was a way to add pokemon without replacing any

If you know how to make any sort of script, then a level script shouldn't be too much of a problem since it is largely identical, apart from how it is assigned to a map rather than a person/ tile. This tutorial has enough documentation and directions to help you insert you first levelscript.

There is currently a FR patch that is being made which will include all 649 Pokemon when it is fully released so you won't have to replace anything. On the other hand, if you want to insert some now, you can replace the 25 empty slots in between Celebi and Treecko as they are currently unused - Here is a tutorial on how to insert them with Wichu's tools.
 
2
Posts
12
Years
  • Seen Mar 27, 2017
so basically a level script is a regular script, just set to a map right?

and i can select 1 of the free 25 slots to add something? the way i was reading the tutorial i was thinking that it had to be a pokemon already represented with a picture

anyways thanx that helped alot
 
Last edited:
21
Posts
13
Years
Hello everyone,

After nearly two hours of searching, I finally found Emerald version used in this video:
http://www.youtube.com/watch?v=KzG3IRIE9vI

The only problem is that this version is all... chinese...

Can ANYONE translate it to english?

NOTES:
- do not know, which version of Emerald is patched
- do not have any patch, just the ROM
- do not know if it really is 493 hack, or just edited 386, but starters are Chimchar, Turtwig and Piplup
- do not know if any new moves are imported

If anyone can do anything about this, please let me know... I cannot speak or even read chinese, so play this game kinda sux...
 

Speedster

The Unknown
134
Posts
12
Years
Hello everyone,

After nearly two hours of searching, I finally found Emerald version used in this video:
http://www.youtube.com/watch?v=KzG3IRIE9vI

The only problem is that this version is all... chinese...

Can ANYONE translate it to english?

NOTES:
- do not know, which version of Emerald is patched
- do not have any patch, just the ROM
- do not know if it really is 493 hack, or just edited 386, but starters are Chimchar, Turtwig and Piplup
- do not know if any new moves are imported

If anyone can do anything about this, please let me know... I cannot speak or even read chinese, so play this game kinda sux...
Well based on the video that is fake (Since there is a western meowth). Although it is possible. There are projects going on to have all 649 pokemon in Ruby and FireRed. Now emerald was a tricky situation so adding all 649 pokemon to it was dropped. So follow these projects and wait for the releases.
 
13
Posts
12
Years
  • Seen Feb 26, 2014
Here's the way things are now. There's a particular trainer, Battle Girl Lauren, who is known to cause problems. So I moved her to my debug location using Advance Map. She has a Hitmonlee with AI Value 200. She has an Antidote, a Burn Heal, a Full Heal, and a Full Restore. I poison the Hitmonlee and, consistently, she uses a Super Repel one turn, followed by a ?????? the next turn. Each will say "Foe HITMONLEE's SUPER REPEL/?????? cured POISON!" without actually doing so.

So next, I remove all of her items and set Hitmonlee's AI Value to 0. I confirm that these changes take effect through HxD. I also change her name to confirm I'm loading the right ROM in VBA. So now, when Battle Girl Laurrrrrr battles me, she still uses a Super Repel and a ?????? when her Hitmonlee gets poisoned. Same behavior as before, even though her data changed.

Now, I've figured out all the bytes in the trainer Pokemon data section (AI, level, dex number, item, and attacks), but I've got some holes in the trainer data:

Code:
0-1   - ???
2-3   - Music and Sprite
4-15  - Name
16-23 - Items
24-27 - ???
28    - Type (07 is story battle, I think)
29-31 - ???
32    - Pokemon count
33-35 - ???
36-39 - The address of the Pokemon data
I'm wondering if any of the blanks could be causing issues. So, two questions: First, can anyone fill in my blanks? Second, is there anything else that may account for the weird item behavior? It definitely seems to be tied to particular trainers, rather than some corruption of the battle code... though I obviously am not certain.

I haven't posted in a while, but I just wanted to give an update for future reference and to ask a new, hopefully simpler, question.

After a lot of tracing through code, I found that the game simply wasn't loading item data from the right spot. It loaded the trainer's name, Pokemon, sprite, everything else correctly, but the items were just wrong.

In this ROM, the trainer table is in a different location, due to being expanded. And even though most things worked, I discovered there was one place where the pointer was still pointing to the old table location. So it was essentially loading garbage data, or other code, in place of the items and using those somehow. After changing that pointer to the right value, everything is fine again.

The new question: why didn't that pointer get updated? I didn't expand the trainer data myself, but are there any caveats we should be aware of in the future?
 

wierddude22

New hacker
24
Posts
12
Years
not sure if it has been answered but i don't want to go through 820 pages

i have a warp in firered that warps you into a pokemon centre, my problem is the warp makes the player land in the middle
 
Status
Not open for further replies.
Back
Top