openMSX V9968 移植版

ソースファイルはこちら

実行バイナリ

Windows x64 版バイナリ: openmsx-21.0-v9968-d884c4b-x64-VC-Release.zip
Linux 版バイナリ: openmsx-21.0-v9968-d884c4b-x86_64-linux-opt-3rd.zip

設定ファイル

設定方法は下記のファイルを参照ください。
V9968 カートリッジ: share/extensions/HRA_V9968.xml
FS-A1ST V9968 組み込み版: share/machines/Panasonic_FS-A1ST_V9968.xml

インストール方法(Windows)

設定ファイルの変更内容

    <VDP id="VDP">
      <version>V9968</version>           <!-- V9968 へ変更 -->
      <vram>128</vram>                   <!-- VRAM サイズは無視されます -->
      <io base="0x98" num="5" type="O"/> <!-- num の数を 5 へ変更 -->
      <io base="0x98" num="5" type="I"/> <!-- num の数を 5 へ変更 -->
      <timing>0</timing>                 <!-- VDPコマンド動作速度 0:V9968 と同じ / 1:HS=0の時に V9958 の VDP コマンドエミュレータを使う -->
    </VDP>

既存の V9938/V9958 用ソフトを高速で使う方法

メニューの [Settings] - [Advanced] - [force_hs] をチェックしてください

カートリッジ版について

カートリッジ版は I/O アドレス 88h に割り当てられています。
また、映像が内蔵 VDP と別になりますので、メニューの [Setting] - [Video] - [Video source to display] で映像ソースを V9968 に切り替えてください。

V9968 と V9968 エミュレータの差異

各種表示タイミング(HSYNC,VSYNC等)

V9968 エミュレータは V9958 エミュレータと同じタイミングで動作します。

VRAM アクセススロットは V9968 と(なるべく)同じタイミングになるようにしています。

VDPコマンドとP#0の VRAM R/W 処理が重なった時の R/W タイミング

V9968 は P#0 を優先する排他処理を行いますが、V9968 エミュレータは排他処理が行えない為に VDP コマンドと P#0 のアクセスを同時に行います。

VDPコマンドとP#0の VRAM R/W 処理が重なった時の VDP コマンドのデータ

V9968 はキャッシュ上のデータを使用しますが、V9968 エミュレータは VRAM のデータを直接 R/W します。

VDP コマンドの NX, NY 処理

V9968 は NX, NY のカウントをインクリメントカウンタで行いますが、V9968 エミュレータはデクリメントでカウントします。この為、VDP コマンド動作中に NX や NY レジスタを書き換えた場合の挙動が異なります。