Skip to content

Commit ca28ac5

Browse files
committed
Print info when PC is at nmi:
1 parent 8cf94ef commit ca28ac5

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

tests/src/crash.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ pub fn fuzz() {
3030
let play_state = 0x48;
3131
let p1_play_state = 0x68;
3232

33+
let nmi_label = 0x8005;
3334
emu.memory.iram_raw[game_mode] = 4;
3435
emu.registers.pc = main_loop;
3536

@@ -85,28 +86,32 @@ pub fn fuzz() {
8586
break;
8687
}
8788

88-
let address = ((emu.registers.s) as u16) + 0x0100;
89-
let address1 = ((emu.registers.s) as u16) + 0x0101;
89+
let address = ((emu.registers.s) as u16) + 0x0102;
90+
let address1 = ((emu.registers.s) as u16) + 0x0103;
9091

9192

92-
println!("{}", emu.registers.pc);
93-
emu.memory.iram_raw[0x100..0x200].iter().for_each(|b| {
94-
print!("{:x} ", b);
93+
println!("PC: {:04x}", emu.registers.pc);
94+
emu.memory.iram_raw[0x100..0x200].iter().enumerate().for_each(|(i,b)| {
95+
if (i % 16) == 0 {print!("\n{:04x}: ", i + 0x100);}
96+
print!("{:02x} ", b);
9597
});
9698
println!("");
97-
print!("{:x} ", emu.memory.iram_raw[address as usize]);
98-
println!("{:x}", emu.memory.iram_raw[address1 as usize]);
99-
println!("{:x}", emu.registers.s);
100-
println!("{}", emu.ppu.current_scanline);
101-
emu.run_until_vblank();
99+
print!("{:02x} ", emu.memory.iram_raw[address as usize]);
100+
println!("{:02x}", emu.memory.iram_raw[address1 as usize]);
101+
println!("SP: {:02x}", emu.registers.s);
102+
println!("SL: {:02x}", emu.ppu.current_scanline);
103+
loop {
104+
emu.cycle();
105+
if emu.registers.pc == nmi_label { break };
106+
}
102107
}
103108

104-
println!("{}", emu.registers.pc);
109+
println!("PC: {:04x}", emu.registers.pc);
105110

106111
video::preview(&mut emu);
107112

108113

109-
println!("{}", emu.memory.iram_raw[p1_push_down]);
114+
println!("PD: {:02x}", emu.memory.iram_raw[p1_push_down]);
110115

111116
// uncrash by replacing the PC
112117
}

0 commit comments

Comments
 (0)