summaryrefslogtreecommitdiff
path: root/src/bin/cobalt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/cobalt.rs')
-rw-r--r--src/bin/cobalt.rs45
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.")
+ }
+}