2022年6月29日から2022年6月25日までの日記を表示中
2022年 6月29日 (水)
■基板
MAME上で拡張メニューを有効化したCPS3のBIOSを動かしてチェックサムの計算方法を調べてみました。結果、単に先頭から1Byteずつ足しているだけという驚きの結果にw。まあこれで色々確認しやすくなるか・・・w
2022年 6月28日 (火)
■UVEPROM
[コメントを書く]
■基板
CPS3のデバッグ機能を有効にしたBIOSをMAMEで動かそうとするとクラッシュする問題を調べてみました。
当初、デバッグ用のシンボルを残すビルドオプションをつけてMAMEをmakeしようとしたんですが、途中でよくわからないエラーが出てビルドに失敗したので諦めて、代わりにprintfデバッグをすることに。どこで落ちているかはわかっていたので、周辺にprintfを埋め込みまくった結果、デバッグ機能を有効にしてフラッシュメモリの中身を参照する画面を開くと、配列のインデックスに負の数が設定された状態になり、そのせいで不正なメモリアクセスをして落ちているということが判明しました。おそらく、オンボードのフラッシュメモリに対する操作の部分と思われます。
というわけで、インデックスが負だったらフラッシュメモリを読み書きしないように雑に対処をしてみたところ、クラッシュしなくなりました。やった。
これでデバッグ機能に搭載されているフラッシュメモリのチェックサムのルーチンを調べることができます(笑)
[コメントを書く]
2022年 6月27日 (月)
■基板
先日 RaSCSI経由で実機上で書き込んでみた未来への遺産 991015を、今日はCD-Rに焼いてドライブ経由でインストールしてみました。まあRaSCSIでやったときと特に変わることもなく、普通に完了。
[コメントを書く]
2022年 6月26日 (日)
■基板
[コメントを書く]
2022年 6月25日 (土)
■ユニバーサル遅延測定器
試しにCPS3をRetroTINK-5X経由で映してみました。Frame Lockでもバッチリ出ますね。
せっかくなので、ユニバーサル遅延測定器(のプロトタイプ)を使ってFramemeisterと遅延を比較してみました。
まずはユニバーサル遅延測定器から出ている線に、基板のボタンとGNDの端子をそれぞれ接続します。
次にスマホのカメラで、画面とユニバーサル遅延測定器本体のLEDが同時に画面内に収まるようにして、スローモーション撮影をします。本当はここでさらにノートPCも持ってきて、専用ツールを動かし、これも合わせて画面内に映るようにしたりするんですが、今回は簡易的にスマホのみで完結する形にしました。
Pixel 3 XLとかだと、スローモーション撮影は1/8 モードで 240FPSになるようです。なので1コマあたり 4.17msecということになります。これで撮影した動画を、コマ送りができる再生ソフトで再生させて、LEDが点灯してから(すなわちボタンが電気的に押された状態になってから)画面上に結果が反映されるまで(たとえば絵が動いたりするまで)に何コマかかったかを数えます(動画が30FPSで認識されているなら1コマ0.033秒として扱われるので、LEDが点灯したフレームの時刻と、画面が変化したフレームの時刻を記録して、その差を0.033で割っても良いかと)。あとはそれを4で割った数が遅延フレーム数になります。
ちなみに、コマ送りツールにはSlow Movie Playerというのを用いました。Androidでいくつか試した中では、これが一番シンプルで、必要な機能が揃っていました(何かをすると、コマ戻しのボタンが効かなくなる不具合もあったりしましたが)。
で、比較した結果ですが、(サンプル数はかなり少ないですが)RetroTINK-5Xの方が、Framemeisterよりも平均して5コマくらい少ない状態でした。なので、1フレームくらい RetroTINK-5Xの方が速いってことになりますね。RetroTINK-5X、噂通りの性能ですな。
一方で、測定のたびにかなり値がぶれるのが困ったところですね。ボタンを押しても、それが検出されるのがVSYNC割り込みのタイミングだから、それだけでも最大16msecくらいブレるってことなんでしょうけど。基板から出ている同期信号のタイミングも別LEDで表示できるようにすると(例えば奇数・偶数でオンオフさせるなど)より正確に数えられるようになるかな。
[コメントを書く]
2022年6月29日から2022年6月25日までの日記を表示中
[コメントを書く]