BIOS modificadas do Master System iniciam ROMs sem cabeçalho TMR SEGA ou checksum válido

Algumas ROMs funcionam normalmente quando iniciadas diretamente, mas são recusadas pelas BIOS oficiais do Master System. A modificação foi motivada principalmente por vários jogos não licenciados de Master System e pelos jogos de SG-1000, que não possuem o cabeçalho esperado pelas BIOS do console. Outro exemplo é Maze Walker (Japan) (En) (Sega 3D Classics): com a BIOS europeia ativada, o jogo parava na mensagem SOFTWARE ERROR.

O problema não estava necessariamente no funcionamento do jogo. Antes de entregar o controle ao cartucho, a BIOS procurava o identificador TMR SEGA, interpretava os dados do cabeçalho e calculava o checksum da ROM. Se a assinatura estivesse ausente ou o valor calculado não coincidisse com o registrado no cartucho, a inicialização era interrompida.

Preparei patches para cinco BIOS com jogos embutidos:

  • Hang-On & Safari Hunt v2.4;
  • Sonic The Hedgehog (Europa);
  • Alex Kidd in Miracle World;
  • Hang-On v3.4;
  • Missile Defense 3-D v4.4.
Cinco aventuras retrô em pixel art
BIOS sem bloqueio de header / checksum

O que foi alterado

As BIOS modificadas não procuram mais o texto TMR SEGA e não calculam o checksum do cartucho. Em seu lugar, fazem um teste simples para descobrir se existe alguma mídia carregada.

O cartucho é selecionado primeiro e os 16 KiB iniciais são examinados. Se houver pelo menos um byte diferente de $FF, a mídia é considerada presente e a BIOS continua pela rotina original de inicialização do cartucho. Se toda essa área contiver $FF, o slot é considerado vazio e o jogo embutido é iniciado normalmente.

Assim, foram preservados o logotipo e o som de abertura, a troca final da BIOS para o cartucho e, principalmente, o funcionamento dos jogos internos quando nenhuma ROM está carregada.

Testes realizados

Cada uma das cinco versões foi testada em quatro situações:

  1. ROM com cabeçalho TMR SEGA e checksum válidos;
  2. ROM sem o cabeçalho TMR SEGA;
  3. ROM com checksum incorreto;
  4. nenhum cartucho carregado.

Nos três primeiros testes, a BIOS iniciou o programa de diagnóstico presente na ROM. No quarto, cada versão chegou corretamente ao seu jogo interno: Hang-On/Safari Hunt, Sonic, Alex Kidd, Hang-On ou Missile Defense 3-D.

As cinco versões também foram testadas e confirmadas em hardware no core de Master System do MiSTer FPGA. Em todos os casos, o cartucho foi iniciado corretamente, inclusive sem TMR SEGA ou com checksum inválido, e o respectivo jogo embutido continuou funcionando quando nenhum cartucho estava carregado.

Download dos patches

Baixar os patches no GitHub

O pacote contém somente arquivos IPS e documentação. As imagens das BIOS não estão incluídas. Para usar um patch, é necessário possuir um dump da BIOS correspondente.

Os arquivos IPS preservam o nome completo adotado pelo No-Intro para cada BIOS e acrescentam somente a indicação [Skip Checks]. Isso facilita a identificação da versão original correta e reduz o risco de aplicar um patch à BIOS errada.

Confira o SHA-256 de sua BIOS original na tabela publicada no repositório. Depois, abra o Rom Patcher JS, selecione sua BIOS original, escolha o arquivo IPS correspondente e salve o resultado. O processamento ocorre localmente no navegador.

No MiSTer, selecione o arquivo .sms gerado como BIOS externa do core de Master System e carregue o jogo normalmente.

Observações

Esta é uma modificação não oficial. Os patches contêm apenas as diferenças necessárias para alterar a validação; nenhum código completo de BIOS ou imagem de jogo é distribuído.

0 0 votos
Classificação do artigo
Inscrever-se
Notificar de
guest

0 Comentários
mais antigos
mais recentes Mais votado