野球ゲームの調査

サブカートリッジのコネクタのピン配置

 2 o CPU PHI2       | 1 s GND
 4 o ROMENABLE#?    | 3 o SUBWR #?
 6 i CPU D3         | 5 i CPU D2
 8 i CPU D4         | 7 i CPU D1
10 i CPU D5         | 9 i CPU D0
12 i CPU D6         |11 o CPU A0
14 o CPU D7         |13 o CPU A1
16 o CPU A10        |15 o CPU A2
18 o Program ROM A16|17 o CPU A3
20 o CPU A11        |19 o CPU A4
22 o CPU A9         |21 o CPU A5
24 o CPU A8         |23 o CPU A6
26 o Program ROM A13|25 o CPU A7
28 o Program ROM A14|27 o CPU A12
30 s +5V            |29 o Program ROM A15

3pin = Work RAM CS# | CPU R/W | SUNSOFT-4 26pin
4pin = Program ROM EN# | SUNSOFT-4 22pin
  • 3pin は 0x6000-0x7fff への書き込みが有効になったときに動くようだ
  • 4pin は CPU bank の page 0 から 7 を使用するときに L になる信号のようだ

メイン基板のROM

1 i?+5V |32 s +5V
2 i ??? |31 i?+5V
        |24 i Program ROM A16
        |22 i Program ROM EN#

 2pin = SUNSOFT-4 22pin
  • 27C301 互換の配置になっているようだ
  • しかし、27C301 の 2pin は OE# となっているために、 SUNSOFT-4 22 pin が Program A17 と仮定すると page 0 から 7 で有効になるはずで、OE が正論理なのかもしれないので、基板から ROM だけを外さないとよくわからない。

サブ基板の ROM

27C256
 1 i Program ROM A15|28 s +5V
 2 i CPU A12        |27 i Program ROM A14
                    |22 i SUNSOFT-6 ...
                    |20 i GND
アドレスバス,データバスはコネクタと同じ
1pin は Vpp なのでそこに A15 を配線している
  • ROM の隣に SUNSOFT-6 というカスタム IC があり、 22pin はそこから制御される
  • SUNSOFT-6 にはサブカートリッジコネクタの 2,3,4 pin がつながっているがデータバスはつながっていない
  • 27C256 は 0x8000 byte のため 2 page 持つが、エッジコネクタ経由ではどのバンクを経由しても1通り、0x4000 byte のデータが出てくる。
  • ソフトを逆アセンブルすると cpu address $6000 を write しているようで、どうもこれが SUNSOFT-6 のレジスタのようだ。Workram とかぶるが、データバスをみていないみたいなので問題ないらしい?
  • 電源投入直後に CPU Bank を page 0 に設定する($f000 に 0 を write)だけではサブカートリッジからはデータが取得できず、 SUNSOFT-6 に書き込みをして($6000 に write)から有効になるようだ。

不明点

  • SUNSOFT-4 の 22, 26pin の役割
  • Work RAM CS# は無条件に有効になるのか。
  • サブ基板の ROM は前半後半に同じデータが書かれているのか。
  • エミュレータでなぜ動かないのか.

部品を外したり、波形を見ないとだめですね。