#[repr(u8)]pub enum EventBpKind {
Nmi = 0,
Irq = 1,
Sprite0Hit = 2,
OamDma = 3,
DmcDma = 4,
PpuRead = 5,
PpuWrite = 6,
ApuRead = 7,
ApuWrite = 8,
MapperRead = 9,
MapperWrite = 10,
}Expand description
v1.4.0 Workstream D (D2) — the class of hardware event an event-driven breakpoint can trigger on.
These are tapped at the SAME observational commit points the event-viewer /
interrupt-service / bus-access logs already use (Bus::cpu_read,
Bus::cpu_write, Bus::notify_irq_service, the DMC-DMA GET, the $4014
write). A hit only RECORDS the event (kind + PPU position); it never mutates
emulator-visible state, so the determinism contract holds and the
feature-off build is byte-identical.
The 16 categories are packed into a u16 arm mask (see
LockstepBus::set_event_breakpoints); the bit index is the discriminant.
Variants§
Nmi = 0
An NMI service entry ($FFFA), observed at the interrupt-service commit.
Irq = 1
An IRQ / BRK service entry ($FFFE), observed at the same commit.
Sprite0Hit = 2
A sprite-0 hit, observed when the CPU reads $2002 with bit 6 set (the
point games actually detect the hit; purely observational).
OamDma = 3
An OAM DMA, observed at the $4014 write that starts it.
DmcDma = 4
A DMC DMA sample fetch (the GET cycle).
PpuRead = 5
A PPU-register read ($2000-$3FFF).
PpuWrite = 6
A PPU-register write ($2000-$3FFF).
ApuRead = 7
An APU / I/O-register read ($4000-$4017).
ApuWrite = 8
An APU / I/O-register write ($4000-$4017).
MapperRead = 9
A mapper-register read ($4020-$FFFF).
MapperWrite = 10
A mapper-register write ($4020-$FFFF).
Implementations§
Trait Implementations§
Source§impl Clone for EventBpKind
impl Clone for EventBpKind
Source§fn clone(&self) -> EventBpKind
fn clone(&self) -> EventBpKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more