今回は哲学の話、というわけではなく16連射の話です。
私の年代といえば高橋名人の秒間16連射は有名!
でもプログラマになってみてわかったのが、あれ16連射って意味ないのでは?ということ。
こちらの記事の内容を勝手に捕捉しつつ、お話をしてみたいと思います。
■レーザーコマンダー の謎
ファミコン時代に「レーザーコマンダー」というジョイステックがありました。
まあ操作性が著しく悪いのですが、秒間40連射まで行けるということで少年時代の私はワクワクして購入したのです。
ファミコンロッキーで秒間50連射するとF1ゲームでマッハのスピードが出せるというネタがあったのですが(当然フィクションです)、これを使っても全然スピードは上がらずがっかり。
シューティングゲームもプレイしてみたのですが、最速設定にするとあんまり連射が早くない。
何じゃこれはと少しずつスピードを落としていくとあるところで、一番早く連射される状態になる。
ますます謎が深まるのですが、その時はそこまで深く考えていませんでした。
ただこれもちゃんとした理由があるのです。
■60FPSと30FPS
いわゆる60FPSとか30FPSとかいう言葉があります。
簡単に言うと秒間何回画像が切り替わるか、という単位です。
この単位に合わせてボタン入力も受け付けてます。
60FPSなら秒間60回、30FPSなら秒間30回入力受付の判定を行うことが出来ます。
じゃあ30fpsなら30連射まで行ける、と思うじゃないですか。
違うんですよ。
30連射しちゃうと”全部押しっぱなし”だと判定されちゃうんです。
30回入力の箱があって
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
この単位で全部入力があると(■が入力があったところ)
■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■
こうなるのですが、これだと押しっぱなしと区別がつかないわけです。
区別をつけたいのであれば
■□■□■□■□■□
■□■□■□■□■□
■□■□■□■□■□
こうなってないといけないのです。数えてみると分かりますが最大で15連射までしかできないのです。
16連射以上するとどこかが押しっぱなしの状態になります。
■□■□■□■□■□
■□■□■□■□■□
■□■□■□■■■□
最後の■■■は3回じゃなく1回だと判定されるので、これ14連射としか判定されないのです。
■レーザーコマンダーと迷宮組曲の謎解き
そう、レーザーコマンダーがスピードを落としていくと連射が早くなっていったのは、ちょうど交互に判定されるタイミングになっていたからなのです。
60FPSであっても最大30連射までしか行かないので40連射設定は意味がないんですよね。
何で作ったんだろ(困惑)。
そして記事に出ている「ハドソン ジョイカード」は30FPSのゲームで一番能力を発揮するように15連射ができる設定だったのでしょうね。
それ以上の連射機器を作ること自体は可能だったのでしょう。
ただハドソンが出していたスターフォースなんかはこのジョイカードを使ってプレイしたくなるゲームでした。
ファミコンのスターフォースは30fpsだったので、15連射にしておくのが妥当だったんでしょうね。
そして迷宮組曲。60fpsだったとすると1秒間に以下のように入力判定があります
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
ジョイカードで入力すると以下のように判定されるでしょう。
■□□□■□□□■□
□□■□□□■□□□
■□□□■□□□■□
□□■□□□■□□□
■□□□■□□□■□
□□■□□□■□□□
これだと秒間15連射としてカウントされます。
それを1秒間を62Vにすることで箱を増やすわけです
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□
こんな感じですね。これで秒間15連射を行うと
■□□□■□□□■□
□□■□□□■□□□
■□□□■□□□■□
□□■□□□■□□□
■□□□■□□□■□
□□■□□□■□□□
■□
これでめでたく16連射のカウントを実現することが出来ます!
まあわかっている人にとってはどうでもいい話だったりするのですが、どうしてもドヤ顔をしたかったので書いてみました!