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 | | 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 | | 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 | | 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 | | 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 | | 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 | 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:
- Bandai 2001
- Bandai 2003
- KARNAK (Pocket Challenge V2 cartridges only)
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.