Para tempo infinito no Bionic Commando 128K, há dois diferentes POKEs sugeridos no The Tipshop.
Desses dois, o que parece funcionar é
POKE
34610,0. Disassembly deste trecho do programa revela:
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 cotador ficou zerado.
O que o POKE faz é trocar a instrução que diminui o contador de tempo em uma unidade - DEC (HL) - por NOP, que nada faz. Eu prefiro substituir por OR (HL), pois garante que o flag Z fique sempre com valor 0; isto é, uso
POKE
34610,182. Este POKE tem um efeito colateral que deixa todos os inimigos congelados e o jogador fica imune. Investiguei no debugger do emulador Fuse os trechos do programa que fazem leitura ou gravação no endereço do contador (35750).
O trecho seguinte faz a inicialização do contador com o valor 202:
34783 LD A,202
34785 LD (35750),A
e o seguinte, aparentemente é o responsável por paralisar os inimigos:
48403 LD A,(35750)
48406 CP 202
48408 RET NC
Enquanto o contador for igual a 202, os códigos depois do endereço 48408 não são executados devido à instrução RET NC.
Uma aparente solução seria desativar a instrução RET NC com
POKE 48408,0
. Ao fazer isto, os inimigos moviam-se, mas a imunidade continuava. Pelo menos até onde pude investigar, não deu para conseguir POKEs para providenciar somente tempo infinito.
Nenhum comentário:
Postar um comentário
Seu comentário é bem vindo, mas peço que use este espaço adequadamente.