ボスコニアン(MSX)を改造しよう
「MSX版ボスコニアンを改造して、X68000版ボスコニアンのBGMを鳴らしてみよう」 というページです。
といっても、実行するための環境を揃えるのはなかなか大変なので、とりあえずは、動画を見て楽しんでいただければと思います。
追記(2020.11.29)
- FM音源版と同時にSCC音源版のROMも作成するようにしました。
- PAL対応の本体でプレイした場合にもBGMの速度が遅れないようにしました。
- turboRでプレイすると処理落ちが改善されるようにしました。
追記(2020.12.22)
- turboR専用の「SCC対応ディスク版」も作成できるようにしました。
必要なもの
この改造を楽しむには、以下のものが必要です。
- MSX本体(RAM16KB以上)
- MSX版ボスコニアンのROMイメージ
- YAMAHA FMサウンドシンセサイザーユニット(SFG-01)または FMサウンドシンセサイザーユニットII(SFG-05)
※サイドスロットがない機種ではYAMAHAユニットコネクター(UCN-01)が必要
- Panasonic MSX-AUDIO(FS-CA1)
- MegaFlashROMなどの、ASCII8タイプの4MビットROMを作成できる環境
- これら(3. 4. 5.)がすべて入るスロット
いかがでしょうか…。さすがにヘビーすぎますよね…。
MSX-AUDIOの形状の問題もあって、3スロットあっても入らなかったりしますし…。
追記(2020.11.28)
SCC対応ROM版は、以下のものがあれば動作します。
- MSX本体(RAM16KB以上)
- MSX版ボスコニアンのROMイメージ
- MegaFlashROMなどの、KONAMI-SCC タイプの3MビットROMを作成できる環境
追記(2020.12.22)
SCC対応ディスク版は、以下のものがあれば動作します。
- MSXturboR本体(RAM256KB以上)
- MSX版ボスコニアンのROMイメージ
- SCCカートリッジ(またはSCC内蔵のROMカートリッジ)
改造ツールのダウンロード
以下のzipファイルをダウンロードしてください
MakeMusicBosconianMsx.zip 2020.12.22 update
作成方法
- ダウンロードしたzipファイルを展開してください。
- 展開したフォルダに、MSX版ボスコニアンの ROMイメージ を BOSCONIA.ROM という名前でコピーしてください。
※ファイル名に注意! BOSCONIAN.ROM ではなく BOSCONIA.ROM(8文字.3文字) です!
- フォルダ内の MakeMusicBosconianMsx.exe を実行してください。
- BOSCONFM.ROM というファイルが作成されれば成功です。 ASCII8タイプ のメガROM として MegaFlashROM などに書き込んでください。
追記(2020.11.28)
SCC対応ROM版 として BOSCONSC.ROM というファイルも作成されるようになりました。 KONAMI-SCCタイプ のメガROM として MegaFlashROM などに書き込んでください。
追記(2020.12.22)
- turboR専用・SCC対応ディスク版 として BOSCONDS.BIN, BOSCONDS.DAT というファイルも作成されるようになりました。
この2つのファイルをフロッピーディスクにコピーしてください。
- Z80モードで起動する必要があるので、DOS2フォーマットではなくDOS1フォーマットのディスクに保存しておくほうが良いかもしれません。
実行方法
- MSX本体に、SFG-01(05)、MSX-AUDIO、ボスコニアン(改)のROMを入れて電源を入れてください。スロットはどこでも構いません。
- ゲームをスタートすると、FM音源のBGMが流れるようになります。
- BGMは4曲入っており、1面クリアするごとに切り替わります
- 開始BGMや「BLAST OFF!」の音声、爆発SEなど、元々本体PSGを使用しているものはそのまま流れます。
追記(2020.11.28)
- SCC対応ROM版は、そのままスロットに入れて起動すればSCCサウンドが流れます。
追記(2020.12.22)
- turboR専用SCC対応ディスク版の実行方法は以下の通りです。
- スロット1に SCCカートリッジを差してturboR本体を起動してください。
- Z80モードで起動する必要があります。DOS1フォーマットのディスクを入れて起動するか、起動時に[1]キーを押して強制的にZ80モードにしてください。
- 実行するには DISK-BASIC から BLOAD"BOSCONDS.BIN",R と入力してください。
サウンドテスト
- タイトル画面でキーボードの[1]~[9]を押すと、ゲーム中のBGM+αを聴くことができます。
- BGM演奏中(ロゴの色が白)のときはゲームをスタートすることができません。[0]を押して演奏を停止してください。
- turboR専用SCC対応ディスク版では、サウンドテストモードは一部の曲しか聴くことができません。(2020.12.22追記)
エミュレータで遊ぼう
実機で楽しむには相当ハードルが高いですが、エミュレータを使うと、比較的簡単にボスコニアン(改)を楽しむことができます。
必要なもの
- MSXエミュレータ blueMSX
- ボスコニアン(改)のROMイメージ
エミュレータの設定
- 以下のサイトから blueMSXの最新版をダウンロードしてください。
http://bluemsx.msxblue.com/jdownload.html
※最もお手軽に楽しむには、インストーラー無しの簡易バージョン blueMSXv282.zip をダウンロードするのがおすすめです。
- 一度 blueMSXを起動してみてください。C-BIOS が起動すればOKです。
- メニューバーから [ツール] → [マシン構成編集] を選択してください。デフォルトで用意されている「MSX2 - C-BIOS」という仮想の機種の構成ウィンドウが開きます。
- この機種をカスタマイズして、サウンドに特化した新しい機種を作成します。[メモリ]タブを開いてください。スロット 3-1 と 3-3 が空いているので、そこに MSX-AUDIO と SFG-01 を搭載することにしましょう。
- まずは スロット3-1 に MSX-AUDIO を追加します。[追加] ボタンをクリックして、マシン構成編集ウィンドウを開いてください。
- [ファイル]には、本来 MSX-AUDIO の ROMイメージをセットする必要があるのですが、拡張BASIC等を使用しないのであれば実はファイルは適当で構いません。
ダミーファイルを作成するのも面倒なので、例えば C-BIOSのロゴマーク blueMSXv282\Machies\MSX2 C-BIOS\cbios_logo_msx2.rom などを指定しても大丈夫です(笑)
- [タイプ] に [MSX Audio]を、[スロット] に [スロット 3-1]を指定してください。
- 同様に スロット3-3 に SFG-01 を追加します。[ファイル]には cbios_logo_msx2.rom を、[タイプ] に [Yamaha SFG-01]を、[スロット] に [スロット 3-3]を指定してください。
- このような形になればOKです。
- 起動するためには、この機種を保存しておく必要があります。[別名保存]をクリックし、適当な名前で保存してください。ここでは [MSX2 C-BIOS(SoundCustom)]という名前にしました。
- 完成です。
エミュレータでの実行方法
- blueMSXを起動し、[ツール] → [マシン構成編集] で、先ほど作成した [MSX2 C-BIOS(SoundCustom)] に切り替えてください。
- [SLOT] をクリックし、ボスコニアン(改)のROMイメージ BOSCONFM.ROM を選択します。この時、ROMタイプが ASCII 8 になっているか確認してください。
- ゲームをプレイして、FM音源とPCMが鳴ってくれれば成功です。うまくいったでしょうか?
機種によってタイトル画面の一部が色化けする原因
ここからは興味のある方だけ読んでいただければと思います。
ボスコニアンを起動したとき、タイトル画面の一部が色化けしていることに気づいた人もいるかもしれません。
ボスコニアンは、タイトル画面もゲーム画面も、 MSX の SCREEN1 を使用しています。
SCREEN1 は、BASICが最初に起動したときの画面で、画面全体で256文字の単色のキャラクターを使用することができ、また、それらのキャラクターは 8文字ごとに色を指定することができます。
(なぜかナムコのタイトルは SCREEN2 ではなく SCREEN1 を使用しているものが多いです)
タイトル画面のキャラクターデータを覗いてみると、このような感じになっていました。
8文字ごとに色が指定されていますが、問題は最上段の黄色で囲んだ部分です。
(C)の右にある3文字が「BOSCONIAN」のロゴを形成するために使用されているキャラクターで、それ以外の5文字はスコア表示などに使われるフォントになっています。
当然、「ロゴは赤、フォントは白」で表示したいところなのですが、SCREEN1 では 8文字ごとにしか色が指定できないため、普通は「8文字すべてが赤」か「8文字すべてが白」のどちらかでしか表示することができません。
ナムコの開発陣は、これを以下のような方法で解決しました。
1)垂直同期割り込み(1/60秒ごとに画面の描画が終わった瞬間に発生する割り込み)からの時間を、マシン語の各命令の処理時間から予測し、上から2行目のスコア表示が終わった辺りのタイミングで、8文字の色を「赤」に変更する。
2)さらに処理時間を計測し、「BOSCONIAN」のロゴの描画が終わった辺りのタイミングを狙って、8文字の色を「白」に変更する。
つまり、画面描画を行う1/60秒の間で2度の色変更を行うことによって、『スコアのフォントは白、「BOSCONIAN」のロゴは赤、著作権表示は白』 ということを実現しています。
テクニカルではあるものの、比較的知られている方法ではあるのですが、ここでMSXならではの問題が発生します。
機種によって BIOSが違うため、処理時間が異なる ということです。
アプリケーション側のプログラムの処理時間は正確に計測できますが、BIOSルーチンについてはMSXの機種ごとにプログラムが異なるため、処理時間も微妙に違ってきてしまうのです。
例えば、MSX2はMSX1に比べて画面描画周りの処理が複雑になっているため、BIOSルーチンを使ってのVDPアクセスは若干遅いです。
エミュレータ上で、どのラインを描画中に8文字の色変更が行われるのか調べてみました。
一般的なMSX1では黄色のライン、一般的なMSX2では緑色のラインの描画中に、色変更が行われていました。
MSX2では問題がないのに、多くのMSX1で実行すると微妙に色化けが起こるのは、このタイミングのズレが原因だと思われます。
「開発に使用していたMSXのBIOSがたまたま遅かった」「デバッガーやデバッグコードを実行した状態で計測していた」「発表前のMSX2を使用していたため気づかなかった」
などなど、理由を勝手に想像することはできますが、真実は開発に関わった方のみぞ知る、ということで。
以上、勝手な推測のコーナーでした。
ちなみに、色化けを修正する方法ですが、471AH(ROMイメージの先頭から0x071Aバイト)が調整用のタイマー値になっているので、
元の値の 11H を 12H などに増やすことで MSX1でも色化けしなくなります。
戻る