2026-03-24 13:40:16 +00:00

1.9 KiB

< Voltar | Sumário >

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

  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 <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:

  • 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 | Sumário >