------------------------------- Namcot 106 Mapper infomation. ------------------------------- by goroh mail: goroh_kun@geocities.co.jp date: 1997/5/17 (1) Page Size PRG-ROM Page_Size & Index_Size: 8k CHR-ROM Page_Size & Index_Size: 1k (2) PRG-ROM,CHR-ROM Page Switch Register === Functions === $4800 Expand I/O data register 詳しくは後述 $5000-$57FF R/W cloock counter lower 1byte bit xxxxxxxx xxxxxxxx: counter's lower 1byte $5800-$5FFF R/W clock counter higher 1byte(7bit) & counter enable/disable bit exxxxxxxx e: 1-counter enable 0-counter disable xxxxxxx: counter's higher 1byte Note: clock_counterはclock毎に1増加し、$5000=$5800=0xffになるとIRQ信号が発生する。 このときIRQ信号をリセットするためには$5000=$5800=0xff以外の値になるように$5800 (または$5000)の値を書きかえる必要がある。 clock_counterの値は5000,5800を呼び出すことにより確認でき、 $5000,$5800の書き込みによりいつでも値を変更することができる。 $6000-$7FFF WRAMにマップされる(女神転生2など)その他の場合は未使用 $8000-$87FF Select one CHR-ROM BANK or Select CHR-DRAM at $0000-$03FF. $8800-$8FFF Select one CHR-ROM BANK or Select CHR-DRAM at $0400-$07FF. $9000-$97FF Select one CHR-ROM BANK or Select CHR-DRAM at $0800-$0BFF. $9800-$9FFF Select one CHR-ROM BANK or Select CHR-DRAM at $0C00-$0FFF. --- $E800's 7bit=0 --- #$00-#$DF Page_number #$E0-#$FF Select CHR-DRAM --- $E800's 7bit=1 --- #$00-#$FF Page_number $A000-$A7FF Select one CHR-ROM BANK or Select CHR-DRAM at $1000-$13FF. $A800-$AFFF Select one CHR-ROM BANK or Select CHR-DRAM at $1400-$17FF. $B000-$B7FF Select one CHR-ROM BANK or Select CHR-DRAM at $1800-$1BFF. $B800-$BFFF Select one CHR-ROM BANK or Select CHR-DRAM at $1C00-$1FFF. --- $E800's 8bit=0 --- #$00-#$DF Page_number #$E0-#$FF Select CHR-DRAM --- $E800's 8bit=1 --- #$00-#$FF Page_number $C000-$C7FF Select one CHR-ROM BANK or CHR-SRAM(in FC)&Mirror at $2000-$23FF. $C800-$CFFF Select one CHR-ROM BANK or CHR-SRAM(in FC)&Mirror at $2400-$27FF. $D000-$D7FF Select one CHR-ROM BANK or CHR-SRAM(in FC)&Mirror at $2800-$2BFF. $D800-$DFFF Select one CHR-ROM BANK or CHR-SRAM(in FC)&Mirror at $2C00-$2FFF. #$00-#$DF Page_number #$E0-#$FF Use CHR-SRAM(in FC system) 1bit: Mirror(CHR-SRAM Addr10) 1:High 0:Low $E000-$E7FF Select one PRG-ROM BANK at $8000-$9FFF. bit --pppppp pppppp: Page_number $E800-$EFFF Select one PRG-ROM BANK at $A000-$BFFF,Select CHR-ROM or CHR-DRAM. bit BApppppp pppppp: Page_number A: Select at CHR_address $0000-$0FFF 0:CHR-ROM&CHR-DRAM 1:CHR-ROM B: Select at CHR_address $1000-$1FFF 0:CHR-ROM&CHR-DRAM 1:CHR-ROM $F000-$F7FF Select one PRG-ROM BANK at $C000-$DFFF. bit --pppppp pppppp: Page_number $F800 Expand I/O address register 詳しくは後述 Note: PRG $E000-$FFFF is hardwired(LastPage). 考察 CHR-ROMが2メガの容量を持つものは総Page数が#$E0を超えるので、 $E800番地に#$E0以上を書き込んでおいてからCHR-ROMを吸い出さないと ページ番号#$E0以上のデータが吸い出しできない。 <$4800,$F800の機能について> $4800 Expand I/O Data Register $F800 Expand I/O Address Register bit Iaaaaaaa aaaaaaa: Address I: Auto Increment Enable/Disable 1:Enable 0:Disable 1にすると、$4800のアクセスで自動的にアドレスが1増加される <1> WRAMのアクセス用として使用(マインドシーカー・貝獣物語など) この場合、Expand I/O に拡張メモリが接続されている。 よって、セーブデータは$F800でWRAMのアドレスを指定し、 $4800で読み書きすることができる。 <2> 拡張サウンドの制御用に使用(三国志2・女神転生2・キングオブキングスなど) 各アドレスの機能 $00-$3f 音色データが格納される。 $40,$48,$50,$58,$60,$68,$70,$78 ch1-8 周波数 low $41,$49,$51,$59,$61,$69,$71,$79 未使用 $42,$4a,$52,$5a,$62,$6a,$72,$7a ch1-8 周波数 mid $43,$4b,$53,$5b,$63,$6b,$73,$7b 未使用 $44,$4c,$54,$5c,$64,$6c,$74,$7c ch1-8 周波数 high & option bit ---VVVff VVV : 8-(データ量)(単位 2byte) 例: VVV=000だったら 16byte,VVV=100だったら8byteの音色データがあることを示す。 ff: 周波数high $45,$4d,$55,$5d,$65,$6d,$75,$7d 未使用 $46,$4e,$56,$5e,$66,$6e,$76,$7e ch1-8 音色データのOffset Address($00-$3Fまで指定可能) bit AAAAAAA- $47,$4f,$57,$5f,$67,$6f,$77,$7f ch1-8 音量 bit ????VVVV VVVV: 音量 ????:7だったり(kingofkings),3だったり(女神転生2)する。 表1 サウンドテーブル +-----------------------------------------------------------------------------------------+ | O1 | O2 | O3 | O4 | O5 | O6 | O7 | O8 | +---+-----------------------------------------------------------------------------------------| |C | (7E 04 00) (FB 08 00) (F6 11 00) (EC 23 00) (DA 47 00) (B3 8F 00) (66 1F 01) (CC 3E 02) | |C+ | (C2 04 00) (84 09 00) (08 13 00) (10 26 00) (1F 4C 00) (3E 98 00) (7D 30 01) (FA 60 02) | |D | (0A 05 00) (15 0A 00) (29 14 00) (53 28 00) (A6 50 00) (4C A1 00) (98 42 01) (30 85 02) | |D+ | (57 05 00) (AE 0A 00) (5C 15 00) (B9 2A 00) (72 55 00) (E3 AA 00) (C7 55 01) (8D AB 02) | |E | (A8 05 00) (51 0B 00) (A2 16 00) (43 2D 00) (86 5A 00) (0D B5 00) (19 6A 01) (33 D4 02) | |F | (FF 05 00) (FD 0B 00) (FA 17 00) (F4 2F 00) (E8 5F 00) (D1 BF 00) (A1 7F 01) (43 FF 02) | |F+ | (5A 06 00) (D4 0C 00) (67 19 00) (CE 32 00) (9C 65 00) (39 CB 00) (71 96 01) (E2 2C 03) | |G | (BA 06 00) (75 0D 00) (E9 1A 00) (D4 35 00) (A7 6B 00) (4E D7 00) (9C AE 01) (39 5D 03) | |G+ | (21 07 00) (42 0E 00) (83 1C 00) (07 39 00) (0E 72 00) (1C E4 00) (37 C8 01) (6E 90 03) | |A | (8D 07 00) (1B 0F 00) (36 1E 00) (6B 3C 00) (D6 78 00) (AC F1 00) (58 E3 01) (B0 C6 03) | |A+ | (00 08 00) (01 10 00) (01 20 00) (03 40 00) (05 80 00) (0D 00 01) (16 00 02) (FF FF 03) | |B | (7A 08 00) (F4 10 00) (E9 21 00) (D1 43 00) (A2 87 00) (44 0F 01) (89 1E 02) (FF FF 03) | +---------------------------------------------------------------------------------------------+