MCPcopy
hub / github.com/fogleman/nes / updateOffsets

Method updateOffsets

nes/mapper4.go:201–234  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

199}
200
201func (m *Mapper4) updateOffsets() {
202 switch m.prgMode {
203 case 0:
204 m.prgOffsets[0] = m.prgBankOffset(int(m.registers[6]))
205 m.prgOffsets[1] = m.prgBankOffset(int(m.registers[7]))
206 m.prgOffsets[2] = m.prgBankOffset(-2)
207 m.prgOffsets[3] = m.prgBankOffset(-1)
208 case 1:
209 m.prgOffsets[0] = m.prgBankOffset(-2)
210 m.prgOffsets[1] = m.prgBankOffset(int(m.registers[7]))
211 m.prgOffsets[2] = m.prgBankOffset(int(m.registers[6]))
212 m.prgOffsets[3] = m.prgBankOffset(-1)
213 }
214 switch m.chrMode {
215 case 0:
216 m.chrOffsets[0] = m.chrBankOffset(int(m.registers[0] & 0xFE))
217 m.chrOffsets[1] = m.chrBankOffset(int(m.registers[0] | 0x01))
218 m.chrOffsets[2] = m.chrBankOffset(int(m.registers[1] & 0xFE))
219 m.chrOffsets[3] = m.chrBankOffset(int(m.registers[1] | 0x01))
220 m.chrOffsets[4] = m.chrBankOffset(int(m.registers[2]))
221 m.chrOffsets[5] = m.chrBankOffset(int(m.registers[3]))
222 m.chrOffsets[6] = m.chrBankOffset(int(m.registers[4]))
223 m.chrOffsets[7] = m.chrBankOffset(int(m.registers[5]))
224 case 1:
225 m.chrOffsets[0] = m.chrBankOffset(int(m.registers[2]))
226 m.chrOffsets[1] = m.chrBankOffset(int(m.registers[3]))
227 m.chrOffsets[2] = m.chrBankOffset(int(m.registers[4]))
228 m.chrOffsets[3] = m.chrBankOffset(int(m.registers[5]))
229 m.chrOffsets[4] = m.chrBankOffset(int(m.registers[0] & 0xFE))
230 m.chrOffsets[5] = m.chrBankOffset(int(m.registers[0] | 0x01))
231 m.chrOffsets[6] = m.chrBankOffset(int(m.registers[1] & 0xFE))
232 m.chrOffsets[7] = m.chrBankOffset(int(m.registers[1] | 0x01))
233 }
234}

Callers 2

writeBankSelectMethod · 0.95
writeBankDataMethod · 0.95

Calls 2

prgBankOffsetMethod · 0.95
chrBankOffsetMethod · 0.95

Tested by

no test coverage detected