Repository navigation
Releases: Imaha486/PC98PLAYER
Release list
Ver.261022
変更履歴
バージョンはリリースした日付(YYMMDD)です。新しいものが上です。
ver 261022
追加したこと
-
CONFIG.SYS のデバイスドライバの組み込み。 起動ドライブ(ゲームのフォルダ)に本物の
CONFIG.SYSがあれば、DEVICE=・DEVICEHIGH=に書かれたドライバを、最初のプログラムより先に読み込んで初期化(INIT)し、装置の鎖(NUL の次)につなぎます。MIDI のドライバや音楽のドライバを CONFIG.SYS で組み込むゲームで、BGM が鳴るようになります。- 実機の MS-DOS と同じく、戦略ルーチン・割込みルーチンを DS:SI = 装置ヘッダ、ES:BX = 要求ヘッダで呼び、
DEVICE=の後ろの行(引数)を渡します。MZ 形式(.EXE)のドライバも読めます。 - メモリの管理(HIMEM・EMM386・VEMM など)・CD-ROM・マウス・日本語入力・SMARTDRV などは組み込みません。ブロック装置(RAM ディスクなど)も組み込みません。
- 組み込んだ文字装置は名前で開けます(読み書き・IOCTL はドライバへは渡しません)。
- INI の
LoadDevices=0で、組み込まないようにできます。設定INI作成.html にも追加しました。
- 実機の MS-DOS と同じく、戦略ルーチン・割込みルーチンを DS:SI = 装置ヘッダ、ES:BX = 要求ヘッダで呼び、
-
フロッピーから起動する(
Boot=FD)ゲームでも、CD-DA が鳴るようにした。 起動ディスクの MS-DOS で CD-ROM のドライバと MSCDEX.EXE を組み込むゲームでは、CD-ROM の装置が無いためにどちらも組み込めず、CD-DA が鳴りませんでした。Boot=FDでCDROM=があるときは、INT 2Fh AH=15h(MSCDEX)を割込みベクタを通さずに PC98PLAYER の MSCDEX へ回し、演奏・停止・トラック表などに答えます。装置ヘッダは MS-DOS のメモリを壊さないよう ROM の空きに置きます。CD の中のファイルは読めません(CD-DA だけ)。
直したこと
- MPU-PC98II(MIDI)の割込みを、受信データを読み終えたら取り下げるようにした。 実機の MPU は受信データがある間だけ割込みの線を上げています。割込みの中で ACK(FEh)を自分で読み終えるドライバで、読み終えたあとも割込みの要求が残っていたため、もう一度割込みに入って来ないデータを割込み禁止のまま待ち続け、ゲームの処理がほとんど進まなくなっていました。
- MPU の受信バッファがいっぱいのとき、新しい ACK(FEh)を捨てていたのを、古いものを捨てるようにしました。読まれずにたまったクロック・トゥ・ホスト(FDh)は、8 個を超えたら足さないようにしました。
ver 261021
追加したこと
Trace=2(止まる・落ちるときの詳しい記録)。 終わったとき(ウインドウを閉じる・リセット)に、ゲームのフォルダへ次の 2 つを書き出します。PC98PLAYER.DEBUG(テキスト): 終わったときの CPU のレジスタ・フラグ・コード・スタック・BP の鎖、PIC / PIT、起動の直後から変わった割込みベクタ(入った回数つき)、MCB の鎖、終わる前 10 秒の 1 秒ごとの様子(レジスタ・スタック・PIC・その 1 秒に入った割込みの回数)、割込みの長い記録(同じ割込みが続くものはまとめて回数を書く)、直近 8192 回の割込みと INT 21h の結果、直近 4096 回の I/O ポート、直近 16384 個の命令(実行する前のレジスタつき)。PC98PLAYER.MEM: 1MB のメモリの中身そのまま。PC98PLAYER.VRAM: テキスト VRAM とグラフィック VRAM の中身。PC98PLAYER.BMP: 終わったときの画面。PC98PLAYER.DEBUGには、画面の設定(文字・グラフィックの GDC の SYNC・PITCH・CSRFORM・ZOOM・SCROLL の領域、モードF/F、表示・描画バンク、GRCG・EGC、パレット)と、画面の設定の OUT(GDC・モードF/F・表示バンク・CRTC)の長い記録も書きます。Trace=2の間は命令を 1 つずつ記録するので、少し重くなります。
- 設定INI作成.html の「記録」で、
Trace=2を選べるようにしました。
直したこと
- マウスドライバ(NEC の MOUSE.COM)を常駐させるゲームで、グラフィック画面が 200 ライン(縦 2 倍)になって、画面の上半分だけが引き伸ばされて見えていた不具合を直した。 BIOS の作業域 0053Ch の bit7(高解像度= 24kHz・400 ラインのモード)を立てていなかったため、マウスドライバがカーソルを出すときに「200 ラインの機械」と判断して、INT 18h AH=42h でグラフィックを 200 ラインに戻していました。起動時と INT 18h AH=0Ah で bit7 を立てるようにしました。
- 割込みの入る位置によって、常駐するサウンドドライバのスタックが別のプログラムのコードを壊し、ゲームが止まったり未定義命令で落ちたりしていた不具合を直した。 スタックを元に戻すときに「SP を戻してから SS を戻す」順で書いている常駐プログラムがあり、その 2 命令の間に割込みが入ると、割込みの記録がまったく別の場所(あとから読み込まれたプログラムのコード)に積まれます。実機でもその 1 命令の間に割込みが入れば壊れますが、ほとんど当たりません。PC98PLAYER では割込みの入る位置が偏っていて何度も当たっていたので、SS を書き換える命令(MOV SS・POP SS)の直前では、割込みを 1 命令だけ待たせるようにしました。
Trace=1の[stall]の記録に、割込みが禁止されたまま止まっているときは、最後に禁止した命令の場所も書くようにしました。
Ver.261021-2
変更履歴
バージョンはリリースした日付(YYMMDD)です。新しいものが上です。
ver 261021
追加したこと
Trace=2(止まる・落ちるときの詳しい記録)。 終わったとき(ウインドウを閉じる・リセット)に、ゲームのフォルダへ次の 2 つを書き出します。PC98PLAYER.DEBUG(テキスト): 終わったときの CPU のレジスタ・フラグ・コード・スタック・BP の鎖、PIC / PIT、起動の直後から変わった割込みベクタ(入った回数つき)、MCB の鎖、終わる前 10 秒の 1 秒ごとの様子(レジスタ・スタック・PIC・その 1 秒に入った割込みの回数)、割込みの長い記録(同じ割込みが続くものはまとめて回数を書く)、直近 8192 回の割込みと INT 21h の結果、直近 4096 回の I/O ポート、直近 16384 個の命令(実行する前のレジスタつき)。PC98PLAYER.MEM: 1MB のメモリの中身そのまま。Trace=2の間は命令を 1 つずつ記録するので、少し重くなります。
- 設定INI作成.html の「記録」で、
Trace=2を選べるようにしました。
直したこと
- 割込みの入る位置によって、常駐するサウンドドライバのスタックが別のプログラムのコードを壊し、ゲームが止まったり未定義命令で落ちたりしていた不具合を直した。 スタックを元に戻すときに「SP を戻してから SS を戻す」順で書いている常駐プログラムがあり、その 2 命令の間に割込みが入ると、割込みの記録がまったく別の場所(あとから読み込まれたプログラムのコード)に積まれます。実機でもその 1 命令の間に割込みが入れば壊れますが、ほとんど当たりません。PC98PLAYER では割込みの入る位置が偏っていて何度も当たっていたので、SS を書き換える命令(MOV SS・POP SS)の直前では、割込みを 1 命令だけ待たせるようにしました。
Trace=1の[stall]の記録に、割込みが禁止されたまま止まっているときは、最後に禁止した命令の場所も書くようにしました。
Ver.261021
ver 261021
直したこと
- 割込みの入る位置によって、常駐するサウンドドライバのスタックが別のプログラムのコードを壊し、ゲームが止まったり未定義命令で落ちたりしていた不具合を直した。 スタックを元に戻すときに「SP を戻してから SS を戻す」順で書いている常駐プログラムがあり、その 2 命令の間に割込みが入ると、割込みの記録がまったく別の場所(あとから読み込まれたプログラムのコード)に積まれます。実機でもその 1 命令の間に割込みが入れば壊れますが、ほとんど当たりません。PC98PLAYER では割込みの入る位置が偏っていて何度も当たっていたので、SS を書き換える命令(MOV SS・POP SS)の直前では、割込みを 1 命令だけ待たせるようにしました。
Trace=1の[stall]の記録に、割込みが禁止されたまま止まっているときは、最後に禁止した命令の場所も書くようにしました。
追加したことtools/cue2folder.py(ソースに同梱)。 CUE + BIN(IMG)の CD イメージを、データトラックの ISO(TRACK01.ISO)と、音楽トラックのファイル(BGM/track02.wav…、--mp3で MP3。MP3 には ffmpeg が要る)に分けます。CDROM=TRACK01.ISOとCDDA=BGMで、CD イメージより小さく持ち運べます。- サンプル INI に、CD-ROM 版を CUE シートで遊ぶ例と、データトラックの中身のフォルダと MP3 の BGM で遊ぶ例を追加しました。
直したこと
CDROM=に ISO を書いたとき、データトラックの長さをイメージのファイルの大きさから決めるようにしました(ボリュームの大きさのほうが大きければそちら)。CUE から切り出した ISO なら、元の CD と同じ長さになります。
Ver.261017
ダウンロード
| ファイル | 内容 |
|---|---|
| PC98PLAYER_261017.zip | 実行パッケージ(PC98PLAYER.EXE・取扱説明書・設定INI作成.html・サンプル INI)。遊ぶだけならこちら |
| PC98PLAYER_261017_src.zip | ソースコード一式(EXE を含まない)。自分でビルドする人向け |
下の「Source code (zip / tar.gz)」は GitHub が自動で付けるもので、リポジトリの中身そのものです。通常は上の 2 つをお使いください。
PC98PLAYER.EXE は、公開しているソース(_src.zip)から Visual Studio 2026 でビルドしたものです。電子署名がないため、ダウンロードや初回起動のときに Windows の警告が出ることがあります(詳しくは README の「セキュリティソフトの警告について」)。
ver 261017 の主な変更
追加したこと
- 音楽 CD(トラック 1 から音楽の CD)を入れられるようになりました。 ゲームミュージック CD などの音楽 CD をドライブに入れて、その曲を BGM にして遊ぶゲーム向けです。これまでは、トラック 1 がいつもデータトラックになっていたため、01 の曲が鳴りませんでした。
- 新しい INI の項目
CDType=で CD の種類を決めます。AUDIOは音楽 CD、DATAはトラック 1 がデータのゲームの CD です。 - 既定の
AUTOでは、次のときに自動で音楽 CD とみなします。CDROM=を書かずにCDDA=だけを書いたとき。CDROM=のフォルダの中が音楽のファイル(WAV・MP3・FLAC)だけのとき。
- データトラックの無い CUE シート(
TRACK 01 AUDIOから始まるもの)でも、CD-ROM のドライブが見えるようにしました。
- 新しい INI の項目
- 設定INI作成.html に「CD の種類」を追加しました。
詳しくは同梱の CHANGELOG.md と、取扱説明書の第一章 1-13「音楽 CD を入れる」をご覧ください。
Ver.261016
ダウンロード
| ファイル | 内容 |
|---|---|
| PC98PLAYER_261016.zip | 実行パッケージ(PC98PLAYER.EXE・取扱説明書・設定INI作成.html・サンプル INI)。遊ぶだけならこちら |
| PC98PLAYER_261016_src.zip | ソースコード一式(EXE を含まない)。自分でビルドする人向け |
下の「Source code (zip / tar.gz)」は GitHub が自動で付けるもので、リポジトリの中身そのものです。通常は上の 2 つをお使いください。
PC98PLAYER.EXE は、公開しているソース(_src.zip)から Visual Studio 2026 でビルドしたものです。電子署名がないため、ダウンロードや初回起動のときに Windows の警告が出ることがあります(詳しくは README の「セキュリティソフトの警告について」)。
ver 261016 の主な変更
追加したこと
- CD-DA(CD の音楽トラック)が鳴るようになりました。 次のどちらかで音を用意します。
CDROM=GAME.CUEのように CUE シートで CD を入れる(BIN・WAV・MP3・FLAC の音楽トラックを、そのまま鳴らします)。- 音楽のファイル(WAV・MP3・FLAC)をフォルダに入れて、
CDDA=フォルダ名と書く。ファイル名の最後の 2 桁がトラック番号です(track_02.mp3→ トラック 2)。 - 音量は
CDDAVolume=、または F11 →「S: 画面&サウンド設定」の「CD-DA(CD の音楽)」で変えられます。
- CD-ROM の装置名(
CDDevice=、既定MSCD001)を開いて問い合わせるゲームに対応しました。 - CD-ROM 版のインストーラが AUTOEXEC.BAT から CD-ROM の装置名を読めるように、AUTOEXEC.BAT・CONFIG.SYS が無いときは設定どおりの中身を見せるようにしました。
- サンプル INI に、CD-ROM 版をフロッピーのインストーラでインストールする例(
konpeki2pf_install.ini)と、CUE シートで CD-DA も鳴らして遊ぶ例(konpeki2pf.ini)を追加しました。
直したこと
- MS-DOS のコンソールのグラフモードに対応しました。インストーラなどの進み具合のバーが、漢字(「合」「旧」「粕」など)になっていた不具合を直しました。
- MS-DOS のコンソールの「画面を消す」「行を消す」機能(INT DCh)が実機と違う消し方をしていて、インストーラなどで前の表示が残って文字と重なっていた不具合を直しました。
MP3・FLAC の展開には dr_libs(パブリックドメイン/MIT-0)を使っています(THIRD-PARTY-dr_libs-LICENSE.txt)。詳しくは同梱の CHANGELOG.md をご覧ください。
Ver.261014
ダウンロード
| ファイル | 内容 |
|---|---|
| PC98PLAYER_261014.zip | 実行パッケージ(PC98PLAYER.EXE・取扱説明書・設定INI作成.html・サンプル INI)。遊ぶだけならこちら |
| PC98PLAYER_261014_src.zip | ソースコード一式(EXE を含まない)。自分でビルドする人向け |
下の「Source code (zip / tar.gz)」は GitHub が自動で付けるもので、リポジトリの中身そのものです。通常は上の 2 つをお使いください。
PC98PLAYER.EXE は、公開しているソース(_src.zip)から Visual Studio 2026 でビルドしたものです。電子署名がないため、ダウンロードや初回起動のときに Windows の警告が出ることがあります(詳しくは README の「セキュリティソフトの警告について」)。
ver 261014 の主な変更
追加したこと
- CD-ROM 版のゲームに対応しました。 CD から作ったイメージ(
.ISO・.BIN)か、CD の中身をコピーしたフォルダを INI のCDROM=に書くと、MSCDEX 付きの CD-ROM ドライブ(既定Q:)として見せます。- CD の中の DOS 用インストーラも
Start=Q:\INSTALL.EXEのようにして動かせます。 - 遊ぶときに CD からデータを読むゲームも、そのまま動きます(これまでは「データディスクをセットしてください」と出て進めませんでした)。
- CD-ROM は読み出しだけです。CD-DA(音楽トラック)の演奏と、CD の入れ替えには対応していません。
- CD の中の DOS 用インストーラも
- 設定INI作成.html に「CD-ROM」の欄を、取扱説明書の第一章に「1-13. CD-ROM 版のゲーム」を追加しました。
詳しくは同梱の CHANGELOG.md をご覧ください。
Ver.261012-2
ver 261012-2
RhythmROM=が空か1なら、リズム音源の本物を自動で探すようにした。 ゲームのフォルダ → PC98PLAYER.EXE のフォルダの順に、ROM か WAV の組を探します。見つからなければこれまでどおり内蔵の合成音です。RhythmROM=0で、置いてあっても内蔵の合成音を使います。指定したファイルが見つからない・使えないときは、起動時に画面の下に知らせます(Trace=1の記録にも、何を使ったかが出ます)。設定INI作成.html の案内も直しました。- 取扱説明書の第一章に「1-12. リズム音源の本物(RhythmROM)」を追加した。 使えるファイル(ROM と WAV の組)、置き場所と探す順番、
RhythmROM=の書き方、読めたかの確かめ方、困ったときをまとめました。
Ver.261011
ダウンロード
| ファイル | 内容 |
|---|---|
| PC98PLAYER_261011.zip | 実行パッケージ(PC98PLAYER.EXE・取扱説明書・設定INI作成.html・サンプル INI)。遊ぶだけならこちら |
| PC98PLAYER_261011_src.zip | ソースコード一式(EXE を含まない)。自分でビルドする人向け |
下の「Source code (zip / tar.gz)」は GitHub が自動で付けるもので、リポジトリの中身そのものです。通常は上の 2 つをお使いください。
PC98PLAYER.EXE は、公開しているソース(_src.zip)から Visual Studio 2026 でビルドしたものです。電子署名がないため、ダウンロードや初回起動のときに Windows の警告が出ることがあります(詳しくは README の「セキュリティソフトの警告について」)。
ver 261011 の主な変更
ファイル管理ツールの FD(フリーソフト)が、ほぼすべての機能で使えるようになりました。サンプル INI に fd.INI と FDSTART.BAT があります。
直したこと
- 割込みを禁止したままキーを読むソフトで、キー入力が届かなかった不具合を直しました(実機の MS-DOS・BIOS と同じく、呼び出しの間は割込みを受け付けます)。
- FCB のワイルドカード削除・検索が、カレントディレクトリではなくドライブのルートを対象にしていた不具合を直しました。サブディレクトリの中身を消す操作で、ルートのファイルまで消えることがありました。
- カーソル位置の問い合わせ(ESC[6n)に答えるようにしました。
- 無いドライブを「ある」と答えていた不具合を直しました。
- ゲームのフォルダのドライブを、実機のネットワークドライブと同じ扱いにしました。ファイラーでサブディレクトリを開くと「読み込みエラー」になっていました。
- 読み込みで開いたファイルでも、日付の変更ができるようにしました。
追加したこと
- ファイルの属性(読み取り専用・隠し・システム・アーカイブ)の読み書き。
- フロッピーイメージの上で、ディレクトリを直接読み書きするソフト(ファイラーのソート結果の書き込みなど)が使えるようにしました。
- プログラムから COMMAND.COM が起動されたとき、プロンプトを出して 1 行ずつ実行する対話のシェルになります(EXIT で戻る)。シェルに DIR・VER・VOL・PROMPT を追加しました。
詳しくは同梱の CHANGELOG.md をご覧ください。
Ver.261012
ダウンロード
| ファイル | 内容 |
|---|---|
| PC98PLAYER_261012.zip | 実行パッケージ(PC98PLAYER.EXE・取扱説明書・設定INI作成.html・サンプル INI)。遊ぶだけならこちら |
| PC98PLAYER_261012_src.zip | ソースコード一式(EXE を含まない)。自分でビルドする人向け |
下の「Source code (zip / tar.gz)」は GitHub が自動で付けるもので、リポジトリの中身そのものです。通常は上の 2 つをお使いください。
PC98PLAYER.EXE は、公開しているソース(_src.zip)から Visual Studio 2026 でビルドしたものです。電子署名がないため、ダウンロードや初回起動のときに Windows の警告が出ることがあります(詳しくは README の「セキュリティソフトの警告について」)。
ver 261012 の主な変更
直したこと
-
FCB でファイルの一覧を作るソフト(ファイラーの FILMTN など)で、どのファイルも日付が 1980-02-29 になり、大きさもでたらめになっていた不具合を直しました。ファイルの属性も正しく返すようにしました。
-
同じく、ボリューム名の欄に最初のファイル名が出ていた不具合を直しました。
-
カーソルを出し入れするときに BIOS のワーク(1 行の走査線数)を読むソフトのために、その値を用意しました。
-
存在しないフォルダの中にファイルやフォルダを作ろうとしたときのエラーの種類を、実機の MS-DOS と同じにしました。
-
グラフィック LIO が、ポート A6h で切り替えた描画バンクに描くようにした。 プログラムが LIO の外で描くバンクを切り替えたとき、LIO は前のバンクに描き続けていました(隠しページに作った絵を GGET で取り出すソフトで、絵が出ない・真っ黒になる)。
-
LIO の GSCREEN で、表示の切り替えを sw(bit1 で消す)で行うようにした。 表示ページ 0 を指定すると画面が消えていました。
詳しくは同梱のCHANGELOG.mdをご覧ください。
Ver.261009
ダウンロード
| ファイル | 内容 |
|---|---|
| PC98PLAYER_261009.zip | 実行パッケージ(PC98PLAYER.EXE・取扱説明書・設定INI作成.html・サンプル INI)。遊ぶだけならこちら |
| PC98PLAYER_261009_src.zip | ソースコード一式(EXE を含まない)。自分でビルドする人向け |
下の「Source code (zip / tar.gz)」は GitHub が自動で付けるもので、リポジトリの中身そのものです。通常は上の 2 つをお使いください。
PC98PLAYER.EXE は、公開しているソース(_src.zip)から Visual Studio 2026 でビルドしたものです。電子署名がないため、ダウンロードや初回起動のときに Windows の警告が出ることがあります(詳しくは README の「セキュリティソフトの警告について」)。
ver 261009 の主な変更
追加したこと
- 386 の保護モードに対応しました。自分で保護モードに切り替えて 1MB より上のメモリを使うゲーム(「プロテクトメモリが確保出来ません」と出て終わっていたもの)が動くようになります。ページング・仮想 86 モード・VCPI/DPMI は未対応です。
- INI に
ExtMemMB=(拡張メモリの大きさ、既定 8MB)を追加しました。INT 1Fh のブロック転送にも対応しました。
直したこと
- プログラムから別のプログラムを起動したときに渡すプログラム名(argv[0])を、実機の MS-DOS と同じく呼び出し側が指定した名前そのままにしました。自分の名前を確かめるソフトが「正しい手順で起動されていない」と判断して終わる不具合を直しました。
- 200 ライン表示を、実機の BIOS と同じくグラフィック GDC の CSRFORM で作るようにしました。BIOS で 200 ラインにしたあと、ソフトが GDC を直接 400 ラインに戻したときに、画面が縦に 2 倍に伸びたままになる不具合を直しました。
- INT 18h AH=1Bh(KCG のアクセスモードの設定)に対応しました。
変えたこと
- MIDI の既定を「あり」(
MIDI=1)にしました。ゲームで GS 音源・MIDI を選べば、そのまま Windows の MIDI 出力で鳴ります。FM で聴きたいのにゲームが MIDI を選んでしまうときは、F11 →「S: 画面&サウンド設定」で MIDI を外すか、INI をMIDI=0にしてください。すでにある INI にMIDI=0と書いてある場合は、これまでどおりです。
そのほか
Trace=1の記録に、メモリの確保の結果・起動時の残りの空きメモリ・EMS/XMS の呼び出しを加えました(不具合の調査用)。
詳しくは同梱の CHANGELOG.md をご覧ください。