@@ -31,6 +31,7 @@ pub fn fuzz() {
31
31
let p1_play_state = 0x68 ;
32
32
33
33
let nmi_label = 0x8005 ;
34
+ let switch_label = 0xAC82 ;
34
35
emu. memory . iram_raw [ game_mode] = 4 ;
35
36
emu. registers . pc = main_loop;
36
37
@@ -81,30 +82,48 @@ pub fn fuzz() {
81
82
82
83
// set framecounter, vramrow
83
84
84
- for _ in 0 ..30 {
85
+ ' outer : for _ in 0 ..30 {
85
86
if emu. memory . iram_raw [ play_state] == 5 || emu. memory . iram_raw [ p1_play_state] == 5 {
86
87
break ;
87
88
}
88
89
89
90
let address = ( ( emu. registers . s ) as u16 ) + 0x0102 ;
90
91
let address1 = ( ( emu. registers . s ) as u16 ) + 0x0103 ;
91
92
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
+ }
92
98
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 } ;
106
121
}
107
122
}
123
+ println ! ( "-----------------" ) ;
124
+
125
+ print ! ( "{:02x} " , emu. memory. iram_raw[ 0 ] ) ;
126
+ println ! ( "{:02x}" , emu. memory. iram_raw[ 1 ] ) ;
108
127
109
128
println ! ( "PC: {:04x}" , emu. registers. pc) ;
110
129
0 commit comments