Super System Card の仕様

address は全て21bit絶対表記です.

0x000000-0x03ffff R-  ROM (A)
0x040000-0x07ffff R-  ROM (A, mirror)
0x080000-0x08ffff --  未定義 (B)
0x090000-0x0bffff R-  RAM (C, mirror, read only)
0x0c0000-0x0cffff --  未定義 (D)
0x0d0000-0x0fffff RW  RAM (C)
0x1ff8c0          RW? RAM control register?? (E)
0x1ff8c1-0x1ff8c7 R?  version register (F)
0x1ff8c8          RW? RAM control register?? (E, mirror)
0x1ff8c9-0x0ff8cf R?  version register (F, mirror)

2018年12月11日(C)を改訂.
2019年1月5日(B)を改訂.
2019年3月10日register offset 7 について追加.

address decode に関する考察

  • ROM と RAM の領域は A18 は address decoder はみていないが、 write strobe 制御でみている.
  • 未定義領域(B)は Arcade Card で 0x8000 byte の領域に mirror での IO port が追加される. Super System Card からの出力はしない.
  • mirror 領域は BIOS では参照しないように作られているので全く同じでなくても動作するらしい.
    • DS 英雄伝説2の起動直後に address 0x99000 へ書き込み、再度読み込んだ結果が異なるとフラグを立てて、ゲームの途中で意図的に止まるように組まれている.

register に関する考察

bios の address は 16bit の PC 表記で絶対アドレスは 0x000000-0x001fff に割り当てられているという設定です.

  • これがないと画面で SUPER の文字が出ない.
    • 逆説的に, IFU-30 などではこの address に data を出すということはない.
  • offset 0 は非公式 BIOS で書き込んでいるので RAM の使用を制御できるらしい?
  • offset 5,6 は TG-16 での同名カードとデータが異なる.
    • データの比較は BIOS 内部で完結するので, データが異なっても BIOS の返す結果には影響はない.
  • offset 1,2,3 は BIOS $e05a で参照する. 目的は version の確認.全ての CD ソフトで確認する.
  • offset 5,6,7 BIOS $e0de で参照する. 目的は同じく version の確認だが、Super CD のみ利用可能. version を知るだけなら $e05a で十分でこの確認をしないソフトが結構多い.
  • offset 7, read, bit7 は super system card の種類. 0 が HuCard の Super System Card と Arcade Card Pro, 1 が Duo シリーズ.
    • PI-CD1 はおそらく 1 になる気がする
    • あすか120%の裏技扱いのシステムカードチェックで判別していたので調べた. Arcade Card のレジスタでは区別できないようだ.