Bug de ABU SIMBEL PROFANATION comunicado por Elfo
Oscuro
En el Profanation, si pones el poke de inmunidad y te caes al agua que hay en
la parte baja del mapa, el personaje cae por debajo de los marcadores y al
llegar al final de la pantalla, salta un error en BASIC. En si mismo no es un
bug, pero bueno...
Afortunadamente Iforeve nos amplia está
información en el siguiente texto:
He
estado en tu pagina y me gustaría explicarte
lo del bug del abu simbel. En realidad no es un bug.
Cualquier juego escrito en código maquina tiene sus
propias rutinas de impresión, sonido, etc. En el caso
del profanation no fue así y se aprovecharon de una
rutina del Basic que es la RST #10, que consiste en
imprimir
en unas coordenadas especificadas el carácter
que se encuentre en una dirección de memoria. Aunque
no lo tengas que tomar al pie de la letra, el código
seria mas o menos así
ld
a, color
ld
bc, coordenadas_jones
ld
hl, direccion_grafico_a_imprimir
call
mete_datos_en_stack_calculadora
rst
#10 ; Imprime
¿Y por que falla? Muy sencillo, por que no es valida
la instrucción PRINT AT 22,X y en su lugar el Basic
pone la instrucción OUT OF RANGE, pq la coordenada
esta fuera del margen 0 a 21.
Y como Dinamic, lógicamente, no metía pokes de
inmunidad, cuando el personaje llegaba a la coordenada
21,x en la que estaba el agua morías. Pero que sucedía
con inmunidad, que el personaje se imprimía en las
posiciones 21 para el primer trozo del grafico y en el
22 para el segundo trozo, con lo que la rst #10 al
tener que imprimir en 22,x retornaba el error del
Basic, ya que dinamic usaba la rutina de impresión del
Basic. Manda guevos. Cuando vi esto me defraudaron
bastante ya que esperaba una programación mejor.
Espero que con esta explicación puedas actualizar y
quedar mas completo el bug de dinamic.
Volver atrás