検索
<< 2023年08月 >>
1 2 3 4 5
6 7 8 9 10 11 12
20 21 22 23 24 25 26
27 28 29 30 31
広告
駿河屋レトロゲーム
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
カテゴリーアーカイブ
ファン
QRコード

2023年08月02日

MAP16 EDITOR 活用方法

「MAP16 EDITOR」で作ったデータの活用方法について説明します。
この「MAP16 EDITOR」で作成したデータは、保存すると各データ下記アドレスに保管されBSAVEされます。



メモリアドレス

データ種別

詳細


&H9C00〜&H9FFF

キャラクタデータ

256キャラクタ×4バイト=1,024バイト


&HA000〜&HBFFF

マップデータ

最大&H2000=8,192バイト


そのデータを表示してゲームに使えるようにするサンプルプログラムを用意しました。
起動すると、下画面が表示されます。
俗に言う、MSX1のSCREEN1.5を使用しています。
8_2_1.png

昔に「MAP16 EDITOR」で作成したマップデータを使って作ったゲーム(製作途中も含め)を探したのですが見付からず、「MAP16 EDITOR」自身のマップ表示ルーチンは速度度外視(遅い)のため、一からロジック組み直しました。
そのため時間がなく、今回は1キャラクタスクロール(16ドット)の全画面表示です。(昔は市販ゲームでも結構ありましたね…。)
1FONTスクロール(8ドット)をするための仕組みは組み入れてありますので、表示範囲指定可能な1FONTスクロール版は後日公開します。(ロジック的には、メモリ内で一旦1列分のキャラクタを展開(2FONT×2FONT×マップ表示横幅)し、1FONTスクロール2回をセットにして表示します。)
「MP16SMPL.BAS」【 ダウンロード
8_2_2.png

自作プログラムに組み込むには、下記の部分が必要です。



行番号

内容

説明


70

MAP16PRT.BIN

キャラクタ単位マップ表示マシン語プログラム

150〜180

マップ表示値指定

マップ全体の縦横幅と、表示する左上の座標を指定


220

マップ表示サブルーチン

マップ表示値を指定し、220行のサブルーチンをコールするとマップを表示するサブルーチン


このプログラムでは、最も時間のかかるであろうマップ表示部分をマシン語で組んでいます。
「MAP8PRT.BIN」と異なり、アドレス計算もマシン語内で行っているため、描画速度も向上しています。

「MAP16PRT.BIN」(70行)

下記機能を提供します。



実行アドレス

機能

詳細



&HC0D0

マップ表示

指定されたマップ表示値から表示される先頭アドレスを算出しマップを表示する

最大16キャラクタ×12キャラクタ


マシン語アドレスを変えたい人用に、MAP16PRT.BIN作成用のBASICプログラムを用意しました。
起動すると、MAP16PRT.BINを作成します。
「MAP16PRT.BAS」【 ダウンロード
8_2_3.png
250行〜280行:マップ表示させたい左上座標の、マップデータ上のアドレスを算出。
290行〜380行:マップデータから1キャラクタデータを読み取り、横1列分のマップをメモリ上に展開。
390行〜470行:メモリ上に展開した1列分のデータをVRAMに上から転送。それを縦列数分繰り返す。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: