Namco 163: Difference between revisions
(Hello world! I'm the n106! You may have heard of me.) |
(Info courtesy of Disch's docs. Not done yet, just saving changes.) |
||
Line 10: | Line 10: | ||
* Nametable [[mirroring]]: Controlled by mapper (Mapper 19), hardwired (Mapper 210) | * Nametable [[mirroring]]: Controlled by mapper (Mapper 19), hardwired (Mapper 210) | ||
* Subject to [[bus conflict]]s: No | * Subject to [[bus conflict]]s: No | ||
== Banks == | |||
* CPU $6000-$7FFF: 8 KB PRG RAM bank | |||
* CPU $8000-$9FFF: 8 KB switchable PRG ROM bank | |||
* CPU $A000-$BFFF: 8 KB switchable PRG ROM bank | |||
* CPU $C000-$DFFF: 8 KB switchable PRG ROM bank | |||
* CPU $E000-$FFFF: 8 KB PRG ROM bank, fixed to the last bank | |||
* PPU $0000-$03FF: 1 KB switchable CHR bank | |||
* PPU $0400-$07FF: 1 KB switchable CHR bank | |||
* PPU $0800-$0BFF: 1 KB switchable CHR bank | |||
* PPU $0C00-$0FFF: 1 KB switchable CHR bank | |||
* PPU $1000-$13FF: 1 KB switchable CHR bank | |||
* PPU $1400-$17FF: 1 KB switchable CHR bank | |||
* PPU $1800-$1BFF: 1 KB switchable CHR bank | |||
* PPU $1C00-$1FFF: 1 KB switchable CHR bank | |||
== Registers == | |||
The n106 has 19 registers within $4800-$FFFF, except $6000-$7FFF which is WRAM. Each register occupies a range of $800 bytes, so $4800-$4FFF all refers to one register, $5000-$57FF all refers to another register, and so on. | |||
=== Sound Data Port ($4800-$4FFF) r/w === | |||
See [[Namco 163 audio]]]. | |||
=== IRQ Counter (low) ($5000-$57FF) r/w === | |||
7 bit 0 | |||
---- ---- | |||
IIII IIII | |||
|||| |||| | |||
++++-++++- Low 8 bits of IRQ counter | |||
=== IRQ Counter (high) / IRQ Enable ($5800-$5FFF) r/w === | |||
7 bit 0 | |||
---- ---- | |||
EIII IIII | |||
|||| |||| | |||
|+++-++++- High 7 bits of IRQ counter | |||
+--------- IRQ Enable: (0: disabled; 1: enabled) | |||
=== CHR Select 1 ($8000-$87FF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0000 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. | |||
=== CHR Select 2 ($8800-$88FF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0400 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. | |||
=== CHR Select 3 ($9000-$97FF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0800 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. | |||
=== CHR Select 4 ($9800-$9FFF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0C00 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. | |||
=== CHR Select 5 ($A000-$A7FF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1000 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. | |||
=== CHR Select 6 ($A800-$AFFF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1400 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. | |||
=== CHR Select 7 ($B000-$B7FF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1800 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. | |||
=== CHR Select 8 ($B800-$BFFF) w === | |||
7 bit 0 | |||
---- ---- | |||
CCCC CCCC | |||
|||| |||| | |||
++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1C00 | |||
'''Note:''' Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect. |
Revision as of 07:52, 8 November 2011
The Namco 106 and Namco 163 are ASIC mappers, assigned to iNES mapper 19. A variant of this mapper with hardwired mirroring is assigned to iNES mapper 210.
Overview
- PRG ROM size: Up to 512 KB
- PRG ROM bank size: 8 KB
- PRG RAM: Up to 8 KB
- CHR capacity: Up to 256 KB ROM and/or 32 KB RAM simultaneously
- CHR bank size: 1 KB
- Nametable mirroring: Controlled by mapper (Mapper 19), hardwired (Mapper 210)
- Subject to bus conflicts: No
Banks
- CPU $6000-$7FFF: 8 KB PRG RAM bank
- CPU $8000-$9FFF: 8 KB switchable PRG ROM bank
- CPU $A000-$BFFF: 8 KB switchable PRG ROM bank
- CPU $C000-$DFFF: 8 KB switchable PRG ROM bank
- CPU $E000-$FFFF: 8 KB PRG ROM bank, fixed to the last bank
- PPU $0000-$03FF: 1 KB switchable CHR bank
- PPU $0400-$07FF: 1 KB switchable CHR bank
- PPU $0800-$0BFF: 1 KB switchable CHR bank
- PPU $0C00-$0FFF: 1 KB switchable CHR bank
- PPU $1000-$13FF: 1 KB switchable CHR bank
- PPU $1400-$17FF: 1 KB switchable CHR bank
- PPU $1800-$1BFF: 1 KB switchable CHR bank
- PPU $1C00-$1FFF: 1 KB switchable CHR bank
Registers
The n106 has 19 registers within $4800-$FFFF, except $6000-$7FFF which is WRAM. Each register occupies a range of $800 bytes, so $4800-$4FFF all refers to one register, $5000-$57FF all refers to another register, and so on.
Sound Data Port ($4800-$4FFF) r/w
See Namco 163 audio].
IRQ Counter (low) ($5000-$57FF) r/w
7 bit 0 ---- ---- IIII IIII |||| |||| ++++-++++- Low 8 bits of IRQ counter
IRQ Counter (high) / IRQ Enable ($5800-$5FFF) r/w
7 bit 0 ---- ---- EIII IIII |||| |||| |+++-++++- High 7 bits of IRQ counter +--------- IRQ Enable: (0: disabled; 1: enabled)
CHR Select 1 ($8000-$87FF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0000
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.
CHR Select 2 ($8800-$88FF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0400
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.
CHR Select 3 ($9000-$97FF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0800
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.
CHR Select 4 ($9800-$9FFF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $0C00
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.6 is set to 0. If $E800.6 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.
CHR Select 5 ($A000-$A7FF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1000
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.
CHR Select 6 ($A800-$AFFF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1400
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.
CHR Select 7 ($B000-$B7FF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1800
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.
CHR Select 8 ($B800-$BFFF) w
7 bit 0 ---- ---- CCCC CCCC |||| |||| ++++-++++- Select 1KB page of CHR-ROM or CHR-RAM at $1C00
Note: Pages $E0-$FF are CHR-RAM, as long as $E800.7 is set to 0. If $E800.7 is set to 1, then pages $E0-$FF refer to the last $20 pages of CHR-ROM as you'd expect.