2018~2019年頃ネットで、上から見た2Dレースゲームの
カスレース(KASURACE.BAS)というN88-BASICのみ
(PC-9801)で作られたプログラムを見つけて、
これが動くようにVL-BASICを改造してNL-BASICを
作りました。
 
NL-BASICで動くのでサイトを紹介しようと思ったのですが
2020年現在KASURACE.BASが公開されていたサイトを
検索しても見当たりません。
 
URLを保存していなかったため、検索の仕方が悪いのか
サイトがなくなったのか分かりません。
 
なにかご存じの方いらっしゃいませんか
 

BMP(24bit)とPC-9801GVRAM(B,R,G)の相互変換

するプログラムセットを公開しました。

 

bmp20701.zipとNL-BASICは以下のリンクから

ダウンロードできます。

NL-BASIC(N88-BASIC互換?)ホームページ

Readme.txtを読んで遊んで下さい。

 

------------------------------------------------------
説明 bmp2pc98.exe (~.bmp → ~_?.bin ?=b,r,g)
--------------------------------------------------
24bit BMPファイル(.bmp)をPC-9801のGVRAM(B,G,R)データ
変換します
a.bmpをbmp2pc98.exeに重ねると、a_b.bin、a_g.bin、a_r.binが
生成されます
 
640×400に伸縮させていますので、640:400の比でないと
縦横に伸びます
ペイントなどで640:400に編集して下さい
bmp2pc98.txt(bmp2pc98.exe用、設定ファイル)
255, 255, 255 ; b,r,g
上記値以上の時1、未満の時0として変換します
 
vramload.bas(vramload.basは自由に変更してご使用下さい)
10 INPUT "Fname_?.bin Load fname:", F$
20 DEF SEG = &HA800: BLOAD f$ + "_b.bin"
30 DEF SEG = &HB000: BLOAD f$ + "_r.bin"
40 DEF SEG = &HB800: BLOAD f$ + "_g.bin"

aを入力するとa_b.bin、a_g.bin、a_r.binを
GVRAMに読み込んで表示します
 
------------------------------------------------------
説明 bmp2pc98.exe (~_?.bin ?=b,r,g → ~_?.bmp)
------------------------------------------------------
vramsave.bas(vramsave.basは自由に変更してご使用下さい)
 
10 INPUT "Fname_?.bin,(400,200) Save fname,line:", F$,L
20 DEF SEG = &HA800: BSAVE f$ + "_b.bin", 0, L * 80
30 DEF SEG = &HB000: BSAVE f$ + "_r.bin", 0, L * 80
40 DEF SEG = &HB800: BSAVE f$ + "_g.bin", 0, L * 80
 
a,ライン数を入力するとa_b.bin、a_g.bin、a_r.binを出力します。
ライン数は~400です。
 
a_b.bin、a_g.bin、a_r.binの内どれか1つ、例えばa_b.binを
bmp2pc98.exeに重ねると、ライン数が400に引き伸ばされた
a_b.bmpファイルを出力します。
 
(ファイルは_b,_r,_gの3種類必要なので、モノクロの場合は、
例えば_bをコピーして_r,_gを作ってください。)
 
フォトンマッピングによる波の集光模様の動画
でも見る事ができます。
 
VL-BASICに組込まれている昔作ったレイトレーシング
(フォトンマッピング)プログラムのデバッグ用に作っていた
プログラムです。
VL-BASICで書き直すのが面倒だったので、
BASICプログラムはありませんが、VL-BASICでも
同じ位の描画速度になります。