Type chart data structure (Generation III): Difference between revisions

No edit summary
mNo edit summary
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==Specs==
The [[type]] chart in the [[Generation III]] Pokémon games are stored in a 336-byte data structure.
The [[type]] chart in the [[Generation III]] Pokémon games are stored in a 336 byte data structure. The data structure consists of 112 3-byte entries, all of which use the following format:


{| align="center" style="border: 1px solid #88a; background: #f8f8ff; padding: 0.5em;" cellspacing="3"
==Format==
|-
The data structure consists of 112 3-byte entries, all of which use the following format. Data whose names are marked with an asterisk (*) have more information below the table.
! style="text-align: center; background: #ccf;" | '''Base Stats''' || colspan="2" style="text-align: center; background: #ccf;" | Data whose names are marked with an asterisk (*) have more information below the table.
{| align="center" style="border: 2px solid #88a; background: #f8f8ff; padding: 2px;" class="roundy"
|-
|- style="background-color: #ccccff"
| Name || Type || Description
! style="{{roundytl|5px}}" | Name !! Type !! style="{{roundytr|5px}}" | Description
|-
|- style="background-color: #e6e6ff"
| [[Type|Attacking Type]]* || byte || The type of the move being used.
| [[Type|Attacking Type]]* || byte || The type of the move being used.
|-
|- style="background-color: #e6e6ff"
| Defending Type* || byte || The type of the Pokémon being attacked.
| Defending Type* || byte || The type of the Pokémon being attacked.
|-
|- style="background-color: #e6e6ff"
| [[Type#Type effectiveness|Effectiveness]]* || byte || Used to determine the Damage multiplier.
| style="{{roundybl|5px}}" | [[Type#Type effectiveness|Effectiveness]]* || byte || style="{{roundybr|5px}}" | Used to determine the Damage multiplier.
|}
|}


Line 20: Line 19:
Types are enumerated like this:
Types are enumerated like this:


{|
<div style="columns: 22em 3;">
|-
* 00. {{t|Normal}}
| 00. {{t|Normal}}
* 01. {{t|Fighting}}
| 01. {{t|Fighting}}
* 02. {{t|Flying}}
| 02. {{t|Flying}}
* 03. {{t|Poison}}
| 03. {{t|Poison}}
* 04. {{t|Ground}}
| 04. {{t|Ground}}
* 05. {{t|Rock}}
| 05. {{t|Rock}}
* 06. {{t|Bug}}
|-
* 07. {{t|Ghost}}
| 06. {{t|Bug}}
* 08. {{t|Steel}}
| 07. {{t|Ghost}}
* 09. {{t|???}}
| 08. {{t|Steel}}
* 10. {{t|Fire}}
| 09. {{t|???}}
* 11. {{t|Water}}
| 10. {{t|Fire}}
* 12. {{t|Grass}}
| 11. {{t|Water}}
* 13. {{t|Electric}}
|-
* 14. {{t|Psychic}}
| 12. {{t|Grass}}
* 15. {{t|Ice}}
| 13. {{t|Electric}}
* 16. {{t|Dragon}}
| 14. {{t|Psychic}}
* 17. {{t|Dark}}
| 15. {{t|Ice}}
</div>
| 16. {{t|Dragon}}
| 17. {{t|Dark}}
|}


===Effectiveness===
===Effectiveness===
{|style="border: 1px solid #88a; padding: 0.5em;" cellspacing="9"
{|style="border: 1px solid #88a;" class="roundy"
|00
! Hex
! Dec
! Description
|-
|0x00
|0
|Totally ineffective, such as {{t|Electric}} on {{t|Ground}}.
|Totally ineffective, such as {{t|Electric}} on {{t|Ground}}.
|-
|-
|05
|0x05
|5
|Not very effective, such as {{t|Water}} on {{t|Grass}}.
|Not very effective, such as {{t|Water}} on {{t|Grass}}.
|-
|-
|14
|0x14
|20
|Supereffective, such as {{t|Ice}} on {{t|Dragon}}
|Supereffective, such as {{t|Ice}} on {{t|Dragon}}
|}
|}


Normally effective attacks, such as {{t|Fighting}} on {{t|Poison}} are not listed in the table.
Normally effective attacks, such as {{t|Bug}} on {{t|Normal}}, assume a default value of 0x0A (10), so they don't need to be listed in this table.


===Foresight and Odor Sleuth===
===Foresight and Odor Sleuth===
Line 65: Line 68:


The end of the table is marked with FF FF 00.
The end of the table is marked with FF FF 00.
==Fingerprint==
<pre>
00 05 05  // Normal -> Rock    (Not very effective)
00 08 05  // Normal -> Steel    (Not very effective)
0A 0A 05  // Fire  -> Fire    (Not very effective)
0A 0B 05  // Fire  -> Water    (Not very effective)
0A 0C 14  // Fire  -> Grass    (Super effective)
0A 0F 14  // Fire  -> Ice      (Super effective)
0A 06 14  // Fire  -> Bug      (Super effective)
0A 05 05  // Fire  -> Rock    (Not very effective)
0A 10 05  // Fire  -> Dragon  (Not very effective)
0A 08 14  // Fire  -> Steel    (Super effective)
0B 0A 14  // Water  -> Fire    (Super effective)
</pre>


{{data structure}}<br>
{{data structure}}<br>
{{Project Games notice|data structure}}
{{Project Games notice|data structure}}

Latest revision as of 18:45, 28 August 2022

The type chart in the Generation III Pokémon games are stored in a 336-byte data structure.

Format

The data structure consists of 112 3-byte entries, all of which use the following format. Data whose names are marked with an asterisk (*) have more information below the table.

Name Type Description
Attacking Type* byte The type of the move being used.
Defending Type* byte The type of the Pokémon being attacked.
Effectiveness* byte Used to determine the Damage multiplier.

Notes

Types

Types are enumerated like this:

Effectiveness

Hex Dec Description
0x00 0 Totally ineffective, such as Electric on Ground.
0x05 5 Not very effective, such as Water on Grass.
0x14 20 Supereffective, such as Ice on Dragon

Normally effective attacks, such as Bug on Normal, assume a default value of 0x0A (10), so they don't need to be listed in this table.

Foresight and Odor Sleuth

Near the end of the data structure, there are three bytes that signal the end of the normal part of the table - FE FE 00. There are only two entries after this, and they are Fighting and Normal on Ghost, respectively.

However, this area of the table is unique in that all entries in it are ignored after Foresight or Odor Sleuth is used, simply reverting to normal damage.

The end of the table is marked with FF FF 00.

Fingerprint

00 05 05  // Normal -> Rock     (Not very effective)
00 08 05  // Normal -> Steel    (Not very effective)
0A 0A 05  // Fire   -> Fire     (Not very effective)
0A 0B 05  // Fire   -> Water    (Not very effective)
0A 0C 14  // Fire   -> Grass    (Super effective)
0A 0F 14  // Fire   -> Ice      (Super effective)
0A 06 14  // Fire   -> Bug      (Super effective)
0A 05 05  // Fire   -> Rock     (Not very effective)
0A 10 05  // Fire   -> Dragon   (Not very effective)
0A 08 14  // Fire   -> Steel    (Super effective)
0B 0A 14  // Water  -> Fire     (Super effective)


Data structure in the Pokémon games
General Character encoding
Generation I Pokémon speciesPokémonPoké MartCharacter encodingSave
Generation II Pokémon speciesPokémonTrainerCharacter encoding (Korean) • Save
Generation III Pokémon species (Pokémon evolutionPokédexType chart)
Pokémon (substructures) • MoveContestContest moveItem
Trainer TowerBattle FrontierCharacter encodingSave
Generation IV Pokémon species (Pokémon evolutionLearnsets)
PokémonSaveCharacter encoding
Generation V–present Character encoding
Generation VIII Save
TCG GB and GB2 Character encoding


  This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games.