Resulta que me ha dado por investigar el Berzerk, uno de mis 25 juegos favoritos arcades, y quiero profundizar en cómo monta el laberinto.

La cosa según he leído es como sigue:
- Se asignan 8 puntos en pantalla por donde salen los muros, 4 arriba y 4 abajo
- Cada punto saca un muro en una de las 4 direcciones: N, S, E, O
- A cada uno de esas 4 direcciones le asociamos un valor: N=00, S=01, E=10, O=11
- Una pantalla queda definida por 8 muros
- Cada muro se obtiene mediante un número de 16 bits, quedándonos con los 2 bits de menos peso del byte alto
- Para obtener un número de 16 bits se usa esta fórmula: X * 7 + $3153, dos veces
- Inicialmente X = $3153
Con esto, vamos a ver qué nos sale. Como X=$3153, tenemos que $3153 * 7 + $3153 = $8A98. Ahora lo volvemos a aplicar: $8A98 * 7 + $3153 = $FB7B, el resultado sería $FB7B. Ese número en binario es el 1111 1011 0111 1011, que si nos quedamos sólo con los bits 8 y 9, nos quedamos pues con 11, cuya dirección es oeste. Ya tenemos el 1er muro de los 8 muros.
Vamos ahora a por el 2º muros. Para ello, la formulita:
$FB7B * 7 + $3153 = $11B0
$11B0 * 7 + $3153 = $AD23
cuyos bits 8 y 9 son el 01, que se corresponde con muro al sur.
Y así 8 veces. La pantalla quedaría tal que esta:

OK. Hasta aquí está claro. Como veis al final una pantalla son 16 bits (2 bits por muro). Ahora hay que calcular la pantalla de al lao, y después la de al lao, etc. El BERZERK resulta que calcula 1024 pantallas, y las almacena en una matriz de 32 x 32 (que son 1024), de esta manera:

Y estas 1024 pantallas las calcula nada más arrancar el juego. Por eso los que hayáis juegado al BERZERK habréis notado cómo tarda varios segundo en arrancar, precisamente por eso, porque está a jierro calculando números.
Me queda por saber qué pasa si me matan, e inicio de nuevo una partida. ¿En qué pantalla aparezco? De esto nu tengo ni idea.