This commit is contained in:
Nilton Constantino 2026-01-16 17:51:45 +00:00
parent f472aeaa29
commit 293d1029a2
No known key found for this signature in database
6 changed files with 22 additions and 20 deletions

View File

@ -1,4 +1,4 @@
use crate::firmware::firmware_state::{FirmwareState, InitAppStep, ResetStep}; use crate::firmware::firmware_state::{FirmwareState, LoadGameStep, ResetStep};
use crate::firmware::prometeu_context::PrometeuContext; use crate::firmware::prometeu_context::PrometeuContext;
use crate::hardware::{HardwareBridge, InputSignals}; use crate::hardware::{HardwareBridge, InputSignals};
use crate::model::Cartridge; use crate::model::Cartridge;
@ -59,8 +59,8 @@ impl Firmware {
FirmwareState::SplashScreen(s) => s.on_enter(&mut req), FirmwareState::SplashScreen(s) => s.on_enter(&mut req),
FirmwareState::LaunchHub(s) => s.on_enter(&mut req), FirmwareState::LaunchHub(s) => s.on_enter(&mut req),
FirmwareState::HubHome(s) => s.on_enter(&mut req), FirmwareState::HubHome(s) => s.on_enter(&mut req),
FirmwareState::LoadApp(s) => s.on_enter(&mut req), FirmwareState::LoadGame(s) => s.on_enter(&mut req),
FirmwareState::AppRunning(s) => s.on_enter(&mut req), FirmwareState::GameRunning(s) => s.on_enter(&mut req),
FirmwareState::AppCrashes(s) => s.on_enter(&mut req), FirmwareState::AppCrashes(s) => s.on_enter(&mut req),
} }
} }
@ -78,8 +78,8 @@ impl Firmware {
FirmwareState::SplashScreen(s) => s.on_update(&mut req), FirmwareState::SplashScreen(s) => s.on_update(&mut req),
FirmwareState::LaunchHub(s) => s.on_update(&mut req), FirmwareState::LaunchHub(s) => s.on_update(&mut req),
FirmwareState::HubHome(s) => s.on_update(&mut req), FirmwareState::HubHome(s) => s.on_update(&mut req),
FirmwareState::LoadApp(s) => s.on_update(&mut req), FirmwareState::LoadGame(s) => s.on_update(&mut req),
FirmwareState::AppRunning(s) => s.on_update(&mut req), FirmwareState::GameRunning(s) => s.on_update(&mut req),
FirmwareState::AppCrashes(s) => s.on_update(&mut req), FirmwareState::AppCrashes(s) => s.on_update(&mut req),
} }
} }
@ -97,14 +97,14 @@ impl Firmware {
FirmwareState::SplashScreen(s) => s.on_exit(&mut req), FirmwareState::SplashScreen(s) => s.on_exit(&mut req),
FirmwareState::LaunchHub(s) => s.on_exit(&mut req), FirmwareState::LaunchHub(s) => s.on_exit(&mut req),
FirmwareState::HubHome(s) => s.on_exit(&mut req), FirmwareState::HubHome(s) => s.on_exit(&mut req),
FirmwareState::LoadApp(s) => s.on_exit(&mut req), FirmwareState::LoadGame(s) => s.on_exit(&mut req),
FirmwareState::AppRunning(s) => s.on_exit(&mut req), FirmwareState::GameRunning(s) => s.on_exit(&mut req),
FirmwareState::AppCrashes(s) => s.on_exit(&mut req), FirmwareState::AppCrashes(s) => s.on_exit(&mut req),
} }
} }
pub fn load_cartridge(&mut self, cartridge: Cartridge) { pub fn load_cartridge(&mut self, cartridge: Cartridge) {
self.state = FirmwareState::LoadApp(InitAppStep { cartridge }); self.state = FirmwareState::LoadGame(LoadGameStep { cartridge });
self.state_initialized = false; self.state_initialized = false;
} }
} }

View File

@ -2,8 +2,8 @@ pub use crate::firmware::firmware_step_reset::ResetStep;
pub use crate::firmware::firmware_step_splash_screen::SplashScreenStep; pub use crate::firmware::firmware_step_splash_screen::SplashScreenStep;
pub use crate::firmware::firmware_step_launch_hub::LaunchHubStep; pub use crate::firmware::firmware_step_launch_hub::LaunchHubStep;
pub use crate::firmware::firmware_step_hub_home::HubHomeStep; pub use crate::firmware::firmware_step_hub_home::HubHomeStep;
pub use crate::firmware::firmware_step_init_app::InitAppStep; pub use crate::firmware::firmware_step_load_game::LoadGameStep;
pub use crate::firmware::firmware_step_run_app::RunAppStep; pub use crate::firmware::firmware_step_game_running::GameRunningStep;
pub use crate::firmware::firmware_step_crash_screen::AppCrashesStep; pub use crate::firmware::firmware_step_crash_screen::AppCrashesStep;
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
@ -12,7 +12,7 @@ pub enum FirmwareState {
SplashScreen(SplashScreenStep), SplashScreen(SplashScreenStep),
LaunchHub(LaunchHubStep), LaunchHub(LaunchHubStep),
HubHome(HubHomeStep), HubHome(HubHomeStep),
AppRunning(RunAppStep), LoadGame(LoadGameStep),
LoadApp(InitAppStep), GameRunning(GameRunningStep),
AppCrashes(AppCrashesStep), AppCrashes(AppCrashesStep),
} }

View File

@ -2,9 +2,9 @@ use crate::firmware::firmware_state::{AppCrashesStep, FirmwareState};
use crate::firmware::prometeu_context::PrometeuContext; use crate::firmware::prometeu_context::PrometeuContext;
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct RunAppStep; pub struct GameRunningStep;
impl RunAppStep { impl GameRunningStep {
pub fn on_enter(&mut self, _ctx: &mut PrometeuContext) {} pub fn on_enter(&mut self, _ctx: &mut PrometeuContext) {}
pub fn on_update(&mut self, ctx: &mut PrometeuContext) -> Option<FirmwareState> { pub fn on_update(&mut self, ctx: &mut PrometeuContext) -> Option<FirmwareState> {

View File

@ -1,19 +1,19 @@
use crate::firmware::firmware_state::{FirmwareState, RunAppStep}; use crate::firmware::firmware_state::{FirmwareState, GameRunningStep};
use crate::firmware::prometeu_context::PrometeuContext; use crate::firmware::prometeu_context::PrometeuContext;
use crate::model::Cartridge; use crate::model::Cartridge;
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct InitAppStep { pub struct LoadGameStep {
pub cartridge: Cartridge, pub cartridge: Cartridge,
} }
impl InitAppStep { impl LoadGameStep {
pub fn on_enter(&mut self, ctx: &mut PrometeuContext) { pub fn on_enter(&mut self, ctx: &mut PrometeuContext) {
ctx.os.initialize_vm(ctx.vm, &self.cartridge); ctx.os.initialize_vm(ctx.vm, &self.cartridge);
} }
pub fn on_update(&mut self, _ctx: &mut PrometeuContext) -> Option<FirmwareState> { pub fn on_update(&mut self, _ctx: &mut PrometeuContext) -> Option<FirmwareState> {
Some(FirmwareState::AppRunning(RunAppStep)) Some(FirmwareState::GameRunning(GameRunningStep))
} }
pub fn on_exit(&mut self, _ctx: &mut PrometeuContext) {} pub fn on_exit(&mut self, _ctx: &mut PrometeuContext) {}

View File

@ -5,8 +5,8 @@ pub(crate) mod firmware_step_reset;
pub(crate) mod firmware_step_splash_screen; pub(crate) mod firmware_step_splash_screen;
pub(crate) mod firmware_step_launch_hub; pub(crate) mod firmware_step_launch_hub;
pub(crate) mod firmware_step_hub_home; pub(crate) mod firmware_step_hub_home;
pub(crate) mod firmware_step_init_app; pub(crate) mod firmware_step_load_game;
pub(crate) mod firmware_step_run_app; pub(crate) mod firmware_step_game_running;
pub(crate) mod firmware_step_crash_screen; pub(crate) mod firmware_step_crash_screen;
mod prometeu_context; mod prometeu_context;

View File

@ -3,6 +3,8 @@ use crate::virtual_machine::Program;
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct AppHeader { pub struct AppHeader {
pub app_id: String, pub app_id: String,
pub magic: u32,
pub version: u16,
pub title: String, pub title: String,
pub entrypoint: u32, pub entrypoint: u32,
} }