Archivo de la categoría Retro

El orígen del Ctrl-Z



Debo aclarar que con el título de El orígen del Ctrl-Z, no me refiero a los inicios del atajo de teclado para el comando deshacer, que se usó de forma conocida por primera vez en los Laboratorios Xerox de Palo Alto, sino a la cada vez menos usual forma de marcar los fines de archivo con el carácter Ctrl-Z (ASCII 26).

Aunque Raymond de The Old New Thing, lo explica mejor que yo, la causa viene heredada de DOS, que a su vez lo heredó de CP/M, con el que debía ser compatible.

Hasta ahí, es algo que al menos yo, e intuyo que muchos de vosotros también, ya sabíamos. Pero, ¿por qué CP/M marcaba así el final del archivo?…

Continuar leyendo...

Ashton-Tate, Sybase y Microsoft juntos



Como es sabido una imagen vale más de 1000 palabras, así que no me voy a extender demasiado…

Gracias a un comentario, encuentro un pantallazo de un software, en el que aparecen juntas las siguientes compañías: Microsoft Corporation, Sybase Inc. y Ashton-Tate Corporation.

Como no es difícil de deducir, la pantalla pertenece a SQL Server 1.0 para OS/2 1.x de finales de los 80.



Continuar leyendo...

Pac-Man en Javascript



Un buenísimo remake del clásico Puckman / Pac-Man de Namco, aunque desarrollado integramente en Javascript.

Funciona sin problemas en Opera 9, Firefox 2, e Internet Explorer 7.

Está disponible para jugar online aquí.



Continuar leyendo...

Turbomania



Pasé divertidísimas tardes jugando al simplón Bandera de 1985 escrito por L. Casaus y publicado por MicroHobby, así que cuando hoy he descubierto el Turbomania de 2005 escrito por el prolífico Jonathan Cauldwell, por un momento he vuelto atrás.

Turbomania es un juego sencillo, al igual que el Bandera que conocí, pero con detalles gráficos y de jugabilidad más trabajados. Es fácil de aprender, y muy adictivo. Además, es compatible con Spectrums de 16K, lo que le da todavía más mérito.

Jonathan ha actualizado su tutorial sobre la programación de videojuegos para Spectrum, Writing Spectrum Games, que también podéis descargar (368 Kb.…

Continuar leyendo...

Ghosts'n Goblins en Flash



En Game Shot, hay disponible una conversión del clásico de CAPCOM Ghosts'n goblins, escrita en Flash.

Podéis jugar online aquí, o bien descargaros el programa para jugar en local desde vuestro ordenador aquí (1,6 Mb. en formato SWF).



Continuar leyendo...

100 FPS en un PC (16 bits)



Me he decidido a portar el código de 500 FPS en un PC, a 16 bits. El código inicial ha requerido un par de ajustes uso de int86 en vez de int386, y el menos evidente el cast a long en el printf que calcula los FPS, para evitar pérdida de rango.

Luego ha habido que transformar el build.bat, para pasar los parámetros necesarios al compilador de 16 bits… Al final ha quedado así:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <conio.h>
#ifdef __WATCOMC__
#include <i86.h>
#else
#include <dos.h>
#endif

static unsigned char gacPerin[]={...};

int main (void)
{
register unsigned int iX;
clock_t clkStart, clkEnd;
union REGS udtRegs;

udtRegs.w.ax=0x13;
int86(0x10, &udtRegs, &udtRegs);

for (iX=0; iX<256; iX++)
{
outp(0x3C8, iX);
outp(0x3C9, (gacPerin[(iX*3)+64000])>>2);
outp(0x3C9, (gacPerin[(iX*3)+64001])>>2);
outp(0x3C9, (gacPerin[(iX*3)+64002])>>2);
}

iX=0;
clkStart=clock();
while (!kbhit())
{
memcpy((unsigned char *) MK_FP(0xA000, 0),
gacPerin, sizeof(gacPerin)-768);
iX++;
}
clkEnd=clock();
getch();

udtRegs.w.ax=0x3;
int86(0x10, &udtRegs, &udtRegs);

printf("Frames: %d; FPS: %d\n",
iX, ((long) iX*CLOCKS_PER_SEC)/(clkEnd-clkStart));

return(0);
}

Bajo DOSBox 0.72, he alcanzado 105 FPS, que comparado con los 518 FPS que obtenía la versión de 32 bits, lo hace más de 5 veces más lento.…

Continuar leyendo...

500 FPS en un PC



En 13,5 FPS en un Spectrum, vimos lo que podía hacer un ordenador de 8 bits, con una imagen que se volcaba continuamente a pantalla. Un modesto Spectrum, obtuvo la marca de 13,5 FPS, que podían haber sido bastantes más, evitando la impresión de los conteos en cada cuadro, y escribiendo el código en ensamblador. Diríamos que aquel programa utilizaba tecnología de los años 80.

Ahora volvemos con lo mismo, esta vez con tecnología de los 90. Un programa muy parecido en C, que vuelca a la VGA en modo 13h (320x200x256) una imagen.

Para facilitar la programación, se ha obtado por un código compilado con Open Watcom C++ 1.7a, en modo protegido de 32 bits para DOS, usando el magnífico extensor DOS32/A.…

Continuar leyendo...

Space Invaders en Javascript



Kris Cieslak, ha desarrollado una meritoria conversión del clásico Space Invaders.

A diferencia de otros ports de juegos similares, que se han creado en Flash, Director o Java, éste Space Invaders, está escrito en Javascript, y lo que es mejor, funciona sin problemas en Internet Explorer, Firefox y Opera.

Lo tenéis disponible para jugar online aquí.



Continuar leyendo...

Destroy the Humanoid



Descubro vía Speccy.org, la serie Destroy the Humanoid.

En el reciente Episodio 2: "Este es para los puñetazos, este para las patadas", con una duración de media hora, se hace un repaso a los juegos de ordenador, consola, y recreativa, analizándolos desde una óptica diferente.

Lejos del chascarrillo en el título del episodio, el tono es serio, y solvente, hablando de spots curiosos, las ideas y los sueños, la homosexualidad en los personajes, tecnología en las series de sci-fi, …

Destroy de humanoid, está magnificamente realizada, con una buena banda sonora, e imágenes muy bien escogidas.…

Continuar leyendo...

Emulador de Spectrum en Flash



En Shed han lanzado el Flash ZX Spectrum Emulator, un emulador de Sinclair ZX Spectrum 48K, que está escrito íntegramente en ActionScript 3.

El resultado, ofrece un rendimiento más que decente, y permite jugar online a Manic Miner, Jet Set Willy, Chukie Egg, Jet Pac, Knight Lore, Alien 8, y mi preferido: ¡el intérprete de BASIC!

El único fallo que le veo, es la falta de soporte de sonido, pero claro, eso es más bien una limitación de Flash, para generar tonos, que otra cosa……

Continuar leyendo...