ファミコンミニ/スーファミミニにマルチタップを繋げることはできませんか?

っていう質問がわりと頻繁に出てるのでちょっと考えてみる。

 

もともと、このシリーズのコントローラはWiiコントローラ互換(アドレス固定のi2c)スレーブデバイスとして作られているので、
コントローラを増やそうとすると、別々のi2cバスが必要になる。
ファミコンミニは、そのために2系統のi2cバスを準備している。

もしそれ以上増やそうとすると、コントローラのi2cアドレスを変更するか、
CPU側のi2cバスを増やすしかない。
で、ファミコンミニのほうはすでにCPUから出ているすべてのi2cを使い切っているので、
コントローラのアドレスを変更するしかない。
とはいえ、コントローラのアドレスは専用マイコンが使われているため変更できない。
なので、i2cのプロトコル内でアドレスを変更してやればいい。

 

但し、デフォルトのコントローラドライバは、各i2c上の0x51のみを探してコントローラデバイスを生成するようになっているので、
これを改造して新しいドライバを入れてやる必要がある。

これを図にすると以下のようになる。

 

 

で、ほんとに何人がマルチタップを使いたいんですのん?

f:id:honeylab:20171002164010j:plain