Jump to content

Pokémon Yellow: Difference between revisions

m
Text replacement - "~" to "–"
m (Bbbbbbbbba moved page User:Bbbbbbbbba/Pokémon Yellow to Pokémon Yellow without leaving a redirect: Moving former WIP page to the main namespace)
m (Text replacement - "~" to "–")
Line 26:
== Glitch items ==
{{main|ItemDex#English versions}}
[[Glitch item]]s in Yellow are also overall similar to [[Pokémon Red and Blue#Glitch items|glitch items in Red and Blue]]. In fact, glitch items in the valid ID range, as well as TM51~TM55TM51–TM55 (ID 251~255251–255), have exactly the same names and behaviors in Red/Blue and Yellow.
 
Some other glitch items in Yellow also have the same names as glitch items in Red/Blue. In particular, all the "floor name" items have the same IDs in Red/Blue and Yellow, as well as the "untranslated Japanese name" items (even though they usually have different effects; see below). However, in general, having the same name does not mean that the items also have the same ID. In fact, starting from [[ItemDex/Y:154]] ("POKéTRAINER"), most glitch items in Yellow have names that are similar to the name of the "previous" glitch item in Red/Blue (e.g. [[ItemDex/RB:153]] is also named "POKéTRAINER"). This is because this part of the ROMs have similar layouts between Red/Blue and Yellow, but the part before this (and after the item names) have different layouts, as well as different "accidental" 0x50 bytes.
 
Even though Yellow glitch items with ID 84~12884–128 also take their effect pointers from the code of the function ItemUseBall<ref>[https://github.com/pret/pokeyellow/blob/a42568278b8d401dcd02fc21650379fe464edad1/engine/items/item_effects.asm#L104 The function ItemUseBall in Yellow]</ref>, most of them have very different effect pointers and very different behaviors. The main reason is that the function ItemUseBall differs between Red/Blue and Yellow in a subtle way: The game needs to handle not only the special case of the old man catching tutorial, but also the Prof. Oak battle with Pikachu. This happens very early in the function, when the game makes a check to avoid the [[old man full box glitch]]; this check takes 5 more bytes to perform in Yellow than in Red<ref>[https://github.com/pret/pokeyellow/blob/5db3bdd6551fad07066b669db1e44a6151aaa0b4/engine/items/item_effects.asm#L117-L120 The check to avoid the old man full box glitch in Yellow], and [https://github.com/pret/pokered/blob/21908ba30a8bae5c5e1c86b1164402ec95da0220/engine/items/item_effects.asm#L117-L118 the same check in Red/Blue]. It is not entirely clear why this check was changed, since normally in the Prof. Oak battle the player does not even have any party, let alone a full party and a full box; the change may just be for consistency.</ref>. As a result, not only are the effect pointers of glitch items with ID 91~12891–128 taken from different instructions than that of the corresponding Red/Blue glitch items, but those two-byte pointers also align with the code in a different way, so they never "match up" with any Red/Blue effect pointers again<ref>There is a second check for the old man battle and the Prof. Oak battle, but the effect pointer of [[ItemDex/Y:128]] falls in the middle of that check, and the next glitch item starts from the beginning of the effect pointer table again. Code below that check would "align" with Red/Blue again, but those bytes are never used as effect pointers.</ref>. For example, there is no glitch item in Yellow that executes code from the player's party count like Red/Blue's [[ItemDex/RB:093|8F]], or from the player's Safari Ball count like Red/Blue's [[ItemDex/RB:106|-gm]]. Instead, Yellow has [[ItemDex/Y:099|ws m]], which executes code from the player's Pokémon count in the current box, while a similar glitch item does not exist in Red/Blue.
 
== RAM layout ==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.