Generació Digital: PACMAN

LABERINT DE PASSIONS

Hi ha en el mòn dels videojocs autèntiques icones indiscutibles. Més enllà de la seva associcació amb sistemes concrets, jocs com Pac-Man han sigut una revolució cultural i generacional, posant les bases del que després seguirien altres "personatges" com Sonic o Mario.

Ens endinsem doncs en el laberint de Pac-Man en busca de les càpsules de Història que els nostres Game Màsters ens han preparat.

Sunday, July 23, 2006

Registres de 8 bits: el perquè de la Pantalla Partida


La famosa Pantalla Partida ( o Split Screen), és la que s'assoleix al arribar al nivell 256 de Pac-Man. En aquest nivell, la pantalla apareix partida longitudinalment en 2 meitats. En una d'elles, l' esquerra, tot sembla correcte, mentre que en la dreta els gràfics apareixen corromputs i diferents sprites i blocs gràfics del joc es repeteixen fent impossible de veure el laberint i els personatges.

Però perquè succeeix això? I encara més, si es superés aquest nivell... què passaria?

Doncs això succeeix degut a que el marcador de nivells intern del joc fa servir un registre de 8bits. En números binaris el zero és 00000000, i el 255 és 11111111. Si el marcador de nivells és un registre de 8 bits, això vol dir que només pot registrar 256 nivells ( del 0 al 255) fins que al intentar sumar un altre dígit el marcador es reseteigi i torni a senyalar el 0

Com explica això la Pantalla Partida? El marcador intern ( que no té per què coincidir amb el que es mostra al jugador) comença amb el nivell 00000001 ( i no amb 00000000), al igual que el nivell que es mostra al jugador. Per tant, aquest nivell, el 1 sí que està definit per el programa de Pac-Man, però el nivell zero per a ell no existeix. Aixì que al arribar a la pantalla 256, en realitat per al marcador intern del joc es retorna al començament, al nivell 0, un nivell que no es troba descrit i per tant el programa es penja i mostra la Pantalla Partida.

Si els programadors de Namco haguessin usat el registre intern amb valor zero com el nivell 1 pel jugador, mai es veuria una Pantalla Partida, doncs simplement al retornar el contador a zero, el programa SÍ sabria qué ha de mostrar i la partida seguiria. De fet, si amb l'ajut d'un emulador i trucs per passar automàticament de nivell probem d'arribar a la Pantalla Partida, veurem que es pot superar i que un cop el registre intern torna a senyalar el nivell 1 ( el nivell 257) aquesta vegada apareix el laberint de sempre i el joc pot continuar durant uns altres 256 nivells.

5 Comments:

Anonymous Anonymous said...

Simplement increible.

Són coses com aquestes el que us fan desmarcar de tota la resta de programes o pseudo-programes de videjocs. Vosaltres sabeu de qué parleu i sabeu explicar-ho, mentre que altres es queden amb l'anècdota i no en saben dir res més que el que ja han dit altres.

Volem més!!!!!

4:31 AM  
Anonymous Anonymous said...

Yep! Gràcies!!

Espero que mai decaigui el nivell :)

3:42 PM  
Anonymous Anonymous said...

... i amb MAME passa el mateix?

1:58 PM  
Anonymous Anonymous said...

Parlant de bugs,una semana abans, estava jugant al Pacman de MAME, i en van matar una vida a la primera pantalla. Restaven uns sis cocos a la pantalla... i quan torno a sortir amb la seguent vida ... havia de tornar a fer la pantalla sencera!!! això es un bug??? o un càstic per deixarte matar una vida a la primera pantalla??

1:36 AM  
Anonymous Anonymous said...

Hvala za intiresnuyu iformatsiyu

4:16 PM  

Post a Comment

<< Home