Páginas

Páginas aconselhadas

sexta-feira, 24 de abril de 2026

Godot ZX


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.
Este é um projecto altamente tecnológico e técnico, mas que poderá ser muito útil para os programadores. Convidamo-vos assim a virem aqui experimentar e descarregar o programa do Pedro Barata, a quem desde já agradecemos que nos tenha colocado a par do seu projecto, doutra forma poder-nos-ia ter escapado.

Sem comentários:

Enviar um comentário