NanoBoyAdvance

Émulateur v1.8.1

NanoBoyAdvance est un émulateur open source dédié à la Game Boy Advance (GBA), développé en C++ avec une approche cycle-accurate pour garantir une fidélité maximale. Il cible les joueurs exigeants grâce à des fonctionnalités avancées comme une qualité audio améliorée (support du moteur MusicPlayer2000), des options de post-traitement (correction des couleurs, upscaling xBRZ, simulation de ghosting LCD), et un système de sauvegarde d’état avec 10 slots.

Sur macOS, il fonctionne via SDL2 et est compatible avec les versions récentes (à partir de macOS 10.15). L’émulateur propose aussi des outils de débogage (visualisation des palettes, tuiles, arrière-plans et sprites) et une émulation précise des composants matériels (CPU, DMA, timers, PPU), validée par des tests rigoureux (AGS, mGBA, ARMWrestler). La configuration nécessite CMake, SDL3 et Qt6, disponibles via Homebrew sur macOS.

Dernière mise à jour :

Plateformes

Architecture

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

Téléchargement et liens

Historique des versions

v1.8.3
  • Mise à jour majeure de l’infrastructure :

    • Passage complet à Qt 6 (impactant potentiellement les performances et la stabilité, avec un avertissement de sauvegarde des fichiers avant mise à jour).
  • Améliorations techniques :

    • Ajout de modes de fast-forward (2x, 4x, 8x) et option d’infinite speed pour le jeu en accéléré.
  • Corrections critiques sur macOS :

    • Résolution d’un lag des contrôles (manettes/joysticks) sous macOS.
  • Suppression de supports obsolètes :

    • Désactivation des builds macOS Intel (seuls les builds Apple Silicon sont maintenus).
  • Mise à jour des dépendances et nettoyage du dépôt (suppression de liens cassés et documentation redirigée).

Changelog complet
This is a patch release updating NanoBoyAdvance to Qt 6. #### Please backup your save files before updating to be safe. # Changelog - Core: Improved fast-forwarding, adding 2x, 4x and 8x options alongside infinite - UI: Set default filter to nearest - Platform: Upgrade to Qt 6 - Platform: Fix controller lag on macOS - CI: Pivot Windows builds to MSVC, remove macOS Intel builds - Remove broken links from README, remove COMPILING and move its instructions to README - Update dependencies
v1.8.2
  • Nouveauté majeure :

    • Implémentation du shader LCD1x pour une meilleure gestion des effets d'affichage (crédits à @DestinyXZ9).
  • Améliorations techniques (CPU/ARM) :

    • Correction d’un conflit logique dans la gestion des instructions LDM en mode utilisateur (bus conflict).
    • Fix des accès hors limites lors du basculement entre modes CPU invalides (ex. : transitions invalides).
    • Optimisations des lectures des GPR (registres généraux) et du SPSR (Saved Program Status Register).
    • Optimisation des opérations arithmétiques LSL, LSR, ASR, ROR (décalages et rotations).
    • Implémentation de l’algorithme de multiplication avec retenue pour le CPU ARM (crédits à @zaydlang et @calc84maniac).
  • Corrections DMA/PPU :

    • Autorisation des ticks CPU internes pendant les cycles de transition CPUDMA (améliore la synchronisation).
    • Réinitialisation correcte du compteur de mosaïque OBJ Y dans le PPU (crédits à @j-mattsson).

(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)

Changelog complet
**Please backup your save files before updating to be safe.** # Changelog - UI: implement LCD1x shader (thanks @DestinyXZ9) - ARM: implement multiplication carry algorithm (thanks @zaydlang, @calc84maniac) - ARM: fix LDM^ bus conflict logic breaks in user mode - ARM: fix out-of-bounds accesses when switching in or out of an invalid CPU mode - ARM: optimize GPR and SPSR reads - ARM: optimize LSL, LSR, ASR and ROR arithmetic - DMA: allow CPU internal ticks during CPUDMA transition cycles - PPU: correctly reset OBJ mosaic Y counter (thanks @j-mattsson)
v1.8.1
  • Correction majeure : Fix de la désérialisation corrompue des directions de ports GPIO (problème récurrent pouvant impacter certains jeux).

  • Correction critique : Prise en charge corrigée des adresses d’informations de vague corrompues dans le MP2K HLE (APU), évitant des plantages ou comportements erratiques.

  • Amélioration UI : Ajout d’une option pour suspendre l’émulateur quand la fenêtre est inactive (utile pour économiser la batterie ou éviter les surchauffes).

  • Correction APU : Remappage obligatoire des volumes PSG (gauche/droite) de la plage 0-7 vers 1-8 (comportement conforme aux spécifications matérielles).

  • Base de données : Ajout de la détection du capteur solaire pour les sorties japonaises de Boktai (correction de métadonnées manquantes).

  • UI : Réponse améliorée aux changements d’entrée dans le visualiseur de sprites quand l’émulateur est en pause.

Changelog complet
**Please backup your save files before updating to be safe.** # Changelog - UI: implement an option to pause the emulator when the window is inactive - UI: improve lack of response to input changes in the sprite viewer when the emulator is paused - UI: replace QOpenGLWidget with QWidget (thanks @GranMinigun) - UI: fix solar sensor level menu that has been broken in 1.8.0 (fixes #370) - GPIO: fix broken deserialization of port directions - APU: MP2K HLE: handle corrupted wave info addresses (fixes #362) - APU: PSG L/R volume must be remapped from 0-7 to 1-8 - GameDB: Japanese Boktai releases have a solar sensor (thanks @raphaelr) - Redirect stdout on Windows (thanks @GranMinigun)

Captures d'écran

Street Fighter dans NanoBoyAdvance