diff options
Diffstat (limited to 'src/bin/cobalt.rs')
-rw-r--r-- | src/bin/cobalt.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/bin/cobalt.rs b/src/bin/cobalt.rs new file mode 100644 index 0000000..172ecb9 --- /dev/null +++ b/src/bin/cobalt.rs @@ -0,0 +1,45 @@ +use bedrock_pc::*; +use phosphor::*; + + +fn main() { + let bytecode = include_bytes!("cobalt.br"); + let metadata = parse_metadata(bytecode); + + let config = EmulatorConfig { + dimensions: ScreenDimensions::new(1024,720) / 3, + fullscreen: false, + scale: 3, + debug_palette: None, + show_cursor: false, + initial_transmission: None, + decode_stdin: false, + encode_stdout: false, + symbols_path: None, + }; + if let Ok(mut phosphor) = Phosphor::new() { + let mut graphical = GraphicalEmulator::new(&config, false); + graphical.load_program(bytecode); + let program_name = match &metadata { + Some(metadata) => match &metadata.name { + Some(name) => name.to_string(), + None => String::from("Bedrock"), + } + None => String::from("Bedrock"), + }; + let window = WindowBuilder { + dimensions: Some(graphical.dimensions()), + size_bounds: Some(graphical.size_bounds()), + fullscreen: graphical.fullscreen, + scale: graphical.scale, + title: Some(program_name), + cursor: None, + icon: None, + program: Box::new(graphical), + }; + phosphor.create_window(window); + phosphor.run().unwrap(); + } else { + eprintln!("Could not create program window.") + } +} |