MSXPLAYerはReactOS上で動作可能

## 概要

MSXPLAYer(「MSX MAGAZINE 永久保存版」[^1]付属のもの)はWindows 10/11上で動作しませんが，[ReactOS](https://reactos.org/) version 0.4.14上でなら動作可能です。またMSXPLAYerの内蔵BIOSを抽出して他のエミュレータで動作させることも可能です。

## 背景

古書店にて付属CD-ROM未開封の「MSX MAGAZINE 永久保存版」を見つけ，前から興味のあったMSX-DOSを試したくMSXPLAYerをWindows 10にインストールしましたが，残念ながら動作しませんでした。どうやら永久保存版1・2に付属のMSXPLAYerがWindows Vista以降では動作しないようです。[^2]

Windows XPも所有していますが，サポート切れのOSをわざわざ使用すること，そもそもアクティベーションが通るのかなど不安要因が多々あります。そこでWindows 2000とAPI等が近いと思われるReactOSを[VirtualBox](https://www.virtualbox.org/)上にインストールして動作を検証しました。

さらにMSXPLAYerに変えて他のエミュレータを使用するため，BIOSを抽出して使用できるかも検証しています。

## 検証1・ReactOS上でのMSXPLAYerの動作

### 動作環境

検証に使用したソフトウェアを下記に示します。

* MSXPLAYer version 1.0.0.2 (?)
* ReactOS version 0.4.14
* VirtualBox version 6.1.38
* VirtualBox Guest Additions [^3]
* Windows 10

https://reactos.org/

https://www.virtualbox.org/

VirtualBox上に構築したVMの主要パラメータを下記に示します。

* オペレーティングシステム : Windows 2000
* メインメモリー : 256MB
* 仮想HDD容量 : 2GB
* オーディオコントローラ : ICH AC97

### 結果

2重のエミュレーションとなりますが正常に動作しています。
![ReactOS_on_VBox.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319482/7fcb23da-b518-20fb-b883-f94806f427a8.png)

### 注意事項

* ReactOSのインストール時にHDDの容量が不足していると，文字が化けたり(豆腐になったり)アプリのインストールが途中で止まったりと誤動作します。容量不足のエラーが表示されず気付きにくいため注意してください。(私は過去に作った512MBの仮想HDDを使いまわしていたため遭遇しました)
* MSXPLAYerの実FDD(ホスト環境から見るとVirtualoxの仮想FDD)は使用できず，ReactOSが凍ります。どうやらReactOSに原因がありそうです。


## 検証2・MSXPLAYerからのBIOS抽出

### 動作環境

検証1のソフトウェアに加え，下記を使用しました。

* [fMSX98](https://www.vector.co.jp/soft/dl/dos/util/se017745.html)同梱のMAKEROM.BAS
* [Common Source Code Project](http://takeda-toshiya.my.coocan.jp/) yayaMSX2+

https://www.vector.co.jp/soft/dl/dos/util/se017745.html

http://takeda-toshiya.my.coocan.jp/

BIOSの抽出方法については文献[^4]を参照してください。以下のファイルを取得できます。

* MSX2P.ROM
* MSX2PEXT.ROM
* DISK.ROM
* KANJI.ROM
* KNJDRV.ROM

### 結果

MSX2+として問題なく動作。

![MSX2_CSCPemu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319482/c92f1fc5-9529-e37d-4b91-13e01fead16c.png)

### ホスト環境とのファイル交換

ホスト環境とReactOSの間ではVirtualBox Additionsの機能で共有フォルダーを通してファイル交換できます(参考文献[^5])。

ReactOSとMSXPLAYerの間については.sav形式の仮想FDDイメージを介してやり取りします。
[SAVList](http://tatsu.life.coocan.jp/MySoft/index.html#Winsoft4MSX)や[MSXPLAYer_sav2dsk](https://github.com/meister68k/MSXPLAYer_sav2dsk)を使用して操作してください。

https://github.com/meister68k/MSXPLAYer_sav2dsk

## 終わりに

販売終了になって久しい製品を対象とするレトロコンピューティングにおいて，実機入手の困難さや周辺機器を含めた稼働環境維持の大変さを解決するエミュレータは特に新規参入者にとって大事な要素です。しかしX68000[^a]やPC-9801[^b]，X1[^c]といった例外を除けば多くのエミュレータではBIOS ROMを実機から抽出する必要があり**正しく**使用するならば実機所有を迫られるのが実情です。

MSXに関しては[C-BIOS](http://cbios.sourceforge.net/)が希望ですが，海外産の著名なエミュレータが勝手に抽出したと思しきROMイメージを何故か添付して配布している[^d]現状では，抜本的解決(C-BIOSの不足機能の開発推進)に対してのモチベーションが失われるのではないかと危惧しています。(いよいよ公開の迫るMSX3が全てを解決するかもしれませんが)


[^a]: メーカであるSHARPがエミュレータ向けにIOCS(BIOS ROM)を公開した。
[^b]: BIOS ROMイメージ不要のエミュレータ(例えば[Neko Project II](https://www.yui.ne.jp/np2/))が多数ある。
[^c]: 複数の互換IPL ROMの実装(例えば[X1_compatible_rom](https://github.com/meister68k/X1_compatible_rom))がある。
[^d]: 米国法での「フェアユース」ということなのかも知れませんが…日本では許可されないはず。

## 参考文献・脚注

[^1]: MSX MAGAZINE 永久保存版,  MSXアソシエーション(著), アスキー書籍編集部(編), アスキー, 2003, ISBN 978-4756142108 
[^2]: MSX Emulator Reports! Special MSX PLAYerのためのマシン選び, Tatsu, http://tatsu.life.coocan.jp/TMR/PLAYer.html#VistaGold 2022-09-24閲覧
[^3]: ReactOSまとめWiki, http://reactos.2chv.net/wiki/?VirtualBox+Guest+Additions%A4%F2%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%B9%A4%EB
[^4]: BIOSを吸い出しましょうそうしましょう。(MSX編), しげる, https://sigeshigeru.hateblo.jp/entry/2017/01/30/202033 2022-09-24閲覧
[^5]: ReactOSまとめWiki, http://reactos.2chv.net/wiki/?Release%C8%C7ReactOS%A4%F2%B2%BE%C1%DB%A5%DE%A5%B7%A5%F3%BE%E5%A4%C7%C6%B0%A4%AB%A4%B9#l24