Wizardry I・II (PCE) > 仕様

呪文

回復量・ダメージ量の範囲

ID 名称 範囲 タイプ
02 DIOS 3〜7 回復
03 BADIOS 7〜15 無属性
0A DIAL 6〜15 回復
0B BADIAL 15〜31 無属性
10 LITOKAN 9〜23 火炎属性
13 DIALMA 10〜23 回復
14 BADIALMA 21〜47 無属性
17 LORTO 17〜35 冷気属性
1B MALIKTO 37〜71 無属性
1D HALITO 3〜7 火炎属性
23 MOLITO 8〜17 火炎属性
24 TZALIK 37〜57 無属性
26 MAHALITO 13〜23 火炎属性
28 DALTO 17〜35 冷気属性
29 LAHALITO 17〜35 火炎属性
2D MADALTO 31〜63 冷気属性
2F LADALTO 51〜97 冷気属性
33 TILTOWAIT 78〜149 火炎属性

回避係数

敵から呪文を受けた際の回避率に影響する数値です。

ID 呪文 回避係数
08 MANIFO 6
09 MONTINO 5
12 BADI 6
19 MABADI 1
1F KATINO 5

上記の呪文は 以下の確率で回避することができます:

  • MAGE の呪文: (I.Q.) × (回避係数) + (呪文抵抗補正) %
  • PRIEST の呪文: (PIE) × (回避係数) + (呪文抵抗補正) %

呪文抵抗補正:

  • "呪文" 抵抗を持っている場合: 20
  • それ以外の場合: 0

ソース

; (味方 → 敵側での定義)
; DIOS
;
C988  A2 05          LDX #$05
C98A  A0 03          LDY #$03
C98C  44 D9          BSR $C967
;
; DIAL
;
C9A3  A2 0A          LDX #$0A
C9A5  A0 06          LDY #$06
C9A7  80 E3          BRA $C98C
;
; DIALMA
;
C9A9  A2 0E          LDX #$0E
C9AB  A0 0A          LDY #$0A
C9AD  80 DD          BRA $C98C

;
; BADIOS
;
CA76  A2 09          LDX #$09
CA78  A0 07          LDY #$07
CA7A  62             CLA

CA7B  85 8A          STA $8A
;
; BADIAL
;
CA9D  A2 11          LDX #$11
CA9F  A0 0F          LDY #$0F
CAA1  80 D7          BRA $CA7A
;
; BADIALMA
;
CAA3  A2 1B          LDX #$1B
CAA5  A0 15          LDY #$15
CAA7  80 D1          BRA $CA7A
;
; TZALIK
;
CAA9  A2 15          LDX #$15
CAAB  A0 25          LDY #$25
CAAD  80 CB          BRA $CA7A
;
; HALITO
;
CAAF  A2 05          LDX #$05
CAB1  A0 03          LDY #$03
CAB3  A9 01          LDA #$01
CAB5  80 C4          BRA $CA7B

;
; LITOKAN
;
CB4B  A2 0F          LDX #$0F
CB4D  A0 09          LDY #$09
CB4F  A9 01          LDA #$01

;
; MOLITO
;
CBA1  A2 0A          LDX #$0A
CBA3  A0 08          LDY #$08
CBA5  80 A8          BRA $CB4F

;
; MAHALITO
;
CBA7  A2 0B          LDX #$0B
CBA9  A0 0D          LDY #$0D
CBAB  80 A2          BRA $CB4F
;
; LAHALITO
;
CBAD  A2 13          LDX #$13
CBAF  A0 11          LDY #$11
CBB1  80 9C          BRA $CB4F
;
; LORTO, DALTO
;
CBB3  A2 13          LDX #$13
CBB5  A0 11          LDY #$11
CBB7  A9 02          LDA #$02
CBB9  80 96          BRA $CB51
;
; MADALTO
;
CBBB  A2 21          LDX #$21
CBBD  A0 1F          LDY #$1F
CBBF  80 F6          BRA $CBB7
;
; LADALTO
;
CBC1  A2 2F          LDX #$2F
CBC3  A0 33          LDY #$33
CBC5  80 F0          BRA $CBB7

;
; MALIKTO
;
CBC7  A2 23          LDX #$23
CBC9  A0 25          LDY #$25
CBCB  62             CLA

;
; TILTOWAIT
;
CBF4  A2 48          LDX #$48
CBF6  A0 4E          LDY #$4E
CBF8  A9 01          LDA #$01
CBFA  80 D0          BRA $CBCC

;
; 敵 → 味方 の命中率周り
;
A36B  A0 02          LDY #$02 ; PIE
A36D  C9 1D          CMP #$1D ; 0x1D: HALITO
A36F  90 02          BCC $A373 ; 
A371  A0 01          LDY #$01 ; I.Q.

A373  48             PHA
A374  98             TYA
A375  AE 40 2B       LDX $2B40
A378  20 17 41       JSR $4117
A37B  85 7F          STA $7F ; 特性値
A37D  68             PLA

A37E  A0 04          LDY #$04
A380  44 E4          BSR $A366
A382  85 7E          STA $7E ; 係数取得
A384  62             CLA
A385  A2 08          LDX #$08
A387  0A             ASL A
A388  26 7F          ROL $7F
A38A  90 07          BCC $A393
A38C  18             CLC
A38D  65 7E          ADC $7E
A38F  90 02          BCC $A393
A391  E6 7F          INC $7F
A393  CA             DEX
A394  D0 F1          BNE $A387

A396  85 7E          STA $7E ; 特性値 × 係数
A398  A6 7F          LDX $7F
A39A  F0 02          BEQ $A39E
A39C  A9 64          LDA #$64
A39E  60             RTS

ボーナスポイント

ボーナスポイント 確率
5〜9 238/256
17〜19 16/256
20〜28 2/256
50〜59 0/256

ソース

A647  A9 FF          LDA #$FF
A649  20 C6 40       JSR $40C6 ; 乱数 0〜254 を取得
A64C  C9 FF          CMP #$FF
A64E  F0 26          BEQ $A676
A650  C9 FD          CMP #$FD
A652  B0 18          BCS $A66C
A654  C9 ED          CMP #$ED
A656  B0 0A          BCS $A662

A658  A9 05          LDA #$05
A65A  20 C6 40       JSR $40C6
A65D  18             CLC
A65E  69 05          ADC #$05 ; 確率 238/256 で 5〜9
A660  80 1C          BRA $A67E

A662  A9 03          LDA #$03
A664  20 C6 40       JSR $40C6
A667  18             CLC
A668  69 11          ADC #$11 ; 確率 16/256 で 17〜19
A66A  80 12          BRA $A67E

A66C  A9 09          LDA #$09
A66E  20 C6 40       JSR $40C6
A671  18             CLC
A672  69 14          ADC #$14 ; 確率 2/256 で 20〜28
A674  80 08          BRA $A67E

A676  A9 0A          LDA #$0A
A678  20 C6 40       JSR $40C6
A67B  18             CLC
A67C  69 32          ADC #$32 ; 確率 0/256 で 50〜59
A67E  8D 5E AC       STA $AC5E

レベルアップ時の特性値の変化

  • 各特性値は約 (((20 - 特性値) * 5 + 種族補正 + 職業補正 + 性別補正) mod 256) % で増加し、(成長率が 100 % 未満の場合は)確率 8/256 で減少します。
    • 上記計算式の関係で、成長限界は min{20 + 成長補正/5, 種族の限界値} となります。(初期値が成長限界を超えている場合を除く)
    • 成長限界を超えている特性値は(少なくとも、種族の限界値以下の範囲であれば)減少しません。(むしろ、100% 増加します)
種族補正 STR I.Q. PIE VIT AGI LUC
HUMAN 5 5 - 5 5 5
ELF - 5 5 - - -
DWARF 5 - 5 - - -
GNOME - - 5 - 5 -
HOBBIT - - - - 5 5
職業補正 STR I.Q. PIE VIT AGI LUC
FIGHTER 10 - - 5 - -
MAGE - 10 - - - -
PRIEST - - 10 - - -
THIEF - - - - 10 5
BISHOP - 5 5 - - -
SAMURAI 10 5 - 5 - -
LORD 10 - 5 5 - -
NINJA - - - - 10 10
性別補正 STR I.Q. PIE VIT AGI LUC
MALE 5 - - 5 - 5
FEMALE - 5 5 - 5 -

補足

このゲームでは乱数 0〜(A-1) は (8 bit 乱数) % A により取得されるので、正確な成長確率は以下となります。

成長率表記 正確な成長確率
0 % 0/256 (0.00 %)
5 % 15/256 (5.86 %)
10 % 30/256 (11.72 %)
15 % 45/256 (17.58 %)
20 % 60/256 (23.44 %)
25 % 75/256 (29.30 %)
30 % 90/256 (35.16 %)
35 % 105/256 (41.02 %)
40 % 120/256 (46.88 %)
45 % 135/256 (52.73 %)
50 % 150/256 (58.59 %)
55 % 165/256 (64.45 %)
60 % 176/256 (68.75 %)
65 % 186/256 (72.66 %)
70 % 196/256 (76.56 %)
75 % 206/256 (80.47 %)
80 % 216/256 (84.38 %)
85 % 226/256 (88.28 %)
90 % 236/256 (92.19 %)
95 % 246/256 (96.09 %)
100 % 256/256 (100.00 %)

ソース

A3E2  AE CA A0       LDX $A0CA
A3E5  20 77 A5       JSR $A577
A3E8  9C FD A4       STZ $A4FD
A3EB  9C FE A4       STZ $A4FE

A3EE  AE FD A4       LDX $A4FD
A3F1  38             SEC
A3F2  A9 14          LDA #$14
A3F4  FD 99 A5       SBC $A599,X ; 特性値
A3F7  8D FC A4       STA $A4FC
A3FA  0A             ASL A
A3FB  0A             ASL A
A3FC  18             CLC
A3FD  6D FC A4       ADC $A4FC
A400  8D FC A4       STA $A4FC ; (20 - 特性値) * 5

A403  AE CA A0       LDX $A0CA
A406  A0 02          LDY #$02
A408  20 F0 40       JSR $40F0
A40B  C2             CLY
A40C  B1 20          LDA ($20),Y
A40E  4A             LSR A
A40F  4A             LSR A
A410  4A             LSR A
A411  29 07          AND #$07
A413  0A             ASL A
A414  8D B0 39       STA $39B0
A417  0A             ASL A
A418  18             CLC
A419  6D B0 39       ADC $39B0
A41C  18             CLC
A41D  6D FD A4       ADC $A4FD
A420  AA             TAX
A421  18             CLC
A422  AD FC A4       LDA $A4FC
A425  7D FF A4       ADC $A4FF,X ; 種族補正
A428  8D FC A4       STA $A4FC

A42B  C2             CLY
A42C  B1 20          LDA ($20),Y
A42E  29 07          AND #$07
A430  0A             ASL A
A431  8D B0 39       STA $39B0
A434  0A             ASL A
A435  18             CLC
A436  6D B0 39       ADC $39B0
A439  18             CLC
A43A  6D FD A4       ADC $A4FD
A43D  AA             TAX
A43E  18             CLC
A43F  AD FC A4       LDA $A4FC
A442  7D 1D A5       ADC $A51D,X ; 職業補正
A445  8D FC A4       STA $A4FC

A448  AE CA A0       LDX $A0CA
A44B  A0 22          LDY #$22
A44D  20 F0 40       JSR $40F0
A450  B2 20          LDA ($20) ; 性別
A452  29 80          AND #$80
A454  0A             ASL A
A455  2A             ROL A
A456  0A             ASL A
A457  8D B0 39       STA $39B0
A45A  0A             ASL A
A45B  18             CLC
A45C  6D B0 39       ADC $39B0
A45F  18             CLC
A460  6D FD A4       ADC $A4FD
A463  AA             TAX
A464  18             CLC
A465  AD FC A4       LDA $A4FC
A468  7D 4D A5       ADC $A54D,X ; 性別補正
A46B  8D FC A4       STA $A4FC

A46E  A9 64          LDA #$64
A470  20 C6 40       JSR $40C6
A473  CD FC A4       CMP $A4FC
A476  B0 2E          BCS $A4A6 ; 乱数 0〜99 が成長率以上だった場合、成長しない

A478  AE CA A0       LDX $A0CA
A47B  A0 02          LDY #$02
A47D  20 F0 40       JSR $40F0
A480  B2 20          LDA ($20)
A482  4A             LSR A
A483  4A             LSR A
A484  4A             LSR A
A485  29 07          AND #$07
A487  0A             ASL A
A488  8D B0 39       STA $39B0
A48B  0A             ASL A
A48C  18             CLC
A48D  6D B0 39       ADC $39B0
A490  18             CLC
A491  6D FD A4       ADC $A4FD
A494  AA             TAX
A495  BD 59 A5       LDA $A559,X ; 限界値
A498  AE FD A4       LDX $A4FD
A49B  DD 99 A5       CMP $A599,X
A49E  F0 1E          BEQ $A4BE
A4A0  FE 99 A5       INC $A599,X
A4A3  62             CLA
A4A4  80 0C          BRA $A4B2

A4A6  C9 60          CMP #$60
A4A8  90 14          BCC $A4BE ; 乱数が 96 未満であれば、低下しない

A4AA  AE FD A4       LDX $A4FD
A4AD  DE 99 A5       DEC $A599,X
A4B0  A9 01          LDA #$01

A4B2  AE FD A4       LDX $A4FD
A4B5  AC FE A4       LDY $A4FE
A4B8  20 CE AB       JSR $ABCE
A4BB  EE FE A4       INC $A4FE

A4BE  EE FD A4       INC $A4FD
A4C1  AE FD A4       LDX $A4FD
A4C4  E0 06          CPX #$06
A4C6  F0 03          BEQ $A4CB
A4C8  4C EE A3       JMP $A3EE

A4CB  82             CLX
A4CC  BD 99 A5       LDA $A599,X
A4CF  C9 03          CMP #$03
A4D1  90 20          BCC $A4F3

A4D3  E8             INX
A4D4  E0 06          CPX #$06
A4D6  D0 F4          BNE $A4CC
...

レベルアップ時の最大 H.P.

レベルアップ後の最大 H.P は以下の式で計算されます:

max{ (LV)d(職業の成長値) + 職業の基本値 + (LV/2) * VIT 補正, (現 最大 H.P.) + 1 }

VIT 補正

VIT mod 16 VIT 補正値
14〜15 3
12〜13 2
9〜11 1
0〜8 0

※ 何故か VIT を 16 で割った余りに基づいて補正が計算されるため、VIT 16 以上では補正がつきません。

職業ごとの成長値と基本値

職業 成長値 基本値
FIGHTER 8 8
MAGE 3 3
PRIEST 7 7
THIEF 5 5
BISHOP 6 6
SAMURAI 8 8
LORD 8 8
NINJA 5 5

ソース

A59F  9C EB A6       STZ $A6EB
A5A2  9C EC A6       STZ $A6EC
A5A5  AE CA A0       LDX $A0CA
A5A8  A0 01          LDY #$01
A5AA  20 F0 40       JSR $40F0
A5AD  B2 20          LDA ($20)
A5AF  8D ED A6       STA $A6ED ; LV 下位 8 bit
A5B2  8D EF A6       STA $A6EF

A5B5  A0 01          LDY #$01
A5B7  B1 20          LDA ($20),Y ; LV 上位 8 bit
A5B9  8D EE A6       STA $A6EE
A5BC  8D F0 A6       STA $A6F0

A5BF  AD F0 A6       LDA $A6F0
A5C2  4A             LSR A
A5C3  8D F0 A6       STA $A6F0
A5C6  AD EF A6       LDA $A6EF
A5C9  6A             ROR A
A5CA  8D EF A6       STA $A6EF ; LV / 2

A5CD  AE CA A0       LDX $A0CA
A5D0  A0 02          LDY #$02
A5D2  20 F0 40       JSR $40F0
A5D5  C2             CLY
A5D6  B1 20          LDA ($20),Y
A5D8  29 07          AND #$07
A5DA  0A             ASL A
A5DB  AA             TAX
A5DC  BD 00 A7       LDA $A700,X
A5DF  8D F8 A6       STA $A6F8 ; 職業 HP 成長値
A5E2  DA             PHX

A5E3  AD F8 A6       LDA $A6F8
A5E6  20 C6 40       JSR $40C6
A5E9  18             CLC
A5EA  69 01          ADC #$01 ; 1 〜 HP 成長値
A5EC  18             CLC
A5ED  6D EB A6       ADC $A6EB
A5F0  8D EB A6       STA $A6EB
A5F3  A9 00          LDA #$00
A5F5  6D EC A6       ADC $A6EC
A5F8  8D EC A6       STA $A6EC

A5FB  38             SEC
A5FC  AD ED A6       LDA $A6ED
A5FF  E9 01          SBC #$01
A601  8D ED A6       STA $A6ED
A604  AD EE A6       LDA $A6EE
A607  E9 00          SBC #$00
A609  8D EE A6       STA $A6EE

A60C  AD ED A6       LDA $A6ED
A60F  0D EE A6       ORA $A6EE
A612  D0 CF          BNE $A5E3 ; LV 回繰り返す

A614  FA             PLX
A615  BD 01 A7       LDA $A701,X ; 基本値
A618  18             CLC
A619  6D EB A6       ADC $A6EB
A61C  8D EB A6       STA $A6EB
A61F  A9 00          LDA #$00
A621  6D EC A6       ADC $A6EC
A624  8D EC A6       STA $A6EC

A627  9C F1 A6       STZ $A6F1
A62A  9C F2 A6       STZ $A6F2
A62D  9C F3 A6       STZ $A6F3
A630  9C F4 A6       STZ $A6F4

A633  AE CA A0       LDX $A0CA
A636  A0 06          LDY #$06
A638  20 F0 40       JSR $40F0
A63B  C2             CLY
A63C  B1 20          LDA ($20),Y 
A63E  29 0F          AND #$0F ; (生命力 mod 16)
A640  82             CLX
A641  18             CLC
A642  69 03          ADC #$03 ; (生命力 mod 16) + 3
A644  C9 0C          CMP #$0C
A646  90 18          BCC $A660 ; 12 未満
A648  E8             INX
A649  C9 0F          CMP #$0F
A64B  90 06          BCC $A653 ; 15 未満
A64D  E8             INX
A64E  C9 11          CMP #$11
A650  90 01          BCC $A653 ; 17 未満
A652  E8             INX

A653  8E F5 A6       STX $A6F5 ; VIT ボーナス
A656  9C F6 A6       STZ $A6F6

A659  A2 F9          LDX #$F9
A65B  A0 A6          LDY #$A6
A65D  20 8D 40       JSR $408D ; $A6F1 ← (VIT ボーナス) * (LV / 2)
A660  18             CLC
A661  AD EB A6       LDA $A6EB
A664  6D F1 A6       ADC $A6F1
A667  8D EB A6       STA $A6EB
A66A  AD EC A6       LDA $A6EC
A66D  6D F2 A6       ADC $A6F2
A670  8D EC A6       STA $A6EC

A673  AE CA A0       LDX $A0CA ; 以下、現在の最大 H.P. と比較など
A676  A0 09          LDY #$09
A678  20 F0 40       JSR $40F0
A67B  A0 01          LDY #$01
A67D  B1 20          LDA ($20),Y
A67F  CD EC A6       CMP $A6EC
A682  90 1B          BCC $A69F
A684  D0 08          BNE $A68E
A686  88             DEY
A687  B1 20          LDA ($20),Y
A689  CD EB A6       CMP $A6EB
A68C  90 11          BCC $A69F

A68E  C2             CLY
A68F  18             CLC
A690  B1 20          LDA ($20),Y
A692  69 01          ADC #$01
A694  8D EB A6       STA $A6EB
A697  C8             INY
A698  B1 20          LDA ($20),Y
A69A  69 00          ADC #$00
A69C  8D EC A6       STA $A6EC

A69F  AD EB A6       LDA $A6EB
A6A2  8D E9 A6       STA $A6E9
A6A5  AD EC A6       LDA $A6EC
A6A8  8D EA A6       STA $A6EA

A6F9  02 F5 A6 EF A6 F1 A6

A700  08 08 03 03 07 07 05 05 06 06 08 08 08 08 05 05

呪文習得

  1. LV が上がった際に、以下の条件を満たす場合のみ、呪文の回数が更新されます。

    職業 条件 回数の更新対象
    MAGE LV 29 以下 MAGE 呪文
    PRIEST LV 29 以下 PRIEST 呪文
    BISHOP LV 41 以下 MAGE, PRIEST 呪文
    SAMURAI LV 36 以下 MAGE 呪文
    LORD LV 36 以下 PRIEST 呪文
  2. 呪文は以下の職業についている場合にのみ習得判定があります:

    • MAGE の呪文: MAGE, BISHOP, SAMURAI のみ
    • PRIEST の呪文: PRIEST, BISHOP, LORD のみ

    レベル L の呪文は そのレベルの回数が 0 でない場合のみ習得判定があり、各呪文の習得率は以下のようになっています:

    LEVEL 呪文 習得設定値 習得確率
    1 HALITO 60 176/256 (68.75 %)
    1 MOGREF 40 120/256 (46.88 %)
    1 KATINO 100 256/256 (100.00 %)
    1 DUMAPIC 50 150/256 (58.59 %)
    2 DILTO 60 176/256 (68.75 %)
    2 SOPIC 100 256/256 (100.00 %)
    2 MOLITO 30 90/256 (35.16 %)
    3 TZALIK 50 150/256 (58.59 %)
    3 MORLIS 50 150/256 (58.59 %)
    3 MAHALITO 100 256/256 (100.00 %)
    4 ZILWAN 50 150/256 (58.59 %)
    4 DALTO 100 256/256 (100.00 %)
    4 LAHALITO 30 90/256 (35.16 %)
    4 MASOPIC 100 256/256 (100.00 %)
    5 MAMORLIS 50 150/256 (58.59 %)
    5 MAKANITO 40 120/256 (46.88 %)
    5 MADALTO 100 256/256 (100.00 %)
    6 LAKANITO 40 120/256 (46.88 %)
    6 LADALTO 100 256/256 (100.00 %)
    6 HAMAN 40 120/256 (46.88 %)
    7 MALOR 100 256/256 (100.00 %)
    7 MAHAMAN 40 120/256 (46.88 %)
    7 TILTOWAIT 50 150/256 (58.59 %)
    LEVEL 呪文 習得設定値 習得確率
    1 KALKI 60 176/256 (68.75 %)
    1 DIOS 100 256/256 (100.00 %)
    1 BADIOS 60 176/256 (68.75 %)
    1 CALFO 100 256/256 (100.00 %)
    1 PORFIC 50 150/256 (58.59 %)
    2 MATU 40 120/256 (46.88 %)
    2 MILWA 40 120/256 (46.88 %)
    2 MANIFO 70 196/256 (76.56 %)
    2 MONTINO 50 150/256 (58.59 %)
    3 DIAL 100 256/256 (100.00 %)
    3 BADIAL 60 176/256 (68.75 %)
    3 DIALKO 100 256/256 (100.00 %)
    3 LATUMAPIC 50 150/256 (58.59 %)
    4 BAMATU 40 120/256 (46.88 %)
    4 LOMILWA 40 120/256 (46.88 %)
    4 LITOKAN 40 120/256 (46.88 %)
    4 LATUMOFIS 40 120/256 (46.88 %)
    4 BADI 40 120/256 (46.88 %)
    5 DIALMA 100 256/256 (100.00 %)
    5 BADIALMA 60 176/256 (68.75 %)
    5 DI 50 150/256 (58.59 %)
    5 MAPORFIC 60 176/256 (68.75 %)
    6 LORTO 60 176/256 (68.75 %)
    6 MADI 100 256/256 (100.00 %)
    6 MABADI 20 60/256 (23.44 %)
    7 LOKTOFEIT 50 150/256 (58.59 %)
    7 MALIKTO 60 176/256 (68.75 %)
    7 KADORTO 100 256/256 (100.00 %)

ソース

D835  8E 03 DA       STX $DA03
D838  A0 01          LDY #$01
D83A  20 F0 40       JSR $40F0
D83D  A0 01          LDY #$01
D83F  B1 20          LDA ($20),Y ; LV 上位 8 bit
D841  F0 07          BEQ $D84A
D843  A9 FF          LDA #$FF
D845  8D 04 DA       STA $DA04
D848  80 05          BRA $D84F

D84A  B2 20          LDA ($20)
D84C  8D 04 DA       STA $DA04 ; LV 下位 8 bit

D84F  AE 03 DA       LDX $DA03
D852  A0 02          LDY #$02
D854  20 F0 40       JSR $40F0
D857  B2 20          LDA ($20)
D859  29 07          AND #$07
D85B  8D 05 DA       STA $DA05 ; 職業
D85E  0A             ASL A
D85F  0A             ASL A
D860  AA             TAX
D861  BD 13 DA       LDA $DA13,X
D864  8D 06 DA       STA $DA06
D867  C9 FF          CMP #$FF
D869  D0 02          BNE $D86D
D86B  62             CLA
D86C  60             RTS

;
; 呪文の回数更新 & 習得
;
D86D  BD 14 DA       LDA $DA14,X
D870  CD 04 DA       CMP $DA04   ; min(255, LV)
D873  90 37          BCC $D8AC
;
; 回数更新
;
D875  BD 15 DA       LDA $DA15,X
D878  85 50          STA $50
D87A  BD 16 DA       LDA $DA16,X
D87D  85 51          STA $51
...
D898  AD 06 DA       LDA $DA06
D89B  4A             LSR A
D89C  48             PHA
D89D  90 04          BCC $D8A3
D89F  62             CLA
D8A0  20 37 D9       JSR $D937 ; MAGE 回数
D8A3  68             PLA
D8A4  4A             LSR A
D8A5  90 05          BCC $D8AC
D8A7  A9 01          LDA #$01
D8A9  20 37 D9       JSR $D937 ; PRIEST 回数
;
; 呪文習得
;
D8AC  9C 08 DA       STZ $DA08
D8AF  AD 06 DA       LDA $DA06
D8B2  4A             LSR A
D8B3  48             PHA
D8B4  90 04          BCC $D8BA
D8B6  62             CLA
D8B7  20 81 D9       JSR $D981 ; MAGE 呪文

D8BA  68             PLA
D8BB  4A             LSR A
D8BC  90 05          BCC $D8C3
D8BE  A9 01          LDA #$01
D8C0  20 81 D9       JSR $D981 ; PRIEST 呪文
D8C3  62             CLA
...
D8CD  60             RTS

;
; 呪文習得
;
D981  8D 0F 3A       STA $3A0F
D984  C9 00          CMP #$00
D986  D0 0A          BNE $D992
;
D988  AE 03 DA       LDX $DA03
D98B  A0 10          LDY #$10
D98D  20 F0 40       JSR $40F0
D990  80 08          BRA $D99A
;
D992  AE 03 DA       LDX $DA03
D995  A0 12          LDY #$12
D997  20 F0 40       JSR $40F0
;
D99A  C2             CLY
D99B  5A             PHY
D99C  B1 20          LDA ($20),Y ; 呪文の回数
D99E  F0 5C          BEQ $D9FC

...
D9BA  C2             CLY
D9BB  5A             PHY
D9BC  AC 0F 3A       LDY $3A0F
D9BF  D0 05          BNE $D9C6
D9C1  BD 19 DD       LDA $DD19,X ; MAGE 呪文確率
D9C4  80 03          BRA $D9C9

D9C6  BD 43 DD       LDA $DD43,X ; PRIEST 呪文確率

D9C9  7A             PLY
D9CA  C9 FF          CMP #$FF
D9CC  F0 2E          BEQ $D9FC

D9CE  8D 01 3A       STA $3A01
D9D1  5A             PHY
D9D2  A9 01          LDA #$01
D9D4  C0 00          CPY #$00
D9D6  F0 04          BEQ $D9DC
D9D8  0A             ASL A
D9D9  88             DEY
D9DA  80 F8          BRA $D9D4

D9DC  8D 02 3A       STA $3A02
D9DF  7A             PLY
D9E0  32 50          AND ($50)
D9E2  D0 14          BNE $D9F8 ; 習得済みの場合飛ばす

D9E4  A9 64          LDA #$64
D9E6  20 C6 40       JSR $40C6
D9E9  CD 01 3A       CMP $3A01
D9EC  B0 0A          BCS $D9F8 ; 判定

D9EE  AD 02 3A       LDA $3A02
D9F1  12 50          ORA ($50)
D9F3  92 50          STA ($50)
D9F5  EE 08 DA       INC $DA08

D9F8  C8             INY
D9F9  E8             INX
D9FA  80 BF          BRA $D9BB

D9FC  7A             PLY
D9FD  C8             INY
D9FE  C0 07          CPY #$07
DA00  D0 99          BNE $D99B
DA02  60             RTS

DA13  FF FF FF FF 
      01 1D 33 DA
      02 1D 33 DA 
      FF FF FF FF
      03 29 FE DA 
      01 24 1D DC
      02 24 1D DC 
      FF FF FF FF

DD19  3C 28 64 32 FF FF 
      3C 64 1E FF FF FF 
      32 32 64 FF FF FF 
      32 64 1E 64 FF FF 
      32 28 64 FF FF FF 
      28 64 28 FF FF FF 
      64 28 32 FF FF FF 
      3C 64 3C 64 32 FF 
      28 28 46 32 FF FF 
      64 3C 64 32 FF FF 
      28 28 28 28 28 FF 
      64 3C 32 3C FF FF 
      3C 64 14 FF FF FF 
      32 3C 64 FF FF FF

蘇生率

成功率は死亡・灰に依存しないようです。

手段 成功条件 確率
カント寺院 (乱数 0〜98) < 90 238/256 (92.04 %)
ディ (乱数 0〜99) < (20 + 対象の VIT) 約 (20 + 対象の VIT) %
カドルト (乱数 0〜99) < (50 + 対象の VIT) 約 (50 + 対象の VIT) %

ソース

;
; ディ
;
982E  5A             PHY
982F  AE 40 2B       LDX $2B40
9832  A9 03          LDA #$03
9834  20 17 41       JSR $4117
9837  18             CLC
9838  69 14          ADC #$14   ; 20 + 対象の VIT
983A  80 0D          BRA $9849
;
; カドルト
;
983C  DA             PHX
983D  5A             PHY
983E  AE 40 2B       LDX $2B40
9841  A9 03          LDA #$03
9843  20 17 41       JSR $4117
9846  18             CLC
9847  69 32          ADC #$32   ; 50 + 対象の VIT
;
9849  7A             PLY
984A  FA             PLX
984B  20 ED 40       JSR $40ED
984E  90 10          BCC $9860
...
985F  38             SEC
9860  60             RTS

;
; カント寺院
;
A086  A9 63          LDA #$63
A088  20 C6 40       JSR $40C6
A08B  C9 5A          CMP #$5A
A08D  B0 08          BCS $A097 ; (乱数 0〜98) < 90 ?
A08F  AE A5 A1       LDX $A1A5

鑑定

  1. (乱数 0〜99) < 境界値 であれば、鑑定に成功します。

    LV mod 256 境界値
    〜7 33
    8〜95 min(96, LV + AGI * 3)
    96〜 96
  2. 鑑定に失敗した場合:

    • 呪われたアイテムだった場合
      • 確率 30/256 でそのアイテムを装備します。(AFRAID にはならない)
      • 確率 226/256 で次の AFRAID 判定を行います。
    • それ以外の場合は、99/256 で AFRAID 状態になります。

ソース

AC06  AE 16 A3       LDX $A316
AC09  A0 07          LDY #$07
AC0B  20 F0 40       JSR $40F0
AC0E  B2 20          LDA ($20)
AC10  8D 30 AD       STA $AD30
AC13  0A             ASL A
AC14  18             CLC
AC15  6D 30 AD       ADC $AD30
AC18  8D 30 AD       STA $AD30 ; AGI * 3

AC1B  AE 16 A3       LDX $A316
AC1E  A0 01          LDY #$01
AC20  20 F0 40       JSR $40F0
AC23  B2 20          LDA ($20) ; LV mod 256
AC25  C9 08          CMP #$08
AC27  B0 04          BCS $AC2D
AC29  A9 21          LDA #$21
AC2B  80 0E          BRA $AC3B

AC2D  C9 60          CMP #$60
AC2F  B0 08          BCS $AC39
AC31  18             CLC
AC32  6D 30 AD       ADC $AD30
AC35  C9 60          CMP #$60
AC37  90 02          BCC $AC3B

AC39  A9 60          LDA #$60
AC3B  8D 30 AD       STA $AD30
AC3E  A9 64          LDA #$64
AC40  20 C6 40       JSR $40C6
AC43  CD 30 AD       CMP $AD30
AC46  B0 3D          BCS $AC85 ; 失敗
...

AC85  AE 16 A3       LDX $A316
AC88  A0 15          LDY #$15
AC8A  20 F0 40       JSR $40F0
AC8D  AD 2F AD       LDA $AD2F
AC90  0A             ASL A
AC91  0A             ASL A
AC92  18             CLC
AC93  6D 2F AD       ADC $AD2F
AC96  A8             TAY
AC97  C8             INY
AC98  B1 20          LDA ($20),Y
AC9A  29 10          AND #$10
AC9C  F0 17          BEQ $ACB5 ; 呪われていない
AC9E  A9 64          LDA #$64
ACA0  20 C6 40       JSR $40C6
ACA3  C9 0A          CMP #$0A
ACA5  B0 0E          BCS $ACB5 ; 装備しない
ACA7  A9 40          LDA #$40
ACA9  11 20          ORA ($20),Y
ACAB  91 20          STA ($20),Y
...

ACB5  A9 64          LDA #$64
ACB7  20 C6 40       JSR $40C6
ACBA  C9 21          CMP #$21
ACBC  B0 36          BCS $ACF4 ; AFRAID にならない

ACBE  AE 16 A3       LDX $A316
ACC1  A0 0F          LDY #$0F
ACC3  20 F0 40       JSR $40F0
ACC6  B2 20          LDA ($20)
ACC8  09 01          ORA #$01
ACCA  92 20          STA ($20)
...

エンカウント確率

  • 玄室: 確率 216/256
  • その他の動作: 確率 6/256

ソース

;
; エンカウント
;
A549  AE 0A 38       LDX $380A
A54C  AC 0B 38       LDY $380B
A54F  20 7B A4       JSR $A47B
A552  A2 01          LDX #$01
A554  A9 50          LDA #$50
A556  DF 63 03       BBS5 $63,$A55C
A559  CA             DEX
A55A  A9 02          LDA #$02

A55C  8E 0A 3A       STX $3A0A
A55F  20 ED 40       JSR $40ED
A562  60             RTS

友好的なモンスターの確率

  • ALARM の場合: 0%
  • 固定戦闘で、
    • 敵のその階層での登録番号が 6 の場合: 90/256 (#1 の Murphy's Ghost が該当)
    • それ以外の場合: 0%
  • それ以外の場合: 30/256

ソース

C182  9C 0D 39       STZ $390D
C185  AD 06 3A       LDA $3A06 ; アラーム
C188  D0 19          BNE $C1A3 

C18A  AD 08 3A       LDA $3A08 ; 固定戦闘
C18D  F0 0D          BEQ $C19C

C18F  AD 11 39       LDA $3911
C192  29 7F          AND #$7F
C194  C9 06          CMP #$06
C196  D0 0B          BNE $C1A3
C198  A9 1E          LDA #$1E
C19A  80 02          BRA $C19E

C19C  A9 0A          LDA #$0A
C19E  20 ED 40       JSR $40ED
C1A1  90 02          BCC $C1A5
C1A3  18             CLC
C1A4  60             RTS

味方先制・敵先制率

  • PRIEST RING を所持しており、先頭のモンスターに DISPEL が有効の場合: 100 % 味方先制
  • それ以外の場合:
    • 確率 15/256 で味方先制
    • 確率 10/256 で敵先制

ソース

9068  A9 AC          LDA #$AC ; PRIEST RING
906A  20 0F 9B       JSR $9B0F
906D  B0 10          BCS $907F

906F  AD 11 39       LDA $3911
9072  29 7F          AND #$7F
9074  A0 0D          LDY #$0D
9076  20 9B 41       JSR $419B
9079  90 04          BCC $907F ; DISPEL が有効でない

907B  A2 01          LDX #$01 ; 味方先制
907D  80 10          BRA $908F

907F  A9 64          LDA #$64
9081  20 C6 40       JSR $40C6
9084  C9 05          CMP #$05
9086  90 F3          BCC $907B

9088  82             CLX ; (通常)
9089  C9 5F          CMP #$5F
908B  90 02          BCC $908F

908D  A2 02          LDX #$02 ; 敵先制
...

モンスター出現数補正

敵の出現数は A + (乱数 0〜(B-1)) という形式で計算されますが、味方パーティの最大 LV が低い場合には (乱数 0〜(B-1)) の箇所に以下の補正がかかります。

味方の最大 LV 乱数 0〜(B-1) に対する補正
〜2 結果を 1/4 にする
〜4 結果を 1/2 にする
5〜 変化なし

ソース

A1B3  A0 05          LDY #$05
A1B5  20 58 A0       JSR $A058
A1B8  B2 27          LDA ($27)
A1BA  C9 11          CMP #$11
A1BC  D0 04          BNE $A1C2 ; A = 1, B = 1 ではない

A1BE  A9 01          LDA #$01
A1C0  38             SEC
A1C1  60             RTS

A1C2  48             PHA
A1C3  29 F0          AND #$F0
A1C5  4A             LSR A
A1C6  4A             LSR A
A1C7  4A             LSR A
A1C8  4A             LSR A
A1C9  20 C6 40       JSR $40C6
A1CC  85 7F          STA $7F   ; 乱数 0〜(B-1)
A1CE  62             CLA
A1CF  9C 4B 2B       STZ $2B4B
A1D2  9C 4C 2B       STZ $2B4C

A1D5  48             PHA
A1D6  A2 46          LDX #$46
A1D8  A0 2B          LDY #$2B
A1DA  20 F9 40       JSR $40F9
A1DD  38             SEC
A1DE  AD 46 2B       LDA $2B46
A1E1  ED 4B 2B       SBC $2B4B
A1E4  AD 47 2B       LDA $2B47
A1E7  ED 4C 2B       SBC $2B4C
A1EA  90 0C          BCC $A1F8
A1EC  AD 46 2B       LDA $2B46
A1EF  8D 4B 2B       STA $2B4B
A1F2  AD 47 2B       LDA $2B47
A1F5  8D 4C 2B       STA $2B4C
A1F8  68             PLA
A1F9  1A             INC
A1FA  CD 00 38       CMP $3800
A1FD  90 D6          BCC $A1D5

A1FF  AD 4C 2B       LDA $2B4C ; 最大 LV >= 256
A202  D0 0F          BNE $A213

A204  AD 4B 2B       LDA $2B4B
A207  C9 05          CMP #$05
A209  B0 08          BCS $A213 ; 最大 LV >= 5

A20B  46 7F          LSR $7F
A20D  C9 03          CMP #$03
A20F  B0 02          BCS $A213 ; 最大 LV >= 3
A211  46 7F          LSR $7F

A213  68             PLA
A214  29 0F          AND #$0F ; 最低出現数
A216  18             CLC
A217  65 7F          ADC $7F
A219  18             CLC
A21A  60             RTS

モンスターの正体の確定率

  • LATUMAPIC を唱えている場合: 100 %
  • それ以外の場合: 約 ((パーティの I.Q. の最大値) × 3) % の確率で確定できる。

ソース

89F2  48             PHA
89F3  DA             PHX
89F4  5A             PHY
89F5  18             CLC
89F6  AD 0E 38       LDA $380E
89F9  D0 0A          BNE $8A05 ; LATUMAPIC

89FB  A9 01          LDA #$01 ; I.Q.
89FD  44 0A          BSR $8A09
89FF  0A             ASL A
8A00  65 6F          ADC $6F
8A02  20 ED 40       JSR $40ED ; (乱数 0〜99) < I.Q * 3
;
8A05  7A             PLY
8A06  FA             PLX
8A07  68             PLA
8A08  60             RTS

;
; パーティ中の特性値 A の最大値を取得
;
8A09  DA             PHX
8A0A  64 6F          STZ $6F
8A0C  82             CLX
8A0D  DA             PHX
8A0E  48             PHA
8A0F  20 17 41       JSR $4117
8A12  C5 6F          CMP $6F
8A14  90 02          BCC $8A18
8A16  85 6F          STA $6F
8A18  68             PLA
8A19  FA             PLX
8A1A  E8             INX
8A1B  EC 00 38       CPX $3800
8A1E  90 ED          BCC $8A0D

8A20  A5 6F          LDA $6F
8A22  FA             PLX
8A23  60             RTS

RUN 成功率

  • (味方の最大 LV) >= (敵の最大 LV) の場合: 確率 236/256
  • それ以外の場合: 確率 150/256

ソース

;
; 逃げる
;
93E7  38             SEC
93E8  AD D3 39       LDA $39D3
93EB  D0 1A          BNE $9407
93ED  44 19          BSR $9408 ; 味方の最大 LV
93EF  44 49          BSR $943A ; 敵の最大 LV
93F1  38             SEC
93F2  AD 4B 2B       LDA $2B4B
93F5  ED 50 2B       SBC $2B50
93F8  AD 4C 2B       LDA $2B4C
93FB  ED 51 2B       SBC $2B51
93FE  A9 5A          LDA #$5A  ; 90
9400  B0 02          BCS $9404
9402  A9 32          LDA #$32

9404  20 ED 40       JSR $40ED ; 50
9407  60             RTS

DISPEL 成功率

  • 対象が識別済み かつ DISPEL 有効なモンスターの場合のみ、確率 (LV + 敵に設定された成功率) % で成功する。

ソース

;
; DISPEL
;
D179  A6 81          LDX $81
D17B  BD 12 39       LDA $3912,X
D17E  F0 61          BEQ $D1E1
;
D180  AD 44 2B       LDA $2B44
D183  10 05          BPL $D18A ; 識別済みの場合のみ判定
D185  A9 68          LDA #$68
D187  4C B4 40       JMP $40B4

D18A  A0 0D          LDY #$0D
D18C  20 9B 41       JSR $419B
D18F  90 F4          BCC $D185 ; DISPEL が有効でない

D191  8D 4B 2B       STA $2B4B
D194  AD 40 2B       LDA $2B40
D197  A2 46          LDX #$46
D199  A0 2B          LDY #$2B
D19B  20 F9 40       JSR $40F9
D19E  18             CLC
D19F  AD 4B 2B       LDA $2B4B
D1A2  6D 46 2B       ADC $2B46
D1A5  8D 46 2B       STA $2B46
D1A8  62             CLA
D1A9  6D 47 2B       ADC $2B47
D1AC  D0 08          BNE $D1B6 ; (LV + 境界値) >= 256
D1AE  AD 46 2B       LDA $2B46
D1B1  20 ED 40       JSR $40ED
D1B4  B0 CF          BCS $D185
...

D1E1  60             RTS

行動順

  • 他機種と異なり、行動順にはキャラクタの並びのみが影響しており、AGI は影響しません
  • モンスターはグループ単位で行動順を決めています。

以下のような手順で行動順を決定しています。

  1. 味方の行動順、敵パーティの行動順を並びの順とする。
  2. 味方の行動順を並び替える (※)。
  3. 敵パーティの行動順を並び替える。
  4. 味方・敵パーティの行動順を(味方が先になるように)結合し、敵味方混合状態で行動順を 2 回並び替える。

※ "並び替える" とは完全なシャッフル操作ではなく、「i = 1, 2, ..., (人数-1) について、確率 90/256 で i 番目と (i+1) 番目の行動者を入れ替える」という操作になっています。

  • つまり、味方 6 人(もしくは n 人)パーティの場合、最低でも 4 人(n-2 人)は敵に先制を取ることができます。

ソース

C1FE  62             CLA
C1FF  AA             TAX
C200  9D A2 2B       STA $2BA2,X ; 味方の行動順初期化
C203  48             PHA
C204  09 80          ORA #$80
C206  9D A8 2B       STA $2BA8,X ; 敵パーティの行動順初期化
C209  68             PLA
C20A  1A             INC
C20B  C9 06          CMP #$06
C20D  90 F0          BCC $C1FF

C20F  A2 A2          LDX #$A2
C211  A0 2B          LDY #$2B
C213  AD 00 38       LDA $3800
C216  44 35          BSR $C24D ; 味方の行動順を並び替える

C218  A2 A8          LDX #$A8
C21A  A0 2B          LDY #$2B
C21C  AD 10 39       LDA $3910
C21F  44 2C          BSR $C24D ; 敵パーティの行動順を並び替える

C221  82             CLX
C222  BD A2 2B       LDA $2BA2,X
C225  9D 93 39       STA $3993,X
C228  E8             INX
C229  EC 00 38       CPX $3800
C22C  90 F4          BCC $C222
C22E  C2             CLY
C22F  B9 A8 2B       LDA $2BA8,Y
C232  9D 93 39       STA $3993,X
C235  E8             INX
C236  C8             INY
C237  CC 10 39       CPY $3910
C23A  90 F3          BCC $C22F
C23C  8E 92 39       STX $3992 ; 並びを結合する

C23F  8A             TXA
C240  A2 93          LDX #$93
C242  A0 39          LDY #$39
C244  44 07          BSR $C24D ; 全体で並び替える

C246  AD 92 39       LDA $3992
C249  A2 93          LDX #$93
C24B  A0 39          LDY #$39 ; 再び、全体で並び替える

C24D  85 8D          STA $8D
C24F  3A             DEC
C250  F0 20          BEQ $C272
C252  86 8E          STX $8E
C254  84 8F          STY $8F
C256  A0 01          LDY #$01
C258  A9 1E          LDA #$1E
C25A  20 ED 40       JSR $40ED
C25D  B0 0E          BCS $C26D
C25F  B1 8E          LDA ($8E),Y
C261  AA             TAX
C262  88             DEY
C263  B1 8E          LDA ($8E),Y
C265  C8             INY
C266  91 8E          STA ($8E),Y
C268  88             DEY
C269  8A             TXA
C26A  91 8E          STA ($8E),Y
C26C  C8             INY
C26D  C8             INY
C26E  C4 8D          CPY $8D
C270  90 E6          BCC $C258
C272  60             RTS

EXP, GOLD

勝利後に入手できる EXP, GOLD 以下のように計算されます:

  • EXP: 敵パーティ毎の (1体の EXP + ランダム値)×(倒した数)を総和し、パーティの人数で割ったものです。

    • ランダム値は以下のようになっています:

      1 体のEXP ランダム値
      256 未満 0〜9
      256 以上 0〜99
  • GOLD: 倒した敵の (LV * 4) mod 256 の総和を、パーティの人数で割ったものです。0 の場合は 1 とします。

;
; EXP
;
A0F3  A0 0D          LDY #$0D
A0F5  20 58 A0       JSR $A058
A0F8  A0 02          LDY #$02
A0FA  B1 27          LDA ($27),Y
A0FC  99 4B 2B       STA $2B4B,Y
A0FF  88             DEY
A100  10 F8          BPL $A0FA

A102  A2 64          LDX #$64
A104  AD 4D 2B       LDA $2B4D
A107  0D 4C 2B       ORA $2B4C
A10A  D0 02          BNE $A10E ; EXP >= 256 かどうか

A10C  A2 0A          LDX #$0A

A10E  8A             TXA
A10F  20 C6 40       JSR $40C6
A112  18             CLC
A113  6D 4B 2B       ADC $2B4B
A116  8D 4B 2B       STA $2B4B
A119  62             CLA
A11A  6D 4C 2B       ADC $2B4C
A11D  8D 4C 2B       STA $2B4C
A120  62             CLA
A121  6D 4D 2B       ADC $2B4D
A124  8D 4D 2B       STA $2B4D
A127  9C 4E 2B       STZ $2B4E
A12A  9C 4F 2B       STZ $2B4F
A12D  60             RTS

;
; GOLD
;
DA8D  BD 11 39       LDA $3911,X
DA90  29 7F          AND #$7F
DA92  A0 01          LDY #$01
DA94  20 9B 41       JSR $419B
DA97  0A             ASL A
DA98  0A             ASL A
DA99  8D 4B 2B       STA $2B4B ; LV * 4
...

宝箱関連

INSPECT

  1. 成功/失敗の判定をおこないます。

    • 職業が THIEF, NINJA の場合:

      • 約 ((AGI + LUCK) * 2 + (LUCK 補正)) % で成功します。

        Luck Luck 補正
        0〜13 0
        14〜15 1
        16〜 2

        つまり AGI = 22, LUCK = 27 の場合、100% 成功します。

    • それ以外の職業の場合:
      • 確率 30/256 で、THIEF, NINJA と同等の判定を行います。
      • 確率 226/256 で、失敗となります。
  2. 1.で失敗した場合、

    • 確率 236/256 でランダムな罠を表示します。
    • 確率 20/256 で罠に引っかかります。

CALFO

  • 確率 246/256 で成功します。
    • 失敗した場合は、ランダムな罠を表示します。

DISARM

  1. 成功/失敗の判定をおこないます。

    • この判定は INSPECT の 1. の判定と同等です。
  2. 失敗した場合、更に以下の成功/失敗の判定を行います:

    • LV が 256 以上の場合: 無条件で成功となります。
    • LV が 256 未満の場合:
      • LUCK < 20 の場合: 約 1 / (22 - 運) の確率で成功します。
      • LUCK >= 20 の場合: 約 1 - 1 / (運 - 18) の確率で成功します。
  3. 2.でも失敗した場合は失敗となり、確率 216/256 で罠に引っかかります。

※ 運 27 のキャラクタの場合、職業によらず 少なくとも 90 % 程度で成功となります。

ソース

;
; INSPECT
;
DED3  20 87 DD       JSR $DD87 ; 確率判定
DED6  90 C1          BCC $DE99 ; 成功した場合

DED8  A9 5A          LDA #$5A 
DEDA  20 ED 40       JSR $40ED
DEDD  90 BE          BCC $DE9D ; 乱数 0〜99 < 90?

DEDF  A5 80          LDA $80
DEE1  F0 05          BEQ $DEE8

DEE3  A9 7B          LDA #$7B
DEE5  20 B4 40       JSR $40B4

...

;
; CALFO
;
DE94  A9 5F          LDA #$5F
DE96  20 ED 40       JSR $40ED ; 95% (246/256)
DE99  A5 80          LDA $80
DE9B  90 05          BCC $DEA2

DE9D  A9 0B          LDA #$0B
DE9F  20 C6 40       JSR $40C6 ; 0〜A
...

;
; DISARM
;
DF0E  A5 80          LDA $80
DF10  F0 CD          BEQ $DEDF ; 罠なし

DF12  20 87 DD       JSR $DD87 ; 第 1 判定
DF15  90 13          BCC $DF2A

DF17  20 FE DD       JSR $DDFE ; 第 2 判定
DF1A  90 0E          BCC $DF2A

DF1C  A9 7A          LDA #$7A
DF1E  20 B4 40       JSR $40B4 ; (罠をはずすことができなかった)

DF21  A9 50          LDA #$50
DF23  20 ED 40       JSR $40ED
DF26  B0 1A          BCS $DF42
DF28  80 B5          BRA $DEDF ; 乱数 0〜99 < 80
...

;
; 第一判定
;
DD87  AE 40 2B       LDX $2B40
DD8A  20 0B 41       JSR $410B ; 職業
DD8D  C9 03          CMP #$03
DD8F  F0 0B          BEQ $DD9C
DD91  C9 07          CMP #$07
DD93  F0 07          BEQ $DD9C
;
DD95  A9 0A          LDA #$0A
DD97  20 ED 40       JSR $40ED ; 乱数 0〜99 < 10
DD9A  B0 EA          BCS $DD86 ; 失敗
;
DD9C  AE 40 2B       LDX $2B40
DD9F  4C 29 8B       JMP $8B29

;
; THIEF, NINJA の場合
;
8B29  A9 04          LDA #$04
8B2B  20 17 41       JSR $4117
8B2E  85 6F          STA $6F ; AGI
8B30  A9 05          LDA #$05
8B32  20 17 41       JSR $4117 ; LUCK
8B35  48             PHA
8B36  18             CLC
8B37  65 6F          ADC $6F
8B39  0A             ASL A
8B3A  85 6F          STA $6F ; (AGI + LUCK) * 2
8B3C  68             PLA
8B3D  C9 0E          CMP #$0E
8B3F  90 08          BCC $8B49
8B41  E6 6F          INC $6F

8B43  C9 10          CMP #$10
8B45  90 02          BCC $8B49
8B47  E6 6F          INC $6F ; (AGI + LUCK) * 2 + (LUCK 補正)

8B49  A5 6F          LDA $6F
8B4B  4C ED 40       JMP $40ED

;
; 第 2 判定
;
DDFE  AD 40 2B       LDA $2B40
DE01  A2 46          LDX #$46
DE03  A0 2B          LDY #$2B
DE05  20 F9 40       JSR $40F9
;
DE08  AD 47 2B       LDA $2B47 ; LV 上位 8 bit
DE0B  D0 2D          BNE $DE3A

DE0D  AE 40 2B       LDX $2B40
DE10  A9 05          LDA #$05
DE12  20 17 41       JSR $4117
DE15  8D 3C DE       STA $DE3C ; 運
DE18  C9 14          CMP #$14
DE1A  90 0F          BCC $DE2B
DE1C  38             SEC
DE1D  AD 3C DE       LDA $DE3C
DE20  E9 12          SBC #$12
DE22  20 C6 40       JSR $40C6 ; 1 - 1 / (運 - 18)
DE25  C9 01          CMP #$01
DE27  F0 0F          BEQ $DE38
DE29  80 0F          BRA $DE3A
;
DE2B  38             SEC
DE2C  A9 16          LDA #$16
DE2E  ED 3C DE       SBC $DE3C
DE31  20 C6 40       JSR $40C6 ; 1 / (22 - 運)
DE34  C9 01          CMP #$01
DE36  F0 02          BEQ $DE3A

DE38  38             SEC
DE39  60             RTS

DE3A  18             CLC
DE3B  60             RTS

ダメージ計算

  • (攻撃回数) := (最大攻撃回数) - 乱数 0〜((最大攻撃回数)/2-1)

    • (最大攻撃回数) := min{22, max{1, LV/5}} + (武器の攻撃回数)
  • (基礎ダメージ) :=

    • 乱数 1〜2 (忍者以外の素手の場合)
    • 乱数 1〜7 (忍者の素手の場合)
    • C + 乱数 0〜(B-1) (武器を装備している場合) (例. MURAMASA BLADE は 5〜49)
  • (1ヒットダメージ) := ((基礎ダメージ) × (アイテムの倍打判定: 1 or 2) × (対象の睡眠状態判定: 1 or 2)) mod 256

    • アイテムの倍打判定は装備されている武器に加え、以下のアイテムについても判定されます。

      アイテム ID アイテム名称 要装備 倍打タイプ
      0x4C BLADEofOTAKA Yes すべて
      0x61 GARBofLORDS Yes 0x07(悪魔), 0x06(不死), 0x0a(獣人)
      0x9F GLOVESofMITHRIL Yes 0x07(悪魔)
      0xA0 GLOVESofSILVER Yes 0x0b(魔法生物)
      0xA2 MANTIS GLOVES Yes 0x05(昆虫)
      0xC0 JUDGEMENT CROSS No 0x06(不死)
      0xE3 BOOKofDEMONS No 0x07(悪魔)
      0xE8 BLUE PEARL No 0x0b(魔法生物)
  • (最終ダメージ) := (1ヒットダメージ) × (ヒットした回数)

    • (ヒットした回数) := (攻撃回数)回 命中判定を行い、ヒットした数

命中率

味方から敵への命中率は以下のように設定されます:

  1. まず、敵の AC の設定値のみに依存した一定の確率で 0% となります。

    AC 命中率が 0% になる確率
    -19以下 100 %
    -18 1/256
    -17〜-16 0 %
    -15〜 約 1/(AC+17)
  2. 上記の判定で命中率が 0% にならなかった場合は、以下のように計算されます:

    • (命中率) := max{(AC + (MORLIS 補正) + (DILTO 補正) + (MAMORLIS 補正) + 攻撃者のLV), 1} * 6 + ((STR 補正) + (AGI 補正)) * 5

      • (MORLIS 補正) := 0 or 4(効いた場合)(※同一呪文の重ねがけは効果なし。以下同様)

      • (DILTO 補正) := 0 or 2

      • (MAMORLIS 補正) := 0 or 4

      • (STR 補正) は以下で計算されます:

        STR STR 補正
        0〜11 0
        12〜14 1
        15〜16 2
        17 3
        18〜 4
      • (AGI 補正) は以下で計算されます:

        AGI AGI 補正
        0〜11 0
        12〜14 1
        15〜16 2
        17 3
        18〜 4

    補足

    • max{・, 1} の箇所は ・ が 0 の場合に限り、0 になります。
    • 装備品の ST は参照されていないようです。
  3. 装備している武器がレベル制限に引っかかっている場合、命中率を 10% に設定します。また、命中率が 256 % 以上の場合は 100 % にします。

クリティカルヒット率

クリティカルヒット率は以下のように定められています (N*U*M*E*R 除く):

条件 クリティカルヒット率
命中率が 0 % 0%
MACEofDEATH を装備している 100%
何も装備していない NINJA の攻撃 約 min{50, LV/4+1} %
クリティカル持ち武器を装備していて、LV が 256 以上 約 10 %
同上で、LV が 256 未満の場合 約 (LV/32+1) %

ソース

;
; 攻撃計算部分
;
C66E  20 A0 90       JSR $90A0
C671  B0 05          BCS $C678 ; N*U*M*E*R にクリティカルは発動しない

C673  20 BD 90       JSR $90BD
C676  90 6F          BCC $C6E7 ; クリティカル

C678  9C E8 C6       STZ $C6E8
C67B  A2 09          LDX #$09
C67D  9E 46 2B       STZ $2B46,X
C680  CA             DEX
C681  10 FA          BPL $C67D
;
C683  AD 40 2B       LDA $2B40
C686  0A             ASL A
C687  0A             ASL A
C688  6D 40 2B       ADC $2B40
C68B  A8             TAY
C68C  B9 B6 39       LDA $39B6,Y ; 攻撃回数
C68F  C9 01          CMP #$01
C691  F0 0D          BEQ $C6A0

C693  48             PHA
C694  4A             LSR A
C695  20 C6 40       JSR $40C6 ; 0〜(攻撃回数/2-1)
C698  8D E9 C6       STA $C6E9
C69B  68             PLA
C69C  38             SEC
C69D  ED E9 C6       SBC $C6E9

C6A0  A8             TAY       ; 攻撃回数 - (0〜(攻撃回数/2-1))
C6A1  5A             PHY
C6A2  AD 41 2B       LDA $2B41
C6A5  A0 07          LDY #$07
C6A7  20 98 41       JSR $4198
C6AA  85 88          STA $88   ; 基礎ダメージ取得

C6AC  20 40 91       JSR $9140
C6AF  85 88          STA $88   ; 素手忍者の場合 1〜7 に上書きする
C6B1  44 37          BSR $C6EA ; 倍打チェック
C6B3  B0 07          BCS $C6BC

C6B5  06 88          ASL $88
C6B7  A9 02          LDA #$02
C6B9  8D E8 C6       STA $C6E8

C6BC  A6 82          LDX $82
C6BE  BD 16 39       LDA $3916,X
C6C1  4A             LSR A
C6C2  90 02          BCC $C6C6
C6C4  06 88          ASL $88

C6C6  7A             PLY
C6C7  5A             PHY
C6C8  A5 83          LDA $83 ; 命中率
C6CA  20 ED 40       JSR $40ED
C6CD  B0 13          BCS $C6E2

C6CF  EE 46 2B       INC $2B46
C6D2  18             CLC
C6D3  A5 88          LDA $88
C6D5  6D 4B 2B       ADC $2B4B
C6D8  8D 4B 2B       STA $2B4B
C6DB  62             CLA
C6DC  6D 4C 2B       ADC $2B4C
C6DF  8D 4C 2B       STA $2B4C

C6E2  7A             PLY
C6E3  88             DEY
C6E4  D0 E1          BNE $C6C7
C6E6  38             SEC

C6E7  60             RTS

;
; 倍打チェック
;
C6EA  AD 44 2B       LDA $2B44
C6ED  29 7F          AND #$7F
C6EF  A0 0E          LDY #$0E
C6F1  20 9B 41       JSR $419B
C6F4  85 8F          STA $8F   ; 対象のタイプ
C6F6  44 34          BSR $C72C ; 特殊な倍打判定
C6F8  90 ED          BCC $C6E7
;
C6FA  AD 40 2B       LDA $2B40
C6FD  0A             ASL A
C6FE  0A             ASL A
C6FF  6D 40 2B       ADC $2B40
C702  AA             TAX
C703  BD B9 39       LDA $39B9,X ; 装備している武器の倍打タイプ
C706  C5 8F          CMP $8F
C708  D0 DC          BNE $C6E6

C70A  18             CLC
C70B  60             RTS

;
; 特殊な倍打判定
;
C72C  82             CLX
C72D  DA             PHX
C72E  8A             TXA
C72F  0A             ASL A
C730  0A             ASL A
C731  AA             TAX
C732  BD 0C C7       LDA $C70C,X ; 倍打アイテム ID
C735  AE 40 2B       LDX $2B40
C738  20 8F 41       JSR $418F
C73B  FA             PLX
C73C  90 06          BCC $C744 ; 所持している
;
C73E  E8             INX
C73F  E0 08          CPX #$08
C741  90 EA          BCC $C72D
C743  60             RTS

C744  E0 05          CPX #$05
C746  B0 11          BCS $C759 ; 6 個目以後は装備不要

C748  DA             PHX
C749  AE 40 2B       LDX $2B40
C74C  A9 01          LDA #$01
C74E  20 86 41       JSR $4186
C751  FA             PLX
C752  29 40          AND #$40
C754  F0 E8          BEQ $C73E

C756  8A             TXA
C757  F0 16          BEQ $C76F ; BLADEofOTAKA

C759  8A             TXA
C75A  0A             ASL A
C75B  0A             ASL A
C75C  A8             TAY
C75D  A9 03          LDA #$03
C75F  85 8E          STA $8E
C761  A5 8F          LDA $8F
C763  D9 0D C7       CMP $C70D,Y
C766  F0 07          BEQ $C76F ; 倍打タイプ一致
C768  C8             INY
C769  C6 8E          DEC $8E
C76B  D0 F6          BNE $C763
C76D  80 CF          BRA $C73E

C76F  18             CLC
C770  60             RTS

C70C  4C 00 00 00 ; BLADEofOTAKA
      61 07 06 0A ; GARBofLORDS
      9F 07 00 00 ; GLOVESofMITHRIL
      A0 0B 00 00 ; GLOVESofSILVER
      A2 05 00 00 ; MANTIS GLOVES
      C0 06 00 00 ; JUDGEMENT CROSS
      E3 07 00 00 ; BOOKofDEMONS
      E8 0B 00 00 ; BLUE PEARL

;
; 基礎ダメージ
;
68DE  09 00          ORA #$00
68E0  D0 07          BNE $68E9
68E2  A9 02          LDA #$02
68E4  20 76 54       JSR $5476
68E7  1A             INC ; 乱数 1〜2
68E8  60             RTS

68E9  A0 0C          LDY #$0C
68EB  20 8B 67       JSR $678B
68EE  A0 01          LDY #$01
68F0  B1 25          LDA ($25),Y ; B
68F2  20 76 54       JSR $5476
68F5  18             CLC
68F6  72 25          ADC ($25)   ; A + 乱数 0〜(B-1)
68F8  60             RTS

;
; クリティカル判定
;
90BD  A5 83          LDA $83
90BF  F0 7B          BEQ $913C ; 命中率 0 %

90C1  AD 41 2B       LDA $2B41
90C4  C9 4B          CMP #$4B
90C6  F0 76          BEQ $913E ; MACEofDEATH

90C8  AD 41 2B       LDA $2B41
90CB  D0 44          BNE $9111 ; 武器を装備しているか

90CD  AE 40 2B       LDX $2B40 
90D0  20 0B 41       JSR $410B
90D3  C9 07          CMP #$07
90D5  D0 65          BNE $913C ; NINJA かどうか

90D7  AE 40 2B       LDX $2B40
90DA  20 83 41       JSR $4183
90DD  09 00          ORA #$00
90DF  F0 11          BEQ $90F2 ; アイテムを持っていない

90E1  85 70          STA $70
90E3  C2             CLY
90E4  A9 01          LDA #$01
90E6  20 86 41       JSR $4186
90E9  29 40          AND #$40
90EB  D0 4F          BNE $913C ; 何かを装備している
90ED  C8             INY
90EE  C4 70          CPY $70
90F0  90 F2          BCC $90E4

90F2  AD 40 2B       LDA $2B40
90F5  A2 46          LDX #$46
90F7  A0 2B          LDY #$2B
90F9  20 F9 40       JSR $40F9

90FC  AD 47 2B       LDA $2B47
90FF  D0 0C          BNE $910D ; LV 上位 8 bit

9101  AD 46 2B       LDA $2B46
9104  C9 C8          CMP #$C8
9106  B0 05          BCS $910D ; LV 200 以上
9108  4A             LSR A
9109  4A             LSR A
910A  1A             INC
910B  80 2A          BRA $9137

910D  A9 32          LDA #$32
910F  80 26          BRA $9137

9111  AD 41 2B       LDA $2B41 ; 武器 ID
9114  A0 09          LDY #$09
9116  20 98 41       JSR $4198
9119  90 21          BCC $913C ; クリティカル持ちではない

911B  AD 40 2B       LDA $2B40
911E  A2 46          LDX #$46
9120  A0 2B          LDY #$2B
9122  20 F9 40       JSR $40F9
9125  AD 47 2B       LDA $2B47 ; LV 上位 8 bit
9128  D0 0B          BNE $9135 

912A  AD 46 2B       LDA $2B46 ; LV 下位 8 bit
912D  4A             LSR A
912E  4A             LSR A
912F  4A             LSR A
9130  4A             LSR A
9131  4A             LSR A
9132  1A             INC
9133  80 02          BRA $9137

9135  A9 0A          LDA #$0A

9137  20 ED 40       JSR $40ED
913A  90 02          BCC $913E

913C  38             SEC
913D  60             RTS

913E  18             CLC
913F  60             RTS

;
; 忍者の素手ダメージ
;
9140  AE 40 2B       LDX $2B40
9143  20 0B 41       JSR $410B
9146  C9 07          CMP #$07
9148  D0 24          BNE $916E ; 忍者以外

914A  AE 40 2B       LDX $2B40
914D  20 83 41       JSR $4183
9150  09 00          ORA #$00
9152  F0 13          BEQ $9167

9154  8D 71 91       STA $9171
9157  C2             CLY
9158  A9 01          LDA #$01
915A  20 86 41       JSR $4186
915D  29 40          AND #$40
915F  D0 0D          BNE $916E
9161  C8             INY
9162  CC 71 91       CPY $9171
9165  90 F1          BCC $9158

9167  A9 07          LDA #$07 ; 何も装備してない場合
9169  20 C6 40       JSR $40C6
916C  1A             INC ; 乱数 1〜7
916D  60             RTS

916E  A5 88          LDA $88 ; 基礎ダメージ
9170  60             RTS

;
; ダメージ計算用などの変数の計算
;
C1CE  82             CLX
C1CF  86 80          STX $80
C1D1  8A             TXA
C1D2  0A             ASL A
C1D3  0A             ASL A
C1D4  65 80          ADC $80
C1D6  A8             TAY
C1D7  5A             PHY
C1D8  20 A1 92       JSR $92A1
C1DB  84 80          STY $80 ; 装備 アイテム ID
C1DD  7A             PLY
C1DE  99 B9 39       STA $39B9,Y ; 倍打対象
C1E1  A5 80          LDA $80
C1E3  99 B5 39       STA $39B5,Y ; 装備 アイテム ID
C1E6  20 17 92       JSR $9217
C1E9  99 B6 39       STA $39B6,Y ; 攻撃回数
C1EC  20 64 92       JSR $9264
C1EF  99 B7 39       STA $39B7,Y ; 補正値 1
C1F2  20 12 90       JSR $9012
C1F5  99 B8 39       STA $39B8,Y ; 補正値 2
C1F8  E8             INX
C1F9  EC 00 38       CPX $3800
C1FC  90 D1          BCC $C1CF
...

;
; 攻撃回数
;
9217  DA             PHX
9218  5A             PHY
9219  DA             PHX
921A  A8             TAY
921B  F0 05          BEQ $9222 ; 武器アイテム ID

921D  A0 06          LDY #$06
921F  20 98 41       JSR $4198 ; 攻撃回数

9222  85 8F          STA $8F
9224  68             PLA
9225  A2 46          LDX #$46
9227  A0 2B          LDY #$2B
9229  20 F9 40       JSR $40F9 ; LV 取得
922C  A9 05          LDA #$05
922E  8D 48 2B       STA $2B48
9231  62             CLA
9232  A2 10          LDX #$10
9234  0E 46 2B       ASL $2B46
9237  2E 47 2B       ROL $2B47
923A  2A             ROL A
923B  CD 48 2B       CMP $2B48
923E  90 06          BCC $9246
9240  ED 48 2B       SBC $2B48
9243  EE 46 2B       INC $2B46
9246  CA             DEX
9247  D0 EB          BNE $9234
9249  8D 49 2B       STA $2B49 ; LV / 5

924C  A9 16          LDA #$16
924E  AE 47 2B       LDX $2B47 ; LV / 5 上位 8 bit
9251  D0 0B          BNE $925E
9253  AE 46 2B       LDX $2B46 ; LV / 5 下位 8 bit
9256  E0 16          CPX #$16
9258  B0 04          BCS $925E
925A  8A             TXA
925B  D0 01          BNE $925E
925D  1A             INC

925E  18             CLC
925F  65 8F          ADC $8F ; min{22, max{LV/5, 1}} + 攻撃回数
9261  7A             PLY
9262  FA             PLX
9263  60             RTS

;
; 武器の倍打取得
;
92A1  DA             PHX
92A2  20 83 41       JSR $4183
92A5  38             SEC
92A6  A8             TAY
92A7  F0 2C          BEQ $92D5 ; アイテム個数 == 0

92A9  85 70          STA $70
92AB  C2             CLY
92AC  62             CLA
92AD  20 86 41       JSR $4186
92B0  85 71          STA $71 ; アイテム ID
92B2  C9 4D          CMP #$4D
92B4  B0 18          BCS $92CE ; 武器以外は無視する

92B6  A9 01          LDA #$01
92B8  20 86 41       JSR $4186
92BB  29 40          AND #$40
92BD  F0 0F          BEQ $92CE ; 装備していない

92BF  A9 02          LDA #$02
92C1  20 86 41       JSR $4186
92C4  A4 71          LDY $71
92C6  38             SEC
92C7  29 0F          AND #$0F
92C9  F0 0A          BEQ $92D5 ; 倍打なし

92CB  18             CLC
92CC  FA             PLX
92CD  60             RTS

92CE  C8             INY
92CF  C4 70          CPY $70
92D1  90 D9          BCC $92AC
92D3  62             CLA
92D4  C2             CLY

92D5  FA             PLX
92D6  60             RTS

;
; 命中
;
973F  AD 44 2B       LDA $2B44
9742  29 7F          AND #$7F
9744  A0 04          LDY #$04
9746  20 9B 41       JSR $419B

9749  A5 28          LDA $28
974B  F0 0A          BEQ $9757

974D  A5 27          LDA $27  ; AC
974F  C9 EE          CMP #$EE
9751  B0 04          BCS $9757
9753  62             CLA      ; AC -18 未満のモンスター
9754  4C 06 98       JMP $9806

9757  18             CLC
9758  A5 27          LDA $27
975A  69 11          ADC #$11
975C  20 C6 40       JSR $40C6 ; 1 / (AC + 17) で命中率を 0 % に設定
975F  C9 01          CMP #$01
9761  F0 F0          BEQ $9753

9763  A6 82          LDX $82
9765  BD 16 39       LDA $3916,X
9768  0A             ASL A
9769  0A             ASL A
976A  A8             TAY
976B  90 0D          BCC $977A ; モーリス
976D  18             CLC
976E  A5 27          LDA $27
9770  69 04          ADC #$04
9772  85 27          STA $27
9774  A5 28          LDA $28
9776  69 00          ADC #$00
9778  85 28          STA $28

977A  98             TYA
977B  0A             ASL A
977C  90 0D          BCC $978B ; ディルト
977E  18             CLC
977F  A5 27          LDA $27
9781  69 02          ADC #$02
9783  85 27          STA $27
9785  A5 28          LDA $28
9787  69 00          ADC #$00
9789  85 28          STA $28

978B  AD F9 39       LDA $39F9 ; マモーリス
978E  F0 0D          BEQ $979D
9790  18             CLC
9791  A5 27          LDA $27
9793  69 04          ADC #$04
9795  85 27          STA $27
9797  A5 28          LDA $28
9799  69 00          ADC #$00
979B  85 28          STA $28

979D  AD 40 2B       LDA $2B40
97A0  A2 50          LDX #$50
97A2  A0 2B          LDY #$2B
97A4  20 F9 40       JSR $40F9
97A7  18             CLC
97A8  AD 50 2B       LDA $2B50
97AB  65 27          ADC $27
97AD  8D 50 2B       STA $2B50
97B0  AD 51 2B       LDA $2B51
97B3  65 28          ADC $28
97B5  8D 51 2B       STA $2B51 ; AC + 攻撃者のLV + 補正値
97B8  10 08          BPL $97C2

97BA  A9 01          LDA #$01
97BC  8D 50 2B       STA $2B50
97BF  9C 51 2B       STZ $2B51 ; 負の場合 1 に設定する

97C2  A9 06          LDA #$06
97C4  8D 4B 2B       STA $2B4B
97C7  9C 4C 2B       STZ $2B4C
97CA  20 21 8B       JSR $8B21 ; * 6

97CD  AD 40 2B       LDA $2B40
97D0  0A             ASL A
97D1  0A             ASL A
97D2  6D 40 2B       ADC $2B40
97D5  A8             TAY
97D6  B9 B7 39       LDA $39B7,Y ; STR/AGI 補正
97D9  18             CLC
97DA  6D 46 2B       ADC $2B46
97DD  8D 46 2B       STA $2B46
97E0  62             CLA
97E1  6D 47 2B       ADC $2B47
97E4  8D 47 2B       STA $2B47

97E7  B9 B5 39       LDA $39B5,Y
97EA  8D 41 2B       STA $2B41
97ED  F0 0D          BEQ $97FC

97EF  20 D4 41       JSR $41D4
97F2  90 08          BCC $97FC

97F4  A9 0A          LDA #$0A
97F6  8D 46 2B       STA $2B46
97F9  9C 47 2B       STZ $2B47

97FC  AD 46 2B       LDA $2B46
97FF  AE 47 2B       LDX $2B47
9802  F0 02          BEQ $9806
9804  A9 64          LDA #$64

9806  85 83          STA $83
9808  60             RTS

;
; STR/AGI 補正
;
9264  DA             PHX
9265  5A             PHY
9266  20 4D 90       JSR $904D ; STR 補正
9269  5A             PHY
926A  A9 04          LDA #$04
926C  20 17 41       JSR $4117 ; AGI
926F  7A             PLY
9270  C9 0C          CMP #$0C
9272  90 10          BCC $9284
9274  C8             INY
9275  C9 0F          CMP #$0F
9277  90 0B          BCC $9284
9279  C8             INY
927A  C9 11          CMP #$11
927C  90 06          BCC $9284
927E  C8             INY
927F  C9 12          CMP #$12
9281  90 01          BCC $9284
9283  C8             INY
9284  84 8E          STY $8E

9286  A9 05          LDA #$05
9288  85 8F          STA $8F
928A  62             CLA
928B  A2 08          LDX #$08
928D  0A             ASL A
928E  26 8F          ROL $8F
9290  90 07          BCC $9299
9292  18             CLC
9293  65 8E          ADC $8E
9295  90 02          BCC $9299
9297  E6 8F          INC $8F
9299  CA             DEX
929A  D0 F1          BNE $928D
929C  85 8E          STA $8E
929E  7A             PLY
929F  FA             PLX
92A0  60             RTS

;
; STR 補正
;
904D  A9 00          LDA #$00
904F  20 17 41       JSR $4117
9052  C2             CLY
9053  C9 0C          CMP #$0C
9055  90 10          BCC $9067
9057  C8             INY
9058  C9 0F          CMP #$0F
905A  90 0B          BCC $9067
905C  C8             INY
905D  C9 11          CMP #$11
905F  90 06          BCC $9067
9061  C8             INY
9062  C9 12          CMP #$12
9064  90 01          BCC $9067
9066  C8             INY
9067  60             RTS

状態異常 / ブレス

状態異常(レベルドレイン含む)の回避・ブレスの半減確率は以下のとおりです:

分類 回避(ブレス半減)条件 回避(ブレス半減)率
抵抗あり(抵抗取得バグ注意 (乱数 0〜99) < 90 236/256
抵抗なし(Luck 20 未満) (乱数 0〜(21-Luck)) = 1 約 1/(22 - Luck)
抵抗なし(Luck 20 以上) (乱数 0〜(Luck-19)) != 1 約 1 - 1/(Luck - 18)

補足

  • 首刎ねは、上記判定の後に別の回避判定があり、確率 226/256 で無条件で回避できます。
  • 無抵抗の場合であっても、Luck 27 では確率 227/256 で状態異常を回避することができます。

正確な確率

Luck 回避(ブレス半減)率
0 12/256 (4.69 %)
1 13/256 (5.08 %)
2 13/256 (5.08 %)
3 14/256 (5.47 %)
4 15/256 (5.86 %)
5 15/256 (5.86 %)
6 16/256 (6.25 %)
7 17/256 (6.64 %)
8 19/256 (7.42 %)
9 20/256 (7.81 %)
10 22/256 (8.59 %)
11 24/256 (9.38 %)
12 26/256 (10.16 %)
13 29/256 (11.33 %)
14 32/256 (12.50 %)
15 37/256 (14.45 %)
16 43/256 (16.80 %)
17 51/256 (19.92 %)
18 64/256 (25.00 %)
19 85/256 (33.20 %)
20 128/256 (50.00 %)
21 171/256 (66.80 %)
22 192/256 (75.00 %)
23 205/256 (80.08 %)
24 213/256 (83.20 %)
25 219/256 (85.55 %)
26 224/256 (87.50 %)
27 227/256 (88.67 %)

打撃防御・抵抗取得バグ

打撃防御・抵抗を持つアイテムを装備(非装備品については所持)している場合であっても、その抵抗が取得されない場合があります。

具体的には、敵から打撃やブレスなどを受けた際に 抵抗が正しく取得されるのは、最初の装備アイテム もしくは 非装備品までであり、それ以後の(n 番目の)アイテムの抵抗は 別キャラクタの n 番目のアイテムが装備されている もしくは 非装備品である場合にのみ取得されます。

打撃防御・抵抗 と 別キャラクタ との対応は以下の通りです:

打撃防御・抵抗 ID 対応する種族・状態異常 対応するキャラクタ
0x00〜0x03 戦士, 魔術師, 僧侶, 動物 前衛 1 番目
0x04〜0x0B 昆虫, 不死, 悪魔, 竜, 巨人, 獣人, 魔法生物, 火 前衛 2 番目
0x0C〜0x13 冷, 毒, ??, 麻, 石, 呪文, 吸, 首 前衛 3 番目
  • "??" は BASCINET のみに設定されていますが、用途不明です。
  • "呪文" は MANIFO, MONTINO, BADI, MABADI, KATINO の回避率を +20% します。(ダメージ半減効果はありません)

逆にこのバグを利用して、装備していない武器・防具の抵抗を取得することもできます。

ソース

確率周り

;
; 状態異常回避(ブレス半減)判定部分
;
D3F4  AA             TAX
D3F5  BD EB D3       LDA $D3EB,X
D3F8  20 D7 92       JSR $92D7   ; 抵抗の有無確認
D3FB  90 06          BCC $D403

D3FD  A9 5A          LDA #$5A    ; 抵抗がある場合
D3FF  20 ED 40       JSR $40ED   ; (乱数 0〜99) < 90 ?
D402  60             RTS

D403  20 0D DE       JSR $DE0D   ; 抵抗がない場合
D406  60             RTS

D3EB  0E 0D 0F 10 13 12 0B 0C 0D

;
; 抵抗がない場合の判定
;
DE0D  AE 40 2B       LDX $2B40
DE10  A9 05          LDA #$05
DE12  20 17 41       JSR $4117
DE15  8D 3C DE       STA $DE3C ; Luck
DE18  C9 14          CMP #$14
DE1A  90 0F          BCC $DE2B
;
; Luck 20 以上
;
DE1C  38             SEC
DE1D  AD 3C DE       LDA $DE3C
DE20  E9 12          SBC #$12  ; Luck - 18
DE22  20 C6 40       JSR $40C6 ; A ← (8 bit 乱数) % (Luck - 18)
DE25  C9 01          CMP #$01
DE27  F0 0F          BEQ $DE38
DE29  80 0F          BRA $DE3A
;
; Luck 20 未満
;
DE2B  38             SEC
DE2C  A9 16          LDA #$16
DE2E  ED 3C DE       SBC $DE3C ; 22 - Luck
DE31  20 C6 40       JSR $40C6 ; A ← (8 bit 乱数) % (22 - Luck)
DE34  C9 01          CMP #$01
DE36  F0 02          BEQ $DE3A
DE38  38             SEC
DE39  60             RTS

DE3A  18             CLC
DE3B  60             RTS

;
; 毒 / 麻痺 / 石化
;
D380  A5 83          LDA $83
D382  A0 0B          LDY #$0B
D384  20 9B 41       JSR $419B
D387  AA             TAX
D388  F0 60          BEQ $D3EA

D38A  85 84          STA $84
D38C  29 02          AND #$02 ; 毒持ち確認
D38E  F0 1A          BEQ $D3AA

D390  A9 01          LDA #$01
D392  44 60          BSR $D3F4
D394  90 14          BCC $D3AA
...
D3AA  A5 84          LDA $84
D3AC  29 04          AND #$04 ; 麻痺持ち確認
D3AE  F0 1A          BEQ $D3CA

D3B0  A9 02          LDA #$02
D3B2  44 40          BSR $D3F4
D3B4  90 14          BCC $D3CA
...
D3CA  A5 84          LDA $84
D3CC  29 08          AND #$08 ; 石化持ち確認
D3CE  F0 1A          BEQ $D3EA
D3D0  A9 03          LDA #$03
D3D2  44 20          BSR $D3F4
D3D4  90 14          BCC $D3EA
...
D3EA  60             RTS

;
; 首刎ね
;
D73F  A9 04          LDA #$04
D741  20 F4 D3       JSR $D3F4
D744  90 12          BCC $D758

D746  A9 0A          LDA #$0A
D748  20 ED 40       JSR $40ED ; (乱数 0〜99) < 10 ?
D74B  B0 0B          BCS $D758

;
; レベルドレイン
;
D7FD  A9 05          LDA #$05
D7FF  20 F4 D3       JSR $D3F4
D802  90 8A          BCC $D78E

;
; ブレス
;
D8EE  18             CLC
D8EF  A5 85          LDA $85
D8F1  69 06          ADC #$06
D8F3  20 F4 D3       JSR $D3F4
D8F6  08             PHP
D8F7  B0 0C          BCS $D905

D8F9  4E 47 2B       LSR $2B47 ; ダメージ半減
D8FC  6E 46 2B       ROR $2B46
D8FF  4E 51 2B       LSR $2B51
D902  6E 50 2B       ROR $2B50

;
; 確率系呪文
;
D516  AD 43 2B       LDA $2B43
D519  A0 13          LDY #$13
D51B  20 9B 41       JSR $419B
D51E  85 8F          STA $8F
D520  A9 11          LDA #$11 ; "呪文" 抵抗
D522  20 D7 92       JSR $92D7
D525  A5 8F          LDA $8F
D527  90 03          BCC $D52C
D529  18             CLC
D52A  69 14          ADC #$14
D52C  4C ED 40       JMP $40ED

打撃防御・抵抗取得

92D7  DA             PHX
92D8  85 70          STA $70
92DA  AE 40 2B       LDX $2B40 ; 対象キャラクタ ID
92DD  20 83 41       JSR $4183 ; キャラクタ X のアイテム個数の取得
92E0  18             CLC
92E1  09 00          ORA #$00
92E3  F0 22          BEQ $9307

92E5  85 71          STA $71
92E7  C2             CLY

92E8  5A             PHY
92E9  62             CLA
92EA  20 86 41       JSR $4186 ; キャラクタ X の Y 番目のアイテム ID 取得
92ED  7A             PLY
92EE  C9 C6          CMP #$C6
92F0  B0 09          BCS $92FB ; 非装備品なら装備不要

92F2  A9 01          LDA #$01
92F4  20 86 41       JSR $4186 ; キャラクタ X の Y 番目のアイテムの装備状態
92F7  29 40          AND #$40
92F9  F0 06          BEQ $9301

92FB  A5 70          LDA $70
92FD  44 0A          BSR $9309 ; アイテムの抵抗確認(X レジスタが変更される)
92FF  B0 06          BCS $9307

9301  C8             INY
9302  C4 71          CPY $71
9304  90 E2          BCC $92E8

9306  18             CLC
9307  FA             PLX
9308  60             RTS

;
; 抵抗の確認(注意: X レジスタは破壊される)
;
9309  48             PHA
930A  5A             PHY
930B  48             PHA
930C  AE 40 2B       LDX $2B40 ; 対象キャラクタ ID
930F  62             CLA
9310  20 86 41       JSR $4186
9313  A0 02          LDY #$02
9315  B1 20          LDA ($20),Y
9317  99 7B 20       STA $207B,Y
931A  C8             INY
931B  C0 05          CPY #$05
931D  90 F6          BCC $9315

931F  68             PLA
9320  18             CLC
9321  69 04          ADC #$04
9323  20 54 40       JSR $4054
9326  38             SEC
9327  35 7D          AND $7D,X
9329  D0 01          BNE $932C
932B  18             CLC

932C  7A             PLY
932D  68             PLA
932E  60             RTS

リセット回数

シナリオクリア時、リセット回数に依存して以下の効果があります:

リセット回数 効果
0 全呪文習得 & 使用回数 9 回
1〜9 特性値 MAX
10〜29 EXP +100,000
30〜399 (なし)
400〜499 性格を 善・中立・悪 のいずれかに変更
500〜 年齢 +10 歳

ソース

;
; クリア
;
89D8  AD F2 36       LDA $36F2
89DB  0D F3 36       ORA $36F3
89DE  D0 55          BNE $8A35

;
; リセット回数 0 回
;
89E0  82             CLX
89E1  DA             PHX
89E2  BD 01 38       LDA $3801,X
89E5  AA             TAX
89E6  DA             PHX
89E7  A0 10          LDY #$10
89E9  20 F0 40       JSR $40F0
89EC  A9 99          LDA #$99
89EE  C2             CLY
89EF  91 20          STA ($20),Y
89F1  C8             INY
89F2  C0 07          CPY #$07
89F4  90 F9          BCC $89EF

89F6  82             CLX
89F7  BD 27 8A       LDA $8A27,X
89FA  91 20          STA ($20),Y
89FC  C8             INY
89FD  E8             INX
89FE  E0 07          CPX #$07
8A00  90 F5          BCC $89F7

8A02  FA             PLX
8A03  A0 12          LDY #$12
8A05  20 F0 40       JSR $40F0
8A08  C2             CLY
8A09  A9 99          LDA #$99
8A0B  91 20          STA ($20),Y
8A0D  C8             INY
8A0E  C0 07          CPY #$07
8A10  90 F9          BCC $8A0B

8A12  82             CLX
8A13  BD 2E 8A       LDA $8A2E,X
8A16  91 20          STA ($20),Y
8A18  C8             INY
8A19  E8             INX
8A1A  E0 07          CPX #$07
8A1C  90 F5          BCC $8A13
8A1E  FA             PLX
8A1F  E8             INX
8A20  EC 00 38       CPX $3800
8A23  90 BC          BCC $89E1

8A25  38             SEC
8A26  60             RTS

8A35  AD F3 36       LDA $36F3
8A38  D0 35          BNE $8A6F
8A3A  AD F2 36       LDA $36F2
8A3D  C9 0A          CMP #$0A
8A3F  B0 12          BCS $8A53
;
; リセット回数 1〜9
;
8A41  82             CLX
8A42  DA             PHX
8A43  BD 01 38       LDA $3801,X
8A46  AA             TAX
8A47  20 C0 8A       JSR $8AC0
8A4A  FA             PLX
8A4B  E8             INX
8A4C  EC 00 38       CPX $3800
8A4F  90 F1          BCC $8A42
8A51  38             SEC
8A52  60             RTS

8A53  C9 1E          CMP #$1E
8A55  B0 18          BCS $8A6F
8A57  82             CLX
;
; リセット回数 10〜29
;
8A58  DA             PHX
8A59  8A             TXA
8A5A  A2 6A          LDX #$6A
8A5C  A0 8A          LDY #$8A
8A5E  20 41 41       JSR $4141
8A61  FA             PLX
8A62  E8             INX
8A63  EC 00 38       CPX $3800
8A66  90 F0          BCC $8A58
8A68  38             SEC
8A69  60             RTS

8A6A  A0 86 01 00 00 

;
; 30 回 以上:
;
8A6F  AD F3 36       LDA $36F3
8A72  F0 0D          BEQ $8A81
8A74  C9 01          CMP #$01
8A76  F0 02          BEQ $8A7A
8A78  B0 09          BCS $8A83
8A7A  AD F2 36       LDA $36F2
8A7D  C9 90          CMP #$90
8A7F  B0 02          BCS $8A83
;
; 30〜399 回
;
8A81  18             CLC
8A82  60             RTS

;
; 400 回以上
;
8A83  AD F3 36       LDA $36F3
8A86  C9 01          CMP #$01
8A88  F0 02          BEQ $8A8C
8A8A  B0 1C          BCS $8AA8
8A8C  AD F2 36       LDA $36F2
8A8F  C9 F4          CMP #$F4
8A91  B0 15          BCS $8AA8
;
; 400〜499 回: 善/中立/悪をランダムに上書き
;
8A93  82             CLX
8A94  DA             PHX
8A95  A9 03          LDA #$03
8A97  20 C6 40       JSR $40C6
8A9A  FA             PLX
8A9B  DA             PHX
8A9C  20 0E 41       JSR $410E
8A9F  FA             PLX
8AA0  E8             INX
8AA1  EC 00 38       CPX $3800
8AA4  90 EE          BCC $8A94
8AA6  38             SEC
8AA7  60             RTS
;
; 500回 以上: 10 歳加算
;
8AA8  82             CLX
8AA9  DA             PHX
8AAA  C2             CLY
8AAB  5A             PHY
8AAC  A9 01          LDA #$01
8AAE  20 2F 41       JSR $412F
8AB1  7A             PLY
8AB2  C8             INY
8AB3  C0 0A          CPY #$0A
8AB5  90 F4          BCC $8AAB
8AB7  FA             PLX
8AB8  E8             INX
8AB9  EC 00 38       CPX $3800
8ABC  90 EB          BCC $8AA9
8ABE  38             SEC
8ABF  60             RTS

8AC0  A0 02          LDY #$02
8AC2  20 F0 40       JSR $40F0
8AC5  C2             CLY
8AC6  B1 20          LDA ($20),Y
8AC8  4A             LSR A
8AC9  4A             LSR A
8ACA  29 0E          AND #$0E
8ACC  8D 18 8B       STA $8B18
8ACF  0A             ASL A
8AD0  18             CLC
8AD1  6D 18 8B       ADC $8B18
8AD4  AA             TAX
8AD5  C8             INY
8AD6  BD FA 8A       LDA $8AFA,X
8AD9  91 20          STA ($20),Y
8ADB  C8             INY
8ADC  BD FB 8A       LDA $8AFB,X
8ADF  91 20          STA ($20),Y
8AE1  C8             INY
8AE2  BD FC 8A       LDA $8AFC,X
8AE5  91 20          STA ($20),Y
8AE7  C8             INY
8AE8  BD FD 8A       LDA $8AFD,X
8AEB  91 20          STA ($20),Y
8AED  C8             INY
8AEE  BD FE 8A       LDA $8AFE,X
8AF1  91 20          STA ($20),Y
8AF3  C8             INY
8AF4  BD FF 8A       LDA $8AFF,X
8AF7  91 20          STA ($20),Y
8AF9  60             RTS

8AFA  14 14 11 14 14 15
      13 16 16 12 15 12 
      16 13 16 16 11 12 
      13 13 16 14 16 13 
      11 13 13 12 16 1B
最終更新:2024年01月28日 09:26