作りたいものに妥協しないために、会社を興してまで完成させた作品です。うれろー、うれろー。

2016年02月11日

MB8877とT3444Aのタイミング

MB8877とT3444Aのタイミングを再々修正しました。
今度こそ大丈夫な筈、です、多分。

X1turboのアルファにおいて、オープニングデモの銃声が2重に再生されたり、
ポリスロボットにつかまった後にCGが化ける問題が解決しています。
同じくX1turboのイース2のオープニングのタイミングは、もうちょっとかな?

MZ-80KのSP-6010の起動も高速化しています。
むしろ実機より高速っぽいですが、これはモータが回転し始めて、回転が安定して
READYが返るまでの時間が入ってないのが原因かと思います。
次はこの辺の改良を進めたいですね。

私のFDCの実装では、ヘッドの現在位置を意識してタイミングを取得しています。

具体的には、最後にDRQが立ったときのヘッドの位置と仮想マシン内の時間を控えておいて、
そこからの経過時間と、ディスクの回転数、トラック長から、現在のヘッド位置を算出します。
また、インデックスホールを先頭に、トラック全体のデータの並びを生成することで、
各セクタのIDやデータが、トラック上のどの位置にあるかを取得します。

例えばREAD/WRITE SECTORでは、現在のヘッド位置から、アクセスするセクタの位置までの
ヘッドの移動量を算出して、アクセス開始までの待ち時間を決定するという塩梅です。

ここまでは従来からやっていたのですが、じゃあ何が問題だったかと言いますと。
最後の最後で、セクタの位置の配列の引数が間違っていて、別のセクタまでの移動量を元に
タイミングを算出していたという体たらくでして(苦笑)


この方式、各セクタのIDやデータの、トラック上の位置を正確に取得できるかが重要ですが、
現在のディスクイメージでは完璧な実装にならないのが悩みの種です。

例えばD88フォーマットでは、トラック長やセクタ間のギャップ長の情報がありません。
標準的なフォーマットであれば、規定値を元に算出できるのですが、
モータの回転数を落としてフォーマットすることで、トラック長を大きくしてやって、
その分セクタを余分に突っ込んでいるようなものもあったりする訳で。

さらに2D形式などのベタイメージだと、セクターのIDの順番に格納されていますので、
セクターの並び順すら確実ではなかったりします。

将来的には、KryoFluxのRaw Stream形式をそのまま扱えるようにしたいのですが、
まずはKryoFluxを購入するところから始めないといけませんね(を
posted by 武田 at 01:26| Comment(8) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2016年01月04日

ブラボー!おお・・・ブラボー!!

http://www.geocities.jp/upd780c1/pc-8001/note_c80.html

ORANGE...だと?

マイナー専としても片思いのライバルとしても、これは負けてられん、
だったらこっちはMARVEL 20000だー、と在庫を引っ張り出してきました。

基板を改めてみてみたら、ROM-F8とかROM-F0とか…
どうみてもApple][クローンです、本当に(ry

#いや、そうらしいとは聞いてたんですが(苦笑)
posted by 武田 at 21:53| Comment(5) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2015年12月31日

2015年の総括

※ 本サイトに掲載したものと同じ内容です。

全ての国産PCのエミュレータを開発しようと始めたこの活動も、今年で12年目となりました。
unofficial nesterの開発から数えると、丸15年はエミュレータの開発に関わっていることになります。
来年には40歳になるのですが、これまでの人生の内、もうかなりの割合になってきました。
今後もライフワークとして続けていけるといいですね。

上の娘が幼稚園に通い始めました。
お絵かきが大好きなのですが、ぐちゃぐちゃ〜、から、写実主義の萌芽が見られるようになったと思うと、
急速に抽象化、キャラクター化が進んで行って、1年間の絵の変遷を見てると、とても面白いです。
下の娘も1歳になって、随分と自己主張が強くなってきました。
ものすごい健啖家で、驚くこともしばしばです。

今年は新ネタとして、SMC-777, JR-100, BASIC Master Jr, MZ-3500, EX-80をリリースしました。
MZ-3500は、7年以上も開発中のままだったのですが、ようやくリリースに漕ぎ着けることができました。
MZ-40KはOh!石さんがシミュレータを公開されていますので、後はMZ-6550だけですね。
それ以外は小ネタばかりですが、いい息抜きにもなって、実装していて楽しかったです。
各デバイスの再現性向上の役にも立ちますので、今後も時々この手の小ネタをやってみたいと思います。

今年の技術的なトピックは、FDC周りの改良でしょうか。

MB8877/uPD765Aでは、タイミングの精度向上、物理フォーマットコマンドの対応を図りました。
Z80SIOのタイミングの精度向上とあわせて、MZ-2500の勝手移植のソーサリアンや、
イース3のユーザディスク作成モードが正常動作するようになりました。
ともに、MB8877のIRQ/DRQが立つタイミングにあわせて、その合間にFM音源を叩くことで、
BGMを鳴らしながらのディスクアクセスを、DMAなしで実現しています。
これをサポートするために、MB8877やZ80SIOのタイミングの精度向上には随分と苦労しました。

また、東芝の最初期のFDCであるT3444Mを実装して、MZ-80Kのフロッピードライブ対応をしました。
T3444Mのエミュレーションは、もしかしたら、この界隈では初かもしれません。

また、プリンターのサポートも、技術的には大きなトピックです。
プリンターの仮想マシン部と、ビットマップやフォントの操作などの環境依存部の分離に腐心しました。
現状はSHARP MZ-1P17のみですが、2016年にはNEC PC-PR201のサポートもしたいと思います。

今年も多くの方にご協力いただきました。

MB8877/uPD765A/Z80SIOの再現性向上については、X1センターの佐藤様にお世話になりました。
T3444Mの実装と、MZ-80Kのフロッピードライブ対応については、Oh!石様、Enri様にお世話になりました。

えむけい様、Jason Hood様、sava様には、MS-DOS Playerの修正パッチをご提供いただきました。
V-TEXT対応、DOSエクステンダー対応など、別物といっていい程に実用性を向上することができました。

PI.様は、拙作のePC-8801MAベースで、XM8を公開されました。
XM8での修正を、私の方にも取り込ませていただき、PC-8801の再現性を向上することができました。
PI.様は私にとってお師匠様でして、私のソースを使っていただけたのは大変光栄です。

Artane.様には、FM-7/77/AVのドライバをご提供いただきました。
また、Artane.様とのコードの統合を進める過程で、VM, EMUクラスとOS/環境依存の処理の分離、
VC++以外の開発環境の対応など、共通部分の改良を大幅に進めることができました。
この点も、技術的に大きなトピックですね。

不具合報告、ご要望を頂いた方々もあわせ、お世話になりました皆様方に厚くお礼申し上げます。

日頃、多くの方にお世話になっているご恩返しという訳ではありませんが、ご要望に応えられるよう
今年は色々頑張ってみました。
MZ-80Kのフロッピードライブ、グリーンモニタ、PCG、ソフトウェアキーボード対応、
MZ-1500の縦画面対応、MZ-2500の勝手移植のソーサリアン、イース3の対応、
SMC-777, EX-80の実装、PC-9801シリーズの14音源対応など、結構な成果になったかと思います。
今後も、出来るだけ対応していきたいと思いますので、ご要望のある方は是非お知らせください。

本業もプライベートも多忙な一年でしたが、こうして振り返ってみると、機種数的にも技術的にも、
非常に実りの多い1年になりました。

2016年ですが、本業の方が、今年に比べても、より多忙になる見込みです。
どこまで作業を進められるか不安ですが、今度こそ、FM-16β, B-16, N5200, J-3100などの積みネタを
消化していきたいと思います。
目先の作業としては、Artane.様とのソースの統合作業、MZ-1P17のMZ/X1シリーズへの横展開、
PC-PR201のサポートを予定しています。
今年で機種数も80機種を超えましたので、100機種を目指して、小ネタもぼちぼち進めたいですね。

来年も頑張りますので、また一年お付き合いいただけましたら幸いです。
posted by 武田 at 15:40| Comment(1) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2015年12月30日

MZ-1P17

SHARPの漢字サーマルプリンタMZ-1P17をサポートしました。
現状はMZ-2500のみですが、今後MZ/X1シリーズに横展界していく予定です。

MZ-2500のPersonal CP/Mのハードコピーを印刷した結果はこんな感じです。

151230-1.png

何年もやるやる詐欺になってましたが、この年末になって漸くサポートできて一安心です。
来年は、NECのPC-PR201など他のプリンタもサポートできればいいのですが。

(2015/12/31 15:45追記)
アンダーライン、半角ひらがなモード、カラーモードをサポートしました。

151231-1.png 151231-2.png

MZ-1500対応ですが、MZ-2モードの実装が必要なので、ちょっと時間が掛かるかもです。
MZ-700のプロッタも対応したいのですが、技術資料ってどこかないでしょうか?
posted by 武田 at 15:15| Comment(4) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2015年12月15日

EX-80とTK-80BS

151215-1.png 151215-2.png

EX-80/TK-85関連の資料を譲っていただいたのと、
EMUクラスとWin32依存処理の分離の作業の動作確認込みで、
最近はEX-80やTK-80BSなどのワンボードマイコン系を色々作業していました。

久々にやってみると、ワンボードマイコンも面白いです。
在庫も色々あるし、暫くこちらを中心に攻めてみるのもいいかもしれないです。


今年も残り僅かで、更に新機種をやる余裕があるかどうか分かりませんが、
目先でやりたい作業を順不同で書きなぐってみると、

FM16β, FM-11, B16/32, if800モデル10, N5200/05mkII, LKit-16, SM-B-80TE, X-07+X-720,
JR-200, JR-800, PASOPIA5, FX-9000P, CEFUCOM-21, MARVEL2000, QEMU/9821A

辺りでしょうか。年内は一先ずFM16βを優先的に。
N5200やB16/32なんかも、技術資料がありましたらご提供いただけると助かりますです。

#EX-80をリリースして、これで機種名の数だと81機種、バイナリ数だと87個になりました。
#もう数年で100機種に到達したら、何かお祝いしたいなーとか思ってます(を
posted by 武田 at 03:21| Comment(6) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2015年09月08日

MZ-80K+MZ-80FIO+MZ-80FDと、BASIC Master Jr

150908-1.png

ご要望いただいておりました、MZ-80K+MZ-80FIO+MZ-80FDを実装しました。

MZ-80FIOは、東芝のT3444MというFDCを使用しています。
これがネット上では中々技術資料が見つからなくて困っていたのですが、
Oh!石さんから資料をご提供いただくことができました。
また、MZ-80FIOそのものは、Enriさんのサイトに解析資料がありましたので、
思いのほか短期間で実装を完了することができました。多謝多謝>お二方。

150908-2.png

BASIC Master Jrも実装してみました。
取り敢えずブートして簡単なプログラムが動くところまでですが、
おいおい完成度を向上させていければと思っています。
posted by 武田 at 00:18| Comment(0) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2015年08月28日

JR-100

150828-1.png

何となく、小規模なマシンの新規実装をしたいなーと思っていたところに、
たまたまEnriさんのサイトを見てまして。
CPUとVIAとCRTCとメモリだけかー、シンプルな構成だなーと思ったら、
つい発作的に実装してしまいました(を

もう何機種か、こんな感じで実装するかもしれません。
いっそバイナリ100個でも目指してみるか。
posted by 武田 at 01:16| Comment(0) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2015年08月21日

SMC-777

一部筋からご要望がありまして、盆休みに実装してみました。

WinSMCという良く出来たエミュレータが既にあるのですが、
こちらはデバッガーが充実しててソフト開発に便利だよーということで。

実機付属のハードウェア解説書と回路図集を持ってたので、実装は割と楽でした。
回路図が小さすぎて、拡大鏡が手放せませんでしたが(苦笑)

将来的にはSMC-70の対応もしたいと思っています。
技術資料をお持ちの方がいらっしゃいましたら、ご協力いただけますと幸いです。
回路図が掲載されてる月刊I/Oは確か持ってたかな?

150821-1.png150821-2.png150821-3.png150821-4.png

Common Source Code Projectでリリースしているエミュレータの実行ファイルも、
いつの間にやら82個になっていました。
PC-6001/6601とかMSXとかFM-7/77/AVとか、他の方に実装して頂いた機種もありますし、
PASOPIA7のLCD付とか、PC-8201の海外版とか、細かい違いで複数バイナリとかありますけど、
いつの間にやら随分と増えたものです。
どうりで全ビルドするのに時間がかかる訳ですね(苦笑)

SasajiさんのBML3とか、韓国の方が実装されたGoldStar FC-100とか、
まだ統合できてないプロジェクトもありますが。
多くの方に使っていただけるのは、本当にうれしい限りです。
昔野望のページに書いた、エミュレータのスケルトンとして、漸く実用的になってきたのかなと。

そういえば、Common Source Code Projectという名前ですが。
本来は、それまで実装してきたエミュレータを、単一のソースに統合するというプロジェクトの
名前でしかなかったんですよ。
ガンダムの統合整備計画とかと同じのりで、ちょっと厨二病的な。

それが、どういう訳か、エミュレータのニュースサイトで、Common Source Code Projectが
エミュレータの名前として紹介されてしまいまして、まあそのままでいいやーと。

私には割と良くある話です。Unofficial nesterのときとか(笑)
posted by 武田 at 01:26| Comment(5) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2015年05月28日

MB-H70のVDP周辺の写真

MB-H70のVDP周辺の写真です。
遅くなってしまい申し訳ありません。

IMG_6116.JPG

元画像はこちらにアップしてあります。
http://homepage3.nifty.com/takeda-toshiya/00tmp/IMG_6116.zip

#板金を固定しているネジがなめちゃってて、ここまでしか分解できませんでした。
posted by 武田 at 21:19| Comment(4) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2014年12月23日

ステートセーブ対応

例年だと、年末年始に何か新ネタを仕込むところなのですが。
この年末年始は、ステートセーブ対応に終始しそうです。

今晩までのリリースで、MZ-80B/2500, PC-8001mkIISR/8801MA, PCエンジンに対応しました。
年内にはMZ-2200も対応する予定です。

色々不具合があるかと思います。
よろしければ、いじめテストにご協力ください。

#今年はそもそも新作が殆どありませんでしたね。
#98U/VFはifdefを弄った位だし、実質PX-7だけという(苦笑)
posted by 武田 at 02:30| Comment(23) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする
まるくん、がんばれ、ちょうがんばれ