私は昔から Z80 でプログラムを組む際には自己書き換えという手法を好んで使ってきました。これを使い始めたきっかけは覚えていません。おそらく、当時の内藤時浩クンはこの手法を知った時に「おおおおお!?」と強い感銘を受けて魂に刻み込まれてしまったのではないかと思い ...
タグ:Z80
80mk2 割り込みを使う
NEC PC-8001 の後継機である PC-8001mkⅡは、追加機能が中途半端だった事もあり、また、ほぼ同時期に発売された PC-8801 がゲームのメインストリームに変わった事も手伝って、当時からかなり不遇の存在でした。ですが、色数が少ないとは言え、DMA を止めれば無印80より2倍ぐ ...
ALG 敵移動の考え方
ゲーム制作において、かなり悩ましい問題はこの敵の移動処理です。今回はゲームのタイプに関わらない移動処理について、そのおおまかな考え方について私の実装方法を解説していきます。なお、移動とともに繋がりの深い表示と消去については、日を改めて記事化できればと考え ...
NCHがAILZ80ASMでバイナリ化できました
追加調査と @AILight さんによる AILZ80ASM の継続的なアップデートのおかげで、ついに Newシティヒーロー(以下NCH)が、フルアセンブルできるようになりました。何をどう変更したのか、最後に履歴を残しておきます。プリプロセッサtools80 では、そのまま IF ELSE ENDIF ...
tools80のソースをAILZ80ASMにコンバートしてみた
私が以前制作した Newシティヒーローは、tools80 というアセンブラを前提にソースが作成されています。今回、このソースを AILZ80ASM でアセンブルが通るように改変してみました。一つ一つ違いについて解説していきます。 ラベルの解釈 - 大文字と小文字tools80 ではラベル ...
Z80 超高速ビット左右反転
私が作成した Newシティヒーローというゲームでは、消費メモリを削減するために様々なテクニックを駆使したのですが、その中でリアルタイムビット左右反転というのがあります。通常、ビット反転を行うためには8回のローテートが必要で、軽い処理ではありません。これをゲーム ...
PC-6001 描画ルーチンの高速化
今回は描画ルーチンの高速化について検証したいと思います。 前回までの描画方法 前回の描画では下記のルーチンを紹介しました。 GRPDraw2x12Sep1:: call VRMAddress ; HL 描画アドレス ex de, hl ; 描画を HL→DE の流れとする push de call .draw ; L 描画 pop de ...
PC-6001 画像の表示
screen 3 の画面に画像を表示するプログラム例を提示します。その前に、今回のサンプル提示で画像コンバーターをバージョンアップしましたので、そちらをお受け取りください。今回のバージョンアップで、画像も混合と分離が選択できるようにしました。ダウンロードは以下から ...
Z80 メッセージ表示
ゲームなんかで良くある、テケテケテケとゆっくり1文字ずつ表示されるアレを、Z80 で作成するにはどうすれば良いのかを記事化しました。基本は前回のプログラムから改変していきます。 ワークエリアを用意する1文字ずつゆっくり表示される処理に変更するには、1文字表示した ...
Z80 サブテキスト表示
※ムービーの再生速度は20倍にしています。前回、BCD数値を文字列として表示する方法について説明しました。今回はサブテキスト表示について解説します。このサブテキストとは、例えばゲーム等で主人公名などを画面に表示する際に使用する機能です。主人公名などは RAM のワ ...