実際のプログラミングで最初に着手したのはサウンドドライバでした。これは昔、サウンドを最後に組み込んだところ、ある程度ゲームが出来た後でサウンドを組み込んだら、CPUパワーを一気に20%近くも持っていかれて、ゲームが全体にもっさりして大変な目にあっという反省から ...
タグ:PC8001
PC-8001 Newシティヒーローメイキング
私のブログで読みたい事と言えば、そりゃあメイキングだよなあと思い立ち、しばらくは私の最新作である Newシティヒーローの話をしてみたいと思います。ただ、最初から記事を作ると手間がハンパないので、数年前に #80mk2 会で行った技術プレゼン資料を基に、一般向けに記 ...
PC-8001 プログラムの構成
今回はここまで解説してきた Z80 プログラミングと、PC-8001 の情報の集大成として、プロジェクトとしてプログラム全体をどう構築すれば良いのか等を、何かしらゲームっぽく動くサンプルを通して解説していきます。 プロジェクト全体一つの大きなファイルで編集しても、今時 ...
PC-8001 リスト構造と弾幕
さて、いよいよ PC-8001 で弾幕を実現したいと思います。今回はC# で実装したリスト構造を Z80で実現して、可能な限り高速化を図ってみたいと思います。 画面の初期化 弾は画面全域に配置されます。そのため、弾の色で全画面を初期化して、弾の移動ではアトリビュートを操 ...
PC-8001 2ドット単位の移動処理
PC-8001のセミグラフィックはバイト単位で動かすと2×4ドット単位となります。そのため、2ドット単位で動かそうとしたら、縦方向は絵の側をズラして描画する事になります。表示範囲はバイト単位だと80×25になりますが、縦方向を2ドット単位とすると、80×50の解像度で動かす ...
PC-8001 キーボード入力
PC-8001 はキーボードの状態の確認はとてもシンプルです。このシンプルさ故にゲームはとても作りやすいです。キーボードの状態確認はポートの 0x00 から 0x09 を IN するだけです。何もキーが押されていなければ、bit = 1 となっていますが、押されていると bit = 0 で返りま ...
PC-8001 アトリビュートの構造
アトリビュートエリアPC-8001で色を付ける方法はかなり独特です。まずは下記の図を見て頂けますでしょうか。この図が PC-8001 の表示領域の構造となります。1行は80文字ですが、その後方に40バイトのアトリビュートエリアがくっついています。そのため、次の行は 120バイト先 ...
PC-8001 セミグラフィック
PC-8001 にはセミグラフィックというグラフィック機能があります。正確にはキャラクタコード 0-255 を 2x4 ドットの組み合わせとして置き換える事で実現しています。このセミグラフィックをどう扱うのか、今回は解説していきます。 2進数のビットがドットになっているまずは ...
PC-8001 テープロードから自動起動
ゲームを録り溜めていくと、そのうちテープに記録した構造を忘れて焦る事が多々あります。少なくとも私はそうです。そのため、そんな事が起きないように、カセットポンで mon<ret> L<ret> と入力するだけで、勝手にロードして勝手に実行する IPLもどきを作成して、ゲームプロ ...
Z80 スタックに纏わる話
Z80 アセンブラにとって、高速化は命題となります。その中で2バイトをまとめて処理出来る push / pop は使い方によってはかなりの高速化が期待出来るため、本来の使い方以外の使用方法がいくつも開発されてきました。今回はそんなスタック(以下、SP と略す)に纏わるお話で ...