The Gen 1 type chart, straight from the ROM
The exact type matchup table Red, Blue and Yellow compute damage from — read out of the game's own data, with the Ghost-vs-Psychic bug and everything later generations quietly changed.
Every guide reprints a type chart. Most reprint the wrong one: the modern
chart, with fixes the Game Boy games never had. The table below is the one
Red, Blue and Yellow actually consult — extracted from data/types/type_matchups.asm
in the pret disassembly, which all three
games share byte for byte.
The in-game table is a list of exceptions: it names 82 attacker–defender pairs and stays silent about the rest. A 2 is super effective, a ½ not very effective, a 0 does nothing, and a dot is a pair the game never mentions — neutral by omission.
| Attacker ↓ · Defender → | Normal | Fighting | Flying | Poison | Ground | Rock | Bug | Ghost | Fire | Water | Grass | Electric | Psychic | Ice | Dragon |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Normal | · | · | · | · | · | ½ | · | 0 | · | · | · | · | · | · | · |
| Fighting | 2 | · | ½ | ½ | · | 2 | ½ | 0 | · | · | · | · | ½ | 2 | · |
| Flying | · | 2 | · | · | · | ½ | 2 | · | · | · | 2 | ½ | · | · | · |
| Poison | · | · | · | ½ | ½ | ½ | 2 | ½ | · | · | 2 | · | · | · | · |
| Ground | · | · | 0 | 2 | · | 2 | ½ | · | 2 | · | ½ | 2 | · | · | · |
| Rock | · | ½ | 2 | · | ½ | · | 2 | · | 2 | · | · | · | · | 2 | · |
| Bug | · | ½ | ½ | 2 | · | · | · | ½ | ½ | · | 2 | · | 2 | · | · |
| Ghost | 0 | · | · | · | · | · | · | 2 | · | · | · | · | 0 | · | · |
| Fire | · | · | · | · | · | ½ | 2 | · | ½ | ½ | 2 | · | · | 2 | ½ |
| Water | · | · | · | · | 2 | 2 | · | · | 2 | ½ | ½ | · | · | · | ½ |
| Grass | · | · | ½ | ½ | 2 | 2 | ½ | · | ½ | 2 | ½ | · | · | · | ½ |
| Electric | · | · | 2 | · | 0 | · | · | · | · | 2 | ½ | ½ | · | · | ½ |
| Psychic | · | 2 | · | 2 | · | · | · | · | · | · | · | · | ½ | · | · |
| Ice | · | · | 2 | · | 2 | · | · | · | · | ½ | 2 | · | · | ½ | 2 |
| Dragon | · | · | · | · | · | · | · | · | · | · | · | · | · | · | 2 |
Against a dual-typed Pokémon the two multipliers stack: Electric into Water/Flying lands at ×4, Fighting into Rock/Ground climbs the same way, and a single 0 wipes the product out — Ground into Water/Flying does nothing at all.
What Gen 1 does differently
There is no Dark, no Steel and no Fairy — those arrive in later generations. Beyond the missing types, five rows of this chart are famous precisely because later games changed them.
Ghost does nothing to Psychic. The Pokémon Trainer’s Guide shipped with
the games says Ghost is the counter to Psychic; the data says GHOST, PSYCHIC_TYPE, NO_EFFECT.
Send Gengar’s Lick at an Alakazam and it whiffs entirely. Whether the table or
the manual is the bug has been argued for thirty years — Gen 2 sided with the
manual and made Ghost super effective.
Psychic is weak to nothing that matters. On paper Bug is super effective against it, but the strongest Bug attack in the game is Twineedle at 25 power — carried by exactly one fully-evolved Pokémon. With Ghost blanked by the bug above, nothing in Gen 1 punishes Psychic — which is most of why Mewtwo, Alakazam and Starmie rule the generation.
Bug and Poison hurt each other. Bug is super effective against Poison and Poison super effective against Bug — a mutual arrangement Gen 2 dismantled in both directions.
Ice is neutral on Fire. Fire only gained its resistance to Ice in Gen 2. On the Game Boy, Blizzard hits Charizard at full price — and at ×2 for its Flying half.
The Dragon row is dead code. Dragon resists the three starter types and Electric, and only Dragon hits it hard — but the generation’s single Dragon attack is Dragon Rage, which always deals exactly 40 damage and ignores the chart entirely. No Dragon-typed damage calculation ever actually runs on a Game Boy.
The half of the chart nobody prints
The chart only says how much damage comes out; which stat deals it is decided by the attacking type, not the move. Normal, Fighting, Flying, Ground, Rock, Bug, Ghost and Poison attacks read the attacker’s Attack against the defender’s Defense; Fire, Water, Grass, Electric, Psychic, Ice and Dragon read Special against Special — one stat serving as both power and armor, which is the generation’s other great imbalance. Same-type attack bonus multiplies everything by 1.5.
The chart decides how battles go; whether you can even field the attacker is a different question — six of the 151 exist in only one version each.
One more byte for the road: the type table has a sixteenth entry, BIRD,
sitting between Rock and Bug. No real species and no move uses it — it
survives in MissingNo.’s type bytes, which you can go and read yourself in
the save file format.