Claim set · data/claims/dw3.yaml

Dragon Warrior III (retail ROM, read with zeromus/DragonWarrior3)

Game: Dragon Warrior III.

In Dragon Warrior III (the North American NES release), each step reads the area's encounter class: classes 0–2 first pass a roll of 16, 64, or 128 in 256 and then use a multiplier of 1, and classes 3–7 use 1, 2, 4, 8, or 16. The multiplier times the terrain's odds, capped at 100, is then compared with a random byte; the overworld's odds rise at night (grass 10 by day and 13 by night, forest 18 and 22, hills 25 and 31, and 4 and 5 aboard the ship, which uses terrain 0), and carrying the Golden Claw sets them to 100. dw3/encounter-rate

About: Dragon Warrior III Random encounter

Value
{
 "classMultipliers": [
  1,
  1,
  1,
  1,
  2,
  4,
  8,
  16
 ],
 "classPreRoll": [
  16,
  64,
  128
 ],
 "cap": 100,
 "of": 256,
 "day": {
  "sea": 4,
  "grass": 10,
  "forest": 18,
  "hills": 25
 },
 "night": {
  "sea": 5,
  "grass": 13,
  "forest": 22,
  "hills": 31
 }
}
CodeDragon Warrior III (USA) · 0x39D-0x402 — bank 0 $838D-$83F2, the class roll, the day or night table, the Golden Claw, the cap, and the final rollDragon Warrior III (USA) · 0x638-0x63F — bank 0 $8628, the class table 16, 64, 128, 1, 2, 4, 8, 16Dragon Warrior III (USA) · 0x944-0x955 — bank 0 $8934 and $893D, the day and night odds by terrainDragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank00.inc#L606-L665sub_838D: … LDA byte_8628,X CPX #3 … LDA _random_encounter_overworld_probability_daytime_tbl,X … LDA _random_encounter_overworld_probability_nighttime_tbl,X … LDA #ITEM_GOLDEN_CLAW … CMP #$64 ; clamp u8[$4D] at #$64 …DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank00.inc#L1444-L1447_random_encounter_overworld_probability_daytime_tbl: .BYTE 4, $F, $A, $F,$12,$19,$54,$12, $A _random_encounter_overworld_probability_nighttime_tbl: .BYTE 5,$13, $D,$13,$16,$1F,$54,$16, $ADragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/tile_ids.inc#L1-L5TILE_OVERWORLD_SAND = $01 TILE_OVERWORLD_GRASS = $02 TILE_OVERWORLD_SHRUBS = $03 TILE_OVERWORLD_FOREST = $04 TILE_OVERWORLD_HILLS = $05Dragon Warrior III (USA) · 0x2EC-0x309 — bank 0 $82DC-$82F9; on the ship ($2C = 1) the terrain index $4F is set to 0DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank00.inc#L500-L510 LDA _player_vehicle ; vehicle type CMP #1 BEQ .check_encounter_ship ; branch for ship … .check_encounter_ship: LDA #0 STA byte_4F ; meaning unsureChecked by claude-agent, 2026-10-21 — disassembled the retail ROM's bank 0 with da65 and read $838D-$83F2 and both tables against zeromus's listing, which has the same code at the same addresses; night is a world-map step count of $78 or more

Cited by: Dragon Warrior III, Random encounter

In Dragon Warrior III (NA NES), a hero's attack takes X=A−⌊D/2⌋, attack power less half the monster's defense; under 2 it deals 0 or 1, and otherwise ⌊X⌊r/4⌋/64⌋, where r is a bell-shaped roll centered on 128 clamped to 102–153, so 25/64 to 38/64 of X. dw3/hero-damage

About: Dragon Warrior III Damage formula

Value
{
 "defenseDivisor": 2,
 "rollClamp": [
  102,
  153
 ],
 "fraction": [
  25,
  38
 ],
 "of": 64
}
CodeDragon Warrior III (USA) · 0x12CE9-0x12D3B — bank 4 $ACD9-$AD2B, attack less half of _enemy_DEF ($0520), the under-2 branch, the clamp, and the multiply and divideDragon Warrior III (USA) · 0x13A74-0x13AA8 — bank 4 $BA64-$BA98, the roll; 16 plus thirty-two 4-bit random numbers, less 128, drawn again until it fits in a byteDragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L7013-L7062sub_6ACD9: … JSR _sram_b0_s17_player_rATK_read LSR byte_5A ROR byte_59 … CMP #2 BCC loc_6AD1F … CMP #$66 … CMP #$99 …DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L9560-L9563sub_6BA64: LDA #$F STA byte_42 LDX #$20Checked by claude-agent, 2026-10-21 — disassembled the retail bank 4 with da65 and read $ACD9-$AD2B and $BA64-$BA98, where $59 holds _enemy_DEF from $B777; zeromus's comment calls the roll "seemingly completely in [0,255]", but $BA64 sums 32 masked bytes, so it clusters around 128

Cited by: Damage formula, Dragon Warrior III

In Dragon Warrior III (NA NES), a hero lands "a tremendous hit" when a random byte falls below 4 (1 in 64), or below 32 (1 in 8) with the Sword of Destruction or the Demon Axe; a Fighter first gets a roll below its level. The hit deals attack power × (54 + a roll of 0–10) / 64, plus 1, ignoring defense. dw3/critical

About: Dragon Warrior III Critical hit

Value
{
 "chance": [
  4,
  256
 ],
 "higherCrit": [
  32,
  256
 ],
 "fighter": "level/256",
 "damage": [
  54,
  64
 ]
}
CodeDragon Warrior III (USA) · 0x1169F-0x116D8 — bank 4 $968F-$96C8, the Fighter's level roll and the 4-or-32 rollDragon Warrior III (USA) · 0x12DB4-0x12DC5 — bank 4 $ADA4-$ADB5, attack × (54 + a roll of 0–10) / 64Dragon Warrior III (USA) · 0x13166-0x13171 — bank 4 $B156, items $93 (Sword of Destruction) and $8F (Demon Axe) carry flag $02DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L3541-L3568loc_6968F: … CMP #CLASS_FIGHTER BNE loc_696A2 JSR _rand_ex CMP _players_level,X … LDX #4 ; normal chance of crit LDA _attack_buff_flags AND #ATTACK_BUFF_HIGHER_CRIT … LDX #$20 ; replacement odds for demon axe …DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L7146-L7154sub_6ADA4: LDA #$B JSR _b4_sF_rand_mul_A CLC ADC #$36DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L7763-L7778byte_6B156: .BYTE #ITEM_ESWORD_OF_DESTRUCTION … .BYTE #ITEM_EDEMON_AXE … byte_6B15D: .BYTE #ATTACK_BUFF_HIGHER_CRIT … .BYTE (#ATTACK_BUFF_DEMON_AXE | #ATTACK_BUFF_HIGHER_CRIT)Checked by claude-agent, 2026-10-21 — read the retail bank 4 at $968F-$96C8, $ADA4, and the item table at $B156 (93 95 88 8F … 02 00 80 0A) against zeromus's listing and its constants (CLASS_FIGHTER $06, ATTACK_BUFF_HIGHER_CRIT $02)

Cited by: Critical hit, Dragon Warrior III

Dragon Warrior III (NA NES) keeps Dragon Warrior II's critical-hit odds for most heroes, 1 in 64, and its 1 in 8 with the Sword of Destruction. dw3/keeps-dw2-critical

About: Dragon Warrior III Critical hit

CodeDragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L3551-L3555 LDX #4 ; normal chance of crit … LDX #$20 ; replacement odds for demon axeDragon Warrior III (USA) · 0x1169F-0x116D8 — bank 4 $96A2 ldxDragon Warrior III (USA) · 0x13166-0x13171 — bank 4 $B156, item $93 (Sword of Destruction) carries flag $02, the higher oddsDragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L7763-L7775byte_6B156: .BYTE #ITEM_ESWORD_OF_DESTRUCTION … byte_6B15D: .BYTE #ATTACK_BUFF_HIGHER_CRITdq2: Disassembly of NES Dragon Warrior II · src/us/prg/bank4.asm#L6241-L6250B04_A5E3: lda #$08 sta $A6 lda #$4C ; Item ID #$4C: Sword of Destruction (equipped) … lda #$40 sta $A6Checked by claude-agent, 2026-10-21 — 4 in 256 and 32 in 256 against Dragon Warrior II's rolls of 0–63 and 0–7 (dw2/tremendous-blow)

Cited by: Critical hit, Dragon Warrior III

In Dragon Warrior III (NA NES), each round every hero and monster gets a key of a quarter of its agility plus a random share of the other three quarters, so from a quarter to all of it, and a selection sort sets the order from the highest key down. dw3/turn-order

About: Dragon Warrior III Turn order

CodeDragon Warrior III (USA) · 0x10193-0x10224 — bank 4 $8183-$8214, the keys for four heroes and eight monsters, the sort, and the randomizerDragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L242-L300sub_68183: … LDA _players_rAGI,Y STA word_4 JSR _randomize_75_percent … JSR sub_6B73E ; load enemy's agility … ;look for maximum unused agility in table at byte_54CDragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L333-L345_randomize_75_percent: LDA word_4 LSR LSR STA word_4+1 LDA word_4 SEC SBC word_4+1 JSR _b4_sF_rand_mul_A CLC ADC word_4+1Checked by claude-agent, 2026-10-21 — read the retail bank 4 at $8183-$8214 against zeromus's listing; _b4_sF_rand_mul_A ($ACA3) keeps the high byte of a random byte times its argument

Cited by: Dragon Warrior III, Turn order

Dragon Warrior III (NA NES) changes Dragon Warrior II's round order: Dragon Warrior II adds a random byte (and a random 0 or 1) to half the agility, while Dragon Warrior III scales the agility itself by a random factor from a quarter to one. dw3/changes-dw2-turns

About: Dragon Warrior III Turn order

Codedq2: Disassembly of NES Dragon Warrior II · src/us/prg/bank4.asm#L9274-L9283B04_B790: lsr sta $99 jsr B0F_C3AB … adc $99DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L333-L345_randomize_75_percent: … JSR _b4_sF_rand_mul_A CLC ADC word_4+1Dragon Warrior III (USA) · 0x10193-0x10224 — bank 4 $8201, the retail randomizerChecked by claude-agent, 2026-10-21 — read both key routines (dw2/turn-order, dw3/turn-order)

Cited by: Dragon Warrior III, Turn order

In Dragon Warrior III (NA NES), running never works in a special battle; it always works when the party leader's level less a level the encounter setup stores at $5F (zeromus reads it as the enemies') is 10 or more, or when bit 3 of the battle-state byte $0566 is set, and otherwise it fails when a random byte is below 128, 128, 64, or 0 for the first, second, third, and fourth try, so the fourth try always escapes. dw3/run

About: Dragon Warrior III Fleeing

Value
{
 "failBelow": [
  128,
  128,
  64,
  0
 ],
 "of": 256,
 "levelMargin": 10
}
CodeDragon Warrior III (USA) · 0xA6BB-0xA70C — bank 2 $A6AB-$A6FC, the checks, the failure counter, and the table 80 80 40 00DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank02.inc#L3309-L3353 LDA byte_6A6B BNE loc_3A6D7 … LDA byte_6A6A ; a level difference between player and enemy was stored in here CMP #$A BCS loc_3A6CC LDA byte_566 AND #3 TAX JSR _rand CMP byte_3A6F9,X BCC loc_3A6D7 …DragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank00.inc#L927-L933 LDA _players_level ; read the PARTY LEADER's LEVEL! SEC SBC word_5E+1 ; enemy's level was in there, I hope … STA byte_6A6ADragon Warrior III (USA) · 0x5C3-0x5D2 — bank 0 $85B3-$85C2, the leader's level ($0700) less $5F, floored at 0, stored at $6A6ADragonWarrior3: Dragon Warrior III Reverse Engineering & Reconstructing · disassembly/bank04.inc#L66-L72 LDA _battle_type_fight STA byte_6A6BChecked by claude-agent, 2026-10-21 — read the retail bank 2 at $A6AB-$A6FC (the failure path adds 1 to the low two bits of $0566, which the battle setup clears) against zeromus's listing, and bank 0 $85B3 for $6A6A; what `_enemy_roster_get_levels` stores at $5F is unread

The byte at $5F comes from _enemy_roster_get_levels, which the atlas hasn't read; zeromus's comment hopes it is the enemy's level.

Cited by: Dragon Warrior III, Fleeing