2018年の総括

全ての国産PCのエミュレータを開発しようと始めたこの活動も、今年で15年目となりました。
娘たちも、小学1年と幼稚園の年少さんになりました。
アメリカから従弟が帰ってきて娘たちが大はしゃぎで、ちょっとどたばたな大晦日です。

今年は新ネタとして、BUBCOM80、PC-9801RA、PC-98XA/XL/RLをリリースしました。
単純に機種名でカウントして、遂に101機種となりました。
15年にして、ようやくの大台ですね。次の大台に向けて、また地道に頑張ります。

本業が多忙すぎて(ドイツに3回出張したりしてました)余り進捗がありませんでしたが、
トピックとしては、やっぱりBUBCOM80でしょうか。
昨年のYISに続いて、実機解析等で守谷さんに多大なご協力いただきました。
名前は知っていても見たことはない、この界隈のUMAをご紹介できてうれしく思います。

年末に駆け足で作業を進めたPC-8801関係も、ようやくCD-ROMのサポートができました。
後は、年末年始の休暇中にPC-PR201の作業をして、一段落したいと思います。
最近の作業でエンバグしてしまった部分の修正もしないといけませんね。
ぽっぷるめいるで問題が出ているみたいですが、状況をまだ把握できていません(苦笑)

技術的には、ステートセーブの実装の整理を行いました。
従来、セーブとロードの処理が分れていたため、セーブしたファイルをロードできない、
という問題が発生し得た(そして実際に発生していた)のですが、
同じ処理でセーブ、ロードを行うようにすることで、信頼性を向上することができました。
Arnate.さんにご提案いただきながら、結局は別の実装にしてしまって申し訳ないです。

2019年ですが、結局進んでいないFM-16βの作業を進めたいと思います。
ハイレゾ98の方も、起動するようになったところで作業が止まってしまっていますので、
Windows 3.1が起動するようになる辺りまでは進めたいです。

来年も頑張りますので、また次の一年もお付き合いいただけましたら幸いです。



2018/12/28
Common Source Code Projectを更新しました。
2D/2DD/2HDのブランクディスクを作成、挿入する機能をサポートしました。

2018/12/27
yaPC-6001/6201/6401/6601/6601を更新しました。
疑似サブCPUのキー入力周りを修正しました。
キーの取りこぼしが改善しているのではないかと思います。

ePC-8801MAを更新しました。
起動時のCD BIOSのマッピングを再修正しました。
また、CD-DAのフェードイン、フェードアウトをサポートしました。

2018/12/18
Common Source Code Projectを更新しました。
i386コアを、MAME 0.204相当に更新しました。
また、SCSI CD-ROM周りの修正を行いました。

ePC-8001mkIISR, ePC-8801MA, ePC-98DOを更新しました。
主に、PC-8801MAのCD-ROM周りを修正しました。
MIRRORSやCDプレイヤーが起動することを確認できました。

MS-DOS Player for Win32-x64を更新しました。
i386コアを、MAME 0.204相当に更新しました。
INT 21h, AH=0Ahを実行したときに、CRを表示するよう修正しました。

2018/12/9
Common Source Code Projectを更新しました。
SCSI CD-ROMドライブに、NEC CD-ROM^2固有のコマンドを追加しました。

ePC-8801MAを更新しました。
PC-8801MAについて、ビデオアートボードとCD-ROMドライブをサポートしました。
X88000とM88/cdifの実装を参考にさせていただきました、ありがとうございます。

2018/12/5
Common Source Code Projectを更新しました。
MB8877のリセット処理を修正しました。
リセット後にフロッピーが読み込まれない場合がある問題が修正されているかと思います。

ePC-8001mkIISR, ePC-8801MA, ePC-98DOを更新しました。
カラーグラフィック画面のスキャンラインを、パレット0の内容によらず黒色で描画するようにしました。

eSMC-70, eSMC-777を更新しました。
X1センターの佐藤様から頂いたレポートを元に修正を行いました。
いつもありがとうございます、対応が遅くなってしまい申し訳ございません。
また、SMC-70で、640x400および160x100のグラフィック画面に対応しました。

2018/12/4
Common Source Code Projectを更新しました。
YM2608のソースを整理しました。
また、YM26081, YM2151を共存するための修正を行いました。

ePC-8801MAを更新しました。
HAL研究所製OPM搭載拡張ボード HMB-20 響をサポートしました。

2018/12/2-2nd
本日2回目の更新です、必要な方は再ダウンロードをお願いいたします。

ePC-8001mkIISR, ePC-8801MA, ePC-98DOを更新しました。
Bookworm様物置の情報を元に、描画処理を修正しました。多謝多謝です。

2018/12/2
ePC-8001mkIISR, ePC-8801MA, ePC-98DOを更新しました。
PC-8001/8801において、白黒グラフィック画面の描画処理を修正しました。
テキストアトリビュートの反転を白黒グラフィック画面に反映しないようにしています。

2018/12/1
ePC-8001mkIISR, ePC-8801MA, ePC-98DOを更新しました。
主にテキスト画面の表示周りを修正しています。
ePC-8801MA改の実装を参考にさせていただきました、多謝多謝です。

2018/11/28
Common Source Code Projectを更新しました。
3つ以上の軸およびハットキーを持つジョイスティックをサポートしました。
また、ジョイスティック入力をキーボードに割り当てる機能を改良しました。
方向キーを離したときにテンキーの5を入力する設定にしている場合、
方向キーの操作に対して、テンキーが押しっぱなしにしないようになっています。

2018/11/27
Common Source Code Projectを更新しました。
ジョイスティック入力をキーボードに割り当てる機能をサポートしました。
また、ウィンドウの1.5倍表示をサポートしました。

ePC-8801MA, ePC-98DOを更新しました。
PCキーをサポートしました。F11に割り当てられています。

2018/11/23
Common Source Code Projectを更新しました。
i386のリミットチェックにおいて、アクセスするデータ長を考慮するよう改良しました。
SCSIデバイスで、ACK後にREQを返すタイミングを調整しました。

yaPC-6001/6201/6401/6601/6801を更新しました。
秋川藤志様から頂いたパッチを取り込みました。
主にタイミング回りの修正をして頂いています、多謝多謝です。

ePC-8001mkIISR, ePC-8801MA, ePC-98DOを更新しました。
PC-8001/PC-8801において、スキャンライン毎にパレットが変更されるケースに対応しました。
EVER GREENのタイトル画面が正しく表示されるようになっています。

ePC-9801RA, ePC-98RLを更新しました。
PC-9801RA/PC-98RLの音源を、PC-9801-86に変更しました。

2018/10/14
Common Source Code Projectを更新しました。
ステートセーブ周りについて、ビッグエンディアン環境向けの修正をしています。

2018/10/13
Common Source Code Projectを更新しました。
仮想マシンのリリースが出来ていなかった不具合を修正しました。
SCSIデバイスにおいて、ACKが立ち上がってから0.1us後にREQをクリアするようにしました。
FMR-30でHDDからブートしなくなっていた問題が修正されています。
またデバッガにおいて、ブレークポイントの個数を8から16に増加しました。

2018/10/10
Common Source Code Projectを更新しました。
また、EmuZ-2800を更新しました。
SASI HDDが動作するようになっています。

2018/10/7
Common Source Code Projectを更新しました。
Artane.様のVM_TEMPLATEおよびcommon周りの修正を取り込みました。
また、シフトキー+数値パッドキーの同時押しの処理を改良しました。

2018/10/5
Common Source Code Projectを更新しました。
ステートセーブ周りの改良を行いました。
各デバイスのsave/loadの処理を一本化することで、実装時のミスを防ぐようにしています。

eFM8/7/77/77L4/77AV/77AV40/77AV40EXを更新しました。
Artane.様の2018/9/30リリースを取り込んでいます。

eJXを更新しました。
今更ながらですが、ステートセーブに対応しました。

2018/9/30
本業が多忙過ぎて、暫くこちらの活動が滞っていました。
まだ完全復活は遠いですが、溜まっている変更を一旦吐き出しておきます。
本格復帰は11月以降になるかと思います。

Common Source Code Projectを更新しました。
SN76489を使用する機種でステートロードに失敗する問題を修正しました。
SASIハードディスク周りの改良を行いました。
ハードディスクハンドラでVirtual98のHDDイメージをサポートしました。

デバッガを改良しました。
ファイル操作関係について、カレントディレクトリを使用するように戻しました。
ただし、ファイルダイアログで別のディレクトリを選択しても、
エミュレータを起動した時点のカレントディレクトリのままとなります。
チェックポイントを追加するコマンドとして、[{R,W,I,O}]CPを追加しました。
ブレークポイントと同様にレジスタ等の情報を表示しますが、そのまま処理を継続します。

eFM77L4のバイナリを提供するようにしました。
ソースは5/24に取り込んだ時のままです。

PC-98XAエミュレータのePC-98XAをリリースしました。
実はBUBCOM80と同時期には動いていたのですが、あっちを100機種目にしたかったので(苦笑)

eX1turbo, eX1turboZを更新しました。
2D/2DDの切り替えを、現在挿入されているイメージにあわせて自動的に行うようにしました。
他機種についても同等の修正を行っています。

2018/5/24
Common Source Code Projectを更新しました。
ハードディスクのイメージハンドラをサポートしました。
SCSI HDDをイメージハンドラを使用するよう修正しました。
SASI HDDのSPECIFYコマンドをサポートしました。
i8237のVERIFY動作を修正しました。
COMMON周りやMC6809などについて、Artane.さんの2018/5/10までの修正を取り込みました。
MB8877については、YISの動作に問題があったため取り込みを保留しています。

BUBCOM80エミュレータのeBUBCOM80をリリースしました。
これで遂に100機種目に到達です、Ураааааааа!!

eFM8/7/77/77AV/77AV40/77AV40EXを更新しました。
Artane.さんの2018/5/10までの修正を取り込みました。

eFMR-30, eFMR-50/60/70/80を更新しました。
EmuZ-2500を更新しました。
ePC-9801VX/RA, ePC-98XL/RLを更新しました。
eX1, eX1twin, eX1turbo, and eX1turboZを更新しました。
専ら、SASI I/FおよびSASI HDDの実装または再実装しています。

2018/5/6
Common Source Code Projectを更新しました。
ステートセーブのファイルをgzipで圧縮するようにしました。
i386コアを、MAME 0.197相当に更新しました。
uPD765Aについて、ディスクの密度をチェックするようにしました(多謝です>PC8801MA改)

デバッガでCPU以外のデバイスを操作できるようにしました。
詳細は、BLOGのこちらの記事をご参照ください。

ePC-8001mkIISR, ePC-8801MA, ePC-98DOを更新しました。
テキスト画面の、アンダー/アッパーバーを修正しました。

PC-98XLエミュレータのePC-98XLをリリースしました。
これで99機種目です。
100機種目はP6オフでお披露目するのを目標に進めています。

ePC-9801RAを更新しました。
NEC形式のEMSをサポートしました。
また、SASI/SCSI/IDE BIOSのバンク切り替えをサポートしました。

eX1, eX1twin, eX1turbo, eX1turboZを更新しました。
CAPS LOCK時にE+Rを押すと、カナロック=ONと誤認される問題が修正されています。

2018/5/5
MS-DOS Player for Win32-x64を更新しました。
i386コアを、MAME 0.197相当に更新しました。

2018/3/1
PC-98RLエミュレータのePC-98RLをリリースしました。
将来のPC-98RLの実装、とか言いつつ、一晩で動いちゃいました(苦笑)

ePC-9801/E/U/VF/VM/VX/RA, ePC-98DOを更新しました。
魔道物語1-2-3の画面化けが修正されています。

2018/2/28
Common Source Code Projectを更新しました。
i386コアのmov_r16_rm16命令でリミットチェックをするよう修正しました。
またデバッガ周りの修正を行いました。

PC-9801RAエミュレータのePC-9801RAをリリースしました。
将来のPC-98RLの実装のための、386機の実装テスト用です。

2018/2/27
Common Source Code Projectを更新しました。
i8237のバンクレジスタ、インクレジスタマスクの設定を修正しました。

ePC-9801/E/U/VF/VM/VX, ePC-98DOを更新しました。
アナログパレットの配列長が間違っていたのを修正しました。

2018/2/25
Common Source Code Projectを更新しました。
2D/2DDのドライブに2DD/2Dのディスクを挿入した場合の処理を改良しました。
メディアの種類で最大トラック数を決めていたのを、ドライブの種類で決めるようにしています。
これに従い、ドライブの種類を曖昧にしていた機種について、ドライブの種類を確定したり、
ドライブの種類を切り替えられるようにしました。

EmuZ-80B, EmuZ-2200では、2Dと2DDを指定できるようにしました。
また、CPUのクロックとして、4MHzと6MHzを指定できるようにしました。

ePC-100でも、2Dと2DDを指定できるようにしました。
それに伴い、I/Oポートの22hにあるディップスイッチの値が変わるようにしました。

eFMR-30, eFMR-50/60/70/80では、
I/Oや疑似BIOSでの2DD/2HD切り替え、メディアの種類の取得をサポートしました。

EmuZ-2800でも、I/Oでの2DD/2HD切り替えをサポートしました。

eX1turbo, eX1turboZでも、I/Oでの2D/2DD/2HD切り替えをサポートしました。
また、ディップスイッチで、2D/2HDに加えて、2DDを指定できるようにしました。

PC-98LT/HAだけ、まだハード的な2DD/2HDの切り替えがうまくいっていません。
この機種だけ、まだドライブの種類を曖昧にしたままとなっています。

2018/2/23
Common Source Code Projectを更新しました。
uPD765AのST3の値を修正しました。

ePC-9801/E/U/VF/VM/VX, ePC-98DOを更新しました。
DMACのTC信号をFDCに接続するよう修正しました。

2018/1/9
eFM16βのページを更新しました。
取り敢えずCP/M-86やF-BASIC86がブートするようになりました。

2018/1/3
eFM16βのページを更新しました。
ブートエラー画面が出るところまで進みました。

2018/1/2
eFM16βのページを作成しました。
システムエラー画面が出るところまで実装が進みました。

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