2012年の総括

全ての国産PCのエミュレータを開発しようと始めたこの活動も、今年で9年目となりました。
娘も順調に成長しておりまして、(以下親ばか発言なので割愛)
本業の方では、年明けに昇進したこともありまして、非常に多忙な1年でした。
開発工数を確保するのも困難な年となりましたが、まあまあ、ぼちぼちの成果だったかと思います。

今年は、主にPC-98DOとPC-8801MAの実装を行いました。
その他、CP/M PlayerやMS-DOS Playerなど、過去に開発したソフトの改良を行いました。

一番のトピックは、やはりPC-8801MAの実装でしょうか。
元々はPC-98DOというネタ機種のための実装でしたが、PC-8801MAとして独立させて以降は、
それなりに実用的なものになってきたのではないかと思います。

技術的には、イベントマネージャやCRTCの改良が一番大きかったかと思います。
従来の実装では、フレームレートなどのタイミング管理は全て固定されてしまっていましたが、
CRTCのパラメタ設定に応じて、内部のタイミングを動的に変更できるようになりました。
また、CPUの1命令毎にイベントの発生が確認できるようになり、短い時間で発火するイベントの
タイミング精度が大きく向上しました。
これらは、PC-8801やX1turboの200/400ラインモードの変更など、内部的にタイミングが変わる
機種の再現性向上に大きく貢献しています。

今年も色々とメールをいただきましたが、忙しさにかまけて、返事が滞ってしまいました。
非常に申し訳ございません。
おいおい時間を作りますので、もう少しお待ちください。m(_ _)m

来年の展望ですが、もう向こう数年は工数の確保が厳しそうです。
FM-16βとかB-16とかJ-3100とか、作業中で放置してしまっている機種も多いですが、
何とか年1〜2機種程度は進めていきたいと思っております。
来年も頑張りますので、また一年お付き合いいただけましたら幸いです。



2012/12/29
コモンソースコードプロジェクトを更新しました。
uPD765AのREAD DIAGNOTICSの実装を修正しました。
ePC-8801MAで、ウルティマ4が動作するようになっています。

ePC-8001mlIISRおよびePC-Engineをリリースしました。
どっちも他機種の実装の再利用です(苦笑)

eFamilyBASICを更新しました。
特定のプログラムで、PPUがクラッシュする不具合を修正しました。

2012/12/23
MS-DOS Playerを更新しました。
フロッピーディスクへのRAWライトをサポートしたり、その他色々修正しています。

2012/11/28
CP/M Player Win32コンソール版を更新しました。

2012/10/25
ePC-8801MA, ePC-98DOを更新しました。
V1(S)モードでのDMA転送時のウェイト値を変更しました。

2012/10/23
コモンソースコードプロジェクトを更新しました。
HuC6280, i286, i386を、MAME 0.147ベースに更新しました。

eFamilyBASICを更新しました。
ジョイスティックが動作していなかった不具合を修正しました。

ePC-8801MA, ePC-98DOを更新しました。
V1(S)モードでのVRAMのウェイトを変更しました。

eX1twinを更新しました。
PCエンジン部分を、MESS 0.147ベースで修正しています。

2012/8/23
MS-DOS Playerを更新しました。
CPUコアを、i286相当からi386相当に差し替えました。

2012/8/20
QEMU/9821を更新しました。
主に画面周りを中心とした、雑多な不具合を修正しています。

2012/8/18
ePC-8801MA, ePC-98DOを更新しました。
テキストアトリビュート周りを修正しました。

ePC-9801/E/FM, ePC-98DOを更新しました。
GDCがスタートしていないときに画面を表示しないように修正しました。

コモンソースコードプロジェクトを更新しました。
OPN/OPNAを使用した機種で、mamefm.dll(V1)をサポートしました。
また、画面表示に使用するAPIを、GDI/Direct3D9から選択できるようにしました。

2012/3/20
ePC-8801MAを更新しました。
一部のソフトで音楽のテンポが遅くなる件の修正を行っています。

コモンソースコードプロジェクトを更新しました。
Direct3D9のバイナリでビデオ録画に失敗する不具合を修正しました。

EmuPIAのページに、ディスク版T-BASICなどのスクリーンショットを掲載しました。
画像をお送りくださいましたzak様、ありがとうございました。

2012/3/15
ePC-8801MAを更新しました。
データレコーダをサポートした他、細かい部分を色々修正しています。
CPUクロック切り替え後、リセットで即反映できるようになったのは地味に便利かも。

2012/3/6
EmuPIA, EmuPIA7を再更新しました。
zak様よりお送りいただいたパッチを取り込んでいます。
主にPASOPIAの画面周りなど、あちこちの不具合を修正していただいています。

ePC-8801MAを更新しました。
バスマウスのサポートを行っています。
また、KOB-softのソフトやMISTY BLUEが動作しない不具合を修正しました。
アルファやRST音楽ディスクのテキストアトリビュートの不具合も修正しています。

コモンソースコードプロジェクトを更新しました。
リソースリークの対策や、D88マルチボリューム対応の修正など、色々修正しています。

2012/2/22
コモンソースコードプロジェクトを更新しました。
全機種について、メモリリークの対策を行いました。
一部機種について、デバイス開放時に、開放済みな別デバイスを参照しているのを修正しました。

その他、ePC-8801MAでハイドライド3が動作しない件の修正を行いました。
PC-98DOで修正済みでしたが、そのためのパッチがPC-8801MAで有効になってませんでした。

2012/2/21
さっき更新したばかりですが、ePC-8801MAを再更新しました。
PC-8801mkII FRのデモを基準に、メモリウェイトを微調整しています。

2012/2/20
ePC-8801MAを更新しました。
400ラインモードで、グラフィック画面が白一色だったのを修正しました。
また、メモリウェイト周りの実装を変更しました。
メモリウェイトについては、今後更に調整する予定です。

また、コモンソースコードプロジェクトを更新しました。
スクリーンマネージャをDirect3D9ベースで再実装したり、
マルチボリュームのD88形式のディスクイメージをサポートしたりしています。

#そろそろ、PC-8801エミュレータとしては実用的になってきましたでしょうか。

2012/2/17
ePC-8801MAを更新しました。
PC-8801FAのデモが動かなくなっていた不具合を修正しています。

2012/2/16
ePC-8801MAをリリースしました。
ePC-98DOのPC-8801側を単体バイナリとして独立させたものです。
また、スタートレーダーが途中で停止する問題を修正しています。

ePC-98DOを更新しました。
ePC-8801MAリリースに伴い、PC-98DOで本来サポートされていない機能を削除しています。

コモンソースコードプロジェクトを更新しました。
Z80コアをMAME 0.145ベースで再実装しています。
他の機種で問題が発生しているようでしたら、ご連絡いただけますと幸いです。

2012/2/13
ePC-98DOを更新しました。
アルファでサウンドが鳴らない問題を修正しました。

コモンソースコードプロジェクトを更新しました。
MZ-2500がフリーズしてしまう問題を修正しました。

2012/2/11
ePC-98DOを更新しました。
メルヘンヴェールやマンハッタンレクイエムなどの表示上の問題を解決しました。
また、スタートレーダやテグザーが起動しない問題を解決しました。

コモンソースコードプロジェクトを更新しました。
8255において、モード変更時に各ポートのラッチをクリアするように修正しています。
Z80の修正は、デバッグ作業時の利便性のためのものです。

2012/2/8-2
ePC-98DOを更新しました。
Ys3のテキストマスクの問題が再発していたのを修正しています。
AM3:15にアーカイブを差し替えましたので、再ダウンロードをお願いします。
AM3:15にアーカイブを差し替えましたので、再ダウンロードをお願いします。

2012/2/8
ePC-98DOを更新しました。
400ライン表示時にクラッシュする問題がありましたので、取り急ぎ修正版です。

コモンソースコードプロジェクトを更新しました。
キーを押したままウィンドウを切り替えると、キーが押されっぱなしになってしまう
問題を修正しています。

2012/2/7
ePC-9801, ePC-9801E, ePC-98DOを更新しました。
テキスト画面のセミグラフィックを正しく表示できるように修正しました。
また、PC-98DOの98モードで、8MHz時にディスクがブートしない不具合を修正しました。

2012/2/6
ePC-98DOを更新しました。
実機の仕様外ですが、OPNA音源をサポートしてしまいました。
その他、ロマンシアやソーサリアンなどの画面表示に関する不具合対策や、
TELNET MUSIC-BOXで音が鳴らない不具合対策などを行っています。

コモンソースコードプロジェクトを更新しました。
OPN/OPNA/OPMについて、IRQの発生処理を弄っています。
TELNET MUSIC-BOXの不具合関係ですが、他に悪影響が出ていましたらご報告ください。

あと、MZ-2500でマウスが動かなくなっていたのも修正しています。
OPNのI/Oポートが出力設定のときのリード動作を先日弄ったときにエンバグしてたみたいです。

2012/2/2
ePC-98DOを更新しました。
信長の野望 武将風雲録や夢幻戦士ヴァリスが動作するようになりました。

ePC-9801, ePC-9801Eを更新しました。
マウス割り込みの周波数を指定するI/Oポートを無効にしただけです。

コモンソースコードプロジェクトを更新しました。
Z80コアで、$DD/$ED/$FDが無意味に命令頭についていた場合の不具合を修正しています。
PC-98DOのヴァリス絡みの修正ですが、他の機種でも何か動くようになっているかもしれません。

2012/1/31
ePC-98DOを更新しました。
キーボードやRTC周りの地味な修正のみです。

コモンソースコードプロジェクトを更新しました。
PC-98DOのためにuPD4990Aをサポートしています。

2012/1/30
ePC-98DOを更新しました。
PC-8801モードのテキストアトリビュートを再修正しています。
また、ディスク交換に関する不具合を修正しました。
AM2:30に一度再更新していますので、必要な方は再ダウンロードをお願いします。

2012/1/29
ePC-98DOを更新しました。
PC-8801モードのIRQ周りやテキストアトリビュートを修正しました。
IRQの修正で、幾つかのソフトが新たに動作するようになっているかもしれません。

2012/1/27
コモンソースコードプロジェクトを更新しました。
一部のD88形式のディスクイメージを認識しない問題を修正しました。
また、イベントマネージャについて、メインCPU上でクロック数の消費が大きい命令を
実行した場合に、サブCPU側のイベント精度が悪くなる問題を修正しました。

2012/1/25
ePC-98DOを更新しました。
PC-8801モードで、シルフィードが動作するようになった他、キー入力の修正をしました。
また、PC-9801モードで、マウスが動作するようになりました。

eSC-3000を更新しました。
拡張ユニットであるSF-7000をサポートしました。

コモンソースコードプロジェクトを更新しました。
イベントマネージャの大幅な修正を行っています。

EmuZ-3500の作業報告です。
フロッピードライブが動作して、EOSがブートするようになりました。

2012/1/18
ePC-98DOを更新しました。
ぎゃわんぶらあ自己中心派や日本語BASICなど、幾つかのソフトが動作するようになりました。

コモンソースコードプロジェクトを更新しました。
主にFDC周りの修正が中心です。

2012/1/11
コモンソースコードプロジェクトを更新しました。
HD46505,uPD7220から、イベントマネージャ側のタイミング設定を動的に変更するようになっています。
(フレームレートやスキャンライン数など)

これを用いて、PC-9801E/VM, PC-98DOやX1turboで、CRTの200/400ラインを切り替えた場合に、
しかるべきタイミングで動作するようにしました。
また、これらのCRTCを使用した各機種について、CRTの水平周波数の定義を追加しています。
各機種のページの更新はまた後日にでも。

2012/1/7
ePC-9801E, ePC-9801VM, ePC-98DOを更新しました。
CPUクロックの切り替えをサポートしています。

コモンソースコードプロジェクトを更新しました。
イベントマネージャが、タイミング変更を各デバイスに通知する処理を修正しています。

2012/1/7
ePC-98DOを更新しました。
PC-8801モードを色々と修正しています。
コモンソースコードプロジェクトの更新もそれに付随するものです。

2012/1/5
新年あけましておめでとうございます。

コモンソースコードプロジェクトを更新しました。
QC-10でCP/M Plusが動くように直したつもりで、また動かなくなっていたのを修正しました。
また、HD46505を使っているマシンが根こそぎ全部動かなくなっていた不具合を修正しています。
(前回イベントマネージャ周りを弄ったときに、エンバグしてしまっていました)