Gigamix Online

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

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

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

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イメージ化してみたら、あっさり動きました

github.com

 ファーストトライで動かなかったのは、出力するROMイメージのメガROMタイプがデフォルトで「コナミSCC」であることを忘れていたためでした。

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

 どういう仕掛けなのかと思って少し調べてみたら、なんと「ROMイメージ内にMSXのDISK ROM BIOS(とディスクイメージ相当のストレージデータ)を同梱していて、ROM起動なのにDisk BASIC ver.1が利用可能になっていた」のです。BIOSを積んでいるので、FDDを搭載しない(=Disk BASICが起動しない)機種でも、BIOS経由のどんなディスクアクセスでも、基本的にROM内で再現できるはずです。

 ところが、2021年現在ではMSXの各種公式BIOSは元アスキー創業者の西和彦さん率いるMSXライセンシングコーポレーションの著作物となっています。

www.n-and-partners.jp

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

 dsk2romは既存のDISK ROM BIOS(DOS1カーネル)をZ80向けに逆アセンブルしたと思われるソースコードGitHubで公開されていました(dsk2rom向けの改造も施されている可能性もあります)が、MSXライセンシングコーポレーションの承認なしに公開されているのではないか?学術目的とは言えソースコードを公開するのはライセンス違反ではないか?…つまり、現状はこの技術を利用して新作ソフトをリリースすることは著作権的に実現できない、と思うわけです。

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

今求められている技術

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

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

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

 新作ソフトの販売者がdsk2romに同梱するDISK ROM BIOS(DOS1カーネル)に対してMSXライセンシングコーポレーションへBIOSのライセンス料を支払い、正式にライセンスの承認を得ることが可能になれば、dsk2romの技術だけで今すぐ新作ROMソフトが製造・販売できるようになります。

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

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

 ハードウェア的には実現可能でも個人製作のソフトに対して公式BIOSのライセンスなんて認証されるのか?これは事例があります。

これ、BIOSのライセンス料がいくら載っているのか…ソフト1本あたりなのか、包括契約的なものなのか…?https://t.co/XW5NukTwdz — Takashi Kobayashi (@nf_ban) 2021年8月7日

 MSX・FAN誌の投稿プログラムコーナー「ファンダム」で一躍有名になったTPM.CO SOFT WORKSさんは、自身のMSX1用ゲームソフト「タロティカ・ブードゥー」を2017年にSteamで配信しました。どう実現しているかと言うと、公式のエミュレータであるMSXPLAYer上に公式BIOSとコンテンツ(ディスクイメージ)を同梱したWindowsアプリに変換(メディアコンバート)しています。

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

 アプリ内にMSXライセンシングコーポレーションのライセンス表記がありますので、これは正式にライセンスが認証されたコンテンツであることが分かります。

store.steampowered.com

 個人やインディーが許諾を得る方法を私は知りませんが、存在すると思いたいです。まぁ、西さんにメールやtwitterへ聞けばいいだけの話かもしれませんが。

 なお、Disk BASICの動作条件として、32KBytes以上のRAMが必要です(MSX-DOS1は64KBytes必須)。これにより、RAMが16KBytes以下のMSX1では動作しません。事実上、MSX2以降の対応品となるでしょうね。

イデア②: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(Nextor DOS)です。

www.msx.org

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

 「かもしれない」とあえて強調しているのは、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 ver.1との互換性が一定量は担保されていることです。DOS1からDOS2・Nextorへの乗り換えは若干の修正が必要かもしれません。

 なお、Nextor BASICの動作条件として、64KBytes以上のRAMが必要のようです(未確認。Nextor DOSは256KBytes以上のRAMが必須)。Nextor自体はMSX1で大容量ストレージが制御できる性能があるのにメモリ不足による理由で動作できないのは勿体ない話です。事実上、MSX2以降の対応品となるでしょうね。

イデア③: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日

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

 ほかのメリットは、Disk BASICではないのでRAM 32KBytes以上必須の条件が撤廃され、RAM 16KBytesのMSX1を動作対象に含めることが可能かもしれません(とは言えさすがに8KBytes機はキツいと思うのですが…)。MSX2等64KBytes以上のRAM搭載機を動作対象とする場合にFDDの接続を切るように起動すればBASICのフリーエリアが約23KBytes(Disk BASIC ver.1)が約28KBytes(Disk BASIC非搭載時のMSX BASIC)へ広がる可能性もあります。

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

昔の記憶ですと…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のROM化対応・機能限定版のようなものを作ったほうがいいのかな…。ストレージコントローラ、メモリ操作系の命令、MGSDRV(+タイマー割り込み管理)を実装の最優先にして、余ったメモリに何かをちびちび移植してゆく感じですかなーと思うのですが、16KBytesは狭いなぁ。

www.gigamix.jp

 いずれのアイデアにせよ、RAMは64KBytes欲しくなります。

オマケ①:令和の今、MSXのソフトを販売することに対しての販売者側の権利について

MSXAの中の人として回答しますが、MSX用ソフトの販売に限って言えば、MSXライセシングコーポレーションに許諾を得る必要はありません。VHS規格を参考に1983年の時点で「ソフトは権利者の許諾なく出せる」と決定され、以降変更されていません。この話題はMマガ永久保存版の記事でも掲載していたはず。 — ごりぽん (@goripon_tw) 2021年8月8日
MSXライセシングコーポレーションに許諾が必要なのは分かりやすく言えば「公式のシステムROMを含むMSX本体の販売」です。Mマガ永久保存版の時に「エミュも本体1台と見做す」というルールが明確化されたので当然エミュでもライセンスが適用され、EGGなどはこれに従っている訳です。 — ごりぽん (@goripon_tw) 2021年8月8日

 MSXライセンシングコーポレーションの著作物(公式BIOS、公式エミュレータであるMSXPLAYer等)がコンテンツに含まれない場合は、許諾の必要なしに販売が可能です。

オマケ②:MSXの商標、MSXのロゴの使用について

MSXライセシングコーポレーションというのがあるので、今はMSXの商標やらもろもろを使ったゲームは、そこのOKが出ないと出せなかったりするのか?みたいな疑問です。いや、アレスタ再販できたらどうなの?とかあるじゃん。 — ほりい なおき (@hor11) 2021年8月7日
もし、MSX用のアプリケーションを出す時に、ロゴの使用が自由だと仮定したら、ライセシングコーポレーションとして社にする意味がまるでないんですよねー。これはちょっと怯んでしまう。 — ほりい なおき (@hor11) 2021年8月7日
通りすがりの知的財産権各種研究科ですが、ぶっちゃけ9類1区分のみなので、コンピュータソフトウェア/ハードウェア以外の物品、例えばキーホルダー、アクセサリ、Tシャツ、かばん等であれば不正競争防止法等に留意して使う分には合法かと思われます。 pic.twitter.com/4UhYToKqtN — マツド教授 (@Prof_Matsudo) 2021年8月7日
そこは抜かりが無かった、、、アパレルも鳥坂先輩の着ているプリントTシャツはダメぽいな pic.twitter.com/xi239iZX8m — きんのじ (@v9938) 2021年8月7日
RIPPLE LASER様のMSXキーホルダー入荷しました。勿論許諾品です。ハーフミラーを含めた5種類で展開中ですよ pic.twitter.com/8kPDrd3UJ2 — アキハバラ@BEEP (@BEEP_akihabara) 2016年9月11日
更新:MSX2+用のキーボードカバーが販売中、正式ライセンス品 アクリル製で税込4,300円、MSX turbo R用も (取材中に見つけた○○なもの) https://t.co/uXvAJNhKJG pic.twitter.com/wc7oMjodRc — AKIBA PC Hotline! (@watch_akiba) 2016年2月6日

 2021年現在、MSXの商標はMSXライセンシングコーポレーションが保有しています。MSXのロゴも商標登録されています。

 WiiWiiUバーチャルコンソールプロジェクトEGGなど、近年のMSXレトロゲームソフトのダウンロード配信では各種公式BIOSを同梱しているからなのか、MSXという商標を用いているからなのか…いずれにせよほぼ全ての復刻コンテンツにMSXライセンシングコーポレーションのコピーライト表記が付与されています。

 商標の明記やロゴの使用許諾については商習慣でケースバイケースなので一概には言えません。パートナー契約をすると無料で記述できる権利が得られたり、契約して有償で記述したり、契約しなくても記述すれば黙認されることもあり…。

こちらですかね。もうアーカイブにしか残ってないので、口約束みたいな状況ですが^^;https://t.co/RHm0S4C3h4 — MA-X @ B-Cat Software (@max_2608) 2021年8月7日
営利でソフト出すのはダメって事みたいだし、グッズもお金払ってくれって書いてあるしで、これが前提だといろいろ終了だな。 — ほりい なおき (@hor11) 2021年8月7日

 00年代当時はユーザーの有志(MSXアソシエーションという任意団体)と西さんとの間でこのように決まっていた(で、ソフトウェア以外のグッズとかも出てた)のですが、2021年現在は西さんの会社が取り仕切っているのでこの条件が今もスライドで継続している、とは断言できないと私は思うんですよね…。

 また、過去のMSXアソシエーションの記述を見るに、M2さんの「アレスタ」復刻のような商業活動と個人・同人活動とではライセンスの条件が違う(案件により違う)可能性もあります。

 MSXのコンテンツ復刻でプロジェクトEGGを長らく運営しているD4エンタープライズさんは西さんと長年の付き合い(殆ど師弟関係な)ので包括契約的なものがあるのかもしれません。

 そういえば近年D4エンタープライズさん以外の会社からMSXのコンテンツが復刻されたのは、コナミさんしか存在しないような…

オマケ③:西さんの見解

 西和彦さんから直接コメントが出ました。「皆んな勝手にやっているみたいです」はいろんな含みがありますね…

雑感

 今回のまとめ記事を書くにあたり、MSXライセンシングコーポレーションの守備範囲を私が圧倒的に知らなすぎる。皆さんはご存知なのかもしれませんが。詳細な情報がWebでは殆ど辿れなかったので憶測や過去のエビデンスで「○○らしい」とふわふわした根拠しか残らないんです。NDAのようにあえてWebで情報が載らないようになっているのかもしれませんが。

 M2さんはレトロゲームの技術集団ですから公式BIOSなんて不要で何から何まで内製できてしまう(法務も余裕で解決できる)から商業案件はそれはそれで進捗を進めていただくとして、内製できる技術力を持たないので公式BIOSを利用したい個人やインディーの人々にもコンテンツの再販や新規リリースしやすいような環境づくりができればいいな、と思っています。