Nuestro vecino Sandro Mestre, alias Iapetus, nos trae otra de sus pequeñas joyas. Ya lo tuvimos con nosotros hace ya bastantes años en ESTA entrevista cuando nos habló de sus anteriores lanzamientos y ahora y para rizar el rizo, nos presenta un juego hecho con Forth . Este viene firmado por Astron Soft, su propio sello, y Cosine, el grupo con el que ya hace años que colabora y que fue fundado por el fallecido Jason Kelk.
Iapetus es portugués pero habla y nos escribe en un perfecto castellano que él mismo aprendió leyendo revistas y libros de informática en los 80/90.
–Explícanos un poco tus inicios en la informática, tu primer ordenador y cómo viviste tu infancia en los videojuegos.
–La primera vez que vi un ordenador ha sido en la casa de un amigo mio, yo y él teníamos unos 9 o 10 años y fue un ZX Spectrum 48K. Era de una chica, prima de mi amigo, unos 10 años mayor que nosotros. Recuerdo que los juegos eran bien básicos, de los primeros que habían salido para la máquina; Entre ellos uno era Jumping Jack y el conocido Manic Miner . Pero lo que me encantó de verdad ha sido la posibilidad de programar mis propias cosas.
Pasados unos pocos meses, por navidad mi madre me regaló un Timex 2048, que eran producidos por Timex Portugal. Era un clon de ZX Spectrum 48k pero con algunos modos gráficos extra y entrada de joystick Kempston. En las tiendas de la época recuerdo ver también el Amstrad CPC 464 y unos amigos míos tenían un MSX 1 y el otro un Sharp MZ-700.
Durante gran parte de la época dorada aquí en Portugal, por lo menos en mi zona, no era posible encontrar juegos originales, todo era pirateado que se vendían en las propias tiendas aunque no sé como sería en el resto de la península. Pero con tantas casas de software españolas pienso que la situación sería muy diferente de acá. Yo compraba siempre revistas españolas como Microhobby y Micromanía, y también algunos libros de programación y fue así que aprendí algo de castellano. Pasé una infancia muy feliz jugando montones de juegos con mis amigos y destruyendo joysticks, je je. Al principio, yo y mis amigos teníamos máquinas Timex o Sinclair. Cuando compré el C64 yo era el único con un ordenador de Commodore. Más tarde compré un Amiga 500 y mis amigos más cercanos compraron el Sam Coupé porque querían seguir usando los juegos que ya tenían en casa.
–¿Qué te ha quedado de todo esto y qué es lo que tanto te apasiona de la informática en general para trabajar en sistemas tan dispares?
–Eso de interesarme por varias máquinas pienso que viene de haber tenido otros ordenadores de 8 bits en la época dorada. Después del Timex, compré un Commodore 64 y también un Atari 800 XL. El Atari lo vendí poco tiempo después porque en comparación con el C64 me pareció muy malo aunque mas tarde me arrepentí porque es una máquina muy interesante. Los otros dos aún los tengo funcionando.
–¿Por qué programar para el C64 y tantos sistemas rarunos y minoritarios?
–Aunque el C64 haya sido el ordenador que más me ha gustado en la época dorada y lo sigue siendo, no fue mi primer ordenador sino el Timex TC2048, un clon de Spectrum. Tal vez por eso, empecé a programar en BASIC después Z80, después 6510(6502). Creo que esa fue la razón, también tenía un Atari 800XL en la época. Programar para sistemas menos conocidos me gusta para apoyarlos y no desaparezcan.
–Háblanos un poco del juego y su historia, ¿porqué escogiste estos sistemas/lenguajes para hacerlo?
–El juego se llama "Zezito [es diminutivo de José o sea, Pepito, en castellano] in the Glittering Caves". El juego es bastante sencillo y poco original. Consiste en coger el bote de pintura y el rodillo y pintar los tiles que han perdido el color.
La elección del lenguaje de programación para estas maquinitas es el lenguaje máquina por su velocidad, ya que en BASIC va todo muy lento a no ser que se compile. Pero he programado también juegos en C y código máquina usando CC65 para el Commodore 64 (Uwol Quest for Money y Sir Ababol que son versiones para el C64 de juegos originales del ZX Spectrum de los Mojon Twins). A finales del 2022 descubrí el Durex Forth en Github, que se publicitaba como muy rápido y entonces me decidí a programar un juego usando ese lenguaje. Es completamente diferente de todos los otros que había utilizado antes. Para quien sepa inglés recomiendo: forth.com/starting-forth. Este libro es muy conocido y quizás haya una versión en castellano. El Forth con su sintaxis demoníaca te hace ver las cosas de otra manera, me ha ayudado a ver los problemas de programación desde otro ángulo. Es rápido comparado con BASIC, compacto y también es altamente portable.
Por ejemplo podéis ver aquí 3 de mis rutinas de limpiar pantalla, pintar carácter y bloque:
: cls ( char - ) $e000 1000 rot fill ; : pcar ( car x y -- ) 2* tpantalla + @ + c! ; : pbloque ( bloque x y - ) 1+ 2* tpantalla + @ + >r 4 * bloques + dup @ r@ ! 2+ @ r> 40 + ! ;
Parece complicado para la gente que usa otros lenguajes.
Me gusta mucho el Forth porque en términos de programación es de muy bajo nivel y potente. No es tan rápido como el código máquina pero es mucho más rápido que el BASIC no compilado. En la página de Durex Forth: github.com/jkotlinski/durexforth dice que es más o menos 50 veces más rápido que el BASIC V2 de Commodore.
–¿Usas herramientas de desarrollo cruzado o compartes código entre las diferentes versiones?
–Uso principalmente las rutinas de lógica del juego que se pueden fácilmente usar en ordenadores con el mismo procesador. Lo más complicado es portar de un procesador a otro diferente. Pero suelo usar las mismas herramientas como Charpad de C64, incluso para otras máquinas que no sea el C64. También yo mismo me hago muchas herramientas propias en lenguajes modernos como Python, Lua, Java, etc.
–¿Qué diferencias hay entre los sistemas en los que quieres sacar el juego y qué diferencias encuentras entre ellos?
–De todos los sistemas para los cuales suelo programar me parece que el C64 es la máquina mejor equilibrada en términos de gráficos, sonido y memoria. Por ejemplo el Acorn Electron tiene algunos modos gráficos más avanzados pero después veo que la pantalla ocupa bastante memoria, hasta unos 20K mientras la máquina tiene 32K de RAM. Estos modos gráficos también son bastante pesados de manipular por su tamaño y otras cosas como contención de memoria. La máquina tiene un 6502 a 1Mhz.
A nivel de sonido no hay dudas que el C64 está muy arriba de todas estas máquinas. Un amigo me ha compuesto unas músicas para el juego en C64. Para las otras máquinas pienso que solo voy a añadir unos pititos y si es posible alguna melodía en el menú porque no se puede hacer mucho más.
La versión más avanzada del juego era la de Thomson MO5. Empecé a programar el juego primero para C64, pero era solo un test, una curiosidad para ver como sería programar el juego en Forth y comparando la versión de C64 con las de Thomson y la de Electron se ve un poco básica a nivel de gráficos. Al final decidi terminar primero la de C64 porque es la versión original y no sería justo sacar la de Thomson primero.
En mi canal de Youtube, @IapetusRetroStuff pueden ver un poco de cada versión del juego.
–Para los ordenadores mas minoritarios y de los que no hay tantas herramientas, ¿buscas alguna ayuda o cómo lo gestionas?
–Una cosa que me gusta mucho es, cuando es necesario, programar mis propias herramientas de tratamiento de datos gráficos y de mapeado. Uso normalmente Python porque es para mi más fácil pero tengo algunas en Lua, Java y C(++).
Para el C64 no ocurre esto porque hay tantas herramientas disponibles y de calidad, y suelo usar mucho las versiones pro de Charpad y SpritePad, incluso para otras máquinas que no sea el C64. Para este juego en Forth he programado una herramienta para ayudar con los datos de los niveles porque no he encontrado nada que haga exactamente lo que necesito.
–Entre el 2010 y 2012 nos regalaste tres arcades muy divertidos (Nanako in Classic Japanese Monster Castle, Uwol Quest for Money y Sir Ababol), ahora con este Zezito vuelves por tus fueros. ¿Significa esto que volveremos a verte en plena forma a partir de ahora?
–Me gustaría mucho pero la vida real me ha enseñado que no siempre nos da tiempo para aquello que más nos gusta. Por ejemplo Zezito in the Glittering Caves lo tenía casi listo desde 2022, y como trabajo con varias máquinas diferentes me divido demasiado entre ellas y creando demasiado proyectos a la vez no ayuda la cosa. Pero sacando este juego me ayuda a crear una dinámica y puede ser que saque juegos más a menudo.
–¡Muchas gracias y esperamos seguir probando tus próximas creaciones!
–Muchas gracias por la oportunidad y apoyo.
Enlaces
Iapetus ya nos visitó hace mas de 10 años, le podéis leer en ESTE artículo donde él mismo nos explica sus inicios.
También lo podéis seguir desde su Itchio en ESTE enlace, en CSDB con sus lanzamientos y su cuenta en X @newIapetus
El juego "Zezito in the Glittering Caves" se puede descargar desde Itchio.





0 Comentarios