アフィリエイト広告を利用しています
 

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

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

















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