domingo, 6 de outubro de 2013

The Sillycon War e arquivo Z80

Este é um jogo com gráficos 3D isométricos aparentemente elaborado pelo mesmo autor de Buggy Boy e Chain Reaction


Não há muitas informações sobre The Sillycon War no World of Spectrum, fora de que seu autor é Maz H. Spork.

Estranho também é ser disponibilizado apenas no formato Z80, ao invés de TAP ou TZX, sendo este último o preferido no World of Spectrum. Arquivos TAP e TZX são imagens de fitas cassetes, isto é, armazenam todas as informações para reproduzir fielmente o conteúdo desse tipo de mídia.

Por sua vez o arquivo Z80 é um snapshot, que contém o estado do microprocessador Z80 e da RAM (dump) no momento em que o emulador foi interrompido. Apesar de ser facilmente manipulado pelo emulador, tem o inconveniente de não representar o carregamento real do programa.

No caso do The Sillycon War, carreguei o snapshot no emulador Fuse e fiquei analisando o funcionamento no debugger. Não foi difícil perceber que o laço (loop) principal do programa inicia-se no endereço 24841. Investigando um pouco mais, percebi que o ponto de entrada mais adequado do jogo seria em 24838. 

Como o registrador SP continha o valor 24832, isto é, a pilha do Z80 inicia-se neste endereço, concluí que bastaria salvar apenas o conteúdo da RAM entre 24833 a 65535 (último byte da RAM física). Para economizar espaço, comprimi este bloco com ZX7.

Assim consegui adaptar este jogo para o disco Beta 48/128, cujos arquivos Hobeta podem ser baixados neste link. Os formatos TAP e TZX podem ser encontrados neste subdiretório.

Jogando um pouco, parece que este jogo não está finalizado ou está afetado por bugs. Em alguns locais, o programa trava ou dá reset

Nenhum comentário:

Postar um comentário

Seu comentário é bem vindo, mas peço que use este espaço adequadamente.