sm64_binds/
lib.rs

1mod sm64;
2pub use sm64::{SM64GameGenerator, SM64Game, GamePad, GameState, RandomConfig};
3pub mod buttons;
4
5
6#[cfg(test)]
7mod tests {
8    use wasmtime::Error;
9    use crate::{SM64GameGenerator, buttons, GamePad};
10    #[test]
11    fn main() -> Result<(), Error> {
12        // let game_gen = SM64GameGenerator::from_rom_bytes(include_bytes!("../../baserom.us.z64").to_vec())?;
13        let game_gen = SM64GameGenerator::new("../baserom.us.z64")?;
14
15
16        let mut game = game_gen.create_game()?;
17
18        let mut i = 0;
19        while i < 2000 {
20
21            let mut button: u16 = 0;
22            let stick_x: i8 = 0;
23            let mut stick_y: i8 = 0;
24
25            if (150 < i && i < 160) || (200 < i && i < 300) {
26                button = buttons::START_BUTTON;
27            }
28
29            if i > 300 {
30                stick_y = 80;
31            }
32
33            if i % 2 == 0 {
34                button = buttons::A_BUTTON;
35            }
36
37            let pad = GamePad::new(button, stick_x, stick_y);
38            game.step_game(pad)?;
39
40
41            let state = game.get_game_state()?;
42            println!("{}\n", state.to_string());
43            i += 1;
44        }
45
46        Ok(())
47    }
48}