1.9 KiB
1.9 KiB
Boot Profiles
Versão: 1.0 Status: Proposta
1. Objetivo
Definir como o Prometeu decide o que executar ao iniciar:
- Hub
- Cartucho automaticamente
- Modo debug
2. Conceito de BootTarget
No início do boot, o POS resolve um alvo:
enum BootTarget {
Hub,
Cartridge { path: String, debug: bool },
}
3. Regras Gerais
Se BootTarget == Hub
- Firmware entra em
HubHome - Nenhum cartucho é carregado automaticamente
Se BootTarget == Cartridge
- Carregar cartucho
- Ler
app_modeno manifest - Aplicar regras:
-
Game:- Entrar em
RunningGame
- Entrar em
-
System:- Permanecer em
HubHome - Abrir o app como janela/system tool
- Permanecer em
4. CLI do Host
Boot padrão
prometeu
Resultado: entra no Hub
Executar cartucho
prometeu run <cartucho>
Resultado:
- Game → entra direto no jogo
- System → abre como tool no Hub
Executar com debugger
prometeu debug <cartucho>
Resultado:
- Mesmo fluxo do
run - Runtime inicia em modo debug
- Aguarda conexão do Debugger Java
5. Estados do Firmware
Firmware mantém apenas:
BootHubHomeRunningGameAppCrashed
System apps nunca mudam o estado do firmware.
6. Comportamento em Hardware Real (futuro)
-
Se miniSD/cartucho físico presente no boot:
-
POS pode:
- sempre ir ao Hub, ou
- auto-executar conforme configuração do usuário
-
7. Integração com Debugger
Quando debug == true:
-
Runtime:
- Inicializa
- Abre socket DevTools
- Aguarda comando
start
-
Somente após isso inicia execução do cartucho
8. Estabilidade
- BootTarget é contrato interno do POS
- CLI do host deve respeitar essas regras
- Novos modos de boot devem ser extensões compatíveis