List of items by index number (Generation I): Difference between revisions

m
Unfortunately, I've never delved into the games while they run, I only play with the ROM itself, so my ability to elucidate is limited here =P
(→‎Invalid items (adjacent names): I think you are better at wording things than me. Feel free to change things. The buffer limit is 20 in English versions. Might be different in Japanese versions.)
m (Unfortunately, I've never delved into the games while they run, I only play with the ROM itself, so my ability to elucidate is limited here =P)
Line 3: Line 3:
The names of items are stored in the ROM of the English {{2v2|Red|Blue}} games from the address 0x472B to 0x4A62 (0x433F to 0x45B4 in the Japanese games). The format is a simple list of variable-length strings (each byte of the string corresponding to a character, per the game's character encoding), with different strings separated by the byte 0x50.
The names of items are stored in the ROM of the English {{2v2|Red|Blue}} games from the address 0x472B to 0x4A62 (0x433F to 0x45B4 in the Japanese games). The format is a simple list of variable-length strings (each byte of the string corresponding to a character, per the game's character encoding), with different strings separated by the byte 0x50.


{| style="margin:auto; background: #{{Blue color}}; {{roundy}} border: 5px solid #{{Red color}};"
{| style="margin: auto; background: #{{Blue color}}; {{roundy}} border: 5px solid #{{Red color}}"
|-
|-
|
|
{| class="roundy sortable" border="1" style="background: #fff; border: 1px solid #{{Blue color}}; border-collapse:collapse;"
{| class="roundy sortable" border="1" style="background: #fff; border: 1px solid #{{Blue color}}; border-collapse: collapse"
|-
|-
! style="background:#{{Yellow color}}; {{roundytl|5px}}" | #
! style="background:#{{Yellow color}}; {{roundytl|5px}}" | #
Line 161: Line 161:
Directly following the item names—from address 0x4A63 in English, 0x45B5 in Japanese—are a list of floor names which are stored in the same format as the item names, meaning that they can be forced to appear as items; however they do not have valid effects and can freeze the game when used. These names are used by lifts and are retrieved from the same ROM location, meaning there is nothing in the games to suggest that these were ever intended as real items.
Directly following the item names—from address 0x4A63 in English, 0x45B5 in Japanese—are a list of floor names which are stored in the same format as the item names, meaning that they can be forced to appear as items; however they do not have valid effects and can freeze the game when used. These names are used by lifts and are retrieved from the same ROM location, meaning there is nothing in the games to suggest that these were ever intended as real items.


{| align="center" style="background: #{{Blue color}}; {{roundy}} border: 5px solid #{{Red color}};"
{| style="margin: auto; background: #{{Blue color}}; {{roundy}} border: 5px solid #{{Red color}}"
|-
|-
|
|
{| class="roundy sortable" border="1" style="background: #fff; border: 1px solid #{{Blue color}}; border-collapse:collapse;"
{| class="roundy sortable" border="1" style="background: #fff; border: 1px solid #{{Blue color}}; border-collapse: collapse"
|-
|-
! style="background:#{{Yellow color}}; {{roundytl|5px}}" | #
! style="background:#{{Yellow color}}; {{roundytl|5px}}" | #
Line 188: Line 188:
In the Japanese games, a series of [[Pokémon Red and Green Beta|unused]] strings also follows the list of floor names, from address 0x45F5 to 0x4671. The exact same data follows the floor names in the English games, from address 0x4A92 to 0x4B0E. Since this data follows the Japanese encoding, the strings are nonsense within English games. Like the list of floor names, they do not have valid effects when forced as items.
In the Japanese games, a series of [[Pokémon Red and Green Beta|unused]] strings also follows the list of floor names, from address 0x45F5 to 0x4671. The exact same data follows the floor names in the English games, from address 0x4A92 to 0x4B0E. Since this data follows the Japanese encoding, the strings are nonsense within English games. Like the list of floor names, they do not have valid effects when forced as items.


The last text string, "excellent" (Japanese: エクセレント) is curiously not terminated by 0x50. It is included in the internal name of the hex:74 item glitch item according to the buffer at CD68 (an address to store the names of strings and copy them elsewhere) after it is updated when the name of the item is selected, however, the lack of a 0x50 character is responsible for obscuring the name of the item and making "エクセレント" invisible.
The last text string, "excellent" (Japanese: エクセレント) is curiously not terminated by 0x50. It is included in the internal name of the hex:74 item glitch item according to the buffer at CD68 (an address to store the names of strings and copy them elsewhere) after the buffer is updated when the name of the item is selected, however, the lack of a 0x50 terminating character is responsible for obscuring the name of the item and making "エクセレント" invisible. In addition, the lack of a 0x50 character in the glitch item causes the game to simply freeze when it is selected (before it can be used), when a 0x50 cannot be found past the CD68 buffer.
 
{| style="margin: auto; background: #{{Blue color}}; {{roundy}} border: 5px solid #{{Red color}}"
In addition, the lack of a 0x50 character in the glitch item causes the game to freeze simply when it is selected, not used, when a 0x50 cannot be found past the CD68 buffer (which is capped to a limited number of bytes).
{| align="center" style="background: #{{Blue color}}; {{roundy}} border: 5px solid #{{Red color}};"
|-
|-
|
|
{| class="roundy sortable" border="1" style="background: #fff; border: 1px solid #{{Blue color}}; border-collapse:collapse;"
{| class="roundy sortable" border="1" style="background: #fff; border: 1px solid #{{Blue color}}; border-collapse: collapse"
|-
|-
! style="background:#{{Green color}}; {{roundytl|5px}}" | #
! style="background:#{{Green color}}; {{roundytl|5px}}" | #