はじめに

最近 nesdev の forum で kazzo を広めてくださっている英語圏の方がいらっしゃいます。kazzo にはいくつか問題があり、自分の中では満足していません。 これを機会に問題を解決してくれると助かります。(つまり他力本願)

私個人(naruko)は12月頃には開発を再開しようと思っています。

V-USB ドライバ関連

ハブを経由しないと転送が遅い

ハブを経由する問題は、USB の転送方法に control 転送を利用している点です。control 転送は少ないデータを低い頻度で通信することが目的になっています。そのため、 kazzo のように高い頻度で通信するには interrupt や bulk 転送を利用すべきだと思います。

V-USB では control 転送や HID 向けの interrupt 転送のサンプルばかりで、よく分からない状態です。さらにいうと、ホスト側の作り方もよくわからない。

ベンダIDとライセンス

現状実験用のベンダIDを利用していますが、他の V-USB 機器も同じベンダID だったりしてドライバが干渉してしまっています。

上記の control 転送問題を解決と一緒に有料ライセンスと固有ベンダIDを取得するつもりでしたが、できていません。

Atmega8U2 ドライバ関連

AVR USB 対応機器の AtMega8U2 を載せた kazzo PCB 3.0 を昨年こっそりと作ってあります。これも V-USB 同様によいサンプルソースに巡り会えてないまま開発が放置されています。

先月に Atmega32U4 で開発している方からよいソースを教えていただいたので時間がとれれば改善する可能性があります。

アクセス波形の問題

MMC5 を経由する Work RAM と EXRAM や namcot の 163 内部の internal RAM には正しくアクセスできていません。私が把握していないだけでアクセスできないメモリがあるかもしれません。

これの原因は深くは追っておらず予想で言うと、ファミコンの CPU が出す制御信号とはかなり違うものだと思っています。対処策はわりと簡単で、ロジックアナライザで実機の出すメモリ波形を計測すればよいだけだと思います。

これをやってくれる人が出てくれると、以前は放置した RAM アダプタ経由での disk アクセスもできるかもしれません。