2025年の総括

全ての国産PCのエミュレータを開発しようと始めたこの活動も、今年で22年目となりました。
相変わらず本業は多忙を極めてましたが、自治会の仕事がなくなって、多少はマシだったかなと。
本業の方の展示会の準備がひと段落してからは、そこそこ活動できたかなーと思います。

Common Source Code Projectは、新ネタとしてHuX-883のエミュレータをリリースできました。
これで113機種目です。
8088+VDPのワンボードマイコンという面白構成でずっと気になってて、でもずっと入手できなくて、
実装自体は1時間くらいでできたんですが、もの凄くやってやった感が高いネタでした。
資料をご提供いただいた某氏には感謝感謝です。
それ以外も、SCV、PC-100、JR-100など、長年やり残したままになっていた不具合修正ができたり、
他の方のForkを取り込ませていただいたり、まずまずの成果だったかなと思います。

MS-DOS Playerの方は、今年もぼちぼち淡々と開発を継続することができました。
VDD対応、多言語対応、Lotus 1-2-3 R2.4対応などが目立った成果かと思います。
ファーストリリースが2009/12/5ということで、もう16年は開発を続けてきましたが、
特に大きな未実装機能は残ってない(Network関係とか要らないですよね?)と思いますので、
そろそろメンテナンスフェーズというか、今後は何か不具合があったら都度対応する、
といった感じになりそうです。

来年ですが、本業の繁忙を縫って、少しづつでも開発を継続していければと思います。
BX-1とT-250の改良を進めるのと、資料を入手できたM68の実装を進めるのと、
後はそろそろいい加減、FM16βとN5200とMZ-6550を何とできればいいのですが(苦笑)

今年も1年お世話になりました。来年もよろしくお願いいたします。



2025/12/31
EmuZ-80B/2200を更新しました。
テキストVRAMの容量を2KBに修正しました。
ePC-9801/E/U/VF/VM/VX/RA, ePC-98DOを更新しました。
NP2の実装を参考に、EMSメモリの修正をしました。
EMM.SYSで認識するようになっているかと思います。
PC-9801RAでSASI HDDを認識しなくなっている問題を修正しました。
eX1/twin/turbo/turboZを更新しました。
EMMクラスのリリース中にクラッシュする問題を修正しました。

2025/12/15
eBX-1を更新しました。
I/O CONTROLLER X-7101Bをサポートしました。
ePC-9801/E/U/VF/VM/VX/RA, ePC-98DOを更新しました。
PC-9801-53を搭載しました。
PC-9801-54を増設した2MB構成になっています。
ただし、プロテクトメモリアドレス設定は未サポートとなっています。

2025/12/14
Common Source Code Projectを更新しました。
従来、オプションの選択にconfig.dipswitchを流用している機種が幾つかありましたが、
オプション選択用にoption_switchをサポートしました。
stateのロード時、dipswitchの値が変わっていてもvmの再生成をしなくなりますので、
以後はoption_switchの方を使用するようお願いいたします>関係各位
EMU/VMクラスにハードディスクやCD-ROMの接続状態を取得する関数を追加しました。

EmuZ-80K/1200/80A, EmuZ-700/800/1500, EmuZ-80B/2200, EmuZ-2500を更新しました。
各オプションの有効・無効を選択できるようにしました。
ePC-8801MAを更新しました。
CD-ROM^2の有効・無効を選択できるようにしました。

2025/12/8
Common Source Code Projectを更新しました。
kuran_kuran様のForkから、色々修正を取り込みました。
関係各位に多大なる感謝をいたします。
その他、SY-6845Eをサポートしました。

EmuZ-700/1500を更新しました。
CMU-800をサポートしました。(kuran_kuran様)
Kersten & Partner社のSFD-700と80桁ボードをサポートしました。
EMMをバッテリーバックアップ対応するように変更しました。。
EmuZ-80K/1200/80Aを更新しました。
CMU-800をサポートしました。(kuran_kuran様)
EmuZ-80B/2200を更新しました。
CMU-800, PIO-3034をサポートしました。(kuran_kuran様)
EmuZ-2500を更新しました。
CMU-800, MZ-1R12をサポートしました。(kuran_kuran様)
ePC-8801MA, ePC-9801を更新しました。
利便性のため、1.44MB 2HDをサポートしました。
eX1/twin/turbo/turboZを更新しました。
テキスト画面の描画周りの修正と、シリアルMIDI対応をしました。(目玉P様)
EMMについて、容量16MB、バッテリーバックアップするように変更しました。
また、利便性のため、1.44MB 2HDと2DDのフロッピーディスクをサポートしました。

2025/11/30
eBX-1を更新しました。
プリンタで、FORMAT命令の後に不正な改行が入る問題のパッチを入れました。
EmuZ-2800を更新しました。
画面モードやスクロールレジスタを変更した後、画面の描画が崩れる問題を修正しました。
ePC-100を更新しました。
キーボード周りを修正しました。

2025/11/26
MS-DOS Playerを更新しました。
struprの処理であかんエンバグをしていました。
修正しましたので、11/22版をお使いの方は差し替えをお願いいたします。

2025/11/24
Common Source Code Projectを更新しました。
SY6522を、MAME 0.279ベースで再実装しました。
eJR-100でCMTが動作するようになっています。

2025/11/23
Common Source Code Projectを更新しました。
NP21/WのI386コアについて、SGDT/SIDT命令を修正しました。
割り込み発生中に例外が発生したときに、エミュレータが落ちる問題を修正しました。
REP MOVS/STOS命令で、転送が終了するまで処理を続けるようにしました。
PC-98のFDで、プログラムを自己書き換えするケースの対策です。(調査多謝です>sava様)
I8253のカウンタへの書き込みが反映されるタイミングを修正しました。(多謝です>紅茶羊羹様)
MC6844で、IRQラインを他のデバイスに接続できるようにしました。

eBX-1を更新しました。
IRQラインの接続を整理した他、PAPER FEEDキーが機能するように修正しました。
EmuZ-700/1500, EmuZ-2500, eRX-78を更新しました。
紅茶羊羹さんの野良ビルドから、何点か修正を取り込ませて頂きました。
またeRX-78については、32KBのROMカートリッジをサポートしました。

2025/11/22
MS-DOS Playerを更新しました。
NP21/WのI386コアについて、SGDT/SIDT命令を修正しました。
コンソールのコードページを変更した場合、そのコードページでファイルパスを扱うようにしました。
ファイルアクセス周りを大幅に書き換えていますので、不具合を見つけられましたらお知らせください。

2025/11/18
MS-DOS Playerを更新しました。
ファイルパスを変換する際に、CP_ACPではなくCP_OEMCPを指定するよう修正しました。

2025/11/12
MS-DOS Playerを更新しました。
キー入力の検出の改良を行いました。

2025/11/10
MS-DOS Playerを更新しました。
STDINにWin32のパイプが繋がっていると、キー入力を受け付けない問題に対処しました。

2025/11/9
Common Source Code Projectを更新しました。
MS-DOS Playerと同様、NP21/WとMAME版のI386コアを更新しました。
またMC6800コアを、MAME 0.279相当に更新しました。

eBX-1を更新しました。
コンソール画面でのプリンタ出力の表示周りを改良しています。
ハドソン HuX-883エミュレータのeHuX-883をリリースしました。
資料をご提供いただきました某氏にただただ感謝です。
eSCVを更新しました。
前回の更新時に、一部のカセットが読み込めなくなっていたのを修正しました。

2025/11/8
MS-DOS Playerを更新しました。
NP21/WのI386コアについて、ver0.86 rev96 beta8相当に更新しました。
MAME版i386について、cracyc様の変更を取り込みました。

2025/10/12
MS-DOS Playerを更新しました。
NP21/WのI386コアのsoftfloat版FPUについて、FIST/FISTP命令を改良しました。
型変換する前に、変換先の型の値域に収まるかをチェックするようにしました。
また、TFを立てた命令で即トラップしないようにしました。

2025/9/26
MS-DOS Playerを更新しました。
環境変数テーブルのサイズを修正しました。

2025/9/23
Common Source Code Projectを更新しました。
最近のMS-DOS Playerと同じく、MAME版のi86/i386コア、NP21/WのI386コアを更新しました。
また今回から、VC++2017でビルドしたx64用バイナリのみの配布となります。

ほぼ11年ぶりですが、eSCVを更新しました。
MiSTerのSCVの解析資料を拝見して、今更ながら改良を入れてみました。
ポールポジションIIが動作するようになったり、
パンチボーイの主人公の目が表示されるようになったり、
マッピーの動作が速い問題が修正されたりしています。

2025/9/4
MS-DOS Playerを更新しました。
環境変数の読み込みを改良しました。
環境変数中のパスを短いパスに変換する際、非ANSIの文字も受け付けるようにしました。
また、PATH, TEMP/TMP, COMSPEC, APPENDなど以外の、既知でない環境変数であっても、
パスっぽい(A-Z:\から始まる)値であれば、短いパスに変換を試みるようにしました。

2025/8/31
MS-DOS Playerを更新しました。
D3X DOS-Extender v0.90が正常に終了しない問題を修正しました。
真のDOSのバージョンが5.50のときに正常に動作しないソフトが幾つかあるため、
VDDをサポートしていない64bit版については、これを7.10に戻しました。

2025/8/28
MS-DOS Playerを更新しました。
MAME版i386コアを、MAME 0.279相当に更新しました。
cracyc様のこちらのCommitも反映しています。
MAME版i86コアについても、最近のDIV/IDIV/NEG命令の修正を反映しました。

2025/8/10
MS-DOS Playerを更新しました。
非ANSIな文字を含むファイルパスの扱いを改良しました。
非ANSIな文字を含むファイル・フォルダ名を、8.3文字の短い名前に置き換えることで、
正しくアクセスすることができるようになっています。

2025/7/26
MS-DOS Playerを更新しました。
NP21/WのI386コアを、ver0.86 rev95β7相当に更新しました。
SSE周辺の命令が修正されています。

2025/6/24
MS-DOS Playerを更新しました。
V30コアの8080モードのPSWを修正しました。
PUSH/POP PSWを実行したときに、Aレジスタが上位、フラグが下位になるようにしました。
またフラグのbit1が常に立っているようにしました。

2025/6/22
MS-DOS Playerを更新しました。
デンマーク語、フィンランド語、ロシア語のエラーメッセージを追加しました。
MS-DOS, PC-DOSでメッセージがローカライズされていたのは、これで全部かと思います。

2025/6/21
MS-DOS Playerを更新しました。
イタリア語、オランダ語、スウェーデン語のエラーメッセージを追加しました。

2025/6/19
MS-DOS Playerを更新しました。
コンソールのウィンドウハンドルを取得する処理が動かなくなっていたのを修正しました。
IMEのオン・オフなど幾つかの処理が機能しなくなっていたようです。

2025/6/18
MS-DOS Playerを更新しました。
短いファイルパスを生成する処理を改良しました。
ファイルパスの結合処理で、いわゆる0x5C問題があったのを修正しました。
VC++6でビルドできなくなっていたのを修正しました。

2025/5/31
MS-DOS Playerを更新しました。
INT 21h, AX=4B00h/4B01hで、任意の拡張子のコマンドファイルを読み込むようにしました。
INT 21h, AH=2Bh/2Dhで、仮想DOSマシン内の日時を変更できるようにしました。
INT 1Ah, AH=03h/05hをサポートしました。
cracyc様のforkから、MAME版i386コアの修正を取り込ませていただきました。
VERR/VERW命令について、現在の権限レベルをチェックするようにしています。

2025/5/25
CP/M Playerを更新しました。
Roy Tam様のForkから、BDOS 69hの実装を取り込ませていただきました。
CP/M Plusのサービスで、現在の日時を取得するものです。

2025/5/18
MS-DOS Playerを更新しました。
サポートするディスプレイアダプタを指定できるようにしました。
-vmを指定するとMDAのみ、-vcを指定するとCGAのみ存在する状態となります。
cracyc様のforkから、MAME版i386コアの修正を取り込ませていただきました。
DOSBox-Xを参考に、幾つかのサービスでレジスタの返り値を修正しました。
INT 21h, AH=38h, DX=FFFFhおよびAX=6500h/7002hにおいて、
実際にはロケール設定を書き換えないようにしました。

2025/5/11
MS-DOS Playerを更新しました。
INT 10h, AH=00hで、サポートされていないモードを無視するようにしました。
INT 10h, AH=10h, BL=10hを無効にして、EGAが存在しない状態にしました。
INT 10h, AX=1A00hで、VGAでなくCGAが繋がっている状態にしました。
CGA/MDAのステータスレジスタの、Display Disabled信号のタイミングを改良しました。
INT 21h, AH=5Chを修正しました。
ロックサイズとしてSI=DI=FFFFhを指定した場合、ファイル末尾までロックするようにしました。
INT 21h, AH=47hで、処理の成功時にAX=0100hをセットするようにしました。
ついでに、INT 21h, AX=4301hで、処理の成功時にAXの値を破壊するようにしました。

2025/5/2 (20:00)
MS-DOS Playerを更新しました。
COMMAND.COMからバージョンを取得する処理が壊れていたのを修正しました。

2025/5/2
MS-DOS Playerを更新しました。
NP21/WのI386コアを、ver0.86 rev94β4相当に更新しました。
testi386で試した限りでは、10%くらい高速化しているようです。
COMMAND.COMから自動取得した、または-vで指定したバージョンについて、
INT 21H, AX=3306Hの返す真のDOSのバージョンに反映するようにしました。

2025/4/28
1年以上ぶりですが、Common Source Code Projectを更新しました。
ライセンスをGPL v2からGPL v2 or Laterに変更しました。
I386, V30絡みでデバッガを改良しました。
NP21/WのI386コアを、ver0.86 rev92相当に更新しました。

2025/3/27
MS-DOS Playerを更新しました。
0957811様のforkより、デバイスドライバの対応を取り込ませていただきました。
NTVDM用のVDDで、キャラクタデバイスのドライバのみ対応しています。

2025/3/23
MS-DOS Playerを更新しました。
同時に開けるファイル数を20〜128の範囲で指定できるようにしました。
-eオプションを指定時に読み込む標準環境変数に、COPYCMD/DIRCMD/NO_SEPを追加しました。
DOSバージョンの情報をPSPに格納するようにしました。
PC-DOS V6.10とMS-DOS V6.21のCOMMAND.COMのバージョン判定に対応しました。
INT 21h, AX=6301h/6302h/65A3hをサポートしました。
INT 21h, AH=67hのエラー処理を改良しました。
0957811様のforkを参考に、Altキー+一般キーを押したときの処理を修正しました。

2025/3/9
MS-DOS Playerを更新しました。
0957811様のforkから、VDDInstallUserHookの修正を取り込ませていただきました。

2025/3/2
MS-DOS Playerを更新しました。
環境変数周りのコードを整理しました。

2025/3/1
MS-DOS Playerを更新しました。
コードページが938のとき、NLSのテーブルの初期化に失敗する問題を修正しました。
2025/2/16に追加した、INT 2Fh, AX=1611h/1613h/1614hのサポートを無効にしました。
環境変数テーブルのサイズを可変にしました。
また、環境変数を操作する諸処理の改良を行いました。

2025/2/24
MS-DOS Playerを更新しました。
COMMAND.COMからバージョンを取得する処理を改良しました。

2025/2/23
MS-DOS Playerを更新しました。
中国語と台湾語のエラーメッセージを追加しました。
中国語・台湾版PC-DOSのCOMMAND.COMのバージョン認識をサポートしました。
コードページ938(20003: IBM5550 台湾)をサポートしました。
INT 10h, AX=1000h/1007h/1010h/1012h/1015h/1017h/1018h/1019hをサポートしました。

2025/2/16
MS-DOS Playerを更新しました。
InDOSフラグを処理するようにしました。
INT 2Fh, AX=1611h/1613h/1614hをサポートしました。

2025/2/15
MS-DOS Playerを更新しました。
INT 10h, AH=F0h/F1h/F2h/F3h/F4h/F5hをサポートしました。
EGAのレジスタにアクセスする、EGA Register Interface Libraryのサービスです。
これに伴い、EGA/VGAのレジスタも幾つか実装しておきました。
ただ値の読み書きができるだけで、実際の画面には何にも影響はしません。

2025/2/13
MS-DOS Playerを更新しました。
INT 10h, AH=12h, BL=30hを修正しました。
リザルトとしてAL=12hを返すようにしました。

2025/2/12
MS-DOS Playerを更新しました。
cracyc様のforkから、修正を取り込ませていただきました。
CGAテキストモードで43行を表示したり、MS Word 4でマウスを認識するようになっています。
INT 10h, AX=1001h/1002h/1008h/1009hをサポートしました。
パレットレジスタの読み書きをしますが、実際の画面には反映されません。

2025/2/7
MS-DOS Playerを更新しました。
demGetPhysicalDriveType, demIsShortPathNameの機能を実装しました。
また、NT_VDD.Hで定義を確認できた関数について、何もしないダミー関数を追加しました。

2025/1/26
MS-DOS Playerを更新しました。
搭載メモリ末端の境界をまたいでWORD/DWORDアクセスしたときの処理を修正しました。

2025/1/25
MS-DOS Playerを更新しました。
VDDInstallUserHook, VDDDeInstallUserHookの機能を実装しました。

2025/1/24
MS-DOS Playerを更新しました。
cracyc様のforkから、VDDの修正を取り込ませていただきました。
VDDInstallIOHookの修正をしました。
VDDInstallUserHookについて、(機能は未実装ですが)Trueを返すようにしました。
VDDSimulateInterruptの実装を、PICにリクエストを出す内容に変更しました。
WOWSysErrorBoxをサポートしました。

2025/1/22
MS-DOS Playerを更新しました。
MGetVdmPointer, VdmMapFlat, VDDInstallMemoryHookを修正しました。

2025/1/21
MS-DOS Playerを更新しました。
VDDのAPIを多数追加しました。
まだまだ問題は多数残っているかと思われます。
お気づきの点がございましたらご指摘いただけますと幸いです。

2025/1/13
MS-DOS Playerを更新しました。
MGetVdmPointerとVdmMapFlatについて、モードの引数を尊重するように修正しました。
VDDDeInstallMemoryHook, VDDDeInstallMemoryHook, VDDAllocMem, VDDFreeMem,
VDDIncludeMem, VDDExcludeMemについて、常に失敗するダミー関数を実装しました。

2025/1/12
MS-DOS Playerを更新しました。
VDD(Virtual Device Driver)を部分的にサポートしました。
cracyc様のforkを基に、多少の変更をしています。
これにあわせて、INT 21H, AH=30Hの返すDOSのバージョンを5.00に、
INT 21H, AX=3306Hの返す真のDOSのバージョンを5.50に変更しました。
また、INT 2Fh, AX=122Fh, DX=0000hで、5.00に戻すようにしました。

2025/1/1
新年あけましておめでとうございます。
今年もよろしくお願いいたします。



What's new (1/12/2025):
MS-DOS Player is updated
What's new (1/13/2025):
MS-DOS Player is updated
What's new (1/21/2025):
MS-DOS Player is updated
What's new (1/22/2025):
MS-DOS Player is updated
What's new (1/24/2025):
MS-DOS Player is updated
What's new (1/25/2025):
MS-DOS Player is updated
What's new (1/26/2025):
MS-DOS Player is updated
What's new (2/7/2025):
MS-DOS Player is updated
What's new (2/12/2025):
MS-DOS Player is updated
What's new (2/13/2025):
MS-DOS Player is updated
What's new (2/15/2025):
MS-DOS Player is updated
What's new (2/16/2025):
MS-DOS Player is updated
What's new (2/23/2025):
MS-DOS Player is updated
What's new (2/24/2025):
MS-DOS Player is updated
What's new (3/1/2025):
MS-DOS Player is updated
What's new (3/2/2025):
MS-DOS Player is updated
What's new (3/9/2025):
MS-DOS Player is updated
What's new (3/23/2025):
MS-DOS Player is updated
What's new (3/27/2025):
MS-DOS Player is updated
What's new (4/28/2025):
Common Source Code Project is updated
What's new (5/2/2025):
MS-DOS Player is updated
What's new (5/11/2025):
MS-DOS Player is updated
What's new (5/18/2025):
MS-DOS Player is updated
What's new (5/25/2025):
CP/M Player is updated
What's new (5/31/2025):
MS-DOS Player is updated
What's new (6/18/2025):
MS-DOS Player is updated
What's new (6/19/2025):
MS-DOS Player is updated
What's new (6/21/2025):
MS-DOS Player is updated
What's new (6/22/2025):
MS-DOS Player is updated
What's new (6/24/2025):
MS-DOS Player is updated
What's new (7/26/2025):
MS-DOS Player is updated
What's new (8/10/2025):
MS-DOS Player is updated
What's new (8/28/2025):
MS-DOS Player is updated
What's new (8/31/2025):
MS-DOS Player is updated
What's new (9/4/2025):
MS-DOS Player is updated
What's new (9/23/2025):
Common Source Code Project is updated
eSCV is updated
What's new (9/26/2025):
MS-DOS Player is updated
What's new (10/12/2025):
MS-DOS Player is updated
What's new (11/8/2025):
MS-DOS Player is updated
What's new (11/9/2025):
Common Source Code Project is updated
eBX-1 is updated
eHuX-883 is newly released
eSCV is updated
What's new (11/10/2025):
MS-DOS Player is updated
What's new (11/12/2025):
MS-DOS Player is updated
What's new (11/18/2025):
MS-DOS Player is updated
What's new (11/22/2025):
MS-DOS Player is updated
What's new (11/23/2025):
Common Source Code Project is updated
eBX-1 is updated
EmuZ-700/1500 are updated
EmuZ-2500 is updated
eRX-78 is updated
What's new (11/24/2025):
Common Source Code Project is updated
What's new (11/26/2025):
MS-DOS Player is updated
What's new (11/30/2025):
eBX-1 is updated
EmuZ-2800 is updated
ePC-100 is updated
What's new (12/8/2025):
Common Source Code Project is updated
EmuZ-700/1500 are updated
EmuZ-80K/1200/80A are updated
EmuZ-80B/2200 are updated
EmuZ-2500 is updated
ePC-8801MA, ePC-9801 are updated
eX1/twin/turbo/turboZ are updated
What's new (12/14/2025):
Common Source Code Project is updated
EmuZ-80K/1200/80A, EmuZ-700/800/1500, EmuZ-80B/2200, and EmuZ-2500 are updated
ePC-8801MA is updated
What's new (12/15/2025):
eBX-1 is updated
ePC-9801/E/U/VF/VM/VX/RA and ePC-98DO are updated
What's new (12/31/2025):
EmuZ-80B/2200 are updated
ePC-9801/E/U/VF/VM/VX/RA and ePC-98DO are updated
eX1/twin/turbo/turboZ are updated