quinta-feira, 20 de dezembro de 2012

Gryzor 128

Combat School 128, que foi adaptado recentemente, continha na imagem TZX de fita um demo de Gryzor 128. Resolvi examinar este último e vi que seu esquema de carregamento era idêntico ao primeiro. Portanto achei que seria fácil fazer a adaptação para disco Beta de TK90X com TKMEM-128


A adaptação foi bastante fácil de fazer, pois usei exatamente o mesmo procedimento de Combat School 128. O disco resultante foi perfeitamente funcional no meu TK90X. 

Porém um empecilho surgiu quando resolvi criar loaders que propiciam POKEs de vidas e/ou tempo infinitos. Eu tenho esta prática nos jogos que tenho adaptado, quando possível, para ajudar aqueles que não possuem a Multiface 1. Porém quando fui usar estes loaders modificados, notei que os POKEs não funcionavam nas fases 2 e 3. 

Com uso de breakpoints no debugger do emulador Fuse pude finalmente compreender o que acontecia. A subrotina da fase 2 fica armazenada no banco de RAM 4 e a da fase 3, no banco 6. Quando necessário, estas rotinas são transferidas para a página 2 (compreendida na faixa de endereços 32768-49151) da RAM e, com isto, acaba sobrepondo qualquer POKE que tenha sido feito antes, durante o processo de carregamento do jogo.

Para contornar o problema, modifiquei os loaders para aplicar os POKES diretamente nos bancos de RAM 4 e 6, ao invés da página 2. Agora os usuários tão ruins de shoot'n'ups como eu, poderão concluir  tranquilamente o Gryzor.

Os arquivos Hobeta encontra-se no Google Drive ou 4 Shared. Para outros formatos, acesse este subdiretório. Aqueles que carregam os programas de fita ou DivIDE, deverão editar a linha 90 do loader BASIC, removendo o comando REM.

Atualização: versão 2 disponível aqui

Nenhum comentário:

Postar um comentário

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