domingo, 22 de julho de 2012

Pyracurse

Mais um jogo para TK90X foi adaptado para a Beta 48, desta vez é Pyracurse. Eu achei algo interessante na listagem do carregador BASIC deste programa.


Pyracurse não apresenta nada novo em relação ao tipo de proteção, pois usa a estratégia já apresentada por mim de blocos de bytes headerless. A saída do utilitário TZX Show no arquivo 'Pyracurse - Side 1.tzx' revela:

Block 1: archive info
    Full title: Pyracurse
    Software house/publisher: Hewson Consultants Ltd
    Author(s): Mark Goodall, Keith Prosser
    Year of publication: 1986
    Language: English
    Game/utility type: Adventure: Graphic
    Protection scheme/loader: ROM timings
    Origin: Original release
    Comment(s): TZXed by Jos{E9} Luis Soler
Block 2: header
    Saved name: "pyra      "
    Type: BASIC program
    Auto-start line: 20
    Program size without variables: 195
    Total length: 195
Block 3: data bytes
    Length: 195
Block 4: header
    Saved name: "ldcd      "
    Type: bytes of CODE or SCREEN$
    Start address: 50000
    Total length: 35
Block 5: data bytes
    Length: 35
Block 6: data bytes
    Length: 6912
Block 7: data bytes
    Length: 40735

O conteúdo da fita consiste num curto programa BASIC seguido de um código de máquina para carregamento, mais dois blocos headerless de 6912 (tela) e 40735 bytes (código de máquina).

O programa BASIC pode ser interrompido com as técnicas já discutidas, e a listagem é:
10 GOTO 30
20 POKE 23659,0: LOAD ""CODE 23296: RAND USR 23296
30 CLEAR 40000: RAND USR 15363: REM : LOAD "ldcd"CODE 50000
40 SAVE "pyra" LINE 20: SAVE "ldcde"CODE 50000,35
50 RAND USR 15363: REM : RUN "saver"

O que chamou a minha atenção é a presença de instruções com USR 15363, que invocam comandos do Beta 48. Parece que os autores do jogo tinham um ZX Spectrum com interface de drive Beta à disposição, e com isto criaram um programa que produz a fita matriz do jogo. Eu tinha visto algo semelhante em outros jogos com comandos relacionados ao Microdrive. Porém apesar de ser programado num equipamento com interface de disquete, não me parece que Pyracurse tenha sido ofertado nessa mídia.

A adaptação é bastante simples, semelhante ao que apliquei no Sanxion 128, abordada nas partes 6 e 7 do mini-curso que apresentei recentemente. Basta usar o comando brekpoint no emulador, salvar a tela e o código de máquina no disco do PC, para depois salvar no disco Beta virtual. Para conferir com detalhes todo o procedimento, baixe o jogo adaptado no Google Drive ou 4 Shared.

Nenhum comentário:

Postar um comentário

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