PRG ROM bank mode (0, 1: switch 32 KB at $8000, ignoring low bit of bank number; 2: fix first bank at $8000 and switch 16 KB bank at $C000; 3: fix last bank at $C000 and switch 16 KB bank at $8000) CHR ROM bank mode (0: switch 8 KB at a time; 1: switch two separate 4 KB banks)
()
| 183 | // 3: fix last bank at $C000 and switch 16 KB bank at $8000) |
| 184 | // CHR ROM bank mode (0: switch 8 KB at a time; 1: switch two separate 4 KB banks) |
| 185 | func (m *Mapper1) updateOffsets() { |
| 186 | switch m.prgMode { |
| 187 | case 0, 1: |
| 188 | m.prgOffsets[0] = m.prgBankOffset(int(m.prgBank & 0xFE)) |
| 189 | m.prgOffsets[1] = m.prgBankOffset(int(m.prgBank | 0x01)) |
| 190 | case 2: |
| 191 | m.prgOffsets[0] = 0 |
| 192 | m.prgOffsets[1] = m.prgBankOffset(int(m.prgBank)) |
| 193 | case 3: |
| 194 | m.prgOffsets[0] = m.prgBankOffset(int(m.prgBank)) |
| 195 | m.prgOffsets[1] = m.prgBankOffset(-1) |
| 196 | } |
| 197 | switch m.chrMode { |
| 198 | case 0: |
| 199 | m.chrOffsets[0] = m.chrBankOffset(int(m.chrBank0 & 0xFE)) |
| 200 | m.chrOffsets[1] = m.chrBankOffset(int(m.chrBank0 | 0x01)) |
| 201 | case 1: |
| 202 | m.chrOffsets[0] = m.chrBankOffset(int(m.chrBank0)) |
| 203 | m.chrOffsets[1] = m.chrBankOffset(int(m.chrBank1)) |
| 204 | } |
| 205 | } |
no test coverage detected