Como Colaborar - ZeebxTeam/zeebx-emu GitHub Wiki

Como colaborar

Dá para ajudar sem programar: testar jogos, comparar com o console real e relatar o que está diferente já é metade do trabalho. A conversa do dia a dia acontece no Discord.

Relatando um problema (issue)

Antes de abrir, procure nas issues se ele já foi relatado. Se foi, comente lá com o que você tiver de novo.

Uma boa issue diz:

  • A versão do Zeebx (em Configurações › Geral › Atualizações) e qual interface: Qt, egui, Android, iOS, RetroArch ou headless
  • O sistema e a máquina: Windows, Linux ou macOS, e a placa de vídeo. Num Mac, se é Intel ou chip da Apple
  • O jogo e o ponto exato: "depois da fase 1-5", "ao sair da tela de título"
  • O que aconteceu e o que deveria acontecer. Se você tem o console, a comparação com o aparelho de verdade vale ouro
  • As configurações que fazem diferença: 3D na placa ou na CPU, resolução interna, configurações próprias do jogo
  • O log: ligue Gravar cada sessão em arquivo em Configurações › Depuração e anexe o .log da sessão que travou
  • Screenshot (F9) ou vídeo, quando o problema é visual

Não anexe ROMs nem links para elas. O projeto não distribui jogos.

Enviando código (pull request)

  1. Faça um fork e trabalhe numa branch a partir da development
  2. Abra o PR contra a development. A master recebe só os merges de release, e PRs para ela são redirecionados ou fechados
  3. Preencha o modelo do PR: o que mudou, como foi testado e as observações

O que se espera

  • Leia o AGENTS.md. Apesar do nome, ele é o guia do repositório para qualquer pessoa: onde as coisas moram, o que não pode quebrar e como o projeto escreve
  • Mensagem de commit em português, numa frase declarativa que diz o que mudou e por quê, sem prefixo do tipo feat:
  • Comentário explica o porquê, não o quê
  • Afirmação vem com medida. "De 296% para 391% no teste de velocidade", e não "ficou mais rápido"
  • Frontend novo entra em frontends/<nome>/ e ganha um alvo no release.yml, para sair junto na release
  • Dependência nova: confira a licença (nada GPL-2.0-only), atualize o Cargo.lock e rode python3 ferramentas/avisos_de_terceiros.py para regenerar o THIRD-PARTY-NOTICES.txt, no mesmo commit
  • O core Libretro não liga biblioteca do sistema (janela, som, controle). O CI confere
  • Notas de versão: uma mudança que o jogador percebe ganha uma linha no rascunho da próxima versão, em docs/patch-notes/, escrita na linguagem de quem joga

CI

Os workflows de build são disparados à mão (workflow_dispatch), e não a cada push, porque cada execução tem onze jobs. Se o seu PR mexe em algo que só um deles cobre (a APK, o core num alvo ARM, o iOS), avise no PR para alguém disparar aquele workflow.

A tag de versão (v0.0.0) é o único gatilho automático: ela monta a release como rascunho.

Traduções

Os idiomas da interface são arquivos JSON em assets/lang/. Para um idioma novo, copie o en.json, traduza os valores e mande um PR. Para testar sem recompilar, ponha o arquivo na pasta lang dentro da pasta de configurações do Zeebx.

Licença

O código é GPL-2.0-or-later, e os binários da release saem sob a GPLv3, porque ligam bibliotecas Apache-2.0. Ao contribuir, você concorda em licenciar o seu código nos mesmos termos.

⚠️ **GitHub.com Fallback** ⚠️