File tree Expand file tree Collapse file tree 3 files changed +46
-4
lines changed Expand file tree Collapse file tree 3 files changed +46
-4
lines changed Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ mod rng;
13
13
mod score;
14
14
mod sps;
15
15
mod toprow;
16
+ mod tspins;
16
17
17
18
use gumdrop:: Options ;
18
19
@@ -45,6 +46,8 @@ fn main() {
45
46
if options. test {
46
47
floor:: test ( ) ;
47
48
println ! ( ">> floor ✅" ) ;
49
+ tspins:: test ( ) ;
50
+ println ! ( ">> tspins ✅" ) ;
48
51
toprow:: test ( ) ;
49
52
println ! ( ">> top row bug ✅" ) ;
50
53
score:: test ( ) ;
@@ -125,8 +128,7 @@ fn main() {
125
128
emu. run_until_vblank ( ) ;
126
129
}
127
130
128
- emu. ppu . render_ntsc ( video:: WIDTH ) ;
129
- view. update ( & emu. ppu . filtered_screen ) ;
131
+ view. render ( & mut emu) ;
130
132
} ) ;
131
133
loop { }
132
134
}
Original file line number Diff line number Diff line change
1
+ use crate :: { util, labels, playfield} ;
2
+
3
+ pub fn test ( ) {
4
+ let mut emu = util:: emulator ( None ) ;
5
+
6
+ for _ in 0 ..4 {
7
+ emu. run_until_vblank ( ) ;
8
+ }
9
+
10
+ let practise_type = labels:: get ( "practiseType" ) as usize ;
11
+ let game_mode = labels:: get ( "gameMode" ) as usize ;
12
+ let main_loop = labels:: get ( "mainLoop" ) ;
13
+ let level_number = labels:: get ( "levelNumber" ) as usize ;
14
+
15
+
16
+ emu. memory . iram_raw [ practise_type] = labels:: get ( "MODE_TSPINS" ) as _ ;
17
+ emu. memory . iram_raw [ level_number] = 18 ;
18
+ emu. memory . iram_raw [ game_mode] = 4 ;
19
+
20
+ emu. registers . pc = main_loop;
21
+
22
+ for _ in 0 ..10 {
23
+ emu. run_until_vblank ( ) ;
24
+ }
25
+
26
+ let offset = |x, y| x + ( y * 256 ) ;
27
+
28
+ // check playfield
29
+ assert_eq ! ( r##"
30
+ ###### ##
31
+ ##### ##
32
+ ###### ###
33
+ ##########
34
+ "## . trim( ) , playfield:: get_str( & emu) . trim( ) ) ;
35
+
36
+ // check pixel is actually rendered
37
+ assert_eq ! ( emu. ppu. screen[ offset( 96 , 176 ) as usize ] , 0x30 ) ;
38
+ }
Original file line number Diff line number Diff line change
1
+ use rusticnes_core:: nes:: NesState ;
1
2
use minifb:: { Window , WindowOptions } ;
2
3
3
4
pub const WIDTH : usize = 256 ;
@@ -24,7 +25,8 @@ impl Video {
24
25
}
25
26
}
26
27
27
- pub fn update ( & mut self , screen : & Vec < u32 > ) {
28
- self . window . update_with_buffer ( screen, WIDTH , HEIGHT ) . unwrap ( ) ;
28
+ pub fn render ( & mut self , emu : & mut NesState ) {
29
+ emu. ppu . render_ntsc ( WIDTH ) ;
30
+ self . window . update_with_buffer ( & emu. ppu . filtered_screen , WIDTH , HEIGHT ) . unwrap ( ) ;
29
31
}
30
32
}
You can’t perform that action at this time.
0 commit comments