3.2 KiB
PROMETEU Runtime
PROMETEU é um runtime educacional e experimental inspirado em consoles clássicos, com foco em ensinar programação, arquitetura de sistemas e conceitos de hardware através de software.
Este repositório contém o runtime do PROMETEU, implementado em Rust, responsável por:
- simular um “hardware lógico” simples
- executar programas (futuros cartuchos) em um loop determinístico
- abstrair plataformas modernas (desktop, mobile, etc.) de forma consistente
PROMETEU é uma máquina virtual simples, explícita e didática.
🎯 Objetivos do Runtime
- Executar um loop fixo (60 Hz)
- Manter um framebuffer de baixa resolução (estilo console)
- Fornecer periféricos simples e determinísticos:
- GFX (framebuffer + double buffer)
- INPUT (D-Pad, botões)
- TOUCH (ponteiro absoluto, single-touch)
- Garantir portabilidade total entre plataformas
- Servir como base para ensino, game jams e experimentação
🧠 Filosofia de Design
- Sem magia: tudo é explícito
- Sem heurística implícita: o runtime não “adivinha intenções”
- Determinístico: mesmo input → mesmo resultado
- Hardware-first: APIs modelam periféricos, não frameworks modernos
- Portável por definição: se não funciona em todas as plataformas, não existe
📦 Estrutura do Projeto (Monorepo)
Este repositório usa um Cargo Workspace (monorepo):
runtime/
Cargo.toml # Workspace root
rust-toolchain.toml # Versão do Rust (fixa)
crates/
prometeu-core/ # PROMETEU Core (hardware lógico)
prometeu-runtime-desktop/ # Host desktop (janela, input real, present)
cart-demo/ # Cartucho/demo hardcoded (temporário)
crates/prometeu-core
Contém o núcleo do PROMETEU:
- loop lógico
- periféricos
- framebuffer
- nenhuma dependência de sistema operacional
crates/prometeu-runtime-desktop
Implementação de host para desktop:
- cria janela
- traduz teclado/mouse/touch do SO para o core
- apresenta o framebuffer na tela
crates/cart-demo
Código de demonstração hardcoded. Será substituído futuramente por:
- cartuchos
- bytecode
- scripts
🖥️ Plataformas
Atualmente:
- Desktop (primeiro alvo)
Planejado:
- Mobile
- Steam Deck
- Hardware dedicado (experimental, longo prazo)
🛠️ Requisitos
- Rust (via
rustup) - Toolchain definido em
rust-toolchain.toml
Instalação do Rust:
rustup-init
▶️ Como rodar
Na raiz do repositório:
cargo build
cargo run -p prometeu-runtime-desktop
No início, o host apenas valida:
- loop 60 Hz
- execução do core
- estrutura do runtime
🚧 Status do Projeto
⚠️ Em estágio inicial (bootstrap)
O foco atual é:
- validar arquitetura
- validar loop e periféricos
- manter simplicidade máxima
Nada aqui deve ser considerado API estável ainda.
📜 Licença
A definir.
✨ Nota Final
PROMETEU é tanto um projeto técnico quanto pedagógico.
A ideia não é esconder complexidade, mas expor a complexidade certa, no nível certo, para que ela possa ser entendida, estudada e explorada.