ZxPoly
ZxPoly est un émulateur Java spécialisé dans l’exécution du ZX Spectrum 128, mais aussi du système ZX-Poly, une architecture expérimentale conçue pour exploiter quatre instances parallèles du ZX Spectrum 128 afin d’améliorer la gestion des couleurs. Ce projet, né d’une idée originale de l’émulateur Igor Maznitsa, repose sur une synchronisation avancée des CPU et des signaux pour simuler une séparation des composantes R, G, B et Y, sans modifier le firmware original.
Sur macOS, l’émulateur propose des builds natifs pour Apple Silicon (ARM64) et Intel (x64), incluant une machine virtuelle Java préconfigurée. Il prend en charge les formats de sauvegarde classiques (.SNA, .Z80) ainsi que ceux spécifiques à ZX-Poly (.ZXP), les cassettes (.TZX, .TAP) et les disquettes (.TRD). La gestion des périphériques, comme les manettes, est également intégrée. L’interface se concentre sur la compatibilité avec le mode ZX-Poly par défaut, nécessitant une activation manuelle pour le mode Spectrum 128 classique. Le projet est distribué sous licence GPLv3.
Dernière mise à jour :
Plateformes
Architecture
Mac OS X - macOS
Apple Silicon
64 bits
Téléchargement et liens
Historique des versions
v2.4.1-S
v2.4.0
-
Nouveauté majeure :
- Mise à jour de la version minimale de Java (JDK) à la 22, ce qui améliore la compatibilité avec les dernières versions de Java et réduit les risques de problèmes liés aux anciennes versions.
-
Amélioration des contrôles :
- Remplacement de JInput par Input4J pour la gestion des manettes de jeu, offrant une meilleure compatibilité et une gestion plus moderne des périphériques.
-
Fonctionnalités utilisateur :
- Sauvegarde automatique des dossiers TAP, SNAPSHOT et FLOPPY entre les redémarrages, évitant la perte de données en cas d’interruption.
-
Optimisations techniques :
- Basculé vers le garbage collector ZGC et ajustement des flags JVM pour une meilleure performance et une consommation mémoire réduite.
- Mise à jour de l’embedded JDK intégré à la version 26.0.1+10, incluant des correctifs de sécurité et des améliorations de stabilité.
-
Amélioration audio :
- Ajout d’un filtre passe-bas (Low Pass Filter) pour le son, permettant un réglage plus précis des fréquences et une meilleure qualité audio.
Changelog complet
v2.3.4
-
Amélioration majeure : mise à jour de la version minimale requise de JDK 17 → 21 (impactant la compatibilité avec les systèmes anciens, notamment macOS pré-13).
-
Correction critique : améliorations et corrections dans l’émulation du CPU Z80, avec un refactoring interne pour stabiliser les performances et la précision.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v2.3.3
-
Amélioration majeure : Meilleure gestion du chargement des snapshots Z80 pour traiter les banques de RAM 0 à 2 parmi 128 (correction potentielle de problèmes de compatibilité avec certains fichiers sauvegardés).
-
Mise à jour technique : Passage de la version intégrée de JDK à la 21.0.1+12 (impact indirect sur la stabilité et les performances, notamment pour les environnements Java dépendants).
Changelog complet
v2.3.2
-
Nouveauté majeure :
- Ajout d’une option pour réduire la consommation CPU en mode non-turbo via "Try use less resources" (réponse à une demande utilisateur).
-
Améliorations techniques :
- Mise à jour de la version embarquée de JDK (passage à la version 20+37).
- Légères optimisations de l’émulation Z80.
-
Fonctionnalités visuelles/expérience utilisateur :
- Support de la palette Ula Plus pour l’enregistrement d’animations en GIF.
-
Correction critique :
- Résolution d’un bug où le panneau d’indicateurs de restauration ne s’affichait pas correctement après un redémarrage (#86).
Changelog complet
v2.3.1
-
Nouveautés majeures :
- Ajout du support pour la palette ULA Plus (amélioration visuelle des couleurs pour les machines ZX Spectrum).
- Ajout du support des snapshots SZX (format de sauvegarde compatible avec d'autres émulateurs Spectrum).
-
Corrections importantes :
- Correction du clavier virtuel (fonctionnalité des boutons et réactivité).
- Correction du mappage du clavier (compatibilité avec les layouts locaux).
- Synchronisation corrigée entre l’option Turbo dans le menu et le bouton dédié.
-
Améliorations utilisateur :
- Ajout d’un style "Spectrum+2" pour le clavier virtuel (interface visuelle alternative).
- Prise en charge des paramètres de démarrage via ligne de commande (CLI).
Changelog complet
v2.3.0
-
Amélioration majeure de l’émulation Z80 : prise en charge correcte des drapeaux non documentés lors des interruptions pendant les opérations de bloc, basée sur des tests validés par la communauté (ZXSpectrumNextTests).
-
Nouveautés fonctionnelles :
- Ajout d’un clavier virtuel personnalisable (skins).
- Intégration d’un enregistreur audio WAV pour capturer le son.
- Lecture améliorée des fichiers TAP (format Spectrum) avec gestion des blocs de taille nulle.
-
Gestion des disques :
- Option "Créer un disque vide" dans le menu Fichier.
- Formatage automatique des disques TRD nouvellement créés.
-
Mise à jour technique :
- Passage à Liberica OpenJDK 17.0.3+7 pour l’exécution interne (pas d’impact direct sur l’utilisateur final).
Changelog complet
v2.2.3
-
Nouveautés majeures :
- Ajout de l’émulation de la touche MAGIC (utilisée sur certains claviers ZX Spectrum pour des fonctions spéciales).
- Support des snapshots : possibilité de charger des images ROM au format snapshot (utile pour la sauvegarde/réinitialisation de l’état de l’émulation).
-
Améliorations techniques :
- Refactorisation de l’instruction RETI du processeur Z80 (correction potentielle de comportements erronés).
- Ajout de boutons de raccourci configurables pour un accès rapide aux fonctions fréquentes.
-
Corrections et optimisations :
- Correction d’un problème lié à la peau de clavier ZXPlus (compatibilité visuelle et fonctionnelle).
- Ajout de peaux de clavier supplémentaires (Timex2048Pal) et amélioration de la sélection des ROM de démarrage dans les préférences.
Note : Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.
Changelog complet
v2.2.2
-
Nouveautés majeures :
- Ajout d’un sélecteur de profil de volume audio pour personnaliser les niveaux sonores.
- Intégration du support des snapshots de cassettes TZX (format standard des tapes ZX Spectrum).
- Ajout de skins de clavier personnalisés (contribués par @Alessandro1970).
-
Améliorations techniques :
- Correction partielle de l’enregistrement des snapshots Spec256 (fonctionne uniquement pour les snapshots déjà chargés).
- Réduction de la consommation CPU pour un meilleur rendement.
-
Mise à jour logicielle :
- Mise à jour de l’embarqué JDK vers Liberica OpenJDK 17+35 (compatible avec les dernières normes Java).
- JDK minimum requis passé à la version 11+ (au lieu de 8 ou 10 précédemment).
Changelog complet
v2.2.1
-
Nouveautés majeures :
- Ajout du support natif pour la sortie vidéo entrelacée (activé par défaut).
- Activation par défaut du filtre Old Color TV (désactivable dans les préférences).
-
Améliorations techniques :
- Réglages du rendu des bords pour une meilleure qualité visuelle.
- Intégration du son stéréo pour les canaux AY (configuration par défaut : ABC, option ACB disponible).
-
Mises à jour logicielles :
- Mise à jour de l’embedded JDK vers Liberica OpenJDK 16.0.2+7.
Changelog complet
v2.2.0
-
Amélioration majeure de l'émulation des disquettes (FDD) :
- Meilleure gestion des index marks pour les disquettes.
- Correction de l'émulation du contrôleur de disquettes pour le type Command Type I (liée à une issue résolue).
-
Correction critique du processeur Z80 :
- Fix de l'émulation du Z80 (liée à une issue résolue).
-
Intégration et optimisations internes :
- Le sprite corrector est désormais intégré directement dans l'émulateur.
- Refactorisation du code (sans impact visible sur les fonctionnalités).
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v2.1.3
-
Nouveautés majeures :
- Ajout du support WebSocket pour le streaming et de la réinitialisation automatique du son après désactivation du mode turbo.
- Intégration d’un filtre Old TV Amber/Green pour l’affichage et d’un clavier virtuel ZX personnalisable (skins, activation/désactivation par touche F5, clics fonctionnels).
-
Améliorations techniques :
- Correction de la lecture des échantillons dans les fichiers WAV en 8 bits non signés.
- Optimisation du traitement des ticks INT et réécriture du redimensionnement de l’interface pour plus de fluidité.
-
Fonctionnalités utilisateur :
- Possibilité de définir un chemin personnalisé pour les ROMs et de configurer le joystick Protek (mode "ZX-Keyboard désactivé" via F6 ou option menu).
- Ajout de la glisse-dépose pour les snapshots et conteneurs de fichiers dans l’interface principale.
- Réaffectation des touches du joystick Kempston dans les préférences.
-
Spécifique macOS :
- Build officiel pour Apple Silicon (ARM64, macOS) publié (avec une note sur la possible non-compatibilité des manettes de jeu).
- Mise à jour de Liberica OpenJDK embarqué vers la version 15.0.2+10.
Changelog complet
v2.1.2
-
Ajout du support des flags
GFXLeveledAND,GFXLeveledORetGFXLeveledXORdans la configuration Spec256, améliorant la compatibilité avec certains jeux ou applications nécessitant des manipulations de bits avancées. -
Intégration d’un mode plein écran via l’option
View -> Full Screen, simplifiant l’expérience utilisateur pour les sessions prolongées. -
Ajout d’un filtre vidéo noir et blanc, utile pour les utilisateurs souhaitant tester des jeux ou des fonctionnalités en mode monochrome.
-
Mise à jour des dépendances (bibliothèques sous-jacentes), garantissant une meilleure stabilité et des performances optimisées.
Changelog complet
v2.1.1
-
Ajout du support pour la lecture de fichiers WAV via l’interface TAPE, permettant une meilleure compatibilité avec les sauvegardes sonores des jeux.
-
Correction des problèmes liés au chargement des ROM en mode Spec256, améliorant la stabilité de l’émulation pour les configurations spécifiques.
-
Amélioration de l’émulation du processeur Z80, avec des optimisations internes (refactoring) pour une meilleure performance et précision.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v2.1.0
-
Nouveautés majeures :
- Ajout du support complet pour le TurboSound (version NedoPC), améliorant la compatibilité des périphériques audio avancés.
- Amélioration majeure de l’émulation du Z80 et du décodage du port
#7FFDen mode ZX, augmentant la compatibilité logicielle.
-
Corrections et optimisations techniques :
- Augmentation de la fréquence de base du synthétiseur audio à 48 kHz pour une meilleure qualité sonore.
- Refactorisation interne du code, notamment avec une mise à jour de GraalVM vers la version 20.2.0.
- Amélioration du décodage des ports AY8910 et de l’émulation du chip audio, réduisant les artefacts sonores.
-
Fonctionnalités utilisateur et préférences :
- Ajout d’une option dans les préférences pour activer/désactiver la souris Kempston par défaut.
- Possibilité de définir un mode ZX128 par défaut au démarrage via les préférences.
- Support de chargement d’un fichier
bootstrap.romlocal (placé dans le dossier de l’émulateur) pour une initialisation personnalisée.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v2.0.7
-
Ajout du support pour le synthétiseur AY-3-8910, améliorant la compatibilité audio avec les périphériques ZX Spectrum compatibles.
-
Intégration de filtres vidéo (optionnels), permettant une amélioration visuelle de l'affichage (ex. : netteté, colorimétrie).
-
Prise en charge du périphérique Covox via le port
#FB, utile pour les utilisateurs de cartes son compatibles. -
Ajout de menus explicites pour ajuster l'échelle d'affichage, facilitant la configuration de la résolution.
-
Correction de bugs mineurs et refactorisation du code pour une meilleure stabilité.
Changelog complet
v2.0.6
-
Nouveautés majeures :
- Ajout du support des trainers POK pour l'émulation Spec256.
- Intégration d’un dialogue pour sélectionner le périphérique audio (beeper) en cas de détection multiple de dispositifs.
-
Améliorations techniques :
- Export des containers Spec256 vers un éditeur (fonctionnalité dédiée).
- Mise à jour de GraalVM CE (version 20.1.0).
- Ajout d’un support expérimental pour le streaming MPEG TS (nécessite FFmpeg installé).
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v2.0.5
-
Amélioration majeure :
- Meilleure gestion du beeper (module sonore) pour une reproduction fidèle des sons TAP (fichiers de sauvegarde ZX Spectrum).
-
Correction technique sous-jacente :
- Mise à jour du JDK intégré vers GraalVM CE 20.0.0 (pour une stabilité accrue).
-
Nouveauté fonctionnelle :
- Ajout du support pour les manettes et joysticks via la bibliothèque JInput (compatibilité étendue aux périphériques USB).
Changelog complet
v2.0.4
-
Nouveauté majeure :
- Ajout du support du beeper (bip sonore), désactivé par défaut pour éviter les perturbations.
-
Améliorations fonctionnelles :
- Intégration de nouvelles sources de ROM pour élargir les options de jeux et systèmes disponibles.
-
Corrections critiques :
- Résolution d’un problème de chargement des ROM depuis Windows on Steam (WoS), améliorant la compatibilité avec les environnements virtuels.
-
Optimisation technique :
- Amélioration de la synchronisation CPU pour le mode Spec256, réduisant potentiellement les décalages ou instabilités dans les jeux exigeants.
Changelog complet
v2.0.3
-
Ajout d’un mélange de couleurs avec les attributs de couleur en mode Spec256 (amélioration graphique pour une meilleure compatibilité avec les jeux utilisant ce mode avancé).
-
Correction d’une valeur par défaut incorrecte du flag BackOverFF lors du chargement en mode Spec256 (évite des problèmes visuels liés à l’affichage des sprites).