Logo
 
BARE METAL ZX SPECTRUM EMULATOR FOR THE RASPBERRY PI

ZXBaremulator es el primer emulador bare-metal completo de los ZX Spectrum 48K/128K/+2A para la Raspberry PI.

Descripción

Un programa bare-metal es aquel que no necesita cargar primero un sistema operativo para funcionar. La carga es instantánea y tiene todos los recursos de la máquina a su disposición. Pero, como casi todo en la vida, esto tiene una cara B. El programador no tiene nada en lo que apoyarse para programar, hay que desarrollarlo todo desde cero y sin poder utilizar cómodos depuradores o librerías sofisticadas. Aún así, éste emulador no hubiera sido posible sin una librería en particular, la Circle de Rene Stange. De modo que, si encuentras algo que no te gusta o te parece espartano, ten en cuenta las limitaciones a las que me enfrento al desarrollar algo como ZXBaremulator.

Características principales

  • Soporte para los modelos de Raspberry PI-2, PI-3.
  • Incluye 55 juegos absolutamente clásicos.
  • Emulación Z80 precisa (instrucciones indocumentadas, registro escondido WZ, bits 3 y 5 del registro 'F').
  • Emulación precisa del Spectrum 48k/128k/+2a (borde completo, redibujado de la pantalla en tiempo real, memoria en contienda, bus flotante, efectos de color de alta resolución).
  • Emulación de joystick Kempston/Sinclair 1-2/Cursor-AGP-Protek/Fuller/QAOPSpaceM usando un mando de PS3 DualShock o compatible en modo USB (no soporta Bluetooth).
  • Emulación de Kempston Mouse utilizando un ratón USB estándar.
  • Carga acelerada de cintas virtuales TZX. Se muestra la carga original completa (siempre que ha sido posible).
  • Emulación del beeper/AY-3-8912 el sonido sale por el conector HDMI o por el jack de 3.5mm (no hay soporte para el sonido HDMI, sigh!).
  • Soporte de interfaz Multiface. Ya puedes trucar el Abu Simbel Profanation.
  • Los juegos ya no van embebidos, ¡tú escoges cuales son tus preferidos!, hasta un límite de 1100.
  • ¡No necesita Linux!. Carga instantánea desde la µSD.

Novedades de la versión 3.0

  • La gran novedad en esta versión es que lo que parecía imposible se ha hecho realidad: por fin hay sonido vía HDMI. El currazo que se ha pegado Rene Stange, autor de la librería Circle, ha sido brutal. Como consecuencia de ello, el sonido sale por la TV directamente. Y si no conectas la Raspberry por HDMI el sonido se redirige automáticamente a la salida de audio normal junto con la imagen. La pega de esto es que es imposible actualmente añadir sonido HDMI para los modelos de Raspberry basados en ARMv6 (A+/B+/Zero).
  • De las pantallas de selección de cinta y de ayuda también se puede salir con la tecla ESC.
  • La paleta de colores del 48k ha sido actualizada para ser más fiel a los colores del Spectrum real. Gracias al usuario de WoS rga24 por sus investigaciones acerca de los nuevos valores para la paleta.
  • Corregido un error en la pantalla de selección de cintas cuando había menos de 16 cintas en la µSD.
  • Se resuelven algunos problemas con la gestión de teclas en algunos teclados.
  • Se mejora la reproducción de ciertos archivos TAP.
  • Añadida emulación de joysticks Sinclair 1/2, Cursor/AGF/Protek, Fuller y protocolo QAOPSpaceM, con soporte de dos botones de disparo en todos los modelos de joystick. Los botones L1, R1, L2, R2 también sirven ahora como botón de disparo. Y es posible seleccionar que no exista un joystick configurado. Todo esto se elige pulsando la tecla [Select] del joystick.
  • Añadida emulación del ratón Kempston usando un ratón USB estándar.
  • Resuelto un problema con la emulación Z80 que podía provocar mal funcionamiento del emulador en casos de extraños códigos patológicos.
  • Gracias, una vez más, a Jorge Castillo (pastbytes), la pantalla de ayuda de teclado está actualizada.

Descargas

Como usarlo

  • Partiendo de una SD/µSD preinstalada con Linux, renombra el kernel.img o kernel7.img para no perderlo, y luego copia la imagen que corresponda a tu modelo de PI. O partiendo de una tarjeta SD/µSD nueva y formateada con FAT32 extrae todos los archivos del ZIP y copialos en la tarjeta.
  • Crea un directorio llamado Tapes en el directorio raíz de tu SD y copia ahí dentro un máximo de 1100 archivos TAP/TZX (si hay más los ignorará y si hay menos, no pasa nada). Inserta la tarjeta en la PI y.... ¡a jugar!.
  • Necesitas conectar un teclado USB a la PI antes de arrancarla, no soporta conexión en caliente. El sonido lo escucharás conectando unos altavoces o auriculares a la salida de 3.5mm. La PI Zero no tiene ese conector, pero se puede añadir un pequeño circuito que puedes encontrar en Internet.
  • Escoge una cinta virtual entrando en la ayuda con F1 y usando el selector de cintas y luego LOAD "" + [ENTER]
  • Tecla F1: Ayuda.
  • Alt Izq. + 'K': Ayuda de teclado
  • Pulsando repetidamente la tecla [Select] del joystick se cambia el modelo emulado siguiendo el ciclo:
    Modelo Equis (X) Círculo (O) Cuadrado Triángulo L1 - R1 L2 - R2
    None------------------
    KempstonDisparoDisparo 2Disparo 2DisparoDisparoDisparo 2
    Sinclair 1DisparoTecla 'x'Tecla 'x'DisparoDisparoTecla 'x'
    Sinclair 2DisparoTecla 'z'Tecla 'z'DisparoDisparoTecla 'z'
    Cursor/AGF/ProtekDisparoTecla '9'Tecla '9'DisparoDisparoTecla '9'
    FullerDisparoDisparo 2Disparo 2DisparoDisparoDisparo 2
    QAOPSpaceMDisparo (Space)Disparo 2 (Tecla 'm')Disparo 2 (Tecla 'm')DisparoDisparoDisparo 2 (Tecla 'm')

ZXBaremulator is the first complete ZX Spectrum 48K/128K/+2A bare-metal emulator for the Raspberry Pi computers.

Emulator features

  • Support Raspberry Pi models 2 & 3.
  • Includes 55 classic 48K Spectrum games
  • Precise Z80 emulation (undocumented opcodes, hidden WZ register, bits 3-5 from 'F' register).
  • Precise Spectrum 48k/128k/+2a emulation (full border, real-time screen drawing, contended memory, floating bus, hi-res color effects).
  • Kempston/Sinclair 1-2/Cursor-AGP-Protek/Fuller/QAOPSpaceM joystick emulation using a PS3 DualShock gamepad in USB mode (no Bluetooth supported).
  • Kempston Mouse emulation using a standard USB mouse.
  • Accelerated tape loading from virtual TZX tapes (when possible). Original tape loaders are preserved.
  • Beeper/AY-3-8912 emulation.(no HDMI sound, sigh!).
  • Multiface One/128/+3 support. You can cheat Abu Simbel Profanation, at last!.
  • Up to 1100 files can be loaded from Tapes subdirectory.
  • No Linux needed!. Super-fast loading from µSD.

New features version 3.0

  • The great new feature is HDMI sound, thanks to the incredible work done by the Circle library author, Rene Stange. The not so good news is that ARMv6 based models are out of support.
  • Now, you can exit from tape selection and help screens pressing ESC key.
  • The Spectrum 48k color palette has been updated to show more accurate colors, thanks to WoS user 'rga24'.
  • Added Kempston/Sinclair 1-2/Cursor-AGP-Protek/Fuller/QAOPSpaceM joystick emulation, with 2nd fire button for all models.
  • Kempston Mouse emulation using a standard USB mouse.
  • Thanks, one more time, to Jorge Castillo (pastbytes), the help screen is updated.

Downloads

Usage

  • Copy the needed image to a Linux preinstalled SD/µSD (rename first the Linux kernel image) or get a new SD card FAT32 formatted and copy the all files pack.
  • Create a Tapes directory in the root directory of your SD and copy your preferred TAP/TZX files, up to 1100 files. Insert on your Raspberry PI and... play!
  • You need an USB keyboard connected to the PI before switch on, no USB hot-plug. Optionally you can plug a PS3 gamepad and an USB mouse.
  • Choose a virtual tape from tape selector and type LOAD "" + [ENTER]
  • F1 key: Help.
  • Left Alt + 'K': Keyboard Help
  • Pressing [Select] gamepad key the emulated joystick changes to:
    Model Cross (X) Circle (O) Square Triangle L1 - R1 L2 - R2
    None------------------
    KempstonFireFire 2Fire 2FireFireFire 2
    Sinclair 1FireKey 'x'Key 'x'FireFireKey 'x'
    Sinclair 2FireKey 'z'Key 'z'FireFireKey 'z'
    Cursor/AGF/ProtekFireKey '9'Key '9'FireFireKey '9'
    FullerFireFire 2Fire 2FireFireFire 2
    QAOPSpaceMFire (Space)Fire 2 (Key 'm')Fire 2 (Key 'm')FireFireFire 2 (Key 'm')


© 2017-2018 José Luis Sánchez (jspeccy at gmail dot com) - All rights reserved (2018/03/03)