魔界塔士SaGa 乱数の考察


魔界塔士の乱数
乱数表が調査に著しく役に立つことは、秘宝伝説の例からも明らかなので、さっそく魔界塔士の乱数について調べてみた。調査はノーマルGB(カラーやポケットやましてやアドバンスではない)で、ROMの23を用いて行った。
HPx00 やポーションなどの回復アイテムの使用時に乱数が使われるので、各々の増量と回復量のデータを取った(HPx00 は HP600 で)。結果、HPx00 とポーションとは違う乱数を使っていることが判った。つまり、HPx00 を使って乱数を進めても、ポーション側の乱数には影響がなく、逆もまた然りということである。また、各々の乱数の周期は256であろう事が窺い知れた。更に、データから判ることは、HPx00 が 5〜20、ポーションが 30〜50 の増量/回復量を取っていることである。そこで、乱数を16(ポーションは 21)で割った余りを用いているのではないかと考えて、乱数から5(ポーションは30)を引いた値の表も作ってみた。勿論、それぞれの値の出現頻度も調べてみた。
すると、実に困ったことに、出現頻度に偏りがあった。秘宝伝説の乱数は0〜255が一度ずつ出てくる256周期であったが、魔界塔士も同様と考えて、更に、HPx00のHP増量の計算を、5 + (乱数を16で割った余り)と考えると、それぞれの出現頻度はちょうど16ずつでなければならない。よって、乱数に0〜255が一度ずつ出てくることが誤りか、または、HPx00のHP増量の計算の仕方が誤りかである。もちろん両方誤りの可能性もある。
非常に困ったので、少しばかり匙を投げているのである。だが、ハイポーションは90〜150の回復量を取り、かつポーションと乱数を共有していることが判っている。ポーション側の乱数を解明できればその推測でHPx00側の乱数も解ろうというもの。あるいは、秘宝伝説ではハードが異なれば、乱数の始まる位置が違うだけだったので、魔界塔士の方でもそこを観察すれば何かヒントが得られるかもしれない。また、乱数の出現頻度について言えば、HPx00の方は顕著で、0 と 15 が共に 9回 で残りは全て 17回 である。ポーションの方もややバラツキがあるが似た傾向にある。
幾つか考えるべきことがあるので全くの手付かずという訳ではないが、今は少しばかり忙しく、データを取ったりデータをじっくり眺めたりする時間が惜しい。「余が考えてつかわそう」という奇特な(失礼)方はどうぞ宜しくお願いします。何かわかりましたらぜひご一報下さい。
(2002.01.01) ポーションの回復量に間違いがありました。4Fの47は37の間違いです。それに伴い出現頻度も訂正です。0,5,10,15,20以外は全て13個ずつで、0,20は6つ、5,10,15は12個ずつと顕著な規則が見えてきました。
HP600の乱数表 || ポーションの乱数表

■ HP600使用時のHPの増量 生データ ■

000102030405060708090A0B0C0D0E0F
0020199171715161061692018151717
10181218171951058714152016617
201686121914131110121391961911
301417196181714171218107171386
40121389167918149171215181510
5011615151412181215117181381116
6091512191219571720201611111219
70715111410918919117119201513
805616881091519916571088
907137862015201718111059198
A09171913611121415131216619614
B01186197811813715188121719
C01312171691816711168131071015
D014191010111371310141871217149
E01610136136201885591414136
F018101411151671661418141651012

■ HP600使用時のHPの増量 -5処理 ■

000102030405060708090A0B0C0D0E0F
001514412121011511141513101212
10137131214050329101511112
2011317149865784141146
3091214113129127135212831
407834112413941271013105
506110109713710621383611
60410714714021215151166714
70210695413414626415108
8001113354101441102533
902823115101512136504143
A0412148167910871111419
B0631142363821013371214
C08712114131126113852510
D09145568285913271294
E01158181151330049981
F01359610112111913911057

■ 0〜15の出現頻度 ■
01234567
917171717171717
89101112131415
171717171717179


■ ポーション使用時のHP回復量 生データ ■

000102030405060708090A0B0C0D0E0F
0035504743464747394747483137303433
1042434944314645343139494240383640
2040354832493842464832474642453948
3037324641343140413436443335474135
4045404347443737314343423947404437
5032474134394435443949394830324650
6050453838394832443842373648354938
7033383649444130314434343735434935
8045303337343333413333324943504647
9038373136493435464941313840424440
A040453248314238343248333438354132
B043483439464940394644364745333945
C035403733364343493737384133403643
D048333946413645364131413250483430
E030354242413248364238434432453142
F047424431363950493646464345373145

■ ポーション使用時のHP回復量 -30処理 ■

000102030405060708090A0B0C0D0E0F
005201713161717917171817043
1012131914116154191912108610
20105182198121618217161215918
3072161141101146143517115
40151013171477113131291710147
50217114914514919918021620
6020158891821481276185198
703861914110114447513195
8015037433113321913201617
90871619451619111810121410
A01015218112842183485112
B013184916191091614617153915
C051073613131977811310613
D0183916116156111112201840
E00512121121861281314215112
F017121416920196161613157115

■ 0〜20の出現頻度 ■
012345678910
613131313121313131312
11121314151617181920
1313131312131313136256


[ 戻る ]