ゲームを作る際、「オールマシン語!」というと聞こえがいいのですが、実際、オールマシン語にする必要性ってあるのかな?
「マシン語症候群」に感染していた当時の私ですら、初期設定から各種ファイル読込、タイトル表示、初期値設定、ゲーム開始までと、ゲーム終了、リスタート若しくはエンディングの処理はBASICで組んでいました。
要するに速度を求めない処理は、すべてBASICでした。
作る側からしてみれば、処理は遅いがやはり簡単に組めるBASICは魅力的です。
例えば、ターン制のロールプレイングゲーム(ドラクエなど)だと、プレイヤー移動のスクロールと、敵表示のFONT書き換えのみマシン語にしてしまえば、あとはそんなに早い処理を求められないと思います。(2023年4月14日記事参照「ブログタイトル画像更新」)
まぁ、BASIC部のBGMだけどうするかという問題はありますが…。
そこだけ割り込み処理でするとか…。(INTERVAL ON/OFFだったと思う…。)
過去、アスキー刊行の「MSXマガジン」で公開された「MuSICA」なら、一発解決のはず。
確か、プログラム実行中ならBASICだろうが、マシン語だろうが勝手に割り込んで音楽を鳴らしてくれたはず。
記憶が確かでないからBASIC部で問題なく音楽流れるか、一度試してみよう。
あれ?「MuSICA」って、MSX1で動作したっけ?
そこも検証。
うーん、上記の検証のために、
@基本はBASIC
ABASIC部で「MuSICA」でBGM演奏
Bマップスクロールはマシン語
C敵表示用のFONT書換えもマシン語
で、簡単なロールプレイングゲーム作ってみようかな。
マシン語の再勉強にもなるし。
以上、「マシン語症候群」から完治したプログラマーでした。