Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ、自作ソフトの配布など。

MSX Disk BASIC環境のソフトウェアをROM化してリリースしたい(妄想編)

 twitterのタイムラインを眺めながらブレインストーミング。思いつき次第、適当に追加してゆきます。

【2024.06.06更新】西和彦さんの最新のコメントに倣い、MSXのライセンスに関する考察を別記事へ移動しました。

【2023.05.31更新】代替手段・FDD搭載機であれば実現可能らしい(TablacusDiskRom) を追加しました。

【2023.05.31更新】アイデア・Disk BASICの代替手段を他の拡張BASICで提供する を更新しました。

https://p.gigamix.jp/devmsx/cg/disk-to-rom_title.png

きっかけ

dsk2romというMSXのディスクイメージファイルをROMイメージ化できるアプリがあったので自作のソフトを変換してみたのだがROMから起動できなかった。BASICのAUTOEXEC.BASから起動するような同人ソフトには非対応かもね。変換の仕方が悪いのかもしれんけど…DISK BIOS相当の機能が入ってるとは思えない。 pic.twitter.com/0lZ6mpqdcP — Takashi Kobayashi (@nf_ban) 2021年8月6日
ん!?ROMイメージのタイプを「コナミSCC」に変更したら動いたぞ!?どういうこと!? pic.twitter.com/GCPq0Bx1ru — Takashi Kobayashi (@nf_ban) 2021年8月6日

 「dsk2rom」というアプリでMSXフロッピーディスクイメージファイルをメガROMイメージに変換できることを知り、拙作の「クイズ!あたっちゃって25%」というBASIC環境のゲームソフトをROMイメージ化してみたら、あっさり動きました。どういう仕掛けなのかと思って少し調べてみたらなんと、ROMイメージ内にMSXの「DISK ROM BIOS」と「ディスクイメージ相当のストレージデータ」を同梱していて、ROM起動なのにDisk BASIC ver.1が利用可能になっていたのです。

↓ dsk2rom の GitHub はこちら ↓ github.com

 「dsk2rom」のほかにも、MSX-DOS2のカーネルを内包する「MKROMDSK」というアプリも存在するようです。

↓ MKROMDSK の Webページはこちら ↓ www.msx.org

あれ!?エミュレータでFDDの機能を切ってる(WebMSXでフロッピーアイコンが無い)のにDisk BASICが動いているではないか。ってことはDISK ROM BIOSを内蔵してるってこと!?んー、Microsoft or アスキー製の互換品なの?ライセンス大丈夫なのか、これ。 pic.twitter.com/i0MqEv3F78 — Takashi Kobayashi (@nf_ban) 2021年8月6日

 ROMにBIOSを積んでいるのなら、FDDを搭載しない(=Disk BASICが起動しない)機種でも、BIOS経由のどんなディスクアクセスでも、基本的にFDD搭載機の環境を再現できるはずです。

夢実現に最も近いソリューションなので、惜しい…

 2024年現在、MSXの各種システムBIOSは米マイクロソフト社が今なお著作権を所有しており、元アスキー創業者の西和彦さんが設立した「MSXライセンシングコーポレーション(MSX Licensing Corporation)」が米マイクロソフト社からライセンスを取得して運用しているようです。これらのシステムBIOSは今なおライセンスフリーで配布されているわけではありませんし、今後もそうなる可能性は低いと考えられます。なぜそう思うかは、下の記事をご参照ください。

gigamix.hatenablog.com

 にも関わらず、「dsk2rom」は既存のDISK ROM BIOS(DOS1カーネル)をZ80向けに逆アセンブルしたと思われるソースコードGitHubで公開されていました(dsk2rom向けの改造も施されている可能性もあります)。もしかして…MSXライセンシングコーポレーションの許諾なしにBIOSソースコードGitHubで公開されているのではないか?学術目的とは言えソースコードを公開するのはライセンス違反ではないか?という疑念も生まれます。

 いずれにせよ、このような状況下において現状は「dsk2rom」に含まれるDISK ROM BIOSを組み込んだコンテンツを西さんの会社の許諾なしに配布できるわけがないことになりそうです。もちろん許諾を取れば配布できるかもしれませんが…

んー、ですよねー。そりゃそうだ、世の中そんなに甘くないのです。 pic.twitter.com/8yd3U3qkLA — Takashi Kobayashi (@nf_ban) 2021年8月6日

 とは言え、この技術は今MSXの界隈で喫緊の課題になっている「製造が停止してしまったフロッピーディスクでなくROMカートリッジで新作ソフトをリリースする手段」を一気に解決できるほどのポテンシャルがあります。FDD搭載機と同じ環境で開発が継続でき、ソフトのリリース時にROMイメージ化してROMへ焼くだけです。新作ソフトはもちろん、過去にリリースされたソフト、リリースが叶わず埋もれてしまったソフトの復刻も容易になります。

あなたのゲームもMSXカートリッジに! ①オリジナルのゲームであること ②自慢できるゲームであること ③ROMカートリッジの容量に収まること ご興味のあるあなたは是非お気軽にお問合せください。一緒に界隈を盛り上げていきましょ~。 pic.twitter.com/DrpjQYJuVW — 余熱@れすぽん (@yone2_net) 2020年7月16日
大仏パラダイス | ニャオニャオ21世紀 BOOTHさんでもMSX用自作ROMカートリッジゲームの大仏パラダイスの販売を始めました。よろしくお願いしますm(_ _)m#MSX #インディゲーム #BOOTH #通販 #indiedev #MSXゲーム #ROMカートリッジhttps://t.co/WjQHbqJCsf #booth_pm — nao (@nyaonyao21) 2020年7月11日

 幸いにして、MSX用ROMカートリッジを製造してくれる業者(なのか!?)も現れ、自作のROMカートリッジを製造・販売する人が徐々に増えてきました。

#MSX ユーザーの方にお尋ねします-その1 お手持ちの(多分動くと思われる)MSXで新作ゲームを遊ぶ場合どのメディアが良いですか? 3.はMSX故障、持ってないけど欲しい人用 4.その他、はほぼ実現不可能ですが…… カセットテープ BEE CARD Quick Disc SD CARD+同人のCARD READER カセット 他何ある? — (株)オペラハウス公式 (@operahouseinfo) 2022年12月8日

 オペラハウス公式twitterMSX用新作ソフトの頒布方法についてアンケートを募ったところ、このような結果になっていました。MSXのコンテンツ配布媒体としてROMカートリッジが再び見直されてきている現状が伺えます。

今求められている技術

  • ファイルストレージとストレージコントローラのような仕掛けがROMにパッケージングされていること
  • 2DDフロッピーディスクの代替という側面から、4Mbit(512kB)のメガROMカートリッジと同等及びそれ以上の実装が可能であること
  • 組込時に各種ライセンスへの違反が発生しないこと
  • フロッピーディスクからROMカートリッジへのメディアコンバートが容易であればあるほど良い
  • 変換時の互換性は高いほど良い

ROM化へのアイデア

イデア①公式のBIOSをライセンスしてもらいたい(dsk2rom)

ディスクROMだけ公式ライセンス降ろして貰えれば一発解決なんだけどなー。50円/個とかでできないだろうか。さすがにDisk-Basicの互換品をいまさら作るというのは不毛だ…。 https://t.co/LCX2d38EUe — MSX研究所長 (@yoshimatsuTUQ) 2021年8月6日

 先程取り上げた「dsk2rom」を正規の手段で利用する方法。新作ソフトの販売者が dsk2rom に MKROMDSK へ同梱するDISK ROM BIOS(いわゆるカーネル)に対してMSXライセンシングコーポレーションへBIOSのライセンス料を支払い、正式にライセンスの承認を得ることが可能になれば、これらの技術だけで今すぐ新作ROMソフトが製造・販売できるようになります。

 メガROMタイプは「コナミSCC」または「ASCII 8K」でイメージ化できます。最近はメガROMコントローラに互換性がある頒布用の新基板がいくつかリリースされていて、組み込み用途にも応じてもらえるようです。

 この手法のメリットは、圧倒的な互換性の高さ。BASIC・マシン語双方のソースコード修正は殆ど不要と思われます。

 デメリットは、Disk BASICの動作条件として本体に32kB以上のRAMが必要なため、ROM化したとしてもRAMの容量が8kBや16kBといった多くのMSX1ではメモリ不足のため動作対象外となります。一般的に、Disk BASICの動作環境はMSX-DOS(1)の動作環境とほぼイコールであり、FDD搭載の実機にはDOSの動作条件である64kB以上のRAMが本体に搭載されています。32kB以上のMSX1は台数が少ないですが、MSX2以降なら64kB以上が標準搭載のため、この手法は実質的にMSX2以降が主な対象機種になるでしょうね。

 次に、公式BIOSのライセンス承認が必要ということです。アマチュアクリエイターがMSXの公式BIOSを組み込んで販売するためのライセンスを取得できるのか?については、可能かもしれません。別記事で考察しています。

↓ こちらをクリック ↓ gigamix.hatenablog.com

イデア②Disk BASICをエミュレート実行する(Tablacus DISK ROM Lite)

 この記事で散々妄想していたところ、2023年5月頃に注目すべき新技術が生まれました。Disk BASICで使用するファイル制御の各種命令をエミュレートし、コンテンツをメガROM化するという「Tablacus DISK ROM Lite」です。

純正のDISK ROM不要で動作するLite版ができました。まだまだ課題が多いので何か情報がありましたら……https://t.co/s87Y71nKjH pic.twitter.com/8FnlDqSTn1 — Gaku (@tablacus) 2023年6月11日

 デメリットもありますがそれを上回る圧倒的なメリットがあります。筆者(nf_ban)が個人的には今一番実現可能な注目すべき技術の一つと思っています。これにつきましては特集記事を書きましたので、興味ある方はぜひ御覧ください。

↓ 特集記事はこちらをクリック ↓ gigamix.hatenablog.com

↓ Tablacus DISK ROM LiteのGitHubはこちらをクリック ↓ github.com

 このツールで変換したROMを起動すると、ROMカートリッジ(ROMイメージ)内に仮想ストレージドライブが配置され、MSX BASIC上からROM内の仮想ストレージドライブへファイルアクセスが可能になります。フロッピーディスクの制御に用いるDisk BASICの一部の命令をTablacus DISK ROM Liteのシステムがエミュレートしており、Disk BASICやFDDを搭載しない機種でも利用できます。しかもROMなので、ファイルのロード時間はフロッピーディスクと比べたら爆速です。

 この手法のメリットは2つ。まず、ROM BASICと同等の動作環境なので、Disk BASICの起動条件である本体RAM容量32kB以上を必要としなくなりますFDD搭載の有無を問わず利用可能であり、特に日本で数多く発売された本体RAM容量16kBのMSX1もROMの動作対象に含めやすいです。カセットテープのソフトウェアのROM化にも向いています。

 次に、米国マイクロソフト社とMSXライセンシングコーポレーションが著作権を主張するMSX Disk BASICやDISK BIOSを一切利用しないため、組込時にライセンスの問題が生じません

 デメリットとしては、Tablacus DISK ROM Liteがエミュレートできない非対応のディスク制御命令(DSKF命令、FIELD命令、GET命令等)がいくつか残っており、そういった命令がBASICプログラムに含まれていると動作が停止します。その場合はプログラムの変更が必要です。

 なお、拙作ミドルウェア「DMシステム2」がTablacus DISK ROM Liteで動作可能になったため、ディスク制御の非対応命令はDMシステム2の拡張命令に代替することである程度は吸収できるかもしれません(なお、DMシステム2の動作条件として64kB以上のRAMが必要です)。

↓ 特集記事はこちらをクリック ↓ gigamix.hatenablog.com

イデア③ROMカートリッジ内でデバイス拡張を行う

MSXでもデバイスファイル名使えるのかな? ファイル名の代わりに "SCRN:" 指定すると画面に出力できたり、"PRN:" でプリンタに出力したり、"COM:"でシリアルポートに出力したりと、ちょっとしたリダイレクト風味に使えたりもしますね。入力だと "KYBD:" とかあった気がします。 — UME-3 (@ume3fmp) 2023年5月12日
PRN: はMSXでも使えるはず。カートリッジでデバイス拡張できるので、xxx: をカートリッジで追加可能です。確か232CカートリッジでCOM: もいけた気もします。ソニー機で CAT: みたいなのもありますよね。 pic.twitter.com/YCrcDozVkB — HRA! (@thara1129) 2023年5月12日

 ROMにファイルストレージを確保し、デバイス拡張でファイルを呼び出す方法。これなら、DISK BIOSが存在しない機種でもファイルアクセスが可能になるかもしれません。

LOAD"ROM:file" とか遣りたいんだけども — qajinMSX(小島英彰) (@QajinMSX) 2023年5月9日
LOAD"ROM:file" は、徳間書店から出ていたMSXプログラムコレクション50本(ファンダムライブラリーの市販ソフト版)が既に実現していますね。(ROMカートリッジでリリースされていた①〜③のみ。④以降はフロッピーディスク。)何かの参考になるかも?かも?? — まぬ (@koike_manu) 2023年5月9日

 この技術は徳間書店の「MSX・FAN ファンダムライブラリー」で実現しているようです。50本ものBASICプログラムがROMカートリッジに搭載されていて、ファイラーから呼び出すことができます。

 メリットは、動作環境がROM BASICと同等でありDisk BASICではないので、FDD搭載の有無を問わず利用可能であり、Disk BASICの起動条件である本体RAM容量32kB以上の制限が撤廃されます。

 次に、これはDisk BASICではないのでBASICのフリーエリアが最大28kB(Disk BASIC非搭載時のMSX BASICと同レベル)へ広げられる可能性があります。FDD搭載機ではFDDの接続を物理的に切るように起動することも技術的には可能です。

 デメリットは、新規で開発するぶんには良いのですが完成済みのソフトはBASIC・マシン語ともにソースコードおよびバイナリの修正は必須です。過去に作成したソフトなら仕様書や技術資料が残っていないと改修できないかもしれません。

イデア④Disk BASICの代替手段を他の拡張BASICで提供する

拙作のミドルウェア・DMシステム2 https://t.co/8tfHL2O5JG には CALL LOAD というとにかくRAMやVRAMへガンガン転送するという拡張BASIC命令があったんですけど、コンテンツをROM化するときに自身でBASICを拡張してLOAD命令もRUN命令も代替手段で実現すれば、Disk BASICが不要なんじゃないか?って。 — Takashi Kobayashi (@nf_ban) 2021年8月6日
ROMは4000hから7FFhまで拡張BASICのストレージ制御システムが入ってて、8000hからBFFFhまでメガROMで切り替えてストレージが見えたりして、C000hからRAMが見えてBASICプログラムを転送できたりしたら、16KB RAMのMSX1でファイルシステム持ちながらソフトが動かせるんじゃないの?って。 — Takashi Kobayashi (@nf_ban) 2021年8月6日
2DDで動作するMSX-BASICゲームをRom化する話がTLに流れてましたが、過去作品をROM化する場合と、これから作る場合とで技術的な課題は大きく違いそう。これから作る場合、最初からROM化を前提とした仕組みを用意しておけば敷居が下がると思います。#MSX — HRA! (@thara1129) 2021年8月8日
例えば、_LOADなどの命令を搭載したROMを2種類用意します。両者には命令に互換性がありますが、1つはアクセス対象がディスク上のFAT-FS。もう一つはROM上に形成した簡易的なROMディスク。開発時は前者を使い、ROM化するときは後者を使う。誰かがこのROM開発すれば解決、誰が?🤣 — HRA! (@thara1129) 2021年8月8日
最初に挙げた「敷居」とは、DiskBasicまでまるごとROMに書き込んじゃうと権利問題にぶつかる、という敷居ですね。明確な解決方法が不明なモノなので、かなり高い敷居です。なら、そのアプローチをやめちゃえば一気に解決するのでは?というアイディアを書いたのでした。 — HRA! (@thara1129) 2021年8月8日

  • BASICプログラムのロード(と実行)命令を代替する拡張命令(例えば _RUN("<filename>") とか)
  • その他各種ファイルのロード命令を代替する拡張命令(例えば _LOAD("<filename>",転送先アドレス[,長さ][,offset]) とか)
  • コンテンツ内にセーブデータが必要な場合、それを保存する拡張命令

 自分の経験則やほかの方の意見を総合するに、上記のような命令を拡張BASIC化した「ミニマムなストレージコントローラ」と「ファイルストレージ」を同梱してROM化するソリューション。これがあれば多くのBASIC環境のコンテンツはライセンスフリーでROM化できると思います。

 メリット・デメリットともにアイデア②③と同様です。FDD搭載の有無問わず全機種対応可能の余地がありますが、プログラムの改修は必要です。

昔の記憶ですと…run,load,bloadは間違いなく使いますね🧐 open,copyは使ったり使わなかったりです。場合によってはsaveとかbsaveも使うかもしれません。(セーブをパスワード式かPACにすれば使わないけど) — hide_san(ヒデ) (@_msx_) 2021年8月6日
情報ありがとうございます。ROM化されたゲームのデータ保存方法は別個で考える必要はありますけど、使う命令としてはそんな感じですよね。拙作DMシステム2だとBLOADはCALL LOADで代替、COPYはBPE圧縮で代替できるので、他のBASICプログラムをRUNする手段を代替できれば、なんかいけそうな気が!? — Takashi Kobayashi (@nf_ban) 2021年8月6日
「自作ゲームをROMにする」というのは、ゲームで育ってきた自分からすると「夢」の一つでもありますので…いけるといいなぁ(*'ω'*) — hide_san(ヒデ) (@_msx_) 2021年8月6日

 ちなみに、拙作ミドルウェアDMシステム2」では CALL LOAD というBSAVEヘッダの有無問わずディスク上のファイルをメモリへ転送する命令が搭載されていました。ROMの中にそのようなストレージアクセス系の命令を代替するオリジナルの拡張BASICシステムと仮想ストレージを含んだROMイメージを作成することができれば、このソリューションはDisk BASIC(DOS1カーネル)を使用する必要がなくなるためにライセンスの問題が解消されます。

Tablacus DISK ROM Lite v0.0.1.0アップ。ついにDisk-ROM BIOSが不要なLite版でも「仮装大賞パネル」が動くようになりました。DMシステム2が動くなら結構いろいろ動くんじゃないかな~動いたらいいな。https://github.com/tablacus/TablacusDiskRomLite/releases - Gaku (@tablacus) 2023年6月15日

 この記事の執筆後、前述の Tablacus DISK ROM LiteミドルウェアのDMシステム2に対応しました。2023年6月現在、DMシステム2を用いたコンテンツはメガROMカートリッジ化が可能になりました。また、同じく'90年代に用いられたミドルウェアの「M.K BASIC」も動作するようです。

イデア⑤Nextorを同梱すれば可能?

にがさんの似非ROM基板に、NEXTORのカーネルROM書き込んでNEXTORが起動してMSXーDOSアプリが動作するするROMは作成できたので、NEXTOR使ってdsk2romと同じような事はできそうな気がします。 — 超兄貴 〜シン・MSX〜 (@SuperAniki_MSX) 2021年8月6日
Nextorならライセンスの問題はクリアですかね。あれっ、RAMは必要ではなかったでしたっけ。例えばMSX1の16KBのマシンでNextor BASICは動くのだろうか…?🤔 — Takashi Kobayashi (@nf_ban) 2021年8月6日
64KBは必要でしょうね・・・しかしBASICプログラムなら大概そのままROM化できますし、カセットテープやテープ形式の非圧縮音声で配布とか。 — 超兄貴 〜シン・MSX〜 (@SuperAniki_MSX) 2021年8月6日
自分の経験ですと、BASICプログラムが1本のみという製作方法がピンと来なくて、プログラム以外のデータを都度読んでゆくようなファイルシステムというかストレージのような仕掛けが欲しくなるんですよね。なのでdsk2romの可能性には期待していたんです。まぁ作り方でどうにでもなる話かもしれません。 — Takashi Kobayashi (@nf_ban) 2021年8月6日

 「Nextor」はMSX-DOS2の上位互換となる、MSXライセンシングコーポレーション(=西和彦さん)に承認されたかもしれないオープンソースの新しいDOSです。FAT16に対応し、1ドライブ2GBまでの大容量ストレージが、MSX1から制御できる性能があります。

www.msx.org

 dsk2romはDisk BASIC ver.1(DOS1カーネル、DISK BIOS)を同梱していましたが、Disk BASIC ver.2の上位互換である「Nextor BASIC」を内包するオープンソースの「Nextorカーネル(NextorのDISK BIOS)」を採用すればライセンスの問題が解決する、かもしれない

 「かもしれない」とあえて強調しているのは、Nextorが本当にMSXライセンスコーポレーションの認証がされていて、本当に無償で利用可能かのエビデンスが存在しないからです。現在は無償でダウンロード可能にはなっていますが、組み込み時にも無償で利用できるかは不明なのです。

https://t.co/Au3fpKOtsD MSXVRMSXロゴ許諾についてNEXTOR作者のKonamiman氏が西さんと直接話をしたとあります。NEXTORをオープンソース化するのに問題はないか確認した際にMSXVRについても触れたとのこと。※ただしこれは西さんやMSXライセンシングコーポレーションからの発表ではありません — うにスキー (@uniskie) 2020年11月25日
この時点ではMSXBASIC自体のライセンスはマイクロソフトにあり、1台につき1$のライセンス料が必要とありますね。BASIC以外のシステムロムに関しては西さんのMSXライセンシングコーポレーションが権利を保有するとの事で、MSXDOS2関連を含むNextorのオープンソース化について許諾を得たという話。 — うにスキー (@uniskie) 2020年11月25日
原文では西さんによる「祝福」とあり、「公認」は意訳なので、西さんが「いいね!」しただけなのでは。ともとれるんですよね。NextorなどはMSXDOSコードの再利用について具体的な著作権説明が記載されていますが、MSXVRはそれに該当する物が今の所見つけられてないので、気になっています。#MSXVR — うにスキー (@uniskie) 2020年11月26日
Konamimanさん経由で話が通ったのであれば、その辺のシステムROMの使用については確認取ってそうなものですが、確定できる情報をまだ見つけられてないんですよね~。NextorとMSXVRは別の話ですし、どうなってるんでしょうね。どなたかそのあたりご存じでしょうか?https://t.co/eU7xB7ijyK — うにスキー (@uniskie) 2020年11月26日

 この手法のメリットは、①ライセンスの問題が解決するかもしれないこと、②Disk BASICとの互換性が一定量は担保されていることです(DOS1からDOS2・Nextorへの乗り換えは若干のプログラム修正が必要かもしれません)。

 デメリットは、Nextorの動作条件として128kB以上のRAMが必要なため、対象機種がかなり絞られます。日本ではRAMが64kB以下の機種が圧倒的に多いため忘れがちですが、海外のMSX2は128kBが標準的でした。カートリッジにROMもストレージもRAMも搭載するムチャな環境は…作ろうと思えば作れそうですが…それはもはや巷に出回る「多機能カートリッジ」そのものではないですか。Carnivore2は1個3万円くらいの品です。

 現実的に実現可能かはかなり微妙なアイデアではあります。

代替手段

代替手段①Disk BASICが不要ならば実現可能らしい(MSXBAS2ROM)

MSXBAS2ROM project now hosted on github.https://t.co/TDcbWN1n4P — AmauryCarvalhoMSX (@Amaury_MSX_BR) 2022年5月17日

 MSXBAS2ROMは、MSX BASICのプログラムをマシン語コンパイルしてROM化・メガROM化するツールです。複数ファイルのインクルードも可能で、ファイルロード用のCMD拡張命令が追加されます。BASICプログラムが1本だけしかないようなコンテンツ、かつMSXBAS2ROMで非対応なBASIC命令を使用しないのであれば選択肢の一つになろうかと思います。

↓ MSXBAS2ROMはこちらをクリック ↓ github.com

代替手段②Disk BASICが不要でプログラムが1本だけならば実現可能らしい(DumpListEditor)

#DumpListEditor サンプル版です。①MMLをPSGPad(PSG on Web)で再生するボタンを付けました。②MSX-BASICのROM作成で、行番号の事前アドレス変換を選択できるようにしました。#MML #MSXhttps://t.co/XTiDsJsiAT pic.twitter.com/VJ9ghLsnmF — bugfire2009 (@bugfire01) 2023年6月16日

 PC-8001PC-8801等のダンプリストやBASIC入力を補助するツールとして生まれたDumpListEditorは、その後各種レトロPC向けの機能をどんどん注ぎ込んでゆき、今やMSXのBASICプログラムをROM化する機能まで実装されています

 BASICプログラムが1本だけしかないようなコンテンツであればファイルロード機能は一切不要なためDisk BASIC(DISK BIOS)相当の機能も不要です。実際、「スターコマンド」のようにBASICプログラムのROM化が市販化される事例もあります。

msx.jpn.org

 Disk BASICを利用しないのであれば全ての機種で動作可能ですのでROM化は簡単に実現するかもしれませんね。

↓ DumpListEditorはこちらをクリック ↓ bugfire2009.ojaru.jp

代替手段③FDD搭載機であれば実現可能らしい(TablacusDiskRom)

MSXのDISK環境をメガROM化するTablacus DISK ROMがv0.0.2.0にバージョンアップしました。フック場所をMath-PackのワークエリアからRS-232C&カセットに変更したことで動くソフトが増えました。画像はDOS2 for MSXですが、BASICのソフトもROM化することができます。 #MSXhttps://t.co/lPdI1NJ2E0 pic.twitter.com/XdjqEHP87m — Gaku (@tablacus) 2023年5月14日

 Tablacus DISK ROMは、ディスクイメージに含まれたコンテンツをメガROM形式に変換し、低レベルのディスクアクセスをROMディスクに置き換えて実行できる、Windows用のアプリです。ディスクイメージ内にAUTOEXEC.BASを含めておけばROMディスクからコンテンツを起動できます。

 前述の「Tablacus DISK ROM Lite」と「Tablacus DISK ROM」は別の技術です。それぞれの違いは…

  • Tablacus DISK ROM Liteは実機のDISK BIOSを使用しないため、動作可能条件がFDD非搭載機種にも広がる。
  • Tablacus DISK ROMは実機のDISK BIOSを必要とするため、動作可能条件がFDD搭載機種に限られる。

 「Tablacus DISK ROM Lite」はDisk BASICの命令をエミュレートしてROMディスクを実現するのに対し、こちらはFDD搭載機に含まれるDISK BIOSを乗っ取る形でROMディスクを実現します。

 この手法のメリットは、DISK BIOSを乗っ取るためプログラムの互換性が高いことです。ROM化にあたってのプログラムの修正は不要かもしれません。

 デメリットは、FDD非搭載機では起動できません。また、Disk BASICの動作条件であるRAM32kB以上が必要です。実質的にはMSX2+以降の機種での利用が前提になります。

↓ Tablacus DISK ROMはこちらをクリック ↓ github.com

代替手段④MSX-DOSのアプリであれば実現可能らしい(LSX-Dodgers)

今度はMSX-DOSの互換OS、LSX-DodgersのMSX版を作っています。似非DOSとの違いはDOSカーネルが不要でフロッピーではなくROMで起動しROMをディスクとする点になります。MSXで64KBのRAMがあれば互換BIOSのC-BIOS環境でも動作しています。 pic.twitter.com/kSTJObFZLO — Gaku (@tablacus) 2023年2月9日
先日エミュで試したMSXのLSX-Dodgers https://t.co/6wkIrIyoc6 ですが、実機で動かしてみたくなったのでやってみました。動く動く。X1でLSX-Dodgersを使ってる人は結構嬉しい。使いドコロとしては、大きなデータをファイルとして扱いたい時など……? pic.twitter.com/AmyfRPsPoq — ひろし@H.O SOFT (@honda_ken) 2023年2月27日

 LSX-Dodgersは、NEC PC-88シリーズやシャープMZ・X1シリーズといった8bitレトロPCでMS-DOS互換のファイルフォーマットとCP/M80・MSX-DOS互換の外部コマンドが利用できるZ80 CPU向けライセンスフリーDOSです。元々はMSX以外の機種で利便性を向上させるためのDOSでしたが、なんと、MSX向けにも逆輸入でリリースされました。

 MSX版LSX-Dodgersはフロッピーディスクによる起動だけでなく、OSとストレージ部分をメガROMイメージ化することができますMSX-DOSとLSX-Dodgersは100%の互換性があるわけではありませんので都度確認が必要でしょうが、MSX-DOS環境の自作ゲームであればROM化することは容易になったのかもしれません。

↓ LSX-Dodgersはこちらをクリック ↓ github.com

 メガROM化が可能な前述の「Tablacus DISK ROM」と「LSX-Dodgers」との違いは…

  • Tablacus DISK ROMは実機のDISK BIOSを必要とするため、動作可能条件がFDD搭載機種に限られる。
  • LSX-Dodgersは実機のDISK BIOSを使用しないため、動作可能条件がFDD非搭載機種にも広がる。

 どちらの技術もMSX1から動作しますが、MSX-DOSの起動条件と同じく、本体RAMが64kB以上必要です。

TPAを調べたら原因が分かりました。LSX-DodgersのTPAがCA05hでした。NDPがTPAの中に収まりません。そりゃあ無理だ。んー残念。ちなみに各DOSのTPA比較(openMSX+FS-A1ST) DOS1…D605h DOS2…D605h 似非DOS…DA05h ←純正DOSより広い! LSX-Dodgers…CA05h ←純正DOSより約3KB狭い pic.twitter.com/uTOSqwrT6g — Takashi Kobayashi (@nf_ban) 2024年3月15日

 純正環境との互換性が高いのは、やはり、DISK BIOSを利用するTablacus DISK ROMのほうです。LSX-Dodgersは純正のMSX-DOSよりもTPAが狭いため、純正DOSでは動作するアプリがLSX-Dodgersではメモリ不足による不具合や動作不能の可能性もあります。

 なお、実機のDISK BIOSを使用することで互換性を高めたライセンスフリーの互換DOS「似非DOS for MSX」というのも存在します。

↓ 似非DOSについてはこちら ↓ gigamix.hatenablog.com

過去の更新履歴