Advertiser Content

FireRed Pokémon Vega (and Altair/Sirius) - English Version Page 22

Started by Dr. Akimbo March 26th, 2016 8:25 AM
  • 631602 views
  • 556 replies
Seen 2 Days Ago
Posted August 26th, 2019
21 posts
4.3 Years
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
Male
Seen 1 Week Ago
Posted 1 Week Ago
16 posts
3.3 Years
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/

jiangzhengwenjzw

now working on pokefirered

Male
Seen 1 Hour Ago
Posted 2 Weeks Ago
173 posts
7.1 Years
stuff
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).
Seen 2 Days Ago
Posted August 26th, 2019
21 posts
4.3 Years
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 pokefirered

Male
Seen 1 Hour Ago
Posted 2 Weeks Ago
173 posts
7.1 Years
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...

jiangzhengwenjzw

now working on pokefirered

Male
Seen 1 Hour Ago
Posted 2 Weeks Ago
173 posts
7.1 Years
(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)

.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
Seen 2 Days Ago
Posted August 26th, 2019
21 posts
4.3 Years
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.

jiangzhengwenjzw

now working on pokefirered

Male
Seen 1 Hour Ago
Posted 2 Weeks Ago
173 posts
7.1 Years
To be clear, I followed your instructions and changed "2D D1" to "00 00" at 0x78AC8. The ROM still crashes on no$gba.
Weird. I, just now, reapplied your patch on vanilla BPRE 1.0, and changed that instruction and it worked on both no$gba/mgba.
What's SHA-1 of your ROM after doing the modification? Mine is below:
14445af67e991d1f6c71bf4461f0c5cc08b3f55d  pokevega.gba

Illyasviel

video game hustler

Female
Seen 3 Days Ago
Posted 3 Days Ago
15 posts
7.6 Years
I first want to say that I'm replaying this game in English (Vega Minus) and I'm really impressed with the translation. In particular, I like how Team Dark Hole's name was handled -- it was both clever and entertaining.
Anyways, I noticed that when I use Surf in a Double Battle, and my partner has Water Absorb, it instead works as if my partner had Storm Drain. In other words, in targets my partner and only them, who drains the entire move and spares my opponents.
Still plays a Playstation Vita in public...
Seen 2 Days Ago
Posted August 26th, 2019
21 posts
4.3 Years
Weird. I, just now, reapplied your patch on vanilla BPRE 1.0, and changed that instruction and it worked on both no$gba/mgba.
What's SHA-1 of your ROM after doing the modification? Mine is below:
14445af67e991d1f6c71bf4461f0c5cc08b3f55d  pokevega.gba
It turns out I was using the wrong version of no$gba. Your fix works. However, I can't implement it into the patch just yet because the Nasty Plot/Amnesia crash is still occurring. In my opinion, a crash 20 hours in is actively worse than just letting the player know immediately that the ROM's not working with their emulator. I did temporarily edit the OP, though.

jiangzhengwenjzw

now working on pokefirered

Male
Seen 1 Hour Ago
Posted 2 Weeks Ago
173 posts
7.1 Years
It turns out I was using the wrong version of no$gba. Your fix works. However, I can't implement it into the patch just yet because the Nasty Plot/Amnesia crash is still occurring. In my opinion, a crash 20 hours in is actively worse than just letting the player know immediately that the ROM's not working with their emulator. I did temporarily edit the OP, though.
You will have to check all the pointers at 0x8078A94 to get a 'prettier' fix for the titlescreen. (3 of those are uncompressed palettes, but should easy to tell them apart because of LZ77 header)
It's very possible that multiple entries points to invalid LZ77 header.

For nasty plot idk, but usually it's also some problems with related graphics or the move animation/effect script.

sz

Bilbao
Seen 8 Hours Ago
Posted 2 Weeks Ago
120 posts
5.6 Years
Hey I have a problem with the 3rd final puzzle in the sphere ruins where you have to walk in the correct order or you'll fall in the holes, I've watched lets plays and have gotten to the last tile where i'm supposed to be able to move right and down but instead it pushes me into the hole, is this a bug or did i miss something before it?
You missed something. Not 100% sure, but I think you still have to do the puzzle in which you have to run horizontally from one side to another, it needs an specific order.
Advertiser Content