AMSpiriT Lite es un emulador Amstrad CPC para Linux/Windows basado en el núcleo AMSpiriT de David MANUEL.
| Tecla | Acción |
|---|---|
| F1 | Abrir esta ayuda en el navegador |
| F2 | Guardar una captura de pantalla PNG en el directorio actual |
| F4 | Guardado rápido en la ranura actual |
| Shift+F4 | Carga rápida desde la ranura actual |
| F6 | Depurador: retroceder un paso (rewind, en pausa y si está disponible) |
| F7 | Depurador: pausar si está en ejecución; avanzar un paso (instrucción BASIC o Z80) si está en pausa |
| F8 | Depurador: paso por encima (CALL/CALL cc Z80 o GOSUB BASIC; si no, un paso simple) |
| F9 | Depurador: reanudar (solo en pausa) |
| Shift+F9 | Activar/desactivar modo turbo (velocidad máxima, audio silenciado) |
| F10 | Reinicio total (arranque en frío) |
| Shift+F10 | Reinicio suave (arranque en caliente) |
| F11 (solo SDL) | Seleccionar modo de monitor (color CTM644, verde GT65, TV, variantes ASIC) |
| Shift+F11 | Cambiar tipo de pantalla (color, monitor verde, variantes ASIC) |
| Ctrl+F11 (solo SDL) | Mostrar/ocultar indicador de FPS |
| Ctrl+Shift+F11 (solo SDL) | Cambiar modos de visualización CRTC (depuración) |
| F12 | Alternar pantalla completa / modo ventana |
| Shift+F12 | Alternar vista: pantalla CPC visible ↔ trama CRTC completa |
| Ctrl+F12 | Cambiar pantalla de depuración (fotograma actual ↔ superposición) |
| Pausa | Pausar / Reanudar emulación |
| → (en pausa) | Avanzar un fotograma |
| ← / → (en pausa, rewind activo) | Navegar en el historial de rebobinado fotograma a fotograma |
| Alt+F4 | Cerrar la ventana (gestionado por el gestor de ventanas) |
| Ctrl+1 a Ctrl+0 | Teclado numérico CPC 1–0 (para portátiles sin teclado numérico) |
| Rueda del ratón (arriba/abajo) | Ajustar volumen (±10% por paso) |
| Clic botón central del ratón | Activar/desactivar silencio |
--web-server). El modo BASIC o Z80 se detecta automáticamente según si hay un programa BASIC en ejecución — no hay pestaña que seleccionar, a diferencia de la página web.
Arrastre y suelte un archivo sobre la ventana del emulador para cargarlo. El frontend Qt también tiene un menú Archivo para abrir un diálogo de selección de archivos.
| Formato | Descripción |
|---|---|
.dsk | Imagen de disco estándar |
.hfe / .ipf | Imagen de disco de alta fidelidad (CAPS) |
.cdt | Cinta (CDT) |
.sna | Snapshot (estado guardado) |
.cpr | Cartucho CPC Plus / GX4000 — cambia automáticamente al modelo CPC 6128+ y tipo CRTC 3 |
AMSpiriT Lite mantiene 4 ranuras de guardado rápido (1–4) por juego. Las ranuras se almacenan junto a la imagen ROM/disco y persisten entre sesiones.
| Acción | Tecla / Botón |
|---|---|
| Guardado rápido en la ranura actual | F4 |
| Carga rápida desde la ranura actual | Shift+F4 |
| Cambiar a la siguiente ranura (en pausa) | Gamepad Start / botón + |
| Cambiar a la ranura anterior (en pausa) | Gamepad Select / botón − |
| Guardar en ranura (en ejecución) | Gamepad Start / botón + |
| Cargar desde ranura (en ejecución) | Gamepad Select / botón − |
En el frontend Qt, las ranuras de snapshots también son accesibles desde el menú Emulación → Snapshots.
La función rewind opcional registra un búfer circular de snapshots de estado del CPC en RAM mientras se ejecuta el emulador. En pausa, puede navegar hacia adelante y hacia atrás en el historial registrado — útil para depuración, encontrar el momento perfecto para capturar pantalla, o rebobinar un movimiento equivocado en un juego.
Active rewind al inicio con --enable-rewind. En el frontend Qt, use el menú Emulación → Rewind para activarlo y ajustar configuración.
| Tecla / Acción | Descripción |
|---|---|
| ← (en pausa) | Retroceder un fotograma en el historial rewind |
| → (en pausa) | Avanzar un fotograma (hacia el presente), o avanzar un fotograma normal si está al día |
| D-pad ← (gamepad, en pausa) | Retroceder en rewind |
| D-pad → (gamepad, en pausa) | Avanzar en rewind / reanudar si está al día |
La barra de estado / título muestra < N / M mientras se rebobina (N fotogramas desde el más antiguo, M total almacenados).
--rewind-slots N.
El modo turbo desactiva la cadencia de 50 Hz y silencia el audio, permitiendo que el emulador se ejecute a velocidad máxima de la CPU. Útil para omitir cargas largas de cinta o intros.
--turbo junto con --autotype o -A, el turbo se detiene automáticamente cuando finaliza la secuencia de escritura automática.El frontend Qt usa la API SDL2 GameController (XInput en Windows, evdev en Linux, GameController en macOS). El frontend SDL usa la API joystick legacy. Ambos detectan controles al inicio y cuando se conectan; el primer controlador encontrado se asigna al puerto joystick 1 del CPC.
| Botón | Acción (en ejecución) | Acción (en pausa) |
|---|---|---|
| A | Disparo 1 | — |
| B | Disparo 2 | — |
| X | Disparo 3 | — |
| Y / Guía | Pausar | Reanudar |
| Start / + | Guardado rápido en la ranura actual | Cambiar a la siguiente ranura |
| Select / − | Carga rápida desde la ranura actual | Cambiar a la ranura anterior |
| Stick izquierdo / D-pad | Direcciones (Arriba/Abajo/Izquierda/Derecha) | Navegar rewind (si está activo) |
El emulador integra un servidor de depuración HTTP (activo por defecto, en 127.0.0.1:6128) que expone una interfaz web completa en el navegador: registros Z80, Gate Array, PSG, FDC, mapa de calor de memoria, ASIC, disco, configuración, scripting, y más.
amspirit-lite-sdl [--no-web-server] [--web-addr 0.0.0.0] [--web-port 6128] [--web-html ruta/a/ui.html]
| Opción | Descripción |
|---|---|
--web-server | Activar el servidor (activo por defecto) |
--no-web-server | Desactivar el servidor |
--web-addr <dirección> | Dirección de escucha (por defecto: 127.0.0.1 — solo local; use 0.0.0.0 para todas las interfaces) |
--web-port <puerto> | Puerto de escucha (por defecto: 6128) |
--web-html <archivo> | Ruta al archivo HTML de la interfaz (por defecto: amspirit-lite.html junto al binario) |
--lua-full-stdlib | Permite que los scripts enviados (POST) a la API web usen la stdlib completa de Lua (io, os.execute, package, debug). Desactivado por defecto — esos scripts están aislados, con acceso a archivos limitado a la tabla fs.* enjaulada. Cualquier página abierta en su navegador puede acceder a la API, así que actívelo solo en una máquina de confianza. |
amspirit-lite.html puede editarse sin recompilar. Si falta, se usa la interfaz integrada en el binario como alternativa.
La interfaz se organiza en pestañas: Keyboard, BASIC, Debug (Z80/desensamblado/breakpoints), ROMs (mapa de ROM), Audio, Heat Map (memoria), ASIC, Poke, Script, Config, Disk, y Settings.
La pestaña BASIC permite trabajar con programas Locomotive BASIC:
?reset=1 (reinicio total primero), ?run=1 (auto-escribe RUN después de inyectar)La pestaña Keyboard muestra la distribución de teclado actual y todas las teclas asignadas (referencia de solo lectura para depuración de problemas de entrada de teclado).
La pestaña ROMs muestra el catálogo actual de ROMs: qué firmware, ROM de extensión (R<n>:) y banco de cartucho está cargado en cada ranura, y de dónde procede. Ofrece una vista compacta y una vista por ranura.
amspirit-lite-sdl [OPCIONES] [ARCHIVO]
| Opción | Descripción |
|---|---|
-m <modelo> | Modelo CPC: 464, 664, 6128 (por defecto), 6128+, 464+, GX4000 |
-c <tipo> | Tipo CRTC (0 a 4) |
--ram <Ko> | RAM total en Ko: 128 (por defecto), 192, 320, 576 |
-R <ruta> / --rom-path <ruta> | Directorio de ROMs |
-C <ruta> / --config <ruta> | Directorio de configuración |
-l <idioma> / --lang <idioma> | Idioma de la ROM (define el CPC_COUNTRY del núcleo): FR (por defecto), EN, SP, DA |
--lang-ui <idioma> | Idioma de la interfaz web: en (por defecto), fr, es, de (auto-detectado desde $LANG) |
-k <distribución> / --keyboard <distribución> | Distribución de teclado del host: fr (por defecto), uk, us |
--keymap <archivo> | Cargar un archivo de mapeo de teclado personalizado |
-F / --fullscreen | Iniciar en pantalla completa |
-w / --windowed | Modo ventana (tiene prioridad sobre --fullscreen) |
--zoom <N> | Factor de zoom inicial de la ventana (1=768×542, 2=1536×1084, …); por defecto 2, con reserva automática a 1 |
--size <AxA> | Tamaño inicial de la ventana, ej. 1280x960 |
-Z / --turbo | Iniciar en modo turbo (velocidad máxima) |
--monitor <preajuste> | Preajuste de monitor CRT: off (por defecto), ctm644, gt65, tv |
--reset | Ignorar la configuración guardada e iniciar con los valores predeterminados |
--no-splash / --splash | Omitir / forzar la pantalla de inicio (--splash tiene prioridad sobre --no-splash de la config) |
| Opción | Descripción |
|---|---|
-A / --autorun[=ARCHIVO] | Ejecuta automáticamente el disco de arranque: adivina el RUN"<archivo>/|CPM correcto, o fuerza un nombre con --autorun=ARCHIVO |
-T <nombre> / --run <nombre> | Escribe automáticamente RUN"<nombre> al inicio |
-t <texto> / --autotype <texto> | Escribe una cadena literal en el CPC tras el arranque (\n = Intro) |
--autotype-file <archivo> | Escribe el contenido de un archivo de texto en el CPC tras el arranque |
| Opción | Descripción |
|---|---|
-L <ms> / --audio-latency <ms> | Latencia del búfer de audio en milisegundos (por defecto: 80 — aumentar si hay crepitaciones) |
--audio-device <nombre> | Nombre del dispositivo de salida de audio (por defecto: el del sistema) |
--show-overlay | Mostrar el indicador FPS en la esquina superior izquierda (rojo = demasiado lento, azul = demasiado rápido) |
| Opción | Descripción |
|---|---|
--script <archivo> | Ejecutar un script CSL o Lua (stdlib completa — --script es una carga local de confianza, a diferencia de los scripts enviados a la API web) |
--ssm | Activar el modo SSM: actuar sobre los opcodes Z80 ED FE/FF/00 |
--ssm-both | Con --ssm, guardar tanto un snapshot como una captura de pantalla en ED FE o ED FF |
--debug-script | Registrar cada línea CSL/Lua ejecutada mientras corre el script |
| Opción | Descripción |
|---|---|
--enable-rewind | Activar búfer de rebobinado en RAM (registra un snapshot cada N fotogramas) |
--rewind-interval <N> | Fotogramas entre snapshots rewind (por defecto: 10) |
--rewind-slots <N> | Número máximo de snapshots a mantener en el búfer (por defecto: 100, ~160 MB) |
| Opción | Descripción |
|---|---|
--web-server | Activar el servidor HTTP de depuración integrado (activo por defecto) |
--no-web-server | Desactivar el servidor |
--web-addr <dirección> | Dirección de escucha (por defecto: 127.0.0.1) |
--web-port <puerto> | Puerto de escucha (por defecto: 6128) |
--web-html <archivo> | Ruta al archivo HTML de la interfaz de depuración |
--lua-full-stdlib | Permite que los scripts enviados a la API web usen la stdlib completa de Lua en lugar del sandbox (ver la sección Servidor web de depuración) |
| Opción | Descripción |
|---|---|
--bin-address <dirección> | Dirección de carga para un archivo .bin crudo/sin cabecera (ej. 4000, B04:2000 — un valor simple apunta a los 64K base); se ignora en archivos con cabecera AMSDOS y se sobrescribe con la convención de nombre nombre@dirección.bin |
--bin-entry <dirección> | Punto de entrada al que saltar tras cargar un archivo .bin crudo (dirección plana de 16 bits); implica ejecución inmediata |
| Opción | Descripción |
|---|---|
-v / --verbose, -q / --quiet | Aumentar o reducir la verbosidad de los logs |
-K / --debug-keys | Activar salida de depuración detallada del teclado |
-J / --debug-joystick | Activar salida de depuración detallada del joystick |
--debug-rewind | Registrar guardados/recuperaciones de rewind con el índice de ranura y el tamaño del historial |
--debug-webapi | Registrar solicitudes, respuestas y eventos SSE de la API web |
--debug-audio | Registrar estadísticas de audio (falta de datos/bytes perdidos) cada segundo |
--dump-keymap[=ARCHIVO] | Exportar el keymap actual a ARCHIVO (por defecto: keymap-sdl.cfg) y salir |
-X <N> / --autoExit <N> | Salir automáticamente tras N fotogramas del bucle de 50 Hz (los fotogramas en pausa cuentan) — para pruebas automatizadas |
--save-log <archivo> | Guardar toda la salida de logs en <archivo> |
--report[=ruta] | Generar un informe de diagnóstico |
--update-url <url> | Sobrescribir el endpoint del manifiesto de actualización (pruebas) |
Genere un archivo keymap usando la opción --dump-keymap, luego edítelo a su conveniencia y reinicie el emulador:
amspirit-lite-sdl --dump-keymap=keymap.cfg
(Sin nombre de archivo, --dump-keymap escribe keymap-sdl.cfg en el directorio actual.)
Coloque el archivo keymap.cfg generado en su carpeta ROMs/ o config/ (o apunte --keymap directamente a él). El archivo utiliza formato INI con dos secciones:
[keyboard layout] y [emulator hotkeys].
Acciones de atajo admitidas: PAUSE, MUTE, HELP, SCREENSHOT, SNAPSHOT_SAVE, SNAPSHOT_LOAD, VOLUME_UP, VOLUME_DOWN, TURBO, HARD_RESET, SOFT_RESET, FULLSCREEN, FULL_FRAME, CYCLE_SCREEN, CYCLE_DEBUG_SCREEN, TOGGLE_OVERLAY, CYCLE_CRTC, CYCLE_MONITOR, FRAME_STEP, DEBUG_STEP, DEBUG_STEP_OVER, DEBUG_RESUME, DEBUG_STEP_BACK, DEBUG_CLEAR_BREAKPOINTS, OPEN_FILE, QUIT
Formato de teclas: Tecla única (F1, A, Escape, Return, Space) o modificadores (Ctrl+X, Shift+F1, Alt+Shift+P). Sin distinción de mayúsculas.
Los cambios toman efecto al reiniciar. Para encontrar el código de una tecla, ejecute con la opción -K
y busque mensajes DOWN en la consola. Nota: Las aplicaciones SDL y Qt utilizan códigos de tecla diferentes;
use archivos keymap separados para cada una si ejecuta ambas.
Núcleo AMSpiriT por David MANUEL — puerto Linux por Siko — amspirit.fr