裏CHUNSOFT > ROMイメージ改造・解析 > 特殊地形の出現率

特殊地形の出現率

Windows版風来のシレンのゴミ壺ダンジョンでも特殊地形の出現率を設定できましたが、SFC版では一体どうなっているのかと思って調べてみました。

035561  20 5D 57        JSR $575D       ; 
03575D  A2 01           LDX #$01        ; "X" = 01
03575F  22 E6 27 C6     JSL $0627E6     ; $00 = 01(こばみ谷),02(食神のほこら),03(掛軸裏の洞窟),04(フェイの最終問題)
035763  A4 00           LDY $00         ; "Y" = $00
035765  C0 01           CPY #$01        ; 
035767  D0 12           BNE #$12        ; "Y" != 01(こばみ谷) のとき03577Bへ
035769  22 71 27 C6     JSL $062771     ; $00 = (フロア)
03576D  A5 00           LDA $00         ; "A" = $00
03576F  C9 15           CMP #$15        ; 
035771  B0 03           BCS #$03        ; "A" >= 15(21F) のとき035776へ
035773  CA              DEX             ; "X" --
035774  80 05           BRA #$05        ; 03577Bへ
035776  C9 1A           CMP #$1A        ; 
035778  90 01           BCC #$01        ; "A" < 1A(26F) のとき03577Bへ
03577A  CA              DEX             ; "X" --
03577B  86 06           STX $06         ; $06 = "X"

いきなりよく分からないことをしています。 $06は、こばみ谷で21〜25Fではないときのみ00hで、それ以外は01hになるようです。

03577D  A2 01           LDX #$01        ; "X" = 01
03577F  C0 02           CPY #$02        ; 
035781  F0 0B           BEQ #$0B        ; "Y" = 02(食神のほこら) のとき03578Eへ
035783  C0 03           CPY #$03        ; 
035785  F0 07           BEQ #$07        ; "Y" = 03(掛軸裏の洞窟) のとき03578Eへ
035787  C0 04           CPY #$04        ; 
035789  F0 03           BEQ #$03        ; "Y" = 04(フェイの最終問題) のとき03578Eへ
03578B  86 04           STX $04         ; $04 = "X"
03578D  60              RTS             ; 035564へ
03578E  22 71 27 C6     JSL $062771     ; $00 = (フロア)
035792  A5 00           LDA $00         ; "A" = $00
035794  C9 04           CMP #$04        ; 
035796  B0 F3           BCS #$F3        ; "A" >= 04(4F) のとき03578Bへ
035798  CA              DEX             ; "X" --
035799  80 F0           BRA #$F0        ; 03578Bへ

$04は、クリア後のダンジョンで1〜3Fのときのみ00hで、それ以外は01hになるようです。

035564  98              TYA             ; "A" = "Y"
035565  0A              ASL             ; "A" *= 02
035566  AA              TAX             ; "X" = "A"
035567  BF BD 55 C3     LDA $0355BD+"X" ; "A" = $0355BD+"X"
03556B  85 A9           STA $A9         ; $A9 = "A"
03556D  BF BE 55 C3     LDA $0355BE+"X" ; "A" = $0355BE+"X"
035571  85 AA           STA $AA         ; $AA = "A"
035573  4B              PHK             ; 
035574  AB              PLB             ; 

ここは詳しく説明すると面倒なので結果だけ言いますが、特殊地形の出現率の表には3種類あって、どれが使われるかはダンジョンによって決まります。

表の中身は以下の通りです。

表1
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
07 07 03 03 03 03 03 03 03 03 03 03 03 03 03 03
09 09 03 03 03 03 03 03 0A 0A 03 03 03 03 03 03
0B 0B 03 03 03 03 03 03 0C 0C 03 03 03 03 03 03
0D 0D 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03

表2
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 04 04 03 03 03 03 03 03
05 05 03 03 03 03 03 03 03 03 03 03 03 03 03 03
07 07 03 03 03 03 03 03 03 03 03 03 03 03 03 03
09 09 03 03 03 03 03 03 0A 0A 03 03 03 03 03 03
0B 0B 0B 03 03 03 03 03 0C 0C 0C 03 03 03 03 03
0C 0D 0D 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03

表3
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 04 04 03 03 03 03 03 03
05 05 03 03 03 03 03 03 03 03 03 03 03 03 03 03
07 07 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
0B 0B 0B 03 03 03 03 03 0C 0C 0C 03 03 03 03 03
0D 0D 0D 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03

そして、数値の意味は以下の通りです。

大迷路は、SFC版風来のシレンでは没地形となっていますが、表を変更して出現するようにしてやれば問題なくフロアが形成されます。

035575  22 DB 27 C6     JSL $0627DB     ; $00 = 01(こばみ谷ランダム),02(食神のほこら),03(掛軸裏の洞窟),04(フェイの最終問題),08(フェイの問題),0A(こばみ谷シャッフル)
035579  A5 00           LDA $00         ; "A" = $00
03557B  C9 0A           CMP #$0A        ; 
03557D  90 04           BCC #$04        ; "A" < 0A のとき035583へ
03557F  A0 80           LDY #$80        ; "Y" = 80 (シャッフルダンジョンのときの例外処理)
035581  80 11           BRA #$11        ; 035594へ
035583  C9 08           CMP #$08        ; 
035585  D0 04           BNE #$04        ; "A" != 08(フェイの問題) のとき03558Bへ
035587  A0 81           LDY #$81        ; "Y" = 81 (フェイの問題のときの例外処理)
035589  80 09           BRA #$09        ; 035594へ
03558B  22 5F F6 C3     JSL $03F65F     ; $00 = (乱数)
03558F  A5 00           LDA $00         ; "A" = $00
035591  29 7F           AND #$7F        ; "A" = 00〜7F
035593  A8              TAY             ; "Y" = "A"
035594  B1 A9           LDA ($A9)+"Y"   ; "A" = ($A9)+"Y" (表の"Y"番目の数値を取得)
035596  A6 06           LDX $06         ; "X" = $06
035598  E0 01           CPX #$01        ; 
03559A  F0 0A           BEQ #$0A        ; "X" = 01 のとき0355A6へ
03559C  C9 09           CMP #$09        ; 
03559E  F0 EB           BEQ #$EB        ; "A" = 09(飛び地) のとき乱数生成からやり直し
0355A0  C9 0A           CMP #$0A        ; 
0355A2  F0 E7           BEQ #$E7        ; "A" = 0A(2分裂) のとき乱数生成からやり直し
0355A4  80 12           BRA #$12        ; 0355B8へ
0355A6  A6 04           LDX $04         ; "X" = $04
0355A8  E0 01           CPX #$01        ; 
0355AA  F0 0C           BEQ #$0C        ; "X" = 01 のとき0355B8へ
0355AC  C9 04           CMP #$04        ; 
0355AE  F0 DB           BEQ #$DB        ; "A" = 04(4分割) のとき乱数生成からやり直し
0355B0  C9 05           CMP #$05        ; 
0355B2  F0 D7           BEQ #$D7        ; "A" = 05(2分割) のとき乱数生成からやり直し
0355B4  C9 07           CMP #$07        ; 
0355B6  F0 D3           BEQ #$D3        ; "A" = 07(大部屋) のとき乱数生成からやり直し
0355B8  8F 79 C1 7E     STA $7EC179     ; $7EC179 = "A" (これが最終的に決まる地形)
0355BC  60              RTS             ; 

$06と$04はここで使われます。 こばみ谷で21〜25Fではないときに飛び地と2分裂は選ばれなくなり、クリア後のダンジョンで1〜3Fのときに必ずモンスターハウスがある地形は選ばれなくなります。 後者は、1〜3Fにはモンスターハウスは出ないということなので分かりますが、前者については、私はこばみ谷21〜25Fで飛び地や2分裂を見た覚えはありません。 誰か確認して下さい。

以上をまとめると、各ダンジョンにおける特殊地形の出現率は以下の通りです。

ダンジョン普通4分割2分割大部屋飛び地2分裂格子外周1本道再選択
こばみ谷116/1280/1280/1282/1282/1282/1282/1282/1282/12821〜25F以外で飛び地、2分裂が選ばれたとき
食神のほこら109/1282/1282/1282/1282/1282/1283/1284/1282/1281〜3Fで4分割、2分割、大部屋が選ばれたとき
掛軸裏の洞窟113/1282/1282/1282/1280/1280/1283/1283/1283/1281〜3Fで4分割、2分割、大部屋が選ばれたとき
フェイの最終問題109/1282/1282/1282/1282/1282/1283/1284/1282/1281〜3Fで4分割、2分割、大部屋が選ばれたとき

2009年2月25日更新

裏CHUNSOFT > ROMイメージ改造・解析 > 特殊地形の出現率