Não é todos os dias que recebemos "correspondência" de programadores Portugueses a mostrarem-nos o seu trabalho, como foi o caso do Pedro Barata. E o projecto que aqui hoje divulgamos, é surpreendente e bastante meritório. Ora vejamos, nas palavras do seu criador...
Godot ZX é um emulador de ZX Spectrum de alta performance integrado no Godot 4.3+ através de Rust e GDExtension. Este projeto foi desenhado para ser modular, pronto para a Steam e com suporte total para Gamepads.
Especificações Técnicas:
- Core: rustzx-core (Rust)
- Ponte Godot: godot-rust (GDExtension)
- Versão do Rust: 1.95.0
- Versão do Godot: 4.3 ou superior
O projeto suporta dois fluxos de trabalho principais:
- Versão Launcher (Multi-jogo): Utiliza Scenes/Launcher/Launcher.tscn como cena principal. Permite ao utilizador navegar numa lista de jogos e escolher dinamicamente entre os modelos 48K e 128K.
- Versão Standalone (Jogo único): Utiliza as cenas em Scenes/Standalone/. Estas foram desenhadas para a distribuição de um jogo específico (ex: lançamento na Steam). Não apresentam menus de seleção; em vez disso, iniciam diretamente o ficheiro de jogo pré-configurado, oferecendo uma experiência focada num único título.
Componentes Principais:
1. Emulador (Main48K / Main128K)
Este é o coração do projeto. Integra a biblioteca em Rust para gerir:
- Renderização de Vídeo: Converte o buffer de memória do Spectrum numa Texture2D do Godot em tempo real.
- Áudio Dinâmico: Utiliza o AudioStreamGenerator do Godot para processar amostras de som de alta fidelidade geradas pelo core em Rust.
- Mapeamento de Input: Traduz as ações de input do Godot (teclado, comando ou rato) para a matriz de teclas clássica do ZX Spectrum e suporta emulação completa de rato via interface Kempston Mouse.
2. GameMenu (Overlay)
Uma camada de interface intuitiva que aparece quando o jogo é pausado. Oferece:
- Gestão de Estados: Salva ou carrega instantaneamente o progresso do jogo (snapshots).
- Controlo de Áudio: Ajuste de volume em tempo real através de sliders.
- Navegação: Acesso rápido para retomar o jogo, voltar ao Launcher ou sair da aplicação.
- Configuração do Sistema (Config.gd)
3. A classe estática centralizada Config gere:
- Verificação automática de pastas ao iniciar.
- Caminhos globais para ROMs e Jogos.
- Troca de dados entre o Launcher e o Emulador.
4. Funcionalidades Extras:
- Gamepad Ready: Todos os menus e o emulador são mapeáveis através do Input Map do Godot.
- Suporte a Rato: Suporte completo para input de rato (emulação Kempston Mouse) em jogos e menus.
- Steam Ready: Estrutura preparada para gerar executáveis únicos (.exe / .x86_64) com um jogo embutido usando a cena Standalone.
- Save States: Sistema de snapshots para salvar e carregar o progresso do jogo instantaneamente.


Sem comentários:
Enviar um comentário