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