Famicom cartridge technical information

Irem G-101

概要

G-101 は 1990年前後に Irem 生産のカートリッジの中に入っている IC の名称。ソフトは7本あり、その中のメジャーリーグの仕様が曖昧になっている。

wiring infomation (パーマン part2)

PCB

  • name: FC-00-018
  • device: G-101, Program ROM, Charcter ROM

memory controller

[label]
Irem G-101
041100

[pinout]
52pin Shrink PDIP
 1 s GND          |52 s +5V
 2 i CPU PHI2     |51 o VRAM A10
 3 i CPU R/W      |50 ?
 4 i CPU ROMSEL#  |49 o Program ROM EN#
 5 i PPU A13      |48 ?
 6 i PPU RD#      |47 ?
 7 i CPU A14      |46 ?
 8 i CPU A13      |45 o Charcter ROM EN#
 9 i CPU A12      |44 ?
10 i CPU A2       |43 ?
11 i CPU A1       |42 ?
12 i CPU A0       |41 o Program ROM A17
13 i PPU A12      |40 o Program ROM A16
14 i PPU A11      |39 o Program ROM A15
15 i PPU A10      |38 o Program ROM A14
16 i CPU D7       |37 o Program ROM A13
17 i CPU D6       |36 ?
18 i CPU D5       |35 o?Charcter ROM A17?
19 i CPU D4       |34 o Charcter ROM A16
20 i CPU D3       |33 o Charcter ROM A15
21 i CPU D2       |32 o Charcter ROM A14
22 i CPU D1       |31 o Charcter ROM A13
23 i CPU D0       |30 o Charcter ROM A12
24 ?              |29 o Charcter ROM A11
25 i config(+5V)  |28 o Charcter ROM A10
26 s GND          |27 s +5V

[凡例]
?: unknown and no connection
s: power supply
i: input
o: output

Program ROM

[logical assignments]
A17:13 = Program ROM A17:13
A12:0  = CPU A12:0
D7:0 = CPU D7:0
EN# = Program ROM EN#

32pin PDIP, pinout は 27C020 互換。

Charcter ROM

[logical assignments]
A16:10 = Charcter ROM A16:10
A9:0   = PPU A9:0
D7:0   = PPU D7:0
EN#    = Charcter ROM EN#

28pin PDIP, pinout は 128KB の一般的な Mask ROM。

edge connector

[logical assignments]
IRQ = NC
sound out = sound in (from edge)
VRAM A10 = VRAM A10 (from G-101)
VRAM CS# = PPU A13# (from edge)
主要な配線のみ記載。

wiring infomation (メジャーリーグ)

PCB

  • name: 未記載
  • device: G-101, Program ROM, Charcter ROM

memory controller

config = GND になっている。それ以外は FC-00-018 と同じ。

Program ROM, Charcter ROM

bonded ROM で詳細不明だが、 FC-00-018 とほぼ同じ配線だと思われる。

edge connector

VRAM A10 = +5V になっている。それ以外は FC-00-018 と同じ。

software specification

memory map

[CPU - read]
$8000-$9fff program ROM bank #0 (switchable or fixed)
$a000-$bfff program ROM bank #1 (switchable)
$c000-$dfff program ROM bank #2 (switchable or fixed)
$e000-$ffff program ROM bank #3 (fixed)

[CPU - write]
$8000       program ROM bank #0 or #2 register
$8001-$8fff $8000 の mirror
$9000       program ROM #0 or #2 bank mode and mirroring register (*1)
$9001-$9fff $9000 の mirror (*1)
$a000       program ROM bank #1 register
$a001-$afff $a000 の mirror
$b000       charcter ROM bank #0 register
$b001       charcter ROM bank #1 register
$b002       charcter ROM bank #2 register
$b003       charcter ROM bank #3 register
$b004       charcter ROM bank #4 register
$b005       charcter ROM bank #5 register
$b006       charcter ROM bank #6 register
$b007       charcter ROM bank #7 register
$b008-$bfff $b000-$b007 の mirror

[PPU - read]
0x0000-0x03ff charcter ROM bank #0
0x0400-0x07ff charcter ROM bank #1
0x0800-0x0bff charcter ROM bank #2
0x0c00-0x0fff charcter ROM bank #3
0x1000-0x13ff charcter ROM bank #4
0x1400-0x17ff charcter ROM bank #5
0x1800-0x1bff charcter ROM bank #6
0x1c00-0x1fff charcter ROM bank #7
0x2000-0x2fff system VRAM (*2)

[PPU - write]
0x2000-0x2fff system VRAM (*2)
  • *1: config pin = +5V のときのみ有効, GND に配線された場合は無効
  • *2: config pin の配線と該当レジスタに依存

register

[program ROM bank #0 or #2, #1 register]
bit assignments
---------------
4:0 program ROM A17:13

[charcter ROM bank #0-#7 register]
bit assignments
---------------
6:0 charcter ROM A16:10

[program ROM #0 or #2 bank mode and mirroring register]
bit assignments
---------------
  1 select switchable bank (0:#0, 1:#2)
  0 VRAM mirroring (0:V, 1:H)
config pin =GND の場合は両方のレジスタに 0 が設定される

program bank の詳細

   c=GND or mode=0 else
-----------------------------
#0 register#0or#2  5'b11110
#1 register#1      register#1
#2 5'b11110        register#0or#2
#3 5'b11111        5'b11111
c:config pin

mode1 は config pin = +5V に配線されたときに使用可能。

nametable の特記事項

config pin=GND の場合は VRAM mirror が $9000 への書き込みを無視して、V 固定になる。メジャーリーグでは VRAM A10 の出力は +5V のため、 G-101 の出力を使用しない。

考察

  • config pin = GND のソフトはメジャーリーグのみ。他のソフトでは仕様は全て同じになる。
  • 大半の G-101 を使用する基板では VRAM A10 向けに pad を持っていて、+5V と G-101 からのソフトウェア制御を選択できるようになっている。実際には pad が存在してもソフトウェア制御を使用している。(メジャーリーグには pad がない)
  • charcter ROM に関しては発売されたソフトが全て 128KB だが、レジスタの並びとピン配置から推測するに bit7(A17) が存在する可能性は高い。
  • program ROM bank mode1 を使用するソフトは"愛先生の OSHIETE 私の星"だけなので古いエミュレータでは例外実装をしているものがある。
  • エミュレータでは VRAM A10 の配線と config pin の配線の両方を設定できる項目を設ける必要がある。

special thanks

  • 外道猫氏 (全てのカートリッジを mode1 で redump してもらいました)
  • NesCartDB