In Breakout sono presenti 8 file di mattoni per 14 colonne. Partendo dal basso verso l'alto:
- fila 1 e 2 = 1 punto ogni mattone
- fila 3 e 4 = 3 punti ogni mattone
- fila 5 e 6 = 5 punti ogni mattone
- fila 7 e 8 = 7 punti ogni mattone
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm_OWrrxNW95q0WS_cxs5q2ouIcbNbmRbMPYW0Typ047MPhzL6feTSgbu_0kUrdqcYSvjYb0ePsg68LFUFknY0maWgNpGHyM5tblK0E7Qkjqg0dE6VnlV1lfRWyrcNwcF8x4OutYYA4kY/s320/BO1.jpg)
Schema 1a
Guardando lo Schema 1a, troviamo sei contatori BCD 9310 (location N6, M6, L6, H6, J6, K6), i primi tre utilizzati per memorizzare il punteggio del Player 2 , ed i secondi tre per memorizzare il punteggio del Player 1. Sullo schema ho suddiviso le sezioni di ciascun Player.
Ciascuna tripletta di contatori collegati in cascata sono utilizzati per memorizzare i valori delle unità, decine e centinaia dei rispettivi punteggi; è quindi da escludere la possibilità di veder memorizzato e visualizzato un punteggio superiore a 999. I contatori sono azzerati (punteggio=000) all'inizio della partita, ovvero alla pressione del pulsante Start Player il segnale /Start Game va basso azzerando i contatori.
L'incremento dei contatori avviene tramite il segnale Count1 per il giocatore 1 e Count2 per il giocatore 2. Count1-2 è un treno di impulsi generato dal contatore 74192 (location N9) ogni volta che la palla colpisce i mattoni posti nella :
- prima e seconda fila genera 1 singolo impulso
- terza e quarta fila genera 3 impulsi
- quinta e sesta fila genera 5 impulsi
- settima e ottava fila genera 7 impulsi
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiElZfodLXRLZ5uT-zLlnTMxZbkSZ28P3SqFFv9WAEKl9y9rQZNhvxWJ0chiWhLWmHHMcfjMayMAlXiMjN5OmXIxa29ooC_wEELmIeFLS6mhSlc2gvmkPJkCCh5RuvUJXxKXDLpP-U8EDc/s320/BO3.jpg)
Schema 1b
Guardando lo schema 1b , il segnale che indica che è avvenuto l'abbattimento di un mattone è il Brick Hit. L'assegnazione dei diversi punti per le diverse file di mattoni avviene caricando sul contatore N9 i valori presettati agli ingressi pin# 15, pin# 1, pin 10# e pin# 9.
Con riferimento allo schema 1a, quando il giocatore 1 raggiunge il punteggio di 448 punti, il contatore delle unità segnerà 8 alzando il segnale D1, il contatore delle decine segnerà 4 alzando il segnale G1, ed il contatore delle centinaia segnerà 4 alzando il segnale K1.
D1,G1 eK1 vanno alla porta NAND (location M4), la cui uscita è posta alta quando il punteggio è diverso da 448, per poi andare bassa al raggiungimento dei 448;questa uscita va all'ingresso di una porta OR (location E4) e con il segnale /BP HIT (segnale che va basso quando viene colpito dalla palla il bordo superiore dello schermo o la racchetta) attiva o meno l'uscita della porta OR che funge da clock/trigger del flip-flop F4 ; in dettaglio quando il punteggio è diverso da 448 l'uscita OR è sempre alta, e va bassa solo quando il punteggio è uguale a 448 e contemporaneamente avviene un rimbalzo della palla (segnale /BP HIT).Ho detto che l'uscita della porta OR (location E4) va al clock del flip-flop F4; questo flip-flop ha il compito di ricostituire (o ricostruire) interamente il muro quando questo è stato completamente abbattuto. Va precisato che l'abbattimento del muro è detectato dalla logica della scheda unicamente andando a testare il punteggio : se questo è uguale a 448 , allora significa che non vi è rimasto più nessun mattone.
Ad ogni modo, il flip-flop è resettato all'inizio del gioco dal segnale /Start Game che andando basso pone le uscite Q=bassa e /Q=alta; abbiamo detto che quando il punteggio è uguale a 448 (quindi nessun mattone presente) ed avviene un rimbalzo della palla, la porta OR E4 va bassa, tenendo quindi basso il segnale di clock del flip-flop; la porta OR torna alta quando è terminata la fase di rimbalzo (segnale /BP HIT nuovamante alto) : il passaggio da basso ad alto dell'uscita della porta OR e quindi del segnale di clock del flip-flop, fa sì che la sua l'uscita /Q sia bassa.
Il passaggio dallo stato alto a quello basso dell'uscita /Q del flip-flip collegata all'ingresso di trigger del multivibratore 9602 (location F3) fa sì che l'uscita FPD1 del multivibratore vada allo stato alto per poi tornare basso; l'inverso dicasi per l'uscita negata /FPD1.
Schema 1c
Il passaggio di stato dei segnali FPD1 e /FPD1 determinano secondo lo schema 1C il ripristino della memoria L3 e di conseguenza il ripristino dell'intero muro.
Lo stesso concetto fin qui espresso per il Player 1 vale per il Player 2
Due muri o tre ?
Considerando che il rispistino del secondo muro avviene solo quando il punteggio è uguale a 448 , il quale alla fine di tutta la catena setta il flip-flop F4, considerando che nussun altro segnale resetta il flip-flop (se non il segnale di inizio nuovo gioco), considerando che al secondo muro il punteggio non può che essere superiore a 448 punti, si direbbe che sia impossibile per il flip-flop F4 resettarsi per poi settarsi nuovamente, e quindi impossibile un ripristino del terzo muro.
E' piuttosto ipotizzabile che durante il gioco in modalità due giocatori si venga a creare una condizione non prevista, tale per cui l'indicazione a schermo del turno di gioco del Player 1 venga erroneamente attribuita al Player 2, e quindi il punteggio del Player 1 venga visualizzato come punteggio del Player 2 : il secondo muro del primo giocatore diverrebbe il famigerato terzo muro ma del secondo giocatore.
Il tutto però potrebbe essere un bug nella gestione della rappresentazione a video dei punteggi e turno dei giocatori; rimane comunque impossibile lo scambio "fisico" dei punteggi tra i giocatori.
Una cosa è sicura : per quanti muri ci siano, il punteggio visualizzato non potrà mai superare i 999 punti.
3 commenti:
Ci sei quasi... fuochino... :-)
Ciao,
come e' possibile contattarti per avere alcuni dettagli sull'eprom burner per atari vc2600?
Posta un commento