Add new testcases with cc65 support
Some checks failed
Cargo Build & Test / Rust project - latest (stable) (push) Failing after 8s
Some checks failed
Cargo Build & Test / Rust project - latest (stable) (push) Failing after 8s
This commit is contained in:
@@ -158,13 +158,16 @@ impl DebuggerState {
|
||||
],
|
||||
]
|
||||
.spacing(5.),
|
||||
scrollable(column(
|
||||
nes.debug_log()
|
||||
.history()
|
||||
.into_iter()
|
||||
.rev()
|
||||
.map(|s| text(s).line_height(0.9).into())
|
||||
).spacing(0))
|
||||
scrollable(
|
||||
column(
|
||||
nes.debug_log()
|
||||
.history()
|
||||
.into_iter()
|
||||
.rev()
|
||||
.map(|s| text(s).line_height(0.9).into())
|
||||
)
|
||||
.spacing(0)
|
||||
)
|
||||
.width(Fill),
|
||||
],],
|
||||
]
|
||||
@@ -176,11 +179,20 @@ impl DebuggerState {
|
||||
fn run_n_clock_cycles(nes: &mut NES, n: usize) {
|
||||
for _ in 0..n {
|
||||
nes.run_one_clock_cycle();
|
||||
if nes.halted {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fn run_until(nes: &mut NES, mut f: impl FnMut(CycleResult, &NES) -> bool) {
|
||||
fn run_until(nes: &mut NES, mut f: impl FnMut(CycleResult, &NES) -> bool, mut count: usize) {
|
||||
loop {
|
||||
if f(nes.run_one_clock_cycle(), nes) {
|
||||
count -= 1;
|
||||
if count <= 0 {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if nes.halted {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -196,13 +208,15 @@ impl DebuggerState {
|
||||
DebuggerMessage::SetFrames(n) => self.frames = n,
|
||||
DebuggerMessage::RunPPUCycles => Self::run_n_clock_cycles(nes, self.ppu_cycles),
|
||||
DebuggerMessage::RunCPUCycles => Self::run_n_clock_cycles(nes, self.cpu_cycles * 3),
|
||||
DebuggerMessage::RunInstructions => Self::run_until(nes, |c, _| c.cpu_exec),
|
||||
DebuggerMessage::RunInstructions => {
|
||||
Self::run_until(nes, |c, _| c.cpu_exec, self.instructions)
|
||||
}
|
||||
DebuggerMessage::RunScanLines => Self::run_n_clock_cycles(nes, self.scan_lines * 341),
|
||||
DebuggerMessage::RunToScanLine => {
|
||||
Self::run_until(nes, |_, n| n.ppu.scanline == self.to_scan_line)
|
||||
Self::run_until(nes, |_, n| n.ppu.scanline == self.to_scan_line, 1)
|
||||
}
|
||||
DebuggerMessage::RunFrames => Self::run_n_clock_cycles(nes, self.frames * 341 * 262),
|
||||
DebuggerMessage::Run => todo!(),
|
||||
DebuggerMessage::Run => Self::run_until(nes, |_, nes| nes.halted, 1),
|
||||
DebuggerMessage::Pause => todo!(),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user