MCPcopy Create free account
hub / github.com/fogleman/nes / updateOffsets

Method updateOffsets

nes/mapper1.go:185–205  ·  view source on GitHub ↗

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)

()

Source from the content-addressed store, hash-verified

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)
185func (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}

Callers 4

writeControlMethod · 0.95
writeCHRBank0Method · 0.95
writeCHRBank1Method · 0.95
writePRGBankMethod · 0.95

Calls 2

prgBankOffsetMethod · 0.95
chrBankOffsetMethod · 0.95

Tested by

no test coverage detected