Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.

Generation I Glitch Discussion

More information on GlitchDexJP/Y:217 - Page 1

More information on GlitchDexJP/Y:217

Posted by: Torchickens
Date: 2019-02-07 15:14:46
First refer to:

(v1.0 release)
(v1.1+ releases)

These glitch Pokémon have the same index numbers, but curiously they have different families between v1.0 and v1.1+ releases of Japanese Yellow (v1.0 is a Nidoking (034) hybrid, v1.1+ is a Wigglytuff (040) hybrid).

It's known that different families result in different front stats, base stats, starting moves and various other attributes but I suddenly thought this may be a good way of documenting some Japanese Yellow revision differences (apart from the obscure boulder switch glitch).

Thanks to the English Pokémon Yellow disassembly, we can find at least the family list (Pokédex order) is at 10:50B1. Hence 0xD9 (there) should be at 10:50B1 + D8 = 5189. Forgetting about the Japanese version for a moment, we can use a SYM file to find data/code past 10:50B1 but before 10:5189. The closest we get is 10:516F (EmotionBubble).

In the disassembly, the routine is walked through here:
https://github.com/pret/pokeyellow/blob/67229ff7571f7216d899f81b5cacd55d476cd6f6/engine/overworld/emotion_bubbles.asm

10:5189 then, is the lower byte of the call CopyVideoData pointer (0:15FE in English Yellow). This explains why GlitchDex/Y:217 is family 254; it is taking code from emotion_bubbles.

However, the glitch Pokémon we're studying is for the Japanese Versions, where the ROM map is different as well as some of the code. Let's look into it.

In all four revisions, the start of Pokédex order is at 10:682D. 10:682D + D8 = 10:6905. As expected, this byte is 0x22 (034) in v1.0, and 0x28 (040) in v1.1+.

In v1.0, 10:6905 is the 0x22 in a call 1622 instruction. In v1.1+, 10:682D is the 0x28 in a call 1628 instruction.

We can then look for FA 50 CD; ld a, (CD50) before 10:6905 (which may determine the start of emotion_bubbles in the Japanese ROMs). We find the equivalent pointer for emotion_bubbles is at 10:68EB.

Now all we need to do is compare the English Version and the Japanese revisions.

Unfortunately, the only changes (for Japanese Yellow that is) seem to be artefacts of different revisions having different ROM maps, see below.

[img]https://i.imgur.com/ppYVvOU.png[/img]

Now though, we have documentation of where some of the glitch Pokémon in Yellow get their families from (edit: all of them are taken from this routine). Emotion_bubbles seems to be a Yellow exclusive routine. BGB set a breakpoint for this when I started fishing, and when I spoke to Pikachu immediately afterwards so it's likely used for special Pikachu emotions.