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

FireRed: Fixing the trainer's facing

NarutoActor

The rocks cry out to me
1,974
Posts
15
Years
Hello all, have you guys ever noticed that when you get in to a trainer battle you don't face them? You just go straight in to a battle. This doesn't occur in R/S/E. The theory is that GameFreak, was making FR seem more like the original R/B.

Well now thanks to the work of Jambo51, we have a fix.
Below are 3 attachments, 2 asm files(Binary), and a script. This hack changes the script that loads before a trainer battle. It also changes special 0x37.

Alright, now open a hex editor, and-
Insert the TFH.asm into free space
Insert the SSH.asm into free space

Go to 0x81C0A
Copy 0xA(10) Amount of Bytes and replace with:
01 49 08 47 00 00 XX XX XX 08

The XX's is the location of the SSH.asm routine that was inserted earlier. (+1)

In the Script replace the YY's With the pointer to the TFH routine (+1)
Compile the script, and record it's location.
Reverse the location so it can be pointed to in hex.

Now go to these three locations:
0x1a4ebd, 0x1a4ee4 and 0x1a4f15

Replace the pointer there with a pointer to the New script.

There you go, if you are going to be using this for your hack make sure to have this in your credits.

Jambo51-Trainer Facing fix
NarutoActor-Trainer Facing Tutorial.

With out that in your credits, you may not use this hack.
 

Pokepal17

More cowbell~
1,519
Posts
15
Years
Nice to see that someone finally figured this out and posted it. :3
However, I think you should add a few screens for visual aid, especially for people like me who are visual learners.
 

NarutoActor

The rocks cry out to me
1,974
Posts
15
Years
Really, I thought it was pretty self explanatory, and it only takes a few minutes. Just open a hex editor and follow those steps.
 

colcolstyles

Yours truly
1,588
Posts
15
Years
Do you mind posting the custom code (like, include it in the post instead of just attaching it)? This thread is kinda skimpy at the moment and it offers no explanation of why it works (if it even does; I haven't tested it). Also, perhaps you could disassemble the routines at those addresses and post them here, too? I'm interested in the project but not to the point where I'm willing to fire up Fusion just to look at some routines with no background. :\
 

Quilava's Master

Shattered Dreams '13
694
Posts
16
Years
  • Seen Aug 14, 2023
There's a gltich. When you battle someone who uses "trainerbattle 0x1" i.e gym leaders your character faces right no matter which direction you talk to them from.

Edit: fixed it by only placing a pointer to the script @ 0x1a4ebd. I'm unsure if there are any unforseen errors created by not placing the pointer at the other two locations but so far so good.
 
Last edited:
35
Posts
16
Years
  • Seen Jun 17, 2013
I have try it on a Firered (English) Rom and it works.
I have researched the Offsets for the German Rom (Feuerrot) and changed it in all three Scripts.
But my Hero is facing in the wrong direction. So, what is my mistake?

So here the change to the german offsets:
The change in the SSH.asm file
storeloc: .word 0x03005548
place: .word 0x083C7248
return: .word 0x08081C17

The change in the TFH(1).asm file
storeloc: .word 0x03005548
playerloc: .word 0x02036E38
lastresult: .word 0x020370D0

The change in the Facing(1).rbc file
#dynamic 0x800000

#org @main
callasm 0x8XXXXXX
compare LASTRESULT 0x0
if 0x1 call @down
compare LASTRESULT 0x1
if 0x1 call @up
compare LASTRESULT 0x2
if 0x1 call @left
compare LASTRESULT 0x3
if 0x1 call @right
goto 0x81A4FC7

On XXXXXX i have to put the offset to the TFH routine (+1).


On 081B6E where I have to insert this 01 49 08 47 00 00 YY YY YY 08
YY stands for the pointer for the Offset where I have inserted the SSH ASM.
And here the three offsets for changing the pointers.
1A7B71
1A7B98
1A7BC9

Did I make a mistake?
I hope you can help me.

Maybe I found the wrong offsets for the german rom, but I am sure that this are the right offsets. But the script doesn´t work.

And I have a question. Which of both asm scripts reads the direction to the trainer? Maybe this could be the reason why my hero is facing to the wrong direction

OK THERE ARE A LOT OF DIFFERENTS BETWEEN THE SCRIPT OF THE GERMAN AND THE ENGLISH ROM. I HOPE THERE WOULD BE A PERSON WHO CAN CHANGE BOTH ASM SCRIPTS FOR USING FOR THE GERMAN ROM AND THE BATTLESCRIPT,TOO. I TRIED TO CHANGE SOME DIFFERENTS, BUT IT DOESN´T WORK. HERE THE OFFSETS:
1A7B71<--1a4ebd
1A7B98<--1a4ee4
1A7BC9<--1a4f15
1A7B9C<--1a4ee8
1A4FBA--> 1A7C76
1A4F20--> 1A7BD4
1A4F19--> 1A7BCD
1A4FC7--> 1A7C81
1A4FC5--> 1A7C7F
1A501A--> 1A7CD4
1A5017--> 1A7CD1
1A5019--> 1A7CD3

I hope there is a person which can changes the three scripts which are needed to insert in the rom for the german rom. I don´t succed. Maybe this can help you:
hxxp://www.n-roms.de/gba/index.php?action=details&id=256
 
Last edited:

Crocky

SuperScarlet!
97
Posts
15
Years
  • Seen Jul 23, 2020
What program do I use to go to 0x81C0A, 0x1a4ebd, 0x1a4ee4 and 0x1a4f15? I use THUMB Editor & Assembler to insert the ASM.
 
15
Posts
4
Years
  • Age 31
  • Seen Sep 21, 2023
The links are totally down. Can anyone re-upload the files or create another thread explaining how to apply this script with new hacking tools or even better, share a patch that works for both FR and LG 1.0? I really want to use this fix, I've tried to find somewhere else but I can't seem to find a clear or straight answer.
 
31
Posts
3
Years
I have try it on a Firered (English) Rom and it works.
I have researched the Offsets for the German Rom (Feuerrot) and changed it in all three Scripts.
But my Hero is facing in the wrong direction. So, what is my mistake?

So here the change to the german offsets:
The change in the SSH.asm file
storeloc: .word 0x03005548
place: .word 0x083C7248
return: .word 0x08081C17

The change in the TFH(1).asm file
storeloc: .word 0x03005548
playerloc: .word 0x02036E38
lastresult: .word 0x020370D0

The change in the Facing(1).rbc file
#dynamic 0x800000

#org @main
callasm 0x8XXXXXX
compare LASTRESULT 0x0
if 0x1 call @down
compare LASTRESULT 0x1
if 0x1 call @up
compare LASTRESULT 0x2
if 0x1 call @left
compare LASTRESULT 0x3
if 0x1 call @right
goto 0x81A4FC7

On XXXXXX i have to put the offset to the TFH routine (+1).


On 081B6E where I have to insert this 01 49 08 47 00 00 YY YY YY 08
YY stands for the pointer for the Offset where I have inserted the SSH ASM.
And here the three offsets for changing the pointers.
1A7B71
1A7B98
1A7BC9

Did I make a mistake?
I hope you can help me.

Maybe I found the wrong offsets for the german rom, but I am sure that this are the right offsets. But the script doesn´t work.

And I have a question. Which of both asm scripts reads the direction to the trainer? Maybe this could be the reason why my hero is facing to the wrong direction

OK THERE ARE A LOT OF DIFFERENTS BETWEEN THE SCRIPT OF THE GERMAN AND THE ENGLISH ROM. I HOPE THERE WOULD BE A PERSON WHO CAN CHANGE BOTH ASM SCRIPTS FOR USING FOR THE GERMAN ROM AND THE BATTLESCRIPT,TOO. I TRIED TO CHANGE SOME DIFFERENTS, BUT IT DOESN´T WORK. HERE THE OFFSETS:
1A7B71<--1a4ebd
1A7B98<--1a4ee4
1A7BC9<--1a4f15
1A7B9C<--1a4ee8
1A4FBA--> 1A7C76
1A4F20--> 1A7BD4
1A4F19--> 1A7BCD
1A4FC7--> 1A7C81
1A4FC5--> 1A7C7F
1A501A--> 1A7CD4
1A5017--> 1A7CD1
1A5019--> 1A7CD3

I hope there is a person which can changes the three scripts which are needed to insert in the rom for the german rom. I don´t succed. Maybe this can help you:
hxxp://www.n-roms.de/gba/index.php?action=details&id=256

Hi sir can please post the code for USA/English Pokemon Fire Red,,,,because the download link is not working anywore...thanks sir in advance!!!
 
Back
Top