本日はリアル多忙のため、連載記事をお休みしてゲーム開発の近況報告をサクッとお届け。
30年以上前、初代PC-8801を使っていた時は全然わからなくて諦めていたマシン語。
様々な言語を経験した今なら、ひょっとしたら何とかなるのでは!?
と思い、昔購入した88の機械語関連本を参考にしながら再挑戦し始めました。
N88-BASIC版をリメイクするために
当ブログの記事とふりーむ!からダウンロードできる、HSP3を利用して移植した「アシュラの塔」。
そのオリジナル版となる PC-8801シリーズ用N88-BASIC で作られたバージョンを、今の技術でちょっとだけカッコよくリメイクしてみようと決断。
しかしちょっとだけテスト的に色々試してみたら、そのスピードの遅さに愕然💦
特にゲームでは欠かせないグラフィック描画の能力がハンパなく弱い!😅
こりゃやっぱりマシン語を使わないと無理かなぁ~と考え、しまってあった PC-88 関連の資料とマシン語学習本を引っ張り出してきて読み比べ。
ちんぷんかんぷんだった機械語ですが、やみくもに色々いじっているうちにちゃんと動くようになり、自分のグラフィックパターンを表示できるまでになりました♪😆
上写真は現在色々実験しているサンプルプログラム。この記事の最後に動画も載せているので、もしよければご覧下さい。
最初に左側、マシン語によるマップパターン表示が動いて一瞬で表示されます。
次に右側。BASIC のみで普通に記述した同じサイズの表示処理。描いていくのが目で見て分かるくらいの遅さです😅
簡易的な結果表示。マシン語は1秒かからずに描画終了していますが、BASICの方は約2秒。
こんなスピードでは遊ぶ際に遅すぎてストレスが溜まってしまいますねぇ。
さらにサンプル動作。テスト用に準備した狭いマップ内を、端から端まで自動でスクロールさせて一周するという処理を、BASIC の FOR~NEXT 文で記述。
グラフィックを描画する部分は、最初のテストで利用した自作マシン語プログラムです。
ここまで仕上げるのに結構時間がかかりましたが、何とかかんとか形になりました~!
最後のテストはキー入力によるマップスクロールテスト。
テンキーの8246で上下左右にスクロールテストしていますが、これの動作がとにかくめちゃくちゃ早くて、絶対に BASIC だけでは実現不可能なスピード!
これだけでも大満足な結果になってくれました。メインはそのまま BASIC で記述するので、グラフィック処理が早いのは本当に助かります。
欲を言えば BGM も付けたいな~と思っていますが、これもやはりマシン語の力を借りなければできそうもないので、音に関しては効果音程度になるかもしれません😅
うまく実現できれば搭載させたいですけどね~♪ グラフィックよりも処理が複雑になるので、今後の調査次第になりそう。
現時点での動画はこちら!
まずは 2021/7/14 現在のテストプログラムを動かした動画から。
今回紹介した、キー入力で4方向スクロールを可能にしたバージョンです。
先日ツイッターにアップしたものと同じ動画ですが、マシン語と BASICのスピード差がよくわかると思います。ぜひご覧になってみてくださいね。
もう1つ追加でこちらは最新版!昨日 15日現在のテストプログラムを動かしたもの。
マップ表示の中央に主人公を表示させ、さらに1歩移動する度に表示パターンを変えてアニメーションするように改良したものです。
壁にのみ当たり判定を加え、外へはみ出ないようにしてみました。
V2モード 8MHz動作ですが、マシン語のおかげで超快適にスクロールしてくれます。ちょっと早すぎるくらいなので、最終的には多少スピード調整しなければいけませんけどね~。
見た目に動きが出るとより良く見えてくるものですね😄 再生して 1つ目の動画との違いを確認してみてください。
ただ、上の動画に関してはグラフィックパターンがまだ正面向きしか用意できていないため、主人公のグラフィックはファミコン版ドラクエ1のようなカニ歩きになってますが💦
ここまで自力でマシン語を使ったグラフィック表示を行えるようになると思っていなかったので、自分自身がちょっと驚いています。
もっともっと色々な事をマシン語で出来るようになりたいものです。
といったところで本日のミニ投稿はおしまい!
この先また進展があれば、ツイッターで呟いたり記事としてアップしていくのでどうぞお楽しみに。
それではまた明日の記事で!
ポチッと応援してもらえたら嬉しいな♪










コメント