Mostrando entradas con la etiqueta amstrad. Mostrar todas las entradas
Mostrando entradas con la etiqueta amstrad. Mostrar todas las entradas

jueves, 28 de mayo de 2026

Cadence, emulador Amstrad CPC enfocado al desarrollo

Cadence es un nuevo emulador que está desarrollando Abalore, conocido en la escena Amstrad por hacer diversos desarrollos interesantes como su juego Alcon 2020, por nombrar un botón de muestra.


Está disponible para GNU/Linux, macOS  y Windows, en paquetes AppImage, DMG y EXE respectivamente.  

A pesar de estar en desarrollo, lo he probado como un emulador normal y me ha parecido que va muy fino y preciso, incluso con juegos tan exigentes como Pinball Dreams y algunos demos difíciles de emular.

Abalore ha preparado un appimage en su página de proyectos para simplemente descargar, darle permisos y ejecutar, si tienes una distro Linux actual es muy buena opción, por ejemplo Debian 13.

Sin embargo yo tuve algunos problemas con equipos con la versión anterior de Debian por versiones de una librería, además de que no serviría para una raspberri pi al ser otra arquitectura de hardware distinta.

Ambos problemas los solucioné compilando el código desde su repositorio en github, algo tan sencillo como ejecutar los siguientes comandos en tu terminal:

Nos hacemos administradores con los comandos sudo bash o su- y tecleamos:

apt install git qt6-base-dev qt6-svg-dev libqt6opengl6-dev libportaudio2 portaudio19-dev build-essential
git clone https://github.com/abalore/Cadence
cd Cadence
qmake6 Cadence.pro
make -j"$(nproc)" 

O lo instalamos con RetroMultiInstaller que ya incluye este emulador y hasta crea el acceso directo.

El funcionamiento es muy sencillo:

  • Abajo puedes ver unos botones alargamos para cargar cintas o discos, tanto en la unidad A: como en la B:, para cargar o expulsar hay que hacer doble clic en el botón correspondiente.
    •  También tiene un testigo como los CPC reales mostrando la actividad de las disqueteras.
  • Arriba tienes los menús para seleccionar el modelo de CPC, reseteo, selección de medios y la joya de la corona: las herramientas para desarrollo, debug, inspeccionar memoria, puntos de ruptura...
  • También puedes usar las teclas de función para diferentes operaciones, de entre las que destacamos:
    • F1: Insertar cinta
      • Mayus + F1: rebobina
      • Ctrl + F1: expulsa la cinta.
    • F2, insertar disco en la unidad A:
      • Ctrl + F2: expulsa disco en A:.
    • F3, insertar disco en la unidad B:
      • Ctrl + F3: expulsa disco en B;.
    • F5: muestra el depurador.
    • F6: muestra el ensamblador.
    • F9: desbloquea el límite de la velocidad real del CPC.
    • F10: activa la emulación de joystick.
    • F11: muestra el emulador a pantalla completa.
      • Mayus + F11: monitor fósforo verde.
      • Ctrl + F11: escalado suave.
    • F12: reset.
    • Ctrl + un número del 0 al 5: activa la persistencia del fósforo.
    • Alt + F4: salir del emulador.
  • Todos atajos de pantalla en el depurador y ensamblador podéis verlo mediante la opciones de Menú:
    • Help ► Shotcuts...

 

Cadence, como nos ha recordado su autor, también es un emulador pensado para tener la mínima latencia, tanto el vídeo como en audio, algo que van a agradecer y mucho los jugones más exigentes.

Puedes poner que emule el joystick o no, así como el comportamiento de la tecla mayúsculas para que emule teclas especiales. Os recomiendo que vayáis experimentando las muchas opciones que trae. 

Un emulador llamado a ayudar a los desarrolladores del CPC y a aficionados exigentes y amantes de los sistemas unix. 

viernes, 24 de abril de 2026

Copiar archivos de disco a cinta y viceversa con Discology ejecutando en Retro Virtual Machine

Para copiar archivos desde un disco virtual (DSK) a un cassette virtual (CDT) hay que seguir los siguientes pasos:

  1. Arrancamos RVM 
  2. Insertamos Discology desde la unidad A
  3. Arrancamos Discology
  4. Creamos un disco nuevo y formateado en la Unidad B
  5. Insertamos la cinta, para lo cual hacemos clic en el cassette que aparece en el emulador, en el botón de STOP.
  6. Seleccionamos el archivo CDT marcando la cinta NO protegida contra escritura.
  7. Si son varios archivos los vamos eligiendo EN EL ORDEN que queremos que se grabe en la cinta.
  8. Si hay un cargador Basic, posiblemente tengamos que modificarlo para que no salga continuamente mensajes y requerimientos poniendo el caracter "!" antes del nombre del archivo. 
  9. Pulsamos Record
  10. Vamos a las opciones Copier
  11. Vamos a "Options".
  12. Elegimos "Dest, drive B:"
  13. Seleccionamos "File".
  14. Elegimos "Destination: Tape" y "Source: Disc".
  15. Elegimos "File > Copy".
  16. Seleccionamos los archivos deseados en el orden que queremos que esté en la cinta.
  17. Pulsamos la tecla "Intro".
  18. Esperamos a que se complete el proceso. Tardará un rato.

Para hacer la operación contraria son los mismos pasos pero cambiando "Destination: Disc" y "Source: Tape".

 


 

viernes, 27 de febrero de 2026

Manejo de los botones de la gotek

Si tienes un sencillo emulador de disquetera gotek con botones de selección te habrás percatado que solo hay dos botones para moverte por los archivos del directorio a la izquierda o a la derecha pero no hay un botón para seleccionar el archivo o el directorio si queremos navegar por ellos, entonces, ¿cómo hacemos estas operaciones?

 


Como podéis apreciar en la imagen, son los botones que están a la derecha del puerto USB y debajo del led de encendido, en este caso ya tiene seleccionado la imagen del juego 1943, os recuerdo que la gotek recuerda la última imagen DSK que seleccionamos guardando su nombre en un archivo en el raíz con un nombre similar a IMAGE_A.CFG

 Si pulsamos el botón de la izquierda iremos viendo los diferentes archivos que están antes del seleccionado hasta que nos muestre "[..]" 

 


Si dejamos de pulsar botones durante un par de segundos directamente selecciona esta opción que no es otra que bajar en el árbol de directorios, y nos mostrará el directorio en el que estábamos, en este caso "favoritos".

 


En el momento que sale el nombre del directorio debemos pulsar los botones rápidamente para que NO vuelva a entrar en el mismo directorio. 

Supongamos que tenemos un directorio llamado [cpm] y dentro de él otro que se llame [games], en este caso pulsaremos el botón izquierdo hasta que aparezca [cpm], momento en el cual pulsamos el botón correspondiente hasta que aparezca [games].


Cuando seleccionamos un directorio, si nos aparece otra vez [..] o un directorio que no nos interesa de nuevo hay que pulsar los botones rápidamente para terminar donde no queremos, por lo que seleccionamos la imagen deseada, en este caso la del juego Gozilla.BAS para CP/M.

 


Y así se navega por el árbol de directorios en una gotek, ya solo nos faltaría ejecutar el programa en nuestro Amstrad CPC, en este caso, como se trata de un juego que se ejecuta con el comando |CPM la unidad deberá estar seleccionada para que funcione como unidad A:

Para quien se haya perdido con las rutas de los archivos, aquí tenéis el camino que hemos seguido desde 1943 hasta Gorilla:

.
├── favoritos (2)
│   ├── ...
│   ├── 1943 (1988).dsk (1)
│   ├── ....
│   └── xevious.dsk
├── IMAGE_A.CFG
└── cpm (3)
    ├── ...
    ├── games (4)
    │   ├── ...
    │   ├── gorilla-cpc.dsk (5)
    │   ├── ...
    │   └── Zork III - The Dungeon Master_cpm_cpc6128_pcw.dsk
    └── system

 

Otras consideraciones

Si tienes selector giratorio el funcionamiento es el mismo, solo que en lugar de pulsar botones hay que girarlo paso a paso a la derecha o a la izquierda dependiendo lo que queramos seleccionar. 

Recomiendo que el contenido del pendrive esté organizado de manera que en cada directorio no haya demasiados archivos para no castigar a los pulsadores ni a nuestros dedos, así que si tenemos decenas de miles de archivos DSK no hay que meterlos en un solo directorio, sino crear directorios por cada primera letra de cada juego, dentro de los cuales se hace lo mismo para la segunda letra y dentro de cada subdirectorio igual para la tercera letra.

Como esto sería una locura hacerlo manualmente os recuerdo que el script splitpather crea toda la estructura por nosotros a partir del directorio donde tenemos nuestros dsk, normalizando el nombre de los archivos y hasta evitando duplicados de archivos repetidos.

Hace tiempo hice un artículo explicando más a fondo el funcionamiento de splitpather

 

Videotutorial

También hice unos días un videotutorial...


 

viernes, 20 de febrero de 2026

Utilidades para compartir información entre PC y CPC desde GNU/Linux


Hace tiempo vimos una guía de emuladores para ejecutar software de los ordenadores Amstrad en GNU/Linux, ahora vamos a ver que aplicaciones podemos usar en este sistema para intercambiar información entre el PC y un Amstrad CPC.

Nativas

Aplicaciones nativas de GNU/Linux para interactuar con nuestro Amstrad.

Audacity

Si quieres pasar una cinta de Amstrad al PC el primer paso es digitalizarla como archivo WAV sin comprimir para luego convertirla a los formatos que entienden los emuladores.
Para esta tarea audacity es el software ideal que incluso permite la edición del audio para mejores resultados, variando el volumen por ejemplo.

CPCXFS

CPCXFS es un editor de imágenes de discos de 3'' para usar con emuladores de Amstrad CPC, que permite:
  • Crear las imágenes.
  • Listar su contenido.
  • Inyectar o eliminar archivos en dichas imágenes.
  • Renombrar archivos dentro de la imagen.
  • Etc.
Enlaces:

CPCTools

Conjunto de herramientas para editar DSK (iDSK), reproducir los sonidos de un TZX/CDT (playtzx) o para transferir archivos a un CDT (2CDT).

TZX Tools

Conjunto de herramientas para manejar volcados de cinta tzx (recuerda que los cdt son en realidad tzx con volcados de cinta de Amstrad CPC).
Comandos disponibles:
  • tzxcat: para extraer los datos de un TZX. 
  • tzxcleanup: limpia el tzx.
  • tzxcut: corta bloques.
  • tzxmerge: une varios tzx en uno solo.
  • tzxsplit: separa un tzx en programas separados.
  • tzxtap: convierte un volcado tzx en uno tap.
  • tzxwav: convierte un volcado de cinta grabado en formato wav en un tzx.
Estas herramientas están hechas en python.

GFX2CRTC

Herramienta para convertir imágenes de PC a Amstrad CPC


CPCTelera

Herramienta para desarrollar juegos para el Amstrad CPC en el propio PC, compila directamente a volcados de cinta, disco y memoria.
Enlaces:

Z88dk

Herramienta para desarrollar software para máquinas diferentes máquinas de 8bits en el PC, Amstrad incluidos.


No nativas

Hay aplicaciones para Windows que funcionan perfectamente con wine, vamos a verlas.

CPCDiskXP

Herramienta para crearte tus propios DSK añadiendo los archivos que quieras y poder luego volcarlos en un disquete real, aunque esta última parte la tienes que hacer en un PC con disquetera interna y con Windows.

CPCTapeXP

Esta herramienta te permite crear tus propios archivos CDT/TZX a partir del archivo WAV de la cinta digitalizada, editarlos, etc...
Funcionan los apartados para sacar información del cdt o editar los bloques, pero la conversión de wav a cdt se cierra en GNU/Linux.

ConvImgCPC

Adapta y convierte imágenes del PC para su carga en el Amstrad CPC, se pueden grabar comprimidas para cargarse con un cargador especial o estándar, guarda la paleta y también soporta el modo de la gama plus con muchos más colores.

NO$Cart

NO$Cart convierte volcados de disco DSK en imágenes de cartucho cpr para la gama CPC+, lo que permitiría volcarlos en un cartucho real, hay que pasarle también el comando para arrancar el menú del disquete.

La conversión se haría con una instrucción como ésta:
nocart midisco.dsk cartucho.cpr -c 'RUN"disc'
Esta es una aplicación de DOS y funciona bien con DosBox, aunque en teoría se podría compilar para GNU/Linux con el código que acompaña a los binarios pero al menos yo no lo he conseguido.

viernes, 16 de enero de 2026

Remake de Gorillas para CP/M

Quién no ha jugado una partidita de MS Gorillas contra un amigo o un familiar tirándose plátanos explosivos uno al otro simplemente indicando el ángulo y velocidad de tiro.

Pues ahora un programador italiano llamado Francesco Sblendorio ha sacado un port libre para CP/M llamado Gorilla.BAS - CP/M version, como resultado tenemos un divertidísimo juego en modo texto y para CP/M, toda una deliciosa rareza.


Aunque incluye el código fuente y el binario para montarte tu disco para tu sistema, en el archivo README.md ya incluye listas para usar imágenes del juego listas para usar para los sistemas:

  • gorilla.d71 - Includes C128 CP/M boot code, all sources and binaries, some utilities
  • gorilla.d64 - Includes C128 CP/M boot code, all sources and binaries
  • gorilla.mfloppy - Includes Memotech MTX CP/M boot code and binaries (Memotech type 07 disk image)
  • gorilla-msx.dsk - Includes MSX-DOS boot code and binaries (MSX-DOS disk image)
  • gorilla-cpc.dsk - Includes CP/M for Amstrad CPC6128 boot code and binaries (CPC CP/M disk image)

El juego lo ha hecho en Modula-2 y va bastante fino, al menos en la versión que he probado que es... adivinad...

 

Gorilla CP/M en Amstrad CPC 6128

El archivo gorila-cpc.disk es la imagen de un disco CP/M 3.0 para el CPC6128 que incluye el archivo gorilla.com, para ejecutar el juego:

  1. Introducimos el disco de sistema 1 con CP/M plus 3.0 y ejecutamos desde AmsDOS el comando:
    |CPM
  2. Una vez arrancado CP/M plus ejecutamos:
    gorilla
  3. Al iniciarse el juego nos preguntará por el tipo de terminal, como hay una específica para Amstrad CPC, es la que elegimos: 8) CPC / Z19.



  4. Nos aparecerá el menú del juego: podemos iniciar el juego directamente, configurarlo, ver el acerca de o volver a CP/M

  5. El programa permite configurar los nombres de los jugadores, la gravedad, total de puntos, el ladrillo para hacer el bloque, etc..

  6. Pero nosotros vamos a iniciar el juego...

 

 

Os dejo los siguientes vídeos en el que podéis ver el juego en acción:


 

Recomendado 100% :D






viernes, 28 de noviembre de 2025

Demo TENTE para Amstrad CPC, ¿cómo se hizo?

Hace unos años hice un carrusel de 43 imágenes de modelos de TENTE para simular lo que hubiera podido sacar la compañía como demo para los ordenadores de la época, en este caso en un Amstrad CPC.
 
Si todavía no tienes esta demo, la puedes descargar aquí
 


Esta demo la hice con mínima programación en Basic usando algunas herramientas que tenía a mano:

  • Las capturas ya las tenía echas hace tiempo para PC con los programa LDView y Povray, que no es que saque unos renders espectaculares pero precisamente por eso son imágenes ideales para pasarlas a ordenadores de 8 y 16 bits.
  • Para facilitar la conversión, algunas imágenes las retoqué con GIMP para reducirle el número de colores mediante la opción Colores y Posterizar.
    En su cuadro de diálogo vas subiendo la cantidad de colores hasta que se vea más o menos bien.
  • La conversión de las imágenes de PC a CPC la hice con el programa ConvImgCPC que te permite guardar imágenes comprimidas incluso con su paleta de colores. Aunque soporta la paleta de la gama plus opté por la estándar para poderlo ver en cualquier CPC, incluido mi Amstrad CPC6128.
    Con algunas tuve que jugar con diversas opciones hasta obtener un resultado aceptable.
    Por cierto, este programa incluye información para hacer el cargador Basic de las imágenes.
  • Para inyectar los archivos de imágenes resultantes usé CPCImgDSK pero bien podría haber usado directamente Retro Virtual Machine que sí usé para crear el cargador.

El listado del cargador fue éste:

10 ' TENTE 3D DEMO FOR AMSTRAD CPC
20 MEMORY &1FFF:LOAD"!dpkslide.bin",&A400
30 MODE 2:BORDER 0:INK 0,0:INK 1,26:PRINT"Tente 3D slide-show..."
40 READ numberofimages
50 FOR i=1 TO numberofimages
60 READ imagename$
70 LOAD"!"+imagename$+".scr",&2000
80 CALL &A400
90 NEXT
100 REM GOTO 50
110 CALL &BB18:REM pause
120 MODE 1
130 PRINT "DEMO TENTE 3D FINALIZADA"
140 PRINT "========================"
150 PRINT
160 DATA 43
170 DATA T3D,AUTOBUS,CRUZROJA,AERODESL,AUTOBAR
190 DATA AVION,LASERAY,BUSESPAC,VIKING,CASTILLO
200 DATA CENTROMC,COCHE,DEDALO,FICTENTE,CASA
210 DATA ADOSADO,TUXFLAT,USRESCUE,YATEXALO,VOLQUETE
220 DATA ERMITA,CHINESE,DESINALT,CABINA,LINKAUTO
230 DATA CHOZA,MOZAMBIQ,QUITANIE,TURANIO,TRENTOUR
240 DATA EXPLOESP,PAPAMOV,ESURANIO,HAITOBUS,PATRU91
250 DATA TRASHTRU,TUXTENTE,TRANSPSP,TRANSAER,SUNSHINE
260 DATA SUPERAT,SCUTTY,SATURNOM

Si no tienes un Amstrad real recuerda que puedes usar cualquier emulador de Amstrad que soporte disco para disfrutarla. 

viernes, 14 de noviembre de 2025

Mostrar el contenido de un archivo de texto en Amstrad CPC

Si en un Amstrad CPC tecleas el comando:

CAT misdatos.txt

No te mostrará el contenido del archivo de nombre misdatos.txt, en el mejor de los casos te mostrará el nombre del archivo si está en el directorio del disquete o si lo encuentra recorriendo la cinta.

Entonces, ¿cómo puedo ver el contenido de un archivo de texto en el Amstrad CPC?

La idea es sencilla: 

  1. Para empezar ponemos el ordenador en MODE 2 para usa el modo de 80 columnas.
  2. Abrimos el archivo como texto con el comando:
    OPENIN "misdatos.txt"
  3. Abrimos un bucle que vaya leyendo líneas por el canal 9 hasta que llegue al final del archivo al tiempo que la sacamos por pantalla (canal por defecto) o por impresora (canal 8):
    WHILE NOT EOF
    LINE INPUT #9,l$
    PRINT l$
    WEND
  4. Cerramos el archivo como texto:
    CLOSEIN
  5. El programa lo podemos enriquecer para que nos pida el nombre del archivo a mostrar, detecte el final de línea y nos pida interacción, sacar la salida por pantalla o impresora (canal 8), etc... como podéis ver en este ejemplo real del programa que usaba en su momento para esta tarea.


Esta técnica es muy útil para acompañar de un manual interactivo a un programa o juego que se vea en el propio Amstrad.

Eso sí, si incluís un archivo creado en un PC hay que definir el archivo de texto con las siguientes propiedades:

  • Character encoding ASCII, ISO-8859-1 o ISO-8859-15. 
  • Saltos de línea de DOS/Windows.

Hay que tener especial cuidado con evitar acentos, eñes y otros caracteres especiales que no existan en los CPC o sean distintos.

viernes, 10 de octubre de 2025

Crear un disco de 3.5 para Amstrad CPC desde tu PC retro

Para crear discos de 3.5" que pueda leer tu Amstrad vas a necesitar varias cosas:

  • Un PC con disquetera con conexión interna clásica, NO USB con el sistema operativo Windows XP.
  • El programa CPCDiskXP.
  • Disquetes de 3.5" DD (double density), si no se tienen se pueden usar HD (high density) tapándoles el agujero de la derecha con cinta adhesiva que pegue bien y no se pueda desprender.
  • Un Amstrad CPC con controladora de disco al que se le haya conectado una disquetera de 3.5".

Instalación de CPCDiskXP

  1. Nos descargamos la última versión.
  2. Instalamos el driver para la disquetera, archivo FdInstall.exe.
  3. Copiamos el programa CPCDiskXP.exe en una carpeta.
  4. Creamos un acceso directo a CPCDiskXP.exe para nuestra comodida.

 

Uso de CPCDiskXP

  1. Ejecutamos el programa desde el acceso directo o haciendo doble clic en CPCDiskXP.exe
  2. Formateamos el disco DD, para ello hacemos clic en el botón FORMAT, seleccionamos la cara a formatear y pulsamos el botón Format Disk.



    No uséis la opción Side A & B porque suele fallar, tenéis que formatear primero la cara A y luego la cara B.
    El resto de opciones las dejamos con sus valores por defecto si queremos que funcione en un CPC con sus BIOS originales.

  3. Un vez formateado pulsamos en el botón Disk File => Floppy.

  4. Seleccionamos el archivo DSK.

  5. Seleccionamos la cara A (Floppy Head 1) o cara B (Floppy Head 2)

  6. Pulsamos Write Disk.



  7. Repetir las veces que se desee y pulsar Exit al terminar.

  8. Comprobar en el CPC que todos los discos y caras funcionan correctamente.

 

Como alternativa para los que uséis Windows más modernos o necesitéis crear disquetes en otros formatos está Omniflop 64, yo no lo he probado, si alguien lo prueba que nos cuente su experiencia en los comentarios. 

 

viernes, 14 de marzo de 2025

Guía actualizada de emuladores de ordenadores AMSTRAD para GNU/Linux

Cuando a primeros de siglo empecé a usar GNU/Linux, la oferta de emuladores para ordenadores Amstrad era escasa por ser suave, sin embargo hoy la oferta de emuladores de ordenadores Amstrad para GNU/Linux es mucho más amplia de lo que podemos intuir, nada que ver con lo que teníamos hace algunos años.
 
Los emuladores que tenemos hoy son la mayoría de gran calidad y permiten hacer muchas más cosas que simplemente ejecutar los juegos de estas veteranas máquinas.


Emuladores CPC

Retro virtual machine

Retro virtual machine es uno de los mejores y más espectaculares emuladores disponibles para Amstrad CPC/CPC+, ZX Spectrum, MSX, Sega Genesis, Megadrive y cada vez más máquinas a nuestra disposición, incluyendo clones.
 
El objetivo del emulador es que el usuario tenga la experiencia más próxima a usar la máquina real, tanto en nuestra interacción con los "dispositivos" como puede la inserción del medio en unidades de cassette, disqueteras, cartuchos... o el comportamiento de los diversos tipos de monitores que se le podían enchufar. El objetivo siempre es la precisión técnica pero funcionado de manera fluida en cualquier PC con menos de 10 años.
 
Es ideal para hacer vídeo tutoriales porque es lo más cercano a mostrar el comportamiento de la máquina real sin la máquina real, más que suficiente para el más concienzudo tutorial o demostración de uso.
 
Para las distros de la familia Debian nos podemos descargar el archivo deb de la última versión e instalarlo con el típico comando:
sudo dpkg -i paquete.deb
Normalmente no se va a quejar que le falten paquetes ya que incluye todo lo necesario en el propio ejecutable, aunque en la mayoría de los casos no va a ser necesario ejecutar el comando que soluciona las dependencias:
sudo apt install -f
Si nuestra distro es de otra familia, nos podemos descargar el archivo zip que contiene un único archivo binario que pondemos lanzar sin más, ya que es una aplicación portable que funciona en casi cualquier distro con la arquitectura x86_64, y recientemente también para arquitecturas ARM64, como las Raspberry pi 4, 400, 5 o 500.

También hay un emulador derivado llamado RVMplayer que, usando el core de RVM, es capaz de ejecutar programas desde un navegador, algo muy útil como escaparate para los desarrolladores.

Más detalles:

Caprice32

Caprice32 nos que ofrece una muy buena experiencia en emulación con pocos requerimientos, lo que lo hace ideal para una raspberry pi o un viejo pentium 4 por ejemplo.
 
Incluso en equipos más potentes es bueno tenerlo para lanzar rápidamente desde consola un dsk, por ejemplo.
 
En realidad no es un emulador sino varios, ya que se han hecho diversos fork a partir de la versión original, las ventajas que tiene ser software libre.

Más detalles:
 

ZEsarUX

Un emulador de gran calidad y libre es ZEsarUX, que soporta gran cantidad de máquinas, incluidos todos los CPC no plus y PCW desde luego es un emulador muy a tener en cuenta y que se encuentra muy desarrollado para otras plataformas como ZX Spectrum  que es donde empezó por lo que incluye muchos clones, incluidos los del otro lado del telón de acero y evoluciones como el ZX Spectrum Next, por supuesto también los últimos modelos de Amstrad :))
 
El emulador está continuamente incorporando nuevas características sorprendentes como lectura de aventuras gráficas para ciegos, IA para generar imágenes mejoradas, emulación de microdrives, vista gráfica del funcionamiento de medios, soporte para los nuevos cartuchos...
Ya emula más de 30 máquinas distintas y subiendo. 

Más detalles:

CPCEC

CPCEC es un potente emulador libre que soporta la gama plus y que se acompaña de tres emuladores más: uno de ZX Spectrum llamado ZXCEC, otro de Commodore 64 llamado CSFEC y otro de MSX llamado MSXCEC.
 
Los requerimientos son tan bajos que es muy recomendable para placas de poca potencia como las primeras Raspberry pi o PC con más de dos décadas a sus espaldas, aunque va de lujo en cualquier equipo puntero, hay que compilarlo pero es muy fácil, y si te intimida recuerda que tienes a Retro Multi Installer lo hace por ti. 
 

ACE-DL

ACE-DL es un potente emulador, que no solo emula el ordenador sino que el único que emula determinados dispositivos avanzados gracias a plugins que incluye como controladoras de disco,  placas de sonido, sintetizadores, pistolas, ratones y muchos más periféricos que permite ejecutar increíbles demos, entre muchas otras cosas.

Hasta hace poco solo estaba disponible para MorphOS en su versión completa y tenía una versión recortada para Haiku, pero ya tenemos la versión completa para PCs, con GNU/Linux o Windows, y para MacOS.
 
Asimismo, permite hacer screencast de la emulación, control preciso de la velocidad, opciones avanzadas para desarrollo
 

JavaCPC

JavaCPC, más que un emulador, toda una suite de emulación que permite diversas tareas tales como importar imágenes de PC a CPC, conversiones entre formatos, gestión de dispositivos, huevos de pascua, etc..

Al estar escrito en java, es compatible con GNU/Linux y prácticamente cualquier sistema.

Retroarch, emulationstation y sistemas retroconsola

Hay sistemas completos basados en GNU/Linux que convierten ordenadores en retroconsolas y permiten su uso inmediato sin apenas configuración, solo hay que añadir las imágenes de cinta, disco o memoria en las carpetas correspondientes.

Los más conocidos como Batocera, Recalbox, Retropie, Lakka, etc... incluyen un core para emular Amstrad CPC normalmente basado en el código de Caprice y otro que emula la GX4000 y CPC+.

En el caso de los PCs puedes usar un pendrive de autoarranque donde tienes todo lo necesario y que puedes añadir juegos a una carpeta desde una distro linux, por red y ponerlos en otro pendrive aparte.
 
Una vez preparada simplemente arrancas el ordenador con el pendrive y no se toca nada en tu disco interno.
 
Otra opción es instalar Retropie como otra aplicación más, un hecho poco conocido es que se puede instalar también en distros para PC y va muy bien, es mucho más fácil y limpio que instalar directamente emulationstation o retroarch, aunque también requiere algo de postconfiguración y tiene algo más de dificultad.
 
Si usas placas como la raspberry pi lo que preparas es una microsd donde puedes añadir juegos de la misma manera, aunque los últimos modelos también pueden arrancar con pendrives que se preparan igual.

Más detalles:

Arnold Emulator

Arnold Emulator, es otro emulador para Amstrad CPC con muchas posibilidades como soporte para la gama plus, extensiones especiales y compatible con la base de datos de WinApe y que ya lo tenemos disponible para GNU/Linux.
 
Como también es software libre, tiene forks muy interesantes que al menos en algunos aspectos superan al original, Arnold Rofl0r por ejemplo.

Para quien quiera compilárselo por si mismo, aquí tenéis las instrucciones y paquetería ya compilada, quien no se sienta cómodo al final de este artículo tiene la solución. 

CPCEmu

CPCEmu, fue para muchos nuestro primer emulador de Amstrad CPC cuando usábamos en MS-DOS y también fue con lo que pasamos nuestros programitas gracias a las utilidades que tenía para pasar archivos y disquetes enteros por el puerto paralelo mediante un cable que había que hacerse.
Ahora vuelve a la vida con la versión 2.X disponible para versiones actuales de los sistemas operativos que ya soportaba (Windows y GNU/Linux para PC), a los que ha añadido Android, Raspberry PI OS y los sistemas de Apple.

 

MAME

Sí, has escuchado bien, he dicho MAME, ese emulador que muchos creen que solo emula recreativas, pues también emula ordenadores, consolas y artefactos de lo más variados.

En artículos anteriores vimos como configurarlo para ejecutar Amstrad CPC, tanto desde el entorno gráfico del propio MAME como por comandos.
 
De la misma manera podríamos ejecutar PCW, diversos ZX Spectrum y sus clones, así como los primos cepeceros del otro lado del telón de acero KC compact y Aleste 520EX, entre muchos otros ordenadores y consolas de todo tipo.

Otros emuladores CPC nativos

Hay otros emuladores nativos que fueron los primeros para los sistemas Unix como CPC++, DSP o cpc4x.
Para quien tenga curiosidad por su valor histórico puede echarles un vistazo e intentar echarlos a andar pero puede que no funcionen o, en el mejor de los casos, no tengan las posibilidades de los anteriores.


Joyce, el emulador nativo de Amstrad PCW

Joyce, es un veterano y excelente emulador de Amstrad PCW y Joyce/Anne, en este caso te tienes que buscar el archivo de la BIOS y un disco de autoarranque, porque a día de hoy, todavía no son de libre descarga.

Durante muchos años fue el único y empezó siendo un emulador para MS-DOS, las últimas versiones están disponibles para Windows y GNU/Linux.

Recomiendo echar un ojo a la Guía de compilación, instalación y uso.


¿Emuladores de Amstrad PC?

Lo primero que pensarás es que no tiene sentido, ya que estamos hablando de compatibles y podríamos ejecutar los programas simplemente con DosBox como cualquier programa DOS, y en la mayoría de los casos es así, pero en otros puede que necesitemos o queramos emular un modelo concreto de Amstrad PC, recordemos que tenían sus peculiaridades y te puedes encontrar con software que solo funcione en determinados Amstrad PC.
 
Para esos casos tenemos el emulador PCEm con el cual podemos emular un modelo concreto de PC, aunque como en el caso de Joyce tendremos que buscarnos la BIOS y discos de autoarranque para poder usarlo.

Para profundizar más:

¿Emuladores no nativos?

Aunque la mayoría de emuladores de ordenadores Amstrad para Windows funcionan con WINE(*) y los que son para DOS con DosBox, normalmente NO los vamos a necesitar teniendo disponibles emuladores nativos de tan alta calidad salvo para cosas muy específicas, por ejemplo, si desarrollamos con algunas librerías por ahora tenemos que seguir usando WinAPE (excelente emulador pero solo para Windows) aunque, como hemos visto, ya hay varios emuladores capaces para el desarrollo.

Si nos encontramos en ese caso os recomiendo echar un vistazo a:

(*) WINE is not an emulator, significa que traduce las llamadas de la API de Windows a GNU/Linux, eso significa que debes tener la misma arquitectura de hardware que la que necesitarían los ejecutables de Windows.
Esto implica que estos programas funcionarán bien en un PC con GNU/Linux, pero lo más seguro es que NO lo hagan en arquitecturas basadas en ARM con las raspberry pi y placas similares.

La mayoría de estos programas los puedes instalar fácilmente con RetroMultiInstaller, una vez instalados los encontrarás en la nueva carpeta Emuladores del menú de tu GNU/Linux.
 
Consulta también la lista de vídeos sobre emulación en GNU/Linux, donde encontrarás muchos vídeos de primeros pasos y píldoras de conocimiento para tareas concretas.


viernes, 31 de enero de 2025

Ejecutar software de Amstrad CPC con MAME en modo CLI (II)

Como vimos en un artículo anterior MAME es un emulador que en principio se creó para emular y preservar las miles de recreativas que salieron sobre todo en los 80 y 90, de él se creó otro proyecto llamado MESS que tenía el mismo propósito pero con todos los ordenadores y consolas que existieron, finalmente MESS fue absorbido dentro de MAME.

El resultado es que hoy MAME es capaz de emular una gran cantidad de ordenadores y consolas, aunque hoy solo vamos a ver como configurarlo para ejecutar software de Amstrad CPC.


Instalación

Si no tienes MAME ya lo estás instalando antes de seguir:

sudo apt install mame

 

Configuración

Para cargar un juego en MAME habitualmente lo que hay que tener son las ROMs, volcado del cartucho del juego, pero si lo que vamos a emulador es un ordenador que vayamos a emular lo que debemos tener es:

  1. Las BIOS del ordenador, lo ideal es crear una carpeta aparte con todas las BIOS de los ordenadores que vayamos a emular, cada conjunto de archivos de BIOS de un ordenador debe ir comprimido en un archivo ZIP (en el caso del CPC podríamos tener los archivos cpc464, cpc6128.zip, cpc664.zip).
    La ruta de esta carpeta debemos añadirla a alguno de los archivos mame.ini, ya sea el que está en /etc/mame o en $HOME/.mame, en la sección rompath

  2. Las imágenes de disco pueden estar en cualquier carpeta, pero lo recomendable es tenerlas organizadas por sistemas para no liarnos.

 

Lanzar un juego

Un ejemplo de comando para ejecutar un juego de Amstrad concreto podría ser este:

mame cpc6128 -flop1 /home/usuario/retro/amstradcpc/gemjam.dsk

En este ejemplo, le pasamos el parámetro -flop1 después de indicarle la máquina y antes de la ruta al juego para así indicar que se trata de una imagen de disco a cargar en la disquetera 1.

Otros parámetros pueden ser -flop2, -cass ... según el dispositivo virtual que estemos usando.

MAME arrancará el emulador de CPC y tendremos que cargar el programa como si estuviéramos en un Amstrad CPC real, si no te acuerdas hace tiempo puse otro artículo explicando como se cargan cintas, disco o cartuchos.

 

Salir del programa

Cuando MAME emula un ordenador no se sale con la tecla ESC sino que para salir de la emulación hay que pulsar simultáneamente las teclas ALT y F4


En un futuro veremos como emular otros ordenadores con MAME, en especial los que requieran configuraciones más complejas.


Enlaces de interés


viernes, 3 de enero de 2025

Retro Virtual Machine en Raspberry Pi OS de 64 bits

Ya hemos hablado en otras ocasiones sobre Retro Virtual Machine, el emulador de diversos sistemas de 8 bits que simulaba hasta la manera de introducir las cintas, cartuchos o disquetes, entre otras muchas cosas.


 

También nos había comentado en alguna ocasión Juan Carlos, su autor, acerca de una versión experimental para raspberry pi, ahora por fin tenemos una versión pública que funciona bastante bien en mi raspberry pi 400, teniendo en cuenta algunos detalles:

  • Funciona solo en los modelos 4, 400, 5 y 500, NO en modelos anteriores o menos potentes.
  • Debe instalarse en Raspberry pi OS para 64 bits, no funciona en la versión de 32 bits como he podido comprobar. Por ahora la he probado en una instalación nueva que he hecho en un pendrive, ya que configuré hace tiempo mi raspi para arrancar por defecto desde pendrive y en su defecto microSD.
  • Se distribuye como archivo zip que contiene el ejecutable, recomiendo descomprimirlo en /usr/local/bin para que podamos ejecutarlo desde cualquier carpeta con el comando:
    RetroVirtualMachine
    También lo puedes instalar con Retro Multi Installer y así tendrás también un bonito icono en el menú de Emuladores para lanzarlo sin tocar la consola. Ya he cambiado el script para que detecte que estás en tu raspberry pi y te descomprima la versión correcta, pero recuerda, solo sistemas de 64 bits.
  • Para conseguir un rendimiento óptimo en modelos 4 y 400 es conveniente reducir la resolución del sistema a HD Ready (720) y ejecutar el emulador con el comando:
    RetroVirtualMachine -ns
  • El autor recomienda ejecutar con el compositor Wayland, el que tiene por defecto Raspberry pi OS de 64 bits, para evitar problemas de tearing (efecto agua en la imagen).
    Yo lo tuve que configurar raspberry pi OS para que funcionara en X para sacar las capturas del emulador y no he experimentado problemas con mi raspberry pi 400, pero si tú experimentas problemas con X vuelve a Wayland.
  • Si ya tienes las BIOS necesarias para MSX y las consolas emuladas recuerda que deben estar en la ruta ~/.config/Retro Virtual Machine v2.x/romvault
  • Recuerda que estas placas suelen ser más limitadas que tu PC más potente, informar al autor de los problemas que nos encontremos es una excelente manera de ayudar a mejorar el emulador.

 

Todos estos detalles y más los podéis encontrar en el blog oficial del emulador.

viernes, 13 de diciembre de 2024

Ejecutar software de Amstrad CPC con MAME en modo gráfico GUI (I)

Hace tiempo que MAME incluye en su código lo que era el emulador MESS, que era una bifurcación del proyecto enfocada a emular ordenadores y consolas en lugar de máquinas arcades, por ello MAME es capaz de emular también este tipo de máquinas.

Antes de seguir vamos a instalar el mame en caso de que aún no lo hayas instalado, en el caso de Debian y otras distros derivadas puedes instalarlo con el comando:

sudo apt install mame

Para conseguir esto hay que incluir las BIOS(*) de los ordenadores como ROMs, se podrían incluir simplemente como archivos comprimidos en la misma carpeta de roms pero es más recomendable tenerlos en una carpeta aparte, en mi caso he creado en $HOME una carpeta mess y dentro dos carpetas, una de bios y otra de software.


Para incluir la carpeta de bios, en mi caso /home/miusuario/mess/bios puedo añadirlo al archivo mame.ini a las rutas definidas en la variable rompath, o hacerlo visualmente desde el propio entorno de MAME.

General settings ► Customize folders ► ROMs ► Add folder

Nos aparecerá un selector de carpetas por el que tenemos que navegar hasta llegar a la carpeta deseada y una vez dentro de ella pulsar la tecla TAB para añadirla.

Después vamos saliendo de las diferentes opciones seleccionadas pulsando la tecla ESC hasta volver a 'General settings' en cuya opción podemos hacer los cambios permanentes, con la opción 'Save Settings', en caso de que hayas salido completamente de las opciones las acciones serían:

General settings ► Save Settings

Ahora salimos completamente de las opciones de menú pulsando ESC una vez más hasta ver la página principal de MAME donde nos ofrecerá algunas ROMs para ejecutar, si tecleamos 'Amstrad' nos aparecerá todas las máquinas Amstrad que podemos emular.

Seleccionamos por ejemplo Amstrad CPC6128.

Nos aparecerán diversos juegos reconocidos por MAME pero que no nos funcionarán por no estar en la ruta adecuada con el nombre exacto que reconoce MAME, así que tendremos que elegir la opción 'Start empty'.

Nos saldrá una pantalla de confirmación, pulsamos una tecla y ya podemos ver nuestro Amstrad CPC6128 funcionando.

Una vez que estamos ejecutando el Amstrad CPC tenemos que activar los controles UI pulsando la tecla 'Insert' de nuestro teclado.

Pulsamos la tecla TAB y seleccionamos la opción 'File Manager'.


Nos aparecerá un menú para indicar la ubicación del archivo que queremos emular.


Podemos elegir diversos tipos de archivos, incluso a la vez:

  • printout (prin): archivo en el volcaremos la salida de lo que imprimamos.
  • snapshot (dump): archivos SNA que son volcados de memoria, en este caso se iniciaría el programa inmediatamente.
  • floppydiskX: archivos DSK, es decir, imágenes de disco, la X puede ser 1 o 2 según queramos que se comporte como unidad A: o B:
  • cassette (cass): archivos CDT, es decir, imágenes de cinta.

En el caso de elegir disquetes o cassettes tenemos que cargarlos como si estuviéramos en un Amstrad CPC real.

Si elegimos cassette debemos tener en cuenta que la combinación de teclas CTRL + Enter (pequeño) no funciona, así que tenemos que teclear RUN " y pulsar ENTER. 

Recuerda que como hemos elegido el CPC6128 hay que teclear antes |TAPE

Una vez seleccionada la imagen de cinta y ejecutado RUN" hay que "darle al play en el cassette", para ello le damos otra vez al tabulador y ahora seleccionamos la opción "Tape Control".

Seleccionamos la opción 'Play' y esperaremos a que termine la carga, no hay que esperar a que termine para salirnos de los menús.

Y bueno, básicamente así podríamos emular varios ordenadores de 8 bits con MAME.

No es el emulador más amigable del mundo y tiene varios defectos pero no está mal para un emulador que se creó para emular máquinas arcade y ahora aspira a emularlo todo.

----

(*) Los archivos BIOS necesarios se pueden sacar de casi cualquier otro emulador de CPC, como CPCEmu, caprice32, etc..., deberían comprimirse en archivos ZIP de la siguiente manera:

  • cpc464.zip: cpc464.rom y cpcados.rom
  • cpc664.zip: cpc664.rom
  • cpc6128.zip: cpc6128.rom

Recordemos que Amstrad autorizó hace años la distribución de ROMs en emuladores.


viernes, 16 de agosto de 2024

Cambiar la goma de la disquetera de mi Amstrad CPC6128, la primera vez

Mi Amstrad CPC6128 me lleva acompañando desde 1989 y, salvo una cara "avería" que tuvo la disquetera en 1993, la goma de la disquetera no se ha cambiado una operación de mantenimiento que llevaba postergando desde entonces hasta que ha dejado de funcionar.

Antes de hacer esta operación, que no había hecho antes y me imponía respeto a pesar de haber reparado varios PC a lo largo de los años, me he estado documentando con manuales y diversos videotutoriales cuyos enlaces he puesto al final del artículo. Si vais ha hacer esto os diré que verlos no es una recomendación, es completamente obligatorio para tener éxito y no liarla parda.

Vamos a ver los pasos que he seguido, tened en cuenta que hay que seguir un orden riguroso para no dejarse nada atrás ni romper nada más. No es la manera más ortodoxa y he ido al grano, es decir, no he desarmado otros elementos para limpiarlos por ejemplo. He tratado de desconectar lo mínimo posible siguiendo la máxima: "si funciona NO lo toques". 

 

Paso 1: Preparar la zona de trabajo

Teniendo en cuenta que el Amstrad CPC6128 se va abrir con un libro, lo ideal es una mesa que pueda albergar el doble de la longitud del Amstrad, en mi caso tengo dos mesas de IKEA que previamente he regulado para que estén exactamente a la misma altura y sea como si fuera una sola muy larga.


Paso 2: Abrir el Amstrad

Damos la vuelta al ordenador y empezamos quitando los tornillos de la parte trasera, son unos 6 tornillos de longitud media y uno algo más grande a la altura de los conectores de vídeo o energía.

 


En mi caso tenía la pegatina del servicio técnico tapando el tornillo grande, algo común en los SAT para limpiarse las manos si alguien hace alguna reparación posterior. 


A continuación retiramos los dos tornillos del lateral de la disquetera.


Es importante tener controlados todos los tornillos que vayamos quitando para luego saber ponerlos en el sitio y momento correspondientes.

Volvemos a dar la vuelta al ordenador para ponerlo otra vez en posición normal y con mucho cuidado vamos separando la parte de arriba de la de abajo, una vez liberado HAY QUE ABRIRLO COMO UN LIBRO, si lo hacemos al revés y forzamos nos cargaríamos los conectores del teclado entre otros.



Paso 3: Extraer la disquetera del ordenador

Hay que hacer dos cosas:

Retirar los dos tornillos que la siguen sujetando a la carcasa, observa que uno de ellos está conectado a un cable de tierra a la placa base, luego hay que dejarlo igual.


Retirar los cables de alimentación y datos, con cuidado de no dañarlos y apuntando como estaban conectados, lo mejor es hacer una fotografía con detalle.

 


También hay que retirar la chapa metálica de sujeción para acceder al interior de la disquetera. 


Paso 4: Acceder a la goma

Esta es la operación más delicada y donde hay más cosas donde liarla.

Retiramos el frontal desatornillando los dos tornillos que la sujetan y tirando hacia afuera con sumo cuidado de no dañar las pestañas.

 


Hay que tener en cuenta cuando la volvamos a poner que el plástico de la parte inferior debe quedar por debajo de la placa inferior de la disquetera.

 

Como es muy común perder el clavito que detecta si un disquete tiene protección de escritura o no, se pueden hacer dos cosas para prevenir esta contingencia:

  • Fijarlo momentáneamente con cinta de carretero.
  • Dejar un disquete dentro. Ésta es la opción que he usado yo.


 

Si al final terminamos perdiendo el clavito, consulta los enlaces del final para ver el vídeo y el artículo en el que se explica como solucionar este problema.

Ahora retiramos los tres tornillitos de la placa inferior de la disquetera, pero que todavía no vamos a retirar porque nos vamos a encontrar más cosas que hay que quitar para no romper nada.

Disquetera de 3", detalle placa inferior
Disquetera de 3", detalle placa inferior (sacada del artículo de AUA: Reparación de disquetera: disc is write protected)

 

También hay que quitar los conectores de los motores, que, en mi disquetera están a los lados.




Finalmente hay que retirar un sensor que hay que dejar exactamente en la misma posición para no tener errores de funcionamiento en la unidad.


Para volver a ponerlo igual hay que señalar con un rotulador indeleble su posición, aunque yo en lugar de retirarlo he quitado el cable del pasador para tener holgura para retirar un poco la placa de abajo, lo suficiente para acceder a la goma, por si muevo el sensor accidentalmente marco igualmente con indeleble su posición.


De esta manera es un poco más incómodo acceder a la goma y sobre todo limpiar los restos de goma si se hubiera deshecho, afortunadamente la mía está entera aunque algo dada de sí.


Con unas pinzas consigo retirar la goma vieja y sustituirla por la nueva, me aseguro que los rodillos funcionan moviendo uno y viendo como se mueve el otro.


Paso 5: Volver a cerrarlo y conectarlo todo

Ahora tenemos que ir cerrando todo y volver a conectar lo que hemos desconectado en el orden inverso, lista de tareas:

  1. Cerrar la disquetera.
  2. Poner el cable del sensor por el pasador.
  3. Conectar los dos motores.
  4. Atornillar la placa inferior de la disquetera. 
  5. Sacar el disquete.
  6. Volver a poner el frontal en su sitio exacto, de manera que la parte más inferior del frontal quede por debajo la placa inferior.
  7. Colocar la placa de sujección a la izquierda de la disquetera.
  8. Colocar la disquetera en su sitio en la carcasa del CPC.
  9. Conectar los cables de alimentación y datos.
  10. Atornillar la disquetera a la carcasa con sus dos tornillos.
  11. Cerrar el CPC como cerraríamos un libro.
  12. Poner los tornillos inferiores de la carcasa y los dos que sujetan la disquetera por su lateral derecho.


Paso 6: Pruebas finales

Una vez cerrado todo toca cruzar los dedos y ver que funciona todo correctamente:

  1. Encendemos el Amstrad y vemos que sigue arrancando correctamente.
  2. Introducimos algunos disquetes y vemos que carga los juegos y programas con normalidad.
  3. Probamos con algún disquete que tenga espacio libre y guardamos el típico programa BASIC del "Hola mundo", si lo hace con normalidad hemos terminado las pruebas con éxito. ¡ENHORABUENA!


Si tienes algún problema con algún disquete comprueba que las revoluciones de tu disquetera son las correctas.

 

Videotutoriales y otros manuales

A continuación pongo los enlaces de donde he sacado información para completar este mantenimiento, en orden de utilidad para la tarea:


Muchas gracias a los compañeros de los foros y grupos de Telegram que me han dado consejos de como proceder y en especial al sr. Rosa que incluso se ha ofrecido para ayudarme a cambiarla y que tenía en la recámara por si la cosa no salía como esperaba.