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

Development: There, I Fixed It: Game Freak Presents in FireRed V1.0

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years

Game Freak Presents in FireRed V1.0

What are you even talking about? Game Freak Presents?

In V1.0 of FireRed and LeafGreen, there's supposed to be text that appears during the Game Freak introduction that says "PRESENTS", making it say, in all, "GAME FREAK PRESENTS". However, the developers forgot a section of code that loads the text to the screen, though it's present in the OAM tilespace. This was rectified in V1.1.

The fix

Compile this routine into any place in the ROM:

Code:
[div="font-family:consolas, courier new,monospace"].text
.align 2
.thumb
.thumb_func
.global gamefreakpresents

start:          ldr r0, [r6, #0x14]
                ldr r3, branch1
                bl bx_r3
                bl main
                strh r4, [r6, #0x12]
                ldr r3, return
bx_r3:          bx r3

main:
                push {r4-r7,lr}
                mov r4, #0x0
                ldr r6, mem1
                mov r5, #0xD0
                lsl r5, r5, #0xF
retry:          asr r1, r5, #0x10
                ldr r0, addr1
                mov r2, #0x6C
                mov r3, #0x5
                push {r4}
                ldr r4, branch2
                bl bx_r4
                pop {r4}
                lsl r0, r0, #0x18
                lsr r0, r0, #0x18
                lsl r2, r0, #0x4
                add r2, r2, r0
                lsl r2, r2, #0x2
                add r2, r2, r6
                ldrh r3, [r2, #0x4]
                lsl r0, r3, #0x16
                lsr r0, r0, #0x16
                lsl r1, r4, #0x2
                add r0, r0, r1
                ldr r7, val1
                add r1, r7, #0x0
                and r0, r1
                ldr r7, val2
                add r1, r7, #0x0
                and r3, r1
                orr r3, r0
                strh r3, [r2, #0x4]
                mov r0, #0x80
                lsl r0, r0, #0xE
                add r5, r5, r0
                add r4, #0x1
                cmp r4, #0x1
                ble retry
                pop {r4-r7}
                pop {r0}
                bx r0

bx_r4:          bx r4

.align 2
mem1:           .word 0x0202063C
addr1:          .word 0x0840BCFC
branch1:        .word 0x08007281
branch2:        .word 0x08006F8D
return:         .word 0x080ECE71
val1:           .word 0x000003FF
val2:           .word 0xFFFFFC00[/div]
Write down the offset you assemble this to.

Now, at 0xECE1C in the hex editor, write 00480047XXXXXX080000, replacing XXXXXX with the reversed offset+1 to the routine you inserted earlier. That's it!

The result

pzzu.png

Yessir, this is V1.0!

That's really all there is to it. Now you can actually present the game to your fans!
 

xGal

Mhm
241
Posts
12
Years
Oh, lol...

I am suprised nobody posted here yet because this is cool!

Nice found!

By the way, I can't rememmber something, I hope you could answer me... The "presents" text is in the image of the logo or another image? (what I meant is on UNLZ, when there might be few images in one, get it?)
 

RichterSnipes

Not even a nibble...
513
Posts
12
Years
  • Age 30
  • USA
  • Seen Dec 1, 2023
I'm surprised a fix for this hasn't popped up until now. Thanks for this! Every little issue matters, and this won't go unappreciated.
 

Trev

[span="font-size: 8px; color: white;"][font="Monts
1,505
Posts
11
Years
  • Age 27
  • Seen Nov 15, 2023
To answer your question Gal, the PRESENTS logo is in fact in UNLZ. I think it's around 201.
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
I thought people might like this:

Game Freak Presents in LeafGreen 1.0


Basically, I just modified the offsets of the code to make it work on LeafGreen version.

The Code


All you need to do is replace the stuff at the bottom with this:

Code:
.align 2
mem1:           .word 0x0202063C @ Same as FR
addr1:          .word 0x0840BB38 @ Changed
branch1:        .word 0x08007281 @ Same as FR
branch2:        .word 0x08006F8D @ Same as FR
return:         .word 0x080ECE49 @ Changed
val1:           .word 0x000003FF @ Same as FR
val2:           .word 0xFFFFFC00 @ Same as FR

All the other assembly for it is the same.

Then, go to 0xECDF4 in a hex editor and type:
00 48 00 47 XX XX XX 08 00 00
Where XX XX XX is the offset that you inserted the routine at + 1, reversed.

Yay! Big thanks to diegoisawesome for the original stuff.
 
Back
Top