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

ちょっと前に『迷宮組曲』の連射測定の水増しの話を書いた。

上の記事は自分としてはお気に入りなのだけど、問題が一つあった。それは「どのようにして水増ししているのか?」についてが曖昧だったところだ。

コメントされた方の「こうなんじゃないかな?」説は複雑すぎて240バイトぐらいしかなかったという空きに納まるとは思えなかったので、もっと単純な小坂さんが言っている通りの1秒が実は1秒ではない、というパターンなのは自信があったわけだけど「本当に実装がそうなのか?」はソースを読む以外方法がない。

そこで『迷宮組曲』のROMイメージから、実際のソースを作ってみることにした。

ソースを作るために使ったツールは、なんと、あの野沢さんお手製のlinux上で動くディスアセンブラを譲ってもらって、これをWSL2上で動かして解析した。
慣れるまでは少し癖があったけど、わかってしまえばとても便利で快適なツールだった。

野沢さん製のdisamを実行したところ

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

赤字のところが小坂さんがやったごまかしである。

赤字のところの cmp #$41 が、小坂さんがやった水増しで、$41というのは65。1秒なら60なのが、65に設定してあるわけだ。
つまり、1.083倍の水増しをしていることになる。

もちろんこれはソースコードからの確認だから正しいはずだが、実はこれは連射道というブログの記事「ファミコンの各種連射測定 ―ゾンビハンターと迷宮組曲―」でクロスチェック出来る。

ファミコンの各種連射測定 ―ゾンビハンターと迷宮組曲― - 【連射道】主にコンピュータゲームの連射装置や連射に関するブログです。
ファミコンの各種連射測定 ―ゾンビハンターと迷宮組曲― - 【連射道】 rapidturbo2000.blog.fc2.com
ファミコンの各種連射測定 ―ゾンビハンターと迷宮組曲― - 【連射道】

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

連射道より

『迷宮組曲』を実測すると、1.079~1.093倍と、実に1.083倍に近い値が出ていることがわかる。

かくして、迷宮組曲は連射時に1秒を65V、つまり1.083倍して測定することで、水増しをしていると確定したのである。

この話は、本来はコミ1用だった新刊『ハドソン伝説・ファミコン編2』に収録予定です。
そして、そんな話は載っていないけれど『迷宮組曲』について、笹川さんの思い出話なども載っている『ハドソン伝説・ファミコン編』は書店様に委託中です。

ハドソン伝説既刊。BEEPさん・とらのあなさん・メロンブックスさんで委託しています。BEEPさんでは描き下ろしのイラスト+コラムの特典ペーパーがつきます。

全商品|BEEP ゲームグッズ通販
全商品|BEEP ゲームグッズ通販 www.beep-shop.com
全商品|BEEP ゲームグッズ通販
検索結果 - とらのあな全年齢向け通販に関する商品は、2,960,232件お取り扱いがございます。「アルマビアンカ TVアニメ「呪術廻戦」トレーディング ちびころ アクリルネームプレート BOX」「アルマビアンカ TVアニメ「呪術廻戦」トレーディング ちびころ ミニアートフレーム BOX」など人気作品を多数揃えております。に関する商品を探すなら、とらのあな通販にお任せください。
検索結果 - とらのあな全年齢向け通販 ecs.toranoana.jp
検索結果 - とらのあな全年齢向け通販
【メロンブックス】同人誌通販・同人ゲームや漫画の販売購入 | メロンブックス同人誌、同人ゲーム、同人音楽、同人グッズの通販は国内最大級、業界最速の萌えいっぱいの総合書店メロンブックスで。同人作品、同人委託の特典付商品も多数あり。直営店舗数も同人業界で最大級。見逃せない各店舗のフェアやイベント情報も。
【メロンブックス】同人誌通販・同人ゲームや漫画の販売購入 | メロンブックス www.melonbooks.co.jp
【メロンブックス】同人誌通販・同人ゲームや漫画の販売購入 | メロンブックス
LinkedIn にシェア
Pocket

2件のコメント

  • 続報キターーーー!
    気長に待っていたのですが、急にやってきて驚きと喜びでいっぱいです!!
    1.083倍になっていること自体は異論ございません。ありがとうございました。

    すっきりされたと思うのですが、1箇所気になるところがあるのでそのソース部分が知りたいです。
    何かというと、時間になった際にカウントアップした結果をそのまま単純に出していないのは動きを見れば明確で、なんらか最低限の演算をしていると思っています。そこが気になっています。

    付け加えると、迷宮組曲には10秒経過後も1秒ごとに直近10秒間の連射数を表示するような仕様があります。
    たとえば、最初は秒間10連射すると108くらいの結果になって、それ以降秒間1連射に変更すると、1秒ごとに10程度ずつ結果が減っていき、最終的に10~11くらいの値に落ち着きます。
    処理としては、はみ出る一番古い1秒分をカットし、最新の1秒分を足して10秒合計のカウント数を表示していると思います。
    また、その動きから1秒あたりのカウント数を保持しているように思われます。

    上記繰り返し計測のロジックを中心に考えたとき、初回だけは別処理が必要になりますがソースサイズ的な問題があります。
    そこに何かあるのでは?と思ったりしています。
    初回は最新の1秒分を足すのが不要なのに、うっかり二重に足したりしていないでしょうか。

    ホント、せっかくスッキリされたのに申し訳ありません。
    スルーいただいても全然大丈夫です。

    • えーと表示周りの細かい所や、平均化の処理のあたりはまだ読めていないのでw
      ちょっとそこまでは「現時点では答えられない」が答えになります。
      まあ面白くなっちゃったので、もうちょっと読むと思いますので、そこらへんもそのうちわかるかとw

コメントは現在停止中です。