Ir directamente al contenido

El clásico «Knight Lore» aparece por fin para los Commodore 64

octubre 7, 2018


 

Lanzan por sorpresa una versión de uno de los videojuegos más importantes en la era de los «ocho bits» como es el emblemático Knight Lore de Ultimate Play The Game, que tras muchísimos años se publica por fin para Commodore 64, como ya ocurriera meses o años atrás con otros juegos de la mítica compañía fundada por los hermanos Tim y Chris Stamper. Son los casos de Pentagram y Gunfright, realizados ambos por los artistas Rod y Emu Productions, quienes repiten con esta nueva entrega Ultimate. Además, otro programador, Andy Noble hizo algo similar con Cookie.

Hasta hoy, estos juegos creados en principio para ZX Spectrum y otros sistemas como Amstrad, Oric-1, BBC Micro y MSX, nunca fueron publicados para el ordenador de 8 bits más vendido en todo el mundo: el Commodore 64. Poco más de 30 años después, se redime de esta falta, gracias a la ayuda de estos diseñadores. Respeta la esencia de la edición original de ZX Spectrum en su conjunto, pero al menos se mejora bastante con ayuda de varias opciones a las que accedemos desde el menú principal.
 

 
Evidentemente, y como me acabo de referir, ha sido portado prácticamente por completo a partir de la de Spectrum, si bien algunas novedades implementadas por sus autores van desde una nueva y bonita pantalla de presentación, más diferentes opciones para configurar el juego, a gusto del usuario; incluyendo diferentes formas de entretenerse con bastante facilidad en este «port» bastante conseguido de Knight Lore en el C-64, con los consabidos «cheats». Si tras varios entrenamientos no os hicieran falta estas ayudas extra, podéis afrontar el reto de completar esta gran videoaventura isométrica sin necesidad de ellas.

Aquí lo tenéis en modo descarga gratuita: https://csdb.dk/release/?id=169589
 

 
PD: Llevo algún tiempo medio desconectado de mi blog, pero por diferentes circunstancias y un compromiso adquirido, vencido ayer satisfactoriamente, no he podido estar pendiente de otras novedades surgidas en los últimos dias. Ya toca ponerme a tono y al dia. Hasta pronto.

Depuración de listados BASIC tecleados a mano con un ZX Spectrum

septiembre 25, 2018
Cuando hace años se tenía la virtud de la paciencia, era algo normal ponerse delante de un ordenador y atreverse a teclear algún listado de los que figuraban publicados en páginas de alguna revista de la época o cualquier otra publicación que los contuviese (libros, cursos de programación, manuales y hasta enciclopedias), durase el tiempo que durase dicha tarea. Teclear un programa escrito normalmente en BASIC es un ejercicio muy útil, sobre todo para aprender a escribir con un ordenador y familiarizarse sobre todo con sus caracteres especiales, incluidos en su propio código ASCII. En el caso del ZX Spectrum, había que prestar atención a la distribución de sus comandos, instrucciones y símbolos varios, a los que se accede desde el teclado de la manera descrita en su manual.

Aparte de la paciencia requerida, las técnicas aprendidas de programación en BASIC y el fin último para el que destinamos el programa tecleado, hay que tener en cuenta que cuando terminamos de introducir todas las líneas de dicho programa se tiene que comprobar que no nos hemos equivocado en su transcripción, con tan solo ejecutarlo y comprobar que el software iniciado funciona al 100%. Si tras ejecutarlo con RUN nos encontramos durante su desarrollo algún error o «bug», éstos pueden aparecer solamente por acciones totalmente involuntarias o que se han escapado a nuestro control, a veces por descuido y otras veces por fallos no achacables a nuestra voluntad (algunos listados publicados por algunas revistas no han pasado un control específico de calidad ó se produjeron fallos en su maquetación. Esto mismo ha pasado en contadas ocasiones con programas publicados en el interior de revistas como ZX y MicroHobby).

Corregir estos errores casi siempre tienen fácil solución, siempre y cuando no hayamos introducido alguna subrutina en código máquina que pueda alterar el comportamiento de nuestro ordenador tras haber ejecutado ese programa, una vez instalado todo su contenido en su memoria. En tal caso, si hemos almacenado ese programa en cinta o disco como medida de precaución o si habremos creido que tras copiarlo enteramente está listo para su ejecución, lo podemos MERGEar primero, en lugar de ejecutar LOAD «». Tras ejecutar MERGE «» y aparezca en pantalla el mensaje 0 OK 0:1 al instante o al cabo de unos segundos, se comprueba antes que todos los datos de esa subrutina sean los correctos, con solo hacer el chequeo de los mismos con los que figuran en el listado que hemos copiado. Mejor curarse en salud, antes que encontrarnos con un posible bloqueo o cuelgue del ordenador por una mala transcripción de esos datos.
 

 
El ejercicio de depurar (de la palabra «debugging») un programa BASIC no es muy complicado. Se obtiene con ello una mayor perspicacia y comprensión en cómo funciona ese programa que se ha trasladado del papel al ordenador, más que el mero hecho de haberlo tecleado sin más. Rastrear estos errores es incluso un arte en sí mismo y se necesita ciertas habilidades en programación BASIC para corregirlos completamente.

Hoy en dia seremos poquísimos los que nos atrevamos a teclear algún listado publicado en revistas de aquí y allá. Y no es porque lo diga yo, teniendo en cuenta que otra de mis labores actuales dentro del panorama «retro» es precisamente la de preservar el mayor número posible de programas publicados en revistas y libros de nuestro pais, gracias a mi Proyecto BASIC ZX. El ritmo actual de la vida nos impide, en la mayoría de las ocasiones, disponer de tiempo más que suficiente para dedicarlo a este aspecto fundamental de la informática.

Aquí van una serie de consejos para algunos de los posibles mensajes de error que el ZX Spectrum puede indicar al usuario. Éstos son los más habituales y en todos los casos la solución es bastante obvia, salvo que el usuario no se haya leido el manual del Spectrum primero…

 
1 NEXT without FOR

Si aparece este mensaje de error en pantalla, hay que localizar primero la línea indicada y a partir de ahí buscar hacia adelante y atrás, con los cursores arriba y abajo para mover el símbolo «>», a través del propio listado ya en memoria y así EDITar fácilmente la línea en cuestión. Puede pasar que la variable añadida al comando NEXT sea errónea, o se dé el caso de que se haya definido un bucle con otra variable distinta. También puede deberse si se está gestionando dentro de ese mismo bucle alguna variable que coincida por la usada por los comandos FOR y NEXT.

Para el caso de que nos aparezca en pantalla otro mensaje similar, I FOR without NEXT, se procedería de igual forma.

 
2 Variable not found

En muchos casos, es el error más frecuente. De nuevo, el fallo puede estar en que hayamos tecleado erróneamente alguna variable tras su definición con el comando LET ó a partir de otras instrucciones como DIM o FOR/NEXT. Aparte de comprobar cuidadosamente la existente en la línea que nos muestra el mensaje de error, conviene repasar el resto del listado en busca de esa variable numérica, la cual puede tener un solo carácter ó más caracteres. Si es alfanumérica, contendrá tan solo una letra delante del símbolo del dólar (A$, B$, C$, etc.)

Si solo hay una variable en la línea mostrada en pantalla (2 Variable not found 270:6, por ejemplo), buscamos esa línea 270 y comprobamos si hemos transcrito correctamente dicha variable dentro del sexto comando existente en dicha línea (un PRINT xx ó un LET xx=número tal). El problema puede estar en esa línea o en otra distinta. Casi siempre tiene fácil solución y conviene examinar a fondo el listado, comparándolo con el de referencia en la revista ó libro donde éste figure.

Si hay más de una variable en dicha línea dada junto al mensaje de error, entonces habrá que mirar con cuidado dónde hemos transcrito mal dicha variable. Valga como ejemplo una línea con estas instrucciones: 270 ...: PRINT AT xx1,yy1;A$: .... Para ello, basta con teclear directamente estos comandos:

PRINT xx1
PRINT yy1
PRINT A$

Una vez se compruebe cuál induce a tal error, se busca acto seguido en el resto del listado. Probablemente hayamos pasado por alto algún comando LET sin añadir o haber cambiado sin darnos cuenta algún carácter de la variable a la que alude el mensaje de error, bien en dicha línea o bien en otra cualquiera.
 

 
3 Subscript Wrong

Este error suele producirse tras alguna alteración con una ó más variables matriciales definida con el comando DIM, el cual puede contener entre uno y varios parámetros para crear una tabla o matriz. Si el número entre paréntesis en dicha línea donde el error ha sido detectado es mayor que el definido por DIM, no es un número entero ó es menor de 1, este mensaje es mostrado en pantalla. Si el subíndice o cualquiera de ellos de los que pueden figurar dentro de los paréntesis es un número, se comprueba y se cambia. En el caso de que sean variables numéricas, se procede según el caso anterior y se averigua qué causa el error Subscript Wrong. Normalmente por exceder de los límites permitidos por la matriz ó por otras causas, como las ya indicadas.

 
4 Out of Memory

Además de los programas que son demasiado grandes, si mientras estamos copiando un listado con una extensión más o menos considerable nos surge en pantalla este mensaje, es posible que pueda deberse a que hayamos borrado con un NEW un programa usado anteriormente, de menor longitud y que hubiese establecido una RAMTOP a partir de una determinada posición de la RAM disponible, que en ese mismo momento ha sido ocupada por nuestro actual programa.

Si el ordenador parece haberse bloqueado en ese estado, habría que anular la línea de comando (ó serie de órdenes) usando la tecla de borrado (DELETE) y después anular una línea de programa ó tal vez más, con la intención de restablecerlas después para permitir la utilización de, por ejemplo, el comando CLEAR. Tecleando CLEAR USR "a"-1 todo volverá a la normalidad.

En cualquier momento, podemos incluso comprobar cuánta memoria del «stack» de BASIC hay disponible en ese momento en nuestro Spectrum con una sencilla operación:

PRINT "Mem:";INT ((65535-USR 7962)/1024);"K"
 

 
7 RETURN without GOSUB

Por algún motivo, el ordenador se ha encontrado con una línea que contiene un comando RETURN sin haberse producido previamente una llamada con el comando GO SUB. En otro caso puede deberse a una sentencia RETURN de más. Comprueba si acaso un GO TO se ha insertado en lugar de un GO SUB en algún punto no concreto del programa, o en otro caso ese GO SUB no se ha copiado, ayudándote del listado de referencia.

 
A Invalid argument

El argumento de una función determinada no es correcto por algún motivo. Examinar bien todas las líneas, además de la indicada por este mensaje, por si se ha cometido un error con la manipulación de algún dato almacenado en una variable, gestionada por alguna de estas instrucciones: SQR, LN, ASN, ACS, USR, RANDOMIZE, POKE, DIM, GO TO, GO SUB, LIST, LLIST, PLOT, CHR$ o PEEK.

 
B Integrer out of range

El manual nos describe este mensaje a partir de este razonamiento: «Cuando se requiere un entero, el argumento de la coma flotante se redondea al entero más próximo.» Otra posibilidad para encontrarnos con este mensaje es que alguna instrucción ha intentado gestionar un dato no admitido por las limitaciones de algunos comandos, o por omisión del mismo. Verifica todas las variables involucradas según el informe 2 Variable not found y rastrée a través del programa buscando ajustes en él, así como observar que hayamos incluido correctamente algún símbolo matemático (suma, resta, multiplicación ó división) en la gestión de fórmulas y funciones aritméticas en las que se empléen una o más variables numéricas.

También sucede que si se quiere imprimir algo en pantalla con PRINT ó hacer dibujos con los comandos CIRCLE, PLOT y DRAW, conviene recordar que este error puede producirse incluso si, en algún momento dado, el programa intenta imprimir fuera de sus límites. Repasa dichos comandos y de usarse variables, mirar también en bucles FOR/NEXT, definiciones con LET y otras funciones, subrutinas de impresión y formulaciones varias.
 

 
E Out of DATA

Otro error común que se da con muchos programas transcritos en los que se emplée la instrucción DATA para almacenar datos tanto numéricos como alfanuméricos. Se necesita solamente comprobar las líneas que contiene esos DATA y sobre todo la subrutina READ, poniendo especial cuidado en la cantidad existente de datos. Suele darse el caso de que hayamos olvidado uno ó más datos, sin habernos dado cuenta, teniendo en cuenta que se ha intentado leer más allá del final de la lista de datos contenida en nuestro programa. Solo es necesario comprobarlos y en tal caso añadirlos en su lugar correspondiente. Comprobamos nuevamente el programa ejecutándolo desde el principio o a partir de esta subrutina de READ/DATA, y si el ordenador no nos devuelve el mismo mensaje de error, el programa seguirá su curso sin mayores problemas.

Puede darse el caso de que hayamos equivocado una coma de separación, poniendo en su lugar un punto ortográfico entre datos numéricos, habitualmente números enteros, haciendo que dos números correlativos se conviertan equivocadamente en un número decimal. Llegado a este punto, el ordenador nos podría devolver otro mensaje de error (B Integrer out of range, por ejemplo) de fácil solución.

También puede deberse si se intenta releer una lista de DATAs sin haber empleado previamente el comando RESTORE (o RESTORE ‘línea de partida de los DATA afectos’) para reestablecer su lectura. Puede ocurrir tras una primera ejecución del programa a partir de una línea específica (de haberse grabado con la instrucción SAVE "nombre" LINE xxx, siendo xxx la línea de comienzo del programa) o simplemente si se vuelve a la subrutina de lectura por otro camino.

 
M RAMTOP no good

RAMTOP incorrecto. El número especificado como RAMTOP con el comando CLEAR es muy grande ó muy pequeño. Solo es necesario cambiar dicho número por otro que sea perfectamente asumible por el sistema.

 

FIN

 
Y esto es todo, amigos. Depurar programas tecleados no tiene mayor dificultad, salvo que no se sepa cómo resolver algunos casos concretos no analizados aquí (C Nonsense in BASIC, por ejemplo), pero casi siempre tienen fácil solución. Como ya aseguraba antes, el manual de vuestro ordenador Spectrum es vuestro mejor aliado para comprender el funcionamiento de su lenguaje primordial, el BASIC. Ante cualquier eventualidad, consultarlo cuidadosamente. Y para el caso de que no entendáis nada de lo expuesto en él y por qué se dan éstos y otros mensajes de error, tenéis a vuestra disposición los foros de speccy.org, Computer Emuzone, Zona de Pruebas, RetroWiki, World of Spectrum y Spectrum Computing donde podéis hacer vuestras consultas y resolver dudas sobre programación en BASIC.

Sony se apunta al carro de las consolas mini con su PlayStation Classic

septiembre 20, 2018
Cuando falta poco para que se cumpla el 24 aniversario del lanzamiento oficial de esta potentísima consola de quinta generación creada por Sony, la compañía nipona ha anunciado la salida de una versión miniaturizada de su PlayStation, al estilo de las lanzadas en los últimos años por Nintendo recreando sus clásicas consolas con un tamaño muy inferior a las originales y que tanta expectación ha generado entre sus aficionados.
 

 
Se espera que la PlayStation Classic, como así se llamará, salga a la venta a partir del dia 3 de Diciembre en todo el mundo (coincidiendo con la fecha de introducción de la PlayStation original en el mercado japonés en 1994), con un tamaño igualmente inferior -un 45% más pequeño respecto del original-, siguiendo la tendencia marcada por Nintendo, a la que le siguen SNK con su inminente NeoGeo Mini y Sega con su futura MegaDrive Mini. Ó tal vez se debería llamar a esta tendencia como una moda comercial por lo «retro» que parece no tener fin.

En cualquier caso, los que alguna vez han tenido la primera edición de la PlayStation, o quienes nunca la tuvieron, podrán adquirir dicha consola al precio de 99€. Ya se han habilitado las reservas desde ya mismo a través de los canales habituales y se comercializará tanto en Japón, como en EEUU y Europa. Su disponibilidad será limitada, a falta de conocerse en qué paises europeos se comercializará.
 

 
La PlayStation Classic incorporará 20 títulos pre-instalados entre los cuales pueden figurar como juegos confirmados, según varias informaciones, Tekken 3, Final Fantasy VII, Ridge Racer Type 4, Wild Arms y Jumping Flash, aun cuando todavía se desconoce la lista completa. Aun así, 20 juegos pueden parecer poquísimos, en comparación con el gran catálogo que se desarrolló para la consola original. No es posible que se puedan intercambiar por otros distintos, aunque sería lo deseable.

Con la unidad se incluyen dos mandos que imitan a los originales (pero sin sticks analógicos ni opción DualShock) que se conectan a la consola por cables de los que se desconoce su verdadera longitud, un cable HDMI para su conexión con cualquier televisor actual, así como un cable USB que hará las veces de alimentación, si bien esta consola es compatible con adaptadores AC tradicionales que han de adquirirse por separado. También tiene cabida en ella tarjetas de memoria virtual intercambiables, para almacenar en ellas las partidas que hagamos.
 

 
¿Aún disponéis de sitio para más consolas «mini» en vuestro hogar? Pues adelante. Más información, en la página-blog de la compañía (PlayStation.EU).

Vradark’s Sphere, lo nuevo de SancheZ para ZX Spectrum

septiembre 19, 2018


 

Sanchez Crew, el equipo de programadores responsables de increíbles juegos Homebrew bien destacados en los últimos años dentro de la escena del ZX Spectrum como Castlevania: Spectral Interlude y Mighty Final Fight, nos introduce en la historia de Vradark’s Sphere, un videojuego de mazmorras con mucha estrategia de por medio (con una marcada influencia en juegos como Rogue de Mastertronic) que se amolda a nuestra forma de jugar desde nuestros inicios y con muchísimas posibilidades, dado que su mapeado se genera aleatoriamente. Una virtud que proporcionará a los jugadores muchas opciones a nivel de jugabilidad y durabilidad.

Enfundados en la piel de un poderoso hechicero, nos enfrentamos a una buena variedad de enemigos con determinadas características a analizar y resolver sobre la marcha, mientras buscamos el camino hacia un nuevo nivel (9 en total), teniendo que explorar muchas salas de un castillo en poder de un nigromante que ha traido la oscuridad a la Tierra y contra quien nos tendremos que enfrentar en la batalla final. Cada movimiento debe ser milimétricamente estudiado para poder avanzar en esta aventura y tomar decisiones con la suficiente paciencia como para resolver los entuertos contra los muchos enemigos que nos encontremos a nuestro paso, usando convenientemente nuestras opciones de combate.
 

 
Posee estupendos detalles de gran nivel, con el sello de calidad del programador Sanchez y sus colaboradores en esta nueva producción: gráficos y sprites excelentemente detallados, música in-game multicanal de alto nivel y una ingente cantidad de localizaciones por descubrir. El sistema de juego por turnos implementado en su programación nos permite jugar al ritmo que deseemos, bien lentamente o bien lo contrario. Por otra parte, la capacidad de generar aleatoriamente los mapas de cada nivel prolonga la vida útil de este videojuego hasta niveles insospechados.

Otro aliciente de este Vradark’s Sphere está en un un mapa que se va revelando poco a poco en la esquina superior derecha de la pantalla, a medida que vamos atravesando y entrando en nuevas localizaciones. El juego posee una opción para elegir el modo de visualización de dicho mapa, dependiendo del sistema elegido para cargarlo (128K ó Pentagon con modo Giga-Screen).
 

 
La primera fase del juego puede jugarse online y una demo jugable es completamente descargable de forma gratuita para ser probado con emuladores. En cuanto al juego completo, éste se compra digitalmente desde 1 euro (una nimiedad como una casa) y con versiones existentes tanto para los modelos de 128K como para el clon ruso Pentagon.

Todo ello a vuestro alcance con tan solo acceder a su página de descarga.

Publicado el videojuego «Paranoids» de la película TRON… ¡en Commodore 64!

septiembre 5, 2018
Quien haya visto en su momento la película TRON de Disney, la original de 1982, se acordará de una de las primeras escenas del filme en la cual vemos a Kevin Flynn, interpretado por Jeff Bridges, batir su propio récord en un videojuego arcade diseñado por él mismo: Space Paranoids, ó Paranoides Espaciales. Para muchos de los que ya pintamos canas, no hace falta que cuente toda su historia, pues la habremos visto decenas de veces. Hoy en dia es considerada una película de culto.

La recreativa en cuestión representa una persecución entre un tanque de iones, movido por un jugador desde el panel de mandos, y un número no determinado de Reconocedores dentro de un espacio laberíntico, que se podía ver en el filme entre los minutos 16 y 18 de su metraje. Mucho tiempo después, por fortuna y con bastantes medios, dicho juego pasaría de la ficción cinematográfica a la realidad en contadas ocasiones: Dos grupos de programación, 42 Entertainment (en colaboración con Disney) y Rogue Synapse crearon, cada uno por separado y en diferentes épocas, sus propias versiones del videojuego. Añadir también a la lista otros videojuegos inspirados en la propia película, para lo cual os recomiendo la lectura de este cuidado artículo publicado en Fase Bonus.
 

 
Y es cuando entra aquí lo nuevo de Sputnik World, con una idea basada precisamente en el ficticio arcade. La adaptación al Commodore 64 nos mete de lleno en una batalla campal contra Reconocedores volantes y otros tanques dirigidos por el «amable» Control Central de Programas, delimitado en lo que parece ser un complejo laberíntico de corredores con dos salidas posibles.

Con nuestro joystick maniobramos nuestro tanque a través de diferentes pasillos dentro de un área concreto de juego y que vemos representado en pantalla, a la derecha de nuestro marcador donde solo podemos ver nuestra posición relativa dentro del mismo. Disponemos de cuatro vidas, con una energía limitada para cada una.
 

 
Tan pronto como nos enfrentemos a un reconocedor ó un tanque, entramos en modo batalla. Al presionar el botón de disparo se desplegará en pantalla una mirilla que podemos regular con el joystick a cualquier posición y, pulsando de nuevo el disparo, liberará una ráfaga de protones en la misma dirección a la que hayamos dirigido nuestro punto de mira. Solo podemos efectuar un disparo cada vez, con lo que hay que actuar con la debida cautela, pese a que los impactos de los reconocedores hagan disminuir nuestras reservas de energía.

No es demasiado difícil tan pronto es dominado tras varias partidas y se hace bastante corto, una vez se ha conseguido salir por dos veces del intricado laberinto, sin apenas un rasguño. Aun así, se deja jugar y es bastanta agradable en su concepción. Sencillo en su conjunto, cabe destacar la música diseñada por Magnar Harestad que escuchamos durante toda la partida.
 

 
Para algunos, el juego podría estar mejor hecho de una u otra forma, pero lo que cuenta es la intención y el cariño con que se ha creado este videojuego, en un claro homenaje a la película TRON y a la propia recreativa de ficción. De hecho, Rulas International, su autor, así lo reconoce en la descripción que podemos encontrar de este «Paranoids» en la página de Commodore Spain, desde la cual se puede descargar el mismo.

«¡Preparáos para entrar en la rejilla de juegos!»