Skip to content

Commit 204822a

Browse files
committed
foo
1 parent be41d15 commit 204822a

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

tests/src/crash.rs

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ pub fn fuzz() {
3131
let p1_play_state = 0x68;
3232

3333
let nmi_label = 0x8005;
34+
let switch_label = 0xAC82;
3435
emu.memory.iram_raw[game_mode] = 4;
3536
emu.registers.pc = main_loop;
3637

@@ -81,30 +82,48 @@ pub fn fuzz() {
8182

8283
// set framecounter, vramrow
8384

84-
for _ in 0..30 {
85+
'outer: for _ in 0..30 {
8586
if emu.memory.iram_raw[play_state] == 5 || emu.memory.iram_raw[p1_play_state] == 5 {
8687
break;
8788
}
8889

8990
let address = ((emu.registers.s) as u16) + 0x0102;
9091
let address1 = ((emu.registers.s) as u16) + 0x0103;
9192

93+
loop {
94+
emu.cycle();
95+
if emu.registers.pc < 0x800 { println!("1"); break 'outer };
96+
if emu.registers.pc == nmi_label { println!("2"); break };
97+
}
9298

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);
97-
});
98-
println!("");
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 };
99+
println!("-----------------");
100+
loop {
101+
emu.cycle();
102+
println!("0");
103+
if emu.registers.pc < 0x800 { println!("1"); break 'outer };
104+
if emu.registers.pc == 0xAc95 { println!("2");
105+
106+
println!("PC: {:04x}", emu.registers.pc);
107+
emu.memory.iram_raw[0x100..0x200].iter().enumerate().for_each(|(i,b)| {
108+
if (i % 16) == 0 {print!("\n{:04x}: ", i + 0x100);}
109+
print!("{:02x} ", b);
110+
});
111+
println!("");
112+
print!("{:02x} ", emu.memory.iram_raw[address as usize]);
113+
println!("{:02x}", emu.memory.iram_raw[address1 as usize]);
114+
115+
print!("{:02x} ", emu.memory.iram_raw[0]);
116+
println!("{:02x}", emu.memory.iram_raw[1]);
117+
println!("SP: {:02x}", emu.registers.s);
118+
println!("SL: {:02x}", emu.ppu.current_scanline);
119+
120+
break };
106121
}
107122
}
123+
println!("-----------------");
124+
125+
print!("{:02x} ", emu.memory.iram_raw[0]);
126+
println!("{:02x}", emu.memory.iram_raw[1]);
108127

109128
println!("PC: {:04x}", emu.registers.pc);
110129

0 commit comments

Comments
 (0)