「MSX版ボスコニアンを改造して、X68000版ボスコニアンのBGMを鳴らしてみよう」 というページです。
といっても、実行するための環境を揃えるのはなかなか大変なので、とりあえずは、動画を見て楽しんでいただければと思います。
この改造を楽しむには、以下のものが必要です。
いかがでしょうか…。さすがにヘビーすぎますよね…。
MSX-AUDIOの形状の問題もあって、3スロットあっても入らなかったりしますし…。
SCC対応ROM版は、以下のものがあれば動作します。
SCC対応ディスク版は、以下のものがあれば動作します。
以下のzipファイルをダウンロードしてください
MakeMusicBosconianMsx.zip 2020.12.22 update
実機で楽しむには相当ハードルが高いですが、エミュレータを使うと、比較的簡単にボスコニアン(改)を楽しむことができます。
ここからは興味のある方だけ読んでいただければと思います。
ボスコニアンを起動したとき、タイトル画面の一部が色化けしていることに気づいた人もいるかもしれません。
ボスコニアンは、タイトル画面もゲーム画面も、 MSX の SCREEN1 を使用しています。
SCREEN1 は、画面全体で 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でも色化けしなくなります。