30 lines
700 B
Rust
30 lines
700 B
Rust
use log::{debug, info, warn};
|
|
use std::{
|
|
fs::{File, OpenOptions},
|
|
io::{Read, Write},
|
|
str::from_utf8,
|
|
};
|
|
|
|
fn main() -> anyhow::Result<()> {
|
|
pretty_env_logger::try_init()?;
|
|
let controller_data = [0; 4];
|
|
|
|
let mut vblank = File::open("vblank")?;
|
|
let mut input = OpenOptions::new().write(true).open("input")?;
|
|
|
|
info!("ready");
|
|
|
|
loop {
|
|
let mut data = [0; 3];
|
|
info!("waiting for vblank");
|
|
vblank.read(&mut data)?;
|
|
let str = from_utf8(&data)?;
|
|
debug!("got data: {}", str);
|
|
if str == "BYE" {
|
|
warn!("asked to exit by the game");
|
|
return Ok(());
|
|
}
|
|
input.write(&controller_data)?;
|
|
}
|
|
}
|