martes, 20 de mayo de 2008

¡Nuevo parche para el PACMAN de 1980!

Los más jugones de la old school están de enhorabuena. Por fín podrán superarse a sí mismos y enfrentarse a sus mayores retos sin ningún tipo de traba. Y es que todo el mundo pensaba que el PacMan tenía 256 niveles, puesto que al llegar a ese nivel la pantalla se veía mal y no se podía jugar más... ¡pues nada de eso, mis queridos alces! Resulta que ahora se ha demostrado que fué programado para que el juego no tuviese fin, y que fase a fase sea un poco más complicado. Lo que se ha descubierto es que en esa pantalla debería aparecer una fruta que no existe, con lo que el juego se cuelga. O sea, un bug que (en principio) debería ser imposible de encontrar, pero ya se sabe que la gente es muy frik y pueden estar un día entero jugando al pacman... ¡y llegar tan lejos!
La pantalla 256 en cuestión la veis ahí arriba, en la foto. Pues bien, se ha creado un parche para solucionar el fallo y poder seguir jugando con Pac hasta que se nos caigan las pestañas, o hasta que el cambio climático haga que mutemos en seres de tres patas y cinco narices. ¡Qué mundo este!

Fuente: pixfans

Captain Keps

8 comentarios:

Viejo Archivero dijo...

Sip, la gente de Namco nunca pensó que alguien iba a llegar a esa pantalla LOL!. De cualquier forma, el error es muy lógico, ya que el dato de la pantalla tiene la longitud de un byte (0-255), así que se produce lo siguiente: ld a,$ff / inc a (con lo que a es $00, si el dato es de 8 bits, como es el caso). En un dato de 16 bits, hubiera sido ld hl,$ff / inc hl (y en este caso, hl sería igual a $100, lo que es igual a 256 en decimal).

SI hubieran guardado el dato de pantallas como un valor de 16 bits, hubieran evitado el error... aunque también podrían haber hecho una comprobación sencilla, ld a,(pantalla) / inc a / cp $0 / jp z,@@final (de esta forma, cotejan el resultado, y si al incrementar la pantalla sale cero, es que hemos pasado de la 255, es decir, terminar el juego con un ending.

Es el típico supuesto que nadie se supone. Acordarsus Keps de cuando Amaia se pasó el Circus Charlie, hizo 999.999 puntos y, al sumar uno más, volvió a 0... y es que el valor era un BCD de 3 bytes (se supone), que al sumar más de lo debido perdía el acarreo... losers...

captain keps dijo...

Espera, que no te pillo... ¿qué es un byte?

:-o

Marti dijo...

Comorl¿?

Viejo Archivero dijo...

Es lo que tiene dominar ensamblador de Z80... gracias a eso, programo juegos de MSX ^__^;. El arcade de PacMan lleva un procesador Z80, así que...

Marti dijo...

Por cierto, a ver si te llevas un MSX con unos de esos juegos que programas al local no?

captain keps dijo...

Hombre... con un emulador en el pc ya valdría! (quedaría mu raro ahí el msx al lao de la xbox :P)

mondofrik dijo...

Y digo yo, que esto no lo podían haber hecho con un:

...
1980 IF Pantalla>255 THEN GO TO "Tomar por c..."
...

Asi en BASIC, sin entrar a tutear a la máquina \8D

McG

Viejo Archivero dijo...

LOL, ese BASIC, Royelo! ^_^