@@ -2,6 +2,7 @@ mod block;
2
2
mod input;
3
3
mod labels;
4
4
mod pushdown;
5
+ mod rng;
5
6
mod sps;
6
7
mod util;
7
8
mod video;
@@ -22,36 +23,14 @@ struct TestOptions {
22
23
sps_seed : u32 ,
23
24
#[ options( help = "print SPS pieces" ) ]
24
25
sps_qty : u32 ,
26
+ #[ options( help = "list RNG seeds" ) ]
27
+ rng_seeds : bool ,
25
28
foo : bool ,
26
29
}
27
30
28
31
fn main ( ) {
29
32
let options = TestOptions :: parse_args_default_or_exit ( ) ;
30
33
31
- if options. foo {
32
- let mut emu = util:: emulator ( None ) ;
33
- let mut view = video:: Video :: new ( ) ;
34
-
35
- // spend a few frames bootstrapping
36
- for _ in 0 ..3 { emu. run_until_vblank ( ) ; }
37
-
38
- emu. memory . iram_raw [ labels:: get ( "practiseType" ) as usize ] = labels:: get ( "MODE_TYPEB" ) as _ ;
39
- emu. memory . iram_raw [ labels:: get ( "gameMode" ) as usize ] = 4 ;
40
- emu. memory . iram_raw [ labels:: get ( "levelNumber" ) as usize ] = 18 ;
41
- emu. memory . iram_raw [ labels:: get ( "typeBModifier" ) as usize ] = 5 ;
42
- let label = labels:: get ( "mainLoop" ) ;
43
- rusticnes_core:: opcodes:: push ( & mut emu, ( label >> 8 ) as u8 ) ;
44
- rusticnes_core:: opcodes:: push ( & mut emu, label as u8 ) ;
45
-
46
- loop {
47
- emu. run_until_vblank ( ) ;
48
- emu. ppu . render_ntsc ( 256 ) ;
49
- view. update ( & emu. ppu . filtered_screen ) ;
50
- }
51
- }
52
-
53
- // TODO: cycle counts for modes
54
-
55
34
// run tests
56
35
if options. test {
57
36
sps:: test ( ) ;
@@ -75,4 +54,32 @@ fn main() {
75
54
}
76
55
println ! ( "" ) ;
77
56
}
57
+
58
+ // other stuff
59
+
60
+ if options. rng_seeds {
61
+ println ! ( "{:?}" , rng:: seeds( ) ) ;
62
+ }
63
+
64
+ if options. foo {
65
+ let mut emu = util:: emulator ( None ) ;
66
+ let mut view = video:: Video :: new ( ) ;
67
+
68
+ // spend a few frames bootstrapping
69
+ for _ in 0 ..3 { emu. run_until_vblank ( ) ; }
70
+
71
+ emu. memory . iram_raw [ labels:: get ( "practiseType" ) as usize ] = labels:: get ( "MODE_TYPEB" ) as _ ;
72
+ emu. memory . iram_raw [ labels:: get ( "gameMode" ) as usize ] = 4 ;
73
+ emu. memory . iram_raw [ labels:: get ( "levelNumber" ) as usize ] = 18 ;
74
+ emu. memory . iram_raw [ labels:: get ( "typeBModifier" ) as usize ] = 5 ;
75
+ let label = labels:: get ( "mainLoop" ) ;
76
+ rusticnes_core:: opcodes:: push ( & mut emu, ( label >> 8 ) as u8 ) ;
77
+ rusticnes_core:: opcodes:: push ( & mut emu, label as u8 ) ;
78
+
79
+ for _ in 0 ..10 {
80
+ emu. run_until_vblank ( ) ;
81
+ emu. ppu . render_ntsc ( 256 ) ;
82
+ view. update ( & emu. ppu . filtered_screen ) ;
83
+ }
84
+ }
78
85
}
0 commit comments