DSP-Emulator

Émulateur v0.22

DSP-Emulator est un émulateur polyvalent développé en Pascal (Delphi, Lazarus et Free Pascal), conçu pour reproduire un large éventail de systèmes rétro, incluant des ordinateurs, consoles et bornes d’arcade. Il prend en charge des plateformes comme le Spectrum, la NES, la ColecoVision, le Commodore 64, l’Amstrad CPC, ainsi que des bornes d’arcade et des machines comme le MSX ou l’Oric Atmos. Son fonctionnement repose sur les bibliothèques SDL 2 et SDL Mixer, essentielles pour la gestion graphique et sonore.

Bien que développé initialement pour Windows, DSP-Emulator n’est pas officiellement porté sur macOS, notamment Apple Silicon. Son interface et ses fonctionnalités (comme le chargement automatique des cassettes ou des correctifs matériels) en font un outil intéressant pour les amateurs de rétro-computing, mais son utilisation sur macOS peut nécessiter des adaptations manuelles ou des solutions tierces (comme le biais de Wine ou des compilations personnalisées). Les mises à jour récentes se concentrent sur l’amélioration des pilotes et la stabilité des systèmes supportés.

Dernière mise à jour :

Plateformes

Arcade

Architecture

Mac OS X - macOS Mac OS X - macOS Intel x86 Intel x86 64 bits 64 bits SDL Library SDL Library

Téléchargement et liens

Historique des versions

v0.24WIP3
  • Nouveautés majeures :

    • Intégration de la lecture directe des informations ROM et samples depuis les pilotes, suppression des doublons et ajout des infos de clone pour les pilotes nécessitant une identification précise.
    • Ajout du chargement automatique des cassettes pour tous les ordinateurs (désactivable dans les options), avec une saisie automatique des commandes de chargement lors de l’insertion d’une cassette (Spectrum, Amstrad CPC, Commodore 64, Oric Atmos, MSX 1).
  • Améliorations des moteurs :

    • Contrôles : Unification du traitement des entrées (clavier, manettes, bornes d’arcade) et ajout d’une fonction de réinitialisation pour les pilotes.
    • Son : Correction des valeurs de chargement des WAV (samples) et des registres ADPCM (Taito), simplification du moteur Konami (suppression du paramètre de clock, ajout d’une amplification).
  • Corrections critiques :

    • Restauration automatique du ROM par défaut pour le Spectrum 48K après réinitialisation si un ROM personnalisé est chargé (corrige un bug lié à Shadow of the Unicorn).
    • Correction des timings IRQ IM2 pour l’Amstrad CPC (résout un glitch dans Survivor).
    • Fix des problèmes de son pour Final Starforce et Rally X.
  • Pilotes et matériels ajoutés/corrigeus :

    • Ajout des pilotes pour Dr. Micro, Mars (Galaxian HW), Devil Fish (Galaxian HW), et Rastan (ajout des dip switches et contrôles pour le joueur 2).
    • Correction des échantillons sonores partiels pour Moon Cresta (Galaxian HW) et ajout des dip switches pour Operation Wolf et Lastduel.
Changelog complet
-General +Many visual changes +Merged more Delphi & Lazarus forms functions +Finally found a way to read ROM and sample file info directly from drivers for export, and removed duplicated ROM/sample data. This fixes inconsistencies in ROM/sample information and adds clone info to drivers that need it. +Removed windows unit dependency from all drivers +Added automatic tape type loading for all computers (can be disabled in the main options) +Game selection window: now you can type a game name and it will be automatically selected +Controls Engine -Removed initialization from all drivers -Unified input handling from keyboard, joystick, and arcade (fixes strange key presses when a key is mapped to arcade controls) -Added reset function +Sound Engine -Konami sound: simplified declaration, removed clock parameter, added amplification value -Samples: fixed some values when loading a WAV file -Taito sound: fixed adpcm register, fixes 'Operation Wolf' reset failures -Spectrum +Added automatic tape loading, the emulator now types the loading commands automatically when a tape is inserted +Fixed Spectrum 128K/+2/+3 snapshot loading +Enhanced keyboard functions +Fixed scanline value +Fixed bug when reset Spectrum 16K +If a custom ROM is loaded for Spectrum 48K, default ROM is restored after a reset (fixes reset after loading 'Shadow of the Unicorn') -Amstrad CPC +Added automatic tape loading, the emulator now types the loading commands automatically when a tape is inserted +Some video fixes, shows correc screen in some rare cases (fixes 'Batman Forever' intro and 'Pinball Dreams' table score info) +Fixed IRQ IM2 timings (fixes 'Survivor' line glitch) -Commodore 64 +Added automatic tape loading, the emulator now types the loading commands automatically when a tape is inserted -Oric Atmos +Added automatic tape loading, the emulator now types the loading commands automatically when a tape is inserted -MSX 1 +Added automatic tape loading, the emulator now types the loading commands automatically when a tape is inserted -Dr. Micro +Added driver -Final Starforce +Fixed sound -Galaxian HW +Moon Cresta: fixed partial sound samples, added new simples +Mars: Added driver +Devil Fish: Added driver -HangOn HW +Fixed scanline value (fixes driver hangs) -Lastduel HW +Added dip switches -Operation Wolf +Added dip switches -Rally X HW +New Rally X: fixed sound -Rastan +Added dip switches +Player 2 controls -Shootout +Fixed coin insertion and added coin 2
v0.24WIP2
  • Nouveautés majeures et fonctionnalités étendues :

    • Intégration des fonctions Delphi & Lazarus dans les interfaces graphiques, simplification du reset général et correction de la sélection de langue.
    • Système de bascules DIP : mise à jour complète (valeurs sauvegardées, déclarations simplifiées) et migration de plusieurs jeux vers ce nouveau système.
    • Moteur de contrôle : correction de la réattribution des boutons de joystick avec un compteur à rebours de 5 secondes pour éviter les réassignations accidentelles.
    • Support des formats de bande MSX : ajout du type de bloc $4B pour les formats TAP/TZX.
    • GFX engine : réécriture des fonctions de défilement horizontal/vertical et suppression des masques pour les sprites DECO.
  • Corrections techniques critiques :

    • CPU engine : suppression des lignes de balayage redondantes (partagées entre tous les CPU d’une même machine).
    • TMS99XX (Video) : correction des timings NTSC et ajout des timings PAL.
    • Amstrad CPC / Commodore 64 : remappage des touches fonctionnelles (maintenant accessibles via Maj + chiffre).
    • MSX 1 : support des formats TZX, TSX, CAS, WAV pour les bandes, et prise en charge des ROMs ≤ 32 Ko (mappers non encore fonctionnels).
    • Boogie Wings : correction des sprites/GFX, ajout des couleurs (mais avec des problèmes persistants), et fixation de la transparence/privilège d’affichage.
  • Ajouts de matériel et drivers :

    • MSX 1 : driver pour le Sanyo MPC-100.
    • Bubble Bobble HW : drivers pour Bubble Bobble, Tokio et Super Bobble Bobble (avec ajout de mirroir mémoire pour le premier).
    • CPS1 : drivers pour Willow, *194
Changelog complet
-General +Merged Delphi & Lazarus forms functions +Simplified general reset +Fixed language selection +DIP switches -Updated all functions; now DIP switch values are saved -Simplified DIP switch declarations -Migrated more games to the new system +Controls Engine -Fixed joystick button redefinition +Added a 5-second countdown to press a joystick button +If no input is received, the redefinition is canceled +CPU engine -Removed scanlines from CPU declarations (now shared across all CPUs in the same machine) +TAP/TZX -Added block type $4b for MSX tape format -Some small code cleaning +GFX engine -Rewrited scroll functions -Simplified scroll declarations; separate variables for each layer are no longer required -DECO sprites: removed masks +Video -TMS99XX +Added PAL timings +Fixed NTSC timings -Amstrad CPC +Remapped function keys, now are mapped using right shift + number -Commodore 64 +Remapped function keys, now are mapped using right shift + number -MSX 1 +Added driver for Sanyo MPC-100 +Support for TZX, TSX, CAS and WAV file formats for tape loading +Support 32Kb ROMs size or less (mappers don't work yet) -Bubble Bobble HW +Bubble Bobble: added memory mirroring +Tokio: Added driver +Super Bobble Bobble: Added driver -Boogie Wings +Fixed Sprites and GFXs +Added colors, but still are wrong +Fixed screen priority, missing transparency -CPS1 +Added dipswitches +Removed dedicated sprite buffer; now using the general sprite buffer +Fixed rowscroll (Fixes SF2 background) +Added stars layer +Willow: Added driver +1941 Counter Attack: Added driver +Nemo: Added driver -Popeye HW +Fixed background -Sega System 16b +Added rowscroll (fixes 'Cotton' intro and 'Dynamite Dux' hiscore intro) +Simplified 315-5195 read/write memory functions +Fixed open bus read +Bay Route: Added driver +Sonic Boom: Added driver +Time Scanner: Added driver
v0.24
  • Améliorations majeures pour les systèmes d'arcade et compatibilité matérielle :

    • Ajout de pilotes sonores complets pour plusieurs jeux Bally Midway (Discs of Tron, Tron, Timber, Satan, Domino Man, Wacko), incluant la correction des priorités de sprites pour Discs of Tron.
    • Réécriture du système son Taito (extraction des fonctions CPU/mémoire vers un périphérique dédié) et ajout d’un pilote basique pour Nastar (Taito System B).
    • Correction critique du système son SN-76496 (fonctions ready) et réécriture complète du système son Taito (compatibilité avec Teenage Mutant Ninja Turtles).
  • Corrections matérielles et CPU critiques :

    • Correction du comportement des timers en mode halt (Z80, Spectrum Z80) et fixation des opcodes problématiques (DDCB23, DDCB27, flags $37/$3F).
    • Réinitialisation système unifiée (suppression des resets partiels) pour éviter les erreurs de palette, vidéo et son (ex. : Final Starforce).
    • Correction des entrées clavier/coin (mode line-by-line au lieu de frame-by-frame), résolvant les problèmes dans Star Force et Mario Bros.
  • Stabilité et fonctionnalités générales :

    • Suppression des buffers privés (Spectrum) et passage aux buffers vidéo standard.
    • Automatisation de la sélection de langue et simplification des fonctions associées.
    • Correction des boutons play/pause, de la vitesse d’auto-fire, et du positionnement des fenêtres contextuelles (centrage).
  • Améliorations spécifiques à des systèmes :

    • Correction de la mémoire 4Mo sur Amstrad CPC (restreinte au modèle 6128) et amélioration vidéo pour Pinball Dreams! (compatibilité visuelle).
    • Ajout des DIP switches pour Vigilante et des timings vidéo/flip-screen pour Bionic Commando.
    • Fixes vidéo pour Bubble Bobble et réécriture des fonctions sprites
Changelog complet
-Lazarus +Added Close function +Fixed "follow me" window functionality, now works much better +Various fixes to enable compilation on Raspberry Pi (Raspbian OS) – now working -General +Added automatic language selection, simplified all language functions and variables +Added new general reset functions. Removed partial system resets from driver reset functions, system now resets during driver initialization. Fixes issues with palette, some video gfx errors, sound sample, etc. +Fixed pop-up window positioning – now appears centered in the main window +Numerous stability improvements +More DIP switches converted to the new system +Fixed play/pause buttons +Changed input events to work line-by-line, instead of frame-by-frame. Fixes coin input in 'Star Force' and 'Mario Bros.' +DIP switch button is now disabled if the driver has no DIP switches +Fixed auto-fire speed +Fixed 'Final Starforce' export ROM size (Thanks to Okurka) +Sound engine -Reviewed output for all sound chips, fixed amplification and output limits. Removed unusual amplification values from drivers. -Fixed sample conversion from raw, demo sound in 'Teenage Mutant Ninja Turtles' works again -SN-76496: Added ready functions -Taito Sound: Completely rewrite sound system. Removed all sound-related functions, CPUs, and memory from Taito drivers and converted them to use the dedicated device +Video -Sega VDP: Fixed change video mode +CPUs -Change CPUs halt behaviour, timer functions are now called even when the CPU is halted -Z80 +Fixed initial IRQ vector value +Fixed DDCB23 opcode -Spectrum Z80 +Fixed DDCB23 and DDCB27 opcodes +Fixed $37 and $3f opcode flags -Spectrum +Remove private buffers, now using standard video buffers -Amstrad CPC +Fixed 4Mb memory expansion +Memory expansions are only available on 6128 model +Enhanced video a bit, now 'Pinball Dreams!' works (thanks to Neville) -Bally Midway HW +Fixed sprite priorities +Discs of Tron: added driver with sound +Tron: added driver with sound +Timber: added driver with sound +Satan: added driver with sound +Domino Man: added driver with sound +Wacko: added driver with sound -Bionic Commando +Fixed not working shot/weapon buttons +Added video timings +Added flip screen -Bubble Bobble +Fixed video issues, changed video update line -Irem M62 HW +Rewrite sprite functions +Rewrite memory read/write and IO functions -Route 16 HW +Fixed sound chip creation order -Sega System 1/2 +Added sound ready functions, now 'Choplifter' speech sounds fine +Gardia: fixed roms bank function -Vigilante +Added DIP switches -Taito System B +Nastar: added basic driver +Master Weapon: added basic driver