mGBA 0.8.0

Après de longs mois de beta-testing, Jeffrey Pfau publie la version 0.8.0 finale dite « stable » de son excellent émulateur Gameboy/Gameboy Advance « mGBA ». Le changelog, long comme le bras, recèle de jolies avancées, mises en lumière par le développeur. On notera principalement :

  • le rendu OpenGL Haute résolution (*). Attendu de longue date, cela permet de traiter les graphismes via le GPU plutôt que le CPU, autorisant ainsi un upscaling jusqu’à la 4K (en fonction de la puissance de la carte)
  • l’émulation du « Battlechip gate », un périphérique utilisé par Megaman Battle Network 4 à 6 pour débloquer des mini-jeux
  • l’arrivée de l’interframe blending, autorisant des effets de transparence plus propres, sans scintillement et/ou clignotement (l’effet était gommé sur le hardware original, du fait d’écrans de faible qualité et à haute rémanence)
  • la fonction « Frame Inspector » qui ravira les bidouilleurs en herbe en autorisant d’isoler des éléments graphiques

(*) Activé uniquement sur les plate-formes suffisamment puissantes, à savoir Windows, Linux, MacOS et la Switch.

↓ Nouveautés / Corrections (cliquer pour voir) ↓

Features

  • Improved logging configuration
  • One-Player BattleChip/Progress/Beast Link Gate support
  • Add Game Boy Color palettes for original Game Boy games
  • Debugger: Add unary operators and memory dereferencing
  • GB: Expose platform information to CLI debugger
  • Support Discord Rich Presence
  • Debugger: Add tracing to file
  • Enhanced map viewer, supporting bitmapped GBA modes and more displayed info
  • OpenGL renderer with high-resolution upscaling support
  • Experimental high level “XQ” audio for most GBA games
  • Interframe blending for games that use flicker effects
  • Frame inspector for dissecting and debugging rendering
  • Switch: Option to use built-in brightness sensor for Boktai
  • Ports: Ability to enable or disable all SGB features (closes #1205)
  • Ports: Ability to crop SGB borders off screen (closes #1204)
  • Cheats: Add support for loading Libretro-style cht files
  • GBA Cheats: Add support for loading EZ Flash-style cht files
  • Support for unlicensed Wisdom Tree Game Boy mapper
  • Qt: Add export button for tile view (closes #1507)
  • Qt: Add recent game list clearing (closes #1380)
  • GB: Yanking gamepak now supported
  • Qt: Memory range dumping (closes #1298)

Emulation fixes

  • GB: Fix using boot ROM with MMM01 games
  • GB Audio: Only reset channel 3 sample in DMG mode
  • GB Audio: Sample inactive channels (fixes #1455, mgba.io/i/1456)
  • GB Audio: Fix channel 4 volume (fixes #1529)
  • GB I/O: Filter IE top bits properly (fixes #1329)
  • GB Memory: Better emulate 0xFEA0 region on DMG, MGB and AGB
  • GB Video: Delay LYC STAT check (fixes #1331)
  • GB Video: Fix window being enabled mid-scanline (fixes #1328)
  • GB Video: Fix mode 0 window edge case (fixes #1519)
  • GB Video: Fix color scaling in AGB mode
  • GBA: All IRQs have 7 cycle delay (fixes #539, mgba.io/i/1208)
  • GBA: Reset now reloads multiboot ROMs
  • GBA BIOS: Fix multiboot entry point (fixes Magic Floor)

Other fixes

  • Core: Improved lockstep driver reliability (Le Hoang Quyen)
  • FFmpeg: Drain recording buffers
  • GB: Fix reading ROM immediately after unmapping BIOS
  • GB SIO: Fix lockstep failing games aren’t reloaded
  • GBA Cheats: Fix value incrementing in CB slide codes (fixes #1501)
  • Libretro: Fix crash changing allowing opposing directions (hhromic)
  • Qt: Fix some Qt display driver race conditions
  • Qt: Fix menu bar staying hidden in full screen (fixes #317)
  • Qt: Only show emulator restart warning once per settings saving
  • Qt: Fix LibraryController initialization (fixes #1324)
  • Shaders: Fix gba-color shader resolution (fixes #1435)
  • Switch: Fix audio when video rate desyncs (fixes #1532)

Miscellaneous

  • CMake: Don’t use libzip on embedded platforms (fixes #1527)
  • Core: Add keysRead callback
  • Core: Create game-related paths if they don’t exist (fixes #1446)
  • Core: Add more memory search ops (closes #1510)
  • Debugger: Make tracing compatible with breakpoints/watchpoints
  • Debugger: Print breakpoint/watchpoint number when inserting
  • Feature: Switch from ImageMagick to FFmpeg for GIF generation
  • FFmpeg: Support audio-only recording
  • GB Memory: Support running from blocked memory
  • GBA BIOS: Add timings for HLE BIOS math functions (fixes #1396)
  • GBA BIOS: Fix clobbered registers in CpuSet (fixes #1531)
  • GBA Savedata: EEPROM performance fixes
  • GBA Savedata: Automatically map 1Mbit Flash files as 1Mbit Flash
  • Debugger: Add breakpoint and watchpoint listing
  • mGUI: Remember name and position of last loaded game
  • OpenGL: Only resize textures when needed
  • Qt: Don’t unload ROM immediately if it crashes
  • Qt: Support switching webcams
  • Qt: Cap window size on start to monitor size
  • Qt: Open a message box for Qt frontend errors
  • Qt: Increase maximum magnifications and scaling
  • Qt: Add native FPS button to settings view
  • Qt: Improve sync code
  • Qt: Add option to pause on minimizing window (closes #1379)
  • Qt: Scale pixel color values to full range (fixes #1511)
  • Qt: Remove What’s This icon from dialogs
  • Qt: Printer quality of life improvements (fixes #1540)
  • Qt: Add copy and QoL improvements to graphic views (closes #1541)
  • Qt: Show list of all sprites in sprite view
  • Qt: Add option for disabling OSD messages
  • Qt, OpenGL: Disable integer scaling for dimensions that don’t fit
  • SM83: Support PC-relative opcode decoding
  • Switch: Dynamic display resizing
  • Switch: Support file associations
  • Vita: L2/R2 and L3/R3 can now be mapped on PSTV (fixes #1292)

Changes from 0.8 beta 1

Emulation fixes

  • ARM: Fix STR writeback pipeline stage
  • ARM: Partially fix LDM/STM writeback with empty register list
  • ARM: Fix stepping when events are pending
  • GBA DMA: Fix case where DMAs could get misaligned (fixes #1092)
  • GBA Memory: Fix open bus from IWRAM (fixes #1575)
  • GBA Timers: Improve timer startup emulation
  • GBA Video: Fix OpenGL renderer 512×512 backgrounds (fixes #1572)
  • GBA Video: Fix BLDY for semitransparent sprite on non-target-2 backgrounds
  • GBA Video: Fix effects blending improperly in some non-last windows
  • GBA Video: Copy higher priority target 1 flag

Other fixes

  • 3DS: Fix screen darkening (fixes #1562)
  • Core: Fix uninitialized memory issues with graphics caches
  • Core: Return null for out of bounds cached tile VRAM querying
  • GBA Video: Fix OpenGL fragment data binding
  • GBA Video: Fix mosaic in modes 1-5 in OpenGL (fixes #1620)
  • Debugger: Fix tracing skipping instructions (fixes #1614)
  • OpenGL: Only invalidate texture if dimensions change (fixes #1612)
  • Qt: Fix fast forward mute being reset (fixes #1574)
  • Qt: Fix scrollbar arrows in memory view (fixes #1558)
  • Qt: Fix several cases where shader selections don’t get saved
  • Qt: Fix division by zero error in invalid TilePainter state
  • Qt: Fix “restart needed” dialog after first config (fixes #1601)
  • Qt: Fix undesired screen filtering when paused (fixes #1602)
  • Qt: Fix sprite view using wrong base address (fixes #1603)
  • Qt: Fix inability to clear default keybindings
  • Qt: Release held actions if they get rebound
  • Qt: Fix crash double-clicking menus in shortcut settings (fixes #1627)
  • Qt: Fix record A/V window not updating resolution (fixes #1626)
  • Vita: Fix analog controls (fixes #1554)
  • Wii: Fix game fast-forwarding after slowing down
  • Wii: Improve audio buffering (fixes #1617)

Miscellaneous

  • GB Memory: Support manual SRAM editing (fixes #1580)
  • GBA: Trim non-movie ROMs to 32 MiB if applicable
  • GBA Audio: Redo channel 4 batching for GBA only
  • GBA I/O: Stop logging several harmless invalid register reads
  • GBA Video: Changing OpenGL scaling no longer requires restart
  • Debugger: Separate aliases from main commands
  • Debugger: Print break-/watchpoint ID when breaking in CLI
  • Debugger: Minor interface cleanup
  • SDL: Use controller GUID instead of name
  • SM83: Rename LR35902 to SM83
  • Tools: Allow using threaded renderer in perf.py
  • Tools: Clean up unused argument in mgba-perf

 

 

 

 

Github | Site officiel