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

2013年07月27日

X1などのタイミング調整

ここ最近は、主にX1のタイミング調整をやっていました。
以下、仮バイナリです。(PC-88とMZ-2500はおまけ)
http://homepage3.nifty.com/takeda-toshiya/00tmp/pc88_x1_mz25.zip

FDCで、データ転送やマルチセクタ時の次のセクタの発見に掛かる時間を、
データ密度と回転数から求めるようにしたり、
(プリアンブル、ポストアンブルを考慮してないので、やや不正確)
Z80DMAで、バイト転送モード以外でちゃんとCPUにバスを要求するようにしたり、
転送に掛かったクロック数だけCPUを止めてやったり、
VRAM/TVRAM,PSG,サブCPUにアクセスする際にウェイトを掛けてやったり、

かなり実機に近いタイミングで動くようになったんじゃないかと思います。
アークス2のオープニングも、変なパッチなしで動作するようになりました。

MB8877だけでなく、uPD765Aも同様の修正をしていますので、
PC-8801の方もそれなりに改善されてるんじゃないかなと思います。

#X1のVRAMウェイトは、例によってX1センターの佐藤様に情報を頂きました。
#多謝多謝です。
posted by 武田 at 02:22| Comment(0) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年07月20日

PC-88とX1のプチ作業中

暫くお休みしてましたが、PC-88とX1を少々作業中です。
週末にはリリースできると思いますが、取り敢えずの仮バイナリです。
http://homepage3.nifty.com/takeda-toshiya/00tmp/x1turbo.zip
PC-88は、主にメモリウェイトやCRTCの垂直同期周波数の修正を行いました。
以下のサイトの情報を参考にさせていただきました。(多謝多謝>くれゆに様)
各モードとも、実機計測結果にかなり近い値が得られるようになっています。
http://www7b.biglobe.ne.jp/~crazyunit/pc88.html

後はVRAM周りのウェイトの調整ですね。
こちらは情報がないので、自分で実機調査しないといけないのですが、
それだけの工数が取れるかどうか(苦笑)

X1の方は、サブCPUやキーボードのCPU内蔵ROMを使用したときの問題の修正です。
非X1turboなサブCPUを使用している場合にカセットの検出に失敗する件や、
X1turboにX1仕様のキーボードが繋がったときに入力できない問題を修正しました。
また、80C48のクロック管理の問題から、キーリピートが速くなっていた件も、
これで解決しているのではないかと思います。
また、擬似サブCPUを使用する場合も、キーリピートの速さが内蔵ROM使用時と
同等になるように再調整しました。

#御心当りの方、よろしければ評価お願いいたします。m(_ _)m

PS.いっさくじつ、みそじからななつあまりました。おーのー。

(2013/7/23 2:20追記)
すみません、仮バイナリのURLが間違ってました。
今晩中にリリースしますので、メインサイトからダウンロードをお願いいたします。

(2013/7/25 2:20追記)
x1centerの情報をもとに、テキスト画面の縦倍・横倍表示の実装を修正しました。
(多謝多謝>佐藤様)
また、昨晩の修正で、設定をiniファイルに保存するようになっています。
posted by 武田 at 01:29| Comment(0) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年05月09日

X1のサブCPU

MZ-2200はちょっとお休みして、X1のサブCPUの改良中です。

従来のX1エミュは、Z80から見た動作を再現するような実装をしていましたが、
細かい挙動の違い(特にキー割込み)が不具合の元になっていました。

そこで、サブCPUとキーボードの周辺回路について、CPUレベルからガチンコで
エミュレーションするように改良しています。
(サブCPU、キーボードの内蔵ROMイメージが無い場合は従来動作をします)

8255のモード1,2のハンドシェイク周りの実装に梃子摺りましたが、
一通りは動作するようになりましたので、バイナリだけ仮公開しておきます。
80C48/80C49の内蔵ROMを吸い出せる方はお試しください。

http://homepage3.nifty.com/takeda-toshiya/00tmp/x1turbo.zip

X1turboのキーボードのモードA/Bの切り替えもサポートしています。
また、テキスト画面の縦2倍表示の不具合も修正しています。

CPUの内蔵ROMのファイル名は、
ノーマルX1の場合は、SUBROM.X1, KBDROM.X1、
X1turboの場合は、SUBROM.X1T, KBDROM.X1T、としてください。

※ サブCPUについては、データレコーダ内蔵の機種のものを想定しています。
外付けのCZ-8RL1と接続するタイプのROMの動作確認はできていません。

他の機種の作業もありますので、正式リリースはまた後日にでも。

#多大なご協力、多謝多謝>佐藤様
posted by 武田 at 03:26| Comment(3) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年04月09日

MZ-1M01対応の作業状況

音沙汰ないけど、作業は細々と進めてますよーというご報告。
#主にOh!石さんと常岡さん向け。

IPLでCMTから1段目のローダをロードして、
ローダに処理を移して、
Z80側と8088側のプログラムをロードして、
Z80PIOでハンドシェイクして8088側のプログラムを転送して、
Z80と8088でそれぞれロードしたプログラムに処理を移して、
8088から何かコマンドを受信して、
Z80がそれに対する応答が出来ずに止まってしまう、

というところまで処理が進むようになりました。
取り敢えず、Z80から8088への転送は問題なさそうですね。
8088からZ80への転送の問題か、Z80側のコマンド実行の問題か。

楽観的な予想では、あと1週間くらいの工数を投入すればいけそうですが、
それだけの工数を確保できるのが何時になるかが微妙です(苦笑)


(2013/4/12 0:10追記)
Z-80PIOの双方向モード時のハンドシェイク周りを修正してたら、
何か動くようになっちゃいました(を
デモ動画をニコニコ動画の方にアップしてみましたのでご参照ください。



コモン側を結構弄ってるので、正式リリースは他機種の動作確認後にでも。
仮バイナリはこちらです。
http://homepage3.nifty.com/takeda-toshiya/00tmp/mz2200.zip

その他、CMTでMZT形式を読み込むとき、アトリビュートが01hの場合のみ、
直接メモリにロードするように変更しました。
BASICのプログラムなどは、内部的に波形データを生成しています。

EmuZ-700などでは、MZTを波形データに変換するのは以前からやっていたのですが、
MZ-80B/2000ではうまくロードできないためオミットしていました。
今回、BASIC-16のテープの波形整形していて気付いたのですが、
 ピーギャー(インフォメーションブロック)、
 無音1秒弱、
 ピーギャー(データブロック)
の、無音の部分がなかったのが原因だったみたいです。
posted by 武田 at 23:59| Comment(4) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年03月23日

eFP-200リリースしました

CASIO FP-200をサポートしてみました。

SERVICE MANUALを見つけたのが切っ掛けだったのですが、
最近MESSの方でもKale氏が作業してたみたいですね。
トリガー同じだったかも(苦笑)

明日は朝が早いので、スクリーンショットだけペタペタ。

130323-1.png130323-2.png
初回起動時はRESETコマンドで要メモリ初期化。

130323-3.png
RTCとしてRP-5C01が乗ってます。

130323-4.png130323-5.png
グラフィック周り。テキストとグラフィックの切り替えはちょっと面倒です。

130323-6.png
簡易表言語CETLを起動してみたところ。
posted by 武田 at 23:56| Comment(0) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年03月16日

EmuZ-2200試作

EmuZ-2000 TF-Editionが配布停止になってるので、ちょっと作ってみました。
名前が被らないように、2200ということで(苦笑)

EmuZ-2500からいらないデバイスを削って、メモリとCRTC周りだけ実装しただけなので、
実作業時間は2時間程度ですね。
正式なリリースはもうちょっと先になるかと思います。

http://homepage3.nifty.com/takeda-toshiya/00tmp/mz2200.zip

130316-1.png130316-2.png

テープイメージは、*.DAT, *.MZT, *.MTW, *.WAVに対応しています。
*.DATと*.MZTと*.MTWの前半部分は、メモリに直に読み込んで、0番地から実行します。
ディスクイメージは、私の他のエミュレータでサポートしているのと同じです。

MZ-80B対応は、まあおいおい、その内にでも。
将来的に16bitボードを乗っける予定です。(というかこれが目的です)


(2013/3/18 2:40追記)
アーカイブを更新しました。
MZ-80BとMZ-1R12に対応した他、グリーンモニタ時に背景色を無視するように修正しています。
URLは上と同じです。
posted by 武田 at 02:56| Comment(7) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2012年10月23日

色々更新

色々更新しました。

- HuC6280, i286, i386をMAME 0.147ベースに更新しました
- Family Basicでジョイスティックが機能していなかったのを修正しました
- PC-8801MA/PC-98Dで、V1(S)モードのVRAMウェイトを変更しました
- X1twinのPCエンジン部分を更新しました

121023-1.png
個人的に一番嬉しいのは、MZ-2800のデモが完走するようになった事だったり。
ずっと65536色モードのリードモディファイライトを疑っていたんですが、
まさかCPUの問題だったとは思いませんでした(苦笑)

X1twinのPCエンジン部分でガンヘッドが動くようになったのも嬉しいですね。
CPUとかVDCとか色々更新しましたが、結局のところは348KBなROMイメージの
ミラーリングの問題だったみたいです。
まあVDCの修正で、源平討魔伝の画面化けも直ってるので結果オーライ。

PC-88のV1(S)モードの件は、最近某スレで指摘されてたみたいなので。
こんなもんで大丈夫そうですか?>御心当り


(2012/10/25 3:00更新)
PC-88のV1(S)モードで、DMA転送時のウェイト値も調整しました。
4MHz時はもうちょっと速く、8MHzはもうちょっと遅くしています。


(2012/10/31 3:30更新)
http://homepage3.nifty.com/takeda-toshiya/00tmp/pc8001mk2sr.zip
uPD765AのRead Diagnosticsを修正した仮バージョンです。
PC-8001mkIISR対応の方はまだ実験的なものです。
80SR版XEVIOUSは動いてるっぽいけど、他の画面モードがあってるか不明。
posted by 武田 at 21:07| Comment(16) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2012年08月23日

MS-DOS Playerの更新

MS-DOS PlayerのCPUコアを、i286からi386に変更しました。
DDEBというデバッガをBIOS解析によく使用しているのですが、こいつが要i386でして。
これをx64環境でも使えるようにしたかったんです。

i386コアは例によってMAMEから引っ張ってきました。
今回の作業は、MAMEのソースをなるたけ変更せずに組み込む実験も兼ねてたりします。

PS.
溜まってるメールやコメントへの返信は、週末辺りからぽそぽそ進めていく予定です。
もうちょっとお時間ください。
posted by 武田 at 01:28| Comment(6) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2012年08月18日

ePC-8801MAのプチ更新

本業多忙とか娘に遊んでもらうとか、色々忙しくて長いことお休みしておりましたが、
ちょっと時間が取れましたので作業してみました。

例によってPC-8801MAの仮バイナリです。
http://homepage3.nifty.com/takeda-toshiya/00tmp/pc8801ma.zip

主な更新内容は以下の通りです。

1) 単一バイナリでGDI/Direct3D9に両対応しました。
2) テキストアトリビュート周りを修正しました。
3) mamefm.dll(V1)に対応しました。

2)は、ブラスティーの画面化けとかメルトダウンの敵弾化けが直ってます。
3)は、exeと同じディレクトリにmamefm.dllが存在すると自動的に使用されます。

本格的な活動再開はもうちょっと後になるかと思います。
posted by 武田 at 01:26| Comment(3) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2012年03月06日

ePC-8801MA更新

2/22から溜まっていた更新を反映した新バージョンをリリースしました。

120306-4.png120306-5.png

追加で、MISTY BLUEがブートしない件と、アルファのアトリビュートの件を修正しました。

MISTY BLUEの方は、ADPCMのデータ書き込み時にIRQが発生していたのが原因でした。
Reg #29で、タイマーとADPCMそれぞれのIRQのマスクが出来るようになっていますが、
このレジスタはMISTY BLUEでは書き込みが行われていないようです。
そこで、Reg#29の初期値として、タイマーIRQだけ発生するように修正しています。


(2012/3/15 1:50追記)
120315-1.png120315-2.png

新しいバージョンをリリースしました。
データレコーダをサポートした他、リップスティックADVの音楽のテンポが遅くなる
不具合を修正しています。
また、テンキーのコンマを、CTRL+フルキーのコンマで入力できるようにしました。

細かい使い勝手の改良として、CPUクロックを切り替えた後、再起動しなくても
リセットで即反映させられるようにしました。
PC-88だと割と切り替える機会がありますので、地味に便利になったかと思います。

内部的には、一旦VMクラスのインスタンスを破棄してnewしなおして、挿入されていた
フロッピーディスクを挿し戻すという、ちょっと乱暴な対応をしています(苦笑)
イベントマネージャを弄くるより、こっちの方が楽かなーと。


(2012/3/20 2:00追記)
120320-1.png

一部ソフトでBGMのテンポが遅くなる件を改めて修正しました。
I/OでOPN(A)のクロックを切り替えられるという情報もあったのですが、
実際のところはサウンドIRQの取り回しの問題だったようです。
内蔵タイマのリセットやIRQマスクを設定するタイミングによっては、
1回タイマがあふれたときに、2回割り込みが発生するようですね。
posted by 武田 at 02:39| Comment(15) | TrackBack(0) | 開発 | このブログの読者になる | 更新情報をチェックする
まるくん、がんばれ、ちょうがんばれ