続『迷宮組曲』の連射測定

ちょっと前に『迷宮組曲』の連射測定の水増しの話を書いた。
上の記事は自分としてはお気に入りなのだけど、問題が一つあった。それは「どのようにして水増ししているのか?」についてが曖昧だったところだ。
コメントされた方の「こうなんじゃないかな?」説は複雑すぎて240バイトぐらいしかなかったという空きに納まるとは思えなかったので、もっと単純な小坂さんが言っている通りの1秒が実は1秒ではない、というパターンなのは自信があったわけだけど「本当に実装がそうなのか?」はソースを読む以外方法がない。
そこで『迷宮組曲』のROMイメージから、実際のソースを作ってみることにした。
ソースを作るために使ったツールは、なんと、あの野沢さんお手製のlinux上で動くディスアセンブラを譲ってもらって、これをWSL2上で動かして解析した。
慣れるまでは少し癖があったけど、わかってしまえばとても便利で快適なツールだった。

というわけで、この2-3日、ヒマな時間を見て当時のROMのとんでもない仕様を野沢さんに教えられてビックリしたりしつつ、『迷宮組曲』の解析をしていたのだけど、最終的に解析出来て結論が出た。

赤字のところの cmp #$41 が、小坂さんがやった水増しで、$41というのは65。1秒なら60なのが、65に設定してあるわけだ。
つまり、1.083倍の水増しをしていることになる。
もちろんこれはソースコードからの確認だから正しいはずだが、実はこれは連射道というブログの記事「ファミコンの各種連射測定 ―ゾンビハンターと迷宮組曲―」でクロスチェック出来る。


当該記事で、以下のような連射した結果が出ているのである。

『迷宮組曲』を実測すると、1.079~1.093倍と、実に1.083倍に近い値が出ていることがわかる。
かくして、迷宮組曲は連射時に1秒を65V、つまり1.083倍して測定することで、水増しをしていると確定したのである。
この話は、本来はコミ1用だった新刊『ハドソン伝説・ファミコン編2』に収録予定です。
そして、そんな話は載っていないけれど『迷宮組曲』について、笹川さんの思い出話なども載っている『ハドソン伝説・ファミコン編』は書店様に委託中です。
ハドソン伝説既刊。BEEPさん・とらのあなさん・メロンブックスさんで委託しています。BEEPさんでは描き下ろしのイラスト+コラムの特典ペーパーがつきます。






2件のコメント
コメントは現在停止中です。
続報キターーーー!
気長に待っていたのですが、急にやってきて驚きと喜びでいっぱいです!!
1.083倍になっていること自体は異論ございません。ありがとうございました。
すっきりされたと思うのですが、1箇所気になるところがあるのでそのソース部分が知りたいです。
何かというと、時間になった際にカウントアップした結果をそのまま単純に出していないのは動きを見れば明確で、なんらか最低限の演算をしていると思っています。そこが気になっています。
付け加えると、迷宮組曲には10秒経過後も1秒ごとに直近10秒間の連射数を表示するような仕様があります。
たとえば、最初は秒間10連射すると108くらいの結果になって、それ以降秒間1連射に変更すると、1秒ごとに10程度ずつ結果が減っていき、最終的に10~11くらいの値に落ち着きます。
処理としては、はみ出る一番古い1秒分をカットし、最新の1秒分を足して10秒合計のカウント数を表示していると思います。
また、その動きから1秒あたりのカウント数を保持しているように思われます。
上記繰り返し計測のロジックを中心に考えたとき、初回だけは別処理が必要になりますがソースサイズ的な問題があります。
そこに何かあるのでは?と思ったりしています。
初回は最新の1秒分を足すのが不要なのに、うっかり二重に足したりしていないでしょうか。
ホント、せっかくスッキリされたのに申し訳ありません。
スルーいただいても全然大丈夫です。
えーと表示周りの細かい所や、平均化の処理のあたりはまだ読めていないのでw
ちょっとそこまでは「現時点では答えられない」が答えになります。
まあ面白くなっちゃったので、もうちょっと読むと思いますので、そこらへんもそのうちわかるかとw