< [Voltar](chapter-13.md) | [Sumário](table-of-contents.md) > # 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: ```rust 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 1. Carregar cartucho 2. Ler `app_mode` no manifest 3. Aplicar regras: * `Game`: * Entrar em `RunningGame` * `System`: * Permanecer em `HubHome` * Abrir o app como janela/system tool --- ## 4. CLI do Host ### Boot padrão ``` prometeu ``` Resultado: entra no Hub ### Executar cartucho ``` prometeu run ``` Resultado: * Game → entra direto no jogo * System → abre como tool no Hub ### Executar com debugger ``` prometeu debug ``` Resultado: * Mesmo fluxo do `run` * Runtime inicia em modo debug * Aguarda conexão do Debugger Java --- ## 5. Estados do Firmware Firmware mantém apenas: * `Boot` * `HubHome` * `RunningGame` * `AppCrashed` 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 < [Voltar](chapter-13.md) | [Sumário](table-of-contents.md) >