Es un honor poder hablar contigo sobre tu carrera como programador de 8 bits. No todos los días tenemos la oportunidad de conocer como se desarrollaron nuestros juegos favoritos. En un mundo con Copilot, GitHub y todas estas moderneces es mucho más fácil desarrollar videojuegos, pero en tu época era mucho más difícil. Pero antes de entrar en temas de programación, me gustaría preguntarte cuando empezó tu interés en la tecnología.Empecé a jugar con calculadoras cuando tenía ocho años. Mi abuelo trabajaba de diseñador en Decca, compañía de tecnología de navegación marítima y aeronáutica. Solía diseñar estas cosas para aviones y estuvo muy involucrado en la era supersónica. Era parte del equipo que diseñó los sistemas de navegación del Concorde. Solía sentarme a su lado cuando era un niño pequeño; tenía una caseta en el jardín y me sentaba a su lado mientras él trasteaba con motores, soldaduras y esas cosas.
¿Cuáles fueron las primeras máquinas que entraron en tu casa?
Mi abuelo me construyó mi primer ordenador, basado en uno existente con el 6502. Ni siquiera tenía pantalla; tenía unos LEDs y un teclado numérico y tenía que escribir mi código en un papel y luego teclearlo en decimal. Eso significa que tenía que escribirlo en hexadecimal en papel y luego convertirlo a decimal, y si cometías un error no podías ir hacia atrás; tenías que empezar desde cero.
Tenía 256 bytes de memoria y parte de ella era la pila, así que desde luego no era un ordenador lujoso. Sería allá por 1977 o 1978. Después tuve un ZX81 y un par de años después mi madre me compró un Spectrum.
![]() |
| El cerebro tras nuestros sueños |
A la mayoría nos bastaba con jugar. ¿Qué te llevó a ti a querer crear tus propios juegos?
En realidad no decidí hacer mis propios juegos. Ni siquiera aprendí BASIC al principio. Primero aprendí ensamblador, y cuando después aprendí BASIC me parecía muchísimo más fácil pero demasiado lento.
Me leí el manual del ZX81 de cabo a rabo en unas dos semanas y entonces aprendí sobre el procesador que montaba —el Z80. Me gustó bastante y a día de hoy sigo siendo un gran fan del Z80. Si lo comparas con el 6502, el 6502 parece mucho más básico en comparación. Es casi como un 4004.
Estaba más interesado en realizar experimentos y en tratar de emular las cosas que veía.
Normalmente solemos encontrarnos que los desarrolladores de videojuegos solían estar muy influenciados a comienzos de su carrera por lo que han jugado en edades más tempranas. ¿Cuáles eran tus juegos favoritos?
Uno de los primeros que llegó a impresionarme fue un simulador de vuelo. No tenía ni idea de como lo hicieron por que, ya sabes, tiene toda esa matemática dentro. Ahora sé como hacerlo. De hecho, ya sabía hacerlo con 16 años, pero por entonces debía tener sobre 12 o 13 años y no sabía como funcionaba pero podía imaginármelo en mi cabeza. ¿Podría hacerse moviendo puntos por la pantalla y esas cosas? Podría verlo en mi cabeza.
A partir de los 14 años o así, tenía más interés en escribir y diseñar videojuegos y ese tipo de cosas, pero siempre me ha interesado más la parte de ingeniería detrás que la parte de diseño. Aun así, aprendí un montón de cosas sobre hacer juegos y que funcionen a nivel jugable de gente que era mucho mejor que yo en esos campos.
Básicamente, cuando tenías estas máquinas querías ver que eras capaz de hacer con ellas.
![]() |
| Flight Simulation para ZX81 |
Me has dicho que aprendiste lenguaje ensamblador tanto para 6502 como para Z80.
Z80 lo aprendí un poco después.
¿Qué recursos tenías a mano para aprender a programar ambos microprocesadores?
Creo que era el libro de Tony Baker. ¿Puede ser?
Conozco el nombre por que he visto sus libros y varios programadores me contaron que Tony fue una de sus principales influencias. Otro que suele salir mencionado en estas charlas a menudo es David Webb, que falleció tristemente de cáncer hace un mes o dos.
Sí. Pobre David. Creo que estaba en Hong Kong. Era muy inteligente. Era uno de estas típicas personas con educación universitaria que era muy bueno en matemáticas y esas cosas. Se podría decir que yo era más imaginativo, pero también fui mejorando en matemáticas.
Mastering Machine Code on your ZX81 es el libro de Tony Baker al que me refería. Me lo dio John Stubbs de JRS Software, de hecho. En esas época solíamos ir a esos típicos shows en Londres como las ZX Microfair y otras de ese estilo, y podías literalmente comprar un libro allí y que te lo firmase Tony Baker.
![]() |
| Un clásico en los inicios de muchas carreras |
¿Cuándo te diste cuenta de que tu código era lo suficientemente bueno como para intentar venderlo?
En realidad no me dí cuenta, simplemente lo hice. Quiero decir que realmente nunca me lo planteé, simplemente pensé que desarrollaría y haría cosas, y por alguna razón no había tanta gente haciendo lo mismo. De hecho, apenas había nadie que supiese ensamblador.
Iba a esas ferias que mencionaba antes y me ponía a hablar con alguien y le enseñaba las cosas que había hecho; y ellos decían «oh ¿podrías hacer esto para nosotros? ¿Te interesa?». Y había muy poca gente capaz de hacer estas cosas por esas fechas. No era un ambiente cerrado. Si querías trabajo, podías pegarle un telefonazo a Hewson Consultants y el propio Andrew Hewson contestaría tu llamada. Le dirías: «mira, soy un programador; he hecho tal y pascual. Estoy buscando trabajo» y el te contestaría «¿puedes venir mañana en el tren de las siete en punto?». Ibas allí en el tren, hablabas con Andrew Hewson y os sentábais a hablar con algunos de los otros programadores que hubiese en la oficina en ese momento. Yo tenía mi propia empresa y trabajaba como autónomo salvo los seis o siete meses que estuve empleado en Softstone.
Tus primeras creaciones son, según mis notas, Basic Compiler, Ext The Extraterrestrial y Roulette para el ZX81 publicadas por JRS Software.
Roulette fue para el Spectrum.
¿Roulette fue para el Spectrum?
Sí. Cierto, EXT fue para JRS. Si logras encontrar una copia de ese juego, sería impresionante. Me pagaron un total de 50 libras por ese juego; Un tipo que tenía una empresa de software en su garaje. J-R-S o algo por el estilo. John Stubbs se llamaba. De hecho su nombre completo era John Ray Stubbs.
El compilador que escribí era una locura. ¿Sabes qué? Es ridículo. Lo que hice fue escribir un trozo de código que te permitiría introducir un programa en BASIC, pero que solo podías usar ciertas palabras claves y ciertas letras y números y cosas por el estilo. Entonces el compilador iba a lo largo del programa que habías escrito en BASIC y sustituía los comandos. Construía código ensamblador a raíz de lo que veía. La primerísima versión solo te permitía usar seis o siete variables. La segunda versión te permitía usar 26. Ni siquiera evaluaba las expresiones en el orden correcto.
![]() |
| El primero de muchos éxitos |
¿Se podría decir que tu primer juego que gozó de cierto éxito comercial fue Las Vegas Video Poker?
Sí. Con Mastertronic ¿verdad?
Sí, con Mastertronic.
Eso creo.
¿Cómo acabas trabajando para Mastertronic?
Conocía a un tipo llamado Fergus McGovern en una empresa llamada Probe Software. Le conocía a través de un chico con el que iba a fundar una empresa, pero que al final no pudo. Este chico me dijo «deberías hablar con Fergus», así que llamé a Fergus y hablé con él. Entonces me dijo que me pasase por allí, así que simplemente fui allí y me reuní con él en su oficina, que me pareció un sitio horrible. Se notaba que no estaba cuidado en condiciones. Obviamente, el sitio era alquilado, tenía moqueta vieja y asquerosa y habían ratas. Una vez dormí allí en una especie de colchón y me acojoné cuando vi una rata.
¡Ah! Así que esta tarea ya la consigues a través de Probe Software.
Sí. Fergusson buscaría encargos y yo me encargaría de hacerlos, y él era muy, pero que muy, bueno en ello. Yo tenía mi propia empresa y este trato funcionaba bien. Me pagaron razonablemente bien y obviamente él también ganó dinero por el camino y, sí, funcionaba.
![]() |
| Version Amstrad CPC de Las Vegas Video Poker |
¿Pudiste influir en su diseño o el juego ya venia de otra plataforma?
La versión original la hizo una empresa americana. No recuerdo exactamente cual, pero debió ser una empresa americana. Vi, creo, la versión de Commodore 64 y la use como referencia, jugué mucho y tomé algunas fotos y ese tipo de cosas. Pero no era muy bueno.
¿Así que no tuviste código fuente o gráficos y tuviste que hacerlo todo desde cero?
Efectivamente, tuve que hacerlo todo desde el principio. De paso, rediseñé algunas cosas. Hice que las cartas rotasen porque usando cierto algoritmo era más interesante ver a las cartas rotar. Muy lento, pero interesante.
Primero hice la versión de Spectrum. De hecho, hice todos los gráficos para la versión de Spectrum, y después lo convertí al Amstrad.
Es algo que te quería preguntar porque, si no estoy equivocado, Las Vegas Video Poker es el primer juego que haces ambas versiones. ¿Qué experiencia previa tenías con el Amstrad CPC?
Nada de nada, excepto por el hecho de que era bastante bueno con el Z80. El Amstrad tiene un Z80, así que eso fue fácil. Leí un libro sobre programar el Amstrad CPC y ahí explicaba todo el hardware. El hardware era bastante sencillo de usar aparte del controlador de pantalla, que era algo más complicado.
Así que hice la versión de Spectrum y literalmente lo monté en Amstrad. El código de Spectrum estaba escrito en el Zeus Assembler directamente en el propio Spectrum. El juego ocupaba bastante poco; entraba en la memoria del Spectrum junto al Zeus. Para el Amstrad creo que use... ¿Cómo se llamaba? No recuerdo el nombre. Era algo como MKS o JKS o algo así con tres letras.
![]() |
| Fábrica de sueños: Zeus Assembler |
No era un PDS ¿no?
No, no era un PDS. Todavía tengo uno de esos. De hecho, fui uno de los primeros en comprar uno. Lo compré por 500 libras. No era tan caro.
¿Cómo manejabas hacer las dos versiones? ¿Usabas un compilador cruzado o hiciste cada juego desde 0 en la máquina objetivo?
Primero lo hice en el ZX Spectrum con el Zeus. Después tenía este ensamblador en el Amstrad que no termino de recordar su nombre?
¿Devpac?
No, no creo que fuese el Devpac.
¿Maxam?
Podría ser.
Fue muy popular en su momento porque venía en formato ROM, así que podías pincharle el chip a tu CPC y arrancaría al instante.
Lo mío estaba en disco.
Maxam también estaba en disco pero se que en su momento fue muy popular en ROM por eso de arrancar la máquina y tenerlo ya en memoria.
Yo tenía dos discos, así que lo tenía ejecutado desde uno de ellos. Ibas al menú principal y desde ahí podías ir al ensamblador, desensamblador, debugger y resto de herramientas. Y sigo sin acordarme de su nombre. Podría haber sido el Maxam, pero...
Así que usaba un CPC 464 y dos disqueteras que tomé prestadas en Probe. De hecho, me las prestaron ellos.
![]() |
| Knight Rider para ZX Spectrum |
Si no estoy equivocado, trabajaste en el juego Knight Rider para Ocean.
Correcto.
¿Cómo acabaste trabajando para Ocean? ¿Fue un encargo de Probe Software o fue algo que hiciste para ellos allí?
De hecho, fue anterior. Por entonces trabajaba para Softstone y estaban haciendo el Knight Rider original. Sería alrededor de 1985 o 1986. Posiblemente 1985. Softstone era gestionada por un tipo llamado Tony Knight, que era como un vendedor de coches usados, ya sabes, muy simpático, un poco pijo. Era el típico que, mientras todos sus programadores eran pobres, el tenía un Porsche. Era ese tipo de persona, aunque más adelante descubrimos que el Porsche era de alquiler. Sí, trabaje en Knight Rider y llevaba más o menos la mitad de la primera parte hecha, con gráficos vectoriales.
Esta primera parte gráficos vectoriales donde ibas dibujando lineas, se podría decir que estilo Starion, ese tipo de juego. La cosa es que lo que hice fue usar solo líneas optimizadas, y usé matemáticas optimizadas para que nunca usase senos, cosenos o multiplicaciones. Todo estaba basado en fracciones. Todo tenía que ver con fracciones y entonces dibujaría conjuntos de líneas relacionadas con una fracción maestra y todo iba proporcional y funcionaba muy bien, pero no era verdadero 3D. Se podría decir que era como sprites hechos con líneas, pero molaban mucho y podías moverlos un poco para que pareciese algo más 3D y también use esta técnica para dibujar la carretera.
Se veía genial y llegué a unos 10 frames por segundo. Era más que suficiente. Entonces lo que posiblemente ocurrió es que Tony Knight se empezó a quedar sin dinero por que estaba gestionando un montón de proyectos simultáneos, así que vendió una parte de su empresa a dos tipos que eran consultores informáticos. Y estos consultores echaron un vistazo a lo que yo llevaba hecho y dijeron «¿Por qué no lo haces simplemente en 3D real?». Y yo dije que entonces tendría que usar multiplicaciones y que posiblemente no iría lo suficientemente rápido. A lo que me contestaron que no, que iría bien, que podía hacer eso. Uno de estos consultores escribió un montón de fórmulas sobre como podría hacerse. Y yo dije que, bueno, vale. Ya sabes, tú haces lo que te dice tu jefe.
Así que lo programé todo. El problema es que ahora se movía a un frame por segundo. Todo iba a trompicones. Entonces me dijeron «¿por qué va tan lento? Algo debes estar haciendo mal». Yo contesté que deben ser todas esas multiplicaciones, usar diferentes tipos de líneas y todas las cosas que se ejecutan simultáneamente. Estuvimos discutiendo sobre ello algo así como un mes. Y entonces Tony Knight se cabreó con la situación y me despidió. Me usaron como chivo expiatorio por que el juego no avanzaba.
![]() |
| Pantalla de carga de Harvey Headbanger |
¿Qué pasó después?
Me dio igual. Me fui y empecé a trabajar para Probe.
Para ti fue incluso mejor.
De hecho, fue una gran jugada. Conocí a un montón de buena gente en esa empresa. Allí me encontré con amigos para toda la vida, gente con la que aun hablo a día de hoy. Todavía mantengo amistad con Jerome Tell o Peter Molyneaux, aunque hace un siglo que no le veo. Así que ocurrió aquello con el Knight Rider y me echaron a la calle. Gary Knight acabó escribiendo todo el código de ese juego. Estaba basado en otro y lo hizo en cosa de un mes a base de seguir trabajando por las noches.
¿Tuviste contacto con la gente de Ocean o solo recibías instrucciones a traves de estos consultores?
Algo de contacto tuve, pero eso era principalmente tarea de Tony Knight. Antes de que todo se complicase tenía algo de contacto con el productor. Ocean nos mandaba un productor a mirar como iba todo. Lo mismo ocurría con Activision y con otros de nuestros clientes.
Tuviste suerte por que te ahorraste trabajar con estos dos consultores y acabaste en Probe Software. Y ahí empiezas a hacer los mejores trabajos.
Era el único programador en Probe Software aparte de Vakis, quien era socio de Fergus.
![]() |
| Harvey Headbanger para ZX Spectrum |
¿Qué me puedes contar del desarrollo de Harvey Headbanger?
Oh, fue muy divertido. Ya lo había desarrollado... ¿Cómo se llamaba? No recuerdo su nombre, pero ya había hecho la versión de Amstrad. No recuerdo su nombre pero era un buen tipo. Creo que se llamaba John Hughes o Chris Hughes o algo por el estilo.
Richard Hughes.
¡Eso! Richard Hugues. Un tipo muy, muy listo y dispuesto a ayudarte. Creo que tenía titulación universitaria. Richard me mandó un archivador enorme lleno de papel impreso con todo el código fuente junto a un disquete que también lo contenía. Y era un código muy inteligente.
Este juego usa una técnica llamada minimax search. Usa una búsqueda profunda del estilo de una máquina de ajedrez para pensar cual sería el mejor movimiento. Más o menos vi como funcionaban algo de la heuristica del juego así que, en vez de programarlo como él lo hizo, me dediqué a jugar un montón y deducir como se comportaba el ordenador. Sí hacía esto, ¿cómo reaccionaría la máquina? Si hacía lo otro, ¿cómo reaccionaria ahora? Qué ocurría si había una de estas cosas rojas y todo este conjunto de reglas.
Una vez tuve un conjunto de reglas sobre el comportamiento del ordenador, era virtualmente imposible derrotarle si todas las reglas estaban en uso. Lo que hice fue usar un generador de números aleatorios que devolviese un número del 1 al 10 y organicé estos 10 niveles de dificultad. Así que, básicamente, si salia un 10, tenías en uso el 100% de las reglas de comportamiento de la máquina. Si salía un 5, entonces hacía algo aleatorio o elegía una de las reglas de comportamiento. Y así fue como lo hice. Estúpida o inteligentemente, o quizás algo a medio camino, pero que funcionó muy bien.
De hecho, lo hace.
Sí. Y ya ves, era lógica simple. Estilo: si estás en este lado, no te pueden atrapar. Y si vas debajo y hay una linea sólida, entonces intenta dar la vuelta alrededor. Y funcionaba simplemente invirtiendo las coordenadas X e Y. Entonces podías deducir en que dirección debería ir algo. Y funcionaba siempre. Así que si él iba a la izquierda, tú deberías ir a la derecha. Si él iba hacia abajo, tú deberías ir arriba, y viceversa.
![]() |
| Down to Earth |
El siguiente juego sería Down to Earth. ¿Qué me puedes contar sobre él?
Yo no hice Down to Earth.
¿No?
No, lo hizo Darren Byford.
Ok.
La cosa es que Darren era amigo mío. Ya sabes, un colega de juerga. Le interesaba muchísimo la programación y esas cosas, así que le enseñé como hacerse programador. De hecho, le enseñé a programar juegos desde cero. Solía venir y preguntarme un montón de cosas, y yo le pasaría código en ensamblador. Hizo Down to Earth y creo que me acreditó a mi también solo por que era algo así como su mentor.
Entiendo.
Ha habido unos cuantos así, ya sabes. Por ejemplo Jason Green, el grafista; yo también le encontré.
¡Oh! Hiciste Mr. Heli con él.
Era un buen artista a la vez que un poco raro y siempre le estaban pegando los punkies. No tenía trabajo y le conocí a través de un conocido común y le conseguí empleo. Tenía un talento natural.
![]() |
| Quartet para Amstrad CPC |
Poco después hiciste Quartet y Rygar, ambas conversiones de una recreativa. ¿Cómo hiciste estas conversiones? ¿Tuviste acceso al código fuente o algo similar?
Por entonces vivía en una casa cerca del mar en Worthing junto a David Quinn, quien hizo Impossible Mission y Trantor The Last Stormtrooper. Sigue siendo un buen amigo. También estaba Nick Bruty, quien hizo un montón de gráficos para todos estos juegos. También había otro tipo que no era más que un vago redomado en realidad. Era como una casa estilo años 1930, muy bonita. Un día pegaron en la puerta y apareció un tipo con un camión enorme que traía una máquina del Quartet. ¿Has visto alguna vez la recreativa del Quartet?
¡Es enorme!
Totalmente, ya que necesitas espacio para cuatro jugadores. No podíamos llevarla arriba, así que estos tres o cuatro tipos metieron la máquina en el dormitorio de Dave Quinn por que era el más grande de la casa. Nos dedicamos a jugar un montón. Quartet no es un muy buen juego en realidad, por desgracia. Quiero decir, la conversión fue normalita, pero es que el juego en sí era más bien normalito.
¿Así que simplemente jugaste a la máquina?
Sí. Es un juego diseñado para ser jugado simultáneamente por varias personas, pero tu tenías que hacer una versión que funcionase con un solo jugador. Así que se convirtió en una especie de Manic Miner, ya sabes, aunque no tan bueno como el juego de Matt Smith. Así que se hizo de la misma manera en la que hice la versión de Amstrad. La hice yo ¿no?
![]() |
| Quartet para ZX Spectrum |
Hiciste ambas.
No me acuerdo. Recuerdo hacer la de Spectrum, pero muy a menudo hacíamos primero Spectrum y luego Amstrad. Nick Bruty hizo los gráficos para ambas versiones, creo.
Sí. Está acreditado en ambas versiones. ¿Fue la misma historia con Rygar?
Era un buen juego, de hecho. Ahí coincidió que estuve trabajando durante una temporada en la oficina de Probe Software. El juego era para US Gold, por que su productor era Charles Cecil. Sí, me gustó mucho Rygar. Tuvimos la recreativa, literalmente al lado de mi mesa de escritorio. ¿Has visto Bandersnatch?
Sí.
¿Has visto la oficina que aparece llena de programadores? Eso es robado. Así es como era literalmente la oficina de Probe Software.
¡Oh!
Esta escena de Bandersnatch está robada directamente de lo que parecen ser las oficinas de Probe. Me sorprendió bastante lo similares que eran. Era una mezcla de dos oficinas diferentes hechas una, algo raro. La primera oficina en Croydon era mucho mejor. La segunda fue la que Fergus compró. La tercera era este edificio ruinoso cerca de la estación de Croydon. Además Charlie Brooker [Nota: creador de Black Mirror y guionista de Bandersnatch] era amigo de Gary Lyddon, productor de Mortal Kombat para Game Boy. Solían comer juntos.
Se puede ver la conexión, por supuesto.
Sí.
![]() |
| Rygar para Amstrad CPC |
Así que Rygar fue más o menos como Quartet. Jugaste a la máquina intentando deducir como funcionaba todo.
Eso es. Miré el juego y tomé fotos. Supongo que podría haber tenido acceso al código, pero nunca usé código de otros estando allí. La forma en la que hice Rygar fue basada al carácter. Los fondos estaban al carácter. Creo que usé nibble scrolling en ese juego. Creo que la forma en la que funcionaba es: había dos copias de cada carácter. Tenía una de los caracteres y otra ligeramente desplazada 4 píxeles. ¿Era así el nibble scrolling? No lo recuerdo.
¿Te refieres ahora a Spectrum o a Amstrad?
Creo que en Spectrum era nibble scrolling. En el Amstrad no necesitaba hacer eso por que podías literalmente simplemente mover los píxeles. La manera en la que hice la versión de Amstrad fue que el fondo eran bloques eran sprites grandes. Eran literalmente sprites muy grandes y rápidos. Dejé algo de espacio alrededor de los bordes, hasta cuatro píxeles, creo, para el fondo, para así no tener que redibujarlo. El fondo iría eliminando su propio residuo gráfico.
![]() |
| Rygar para ZX Spectrum |
¿Es lo que se conoce como masked sprites o algo por el estilo?
Sé a lo que te refieres. No, no son sprites con máscara. Literalmente era pintar la pantalla completa en cada frame, haciendo primero el fondo a muy alta velocidad. Se hacía usando un método que, en vez de mover byte a byte, permitía mover dos bytes en cada ciclo usando la pila. Apuntábamos la pila a los datos de los sprites, cargábamos esos datos en los registros y los lanzábamos a la pantalla en orden inverso. Era el doble de rápido.
Aunque no programo, conozco algo sobre técnicas de programación. Así que aquí usaste la pila...
Sí, y solía ocurrir algo muy extraño. Si saltaba una interrupción, dicha interrupción pondría siempre su dirección de retorno en la pila, por lo que destruía algunos pocos datos. Así que la rutina de interrupciones repararía los sprites. Hacíamos que la rutina de interrupciones reparase el sprite en uso.
El siguiente juego es Dynamic Duo. Este es original, no una conversión. ¿Verdad?
Correcto. La primera versión de ese juego tenía otro nombre y era un juego diferente; algo sobre un robot grande y otro pequeño. El pequeño podría volar y el grande iría andando detrás. Tendrían diferentes habilidades y, para poder resolver los diferentes puzles, tendrías que usar ambos.
El juego fue idea de Grant Harrison y de Hugh Riley, ambos amigos míos. Algo paso que se pelearon entre ellos y Fergus ya me había pagado para hacer este desarrollo o algo por el estilo. Entonces, creo que fue con uno de los productores de Probe, hicimos una sesión de brainstroming y decidimos cambiar los gráficos y retocar un poco la jugabilidad para hacer un juego ligeramente diferente. De ahí salió este otro juego con su enorme pájaro plumoso y un tipo tonto con pinta de enano.
No es un gran juego. Me gustó más Tie Break. Ese fue mucho más divertido de hacer; Tie Break, Sim City y esas cosas.
![]() |
| Dynamic Duo para Amstrad CPC |
En Dynamic Duo muestras grandes habilidades a la hora de programar el Amstrad CPC, ya que estas usando ruptura. No hablo de un simple cambio de paleta en una interrupción; eso ya era fácil de hacer en su momento. Pero hacer rupturas bien era muy difícil y era un poco el santo grial a la hora de programar el chip CRTC junto al scroll hardware. ¿Cómo aprendiste a dominar ese chip? No todo el mundo fue capaz de domar a esta bestia salvaje.
Te diré que no fui el primero en hacerlo. Había dos programadores: Chris Wood y su amigo ZZKJ.
Chris Wood hizo las versiones de Amstrad de Nebulus y Netherworld, y creo que en Netherworld ya estaba usando esta ruptura.
Sí. También hizo el Solomon's Key. Creo que en algunos de esos juegos ya usaba la ruptura.
![]() |
| Un gran título de Chris Wood |
Correcto.
Estaba una vez hablando con Chris. Chris es un buen tipo. Chris me contó que él y ZZKJ habían hecho esta cosa. Me dijo que habían conocido en la universidad a un tipo experto en hardware que estaba diseñando chips, y que este tipo sabía como funcionaba exactamente el CRTC, como eran sus puertas lógicas y esas cosas; y que si hacías cosas en el orden correcto, podías hacer esta ruptura. Quiero decir, yo hice mis propias rutinas para ello, pero aprendí que se podía hacer de Chris Wood. Nunca me dieron código para hacerlo.
Básicamente lo que hacías era esto: hacías que el chip crease una pequeña pantalla arriba del todo, y tener cuidado de no usar toda la pantalla por que solo había una cantidad limitada de memoria. Así que creabas esa pantalla y justo debajo de ella, antes de que se acabase, si lo cazabas justo antes de que se activase el retrazado y cambiabas todos los registros de una manera determinada, de algún modo el chip crasheaba. No le gustaba nada de nada.
El chip se colgaba un poco. Lo cambiabas y lo volvías a cambiar, así que la parte baja de la pantalla se convirtiese en la parte de arriba. Entonces se ejecutaría en la parte de arriba. En ese momento enviabas estos códigos que crasheaban el chip. Entonces volvías a cambiar todo los códigos para hacer la parte de abajo de la pantalla. Muchas veces acababas con una línea extraña en medio que parpadeaba o algo por el estilo, pero si apagabas la pantalla por un momento, no la llegabas a ver. Sólo sería una línea negra. En resumen, la ruptura se hacía cambiando todos los registros y crasheando el chip.
Por cierto, no se si lo sabrás, posiblemente no, pero llegué a hacer una rutina de ruptura que dividía la pantalla ocho veces de arriba a abajo, y podías controlar cada parte independientemente. Lo hice solo por las risas, por ver si se podía hacer.
Lo que lo hacía también más difícil fue que en América tenían una frecuencia diferente.
Sí: 60 Hz.
Exacto. Así que tenías que tener en cuenta que las pantallas funcionaban a diferentes frecuencias en diferentes lugares.
Tiene gracia por que no todo el mundo sabe que se puede poner la pantalla del Amstrad CPC a 60 Hz.
También sabía como controlar la unidad de disco. En Sim City usé mi propio formato de disco, y un sistema de protección que usaba diferentes clases de sistemas numéricos. Funcionaba al lanzarlo, pero al mandarlo a los duplicadores se dieron cuenta de que no lo podían leer, así que no podían copiarlo. Irónicamente, tuve que quitarle el sistema de protección.
¿Estabas también envuelto en la masterización de las cintas? ¿Eras el típico que iba a Ablex u otra duplicadora y hablaba con los ingenieros?
Bueno, por teléfono algunas veces quizás, ya que algunos de nuestros juegos tenían loaders turbo, especialmente en el Spectrum. He escrito algunos loaders rápidos aunque creo que no llegamos a usar ninguno. Luego está por supuesto, el sistema de disco del Amstrad que más o menos tomé prestado algo de código de Tony Porter. No, no solía involucrarme mucho en el duplicado. De hecho, lo solía evitar y dejar que los expertos en protecciones hicieran su trabajo. No me pagaban extra por ello.
Usando técnicas como esta ruptura empleas mucho más tiempo para programar el juego que usando tus rutinas normales. ¿Qué te llevo a invertir más tiempo en hacer las cosas bien en lugar de hacer una conversión rápida de Spectrum?
El juego sería mejor. Me gustaban estas cosas. El reto era interesante. Ves que alguien lo ha logrado y piensas «yo también lo voy a hacer». Como te decía, vi hacerlo a Chris Wood y pensé «voy a hacerlo». Y pasó lo mismo con David Perry. Teníamos estos juegos con scroll multidireccional que molaban mucho y pensé «¿cómo lo hace?», y lo acabé deduciendo.
![]() |
| Mr. Heli para Amstrad CPC |
Tras estos juegos llega Mr. Heli, que es de mis favoritos.
Es posiblemente el mejor juego que haya hecho, junto a Sim City y Tie Break.
Es una conversión de recreativa. ¿Fue la misma historia que con las anteriores o tuviste ayuda a la hora de convertir el código o los gráficos?
Jason Green hizo los gráficos para Mr. Heli. Me encantó hacer Mr. Heli. Tuve durante una temporada la recreativa en mi apartamento y jugué un montón. Básicamente copiamos el estilo de la máquina, pero estoy muy orgulloso de Mr. Heli.
Es posiblemente uno de los pocos juegos de los que más estoy orgulloso por que salió bastante bien. Te encuentras con el problema de que una máquina recreativa tiene un porrón de bytes de memoria y la tienes que meter en un cacho de plástico sin prácticamente nada. Todo el mundo espera que sea una pasada y tienes que renunciar a bastantes cosas si quieres hacer un juego rápido.
Tienes que hacer todo súper pequeño y no usar sprites enormes. Eso iría más lento y hay que hacer compromisos por todos lados. Pero Mr. Heli salió muy bien por que tiene el scroll en ocho direcciones que aprendí de David Perry. El sistema de fondo en Mr. Heli tenía algo así como 16 rutinas de sprites. Tenías una para no engancharte en los bordes; una por cada borde y otra por cada esquina.
También usa una técnica de moverse lo suficientemente lento para no tener que borrar cosas. Si te mueves menos de 4 píxeles en cada frame, todo lo que queda detrás se borra siempre.
Los pequeños helicópteros también llevan su propia rutina de sprites. Para eso había ocho rutinas diferentes ya que había diferencias en tamaño. Creo que eran 16 en Mr. Heli y unas 32 o algo así para el fondo. Y no se si lo sabes, pero el juego hace trampas. Es el primer juego que escribí que tiene un sistema inteligente de dificultad. Si te matan muy rápido, se reduce un poco la cantidad de disparos enemigos.
![]() |
| Mr. Heli para ZX Spectrum |
Eso es muy interesante.
Sí. Y si eras realmente bueno jugando, la frecuencia de disparos enemigos aumentaba. Me di cuenta de que podría usar el número áureo. Aquí entra en juego teoría de juegos en lo que quieres es una evolución natural, una curva de victoria-derrota que es perfecta. Resulta ser 1.618, así que quieres intentar mantenerte en esta curva de dificultad para que la gente tenga el máximo disfrute cuando son capaces de ganar. Sigue siendo un reto y no es muy difícil, así que el juego comienza algo más fácil y, cuanto más tiempo sobrevivas, se hace algo más difícil.
Es muy interesante por que, como decías antes, tuviste que renunciar a cosas por que la máquina recreativa era mucho más potente que un Amstrad o un Spectrum, pero aún reservaste memoria y ciclos de procesador para controlar cuan rápido o lento eras matado para así ajustar la dificultad. Me parece increíble.
Es una pena que el juego no tuviera más éxito, por que es uno de los juegos de los que más orgulloso estoy. A ver, Rygar salio más o menos bien, pero desearía que hubiese salido mejor. El problema con Rygar, por ejemplo, es que no tiene todos los niveles o suficientes enemigos. En el juego original tienes murciélagos y osos y ese tipo de cosas, pero en las versiones de Spectrum y Amstrad solo tienes unos cuatro niveles y luego se repiten desde el principio con algo más de dificultad.
El problema era que siempre tenías presión de tiempo. La gente quería el juego en el mercado en unas fechas determinadas. Si tenías seis meses para hacer un juego, se volvería bastante estresante por que los publishers te estarían presionando por que tienen que ir a las duplicadoras. En muchas ocasiones he tenido productores en mi casa después de las nueve de la noche pidiendo arreglos por que en la duplicadora encontraron un bug y cosas por el estilo. Hemos trabajado siempre a todo gas.
![]() |
| Jason Green hizo un magnífico trabajo. |
Aquí trabajaste con Jason Green. ¿Cómo era esta simbiosis entre un programador como tú y un artista como Jason? ¿Haría el unos gráficos maravillosos que te obligaría a ti a pensar como poder animar todo eso o sería más bien al revés y tu le dirías a Jason «aquí tienes toda esta potencia, hazme algo bonito»?
No, se podría decir que nunca fui un gilipollas con él. Cuando le conocí, no sabía nada sobre gráficos de ordenador. Sabía como hacer buen arte y como hacer bocetos era muy, pero que muy, bueno falsificando billetes de tren. Cogía un billete de tren, le dibujaba una nueva fecha encima, y no te dabas cuenta de lo bien hecho que estaba.
Le expliqué como otros artistas hacían cosas como dithering y otras técnicas usadas para representar cosas en muy pocos píxeles, en blanco y negro o con muy pocos colores. Hice un proyecto de prueba con él donde creo que le di 50 libras o algo por el estilo para que estuviese contento con este proyecto de prueba, pero no salió nada de ahí. De todas formas, me lo traje conmigo. Hicimos equipo para hacer Mr. Heli y para negociarlo. Y te diré algo: no era un gran negociador. Yo era mucho mejor que él. Supongo que él necesitaba mucho más el dinero. Fuimos a negociar y yo empecé en plan «quiero 18000 libras por este proyecto», y Fergus contestaría algo así como «no, solo te puedo dar 15000 o 14000». Yo le diría «No, no, no. Este proyecto lo dejamos pasar». Entonces Jason saltaría «¡Tienes que aceptarlo, tienes que aceptarlo!» y yo me quedo en plan «pero serás imbécil» y Fergus empezaría a sonreír. Así que tuvimos que hacerlo por 2000 libras menos de lo que yo quería por que Jason no sabía negociar.
La música de Mr. Heli mola también un montón. ¿Cómo trabajabas tú? ¿Te mandaban un binario con la música lista o tenías que programar tu propio reproductor?
La hizo David Whittaker ¿no?
![]() |
| David Whittaker y su corbata musical |
Suena un montón a David Whittaker, pero no tiene créditos.
Suena un montón a él. Podría incluso haber sido Alistair Brimble, pero estoy convencido de que fue David Whittaker por que él también hizo la música para la versión Atari ST.
Pues normalmente haríamos una llamada y nos pondríamos de acuerdo en que dirección de memoria podría ponerla y cuando podría ocupar. Después nos enviaría un binario y habría hooks.
Tendrías un hook inicializado. Podría estar en C1000 o algo así, entonces se inicializaría la primera dirección de memoria y tres o cuatro bytes más adelante habría otra llamada; algo que podías llamar en este código. Al principio tenías una tabla de saltos de tres bytes. Tendrías música, efectos de sonido y a veces canales y efectos y cosas así. Así que al final tenías unas ocho llamadas en la tabla que podías hacer. Él escribió en su totalidad el motor sonoro.
¿Estuviste siempre conforme con el rendimiento de sus rutinas o alguna vez has intentado optimizarlas para que fuesen más rápidas?
En el Amstrad nunca fue un problema por que el Amstrad tiene hardware para la música. En el Amstrad tenías registros que podías configurar y que empezaban a reproducir cosas. El código de la música se ejecutaba 50 veces por segundo en la interrupción, cada vez durante una cincuentava parte de un segundo, modificando los osciladores, frecuencias y ese tipo de cosas. Y ya que no tenía que hacer ninguna oscialización por si mismo, era muy rápido, mientras que en el Spectrum no tenías esa posibilidad.
![]() |
| Un gran clásico del videojuego |
Respecto a Sim City: ¿Qué se te pasó por la cabeza cuando te dijeron que tenías que convertir este juego a máquinas mucho más limitadas como el Spectrum o el Amstrad? El juego ya se estaba haciendo muy popular en PC.
Sí, y también estaba en el Mac. Creo que tengo dos versiones. Si no me equivoco, tengo el código fuente de la versión de PC. Pues pensé que era un juego muy molón, lo jugué y me me pareció muy interesante. No se cuanto sabes sobre Will Wright, pero Will es un gestor urbanístico con estudios. Su educación tuvo que ver con planear ciudades, así que este juego nació del hecho de que quería ser capaz de planear ciudades mejor. Así que me enviaron el código fuente pero no lo pude usar por que era para 8086 y un ordenador con 640K de memoria.
![]() |
| Con todo el espíritu del título original |
Eso te quería preguntar. Posiblemente no fueras capaz de poder usar el código, pero al menos podrías entender la lógica y las matemáticas para poder convertirlo a una máquina más limitada.
Sí, se podría decir que un poco. Hay partes que directamente no puedes, ni siquiera en la forma en la que ellos lo hacen. Tienes que echarle un vistazo e intentar calcular como podrías hacer esas cosas. Yo lo que hice fue... de hecho creo que hice primero la versión de Amstrad y luego la de Spectrum. Había una mujer en Essex llamada Jill, que hizo los gráficos para el Sim City. Lo curioso es que Jill tenía un hijo que trabajaba en Amstrad. Ella hizo los gráficos desde casa.
Yo eché un vistazo al código fuente y lo revisé un montón de veces. Entonces decidí que lo primero que tenía que hacer era un split screen. Bueno, algo parecido pero no un split screen de verdad. Entonces, como tenía un número limitado de caracteres y de memoria, tuve que hacer el mundo algo más pequeño.
Había un carácter referencia para cada entrada. Estaba mapeado usando caracteres, pero solo podías usar 64, creo. Tenía un mecanismo algo peculiar que permitía usar solo 64 caracteres, pero si cogías un carácter superior, tenías dos bits y eso activaba el banking. Tenías 64 caracteres y podías bankear otros bloques de caracteres y diferentes combinaciones usando esta técnica. También había un cuarto banco que podía dibujar más de un carácter. Así que todos los edificios, aeropuertos y esas cosas usarían un solo carácter que los describía, pero este simple carácter activaría el pintado, ya sabes, 3x3 o 4x4 básicamente.
Tenía también multitasking real. El sistema hacía multitasking en las interrupciones, así que tenía dos procesos que iban a 50 frames por segundo. Tenía el procesado gráfico y 25 veces por segundo el procesado de fondo con la ciudad ejecutándose. Así que había un montón de situaciones en las que, cuando dibujabas algo, el sistema iría comprobando cosas por todo el mapa y entonces actualizaría la información. Y también tenía un mapa de fondo que era como cuatro bloques que representaba por ejemplo la polución, y otro mapa que representaba las diferentes capas.
Era un juego complicado. Era multitarea y tenía una simulación ejecutándose de fondo. La simulación también solía modificar los gráficos. Pero todo se hizo desde cero, y ni siquiera pude usar algoritmos como el del control del tráfico por que estaban hechos de una manera que no eran adecuados para las máquinas objetivo, así que tuve que buscarme la vida por que todo el código fuente original estaba pensado para una máquina mucho más potente y no me entraba en la memoria que tenía disponible.
![]() |
| Italia '90 para Amstrad CPC |
¿Qué me puedes contar sobre Italia '90?
Ese fue divertido. Creo que originalmente se hizo para Atari ST. Italia '90 usaba inteligencia artificial bastante chula. De hecho, no era un mal juego. Tuve que averiguar como hacerlo inteligente y que además fuese divertido, por que el juego original no era demasiado bueno. Ya sabes, los jugadores simplemente iban todo el rato a por la pelota. Pero yo no lo hice así.
Lo que hice fue coger los gráficos y convertirlos. Hice un sistema que era una especie de 2.5D. El jugador estaría en un cierto punto, y entonces le podrías decir que fuese a otro y los gráficos rotarían y empezaría a correr hasta ese cierto punto. Entonces podrías mandarle a otra posición, o decirle que patease la bola o ese tipo de cosas.
Eso fue lo primero que hice; usé un truco de inteligencia artificial, se podría decir, donde tenía tres conjuntos de posiciones para todos los jugadores y, dependiendo de donde se encontrase la bola, dividí el campo en cuatro zonas y los jugadores que estuviesen en posición óptima serían los que irían a por la bola. Se repartirían por el campo y si entonces llegabas a la zona dos, que era otro cuarto del campo, los jugadores tendrían posiciones algo más avanzadas y lo mismo con las zonas tres y cuatro, mientras que el otro equipo tendría las mismas posiciones como reflejadas en un espejo. Si un jugador estaba lo suficientemente cerca de la pelota, tomaría la decisión de ir a por ella o de intentar robarla. Nuevamente usaba un tipo de números aleatorios para decidir si tomaba una decisión inteligente o no.
¿Qué nos puedes contar sobre Tie Break? Por cierto, que estuvo planeado un juego sobre Steffi Graff...
Tie Break iba a ser Steffi Graff's Tiebreak. Llegué a negociar reunirme con Steffi Graff, pero nunca llegó a ocurrir, así que el juego fue a Adidas.
![]() |
| Tie Break para Amstrad CPC |
¿Cómo fue el desarrollo de este juego?
Parecido a Italia '90. Funcionaba de manera similar. Básicamente dividí la pista en diferentes secciones, y entonces funcionaba en plan: si la bola estaba en una cierta parte de la pista, habría una posición de retorno óptima para el jugador controlado por el ordenador. Podías golpear la bola de diferentes maneras según dirigieras el joystick. Si quería hacerlo más difícil, podía espiar lo que estaba haciendo el jugador, y eso es lo que hice para que fuese más difícil. La forma en la que funcionaba es que intentaría llegar a la posición correcta, y cuando la bola volvía hacia ti, siempre que fueses capaz de llegar a la bola a tiempo, podrías siempre golpearla. Ese era el truco.
Las diferentes dificultades implicaban diferentes rangos de golpes. Así, si el ordenador estaba muy lejos de poder devolver la bola, fallaba. Si no llegaba a alcanzar la bola, no le daba. Si el ordenador estaba muy adelantado en la red y la bola iba a la otra punta del campo, entonces conseguirías punto. Eso es lo que ocurre en la realidad, así que el ordenador solía funcionar similar. Usaría diferentes tipos de golpe, así que si estaba en una parte de la pista, intentaría que su disparo fuese lo más lejos posible del jugador, por ejemplo, para intentar ganarle.
Supongo que cuando hiciste juegos como Mr. Heli o Sim City no programabas en la máquina objetivo. ¿Cómo era un entorno de desarrollo?
Mr. Heli, Tie Break, Italia '90, Rygar y Sim City fueron todos hechos en un PDS. De hecho, la primera vez que usé un PDS fue justo después de Rygar, así que Rygar no se hizo en un PDS pero los posteriores sí. Debería ser a partir de Dynamic Duo. El PDS era una maravilla, un sueño hecho realidad. Aún lo conservo.
![]() |
| Dynamic Duo para ZX Spectrum |
Tengo la sensación de que en juegos como Mr. Heli tenías en mente primero el Amstrad y luego lo convertirste a Spectrum porque, por ejemplo, los gráficos de la versión de Spectrum parecen convertidos desde los píxeles ladrillo del modo 0 del Amstrad.
Sí, sí. Hice una herramienta llamada Texture Tool, y todos los gráficos de la versión de Spectrum se hicieron con este sistema. Y, de hecho, intenté y conseguí que me pagaran por ello. Dije, ya sabes, «deberíais pagarme por esto. Al menos la mitad de lo que pagaríais a un grafista». Y creo que me dieron 1000 libras para que me callara.
He oido algunas historias sobre Fergus en la que se contaba que metía equipos formados por programadores, grafistas, etc., en pisos, pero que les cobraba alquiler. Vamos, que no es que viviesen en esos pisos de gratis, sino que cobraba alquiler. ¿Son correctos estos rumores?
No creo que sea cierto. Lo que más bien pasaba es que tienes a cuatro programadores que deciden irse a vivir juntos a un piso o una casa y cada uno pagaría su parte proporcional del alquiler. Fergus no tenía necesidad de hacer nada.
La única vez que he pagado alquiler fue cuando viví en casa de la madre de Fergus. Tenía habitaciones libres. Viví allí tres o cuatro meses y ella era muy amable, pero era terrible a la hora de poner la calefacción. Hacía muchísimo frío. Y lo otro es que nunca vi arañas tan grandes como las que había en esa casa. Pero yo le pagaba el alquiler a ella, no a él. Además, Fergus no era deshonesto. Era muy bueno haciendo dinero; era un hombre de negocios y a veces podía ser un poco avispado, pero no era deshonesto. Era más bien que era mejor que tú negociando.
Tras Tie Break e Italia '90, estaba claro que el mercado para los juegos de 8 bits estaba desapareciendo y que tendrías que buscarte un nuevo mercado por que ya no se podía uno ganarse bien la vida haciendo juegos para Amstrad o Spectrum. Decidiste coger el camino de las consolas en vez del Amiga o el Atari ST. ¿Por qué elegiste consolas en vez de ordenadores?
No lo elegí yo; alguien me ofreció trabajar en consolas. Me ofrecieron hacer el Sega Chess junto a David Levy, de hecho, que era gran maestro internacional o eso creo. Es la persona más parecida a Sherlock Holmes que jamás haya conocido.
![]() |
| Sega Chess para Master System |
¿Cuanto te costó adaptarte a programar para consolas?
Fue fácil. Fue muy fácil. A ver, programar es programar, ya sabes; si puedes programar bien, puedes hacerlo en cualquier sistema independientemente del lenguaje empleado. Programar es un estado mental. Hoy en día no necesitas intentar ver cómo hacer que las cosas sean rápidas en el mismo sentido. En aquellos tiempos, teníamos que ver como podíamos hacer las cosas y romper constantemente las reglas por que no podíamos hacerlo de otra manera. Pero hoy en día tienes un PC que puede ejecutar un montón de instrucciones por segundo. Te diré algo: si juntas 10 o 15 programadores de mi época y les pides que hagan un sistema operativo para PC o para lo que sea, te harán algo cien veces más rápido que Windows 11. Iría todo a velocidad del rayo y todos se quedarían pensando que este sistema puede hacerlo todo.
¿Qué aprendiste durante tu época como programador de juegos de 8 bits que te haya ayudado a lo largo de toda tu carrera?
Aprendí un montón. En realidad yo era un emprendedor. Nunca fui el tipo de persona que espera a que alguien le de una oportunidad; yo siempre buscaba activamente cosas. Y nunca he presionado a nadie en plan «dame una oportunidad de hacer juegos». Simplemente los hice. Y este es el tema: si algo te apasiona, simplemente vas a hacerlo y nadie va a evitar que lo hagas. Simplemente lo vas a hacer y se lo enseñarás a gente y les gusta, les gusta. Ahora vivo en Suecia y me he traído ese marco mental conmigo.
Nunca pensé que no pudiera hacer esto o lo otro. Si durante tu vida te dedicas a hacer lo que te apasiona, tarde o temprano llegarás a algún lado por que siempre hay gente que reconoce a otros con habilidades. Yo nunca intenté entrar en el mercado de los videojuegos en sí. Nunca tuve un plan maestro. La forma de meterte en algún sitio es simplemente haciéndolo y no dejar que nada se ponga en tu camino. Sí algo se pone en tu camino, lo rodeas y sigues.
![]() |
| Otro clásico hecho por Tony: Mortal Kombat para GB |
¿Cuánto se tardaba en completar proyectos como Mr. Heli o Rygar? ¿Cuánto tiempo tenías para hacer un proyecto de este estilo?
Creo que Rygar llevó cuatro o cinco meses. Creo que fueron cuatro meses para el Spectrum y luego unos dos meses para convertirlo al Amstrad, así que unos seis meses para ambas versiones. Creo que para Mr. Heli fue más o menos lo mismo. Solían ser de cuatro a seis meses. Por supuesto, con excepción de los juegos más pequeños. Creo que hice Harvey Headbanger en unos tres meses o algo así; y creo que para Video Poker empleé mes y medio o dos meses para una versión y luego otro mes para la otra.
Dominic Wood me fue de gran ayuda en el Amstrad por que ya llevaba tiempo haciendo cosas antes que yo, así que simplemente le llamaba y me explicaba como hacía las cosas. Es un buen amigo. Creo que fue él quien me recomendó el libro. No era el mejor programador del mundo pero vaya si trabajaba. Se ponía a sus cosas y las terminaba. Su código se parecería un poco a un vertedero, pero terminaba sus cosas y funcionaban.
¿Podías ganarte bien la vida haciendo estos juegos?
Creo que con Video Poker gané entre 4000 y 6000 libras por ambas versiones. Solía ganar unas mil libras a la semana. Bueno, quizás al comienzo cuando hacía juegos más pequeños, quizás era la mitad de eso, así que unas 25000 libras al año. Y después, cuando hacía juegos de consola, ganaba unas 1000 libras a la semana, que estaba bien. El problema es que era muy malo con mi contabilidad y pagando impuestos y esas cosas.
![]() |
| Aquí también te hará falta manejarte bien con los impuestos |
Ya me has dado pistas, pero ¿cúal de los juegos que hiciste para ordenadores de 8 bits es tu favorito?
Posiblemente Mr. Heli y Sim City. También salió muy bien Tie Break. Incluso el juego de fútbol creo que salió bien.
Empezaste a hacer juegos muy joven y has estado rodeado de gente como tú, haciendo juegos juntos. Cuando gente tan joven se reúne suelen ocurrir anécdotas e historias divertidas. ¿Hay alguna que nos puedas contar, alguna divertida que recuerdes de la época y que no te metas en problemas por contarla?
Pues pasaron un montón de cosas. Recuerdo una vez que cobré un juego y fui a casa de mi amigo Darren y él estaba fumando algo. Entonces me lo pasó y yo también fumé un poco de ese algo. Entonces me tuve que ir y cogí el tren a casa. Mientras estaba en el tren me volví super paranoico y pensé que todo el mundo me quería robar y me encerré en el baño durante una hora. Para cuando llegué a Brighton ya se me había pasado todo, ya que nunca usé mucho de ese algo, pero fue muy extraño, ya sabes. Cobré, fui al banco con el cheque y salí fuera con unas 8000 libras o así. Las puse en mi bolsa, un montón de dinero para ir andando con él, y me senté en el tren pensado «ese tipo con la cosa esa en la nariz sabe que llevo dinero».
¿Conservas aún el código fuente de tus juegos?
Eso creo. No de todos, por que algunos se perdieron, pero definitivamente tengo copia de seguridad de un montón de ellos.
¿Qué pasó con juegos como Brain and Brawn?
El Brain and Brawn era básicamente el juego del pajarraco enano hecho con otros gráficos. Se convirtió en Dynamic Duo.
¿Oyes aun la llamada del ensamblador? ¿Veremos en un futuro nuevamente buenos juegos hechos por Antony Hartley para ordenadores clásicos?
No. Te diré que estaba pensando en que sería bonito volver a hacer un juego, pero después espabilé y pensé que no, no iba a ser bonito para nada. Suena genial y lo amé cuando lo hice en su momento. Pensé que era maravilloso. Pero en el contexto de hoy, sería un montón de trabajo duro. Si volviese a programar un juego lo haría en C, Java, Python u otro lenguaje por que sería mucho más fácil. Con C puedes tener aun todo el poder de un ordenador y acercarte lo suficiente al máximo. Creo que la inmensa mayoría de código que he hecho desde comienzos de los 90 ha sido en C.
Muchísimas gracias por tu amabilidad y tu paciencia.
ENGLISH INTERVIEW
I'm very honored to be able to talk with you about your career as an 8 Bit computer programmer. We don't have the chance every day to be able to know how our favorite games were done back in the day. In a world where you have copilot, GitHub and all these modern things, it's easier to do games. But back in the day, it was, of course, a lot more difficult. But before we go to the programming stuff, I would like to ask you, when did your interest in technology start?
I started playing with calculators when I was eight. I was quite mechanical before I was eight as well. So my granddad was a designer at Decca, which is a marine and aeronautical navigation company. And he used to design things for planes. And he was heavily involved in the supersonic era. He was part of the design team for Concorde Navigation Computers. When I was a very young boy, I used to sit next to him. He had a shed in the garden and I would sit next to him and watch him playing with motors and soldering things and stuff like that.
Which were the first machines that entered your home?
My granddad made me a computer, the first computer, which was based on a Tandy, I believe, 6502 computer. It didn't even have a screen; it had a led and it had a keypad and I had to write 6502 down on a piece of paper and type it in as decimal. So i had to write it on paper as hexadecimal and then convert it to decimal and if you got it wrong you couldn't go backwards; You had to restart from the top. It had 256 bytes of memory and some of that was stack so it was definitely not luxury. That would have been 1977 or 78. Then I got ZX81 in, I think, 1980 or 1981 and then a few years later my mum bought me a Spectrum.
![]() |
| The brain behind our dreams |
For most of us, it was just enough to play games. Not everybody had the desire to create their own games. Why did you decide to make your own games?
I didn't really decide to make my own games. I didn't even learn BASIC first. I learned assembly language first. When I learned basic, which was an awful lot easier, but very slow. I read the ZX81 manual from front to back in like about two weeks. And then I learned about the Z80, the microprocessor in there. I really liked it and still am a huge fan of the Z80 microprocessor. If you compare it to the 6502, 6502 is like the most barebones processor. It's almost like a 4004. I was more interested in doing experiments. I would see things and then I would attempt to emulate them.
We usually find that game developers are, at least at the beginning of their careers, heavily influenced by the games they were playing. Which games were your favorites?
One of the first ones that I sort of was very impressed with was a flight simulator. I had absolutely no idea how they worked and, you know, because they've got all these mathematics in them. I know how to do it now, in fact I knew how to do it at 16, but now we're talking about when I was like 12, 13 years old. I didn't know how they worked, but I could imagine in my head. Could you do this by moving dots around on the screen and so forth? But , I could see it in my head.
So I think probably from 14 onwards, 14 or 15, I was more into writing games and game design and things like that. But I've always been more into the engineering than the games side of it. Although I did learn a lot about how you make games and how that works from other people that were much better than me at making games. So... When you had these computers, you wanted to see what you can achieve with them.
![]() |
| Flight Simulation for the ZX81 |
You already told me that you learned assembly language for both the 6502 and the Z80.
Z80 was a little bit later.
Which resources did you have in hand to learn how to program these microprocessors?
I think it was Tony Baker's book. Was it him?
I know the name because I've seen his books and many programmers had told me that Tony Baker was one of the main influences. Another one that is usually mentioned is David Webb, who sadly died like a month ago or so from cancer.
Yeah, poor old David. He was in Hong Kong, I think. He was very clever, David Webb. He was one of these sort of university types who was very good at math and things like that, you know. I was more imaginative, you might say, but I got better and better at math.
Mastering machine code on your ZX81 is Tony Baker's book. It was given to me by John Stubbs, actually. The guy at JRS Software. In those days, you know, we used to go to these shows up in London like the ZX Microfairs and things like that, and you could literally just go and buy a book and have Tony Baker sign it.
![]() |
| A truly classic at many careers' begining |
When did you realize that your code was good enough to try to sell it?
I didn't really realize it. I just did it. I just, I mean, I've never really thought about it, I just thought I would write, make things and for some reason there weren't that many other people doing it. In fact, there was hardly anybody that knew assembly language.
I would go to these micro fairs and I would just talk to someone and tell them what I did and stuff. And they would say, oh, could you do this for us? Could you do that for us? Are you interested in this? And there were sort of so few people in those days that were, it was a small crowd of people. And it wasn't closed. If you wanted a job, you could phone up Hewson Consultants and Andrew Hewson would answer the phone. And you say, oh, I'm a programmer. I've done X, Y, Z. I'm looking for jobs and they say, can you come up here on the train tomorrow at seven o'clock? You go up there on the train and talk to Andrew Hewson and go sit and talk to some of the other programmers that he might've had in house. I had my own company and worked freelance except six or seven months that I was in house at Softstone
So your first creations are, so I have here noted, Basic Compiler, Ext the Extraterrestrial, and Roulette for the ZX81 for JRS software.
Roulette was for the Spectrum.
Roulette was for the Spectrum?
Yes. Yeah, EXT was for JRS. Well, if you could find a copy of that, that would be impressive. Because, you know, I got paid the sum of 50 pounds for that game. It was a guy who had a software company in his garage. J-R-S or something like that. John Stubbs, his name was. John Ray Stubbs was his actual name.
And the compiler I wrote was crazy. Do you know what? It's ridiculous. What I did was I wrote a piece of code. You would write a basic program, but you could only use certain keywords and certain letters and numbers and things like that. And then the compiler, all it did was it went through the program you'd written in BASIC, and it would substitute the variables. It would just build assembly language out of what it saw. And the very first version of that I did, you could only use six or seven variables. The second version had 26 variables that you could use. It didn't even evaluate the expressions in the right order.
![]() |
| The first of many great titles |
Could one say that your first commercially successful game was Las Vegas Video Poker?
Yeah, for Mastertronic, right?
Mastertronic, exactly.
I think so.
How did you end up working on this game for Mastertronic?
I knew a guy at a company called Probe Software called Fergus McGovern, who I'd met through a guy that I was going to start a company with, but he couldn't do it in the end. So he said to me "you should talk to Fergus". And then I just phoned up Fergus and had a chat with him. And then he said, come up. So I just went up and I met him at his office, which was really horrible. It was like not being looked after properly. It was obviously rented. It had these really nasty old carpets and there were rats that lived there. I slept there once one night on like a mattress thing and got totally freaked out when I saw a rat there.
Oh, so you got the job already from Probe Software.
From Probe. So Fergusson would find the work and then I would do it basically and he was very, very good. They were basically fronting me but I have my own company and, you know, it worked well. I got paid reasonably good money and he obviously earned something in between and, yeah, it worked.
![]() |
| Amstrad CPC version of Las Vegas Video Poker |
Did you have a say in the design, or was the game already done for other computers?
The original version was made by an American company. I can't remember exactly, but it might have been some US company that made this thing. I saw, I think it was the Commodore 64 version and used it and played it and took a few photos of it and things like that. But it wasn't very good.
So you didn't have source code or graphics and had to build it from scratch?
Yeah, I just did it from scratch. And I redesigned bits of it. So I made it so the cards rotate because using this algorithm that was more interesting to watch the cards rotating. Quite slow, but interesting. And then the Spectrum version was first. And I actually did all the graphics for the Spectrum version. And then I actually did all the graphics for the Amstrad version as well.
That's a question I wanted to ask you, because if I'm not mistaken, with Las Vegas Video Poker, it's the first game that you do both Spectrum and Amstrad. What experience did you have with Amstrad CPC prior to this game?
None. I had none at all. Except for the fact that I was pretty good with the Z80. It was a Z80 machine, so that was easy. And I read a book. I just basically had a book on programming the Amstrad CPC, I think it was. And it just explained all the hardware. And the hardware was pretty easy to use. Apart from the screen driver, which was a little bit more complicated.
So I did the Spectrum version, then I literally took that code and I built it on. The Spectrum was written on Zeus Assembler, which itself was on the Spectrum.The game was quite small. It fitted with the Assembler on the machine. And I believe I used for the Amstrad... What was it called? I don't remember the name of it. It was something like MKS or something, or JKS. It was three symbols.
![]() |
| Factory of dreams: Zeus Assembler |
It's not PDS, is it?
No, not PDS. I still have that. I was one of the first to get PDS, actually. I bought it for 500 pounds. It wasn't that expensive anyway.
So you did both versions. How did you manage to do both versions? Did you have a cross compiler system or did you make any game from scratch on the machine?
So I made it in Zeus first on ZX Spectrum. Then I had this assembler on the Amstrad, and I can't remember the name of it.
Devpac or something like that?
No, I don't think it was Devpac.
Maxam?
Could have been.
It was very popular back in the day because it came in ROM format, so you could put the chip in your CPC and it would start automatically.
This was on a disk.
It was also in disk but I know back in the day it was very popular the rom version because you could just plug in the ROM chip on the cpc and when you boot up the machine it could be already on Memory.
I had two disks so I had it running on one disk and it was when you first ran it. It would go to a main page, and inside that main page, you could go to the assembler, the disassembler, the debugger, and so forth. And I forget what it was called. It could have been Maxam. But...
So I used the CPC-464 to begin with and had a pair of discs on it that I borrowed from Probe. Actually led them to me.
![]() |
| Knight Rider for the ZX Spectrum |
If I'm not mistaken, you worked on the game Knight Rider from Ocean?
That’s right.
How did you end up working for Ocean? Came from Probe Software or was that something you did at the site?
That was earlier actually. I was working for Softstone, and Softstone were doing the original Knight Rider game. It was in 1985 or 86. 85, probably. It was run by a guy called Tony Knight, who was like a second-hand car salesman, you know, very smooth, a little bit posh. He was the kind of guy that all the programmers were poor but he had a Porsche. He was that kind of guy but we found out later the Porsche was rented. So yeah, I worked on Knight rider and got about halfway through making the first version of night rider and it was vector graphics.
The first one was a vector graphics game where you used line drawers and, you know, like Starion you might say, that kind of thing. But the thing was that I did it, I had only ever used optimized lines. And the mathematics I used to do it was all optimized so there were never any sines or cosines or multiplications. It was all based on fractions so the length of things were to do with fractions and then you would draw sets of lines and give it one master fraction and everything was proportional and it worked really well but it wasn't proper 3D. It was like line sprites, you might say but they kind of look cool and you could kind of make them move a little bit to make it a bit more 3D and I also did the road that way so the road would go around.
It looked cool and I got it up to something like about 10 or so frames a second. It was quite okay. Then what happened was that Tony Knight probably started to run out of money or something because he was running loads of projects simultaneously. And so he sold a bit of that company to two guys that were like consultants, computer consultants. And these computer consultants took a look at what I'd done and they went, well, why don't you just make it real 3D? And I went, oh, but then you'd need to do multiplications and it probably wouldn't be quick enough. And they went, no, that'd be fine. You could do that. So one of the guys of these two consultants wrote down all these formulas of how it could be done and all this kind of thing. And I went, okay, fair enough. You know, I'll just follow your new boss kind of thing, follow your lead.
So I coded everything. But the problem was everything moved to one frame a second. Everything was like clunk, clunk. And then go, well, why is it so slow? You must be doing something wrong. I went, I think it's all the multiplies and varying different kinds of lines you're drawing and the sheer amount of things that were going on. And this went on for a little while, for perhaps a month. And then what happened was Tony Knight got sort of pissed off with everything and they fired me. I got scapegoated because it wasn't moving forward.
![]() |
| Harvey Headbanger's loading screen |
So what happened?
It wasn't a problem. I went off and worked for Probe.
For you, it was even better.
It was a great move, actually. It was a good move. I mean, I'd met some really good people at that company as well. I met some lifelong friends there. People I still talk to today. I still know. I mean, I'm still friends with people like Jerome Tell, you know, and I mean, I haven't seen Molyneux for years, but people like that, you know. But yeah, so basically that's how it happened. And then I was fired. Gary Knight ended up writing the whole thing. It was based on another game, and he did it in like a month and by basically staying up all night.
Did you have contact with the people in Ocean when you did this game or you got just your instructions from this Consultant?
Yeah, yeah a little bit, but it was mainly Tony Knight's job. But before I got messed about I had more, a little bit more contact with them, but it would be the producer. They would have a single producer that would come down and look at stuff, you know. And it was the same thing with Activision, you know, and the other, some of the other customers.
So you had luck because you didn't have to work with these two consultants, but ended in Probe Software. And there you start probably doing the best work.
I was the only programmer at Probe Software, apart from Vakis, who was Fergus's partner.
![]() |
| Harvey Headbanger for the ZX Spectrum |
What can you tell me about the development of Harvey Headbanger?
Oh, yeah, that was hilarious. That was already written by... What's his name? I can't remember his name now, but the Amstrad version was written by this guy. I can't remember his name, but he was a nice chap. I think his name was John Hughes or Chris Hughes or something like that.
Richard Hughes.
Richard Hughes, yeah, Richard Hughes. So Richard Hughes, very, very helpful, very clever guy. I think he was a graduate of somewhere. So basically Richard sent me this massive folder full of printer paper with the whole source code in, plus a disk with the source code on. And it was quite clever.
This game used a technique called a minimax search. It used a depth search like a chess computer in order to work out what would be the best move basically. And so I kind of figured out some heuristics. So instead of coding it how he did it, I played the game a lot and worked out rules of how the computer behaved. So if you would go a certain way, what would the computer do? If you did this, what would the computer do? If there was a red thing here and all these different rules.
And then once I had a set of rules that it was virtually impossible to beat, it was very difficult to beat that if it was all the rules being used. What I did was then I had a random number generator that would spin and it, and you had these like 10 difficulties. So if you had it on difficulty 10, it would pick the rules 100% of the time. If you had it on difficulty five, it would either pick something random to do or a rule based on half of the time. And this is how it did it. So it was either stupid or clever. And somewhere in between. But it seemed to work very well.
Actually, it does.
Yeah. And, you know, it was really simple logic. Like, if you're on this side, you can't be trapped. And if you go under him and have a solid line, if you create, like, a solid line, then you've got to try and go around him. And it worked out that if you just flip the X and Y directions of Things then you could work out what direction you should do to go around something. And it would always work. So if he was going left, you should go right. If he was going down, you should go up. And vice versa, you literally just inverted all of his movements.
![]() |
| Down to Earth |
So the next game will be Down to Earth. What can you tell me about?
I didn't write Down to Earth.
No?
No, Down to Earth was written by Darren Byford.
Okay.
The thing was that Darren was my friend. You know, like a drinking buddy. He was very interested in programming and stuff and so I taught him how to be a computer programmer. I taught him how to program games from scratch actually. He would come around and ask lots of questions, and I would like copy assemblers for him. And he wrote down to earth. I think he just credited me because I was like his mentor.
I understand.
It's a few people like that, you know. Jason Green, the graphic artist, I found him as well.
Oh! You did Mr. Heli with Jason Green.
He was a fine artist who was kind of weird and always getting beaten up by the local punk rockers. He didn't have a job and I sort of found him via someone else actually and put him to work. He just had a natural talent for it.
![]() |
| Quartet for the Amstrad CPC |
A bit later you made Quartet and Rygar, and both games are conversions from arcade machines. How did you do this conversions? Did you have source code or something like that?
I lived in a house in Worthing next to the seaside with David Quinn, who wrote Impossible Mission and Trantor, The Last Stormtrooper. And he's still a great friend. And Nick Brutty, who did a lot of the graphics for these different games. And there was another guy there who was just sort of a lazy layabout, really. It was like an old fashioned 1930s house, it was lovely. One day we had a knock at the door and a guy turned up with a huge lorry and in the back of that huge lorry was a quartet machine. Have you ever seen a quartet machine?
It’s huge!
Absolutely, because you needed room for four people. And we couldn't take it upstairs or anything like that so these three or four guys took it in our house and they put it in Dave Quinn's room because he had the biggest bedroom. We basically played it a lot and it was okay. Quartet's not really a very good game, unfortunately. I mean, the conversion was extremely average, but then the game itself was pretty average.
So you just played it?
It's a game designed to be played by multiple people simultaneously. And you had to try and make a version that just worked for one person. And it just became like a Manic Miner type thing, you know? Not as good as Matt Smith's game, you know? So that was written in the same way as I did the amstrad Version. Didn't I? Did I do the amstrad Version?
![]() |
| Quartet for the ZX Spectrum |
You did both.
I don't remember. I remember doing the Spectrum Version but quite often the Spectrum version came first. And then the Amstrad version would come second. Nick Bruty did the graphics for the Spectrum and the Amstrad, I believe.
Yes, he's credited in both. Was the same story with Rygar?
Rygar was actually a good game. I just used to work at the probe office for a little while, actually when I was working on Rygar. That was for US Gold, because it was Charles Cecil. Charles Cecil was the producer of that. Yeah, I really liked Rygar. And we had the arcade machine. I had the arcade machine literally right next to my desk. Have you seen Bandersnatch?
Yes.
Have you seen the office that they use where they go to this office and it's like programmers in there? That is stolen. That was what the Probe offices looked like.
Oh!
So this scene from Bandersnatch is directly stolen from what looks like the Probe offices. I was very surprised at how similar they were. They were kind of a mixture of two different offices together, which was weird. The first probe office in Croydon was much nicer. The second one was like a unit that Fergus bought in. He bought this unit. And then the third one was this 50 pence building near Croydon Station. So Charlie Brooker [Note: writer of Black Mirror's Bandersnatch and creator of the show], was friends with Gary Lyddon, producer of Mortal Kombat on the Game Boy. They used to have lunch occasionally.
One can see a connection there, of course.
Yeah.
![]() |
| Rygar for the Amstrad CPC |
So Rygar was more or less like Quartet to do. So actually play and then try to realize how everything was done.
Yes. Basically, I looked at the game and took photographs of it. And I guess we could have had access to the code, actually. But I never used any code there. The way I did it was character-based. Obviously, the background was character-based. And I think we used nibble scrolling on that game. I think the way it worked was: Every character, there were two copies of it. There was one of the characters and one of it slightly shifted by four. Was it nibble scrolling? I don't remember.
You mean now on the Spectrum or in the Amstrad?
On the Spectrum, I think, it was nibble scrolling. On the Amstrad, it didn't need to be nibble scrolling because you could literally just move the pixels. So the Amstrad version: The way it was done was the background box blocks were these big sprites. They were really big, fast sprites. I kept some space around the edges of the sprites, some blank space, up to four pixels, I think it was, around the edges of the sprites for the background, so that we didn't have to redraw the background. The background would remove its own mess.
![]() |
| Rygar for the ZX Spectrum |
I think that technique is called masked sprites or something like that.
I know what you mean. No, it's not masked. It was literally just: you take a block and you plot it. So the whole screen would be drawn every single frame. The background would be done first. And it was just plotted on there, everything. And it was done very, very quickly. And it was done using a method where instead of moving byte by byte, we moved two bytes at a time using the stack. We'd point the stack at the sprite data. We'd load the sprite data into registers, and then we'd push it onto the screen in reverse order. And it was twice as fast.
I am not a programmer myself, but I am a little bit familiar with different programming techniques. So that is the stack technic.
And there was something really weird that used to happen. If there was an interrupt, then the interrupt would always put its return address on the stack. It would destroy a little bit of data. So the interrupt routine would repair the sprite. We had the interrupt routine repairing the actual sprite.
The next game will be Dynamic Duo. That is an original game. It's not a conversion, right?
Original, yeah. Basically, the first version of that game was called Something Else. It was a different game. It was like a big robot and a smaller robot. And the smaller robot would fly and the bigger robot would walk behind. And they had different properties. And in order to solve problems and to get to wherever, you needed to use the two Things.
This game was invented by Grant Harrison, who was a friend, and Hugh Riley, who's also a friend. And something happened were they either parted ways and Fergus had already paid me to do this stuff. And then I believe it was one of the producers, myself and a producer at Probe, we kind of had a brainstorming thing where we decided we'll change the graphics and make a slightly different game and change some of the game logic and things like that. And then it would be this other game with a big fluffy bird and a silly guy who was like a dwarf.
You know, it was not a great game. I preferred Tie break. That was much more fun to do: Tie Break and Sim City and, you know, all that stuff.
![]() |
| Dynamic Duo for the Amstrad CPC |
In dynamic duo, you actually show very high skills programming the Amstrad CPC, because you are using raster splits. Not just using the interrupt to change the colors, that was very easy to do back in the day, but this raster split in the Amstrad was very difficult to do properly. And it was a little bit like a holy grail together with the hardware scroll from the CRTC chip. How did you learn to program this Motorola chip? Because not everybody had success trying to tame this wild chip.
Yeah, I tell you, so I wasn't the first to do it. There were two programmers, Chris Wood and his friend ZZKJ.
Chris Wood made the Amstrad version of Nebulus and Netherworld. And I think in Netherworld he was already using this raster split.
Yeah. He did Solomon's key as well. In one of those games, I think he used the split.
![]() |
| A great game by Chris Wood |
That's right.
So I was talking to Chris. Chris was a nice guy. Chris told me that he and ZZKJ had done this thing. He basically told me that they'd met this hardware guy who was at university who was designing chips. And he knew how this chip worked and exactly how it worked, how it was gated and stuff. And that if you could do it in the right order, you could do this split. I mean, I did do my own one, but I basically learned that you could do it from Chris Wood. They never gave me any code or anything.
But basically what you did was this: You had to set up the chip so it created a small screen at the top. And be careful not to use all of the screen because there was only a limited amount of memory. So you created one screen and then below that, just before it finished, you had to catch it just before it hit retrace and change all the Registers in a certain way, so it sort of crashed the chip somehow. The Chip didn't like it.
It would sort of crash the chip a little bit. You change it and then you change it again. So at the bottom of the screen, it was set up for the top. Then it would run through the top. Then you would send these codes that crash the chip. Then you would change all of the codes again in order to do the bottom screen. And so you would quite often end up with a weird line in between that kind of would be a bit flickery or something. But if you just switched off the telly, the screen for a moment, you didn't really see it. It'd be just a black line. So it was done by changing all of the registers and by crashing the chip.
By the way, I don't know if you know, you probably don't know this. I actually made a screen splitter that split the screen eight times from top to bottom. And I could control each one independently. And I just did it for a laugh, really, to see if it could be done.
And what made it even harder was in America, they had a different frequency.
Yes, 60 Hz.
Exactly. So you had to account for the fact that the screens worked at different frequencies in different places.
It's actually funny because not many people know that you can put the screen of the Amstrad CPC at 60 Hz.
I knew how to control the disk drive as well. In Sim City, I used my own disk format. And I made a protection system for it, that used slightly different kinds of numbering system for the disk, which worked fine when you booted. And when we sent it to the duplicators, they couldn't read it. They couldn't copy it. Ironically, I had to take all the security out of it.
Were you involved in the mastering of cassette tapes? Were you the typical guy who had to go to Ablex or whatever company was there duplicating and talk to the engineers?
Well, perhaps sometimes there would be phone calls because in some games we would have speed loaders. Especially on the spectrum, you might have a high-speed loader. And I've written some speed loaders, although I don't think we used many of them. And, of course, then the disk system, one of the disk systems on the Amstrad I did as well, which I kind of borrowed some code from Tony Porter. I found some code. I didn't do much that kind of thing. I've had to try to sort of avoid it. If anything, you let the protection guys do their thing. You're not paid extra.
Using these raster splits usually makes you invest a lot more time to program the game as just using your normal routines. Why did you decide to invest this time in doing the things right instead of just doing a quick porting from the Spectrum?
Because the game would be better. I like that kind of thing. The challenge is interesting. You see someone else do it and you think, "I'm going to do that too". Like I said, I saw Chris Wood do it and I thought "I'm going to do that". And it was the same thing with David Perry. We had these eight directional scrolling games that were really cool and I thought "how's he doing that?" And I figured it out.
![]() |
| Mr Heli for the Amstrad CPC |
After these games came Mr. Heli, which is one of my favorites.
Yeah, that's probably the best game I've ever done, apart from Sim City and Tie Break.
That's a conversion from an arcade machine. I guess it's the same history as the other ones? You have to play the machine to the end and try to realize how the game was done, or did you have any help to convert the code or graphics?
Well, Jason Green did the graphics for Mr. Heli. Actually, I really liked doing Mr. Heli. I had the machine in my flat for a little while and played it a lot. And we basically just sort of copied the look of the machine. But I'm actually quite proud of Mr. Heli.
It's probably one of the few games I'm more proud of because it turned out really quite well. And because you've got this problem that you've got an arcade machine with zillions of bytes of memory, and you put it on a tiny little plastic machine with nothing. And then everyone expects it to be amazing. And you have to give so much up if you want to make a game fast.
You have to make everything super small and you can't have great big sprites. It'll be slower and there's all these compromises everywhere. But Mr. Heli was good because it had eight directional scrolling that I learned from David Perry. The background system for Mr. Heli had something like 16 sprite routines for the background. You had one for not touching any edges. You had one for every edge and one for every corner.
And again, it used this technique of moving slow enough. It would move slow enough not to have to erase things. So if you just moved less than four pixels for each frame, everything behind would always get erased.
Then the actual little heli guys, that was just another Sprite routine. There were eight Sprite routines for that because it was a different size. I think it was 16 times 16 on Mr. Heli. I think the background box was 32 times 32 or something like that. And I don't know if you know this, but that game cheated. It was the first game that I wrote where it had a built-in difficulty system. So, if you got spawned, and you died too quickly, the gain would reduce the amount of firing from the aliens slightly.
![]() |
| Mr. Heli for the ZX Spectrum |
That's very interesting.
Yeah, and then if you got really, really good, the firing rate would increase. And I figured out that actually you can use the golden ratio. This is game theory that what you want is a natural rate of growth, a win-lose curve that is perfect. It turns out to be 1.618, so you want to try and stay on this win lose curve and people have maximum kind of enjoyment when they can win it. It's still a challenge and it's not too hard and so basically the game would be easier when it started up, and the longer you survive, it would just get sort of harder.
That's very interesting because, like you said before, you had to compromise because the arcade machine was a lot more powerful than the Amstrad or Spectrum where you had to put the game. But you still reserved some memory and some processor cycles to control how quick or how slow were you killed in order to adjust the difficulty for the next game. I find that amazing.
It was a shame it wasn't more successful, that game, because it was one of the games that I was really proud of. I mean, Rygar sort of turned out okay, but I wish it could have been better. The problem with Rygar, for instance, was it didn't really have enough levels or enough enemies. In the real game, you had all these bats and bears and everything, but in the Spectrum and Amstrad ones, you would kind of get the first four or eight rounds and then it would just be the same, but a little bit harder.
The problem was you always were faced with time. People wanted to have the game in the market at certain times. If you took six months to do a game, it would become quite stressful because the publishers would be like, hurry the fuck up, we've got to go to the duplicators. On many occasions, I had producers around my house after nine o'clock doing fixes because they took it to the duplicator and the duplicator found a bug or something like that. And we've been working really sort of pedal to the metal.
![]() |
| Jason Green did a wonderful job |
Here you're working with Jason Green at the graphics. How is this symbiosis between a programmer and a graphic artist like Jason? Will he make gorgeous art and you have to scratch your head to find how you can animate this so it is perfect? Or was it a little bit the inverse and you would say to Jason, hey, I have so much power, you have to do something gorgeous for this?
No, I was never an arsehole to him, you might say. When I first met Jason he knew nothing about computer graphics. He knew how to draw fine art and he knew how to sketch and he was very very good at faking train tickets. He would take a train ticket, he would draw a new date on it, you know. You couldn't tell because it was so well drawn.
So I explained to him how other artists did things like dithering and these kinds of techniques that artists use in order to represent things in very few Pixels, or in black and white, or in very few colors. I did a test project with him where I think I gave him 50 quid or something just to keep him happy with his test project, but nothing came of it. And then in the end, I took him with me. We were a team, as a team, to do Mr. Heli and to negotiate Mr. Heli. And I'll tell you one thing, he wasn't a great negotiator. I was a better negotiator than him. I suppose he probably needed the money more. So he would kind of like, I would be negotiating and go "I want 18,000 pounds to do this". And the Fergus would go on "no, I'm only going to give you 15,000 or 14,000". And I would go, "no, no, no, we can just walk away from this one". And then Jason Green would go "you've got to take it, you've got to take it like this". I'm like "you absolute idiot", and then Fergus would smile. So I ended up having to do two grand less than I wanted because he couldn't negotiate.
The music of Mr. Heli is very awesome as well. How did it work with you? Will you receive the music in binary files or do you have to program your own player or how do you usually work with the music?
It was David Whittaker who did it, right?
![]() |
| David Whittaker with a musical tie |
It sounds a lot like David Whittaker but I don't see credits for the music.
It could be him but it sounds a lot like him. It could have been Alistair Brimble, even. But I'm pretty sure he did Mr. Heli because he did the music for the Atari ST as well. So we'd have a call and we would agree on where he could put it and how much it would be. And then he would send a binary and there would be hooks.
So you would have an initialized hook. I think it might have been C1000 or something like that. You had C1000 in memory and then the first address would be initialized, and then it would be three or four bytes onward from that would be another call function, something you could call that was a jump into his code. It had a jump table at the beginning and the jump table was three bytes long. You would call in and each entry did a different thing. You would have a start and stop music. You would have reset music. You had to play sound effects. And sometimes it could be channel and sound effect and so forth. So you would just have these, perhaps there were eight in the table, eight calls that you could make. He wrote the engine completely.
And was it always okay with you the impact on how well we played the game or did you sometimes have to optimize this binary, changing maybe the routines to make it go quicker?
On the Amstrad it was never a problem because the Amstrad actually has music hardware. So on the Amstrad, you have registers that you set up and that starts things playing. The music code was running 50 times a second on the interrupt, and each one of those 50th of a second, the music engine would be modifying or trimming the oscillators and the frequencies and stuff. And because it didn't have to do any oscillation itself, it was quite quick. Whereas on the spectrum, you didn't have that.
![]() |
| A truly classic |
About Sim City: What did you think when they come to you and say you have to port this game to limited machines like the Spectrum of the Amstrad? Because the game was already getting quite popular on PC.
Yeah, well, and it was on the Mac as well. I have, I think, two versions of it. I think I've got the PC version of the game as source code. I thought it was a cool game and I played it and thought this is an interesting game. I don't know how much you know about Will Wright, but you know Will Wright's actually, he's trained as a town planner. His education has to do with planning towns. So this game came out of the fact that he wanted to be able to plan towns better. So they sent me the source code and I had the source code, but I couldn't use any of it because it was 8086 and it was on a 640k PC.
![]() |
| The same spirit as the original game |
That's what I wanted to ask. You probably were not able to use the code, but you could at least understand the logic and the mathematics and the numbers how it was in order to bring it to the more limited computer.
Yeah, a little bit. Somewhat, you can say. Some of it you just can't do. Not even the way that they do it. You have to kind of look at it and sort of make an estimate of how to do things. So the way I did it was... I think I did the Amstrad first actually in this situation and the Spectrum second. I had a woman in Essex called Jill, who did the graphics for Sim City. And the funny thing was, that her son worked for Amstrad. She worked at home and she did all the graphics for it. And I got all this stuff. Anyway, I had the source code. I looked at the source code. I went through it quite a lot. And then I just thought to myself, well, the very first thing I've got to do is to do a split screen, a little bit of a split screen thing, but not an actual split screen. And then I just had a limited amount of characters, a limited amount of memory, so I had to make the world a bit smaller.
There was a character reference for each entry. It was character mapped, but there were only allowed to have, I think it was 64 actual characters. It had a peculiar mechanism in there because we only used 64 characters, but if you picked a character that was higher, you had two bits in there that would trigger banking. You had 64 characters and then you could bank other blocks of characters in and different combinations of characters by using this banking. And then there was a fourth bank that would draw more than one character. And all the houses and airports and things like that would be a single character that described them, but it was actually a single character that would trigger the drawing of this, you know, 3x3 or 4x4, basically.
Then it was true multitasking as well. The system multitasked on interrupt. So I had two processes that were going 50 frames a second. You had the graphics process and 25 times a second, you had the background process of the city actually running. So there were lots of, whenever you drew stuff,the system would go through the entire map looking for things and then it would update information in this map. And it had background maps as well. So there was another map behind that was like four times four blocks to represent, for instance, pollution, and then there'd be another map to represent the different layers. Just the actual characters were used to represent the actual characters.
It was a complicated game. It was multi-threaded and it was running the simulation background. The simulation used to modify the graphics somehow as well. But it was all written from scratch. And I could not even use some of the algorithms, like for traffic, because they'd kind of done it in a way that wasn't really right for the machine. So I had to come up with other ways of doing it, because the way that they did it was just massive. And that wouldn't fit in the memory for me.
![]() |
| Italia '90 for the Amstrad CPC |
What can you tell me about the Italia '90 game?
That was fun. I think that was originally on the Atari ST. Italia 90 had some cool intelligence in it. It was not a bad game, actually. I had to figure out how to make it intelligent and how to make it fun because the original game wasn't that good. You know, all the players would just run for the ball constantly. And I didn't do it that way.
What I did was I had the graphics and we ported the graphics over. And I had a system where it was sort of 2.5D. So the player would be at a certain point, and then you would just say, go to this point, and the graphics would rotate and run, and it would sprint off to a certain point. And then you could, to another position, it would run and sprint off to another point. And you could tell it to kick and do all this kind of stuff. So that was the first thing that we did.
I did this trick, this AI trick, you might say, where i had three sets of positions for all of the Players so depending on what zone the ball was in i divided the pitch up into like four zones and if the ball was in zone one the players had optimal positions that would be more towards. They'd be spread out and then if you got into zone two which was another quarter along the players had these positions that were a little bit more at the end and then zone three or up to the other end and then for the other team it was just mirrored the positions and then if a player was close enough to the ball it would make the decision to go and try and get the ball or to try and tackle the ball. And it used, again, some sort of random numbers to decide whether to do the smart thing or not.
How about Tie Break? By the way, there was planned a game about Steffi Graff.
It was meant to be Steffi Graff's tiebreak. And I had negotiated meeting Steffi Graff. But it never happened. So they just went to Adidas.
![]() |
| Tie Break for the Amstrad CPC |
How was the development of this game?
Sort of similar to Italia '90 in some way. The way it worked was in a similar way. I basically divided up the court into sections. And then there would be: if the ball was in a certain section, there would be an optimal return position for the computer player. And so if it was cross court, you could hit the ball in all these different ways by pulling the joystick in different ways. If you want to make it more difficult, you spy on what the player's actually doing. And that was something that I used to do to make it more difficult. But the kind of the way it would work is it would try and get in the right position. And then when the ball came back, as long as you could get to the ball on time, you could nearly always hit it. That was the trick.
And then different difficulties were different range of shots. So if the computer was too far away from the return shot, it would miss the ball. If it couldn't reach the ball, it would miss the ball. So if the computer was very far forward and the net and the ball came on the other side, then you would beat it. That's what happens in reality. And so the computer used to have the same thing. It would use different shots. So if it was on one side, then the shot would try to be away from the player, for instance, in order to beat the player.
I guess when you were doing games like Mr. Heli or Sim City, you were not programming on the target machine. How was your coding setup?
Mr. Heli, Tiebreak, Italia 90, Rygar and Sim City were all written on PDS. The first time I used PDS actually was the game after Rygar. So Rygar wasn't PDS, but the one after Rygar was PDS. So Dynamic Duo should be. PDS was beautiful. PDS was like a dream come true. I still have it.
![]() |
| Dynamic Duo for the ZX Spectrum |
I have the impression that for games like Mr. Heli, you had in mind first the Amstrad and then you did the Spectrum because, for example, the graphics looks like in the Spectrum they just ported the mode zero chunky pixels from the Amstrad to the Spectrum.
Yes, yes. It was a tool. I'd made a graphics tool called Texture Tool and the entire graphics for the Spectrum version were generated using this system. And I did try and get paid for it, actually. I go, well "you know, you should pay me money for this. At least half of the money of what a graphic artist would get". And I think he gave me a thousand pounds to shut me up, you know.
I´ve heard some stories about Fergus, like he will put teams of programmers, graphic artists, etc, in one flat but that he will actually charge rent for the flat. So it wasn't like you can live here for free, but you have to pay him the rent. Is that correct or are those internet rumors?
I don't think it's true. What would happen more like is you get four programmers that would agree to live in a flat or a house and they would just pay a portion of the rent themselves. Fergus didn't need to be involved.
The only time I ever paid rent was when I did live at Fergus's mother's house. She had spare rooms. I lived at Fergus's mother's house for three or four months. And she was lovely and very nice, but she was very, very bad at putting the heating on. And it was cold. And the other thing was that I've never seen spiders quite so big as in her house. I remember one terrifying night where I felt something on my arm and it's the biggest spider I've ever seen in my life. But I paid my money to her. I didn't pay my money to him. And Fergus wasn't dishonest. Fergus was good at making money, and he was a businessman, and he could be a bit sneaky, but he wasn't dishonest. It was more like he was better at negotiating.
After Tie Break and Italia '90, it was obvious that the market for 8 Bit games was crashing and you had to look for another gig because you could not make a living anymore for making games for the Amstrad or the Spectrum. And you decided to go the console route instead of going Amiga or Atari ST. Why did you choose consoles instead of computers?
I didn't choose. Somebody offered me consoles. I was offered to do Sega Chess. And with David Levy, actually, who was an international Grandmaster. I think so. He is the person that was the most like Sherlock Holmes I've ever met.
![]() |
| Sega Chess for the Sega Master System |
How difficult was it for you to adapt yourself to programming for the consoles?
That was easy. It was pretty easy. I mean, it's like programming is programming, you know. If you can do good programming, you can do it with anything. It doesn't matter what language it is. Programming is a mindset. These days, you don't really have to figure out how to do things fast in the same way. In those days, we had to figure out how to do everything fast and to break the rules constantly because you couldn't be done any other way. But these days you get a pc that does eight squillion trillion instructions per second. I tell you, if you've got something like 10 or 15 old games programmers together and you said "make an operating system for PC or for whatever", they would make something that would be a hundred times faster than Windows 11. It would just be like lightning and everyone would be thinking, wow, this can just do everything.
What did you learn in this years doing 8 Bit games that helped you along all your career?
Well, I learned a lot. I was an entrepreneur in reality. I was never a person that hung around and waited for someone to give me a chance. I would always pursue things. And I never pursued people in terms of, like, give me a chance to write games. I just did it. And this is the thing. If you love something, you'll just do it and nothing's going to stop you from doing it. You just do it and then you show someone and if they like it, they like it. Obviously, I live in Sweden now and I basically took that whole mindset with me to Sweden.
I never once thought that, oh, I can't do this or I can't do that.If you do that throughout your life, you can get somewhere because there are people who recognize other people who have some skills. I never sort of tried to get into the games business as such. I didn't have a master plan. The way to get to something is just to do that thing, and have nothing stand in your way. If something stands in your way, walk around it.
![]() |
| Another classic by Tony: Mortal Kombat for Game Boy |
How long would it take projects like Mr. Heli or Rygar to make? How much time did you have to do this kind of game?
Rygar was I think four months or five months. So I think I did four months on the Spectrum and then perhaps it took, say another two months or so for the Amstrad. So perhaps six months for both versions. And I think about the same for Mr. Heli. It worked out to be four to six months. The exceptions, of course, are all the smaller games. I think I did Harvey Headbanger in like three months or something like that. And I think poker might have even been just a month and a half or two months, you know, on one version and then another month or so on another version. And, you know, Dominic Wood was very, very useful to me when it came to doing Amstrad stuff because he was on the Amstrad before me. So I would phone him up and he would sort of go, well, I did this and I did that, you know, and that was useful.. He's a good friend.
I think it was him that recommended the book. He was like a skateboard guy. He was not the greatest programmer in the world but God, did he work. He was so focused. He would get on with things and get it done. And his code would look a bit like a junkyard, but it got done and it worked.
Could you make a decent living doing these games?
I think I did video poker for about four or six thousand pounds for both versions. I used to get about a thousand pounds a week. Well, early in the career, when we were doing smaller stuff, it perhaps was about half as much, so it was perhaps 25,000 a year. And then later, when I was doing the console stuff, I was getting about 1,000 pounds a week. Which was okay. The problem is I was very bad at accounting and paying tax and stuff like that.
![]() |
| Here you will need to manage properly your taxes as well |
From these 8-bit games that you did on computers, you already gave me a hint, but which one is your favorite?
So I think probably Mr. Heli and Sim City. I think Tie Break came out quite well. Even the soccer game. I think the soccer game came out well.
You started very young doing games and so, and you were always surrounded by young people like you that were doing games together. When people that young get together there usually are anecdotes or funny things that happen. Is there something that you can tell us, that funny anecdote that you remember from that day, that you can still say and you don't get in trouble if you say that?
I mean, lots of things happened. I remember once getting paid for a game and going around my friend Darren's place and then he was smoking something. And he gave me some and I smoked it a little bit. And then I went, well, I must go. And I took the train home. While I was on the train, I got ultra paranoid and thought everyone was trying to rob me and then locked myself in a toilet for an hour. By the time I got to Brighton, I was okay again, because I was never really into that stuff. It was so strange, you know. I got paid and I went to the bank and I had a countercheck and I took out, I had something like 8,000 pounds or something. Put it in my bag, and it was a lot of money to be carrying around, and I was sitting there on the train, and I was thinking, that guy there with the thing in his nose, he knows I've got money.
Do you still keep your source code from all your games?
I think so. I don't think I've got every single one of them because some of them were lost but I definitely have quite a lot of games that are backed up.
What happened to games like Brain and Brawn?
Brain and Brawn is basically the fluffy bird dwarf thing with different graphics. Brain and Brawn was the first split screen thing. Dynamic duo was Brain and Brawn.
Many years after doing your games, do you still hear the call of the Assembler? Will we see someday more nice games by Tony Hartley done for the old computers?
No, I'll tell you what. I was thinking, it would be lovely to write a game again. And then I said, and then I would wake up. Wake up and think, no. No, it wouldn't be lovely at all. It sounds great. And when I did it at the time, I loved doing it. I thought it was marvelous. But in today's context, it's an awful lot of hard work. If I was going to write a game I'd do it in c or in java or python or some other language because it's just so much easier. You can still have all of that power of the computer and C will get you very close to the metal. I think probably the vast majority of the programming I've done since the early 1990s has been in C.
Thank you again for your patience and your kindness.






























No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.