Lobo: El PC de 16 bits definitivo

Cuanto tiempo sin publicar una entrada por aqui 🙂

Aqui os presento a Lobo, mi ultimo montaje, y un intento de crear el PC de 16 bits mas potente posible… mientras que se hace homenaje a la saga de juegos que nacio en los PCs de 16 bits, los Wolfenstein 🙂

Lobo!

Sus caracteristicas son:

– 80286 a 27.2 mhz
– 4 mb de ram en placa base
– 2 mb de EMS
– VGA Cirrus Logic 1MB
– Sound Blaster 16
– Roland MT32 integrada
– Tarjeta de red ethernet
– Almacenamiento en CFs extraibles

Inspirado por el video del Highscreen 286 decidi ver de que manera podia montar un 286 para juegos llevandolo al limite, ver hasta donde podria llegar un PC de 16 bits… y este es el resultado.

Logo Wolfenstein

Montado en una caja Nox Hummer ZN, el equipo… en realidad son dos equipos en uno. La Roland MT32 no viene de una tarjeta LAPC-1, ya que estas tienen precios completamente prohibitivos. No, en realidad la MT32 es ‘emulada’, y lo digo con comillas porque se comporta como una real.

Dentro de Lobo hay dos PCs, el 286 que es el alma del equipo… y un P4 3000 cuya unica funcion es emular por software la MT32 a traves del emulador MUNT.

Fotos del montaje:

A medio montar, notese el gran disipador encima del 286, y otro encima del chipset, necesario por el gran overclocking.

Montaje preliminar, pero ya esta todo el sistema dentro de la carcasa.

MUNT originalmente se penso para ser usado con DosBox y ScummVM, generando un instrumento midi en el equipo en el que se ejecuta, y dosbox/scummvm se conectan a el generando el sonido. Yo le di una vuelta de tuerca a este concepto y pense… si tengo un equipo midi software en un PC… y conecto un adaptador midi usb y los enlazo… deberia de responder a los comandos midi que le entren por su interfaz serie, verdad?

Efectivamente, montando todo en un linux y haciendo este proceso… convertimos cualquier PC con un adaptador MIDI usb en una MT32 real.

El resto era trivial, simplemente tener un PC lo suficientemente potente para mover el emulador, conectarlo con el 286 a traves del puerto MIDI de la SB16… y funcionar…

Parte trasera

Parte trasera

Detalle de la parte trasera.

… Pero queria darle un toque mas a Lobo, y ya que tenia una caja bonita pense en dotarlo de un efecto de sonido en el arranque ‘a la Apple’:

Si, al encender el equipo suena un lobo aullando… Este si que es el autentico Lobo… 😀

Ahora, hay que automatizar todo para que los dos encendidos + el efecto de sonido se produzcan al pulsar el boton de encendido… hay que controlar el encendido y apagado de 2 PCs de coordinadamente y de formas diferentes: Uno es estandar AT, con lo que el encendido y apagado es simple, un interruptor que se enciende o se apaga… y otro ATX, tenemos un pulsador que hay que activar una vez y un momento solo para encender… y repetir el proceso para apagar.

Decidi montar todo con un Arduino UNO y una placa de reles para controlar esto, y ya de paso tambien para reproducir el sonido del lobo aullando usando la tecnica del PWM. Este Arduino alimentado por la linea de +5V de standby del ATX, de forma que cuando la fuente ATX tiene corriente el Arduino esta alimentado y monitorizando el boton de encendido… un pequeño amplificador de audio para el speaker y esta hecho 🙂

Aqui esta Lobo funcionando, continuacion del video donde se ve como lo enciendo:

* Los videos es conveniente verlos en 720p50

Comparativa de rendimiento de procesadores x86

Hoy presento un pequeño proyecto que inicié hace ya tiempo. Queria ver de forma grafica cuanto mas rapido era un 286 que un 8088. Y un 386 respecto a un 286? Y… un Pentium 4 respecto a un 386??

Con la ayuda de la gente de ViejuNET hicimos un pequeño estudio comparativo del rendimiento de varios procesadores x86 a lo largo de toda su historia, comenzando desde el primero, el 8088 a 4,77mhz hasta procesadores de hoy dia, como el Core2.

Todas las pruebas se han realizado usando el Landmark System Speed test Version 6.0, y se pueden verificar mediante capturas de pantalla hechas del mismo aqui.

Podeis consultar el estudio en esta pagina:
http://wiki.vieju.net/bench/index.php

Esperamos que os guste 😉

Sonido digital en el PC-Speaker

Como ya comente en el post anterior, hoy voy a hablar de como es posible reproducir sonido digital por el PC Speaker.

Ibm PC 5150

Ibm PC 5150

Cuando IBM estaba diseñando su modelo 5150, el primer PC de la historia, lo que tenia en mente era reducir costes y lanzar un computador economico y competitivo para la empresa:

Lotus123

Sonido? Un pitido para los errores y gracias!

Asi, el incluir en el mismo algun tipo de hardware de sonido especifico no estaba contemplado, eso subiria los costes de produccion.

En su lugar, conectaron un altavoz al timer interno, y mediante programacion del PIC 8254 para que generara una onda cuadrada que proporcionara sonido. Un sonido simple, realmente simple, pero que seria de sobra suficiente para indicar cuando hemos metido mal una celda de nuestra hoja de calculo.

5v y 0v, quien necesita mas?

5v y 0v, quien necesita mas?

Poco a poco, el PC fue acaparando mercado y con el fueron creciendo las necesidades ludicas del mismo. Como cabia esperar, sus capacidades sonoras estaban completamente desfasadas ya en su tiempo, limitandose a una serie de pitidos que para muchas personas resultaban poco menos que molesto:

Musica Silpheed

Con el tiempo fueron refinando el uso de este ‘pitador’, creando asi composiciones tan decentes como la intro del Maniac Mansion:

Maniac Mansion

pero aun asi, no estaban ni de lejos a la altura del resto de plataformas de juegos.

Con estas limitaciones en mente (un altavoz que solo permite dos estados, 0 y 5v, onda cuadrada), a alguien se le ocurrio una idea realmente ingeniosa.

Si pensamos en la mecanica de un altavoz veremos que este no es mas que un electroiman conectado a una membrana que vibra cuando se le aplica una corriente electrica en funcion del voltaje de la misma en un momento dado. En otras palabras, un PC Speaker se reduce a dos estados:

  1. 0v, en reposo. La membrana esta en su posicion original.
  2. 5v, en tension. La membrana esta en la posicion de tension maxima.

Pero, ¿que ocurre con los estados intermedios? El PC no es capaz de mostrar los estados 1v, 1.5v, 2v, 2.5v … por la limitacion del hardware en si. Pero el altavoz si 🙂

Solo hay que medir el tiempo que tarda la membrana en pasar de reposo a tension total y dividirlo en fracciones para representar esos estados que necesitamos.

Asi, reprogramando el timer, haciendo que nos avise (saltando una Interrupcion hardware) cada una de esas fracciones, conseguiremos poner el valor especifico en cada momento dado para que el resultado no sea otro que un sonido digital.

El resultado creo que no puede ser mejor:

Aspar GP Master

No obstante esta forma de reproducir sonido tiene sus desventajas, y es que el tiempo de CPU necesario para calcular el momento exacto en el que reproducir cada muestra hace que quede poca potencia de proceso para el resto de tareas, tales como mostrar cosas por pantalla.

Aun asi, podemos ver autenticas joyas de la programacion, que hacen uso intensivo de esta tecnica, y no por ello ralentizan la ejecucion del programa, como comentaba en el anterior post del Digger.

Con la llegada de sistemas mas potentes (>8mhz) se pudo emplear esta tecnica de sonido de forma mas generalizada, muestra de ello es que algunas empresas decidieran hacer suya esta tecnica y patentandola. Access Software llamo a esta tecnica ‘Real Sound’, y lo lanzo con su nuevo juego, Crime Wave:

Sea como fuere, las tarjetas de sonido ya estaban en el mercado, con lo que el ‘Real Sound’ paso casi desaparcebido, siendo la tecnica usada durante algunos años mas sin problemas.