東芝のMSX1、HX-20にFDDを内蔵させたエミュレータを仮公開します。

また、MSX2+に2メガバイトのRAMを内蔵させて、512バイト/セクターでMS-DOSフォーマットの2HDフロッピーの読み書きに試験的に対応させてみたエミュレータも仮公開します。邪道ですけど。

その他、FS-A1、PX-7、MSX1、MSX2のバイナリも用意しています。
Common Source Code Projectの2016-04-01のソースがベースです。変更部分のソースもバイナリも同梱です。
仮の名前を yayaHX-20+、yayaMSX2+、yayaFS-A1、yayaPX-7、yayaMSX1、yayaMSX2とします。(yet another yet anotherではなく、程度を表す日本語の「やや」。)
MSXエミュレータの部分に不具合や未実装機能などがあるので。
サポートはありません。不具合修正や機能追加するかどうかも未定です。
重要なファイルはバックアップを取ってから使用して下さい。特に、ステートセーブ&ロード機能を使う場合や、1DD/2DD以外のイメージを扱う場合は。

ここにzipファイルは置けないみたいなので、外部に置いてみます。
http://www2.axfc.net/u/3646700.zip
yaya2016-04-01plus1.zip 1,309,004バイト
CRC32 8F6E3F84
MD5 FC52F9E617E668C9836F101AFF145562
SHA1 76EC958C9120E000326287CFAD332701C5F517FA

漢字ROM、プリンタ、OPLL(YM2413)のI/Oポートは全機種に接続されています。
ただし、HX-20・FS-A1・PX-7・MSX2ではFMBIOS.ROMが内蔵されていません。Cart#1かCart#2にFMBIOS.ROMを挿せば鳴ると思いますが、副作用があるかもしれません。
FDDを内蔵していない機種のCart#1やCard#2にDISK.ROMを挿してもフロッピーは使えません。
本物のHX-20はFDD内蔵ではありませんが、今回のバイナリのHX-20には内蔵FDDを追加しています。なので、仮の名前はyayaHX-20ではなくyayaHX-20+にしています。
対応しているメガROMのマッパータイプは4種類だけです。どのマッパータイプで動作しているかは、タイトルバーに少しの間だけ反映されます。自動判別の仕組みも持っていますが、正しく判別されない場合はROMファイルのCRC32を計算して"romhash.ini"に追記して下さい。なお、マッパータイプは正しいのに、それ以外の原因で正常動作しないこともあります。その場合はあきらめて下さい。
今回のバイナリにセンサーキッド対応は入ってません。

2HDフロッピー対応は、まともに動作するかどうかは不明です。特にDOS1では動作が怪しいです。
DOSカーネルROM、MSXDOS(2).SYS、COMMAND(2).COMのバージョンや種類によって動作が変わってくる部分もあると思います。
少なくとも、ブートセクタの18h〜1Bhの情報が正しく書かれている必要があります。

プリンタ出力のログファイルは、半角英数字のテキスト出力だけであればそのままテキストファイルとして読めるでしょう。
画像ファイルに変換する手段としてはLptlog2PNGもありますが、出来は良くないです。

各EXEファイルのアイコンは無しにしてあります。
プロジェクトファイルには既存のアイコンファイルが入っていますが、リソースファイルではコメントアウトしてます。

EXEファイルと、変更部分のソースと、VC++2008用のプロジェクトファイルが入ってます。
HX-20に関してはQt版のビルドに必要なファイルも適当に作ってみたので入れてみました。ただし、メニュー項目表記などは未対応です。

MSX2以降では、初期状態でRTCから日付を取得すると、現在の年から20年ずれています。内部で補正すれば解決できるのでしょうけど、放置しています。
V99x8のコードはZodiacの物を一部変更や追加した上で使用しています。不具合も未実装機能も無駄な記述もありますが、このままの状態で公開します。(私以外の誰かがopenMSXか何かのV99x8のコードを移植してくれないかな……)

使用するBIOSファイルは以下のとおりです。必要に応じて、EXEファイルと同じフォルダに入れておいて下さい。
"MSX.ROM"または"MSXJ.ROM"(MSX1のメインROM)32KB
"MSX2.ROM"または"MSX2J.ROM"(MSX2のメインROM)32KB
"MSX2P.ROM"(MSX2+のメインROM)32KB
"BASIC.ROM"(MSX1かMSX2かMSX2+のメインROM)32KB
"MSX2EXT.ROM"または"MSX2JEXT.ROM"(MSX2のサブROM)16KB
"MSX2PEXT.ROM"(MSX2+のサブROM)16KB
"KNJDRV.ROM"(MSX2+の漢字ドライバのROM)32KB
"FMBIOS.ROM"(本体内蔵MSX-MUSICのROM)16KB
"DISK.ROM"(FDDのROM)16KB SONYの物以外で動くかどうかは知りません。
"MSXDOS2.ROM"(MSX-DOS2のROM)64KB
"PX7EXT.ROM"または"EXT.ROM"(PX-7のスロット#2のROM)8KB
"HX20FIRM.ROM"(HX-20のスロット#3-3のROM)32KB
"FSA1FIRM1.ROM"と"FSA1FIRM2.ROM"(FS-A1のスロット#3-2と#3-3のROM)それぞれ32KB
"KANJI.ROM"(漢字フォントのROM)256KBまたは128KB

特殊キーの割り当ては、同梱の"keycode.cfg"を使用しない場合は
 [カタカナひらがな]かな
 [Caps Lock]CAPS
 [F9]SELECT
 [Pause]STOP
ですが、キー入力が少し怪しいように思うかもしれません。
同梱の"keycode.cfg"をexeファイルやBIOSファイルと同じフォルダに置けば、旧yaMSX1(本家Common Source Code Projectに一旦マージされる前のもの)準拠のキー割り当て
 [F6]かな
 [F7]CAPS
 [F8]SELECT
 [F9]STOP
が使えます。が、PX-7特有のキーが使えなくなるかもしれません。
同梱の"keycode.cfg"は旧yaMSX1等で適用されないようにして下さい。

変更点は以下のとおり。
・スロット/メモリ関連のコードを追加および変更。
・一部のメガROMに対応。
・コナミのSCC搭載メガROMのために、ダミーのSCC音源を用意。音は本物のSCCと似ていません。
・プリンタのログファイル出力に対応。
・MSX-MUSIC対応。
・漢字ROM対応。
・FS-A1の50音配列キーボードに対応。
・HX-20のPSGステレオ出力切り替えに対応。
・HX-20やFS-A1の内蔵ソフトに対応。
・画面のアスペクト比変更に対応。
・MSX2+のみ、512バイト/セクターの2HDフロッピーイメージの読み書きに試験的に対応。フォーマット処理には対応してません。
・(拡張子"*.dsk"のベタイメージファイル書き込み時の不具合に暫定対応。)
・(ステートセーブ&ロード機能は完全に動作未確認。しかもサイズが大きい。)
・(レーザーディスク関連も完全に動作未確認。)

現状で実装されていないが、MSXエミュレータとしては求められるかもしれない機能?
V99x8の未実装機能や不具合の修正(インターレースモード、SCREEN3、一部のVDPコマンドなど)
MSX2以降の一部機能
より良いメガROM対応
もっとまともなSCC音源
ハードディスクドライブ
マウス
ポーズボタン
PSGのハードウェアエンベロープが32段階(?)の機種も存在する
日本向け以外のMSXへの対応
など。

戻る


アクセス解析 SEO/SEO対策