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

Method incrementY

nes/ppu.go:400–426  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

398}
399
400func (ppu *PPU) incrementY() {
401 // increment vert(v)
402 // if fine Y < 7
403 if ppu.v&0x7000 != 0x7000 {
404 // increment fine Y
405 ppu.v += 0x1000
406 } else {
407 // fine Y = 0
408 ppu.v &= 0x8FFF
409 // let y = coarse Y
410 y := (ppu.v & 0x03E0) >> 5
411 if y == 29 {
412 // coarse Y = 0
413 y = 0
414 // switch vertical nametable
415 ppu.v ^= 0x0800
416 } else if y == 31 {
417 // coarse Y = 0, nametable not switched
418 y = 0
419 } else {
420 // increment coarse Y
421 y++
422 }
423 // put coarse Y back into v
424 ppu.v = (ppu.v & 0xFC1F) | (y << 5)
425 }
426}
427
428func (ppu *PPU) copyX() {
429 // hori(v) = hori(t)

Callers 1

StepMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected