プログラミング指南 - Code Knowledge

ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。

サウンドドライバを作成するサウンドドライバの構造と、PCG8100 からの発音の仕組みが分かりましたので、今回は実際にフローチャートに則ってサウンドドライバを作成してみました。これがサンプルサウンドドライバのワークエリアです。 MML:.ADDRES equ 0 ...

カウンタ値PC-8001 の周辺機器である PCG8100 に搭載されている発音チップ 8253 は、発音したい周波数をそのまま設定はできません。カウンタ値という値を設定する事になります。このカウンタ値は分周比から計算して、各音程毎にテーブル化しておきます。音程は有名なところで ...

サウンドドライバに求められる機能これから数回に分けて、Z80等のアセンブラでのサウンドドライバの作り方について解説していきます。最初は理屈から、…という事で、まずはゲーム内で演奏されるサウンドドライバに求められる機能ですが、私は以下の優先度で考えています。※ ...

マップエディタを作成中に     var canvasPoints = new List<Point>(); この canvasPoints リストから     var removePoints = new List<Point>(); removePoints に該当するポイントを全て取り除きたいとします。リストにはまとめて削除できる RemoveAll というメソ ...

PC-8001 系でゲームプログラムを作成していると、機種の違いにより、どうしても機種判別が必要となる事態になったりします。例えば、PC-8001mk2 のグラフィックRAMを拡張メモリとして使いたいとか、PC-8801のROM/RAMバンク切り替えのポート番号が、PC-8001と異なっているとか ...

拙作 Newシティヒーローの冒頭ローディング画面の処理で、カセットテープのロード中にアニメをしているシーンがあります。今回はこの実装について説明します。 まるでスレッドで動いているようにも見えますが、実際にはテープロードの次回バイト読み込みまでの待ち時間内で、 ...

マシン語を使って画面に文字やグラフィックを表示する基本的な処理を解説します。 画面はどこにある?PC-8001 の VRAM は、標準では 0xF300 から存在しています。80x25 キャラクタの表示ですが、1ライン毎に 40バイトのアトリビュートエリアが付帯していますので、1行の長さ ...

Z80 アセンブラを始めるにあたり最初に理解しておくアーキテクチャを説明します。 メモリ空間8ビットコンピュータの場合は、メモリ空間は 16ビットとなります。0x0000 - 0xFFFF が有効範囲ですが、殆どの場合は、そのどこかに BASIC ROMが存在しているため自由に使用できま ...

アセンブラを始める際に必要な前情報で、意外と説明されていないのが、この数の表現です。また、これを調べようとネット検索すると、なんか少し難しい説明がよくヒットします。そもそも数字の概念はどうやって決まっているのでしょうか。 10進数私たちが日頃普通に使ってい ...

ジャンプ命令と言えばだいたいは JP や JR だと思いますが、実は他にもジャンプテクニックがあります。※ 2022/04/07 19:00 補足ジャンプと書いてあるのでしまったので混乱された方がおられたようです。実際には続く数バイトをスキップですね。分かりづらい記述で失礼しまし ...

複数のオブジェクトを扱う場合の識別子として、自分でIDを付けることはよくあると思います。一意の数値を生成する方法をネットで検索すると、大抵は GUIDを生成して使用しろみたいな記述が見つかります。{46D50EED-E7F2-4428-8DFC-BD89733FEEA1} みたいな文字列がよくある形 ...

2021/12/09 追記その後の使用で下記指摘事項は全て解消しました。詳細はこちらをご覧ください。 本当はまだ更新するつもりはなかったのですが、某事情により私の個人開発環境を Visual Studio 2019 Community から Visual Studio 2022 Community(以下VS2022と略す)に更新 ...

↑このページのトップヘ