Mapper: Difference between revisions

From WSdev Wiki
Jump to navigationJump to search
(create from my notes)
 
m (clarify terminology)
 
Line 3: Line 3:
* [[Bandai 2001]]
* [[Bandai 2001]]
* [[Bandai 2003]]
* [[Bandai 2003]]
* [[KARNAK]]
* [[KARNAK]] (Pocket Challenge V2 cartridges only)


All three provide this same common subset for memory banking:
All three provide this same common subset for memory banking:
Line 20: Line 20:
| style="text-align: right" | <tt style="white-space: nowrap">00BB bbbb</tt>
| style="text-align: right" | <tt style="white-space: nowrap">00BB bbbb</tt>
| RW8
| RW8
| Selects a 1MiB bank accessed via segments 0x4000 through 0xF000.
| Selects a 1MiB bank accessed via memory addresses 0x40000 - 0xFFFFF.
Note that only the top 768KiB of said bank can be read this way.
|-
|-
! $C1
! $C1
| RAM(/ROM) Bank
| RAM Bank
| style="text-align: right" | <tt style="white-space: nowrap">bbbb bbbb</tt>
| style="text-align: right" | <tt style="white-space: nowrap">bbbb bbbb</tt>
| RW8
| RW8
| Selects a 64KiB bank accessed via segment 0x1000.
| Selects a 64KiB bank accessed via memory addresses 0x10000 - 0x1FFFF.
|-
|-
! $C2
! $C2
Line 32: Line 33:
| style="text-align: right" | <tt style="white-space: nowrap">bbbb bbbb</tt>
| style="text-align: right" | <tt style="white-space: nowrap">bbbb bbbb</tt>
| RW8
| RW8
| Selects a 64KiB bank accessed via segment 0x2000.
| Selects a 64KiB bank accessed via memory addresses 0x20000 - 0x2FFFF.
|-
|-
! $C3
! $C3
Line 38: Line 39:
| style="text-align: right" | <tt style="white-space: nowrap">bbbb bbbb</tt>
| style="text-align: right" | <tt style="white-space: nowrap">bbbb bbbb</tt>
| RW8
| RW8
| Selects a 64KiB bank accessed via segment 0x3000.
| Selects a 64KiB bank accessed via memory addresses 0x30000 - 0x3FFFF.
|}
|}


Note that the number of bits in the Linear bank register depends on the mapper.
Note that the number of bits in the Linear bank register depends on the mapper.


The black-and-white WonderSwan expects that the register at $C3 will power up holding $FF.
The "mono" WonderSwan expects that the register at $C3 will power up holding $FF.

Latest revision as of 17:40, 24 November 2024

There are three documented memory-mapping chips used on the WonderSwan and Pocket Challenge V2:

All three provide this same common subset for memory banking:

Category Port Description Bits Type Notes
Extended bankswitching $C0 ROM Linear (EX) Bank 00BB bbbb RW8 Selects a 1MiB bank accessed via memory addresses 0x40000 - 0xFFFFF.

Note that only the top 768KiB of said bank can be read this way.

$C1 RAM Bank bbbb bbbb RW8 Selects a 64KiB bank accessed via memory addresses 0x10000 - 0x1FFFF.
$C2 ROM0 Bank bbbb bbbb RW8 Selects a 64KiB bank accessed via memory addresses 0x20000 - 0x2FFFF.
$C3 ROM1 Bank bbbb bbbb RW8 Selects a 64KiB bank accessed via memory addresses 0x30000 - 0x3FFFF.

Note that the number of bits in the Linear bank register depends on the mapper.

The "mono" WonderSwan expects that the register at $C3 will power up holding $FF.