PhenomaLaserdisc Rom Atlas

Road Blaster

Data East, 1985

Sedici partite già scritte

Road Blaster non mescola le scene: ne tiene sedici partite già scritte nella ROM e ne pesca una con un dado. È la terza filosofia del caso che troviamo in casa, e la più avara di tutte — per una ragione di ferro: sedici kilobyte di programma.

Non mescola: sceglie fra sedici mazzi già fatti

Road Blaster ha nove livelli per partita e non li mette in fila a caso uno per uno. Nella ROM ci sono 16 partite già scritte, ognuna di nove voci, e la macchina ne pesca una sola. Gli otto livelli centrali cambiano ordine; il nono — il finale — è sempre ultimo, in tutte e sedici.

il dadola partita che toccail finale
01 2 3 4 5 6 7 89
12 3 1 5 4 8 7 69
23 8 7 6 2 4 1 59
37 6 3 2 1 5 8 49
48 7 6 1 4 2 5 39
57 1 2 4 3 8 6 59
67 3 8 5 6 1 2 49
78 6 1 4 2 3 5 79
81 2 7 5 3 6 4 89
92 7 3 6 4 5 1 89
103 8 1 7 5 4 2 69
116 1 2 3 4 7 8 59
122 6 7 8 5 1 3 49
131 3 2 7 8 4 5 69
143 7 6 8 5 1 4 29
158 6 3 5 2 4 7 19

⚠ Sono permutazioni vere: in ognuna delle sedici i numeri da 1 a 8 ci sono tutti e una volta sola. Non è un elenco scritto a occhio — è un mazzo mescolato in fabbrica, sedici volte, e poi congelato.

Il dado, e l’interruttore che lo accende

Il sorteggio è sotto un dipswitch che il libretto chiama Random scenes. Spento, il numero resta 0 e la partita è sempre 1 2 3 4 5 6 7 8 9.

LDA $1002 / AND #$40 / BNE salta  ; il dip e’ spento? il dado resta 0
JSR $ED25                   ; il generatore
LDA $82 / AND #$0F         ; un numero da 0 a 15
LDA $EC75,X               ; una delle sedici scalette

Il generatore a 0x ED25 non è un orologio né un contatore di monete: è un registro a scorrimento — tre celle che ruotano e si sommano. Gira sempre, e quando serve si guarda dove è arrivato.

Tre modi di dire «a caso»

È la terza macchina del roster che affronta questo problema, e le tre lo risolvono in tre modi che non si somigliano:

la macchinache cosa faquanto caso
Dragon’s Lair europeo (Atari, 1983)mescola trentasei carte, una per una, mentre sei in attrazionetantissimo
la Sidam (1983)dello stesso mazzo ne distribuisce diciottomolto
Road Blaster (Data East, 1985)non mescola: sceglie fra sedici mazzi già fattisedici

⇒ Road Blaster è il più avaro dei tre, e per una ragione di ferro: sedici kilobyte di programma. Mescolare costa codice; scegliere fra sedici liste costa trentadue byte di puntatori.

E c’è un decimo copione, che nessuno gioca

Nella ROM i copioni sono 10, non nove. Quello numerato 0 ha 18 eventi e 8 mosse, e non compare in nessuna delle sedici partite.

Ma non è codice morto: un JSR $C1B1 a $C036 gli mette il livello a zero e lo fa girare una volta sola, prima del dado. È l’apertura. E nel registro del Campione si vede: il primo salto va al fotogramma 301, il secondo parte dal 644. Undici secondi, e via al primo livello.

⇒ Le sue otto mosse stanno ai fotogrammi 29864118, molto oltre il punto in cui la macchina se ne va. Sono scritte, hanno le loro finestre e le loro direzioni, e non le gioca nessuno. → le mosse che invece si giocano stanno qui.

Il dip: bank B bit 6. Il generatore: 0x ED25, rotazioni concatenate di $7F/$80/$81 sommate in $82. La tavola delle sedici scalette: 0x EC75, sedici puntatori a liste di nove voci. La tavola dei copioni: 0x ED54, dieci puntatori — e dal decimo in poi quella tavola è già codice, quindi dieci sono tutti.