segunda-feira, 14 de outubro de 2013

POKE no Bionic Commando 128

Demorou, mas consegui uma solução para o problema que detectei no POKE de tempo infinito no Bionic Commando 128.


O seguinte trecho é o responsável por diminuir o contador de tempo e verificar se este atingiu valor zero: 

   34607   LD HL,35750  ; HL aponta para o contador de tempo.
   34610   DEC (HL)     ; Diminui o contador de tempo.
   34611   JR Z,34630   ; Salta se o contador ficou zerado.

Simplesmente desativar a instrução DEC em 34610 produz efeito colateral de paralisar todos os inimigos. Aparentemente o contador é inicializado com um valor superior ao máximo, período em que os inimigos não se movem e o jogador fica imune, provavelmente para dar uma trégua logo no início da fase. Se o contador não é diminuído, o jogo fica nesse estado para sempre.

A solução é relativamente simples:

   34610   LD (HL),H    ; Mantém o contador de tempo constante.
   34611   JR Z,34613   ; Salto fica sem efeito.

que pode ser conseguido com os seguintes POKEs:

   34610,116
   34612,0


O contador sempre ficará com o valor 138, que não congela os inimigos. Submeterei estes valores ao The Tipshop.

Nenhum comentário:

Postar um comentário

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