今月から暇を見つけてはちょこっとずつ進めている、PC-88版アシュラの塔のリメイク作業。
初代PC-8801~PC-98DO+を使っていた時は、全然わからなくて諦めていたマシン語ですが
当時のマシン語学習本を引っ張り出してきて、それを参考にしながらの再チャレンジ!
大苦戦の末、かなり良い結果を出すことができました~♪
ということで、本日はそのリメイク版アシュラの塔・開発日記をお届けします。
N88-BASIC版を大幅リメイク!
当ブログの記事とふりーむ!からダウンロードできる、HSP3を利用して移植した「アシュラの塔」。
そのオリジナル版が、今回リメイクしている PC-8801シリーズ用N88-BASIC で作られたもの。
当時はモノクロディスプレイで作っていて、さらに色数も 8色ということでかなり貧弱💦
リファレンスマニュアル&ベーマガだけを頼りに、全て自力で覚えた N88-BASIC。あの頃はここまで作れたというだけでも満足していました~😄
そのショボイ原作を、現在の技術力で大幅リメイクに挑戦!
しかも昔はギブアップしてしまった機械語処理も自作するというおまけ付きで!!
現在のメインプログラムの頭にもメモっておきましたが、開発開始日は 2021年7月18日。
でも実際はその前から、機械語の練習ということで色々と試していたのでした。
昔のリベンジでマシン語を勉強!
何度も暴走を繰り返しながらも、マップデータを元にダンジョンを表示するマシン語処理を作る事に成功!
勉強開始からここに至るまでにかかった日数は1週間くらいだったかな~。
今日までの約30年で、色々なプログラミング言語を経験してきたその成果は大きい!
ちんぷんかんぷんだったアセンブリ言語も、何度も本を見直して実際に入力していくうちに少しずつですが理解できるようになってきました♪
ちゃんと動いてくれると感動モノですね。しかもその動作スピードはBASICと比較したら爆速!
上写真はマシン語モニタで開いたダンプリスト。今回作ったプログラムのほんの一部です。
見る人が見たら処理内容が少しわかっちゃうかもしれませんね~。マシン語初心者が作ったプログラムなので無駄だらけですが、今は動いてくれればそれでOK♪
にしてもまさか自分の力でここまで仕上げることができるようになるとは!
それだけでもかなりの満足感ですが、作ったマシン語処理をBASIC側から呼び出して利用するために、さらにマニュアルと書籍を読みまくります😅
BASICから様々な形でマシン語を呼び出す
現在開発中のアシュラの塔リメイク版はこんな画面デザイン。初期版と比べるとかなりシンプルな構成になりました。
40文字モードにして文字を読みやすくし、マシン語表示のフィールドマップは画面中央。
あとは画面下部にメッセージ用ウィンドウ枠を配置しました。
初期版は1フロアのマップ全体が表示されていましたが、今回はマシン語のおかげで4方向スクロール型にすることができました😆
視界の狭い塔の中を探索するという雰囲気を、ショボイながらも再現できたと思います♪
マップ全体を見渡せないので、初期版よりは難易度が上がっていますね。
ゲームの設定自体は、現在公開中の HSP版アシュラの塔と同じ。
1フロアのマップサイズは 24×24、全7フロアという構成です。
初期版では冒険者などに体当たりすれば話すことができましたが、今回は一般的なRPGと同じようにコマンドモードを利用して行います。
このシステムは同時に開発進行中の HSP版アシュラの塔リメイクでも採用するので、そのためのテストも兼ねています。
HSP版で利用したマップイベント用簡易スクリプトは、今回のPC-88版でもそのまま再現!
しかしPC-88の少ないメモリ空間では大量のデータを扱うのがとにかく大変💦
このスクリプト文字列でさえ、メモリオーバーになってしまうこともしばしば。
これじゃいかん!ということで、BASICから利用できるマシン語処理を追加作成!
マシン語領域にスクリプトデータを置いておき、BASICの文字型変数へそれを渡す処理を作ってみたら、これがまた一発で大成功!
スクリプトデータの読み込み処理も BASICで書いたものより大幅に速くなりました😆
さらにビープ音を普通とは違う音で鳴らせるマシン語処理も、初期版からほぼそのまま移植!
現在、3つのマシン語処理を利用しながらメインプログラムを開発していま~す♪
今どきの恵まれた開発環境と違い、とにかく制限だらけの環境。
でもそんな制限の中で少しでもいい物を作る事ができたら最高ですよね!😄
現時点での動画はこちら!
最後に 2021/7/24 現在のメインプログラムを動かした動画から。
宝箱を調べたり冒険者と話そうとしたら、今はまだエラーでストップするようになっているため、そこだけ試さずに動かしています。
こうして形になってくると、少しでも早く完成させたくなってきますね~😆
完成の際にはエミュレータ用ディスクイメージを配布しますので、PC-88ユーザーの方はぜひその日を楽しみにしていてくださいね~♪
といったところで本日の開発日記はおしまい!
この先また進展があれば、ツイッター で近況をつぶやくほか、今回のように開発日記としてもアップするのでどうぞお楽しみに。
それではまた明日、別の記事でお会いしましょう☆
ポチッと応援してもらえたら嬉しいな♪
コメント