m@3レトロパソコン記念館 シューティングゲームテスト2 Project RAIN
(2023/11/9別ページ化)
GitHubに上げてあります。
(ディスクイメージじゃないのでコンパイル後のオブジェクトと各binフォルダ以下をL3 DiskExplorerやeditdisk(DiskExplorer)などの操作ツールで入れて下さい)
[内容・履歴]
MSX2/turboR (2023/11/27更新) / 微高速化版 (2024/10/3更新-) z88dk(zsdcc)使用。
C64 表示テスト版 (2023/12/15更新) 課題が多くて中止。
Pyxel(別ページ)
X68000 (2025/6/14-更新) elf2x68k使用。MSX2標準パレットの.SC5形式ファイルを引数に指定するとラスタースクロールします(XSP未使用時)
FM TOWNS (2025/6/16-更新) TOWNS-gcc クロスコンパイル開発環境使用。
MSX2 WebMSXで実行
[わかってる不具合]
弾が当たってないところで敵にヒットする(X68000、FM TOWNSも)。→リスト処理の問題。(2025/7/2)
ゲームオーバー時、画面にゴミが書き込まれる
Eの文字が消し残る
遅い。内部16bitにして真面目に画面左側のクリッピングまでやってるので余計に。
実機+ブラウン管だとちらつく。対策なし
DOS版が終了時に飛ぶようです。現時点で対策なし。→コンパイラのせいだった模様。(2024/8/30)
5面でフリーズ。一応調べるけどもう直さないかも。(2024/11/20)→調べた。
BGMが止まる。(X68000版)原因不明。(2025/6/23)直接IOCSを呼んでみる。(2025/7/2)
STARTボタンで開始するとPAUSEがかかる。(2025/7/2)
終了時にキーバッファクリアされてないかも。(TOWNS版。他は対策)
[やり残し]
敵キャラデータ追加
タイトル追加
背景描いてあるけど別ゲームにするかも
移植しない
[解説?](2025/6/28)
MSX2版はCでもturboRでなくても動くものをと思い作り始めて弾数制限を極力かけたり一部アセンブラで書いたりしましたがそれでも遅すぎて断念。フルアセンブラなら常時60fps出せそうな内容ですが。
システムは前作の流用、ドット絵は何十年前に描いたもの、曲も何十年前に書いたものですです。ドット絵は使ってるのは描いた一部です。ボスが前作より小さくなったのはご愛敬。元から16x16の当たり判定しかなかったけど。
以下X68000とFM TOWNSについて。前作との違いとしてはスプライトデータをMSX2の.SC5で読んでいます。テストプログラムとして上げてあるソースの流用です。
X68000のBG面用PCGパターンに収まるようにMSX2版から画像ファイルを修正しています。
簡易サウンドドライバは以前作った物の流用ですが音色定義の部分を後の版では修正してあります。ウエイト足りないかとIOCSやBIOS経由に変更しましたがまだ時々止まります。
X68000の後から付けたラスタースクロールは4ラスタ(2ライン)おきです。XSP使用設定時は実装していません。elf2x68k用のXSPはelf2x68kのサンプルにあります。
最初の版はプライオリティを整理してなかったのですが後からPyxel、FM TOWNSと同様になるように修正してあります。
FM TOWNSは16色モードは円筒スクロールなのでスクロール機能はやめてドットを直接書いてます。ドットもパックドピクセルなのでX68000と違ってとりあえず2ドットおきで動かしてます。
ラスタースクロールさせる気はありません。そうでなくてもTOWNSの割り込みは鬼門。その鬼門をVSYNCとサウンドで使っています。VSYNCは色々試して簡易EOIで動くのでそうしてますがおかしくなる可能性があります。
TOWNS gccのspr.hは手元のにはinteとか書いてある簡単なバグがあるのでリコンパイル時は修正してください。ライブラリのFM音源の出力関数にも簡単なバグがあったので別関数を実装しています。
簡易とはいえサウンドドライバまで実装した例はTOWNS gccでは他には知りません。
安地が当初あったので後の版では弾の発射タイミングをいじってあります。
技術的には集大成かもしれませんというか自分の能力の限界。実機で動作確認するのも手間だしいつ壊れるかもなのでもうやらないと思います。
付けようとしてたタイトルが既にあちこちで使われていたので断念したのですがProject RAINもあちこちで使われているという。
ソース整理してなくて読みにくいけど素材です。フリーで出回ってるコンパイラ、エミュレータ、イメージで動かせるので色々いじってみてください。
[戻]