Eu tirando a placa da máquina, em 2009.
Em 2009 eu tirei uma placa de dentro de uma máquina de fliperama que na verdade era um MSX. Na época li as EPROMs da BIOS e do jogo (um Knightmare) e guardei os arquivos .bin. O problema é que o conteúdo estava embaralhado. Os endereços e os dados estavam ligados fora de ordem entre o chip e o resto do circuito, então o arquivo lido não tinha código que fizesse sentido.
Algum tempo depois tentei decodificar e não consegui. Quem resolveu foi o Piter Punk. Ele me escreveu pedindo os .bin das memórias, eu mandei, e ele conseguiu decodificar.
Anos depois, o Dec-ROM
Passados alguns anos, com a ajuda do Claude (a IA), consegui fazer uma aplicação para isso: o Dec-ROM. Você carrega o arquivo (.bin, .rom ou .hex), clica em Auto-Fix e ele procura qual troca de linhas de endereço e de dados faz o conteúdo virar código de Z80 de verdade. Depois você confere o resultado e salva o arquivo já corrigido, ou salva só o esquema da troca num arquivo .txt.
Esse .txt é o formato que a comunidade MSX já usava para trocar esquemas de embaralhamento, o do programa "Codificador/Decodificador de ROM para EPROM" da A&L Software, de 2004. O Dec-ROM lê e grava nesse formato, então dá para aproveitar esquemas antigos que estejam circulando por aí.
O que ajudou no desenvolvimento
Para testar um programa desses preciso de arquivos embaralhados de verdade, e de preferência com a resposta certa em mãos. Duas fontes ajudaram muito.
A primeira foi o Alexandre Souza (Tabajara), que encontrou uma placa da Fort Games e disponibilizou os binários. Esse embaralhamento era diferente do da minha placa. A busca automática nunca o resolveu dentro do tempo que eu deixei, até eu ter o esquema de ligação da Fort Games. Com ele, o programa passou a reconhecer a placa em menos de um segundo.
A segunda foi o site do MSXPro, de onde peguei outros binários. Quando a decodificação está certa aparecem sinais inconfundíveis, como o cabeçalho "AB" de uma ROM de MSX, e isso serviu de conferência.
E o arquivo da minha placa?
Os arquivos que li em 2009 também passaram pelo programa. A BIOS da placa (a "ITS ROM" do post antigo) é decodificada pela busca automática em cerca de 1 segundo, e o resultado é um cabeçalho "AB" de ROM de MSX. O que travou meu avanço em 2009 hoje leva um segundo.
A placa foi feita na minha cidade
Com a BIOS decodificada, dá para ler o que ficou gravado no fim da ROM: os dados do fabricante. Aparecem "ITS Sistemas Ltda." e "ITS Games", e logo depois "Sta R. Sapucai MG", ou seja, Santa Rita do Sapucaí, em Minas Gerais, a cidade onde eu moro. Em 2009 eu procurei na internet e não achei nenhum fabricante com esse nome. A resposta estava dentro da ROM, embaralhada, e a placa foi feita aqui perto de mim.
O Dec-ROM com a BIOS da placa já decodificada. No dump em hexadecimal, na coluna da direita, aparecem "ITS Sistemas Ltda.", "ITS Games" e "Sta R. Sapucai MG".
Baixar
O programa é feito em Rust e roda no Windows e no Linux. O código está no GitHub.
Se você tem uma EPROM embaralhada de MSX e quer testar, o Dec-ROM resolve os casos que eu consegui verificar. Se ele falhar com a sua, me mande o .bin que eu olho.


Nenhum comentário:
Postar um comentário
1. Alguns comentários são moderados automaticamente. Caso isso ocorra pode levar algum tempo até que eu veja e o libere.
2. Comentários fora do assunto do post podem ser apagados.
3. Não, eu não posso consertar os seus aparelhos!