🇬🇧 đŸ‡«đŸ‡· đŸ‡Ș🇾 đŸ‡©đŸ‡Ș

AMSpiriT Lite — Guide rapide

AMSpiriT Lite est un émulateur Amstrad CPC pour Linux/Windows basé sur le core AMSpiriT par David MANUEL.

Touches de contrĂŽle

ToucheAction
F1Afficher cette aide dans le navigateur
F2Sauvegarder une capture d'écran PNG dans le répertoire courant
F4Sauvegarde rapide dans l'emplacement courant
Shift+F4Chargement rapide depuis l'emplacement courant
F6Débogueur : retour arriÚre (rewind, en pause et si disponible)
F7Débogueur : mettre en pause si en cours d'exécution ; pas à pas (instruction BASIC ou Z80) si en pause
F8Débogueur : pas à pas procédural (CALL/CALL cc Z80 ou GOSUB BASIC ; sinon un pas simple)
F9Débogueur : reprendre (uniquement en pause)
Shift+F9Activer/désactiver le mode turbo (vitesse maximale, audio muet)
F10Hard reset (redémarrage à froid)
Shift+F10Soft reset (redémarrage à chaud)
F11 (SDL uniquement)Sélectionner le mode moniteur (couleur CTM644, vert GT65, TV, variantes ASIC)
Shift+F11Sélectionner les types d'écran (couleur, moniteur vert, variantes ASIC)
Ctrl+F11 (SDL uniquement)Afficher/masquer l'indicateur FPS
Ctrl+Shift+F11 (SDL uniquement)Sélectionner les modes de visualisation CRTC (debug)
F12Basculer plein Ă©cran / mode fenĂȘtrĂ©
Shift+F12Basculer l'affichage : Ă©cran CPC visible ↔ trame CRTC complĂšte
Ctrl+F12Basculer l'Ă©cran de debug (trame courante ↔ superposition)
PausePause / Reprendre l'émulation
→ (en pause)Avancer d'une trame
← / → (en pause, rewind actif)Naviguer dans l'historique de rembobinage trame par trame
Alt+F4Fermer la fenĂȘtre (gĂ©rĂ© par le gestionnaire de fenĂȘtres)
Ctrl+1 Ă  Ctrl+0PavĂ© numĂ©rique CPC 1–0 (pour les portables sans pavĂ© numĂ©rique)
Molette de la souris (haut/bas)Ajuster le volume (±10% par cran)
Clic bouton central de la sourisBasculer muet / démuet
Note : les touches F6-F9 reproduisent le dĂ©bogueur pas Ă  pas de la page web (--web-server). Le mode BASIC ou Z80 est dĂ©tectĂ© automatiquement selon qu'un programme BASIC est en cours d'exĂ©cution — il n'y a pas d'onglet Ă  sĂ©lectionner comme sur la page web.

Chargement de fichiers

Glissez-dĂ©posez un fichier sur la fenĂȘtre de l'Ă©mulateur pour le charger. Le frontend Qt dispose Ă©galement d'un menu Fichier pour ouvrir une boĂźte de dialogue de sĂ©lection de fichiers.

Astuce : maintenez Ctrl pendant le glisser-dĂ©poser pour effectuer un hard reset avant le chargement — utile pour charger un disque dans un Ă©tat propre.
FormatDescription
.dskImage disque standard
.hfe / .ipfImage disque haute fidélité (CAPS)
.cdtCassette (CDT)
.snaSnapshot (sauvegarde d'état)
.cprCartouche CPC Plus / GX4000 — bascule automatiquement vers le modùle CPC 6128+ et le CRTC type 3

Emplacements de snapshots

AMSpiriT Lite dispose de 4 emplacements de sauvegarde rapide (1–4) par jeu. Les emplacements sont stockĂ©s Ă  cĂŽtĂ© de l'image ROM/disque et persistent entre les sessions.

ActionTouche / Bouton
Sauvegarde rapide dans l'emplacement courantF4
Chargement rapide depuis l'emplacement courantShift+F4
Passer Ă  l'emplacement suivant (en pause)Joystick Start / + bouton
Passer Ă  l'emplacement prĂ©cĂ©dent (en pause)Joystick Select / − bouton
Sauvegarder dans l'emplacement (en cours d'exécution)Joystick Start / + bouton
Charger depuis l'emplacement (en cours d'exĂ©cution)Joystick Select / − bouton

Dans le frontend Qt, les emplacements de snapshots sont aussi accessibles via le menu Émulation → Snapshots.

Rewind / Rembobinage

La fonctionnalitĂ© rewind optionnelle enregistre un buffer circulaire d'instantanĂ©s d'Ă©tat du CPC en RAM au cours de l'exĂ©cution. En pause, vous pouvez naviguer vers l'avant et vers l'arriĂšre dans l'historique enregistrĂ© — utile pour dĂ©boguer, trouver le bon moment pour une capture d'Ă©cran, ou rembobiner aprĂšs une mauvaise action dans un jeu.

Activez le rewind au dĂ©marrage avec --enable-rewind. Dans le frontend Qt, utilisez le menu Émulation → Rewind pour l'activer et ajuster les paramĂštres.

Touche / ActionDescription
← (en pause)Reculer d'une trame dans l'historique rewind
→ (en pause)Avancer d'une trame (vers le prĂ©sent), ou avancer d'une trame normale si au prĂ©sent
D-pad ← (joystick, en pause)Reculer dans le rewind
D-pad → (joystick, en pause)Avancer dans le rewind / reprendre si au prĂ©sent

La barre de statut / titre affiche < N / M lors du rembobinage (N trames avant le plus ancien, M total stockées).

Mémoire : chaque snapshot fait environ 1,6 Mo. Le buffer par défaut contient 100 snapshots (~160 Mo); ajustez avec --rewind-slots N.

Mode turbo

Le mode turbo désactive la cadence 50 Hz et coupe l'audio pour faire tourner l'émulateur à pleine vitesse du CPU hÎte. Utile pour passer rapidement un chargement cassette ou une intro longue.

Gamepad / Joystick

Le frontend Qt utilise l'API SDL2 GameController (XInput sur Windows, evdev sur Linux, GameController sur macOS). Le frontend SDL utilise l'API joystick legacy. Les deux détectent les manettes au démarrage et à la connexion ; la premiÚre manette détectée correspond au port joystick 1 du CPC.

BoutonAction (en cours d'exécution)Action (en pause)
AFeu 1—
BFeu 2—
XFeu 3—
Y / GuidePauseReprendre
Start / +Sauvegarde rapide dans l'emplacement courantPasser Ă  l'emplacement suivant
Select / −Chargement rapide depuis l'emplacement courantPasser Ă  l'emplacement prĂ©cĂ©dent
Stick gauche / D-padDirections (Haut/Bas/Gauche/Droite)Naviguer dans le rewind (si actif)
Frontend SDL : utilise les numĂ©ros de boutons joystick bruts (Bouton 0–3 = Feu 1/2/3/Pause, Bouton 7/9 = Start, Bouton 6/8 = Select). L'axe analogique CPC Plus est supportĂ© sur les deux frontends.

Serveur de debug web

L'émulateur embarque un serveur de debug HTTP (actif par défaut, sur 127.0.0.1:6128) qui expose une interface web complÚte dans le navigateur : registres Z80, Gate Array, PSG, FDC, heat map mémoire, ASIC, disque, config, script, et plus.

amspirit-lite-sdl [--no-web-server] [--web-addr 0.0.0.0] [--web-port 6128] [--web-html chemin/vers/ui.html]
OptionDescription
--web-serverActiver le serveur (actif par défaut)
--no-web-serverDésactiver le serveur
--web-addr <adresse>Adresse d'Ă©coute (dĂ©faut : 127.0.0.1 — local uniquement ; 0.0.0.0 pour toutes les interfaces)
--web-port <port>Port d'écoute (défaut : 6128)
--web-html <fichier>Chemin vers le fichier HTML de l'interface (défaut : amspirit-lite.html à cÎté du binaire)
--lua-full-stdlibLaisser les scripts envoyĂ©s (POST) Ă  l'API web utiliser la stdlib Lua complĂšte (io, os.execute, package, debug). DĂ©sactivĂ© par dĂ©faut — ces scripts sont sandboxĂ©s, avec un accĂšs fichiers limitĂ© Ă  la table fs.* jailĂ©e. N'importe quelle page ouverte dans votre navigateur peut atteindre l'API : n'activez ceci que sur une machine de confiance.
Le fichier amspirit-lite.html peut ĂȘtre modifiĂ© sans recompiler. Si le fichier est absent, l'interface embarquĂ©e dans le binaire est utilisĂ©e comme repli.

L'interface est organisée en onglets : Keyboard, BASIC, Debug (Z80/désassemblage/breakpoints), ROMs (carte des ROM), Audio, Heat Map (mémoire), ASIC, Poke, Script, Config, Disk, et Settings.

Éditeur BASIC

L'onglet BASIC permet de travailler avec les programmes Locomotive BASIC :

Mappage du clavier

L'onglet Keyboard affiche la disposition de clavier actuelle et toutes les touches mappées (référence en lecture seule pour déboguer les problÚmes de saisie).

Carte des ROM

L'onglet ROMs montre le catalogue des ROM en cours : quel firmware, quelle ROM d'extension (R<n>:) et quelle banque de cartouche est chargĂ©e dans chaque emplacement, et d'oĂč elle vient. Il propose une vue compacte et une vue par emplacement.

Les emplacements de snapshots ne se gùrent pas depuis l'interface web — utilisez F4 / Shift+F4, ou le menu Qt Émulation → Snapshots.

Options de lancement

amspirit-lite-sdl [OPTIONS] [FICHIER]

Émulation

OptionDescription
-m <modÚle>ModÚle CPC : 464, 664, 6128 (défaut), 6128+, 464+, GX4000
-c <type>Type de CRTC (0 Ă  4)
--ram <Ko>RAM totale en Ko : 128 (défaut), 192, 320, 576
-R <chemin> / --rom-path <chemin>Répertoire des ROMs
-C <chemin> / --config <chemin>Répertoire de configuration
-l <langue> / --lang <langue>Langue ROM (définit le CPC_COUNTRY du core) : FR (défaut), EN, SP, DA
--lang-ui <langue>Langue de l'interface web : en (défaut), fr, es, de (auto-détectée depuis $LANG)
-k <disposition> / --keyboard <disposition>Disposition de clavier hÎte : fr (défaut), uk, us
--keymap <fichier>Charger un fichier de mappage clavier personnalisé
-F / --fullscreenDémarrer en plein écran
-w / --windowedMode fenĂȘtrĂ© (prime sur --fullscreen)
--zoom <N>Facteur de zoom initial de la fenĂȘtre (1=768×542, 2=1536×1084, 
); dĂ©faut 2, repli automatique Ă  1
--size <LxH>Taille initiale de la fenĂȘtre, ex. 1280x960
-Z / --turboDémarrer en mode turbo (vitesse maximale)
--monitor <préréglage>Préréglage moniteur CRT : off (défaut), ctm644, gt65, tv
--resetIgnorer la config sauvegardée, démarrer avec les valeurs par défaut
--no-splash / --splashSauter / forcer l'écran de démarrage (--splash prime sur --no-splash de la config)

Chargement automatique et frappe automatique

OptionDescription
-A / --autorun[=FICHIER]Lancer automatiquement le disque de boot : devine le bon RUN"<fichier>/|CPM, ou forcer un nom avec --autorun=FICHIER
-T <nom> / --run <nom>Taper automatiquement RUN"<nom> au démarrage
-t <texte> / --autotype <texte>Taper une chaßne littérale dans le CPC aprÚs le démarrage (\n = Entrée)
--autotype-file <fichier>Taper le contenu d'un fichier texte dans le CPC aprÚs le démarrage

Audio et affichage

OptionDescription
-L <ms> / --audio-latency <ms>Latence du tampon audio en millisecondes (dĂ©faut : 80 — augmenter si crĂ©pitements)
--audio-device <nom>Nom du périphérique audio de sortie (défaut : celui du systÚme)
--show-overlayAfficher l'indicateur FPS en haut Ă  gauche (rouge = trop lent, bleu = trop rapide)

Scripting

OptionDescription
--script <fichier>ExĂ©cuter un script CSL ou Lua (stdlib complĂšte — --script est un chargement local de confiance, contrairement aux scripts envoyĂ©s Ă  l'API web)
--ssmActiver le mode SSM : agir sur les opcodes Z80 ED FE/FF/00
--ssm-bothAvec --ssm, sauvegarder à la fois un snapshot et une capture d'écran sur ED FE ou ED FF
--debug-scriptJournaliser chaque ligne CSL/Lua exécutée pendant que le script tourne

Rewind / Rembobinage

OptionDescription
--enable-rewindActiver le buffer de rembobinage en RAM (enregistre un snapshot tous les N trames)
--rewind-interval <N>Nombre de trames entre les snapshots rewind (défaut : 10)
--rewind-slots <N>Nombre maximal de snapshots à conserver dans le buffer (défaut : 100, ~160 Mo)

Serveur web de debug

OptionDescription
--web-serverActiver le serveur HTTP de debug embarqué (actif par défaut)
--no-web-serverDésactiver le serveur
--web-addr <adresse>Adresse d'écoute (défaut : 127.0.0.1)
--web-port <port>Port d'écoute (défaut : 6128)
--web-html <fichier>Chemin vers le fichier HTML de l'interface de debug
--lua-full-stdlibLaisser les scripts envoyés à l'API web utiliser la stdlib Lua complÚte au lieu du sandbox (voir la section Serveur de debug web)

Fichiers binaires

OptionDescription
--bin-address <adresse>Adresse de chargement pour un fichier .bin brut/sans en-tĂȘte (ex. 4000, B04:2000 — une valeur seule vise les 64K de base) ; ignorĂ©e pour les fichiers avec en-tĂȘte AMSDOS et remplacĂ©e par la convention de nom nom@adresse.bin
--bin-entry <adresse>Point d'entrĂ©e oĂč sauter aprĂšs le chargement d'un fichier .bin brut (adresse 16 bits plate) ; implique une exĂ©cution immĂ©diate

Diagnostic et divers

OptionDescription
-v / --verbose, -q / --quietAugmenter ou réduire la verbosité des logs
-K / --debug-keysActiver la sortie de debug clavier verbeux
-J / --debug-joystickActiver la sortie de debug joystick verbeux
--debug-rewindJournaliser les sauvegardes/rappels rewind avec l'index d'emplacement et la taille d'historique
--debug-webapiJournaliser les requĂȘtes, rĂ©ponses et Ă©vĂ©nements SSE de l'API web
--debug-audioJournaliser les statistiques audio (sous-alimentation/octets perdus) chaque seconde
--dump-keymap[=FICHIER]Exporter le keymap actuel vers FICHIER (défaut : keymap-sdl.cfg) et quitter
-X <N> / --autoExit <N>Quitter automatiquement aprĂšs N trames de la boucle 50 Hz (les trames en pause comptent) — pour les tests automatisĂ©s
--save-log <fichier>Sauvegarder toute la sortie des logs dans <fichier>
--report[=chemin]Générer un rapport de diagnostic
--update-url <url>Redéfinir l'URL du manifeste de mise à jour (tests)

Configuration du clavier (keymap.cfg)

Générez un fichier keymap en utilisant l'option --dump-keymap, modifiez-le à votre guise et relancez l'émulateur :

amspirit-lite-sdl --dump-keymap=keymap.cfg

(Sans nom de fichier, --dump-keymap écrit keymap-sdl.cfg dans le répertoire courant.)

Placez le fichier keymap.cfg généré dans votre répertoire ROMs/ ou config/ (ou pointez --keymap dessus directement). Le fichier utilise le format INI avec deux sections : [keyboard layout] et [emulator hotkeys].

Actions de raccourci supportées : 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

Format des touches : Touche unique (F1, A, Escape, Return, Space) ou modifieurs (Ctrl+X, Shift+F1, Alt+Shift+P). Insensible Ă  la casse.

Les changements prennent effet au redémarrage. Pour trouver le code d'une touche, lancez l'émulateur avec -K et regardez les messages DOWN dans la console. Note : Les applications SDL et Qt utilisent des codes de touche différents ; utilisez des fichiers keymap séparés pour chacune si vous exécutez les deux.


Core AMSpiriT par David MANUEL — port Linux par Siko — amspirit.fr