回復量・ダメージ量の範囲
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 |
上記の呪文は 以下の確率で回避することができます:
呪文抵抗補正:
; (味方 → 敵側での定義)
; 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
種族補正 | 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 は以下の式で計算されます:
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
LV が上がった際に、以下の条件を満たす場合のみ、呪文の回数が更新されます。
職業 | 条件 | 回数の更新対象 |
---|---|---|
MAGE | LV 29 以下 | MAGE 呪文 |
PRIEST | LV 29 以下 | PRIEST 呪文 |
BISHOP | LV 41 以下 | MAGE, PRIEST 呪文 |
SAMURAI | LV 36 以下 | MAGE 呪文 |
LORD | LV 36 以下 | PRIEST 呪文 |
呪文は以下の職業についている場合にのみ習得判定があります:
レベル 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
(乱数 0〜99) < 境界値 であれば、鑑定に成功します。
LV mod 256 | 境界値 |
---|---|
〜7 | 33 |
8〜95 | min(96, LV + AGI * 3) |
96〜 | 96 |
鑑定に失敗した場合:
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)
...
;
; エンカウント
;
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
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
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
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
;
; 逃げる
;
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
;
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
以下のような手順で行動順を決定しています。
※ "並び替える" とは完全なシャッフル操作ではなく、「i = 1, 2, ..., (人数-1) について、確率 90/256 で i 番目と (i+1) 番目の行動者を入れ替える」という操作になっています。
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: 敵パーティ毎の (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
...
成功/失敗の判定をおこないます。
職業が THIEF, NINJA の場合:
約 ((AGI + LUCK) * 2 + (LUCK 補正)) % で成功します。
Luck | Luck 補正 |
---|---|
0〜13 | 0 |
14〜15 | 1 |
16〜 | 2 |
つまり AGI = 22, LUCK = 27 の場合、100% 成功します。
1.で失敗した場合、
成功/失敗の判定をおこないます。
失敗した場合、更に以下の成功/失敗の判定を行います:
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)
(基礎ダメージ) :=
(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ヒットダメージ) × (ヒットした回数)
命中率
味方から敵への命中率は以下のように設定されます:
まず、敵の AC の設定値のみに依存した一定の確率で 0% となります。
AC | 命中率が 0% になる確率 |
---|---|
-19以下 | 100 % |
-18 | 1/256 |
-17〜-16 | 0 % |
-15〜 | 約 1/(AC+17) |
上記の判定で命中率が 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 |
補足
装備している武器がレベル制限に引っかかっている場合、命中率を 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) |
補足
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 番目 |
逆にこのバグを利用して、装備していない武器・防具の抵抗を取得することもできます。
;
; 状態異常回避(ブレス半減)判定部分
;
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