gbrs

Émulateur v0.6

gbrs est un émulateur Game Boy écrit en Rust, conçu pour reproduire fidèlement le matériel original. Il prend en charge des fonctionnalités avancées comme les effets de balayage entre les trames (nécessaires pour des jeux comme Road Rash), le support des MBC1, MBC2 et MBC3 (pour les cartouches avancées), ainsi que des quirks matériels comme l’interruption LCD Stat ou le compteur interne de la Window. La sauvegarde des jeux et la gestion du son sont également implémentées.

Bien que le projet soit encore en développement et distribué uniquement sous forme de code source, il propose des ports pour plusieurs backends graphiques, dont SDL et SFML. Bien que non officiellement optimisé pour macOS, son architecture modulaire permet une compilation sur Apple Silicon et les versions récentes du système. Les utilisateurs expérimentés pourront l’assembler via Cargo, en adaptant les dépendances selon leur environnement.

Dernière mise à jour :

Plateformes

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.6
  • Amélioration majeure de l'émulation LCD : Correction des erreurs de timing des cycles CPU et implémentation de l'instruction HALT, permettant enfin un fonctionnement correct de Pokémon Red et Blue (objectif principal atteint). Résolution d’un bug ancien affectant Dr. Mario.

  • Nouveau support matériel : Ajout du Memory Board Controller 3, élargissant la compatibilité aux jeux listés (ex. : WarioLand 2).

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

Changelog complet
This release improves LCD emulation accuracy, fixes some CPU cycle timing mistakes, and implements the CPU HALT instruction. This combination finally fixes Pokémon Red/Blue! That's a major goal of the project ticked off. The LCD fixes have also fixed a long-running issue with Dr Mario, which now works just fine! It implements support for Memory Board Controller 3, allowing us to run: Pokémon Red Pokémon Blue WarioLand 2
v0.5
  • Nouveauté majeure : Ajout du support pour le Memory Board Controller 2, permettant l'exécution de jeux nécessitant cette carte (ex. Kirby's Pinball Adventure, Ayakashi no Shiro, Final Fantasy Legend II).

  • Correction majeure : Résolution d’un bug récurrent provoquant des lignes de balayage corrompues dans les sprites en double hauteur, améliorant la lisibilité visuelle (ex. Donkey Kong).

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

Changelog complet
This release fixes a long-running bug where corrupted scanlines would appear in double-height sprites. It fixes visual issues in Donkey Kong, among others. It also implements support for Memory Board Controller 2, allowing us to run: - Kirby's Pinball Adventure - Ayakashi no Shiro - F-1 Race - Golf - Final Fantasy Legend - Top Ranking Tennis
v0.4
  • Réorganisation architecturale majeure : séparation du code de l'interface graphique (GUI) et du cœur d'émulation en deux crates distinctes (gbrs-sfml-gui pour l'interface et gbrs-core pour l'émulation), améliorant la modularité et la portabilité.

  • Compatibilité étendue : mise à jour de gbrs-core pour supporter la compilation avec #![no_std], permettant une exécution sur des systèmes embarqués ou bare-metal (ex. : futur portage sur Playdate).

(Aucune modification spécifique à macOS ou Apple Silicon dans cette version.)

Changelog complet
This version does not implement any new Gameboy compatibility, however, it does make some important changes to the Rust codebase. First of all, the GUI code for Windows/macOS/Linux (`gbrs-sfml-gui`) has been separated from Gameboy emulation code (`gbrs-core`) - splitting the project into two crates. Second, `gbrs-core` has been updated to support compiling with `#![no_std]`. This allows us to port the core Gameboy emulation code to vastly more systems by running on bare metal. The main reason this change has been made is to support an upcoming project for porting `gbrs` to [Playdate](https://play.date).

Captures d'écran

Tetris dans gars (Game Boy)