• 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 hack: Pokémon Vega (and Altair/Sirius) - English Version

13
Posts
7
Years
  • Age 28
  • Seen Oct 24, 2023
Hi, your work is really, really great! I have a few questions here and hopefully you can explain them to me.

1) Can we consider that you ported all the features from BPEJ/BPRJ to BPEE/BPRE? Or just translation work based on the original BPEJ/BPRJ ROMs?
2) Is your ROM based on the latest 2018 version of the original releases in Japanese?

TY!

"Apparently, there was an update to Japanese Vega over a year ago that wasn't integrated into the English patch"... "The only thing that changed was the sprites for Patroleo, Gardleon, and Royalert to reflect their changes in P/D:"... "so here's that update:"

Doesn't this post from Dr. Akimbo that was a few messages above yours answer your 2nd question?
 
Last edited:

jiangzhengwenjzw

now working on katam
181
Posts
11
Years
  • Seen today
Doesn't this post from Dr. Akimbo that was a few messages above yours answer your 2nd question?

Oh thanks. Usually I only view the main post :p
So it may be harder for Procyon/Deneb because there will be tons of routines to be ported (at least much work).
 
Last edited:
22
Posts
8
Years
  • Age 33
  • Seen Aug 19, 2022
Hello! I have a problem with the Sirius version. I played the latest patch of the game (2019 version) and i'm already at Asphere's chamber in Sphere Ruins. I cannot post the link of my youtube here because i'm relatively new to posting to pokécommunity so i apologize for that. Anyway, regarding my glitch, when i talk to Asphere, the game restarts. No matter how many times i try, the game still resets. I didn't use any cheats aside from the rare candy cheat (turned it off and deleted it after using) and my gameplay was smooth. I even followed the hellish puzzles of the game without the help of walkthrough walls.

I couldn't unlock the last event of the game because of this. Any help please? Thanks in advance!

I fixed this, the sprite for Asphere's Sirius form had been corrupted somehow: http://www.mediafire.com/file/f702h4d1rb79d72/Altair%2BSirius+20190613.zip
 
1
Posts
4
Years
  • Age 24
  • Seen Feb 25, 2022
Ok i didnt know about Altair/Sirius before vega so this is cool, but why can Wally catch a shroomish in an area where shroomish dont appear 😟
 
23
Posts
5
Years
  • Age 30
  • Seen Jan 15, 2023
are there any updates on deneb/procyon? last i heard the game was stuck on the 6th gym in the japanese version
 
23
Posts
7
Years
  • Age 28
  • Seen Sep 19, 2022
To Dr. Akimbo

Hi, I am a HUGE FAN of the Altair/Sirius series, and your translation work that has been done so far.

I'm looking forward to seeing when you end up finishing the English patches for Deneb/Procyon -- as I can imagine that will be a lot of hard work.
(Edit: yeah, I know, we'll have to wait for them to be finished by the Japanese team first)

I wish you luck \o/
 
Last edited:

jiangzhengwenjzw

now working on katam
181
Posts
11
Years
  • Seen today

This hack crashes on mGBA/no$gba emulator before the titlescreen loads.

I think it's because the LZ77 data at 0xF6E2D0 (titlescreen BG1 tilemap?) has some problem.

An easy solution to the problem is to put 00 00 at 0x78AC8, but clearly it will cause memory leak because it will never free DMA buffer (not a big issue, tho).
 
Last edited:
22
Posts
8
Years
  • Age 33
  • Seen Aug 19, 2022
This hack crashes on mGBA/no$gba emulator before the titlescreen loads.

I think it's because the LZ77 data at 0xF6E2D0 (titlescreen BG1 tilemap?) has some problem.

An easy solution to the problem is to put 00 00 at 0x78AC8, but clearly it will cause memory leak because it will never free DMA buffer (not a big issue, tho).
This fix doesn't seem to actually work. This issue actually came up before, and someone else fixed it for me (see the quote below). The problem is that I re-edited the title screen since then, and it apparently re-created the issue. I tried doing what he did, but I can't get it to work. I've also gotten reports that a similar thing happens when the Amnesia/Nasty Plot graphic (0xD0DD94) attempts to load, so that needs to be fixed as well.

What I did to fix the hack was twofold. The biggest problem was that two titlescreen assets (an image and a tilemap) were compressed with a faulty LZ77 algorithm, meaning that the game didn't allocate the right amount of space to uncompress the data into and it overflowed and wrote over the malloc header. When the game wanted to allocate more space for another asset, it couldn't validate the header and so jumped to a special section of code that's never run in the retail games which has a leftover assertion. In development kits, this would allow the computer to stop at a certain area of code to do some testing; in retail units, this just crashes the system. What I did was use gbagfx in order to properly recompress the assets, then reinserted them. The hardest part was figuring out which assets were broken in order to fix them.

There was also a second minor issue. At some point, the creators of Vega just did a find and replace in the ROM for a pointer, and that ended up affecting code that wasn't actually a pointer; I also went and fixed that.
 

jiangzhengwenjzw

now working on katam
181
Posts
11
Years
  • Seen today
This fix doesn't seem to actually work. This issue actually came up before, and someone else fixed it for me (see the quote below). The problem is that I re-edited the title screen since then, and it apparently re-created the issue. I tried doing what he did, but I can't get it to work. I've also gotten reports that a similar thing happens when the Amnesia/Nasty Plot graphic (0xD0DD94) attempts to load, so that needs to be fixed as well.

I can confirm that BG1 tilemap (LZ77ed) is broken.
It gets loaded at 0x8078A32, and if I skip that and every gfx after that (By modifying the instruction to 'b 8078B18'), The game won't crash (ofc, BG1 will have no content). And, it's very possible that other GFX stuff goes wrong so you'd better debug and check those.

Is there anything wrong with my fix? I mean, I know there's a memory leak (it's because, I fool the game to let it think the DMA copy has finished), but it seems to work on mgba/no$gba/vbam on my end. In addition, the heap will be initialized again soon after that, so I don't think it will cause any issue.

But yes, fixing the LZed graphics is the optimal and direct solution. Actually, several hacks here share the same problem and I guess some broken LZ77 tool is used by many people...
 
Last edited:

jiangzhengwenjzw

now working on katam
181
Posts
11
Years
  • Seen today
(This is not a reply to the main post, but to the players)
Here's a small routine to let the game display weight and height in kilogram and meter just like in Japanese version. (Insert it with armips)
W6SsQ7B.png

Code:
.gba
.thumb
.open "pokefirered.gba", 0x8000000

.org 0x8105F30
	bl 0x8105A3C

.org 0x8105A9A
	mov r0, #10
	mul r0, r4

// lbs. text -> kg.
.org 0x8415FA0
	.byte 0xDF, 0xDB, 0xAD, 0xFF

// For the 2 similar computation functions: 
// r0 = windowId;
// r1 = species;
// r2 = x;
// r3 = y;
.org 0x8105A70
	ldr r2, =diff | 1
	bx r2
.pool

.org 0x8105C3C
	ldr r0, =unit | 1
	bx r0
.pool

.org 0x8105C74
	ldr r0, =head | 1
	bx r0
.pool

.org 0x81058C4
diff:
	mov r2, r9
	cmp r2, #0x30 // second line
	beq weight
	ldrh r4, [r1, #0xc]

weight:
	add r2, sp, #8
	mov r1, #0xFC
	strb r1, [r2]
	add r2, #1
	ldr r1, =0x8105A79
	bx r1

unit:
	mov r0, r9
	cmp r0, #0x30 // second line
	beq weight2
	ldr r3, =gText_Meter

weight2:
	ldrb r0, [r3]
	cmp r0, #0xFF
	beq loc_8105C60
	mov r4, r3
	mov r3, r1
	ldr r1, =0x8105C47
	bx r1

loc_8105C60:
	ldr r0, =0x8105C61
	bx r0

head:
	mov r0, r9
	cmp r0, #0x30 // second line
	beq weight3
	ldr r2, =0x8415F98
	b merge

weight3:
	ldr r2, =0x8415F9B

merge:
	mov r0, r10
	mov r3, r8
	ldr r1, =0x8105C7D
	mov r8, r1
	mov r1, #0
	bx r8

.pool
gText_Meter:
	.byte 0xE1, 0xAD, 0xFF

.close
 
Last edited:
22
Posts
8
Years
  • Age 33
  • Seen Aug 19, 2022
Is there anything wrong with my fix? I mean, I know there's a memory leak (it's because, I fool the game to let it think the DMA copy has finished), but it seems to work on mgba/no$gba/vbam on my end. In addition, the heap will be initialized again soon after that, so I don't think it will cause any issue.
To be clear, I followed your instructions and changed "2D D1" to "00 00" at 0x78AC8. The ROM still crashes on no$gba.
 
Back
Top