famicom bus simulator 鰹

概要

既存の famicom 用の吸い出し器は設計が古いので現在のPCで使えなかったり、「吸い出し」に特化されすぎていました。2009 年初旬に開発した flash memory cartridge には複雑な機能が必要なため、正確に write も行える機器を設計することにしました。

コンセプトは下記です。

  • 制御線を制御しやすくする
  • PC とのインターフェースを USB にする
  • 入手しやすい部品を選ぶ
  • 部品点数と配線数を減らす

吸い出しも当然行えますが、それ以上の機能を有しているため、 bus simulator としました。

お願い

kazzo + flash memory cartridge はソフト開発における実機確認作業の効率化を目的として製作しました。いわゆるマジコンの場合はこれを名目としてソフトの違法コピーを助長しておりますが、 kazzo は名目ではなく本当にそれを目的にしています。

マジコン的な使い方も可能ですが、その目的では効率やコストがとても悪いです。

AVR, USB, flash memory, 6502, nsf などハードウェア/ソフトウェア技術関連や自作ソフト開発などの技術活性化につながるところからのご紹介は大歓迎です。

混乱とモラルの低下を防ぐために、上記以外の目的でのリンクはご一報の上ご連絡下さい(事後連絡は不可)。非公式ツールなので、怒られたら終わります。

flash memory cartridge

既存の ROM カートリッジから ROM を取り外して、flash memory をつけたものです。

  • 書き込みは kazzo に接続し、データを転送できます。ROM ライタは必要ありません。
  • 読み込みは通常の ROM カートリッジと同じです。
  • 書き込み用スイッチや IC ソケットはいりません。
  • 部品の取り替えは1度なので、ケースに収められます。

flash memory cartridge は既存のハードを利用しますので、エミュレーションやシミュレーションで問題になる再現度は100%です。ソフト開発時の実機確認に非常に便利です。

配線方法など詳細は専用 wiki にまとめてあります。認証ありにしていましたが、準備ができ次第認証を解きます。

サポート機能

full support

  • USB 1.1 communication
  • ROM cartridge bus simulation
    • ROM dumpping
    • flash memory erasing/programming
    • VRAM mirroring auto decect
    • charcter memory type auto decect

typical support

  • ROM cartridge bus simulation
    • CPU region work RAM access (MMC5 W-RAM is not supported)

unsupport

  • disk drive access

ハードウェア

kazzo_pcb_rev1.0.png

部品リスト

U1   |ATmega164P or ATmega16
U2   |74HC574
CN1  |type B female USB socket
CN2  |3x2 ピンヘッダ, 2.54 mm spacing
CN3  |30x2 pin エッジコネクタ, 2.54 mm spacing
R1,R2|68 ohm 抵抗
R3   |1.5 kohm 抵抗
R4   |30 kohm 抵抗
D1,D2|3.6 V ツェナーダイオード
X1   |16.0 MHz セラミック発振子 (セラロック)
C1,C2|0.1uF セラミックコンデンサ
CP1  |10uF 電解コンデンサ
JP1  |トグルスイッチ
JP2  |プッシュスイッチ

回路図

kazzo_schematics.png

配線表

kazzo ファームパッケージの readme.txt を参照。

ファームウェア

配布パッケージ

配布パッケージには下記が含まれています。

  • ファームウェアイメージ (hex file)
  • 回路図, 配線表, 部品表
  • ソースコード
  • Windows driver

download → kazzo.0.1.2.zip

USB について

  • ライブラリに V-USB を standards licence で使用しています。
  • ベンダ ID/デバイス ID には V-USB 共有 ID を使用しています。
  • Windows driver に libusb-Win32 を使用しています。

V-USB が無ければ低価格、少数部品で構成することはできませんでした。素晴らしいライブラリを提供していただき感謝です。

クライアント

配布パッケージには下記が含まれています。

  • unagi 実行ファイルと readme
  • anago 実行ファイルと readme
  • anago 用スクリプト

download:

unagi

unagi 0.6.x は kazzo をサポートし、従来の機能とスクリプトがそのまま使えます。またパラレルポート経由の既存のハードをサポートしますが、それらでは flash memory programming mode を使用できません。

パラレルポートハードのサポートは unagi 0.6.x のみで、それ以降は使用できません。

anago

anago は unagi のソースコードを流用しつつ、実験的な機能を盛り込んだものです。スクリプトエンジンに Squirrel を使用しているのでスクリプトが高機能になっています。

anago の最大の特徴は flash memory programming で CPU/PPU 領域を同時に書き込むことが出来ます。これにより書き込み時間が短くなりました。

kazzo キットのご案内

kazzo は自作も可能ですが、プリント基板と部品をすべて揃えたキットを販売していました。また dip の flash memory は販売再開準備中です。