EmuZ-2500 (仮) スクリーンショット (一区切り編)

謎WIPページに戻る


2004/1/10
我が青春の小川無線商会の看板。高校時代は部品屋さんとしてよく利用していました。
突然倉庫からBASIC MASTER Lev.3 Mk.5のフルセットが発掘されたときは、買っとけばよかったなあと今更ながら後悔。



2003/12/9
EmuZ-5500/6500/6550、開発始動。




2003/11/29
機能面では大して変わっていないのですが、内部構造は大幅に変わっています。
現在進行中のEmuZ-5500/6500でコードを再利用しやすいように、エミュレーションコアとWin32側の実装の分離を行いました。
自分でやるつもりは余りありませんが、Win32以外のプラットフォームへの移植も多少はやり易くなったのではないかと思います。

sig3版において、画面描画にGAPIを利用するようにしました。
DIBSectionを使用した実装に比べて大幅に高速化しまして、実機並みの速度で6-8fpsは出るようになっています。
GAPI for NTT DoCoMo Sigmarion IIIが必要です。適宜インストールしてください。
またxclkcfgによる533MHzへのクロックアップ推奨です。




2003/11/9
国際ロボット展の準備の合間を縫って、久方振りの更新です。
今回は、主に描画周りの高速化を図っています。
その他の修正も含め、CPU使用率を大幅に減らすことができました。
まだDIBSectionからのBitBltが足を引っ張ってますので、将来はDirectDrawに変更するかもしれません。

音源周りも修正を加えています。
fmgenを最新版に差し替えた他、従来のDirectSoundに加えてwaveOut系APIを使用した再生もサポートしました。
環境によっては、waveOut系の方が安定して再生できるかもしれません。
sig3版については、fmgenでは処理速度的にどうしてもつらいため、簡易音源を実装しています。

sig3版ですが、今回から開発環境をeVC4.0に移行しました。
sig3SDKでビルドしてますので、完全にsig3専用となっています。
PocketPC版については暫くお待ちください。

データレコーダの対応も行ったのですが、まだ正常にロードできていません。
もう少しタイミングの調整をする必要があるようです。

ついでに依頼。
MZ-5500/6500の技術資料をお持ちの方、暫くお借りできないでしょうか。
実際に作業に入られるのはもう少し先になりますが。



2003/8/25
ここ数日、毎時500通オーバという洒落にならない勢いでSobig.Fに襲撃されてます。
5年以上このアカウントでフリーソフト屋さんやってて、既にアドレス拡散しきってますから、まあ仕方ないですね。
最近私にメールを送ってくださった方、もしかしたら読み飛ばしているか着信し損なってるかもしれません。
もし返事がないようでしたら再送して頂けますと幸いです。

MZ-6500実機入手しました。
どうやら先にEmuZ-5500/6500計画を進めることになりそうです。



2003/8/10
本業がデスマーチで死んでました。
メール返信とか色々滞ってしまって申し訳ないです>該当各位

EmuZ-3500計画進行中です。
今は準備段階として、まず技術資料の収拾・整理をやっています。
年末までにCP/Mがブートするのが目標なのですが、さて。



2003/7/29
EmuZ-2500/PocketPC、ネタ公開その2。
標準のIMでキーボード入力が出来るようになりました。

大文字や記号が入力された場合は、自動的にSHIFTも同時押しするようになっています。
数字キーの入力については、10キーの方を押した扱いとなります。
F1〜F10については、アクションボタンを押しながら1〜0を入力してください。
カーソルキーについては、ジョイスティック同様に標準のカーソルボタンが割り当てられています。
但し、カナについては現状では入力できません。




2003/7/27
EmuZ-2500/PocketPC、試作品。
設定ができないとかジョイスティックしか操作できないとか制限事項だらけですが、一応動いたのでネタ公開します。
(動作確認はカシオのE-3000で行っています)
640x400の画面を200x320に縮小していますが、漢字なんかでも結構それなりに認識できるようです。

スクリーンショットは、200x320の画面を2倍に拡大したものです。
…さて、仮想キーボードどーすっかなあ。




2003/7/26
I/OポートのE2hのb2にある、ダイレクトサウンド出力に対応しました。
(CPUで直接パルスのオンオフを切り替えて音を出力するという機能です)
/sig3版はそもそも音なしですので、Win32版のみ更新しています。

この機能を利用しているソフトとしては、例えば星くずばこ12号の百人一首があります。
人間の音声くらいなら意外とそれっぽく聴こえるのは驚き。


えと、百人一首、別の方法でPCM再生してました。
更に、E3h経由で8255のポートCを叩いた場合の対応を忘れてました。
E2hを直接叩いてくる場合、なんかぷちぷちと五月蝿いので、E3h経由のみ再生するように仕様変更します。
実質、星くずばこ特別号のおしゃべりBEEP専用です。
(他に対応しているソフトがありましたら教えてください)




2003/7/23
M1サイクルにウェイトを入れた結果、アビスII 帝王の涙がデバイスI/Oエラーを起こすようになってしまいました。
これについては、M1サイクルでのウェイトの有無を切り替えられるようにすることで対策しました。
また、BASIC-M25のデモの描画ずれ対策が誤爆して、殺人倶楽部のメーカロゴの描画が乱れていたのを修正しました。

中断セーブの機能拡張を行いました。
新たに、サウンド周りおよびEMMの保存・復帰を行うようにしています。
これで、大抵の場合は再開後もFM音源がそのまま鳴るようになっている筈です。
(EMMの方は、主に星くずばこ対策です)

但し、昨日のバージョンの中断セーブデータは使えなくなりますのでご注意ください。
今後も、原則として中断セーブデータはそのバージョン限りと考えて頂いた方が安全かと思います。

えーと、会社の連休終わっちゃいましたので、更新は間が空くことになるかと思います。
いや多分。




2003/7/22
中断セーブを実装しました。
全ソフト共通で、1〜4スロットが用意されています。

実装自体は単純で、メモリやCPU内部情報、各デバイスの内部状態を書き出し、書き戻しするだけです。
全てのデバイスについて処理している訳ではないので、場合によっては不安定になる可能性があります。
特に、ディスクアクセス中の中断セーブは避けてください。
またFM音源内のデータは全く保存されませんので、再開後はBGMが途切れてしまう可能性があります。

スクリーンショットは、特に今回の更新とは関係ありませんが、NOBOです。
中断セーブ駆使すれば、私でもクリアできるかしら。



2003/7/21
EmuZ-2500 別館@retropc.net



2003/7/20
という訳で、スーパーインポーズ対応。
需要なさそうですし、実機で出来ることだから、という以上の意味は正直ないです。
フルスクリーンモードにして、テレビ見ながらBASICでプログラミングとか、何か活用法教えてください(苦笑)

それ以外に、何故かM1サイクルのウェイトを入れ忘れていたのを修正しています。
BASIC-M25のデモで、画面とテープのタイミングが合うようになる等、結構効果があったみたいです。

EmuZ-3500計画、大真面目に検討中です。
そんなところ開拓しても、他に誰も棲み付かないであろうことは承知の上。
実機、周辺機器、ソフトウェア、技術資料、適価で譲って頂ける方がいらっしゃいましたら是非ご連絡を。




2003/7/20
EmuZ-2500/sig3のみ緊急更新しました。
単にMicrosoft製の純正C++コンパイラでリコンパイルしただけです。
インテル版、却って遅くなってしまった上、非Xscaleマシンだと問題があるみたいですので…

スクリーンショットは、スーパーインポーズ機能の作業報告です。
機能の実装自体は完了しましたので、あとは設定ダイアログの追加を残すだけ。
(4096色モード時のみ有効でいいんですよね?>識者な方々)

DirectX 8.0以降 & DirectShow対応の(多分ハードウェア圧縮機能のない)キャプチャデバイスが必要です。
私自身はELECOMのUCAM-C1C30SVというUSBカメラを使用しています。
とは言えDirectShow関連はDLLに纏めてますので、mz2500.exe自体の動作環境は従来通りとなる筈です。
NT4.0のことを考えると、VfWも対応したいところですが…やっぱ需要ないか(苦笑)




2003/7/18
今回は非常に重要な更新です。
これまで最大の懸案だった不安定問題が遂に解決しました。
古いバージョンを使用されている方は、できるだけ新しいバージョンに差し替えてください。

原因は、Z80コア内のEIの実装ミスです。
本来EIの次の命令の後に割込み許可となるところを、すぐに割込みを許可してしまっていました。
おそらく、EI RETIと並んでいる場合に、RETIに割り込んでしまってスタックが溢れてしまったのではないかと。

スクリーンショットは不安定の双璧、テトリスと星くずばこです。
これらについても突然死しなくなっています。
また、最近リザードが落ちるようになってしまっていたのですが、これも解決しています。


CPUのクロック変更機能を実装しました。
4MHz〜20MHzの範囲で、0.66MHz単位で変更が可能です。

但し、あくまでもCPUコア内部のクロック数が上がっているだけです。
VSyncやタイマを基準に駆動しているソフトウェアでは、見た目は特に高速化しません。
シミュレーションゲームでコンピュータの思考を速くするのには便利かと。

/sig3版ですが、今回からIntel製のXScale最適化C++コンパイラを使用してビルドしています。
とは言っても、特に速くなったという感じはしないんですが(苦笑)
その他、ジョイスティックに連射機能を追加するなどの変更をしています。

次回更新の目玉はスーパインポーズ機能の実装の予定です。
DirectShow周りのDLLの実装は終わってますので、あとはMZ側だけ。




2003/7/2
テキスト画面の描画の負担が大きかったのですが、空白部分については文字描画をキャンセルするようにしました。
これで、/sig3でも8フレームスキップで概ね実機並のスピードが出るようになっています。

但し、ゼビウスやエキサイトバイクのように、全画面に渡ってPCGで背景を描いているソフトでは無効です。
もしかしたら副作用として画面化けが発生するソフトがあるかもしれません、発見されましたら報告お願いします。

また、/sig3で速度的な問題から、キーを押しても反応しない場合がありました。
これについては、キーを押したら最低3フレームは押した状態を維持するようにしています。


今更ですが、ROMイメージ他のパスを指定できるようにしました。
従来もiniファイル直接書き換えで相対パス指定可能でしたが、/sig3は設定ファイルがバイナリですので…。


BASIC-M25のデモの内、ラスベガスのLOOK SHOW。
お姉ちゃん'sの描画がずれていたのですが、専用パッチで無理やり補正するようにしました。
…副作用なければいいんですけど。

その他、イース3で垂直方向の画面マスク範囲がずれていたのを修正しています。



2003/6/26
高速化を図ってみました。
/sig3で実機の55%程度の速度が出るようになっています。
Win32版でも体感できるほど動作が滑らかになっている筈です。
高速化以外は、基本的に3時間前のバージョンと変わっていません。




2003/6/25
EmuZ-2500/sig3、公開しました。
H/PC 2000, ARMでビルドしていますが、実質sigmarion III専用です。
現状、xclkcfgで530MHzにクロックアップして、実機の25〜30%程度の速度が出ています。

Win32版の方も更新しています。
機能的には、Z80SIOの割込みの有効・無効の切替機能を追加しただけです。
(ぱれっと等の一部マウスを使用するソフトがフリーズしないようになります)
また、/sig3用に高速化を図っていますので、こちらも多少速くなっているかもしれません。

Win32版と/sig3版ではほぼ全てのソースコードが共通化されていますので、今後は両者とも同時に更新します。



リ・バース。アドベンチャーゲームの類ならば、現状の/sig3の速度でもそこそこ遊べるかと思います。




2003/6/19
蒼き狼と白き牝鹿において、PAINTがはみ出す問題を修正しました。
リードモディファイライトの4プレーン同時アクセス時に、ラッチされる値がおかしかったのが原因です。

先日対応したYs3において、FM音源が鳴らない問題を修正しました。
こちらは、fmgen側のタイマの時間を進めるのを忘れていたのが原因です。

その他、カセット再生の頭出し処理の修正や、キーボード周りの実装を色々修正しています。


口説き方教えます、のグラフィックが乱れていたのも同じ原因だったようです。
こちらも修正されています。
…しかし、主人公の言動が頭悪すぎてどうにも(苦笑)



2003/6/9
fmgenが007aに上がっていたので反映しました。
お疲れ様です>ciscさん、PI.さん




2003/6/8
という訳で、256色モードでのパレットのプライオリティ設定を実装しました。
デーモンクリスタルの256色モードで、キャラが表示されるようになっています。
8色モードと比較すると、本当に綺麗です。


Ys3で画面化けするという問題も解決しています。
これもプライオリティの問題で、テキスト画面の不透明な黒が常に最優先になっていたのが原因です。
何でそんな実装にしてたんだろう(苦笑)

このような3画面の重ね合わせを実現するとなると、プライオリティ機能が威力を発揮してますね。


えーと、スクリーンショット貼っても全然判らないと思いますが(苦笑)
EXMAN親父、喋ってます。ムーンチャイルド、喋ってます。
本当に長らくお待たせしました>けんじょさん

という訳で、遂に音楽テープの再生機能を実装しました。
MCIを使った手抜き実装ですが、mp3に変換した音声ファイルを再生することが可能です。

更に、ciscさんが新しいfmgenを公開されましたので、早速使わさせて頂きました。
おまけに、トリトーンにあわせてテンキーの"4, 5, 6, 8"をジョイスティックでエミュレーションする機能も追加しています。
うーむ、今回は修正点が盛り沢山だ(笑)




2003/6/6
本日は作業報告のみ。
電波新聞社のデーモンクリスタル、何時の間にか動くようになってました。


が、256色モードではキャラが表示されません。
256色モードでは、パレットのプライオリティが実装されていないのが原因です。

今週末はこの辺の修正を中心に作業する予定。
MZ-MLで実機の動作を教えて頂いたのですが、どうも256色モードを実装し直す必要が(汗)
テープの再生機能も、まあぼちぼち。

Sigmarion III、購入しました。
すぐ対応という訳にはいかないですが、ソースを共用できる形に徐々に修正していく予定です。