Skip to content

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 20 Oct 18:25
· 93 commits to main since this release

Build automática gerada pelo GitHub Actions.

Mudanças nesta versão:

  • Testes de regressão para o buffer de snapshots, os 256 opcodes da CPU em oito cenários por opcode e o decaimento do barramento de I/O da PPU, incluindo vencimentos independentes por bit e restauração de save states. Integrados ao CTest também os 48 casos existentes de sprite overflow.

  • Testes de integração SDL3 com drivers de áudio/vídeo dummy, renderização por software e gamepads virtuais, permitindo execução sem sessão gráfica.

  • Bateria integrada aos Mappers004 (MMC3 e MMC6), 005 e à extensão de RAM externa do Mapper009 declarada pelo cabeçalho. MMC6 persiste 1 KiB; MMC5 guarda PRG-NVRAM do primeiro chip e ExRAM interna, mantendo RAM volátil separada nas placas ETROM. No iNES MMC5 sem tamanho explícito, o superset de 64 KiB passa a separar 32 KiB persistentes e 32 KiB voláteis quando há bateria.

  • Política de gravação ao fechar/trocar/descarregar, sem autosave periódico. Suíte CTest battery com arquivos reais e novas sessões; validação manual pendente.

  • Infraestrutura comum de bateria: contrato de memória persistente em Mapper/Mapper.cpp, leitura/gravação de arquivos em BatterySave e coordenação pelo cartucho/console. Primeiro mapper integrado: MMC1, incluindo Zelda, RAM/NVRAM explícita e segundo chip persistente de SOROM/SZROM. Arquivos binários battery/.sav são carregados ao abrir a ROM e gravados quando houver alterações ao trocar/descarregar o jogo ou fechar normalmente. Escrita temporária com substituição do destino, validação de tamanho e preservação de arquivos que falharam na leitura. Testes cobrem reinício do console, reset, bancos, save states, arquivos inválidos e falhas de gravação.

  • Suporte ao Mapper150 (Sachen SA-015 / Sachen-74LS374N), com bancos PRG/CHR, oito registradores legíveis, bits de barramento aberto, save states e espelhamentos H/V, single-screen e em L. Implementado o pad com CPU D2 conectado; o pad alternativo ligado a Vcc permanece pendente.

  • Carregamento UNIF de NES-CNROM pelo Mapper003 e de UNL-Sachen-74LS374N pelo Mapper150. Verificados os quatro ZIPs de 75 Bingo, Auto-Upturn e dos dois cartuchos 2-in-1, cada um com 201 quadros, vídeo e restauração de save state.

  • Carregamento UNIF das placas Sachen SA-016-1M e TC-U01-1.5M, incluindo arquivos com extensão .nes dentro de ZIPs e arquivos .unf/.unif. A identificação usa o conteúdo e o campo MAPR, preservando os arquivos originais.

  • Suporte ao Mapper079 (NINA-03/06 / Sachen SA-016), com bancos PRG de 32 KiB, bancos CHR de 8 KiB, espelhamento H/V fixo e seleção sem conflitos de barramento. Permite carregar as versões Sachen de Galactic Crusader e Master Chu & The Drunkard Hu.

  • Suporte ao Mapper147 (TC-U01-1.5M), variante de 72 pinos usada por Challenge of the Dragon (Sachen), com latch de bancos PRG/CHR e conflitos AND nas escritas pelo espelho da PRG-ROM. A versão JV001 de 60 pinos e a configuração de 128 KiB de PRG não estão implementadas.

  • Save states e suíte sachen no CTest para os Mappers079/147 e o parser UNIF, com verificações de bancos, endereços de registradores, ordenação e limites de chunks e rejeição de estados inválidos. Os três ZIPs Sachen avançaram 201 quadros com vídeo e restauração de estado nos testes de inicialização; partidas completas dependem de validação manual.