SONY HB-F1XV(MSX2+)からBIOS一式を吸い出してopenMSXで使用する

前置き

 以前、技術的なことなど雑多な記事を書いていたブログがサーバ移転やら何やらの果てに新規投稿はおろかCSS崩れの修正すらままならない有様となってしまったので、開店休業状態だったこちらのサイトにカテゴリ追加して記事を書くことにしました。今後は目ぼしい過去記事もこちらで書き直すかもしれません。

 現在私はレトロPCのMSX2用にゲームを制作しており、ぬけがら堂本舗という個人レーベルでリリースしています。元々MSXユーザだったのですが長いことブランクがあり、近年になってWebMSXというエミュレータの存在を知り再びMSXを使用する様になりました。便利なエミュレータなのでメインの開発環境としてフル活用しています。また、長年納戸で埃を被っていたHB-F1XVがFDDのベルト交換だけで問題無く動いたのも幸いでした。一時は捨て値で売られていたレトロPCもここ数年は中古価格が高騰し続けており、今から購入するのはちょっと躊躇われる様な値段になっていたりしますからね。

 そんな感じでMSX復帰して界隈の方々とも多少交流させてもらう様になると凄腕の皆さん方はこぞってopenMSXというエミュレータを使っているそうで、調べてみるとデバッグで重宝しそうな機能が充実していたり確かに便利そうです。しかし標準で同梱されているのはC-BIOSというライセンスフリーの互換BIOSのみで、その互換性にはやや難があるとのこと。また、BIOSの互換性以前にBASICが搭載されていないので、どちらにせよ私の様にBASICとアセンブラを組み合わせて使いたいユーザは実機からシステムROM一式を吸い出さねばなりません。それが手間なのでこれまでスルーしていましたが、制作中だったゲームのリリースとその関連作業が一段落し、そろそろ本格的に次作に取り掛かろうかというタイミングになったので重い腰を上げて実行しました。この記事はその備忘録です。

 なお、『いちいち実機から吸い出さなくてもネット探せばROMイメージ転がってるよ』と教えてくれた心優しい海外ニキ達もおられましたが、お心遣いには感謝しつつそういうことじゃねえんだよというスタンスで進めます。まあそれを言い出したらそもそも各種BIOS類までガッツリ内蔵しちゃってるWebMSXとかも全部アカンやんけという話になりますが……。


【スポンサードリンク】

まずは実機から吸い出し

 さて、とりあえず自己所有の実機から吸い出したBIOSをローカル環境で個人利用する分には問題無いということらしいので始めます。吸い出しツールは老舗MSXエミュレータのfMSX98に同梱されているMAKEROM.BASを使用します。

 fMSX98をダウンロードしてMAKEROM.BASをフロッピーディスクへ書き込み、実機にIN。

 実機上でMAKEROM.BASを実行、カートリッジソフトの吸い出しにも対応している様ですが今回は本体のBIOS類が必要なだけなので1を選択します。

 数分かかりましたが特にエラーも無く完了、プログラムを終了してファイルが生成されていることを確認。


openMSXに突っ込む

 openMSXは執筆時点の最新版であるver20.0、windows 64bit インストールパッケージ版を使用。全部標準設定でインストールしておきます。現在windows10を使用しているのでこの手順も全てwindows10前提となっていますが、今年でOS自体のサポートが切れるので遠からずリプレースせねばなりません。

 吸い出したROMファイル群はインストールフォルダ内の\share\systemroms下にまとめて置きます。openMSX側でファイルをチェックして対応機種やROM種別などを自動認識するのでファイル名は何でもいいとのこと。へえ、めんどくさい設定が必要なのかと思っていたけど意外と簡単じゃん。

 などと能天気に考えて起動するとまるで当然の権利の様にエラーが発生してSony HB-F1XVを選択できません。誰だ意外と簡単なんて言ったヤツは。


xml修正じゃ~

 MSX-JEのROMファイルが見つからないよというエラーっぽいので調べてみるとインストールフォルダ内の\share\machines下に機種ごとのxmlファイルがあり、そこにROMファイル指定などの各種設定が書かれているとのこと。まーそうですよね。というわけでSony_HB-F1XV.xmlを確認・編集します。

 ……と、その前にxml内ではROMファイル指定にSHA1を使用している様なので、まずは吸い出したROMファイル群のSHA1を算出しておきます。

 さて、Sony_HB-F1XV.xmlを確認すると【Sony_HB-F1XV.rom SHA1:f2a1d326d72d4c70ea214d7883838de8847a82b7】に該当する物が今回吸い出したROMファイル群には無さそうです。というかこのSony_HB-F1XV.romが指定されている所は全部で5ヶ所あって、その全てで同スロット内に別のROMファイルも指定されていてそちらは全て今回吸い出したROMファイルが該当しそうなんですよね。なんかいかにも後付けくさいコメントも入ってるし、もしかしてSony_HB-F1XV.romって元々そんな物無かったところに何らかの理由で後からゴリッと追加したんじゃねえのか疑惑が私の中で沸騰中。というわけで当該ROMが指定されている5ヶ所は全部削除してしまいます。

 また、hb-f1xv_disk.romは恐らくDISK.ROMのことだと思われますが、今回吸い出したROMファイルとはSHA1が異なるので現物の方に合わせて修正します。これらの削除・修正が合っているのかは分かりませんが、ともあれxml内に不明なROMファイルが無くなり全て実機から吸い出したROMファイル群が指定された形にはなりました。


死闘の果てに

 この記事だとサクサク進んでいる様に見えるかもしれませんが実際はここに至るまで悪戦苦闘を繰り返しており、途中で何度か投げ出しています。今回も先ほど書いた通り「こんな修正でいいのかよくわからんけどまーとりあえず試してみんべ」ぐらいの気持ちでopenMSXを立ち上げたらSony HB-F1XVが選択できる様になっており、なんか普通に起動しました。え~、本当でござるか~?

 なんか本当に動いてるっぽいですね。マジか。冒頭でROMファイルが見つからずエラーになっていたMSX-JE周りは普段使っていないため未確認ですが、少なくともopenMSX上のエラーは解消しています。自作ゲームが一通り動作しているので多分Main/SubのBIOSとDiskBASIC・OPLL周りは大丈夫そうな感じ。これならゲーム開発に使えるかな?

 ちなみに上記の動作確認で使われている90年代初頭スタイルのJRPG『MinQ:ExtrA』は現在BOOTH、ヤフオク直販、BEEP秋葉原店及び通販部にて好評発売中です(露骨な宣伝)。攻略本もあるよ!

タイトルとURLをコピーしました