WIKI · TABELA DE DANO

Quanto cada tiro tira de cada alvo.

A tabela de dano do Mega Man X, lida direto do cartucho original. Cada alvo pertence a uma classe de dano, e cada tiro do X tem um número. O jogo cruza a classe do alvo com o número do tiro nesta tabela e descobre quanto de vida o alvo perde.

Como ler

  • Um número: quanto de vida o alvo perde. 127 mata qualquer coisa.
  • D: o alvo rebate o tiro, e toca um som.
  • 0: nada acontece, e o alvo nem pisca.
  • Os chefes mudam de classe durante a luta. Por exemplo, quando ficam invulneráveis, passam para a classe 5, que é toda zero.
  • Um * depois de um nome quer dizer que essa classe foi vista numa gravação, no momento de um acerto, mas o código do próprio alvo não a define.

As fraquezas dos oito chefes

ChefeClasseFraquezaDanoMaior dano sem cargaEmpata com
Chill Penguin9Fire Wave33nenhuma
Storm Eagle7Chameleon Sting33nenhuma
Flame Mammoth8Storm Tornado33nenhuma
Spark Mandrill10Shotgun Ice33nenhuma
Armored Armadillo11Electric Spark33nenhuma
Launch Octopus12Rolling Shield33nenhuma
Boomer Kuwanger13Homing Torpedo33nenhuma
Sting Chameleon6Boomerang Cutter33nenhuma

A tabela inteira

Uma linha por classe e uma coluna por tiro. Deslize a tabela para o lado para ver todas as colunas.

Classe00Buster01Buster carregado02Buster super carregado03Buster carregado04Hadouken05Buster em espiral (sem uso)06Buster (variante)07Homing Torpedo08Chameleon Sting09Rolling Shield0AFire Wave0BStorm Tornado0CElectric Spark0DBoomerang Cutter0EShotgun Ice0FNona arma (sem uso)10Homing Torpedo carregado11Chameleon Sting carregado12Rolling Shield carregado13Fire Wave carregado14Storm Tornado carregado15Electric Spark carregado16Boomerang Cutter carregado17Shotgun Ice carregado18Nona arma carregada (sem uso)19Soco da Ride Armor1ASoco forte da Ride Armor (sem uso)1BObjeto do carrinho da mina1CTiro do Zero1DSem nome
Classe 0DDDDDDDDDDDDDDDDDDDDDDDDDDD12716D
Classe 1246532842881166448061131084510127161
Classe 2246532842881166448061131084510127161
Classe 312443242324112224304146684510127161
Classe 4246432842881146448061131084510127161
Classe 500000000000000000000000000012700
Classe 6112232221111113112022224211112711
Classe 7112232221311111112022222211112711
Classe 8112232221111311112022422211112711
Classe 9123332221113111112024222211112711
Classe 10123332221111111312022222411112711
Classe 11111132221110031112222262211112711
Classe 12123332221131111112242222211112711
Classe 13123332223111111114222222211112711
Classe 1412333242348114444446114684510127161
Classe 1512333242348114444446114684510127161
Classe 1612333242348114444446114684510127161
Classe 17DDDD32DDDDD3DDDDDDDD4DDDDD510DDD
Classe 181111321111111211111111311111111
Classe 19DD1DDDDDD2DDDDDDDD2DDDDDDDDDD1
Linha sem dono24653284288116444806113684510127161

Quem usa cada classe

ClasseAlvos
Classe 0Chill Penguin, Armored Armadillo, Launch Octopus, Bospider*, Sigma (forma final)
Classe 1Peixe-pescador (meio-chefe da fase do Launch Octopus), inimigos comuns
Classe 2Inimigos comuns
Classe 3Vile na abertura*, Vile na fortaleza (dois objetos, um deles*), Thunder Slimer, abelha gigante da rodovia*
Classe 4Sem alvo identificado
Classe 5Chill Penguin, Storm Eagle, Flame Mammoth, Spark Mandrill, Launch Octopus, Boomer Kuwanger, Sting Chameleon, Vile na fortaleza, Bospider, Rangda Bangda (dois objetos), D-Rex*, Velguarder, Sigma (forma humanoide), Thunder Slimer, peixe-pescador (meio-chefe da fase do Launch Octopus)
Classe 6Sting Chameleon, D-Rex*, Utuboros* (dois objetos)
Classe 7Storm Eagle, Rangda Bangda (dois objetos), peixe-pescador (meio-chefe da fase do Launch Octopus)*
Classe 8Flame Mammoth, submarino*
Classe 9Chill Penguin
Classe 10Spark Mandrill, Bospider*, Velguarder, Thunder Slimer*
Classe 11Armored Armadillo
Classe 12Launch Octopus
Classe 13Boomer Kuwanger
Classe 14Sem alvo identificado
Classe 15Sem alvo identificado
Classe 16Sem alvo identificado
Classe 17Sem alvo identificado
Classe 18Sigma (forma humanoide)*
Classe 19Sigma (forma final)*
Linha sem donoNenhuma classe aponta para esta linha

O que chama a atenção

  • A fraqueza de cada chefe tira 3. Entre as armas sem carga, ela é a única que tira 3 daquele chefe; as outras tiram 1, e no Armored Armadillo duas delas tiram 0. Mas 3 não é o maior número da linha: o Hadouken tira 32 de todo chefe, o objeto do carrinho da mina tira 127, e a fraqueza carregada tira 4 (6 no Armored Armadillo).
  • A forma final do Sigma (classe 19) rebate quase tudo: só o buster super carregado (1), o Rolling Shield (2), o Rolling Shield carregado (2) e o tiro sem nome da última coluna (1) tiram vida.
  • Armored Armadillo (classe 11): o Fire Wave e o Storm Tornado sem carga tiram 0, e o buster tira 1 com qualquer carga. Quando ele se fecha na armadura, passa para a classe 0.
  • A classe 0 rebate tudo, menos o objeto do carrinho da mina (127) e o tiro do Zero (16). O Chill Penguin e o Launch Octopus também usam essa classe.
  • A classe 5 é toda zero, menos o objeto do carrinho da mina (127). É a classe de invulnerabilidade que quase todo chefe usa durante a luta.
  • O Chameleon Sting carregado tira 0 dos inimigos comuns (ele deixa o X invencível, sem dano por contato), mas tira 2 dos chefes das classes 11, 12 e 13, e 4 das classes 14 a 16.
  • A classe 17, sem alvo identificado, rebate tudo, menos Fire Wave (3), Fire Wave carregado (4), Hadouken (32) e os dois socos da Ride Armor (5 e 10).
  • No começo da tabela há uma lista que indica qual linha cada classe usa. Logo depois dessa lista vem uma linha que nenhuma classe usa: a linha sem dono. Ela é quase igual à dos inimigos comuns, mas com Boomerang Cutter 4 (em vez de 6) e Boomerang Cutter carregado 6 (em vez de 10).
  • Colunas de tiros sem uso: o buster em espiral (8 nos inimigos comuns), a nona arma, normal e carregada (4 nos inimigos comuns), e o soco forte da Ride Armor (10) têm valores de verdade em todas as linhas. Ver nas curiosidades →
  • As classes 1 e 2 usam a mesma linha da tabela.
Detalhes técnicos

A fonte é a tabela 86:EF37 (20 palavras de índice e linhas de 30 bytes), usada pela rotina 84:9E15. Ela foi gerada por tools/rom/damage_table.py; os dados estão em knowledge_base/mmx1/rom/x1_damage_table_2026-10-04.json, e as células são fixadas por tools/tests/test_damage_table.py.

A linha é o byte $28 do alvo, a classe de dano (84:9E23); a coluna é o OID do tiro, byte $0A do slot (84:9E1A); o valor lido é o byte em 86:EF37 + palavra[linha] + OID (84:9E2A). Um valor normal sai da vida (84:9E73). D = $80: o tiro é desviado (84:9EEE, som $10). O segundo tratador, 84:9F10 (byte $82), existe, mas nenhuma célula da tabela o usa. Com 0, nada acontece, sem piscar (84:9E5A). 127 é $7F.

Com a armadura fechada, o Armored Armadillo usa a classe 0 (83:B305, 83:B2FD). Chill Penguin (81:B649) e Launch Octopus (81:C54F) também usam a classe 0. As classes 1 e 2 têm a palavra $0046 duas vezes (86:EF39 e 86:EF3B). O OID 1D não é consumido ao acertar (84:9E90).

Copiada de docs/wiki/damage-table.md, no commit 826225efde5fa19c5b43f20304c2afbbb965620e do repositório do jogo, por tools/render_wiki.py --import.

Linhas, com o endereço de cada uma:

  • classe 0: chill-penguin, armored-armadillo, launch-octopus, bospider 0x63*, sigma-final 0x65 (86:EFB9)
  • classe 1: lo-midboss-0x21 0x21, normal enemies (86:EF7D)
  • classe 2: normal enemies (86:EF7D)
  • classe 3: vile-intro 0x32*, vile-fortress 0x69, vile-fortress 0x67*, thunder-slimer 0x03, highway-giant-bee 0x22* (86:EFD7)
  • classe 4 (sem nome) (86:EFF5)
  • classe 5: chill-penguin, storm-eagle, flame-mammoth, spark-mandrill, launch-octopus, boomer-kuwanger, sting-chameleon, vile-fortress 0x69, bospider 0x63, rangda-bangda 0x5E, rangda-bangda 0x5F, d-rex 0x61*, velguarder 0x26, sigma-humanoid 0x65, thunder-slimer 0x03, lo-midboss-0x21 0x21 (86:EF9B)
  • classe 6: sting-chameleon, d-rex 0x61*, utuboros 0x23*, utuboros 0x25* (86:F013)
  • classe 7: storm-eagle, rangda-bangda 0x5E, rangda-bangda 0x5F, lo-midboss-0x21 0x21* (86:F031)
  • classe 8: flame-mammoth, submarine 0x28* (86:F04F)
  • classe 9: chill-penguin (86:F06D)
  • classe 10: spark-mandrill, bospider 0x63*, velguarder 0x26, thunder-slimer 0x03* (86:F08B)
  • classe 11: armored-armadillo (86:F0A9)
  • classe 12: launch-octopus (86:F0C7)
  • classe 13: boomer-kuwanger (86:F0E5)
  • classe 14 (sem nome) (86:F103)
  • classe 15 (sem nome) (86:F121)
  • classe 16 (sem nome) (86:F13F)
  • classe 17 (sem nome) (86:F15D)
  • classe 18: sigma-humanoid 0x65* (86:F17B)
  • classe 19: sigma-final 0x65* (86:F199)
  • linha órfã (86:EF5F)

Colunas, com o nome interno de cada tiro e a fonte do nome:

  • 00 weaponBullet_lemon_00 (boss_evidence_2026-09-26.json)
  • 01 weaponBullet_lemonCharged_01 (boss_evidence_2026-09-26.json)
  • 02 weaponShot_lemonSuperCharge_02 (boss_evidence_2026-09-26.json)
  • 03 weaponShot_lemonCharged_03 (boss_evidence_2026-09-26.json)
  • 04 weaponShot_haduken_04 (boss_evidence_2026-09-26.json)
  • 05 unused buster shot (table 86:BA76 index 7) (x1_shot_oids_unported_2026-10-03.json)
  • 06 buster: the chooser writes 6 when 86:BA76 gives 0, $55 != 0 and $63 == 0 (x1_shot_oids_unported_2026-10-03.json)
  • 07 mainWeaponShot_homing_07 (boss_evidence_2026-09-26.json)
  • 08 weaponShot_stinger3Way_08 (boss_evidence_2026-09-26.json)
  • 09 mainWeaponShot_shild_09 (boss_evidence_2026-09-26.json)
  • 0A mainWeaponShot_fire_0a (boss_evidence_2026-09-26.json)
  • 0B mainWeaponShot_storm_0b (boss_evidence_2026-09-26.json)
  • 0C mainWeaponShot_spark_0c (boss_evidence_2026-09-26.json)
  • 0D mainWeaponShot_cutter_0d; Boomerang Cutter (uncharged) (boss_evidence_2026-09-26.json)
  • 0E mainWeaponShot_ice_0e (boss_evidence_2026-09-26.json)
  • 0F uncharged shot of weapon slot 18 (a ninth weapon; handler is Storm Tornado's) (x1_shot_oids_unported_2026-10-03.json)
  • 10 chargeShot_homingMissle_10 (boss_evidence_2026-09-26.json)
  • 11 chargeShot_camaFlash_11 (boss_evidence_2026-09-26.json)
  • 12 mainChargeShot_shild_12 (boss_evidence_2026-09-26.json)
  • 13 mainChargeShot_fire_13 (boss_evidence_2026-09-26.json)
  • 14 mainChargeShot_storm_14 (boss_evidence_2026-09-26.json)
  • 15 mainChargeShot_spark_15 (boss_evidence_2026-09-26.json)
  • 16 mainChargeShot_cutter_16 (boss_evidence_2026-09-26.json)
  • 17 mainChargeShot_Ice_17; charged Shotgun Ice (ice sled) (boss_evidence_2026-09-26.json)
  • 18 mainChargeShot_storm_18; charged shot of weapon slot 18 (handler is Storm Tornado's) (boss_evidence_2026-09-26.json)
  • 19 ride armor punch hitbox (spawned at 83:8247) (x1_ghost_shots_2026-10-03.json)
  • 1A charged shot of weapon slot 22 (handler 81:A70A, same as OID 25) (x1_shot_oids_unported_2026-10-03.json)
  • 1B mine-cart object's shot-slot child (Armored Armadillo stage) (x1_shot_oids_unported_2026-10-03.json)
  • 1C Zero's shot (intro highway, Zero object $33) (x1_shot_oids_unported_2026-10-03.json)
  • 1D (sem nome; não é consumido ao acertar, 84:9E90) (unnamed: no label and no proof; labelled by index)