DSP-Emulator
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
Architecture
Mac OS X - macOS
64 bits
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
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
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
v0.23
-
Améliorations majeures de l’émulation et du moteur graphique :
- Ajout d’un reset vidéo général et suppression des masques de numéros graphiques (simplification des appels pour les pilotes).
- Réécriture complète du plein écran : mise à l’échelle automatique de l’affichage, masquage du curseur (sauf pour les jeux compatibles comme Spectrum Mouse ou Operation Wolf).
- Nouveau système de DIP switches : refonte de la structure de données pour une maintenance et une extensibilité facilitées (migration en cours).
- Moteur sonore :
- Ajout du chip YM2413 et corrections d’amplification pour YM2203 et OKI6295.
- MSM5232 implémenté (mais en développement, son trop rapide).
- SN76496 : correction des sauvegardes.
- MSM5205 : refonte complète des fonctions de lecture ADPCM (variables et ROMs internalisées).
-
Corrections critiques sur CPU et périphériques :
- M68000 : correction des opcodes
divs(résout Space Harrier) et des exceptions de privilège. - M6502 : correction de l’opcode
brk(fixe Oric’s SkoolDaze et d’autres jeux). - MCS51 : ajout des types 8X52/CMOS, correction des timers, IRQ, calcul de parité et opcodes.
- Z80 : refonte des callbacks IRQ (M0/M2) et du daisy-chain, ajout de fonctions pour le WZ.
- TAP/TZX : correction des blocs $10/$11/$14 et support des fichiers T64.
- M68000 : correction des opcodes
-
Fonctionnalités spécifiques aux plateformes (pas de ciblage macOS explicite) :
- Aucune mention de builds
.dmg, d’Apple Silicon (M1/M2/M3), ou de macOS minimum dans ce changelog.
- Aucune mention de builds
Changelog complet
v0.22
-
Nouveautés majeures :
- Système de sauvegarde/lecture unifié pour les ROMs, jeux, snapshots et cassettes, avec un nouvel extracteur de données de snapshot.
- Documentation complète ajoutée (guide pour débutants et instructions de compilation).
- Système de snapshot étendu pour de nombreux CPU (LR35902, NA2A03, UPD7810, Sega VDP, etc.) et périphériques (Eeprom, I2Cmem, Namco IO).
-
Corrections critiques :
- Timings CPU corrigés pour le M6502 (avant appels de timers internes) et le Z80 (calculs et procédures internes).
- Fix des opcodes manquants pour le NEC V20/V30/V33 (plus de 30 opcodes implémentés ou corrigés).
- Problèmes de son résolus pour le MSM5205 (conversion en classe) et l’OKI6295 (lecture des voix).
- Corrections matérielles pour le MCS48 (IRQ, ROM reads, opcodes critiques comme
$80,$E3), le NA2A03 (audio buffer, DPCM) et le Seibu sound (intégration interne du Z80 et ADPCM).
-
Améliorations spécifiques macOS :
- Compatibilité Apple Silicon (M1/M2/M3) : pas de mention explicite de builds dédiés ou d’optimisations dans ce changelog.
- Système de snapshot et ROM unifié : intégré à toutes les plateformes (incluant macOS via les builds
.dmgstandard, sans précision supplémentaire). - Pas de correction ou d’optimisation Mac ciblée dans cette version (ex : support de macOS minimum, fixes pour le GPU Metal, etc.).
-
Fonctionnalités ciblées par système :
- Amstrad CPC : Z80 timings activés (fixe Saboteur II), lecture de cassette corrigée, et lecture de la matrice clavier (Night Shade).
- **
Changelog complet
v0.21
-
Améliorations majeures pour les systèmes d'arcade et consoles :
- Ajout de pilotes complets (son inclus) pour Ambush, Arkanoid, China Gate, Hang-On (incl. Enduro Racer et Space Harrier), Kyugo (S.R.D. Mission et AirWolf), Mag Max, MCR (Tapper), Nemesis (correction du screen flip pour TwinBee), et Sega System 16A/B (corrections critiques de transparence, priorité des sprites/tiles, et décodage graphique pour Alien Syndrome et Wonder Boy III).
- Mise à jour des ROMs pour Gauntlet II (v2) et Rod Land (ajout de décryptage graphique).
- Correction des bugs matériels critiques sur Mega System 1 (graphismes, sprites, défilement) et CPS1 (ajout de 3 boutons joueurs pour Street Fighter II).
-
Corrections CPU/émulation ciblées :
- M68000 : Correction de 20 opcodes (ex.
addi.l,sbcd.rr) + amélioration des timings et gestion des flags read/write. - Konami CPU : Ajout de 7 opcodes manquants (fixe The Simpsons jusqu’à la fin) + correction de 10 opcodes existants.
- HD6309/M6809 : Corrections d’opcodes critiques ($2c-$2f, $01, $29) et ajout de fonctionnalités manquantes.
- MCS51 : Ajout de 9 opcodes ($38..$3f, $62-$64, $b1) + correction d’un bug external I/O.
- M68000 : Correction de 20 opcodes (ex.
-
Améliorations audio :
- Passer en stéréo native pour les chips SEGA PCM, SN76496, VLM5030, et YM2203.
- Gain ajustable par canal pour l’AY8910 + correction du port B
Changelog complet
v0.20
-
Améliorations CPU majeures :
- Ajout complet des opcodes manquants et corrections pour les CPU UPD78XX (incluant le sous-CPU 7801 et les tables de timing des opcodes UPD7801), avec résolution des problèmes d’IRQ et de ports de sortie.
- Intégration du M65CE02 (variante du M6502) et ajout d’opcodes spécifiques ; correction des opcodes critiques pour le MCS48 (incluant l’I8042) et le M6800 (fixes des flags RTI, opcodes LSR/ROR, etc.).
- Prise en charge du HD63701Y0 et optimisation des registres internes pour le M6800.
-
Corrections critiques pour les systèmes emblématiques :
- Game Boy/Game Boy Color : résolution définitive des priorités d’affichage (arrière-plan, fenêtres, sprites), des bugs de ligne de fenêtre (ex. Star Trek), et des couleurs du mode Color (ex. Yoda Stories).
- Sega Master System : correction des IRQ en mode vidéo (ex. Nemesis) et initialisation mémoire à
$F0(ex. Alibaba). - Amstrad CPC : réécriture de l’émulation CRT, ajout d’un mode vert et de la luminosité, et support initial du Dandanator.
-
Nouveautés matérielles et périphériques :
- Émulation complète de la Super Cassette Vision (vidéo, son, entrées/sorties, banking ROM).
- Ajout du périphérique Seta Sprites et du son pour la Seta X1-010.
- Support des snapshots VSF pour le Commodore 64 et snapshots rapides pour la Sega System 1/2.
-
Optimisations et compatibilité :
- Mise à jour de la bibliothèque SDL à la version 2.0.22 et simplification de l’initialisation des pilotes.
- Corrections graphiques pour le Deco BAC06