libretro / libretro/RetroArch

Crash when opening Achievements menu for melonDS DS games with at least one achievement not unlocked

Open
#18,531 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Is there an existing issue for this?
  • This is a bug in RetroArch frontend
  • I have searched the existing issues
Description

When opening the achievement page for games that have at least one achievement not unlocked on melonDS DS, it crashes.

What I've tested (green is OK, red is crash):

🔴 [melonDS DS] Yu-Gi-Oh! 5D's World Championship 2011: Over the Nexus - 89/92 achievements
🔴 [melonDS DS] Pokemon Platinum Version - 1/101 achievements
🟢 [melonDS DS] Mega Man ZX - 85/85 achievements

🟢 [mGBA] Metroid Zero Mission - 85/85 achievements
🟢 [mGBA] Wario Land 4 - 43/65 achievements

These crashes are 100% consistent in my testing.

Expected behavior

I expect the achievements page to open and not crash.

Steps to reproduce the bug
  1. Connect a RetroAchievements account.
  2. Open a DS game in melonDS DS that you haven't mastered (e.g. at least one achievement has not been unlocked).
  3. Open the menu and go to Achievements.
  4. RetroArch crashes.
Version/Commit

Nightly from 2025-12-19.

Bisect Results

No response

Present in the nightly version

Yes, this is reproduced in the nightly build

Platform & operating system

Win11, Surface Pro 8

Affected Cores

Seemingly only melonDS DS.

Environment information

Just running normal Windows 11. Installed through an executable downloaded through the website.

Relevant log output
[INFO] RetroArch 1.22.2 (Git cdf69e7)
[INFO] === Build =======================================
[INFO] CPU Model Name: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 
[INFO] Version: 1.22.2
[INFO] Git: cdf69e7
[INFO] Built: Dec 19 2025
[INFO] =================================================
[INFO] [Input] Found input driver: "sdl2".
[INFO] [Environ] SET_PIXEL_FORMAT: RGB565.
[INFO] [Core] Version of libretro API: 1, Compiled against API: 1
[INFO] [Core] Geometry: 320x240, Aspect: 1.333, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Video] Set video size to: 960x720.
[WARN] [SDL] Couldn't open haptic device of the joypad #0: Haptic: There are 0 haptic devices available.
[INFO] [SDL] Falling back to joystick rumble.
[INFO] [Input] Found joypad driver: "sdl2".
[INFO] [D3D12] Found GPU at index 0: "Intel(R) Iris(R) Xe Graphics".
[INFO] [D3D12] Found GPU at index 1: "Microsoft Basic Render Driver".
[INFO] [D3D12] Using GPU index 0.
[INFO] [Autoconf] PS5 Controller (DualSense) configured in port 1.
[INFO] [D3D12] Requesting 1 maximum frame latency, using 1.
[INFO] [Video] Found display server: "win32".
[INFO] [Audio] Set audio input rate to: 48000.00 Hz.
[INFO] [WASAPI] Client initialized (shared, PCM, 48000Hz, 64.0ms).
[INFO] [Audio] Started synchronous audio driver.
[INFO] [Microphone] Initialized microphone driver.
[INFO] [Display] Found display driver: "d3d12".
[INFO] [MIDI] Output device: "Microsoft GS Wavetable Synth".
[INFO] [Playlist] Loading favorites file: "C:\RetroArch-Win64\playlists\builtin\content_favorites.lpl".
[WARN] [SDL] Couldn't open haptic device of the joypad #0: Haptic: There are 0 haptic devices available.
[INFO] [SDL] Falling back to joystick rumble.
[INFO] [Autoconf] PS5 Controller (DualSense) configured in port 1.
[INFO] [Core] Using content: "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\ROMs\GBA\Wario Land 4 (USA, Europe).zip".
[INFO] [Core] Unloading core...
[INFO] [Core] Unloading core symbols...
[INFO] [Autoconf] PS5 Controller (DualSense) disconnected from port 1.
[INFO] RetroArch 1.22.2 (Git cdf69e7)
[INFO] === Build =======================================
[INFO] CPU Model Name: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 
[INFO] Version: 1.22.2
[INFO] Git: cdf69e7
[INFO] Built: Dec 19 2025
[INFO] =================================================
[INFO] [Input] Found input driver: "sdl2".
[INFO] [Core] Loading dynamic libretro core from: "C:\RetroArch-Win64\cores\mgba_libretro.dll".
[INFO] [Override] Redirecting save file to "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\SaveRAM\GBA\Wario Land 4 (USA, Europe).srm".
[INFO] [Override] Redirecting save state to "C:\RetroArch-Win64\states\GBA\Wario Land 4 (USA, Europe).state".
[INFO] [Environ] GET_CORE_OPTIONS_VERSION.
[INFO] [Environ] GET_LANGUAGE: "0".
[INFO] [Environ] SET_CORE_OPTIONS_V2_INTL.
[INFO] [Environ] SET_PIXEL_FORMAT: RGB565.
[INFO] [Environ] SET_INPUT_DESCRIPTORS.
[INFO] [Environ] GET_LOG_INTERFACE.
[INFO] [Content] Loading content file: "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\ROMs\GBA\Wario Land 4 (USA, Europe).zip#Wario Land 4 (USA, Europe).gba".
[INFO] [Content] CRC32: 0xd6141609.
[INFO] [Environ] SET_AUDIO_BUFFER_STATUS_CALLBACK.
[INFO] [Environ] GET_SYSTEM_DIRECTORY: "C:\RetroArch-Win64\system".
[INFO] [RCHEEVOS] Using host: https://retroachievements.org
[INFO] [RCHEEVOS] Unofficial disabled
[INFO] [RCHEEVOS] Encore mode disabled
[INFO] [RCHEEVOS] Spectator mode disabled
[INFO] [RCHEEVOS] Load started, hardcore active
[INFO] [RCHEEVOS] Attempting to log in Ladybunne (with password)
[INFO] [RCHEEVOS] Identifying game: 8388608 bytes at 00000000108C3040 (C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\ROMs\GBA\Wario Land 4 (USA, Europe).zip#Wario Land 4 (USA, Europe).gba)
[INFO] [RCHEEVOS] Found 1 potential consoles for gba file extension
[INFO] [RCHEEVOS] Trying console 5
[INFO] [RCHEEVOS] Hashing 8388608 byte buffer
[INFO] [RCHEEVOS] Generated hash 5fe47355a33e3fabec2a1607af88a404
[INFO] [Core] Version of libretro API: 1, Compiled against API: 1
[INFO] [Core] Geometry: 240x160, Aspect: 1.500, FPS: 59.73, Sample rate: 48000.00 Hz.
[INFO] [Video] Set video size to: 720x480.
[WARN] [SDL] Couldn't open haptic device of the joypad #0: Haptic: There are 0 haptic devices available.
[INFO] [SDL] Falling back to joystick rumble.
[INFO] [Input] Found joypad driver: "sdl2".
[INFO] [D3D12] Found GPU at index 0: "Intel(R) Iris(R) Xe Graphics".
[INFO] [D3D12] Found GPU at index 1: "Microsoft Basic Render Driver".
[INFO] [D3D12] Using GPU index 0.
[INFO] [D3D12] Requesting 1 maximum frame latency, using 1.
[INFO] [Video] Found display server: "win32".
[INFO] [Audio] Set audio input rate to: 48218.99 Hz.
[INFO] [WASAPI] Client initialized (shared, PCM, 48000Hz, 64.0ms).
[INFO] [Audio] Started synchronous audio driver.
[INFO] [Microphone] Initialized microphone driver.
[INFO] [Display] Found display driver: "d3d12".
[INFO] [MIDI] Output device: "Microsoft GS Wavetable Synth".
[INFO] [Playlist] Loading favorites file: "C:\RetroArch-Win64\playlists\builtin\content_favorites.lpl".
[INFO] [Environ] SET_MEMORY_MAPS.
[INFO] [Environ] SET_SUPPORT_ACHIEVEMENTS: yes.
[INFO] [Environ] SET_MINIMUM_AUDIO_LATENCY.
[INFO] [Environ] GET_RUMBLE_INTERFACE.
[libretro INFO] GBA Memory: Detected SRAM savegame
[INFO] [RCHEEVOS] Ladybunne logged in successfully
[INFO] [RCHEEVOS] Fetching data for hash 5fe47355a33e3fabec2a1607af88a404
[libretro INFO] GBA Savedata: Savedata synced
[INFO] [RCHEEVOS] Identified game: 800 "Wario Land 4" (5fe47355a33e3fabec2a1607af88a404)
[INFO] [RCHEEVOS] Starting session for game 800
[INFO] [RCHEEVOS] Registered 0x8000 bytes of SYSTEM RAM at $000000 (descriptor 1, offset 0x000000)
[INFO] [RCHEEVOS] Registered 0x40000 bytes of SYSTEM RAM at $008000 (descriptor 2, offset 0x000000)
[INFO] [RCHEEVOS] Registered 0x10000 bytes of SRAM at $048000 (descriptor 3, offset 0x000000)
[INFO] [RCHEEVOS] 72/72 memory addresses valid
[INFO] [RCHEEVOS] Game 800 loaded, hardcore enabled
[INFO] [RCHEEVOS] You have 43 of 65 achievements unlocked
[INFO] [RCHEEVOS] Downloaded 22 badges
[INFO] [Environ] SET_SUBSYSTEM_INFO.
[INFO] [Core] Using content: "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\ROMs\DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).zip".
[INFO] [SRAM] Saving RAM type #0 to "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\SaveRAM\GBA\Wario Land 4 (USA, Europe).srm".
[INFO] [SRAM] Saved successfully to "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\SaveRAM\GBA\Wario Land 4 (USA, Europe).srm".
[INFO] [Runtime] Content ran for a total of: 00 hours, 01 minutes, 01 seconds.
[INFO] [Runtime] Saving runtime log file: "C:\RetroArch-Win64\playlists\logs\mGBA\Wario Land 4 (USA, Europe).lrtl".
[INFO] [Runtime] Saving runtime log file: "C:\RetroArch-Win64\playlists\logs\Wario Land 4 (USA, Europe).lrtl".
[INFO] [RCHEEVOS] Unloading game 800
[INFO] [Core] Unloading game...
[INFO] [Core] Unloading core...
[INFO] [Core] Unloading core symbols...
[INFO] [Core] Saved core options file to "C:\RetroArch-Win64\retroarch-core-options.cfg".
[INFO] [Autoconf] PS5 Controller (DualSense) disconnected from port 1.
[INFO] RetroArch 1.22.2 (Git cdf69e7)
[INFO] === Build =======================================
[INFO] CPU Model Name: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 
[INFO] Version: 1.22.2
[INFO] Git: cdf69e7
[INFO] Built: Dec 19 2025
[INFO] =================================================
[INFO] [Input] Found input driver: "sdl2".
[INFO] [Environ] SET_SUBSYSTEM_INFO.
[INFO] [Core] Loading dynamic libretro core from: "C:\RetroArch-Win64\cores\melondsds_libretro.dll".
[INFO] [Override] Redirecting save file to "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\SaveRAM\DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).srm".
[INFO] [Override] Redirecting save state to "C:\RetroArch-Win64\states\DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).state".
[INFO] [Environ] SET_NETPACKET_INTERFACE.
[INFO] [Override] Redirecting save file to "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\SaveRAM\DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).srm".
[INFO] [Override] Redirecting save state to "C:\RetroArch-Win64\states\DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).state".
[INFO] [Environ] SET_CONTENT_INFO_OVERRIDE.
[INFO] [Content Override] File Extension: 'srm' - need_fullpath: TRUE, persistent_data: FALSE
[INFO] [Content Override] File Extension: 'sav' - need_fullpath: TRUE, persistent_data: FALSE
[INFO] [Content Override] File Extension: 'nds' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Content Override] File Extension: 'dsi' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Content Override] File Extension: 'ids' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Content Override] File Extension: 'gba' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Environ] SET_CONTROLLER_INFO.
[INFO] [Environ] SET_SUPPORT_ACHIEVEMENTS: yes.
[INFO] [Environ] GET_RUMBLE_INTERFACE.
[INFO] [Environ] GET_SENSOR_INTERFACE.
[INFO] [Environ] GET_LOG_INTERFACE.
[INFO] [Environ] SET_FRAME_TIME_CALLBACK.
[INFO] [Environ] UNSUPPORTED (#33).
[INFO] [Environ] GET_SAVE_DIRECTORY: "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\SaveRAM\DS".
[libretro INFO] Save directory: "C:/Users/Ladybunne/Dropbox/Media/Games/Emulation/SaveRAM/DS"
[libretro INFO] melonDS DS save subdirectory: "C:/Users/Ladybunne/Dropbox/Media/Games/Emulation/SaveRAM/DS/melonDS DS"
[INFO] [Environ] GET_SYSTEM_DIRECTORY: "C:\RetroArch-Win64\system".
[libretro INFO] System directory: "C:/RetroArch-Win64/system"
[libretro INFO] melonDS DS system subdirectory: "C:/RetroArch-Win64/system/melonDS DS"
[INFO] [Environ] SET_SUBSYSTEM_INFO.
[INFO] [Environ] GET_VFS_INTERFACE. Core requested version >= V3, providing V3.
[INFO] [Environ] SET_SUPPORT_NO_GAME: yes.
[INFO] [Remap] Content-dir-specific remap found at "C:\RetroArch-Win64\config\remaps\melonDS DS\DS.rmp".
[libretro INFO] melonDS DS 1.2.0
[libretro ERROR] [melonDS] PCap: init failed
[INFO] [Environ] GET_MICROPHONE_INTERFACE.
[INFO] [Content] Loading content file: "C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\ROMs\DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).zip#Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).nds".
[INFO] [Content] CRC32: 0xf65389cf.
[INFO] [Environ] SET_PIXEL_FORMAT: XRGB8888.
[libretro ERROR] [melonDS] PCap: init failed
[libretro WARN] Failed to enumerate Wi-fi adapters
[INFO] [Environ] GET_CORE_OPTIONS_VERSION.
[INFO] [Environ] SET_CORE_OPTIONS_V2.
[INFO] [Core] Game-specific core options found at "C:\RetroArch-Win64\config\melonDS DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).opt".
[libretro INFO] No homebrew SD card image found at "C:/Users/Ladybunne/Dropbox/Media/Games/Emulation/SaveRAM/DS/melonDS DS/dldi_sd_card.bin"; will create an image.
[libretro INFO] Using existing DSi SD card image "C:/Users/Ladybunne/Dropbox/Media/Games/Emulation/SaveRAM/DS/melonDS DS/dsi_sd_card.bin"
[INFO] [Environ] SET_ROTATION: "0" (0 deg).
[INFO] [Microphone] Microphone requested before driver context was ready; deferring initialization.
[libretro ERROR] Failed to open firmware file "C:/RetroArch-Win64/system//notfound" for reading
[libretro WARN] Falling back to built-in firmware
[libretro WARN] Falling back to FreeBIOS
[INFO] [Environ] GET_USERNAME: "Ladybunne".
[INFO] [Environ] GET_LANGUAGE: "0".
[libretro INFO] [melonDS] Inserted cart with game code: BYYP
[libretro INFO] [melonDS] Inserted cart with ID: 00007FC2
[libretro INFO] [melonDS] ROM entry: 08000000 00000003
[libretro INFO] No GBA SRAM was provided.
[INFO] [Environ] SET_INPUT_DESCRIPTORS.
[libretro INFO] No need to defer initialization, proceeding now
[libretro INFO] [melonDS] MAC: 00:09:BF:11:22:33
[libretro INFO] [melonDS] Secure area decryption OK
[libretro INFO] [melonDS] Game is now booting
[libretro INFO] Started emulated console
[INFO] [RCHEEVOS] Unofficial disabled
[INFO] [RCHEEVOS] Encore mode disabled
[INFO] [RCHEEVOS] Spectator mode disabled
[INFO] [RCHEEVOS] Load started, hardcore active
[INFO] [RCHEEVOS] Identifying game: 134217728 bytes at 000000001E753040 (C:\Users\Ladybunne\Dropbox\Media\Games\Emulation\ROMs\DS\Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).zip#Yu-Gi-Oh! 5D's - World Championship 2011 - Over the Nexus (Europe) (En,Ja,Fr,De,Es,It).nds)
[INFO] [RCHEEVOS] Found 1 potential consoles for nds file extension
[INFO] [RCHEEVOS] Trying console 18
[INFO] [RCHEEVOS] Opened memory stream
[INFO] [RCHEEVOS] Hashing 352 byte header
[INFO] [RCHEEVOS] Hashing 552492 byte arm9 code (at 00004000)
[INFO] [RCHEEVOS] Hashing 145292 byte arm7 code (at 0036D400)
[INFO] [RCHEEVOS] Hashing 2560 byte icon and labels data (at 00391600)
[INFO] [RCHEEVOS] Generated hash 2997c674d40bc822558befbb4b04e4b3
[INFO] [RCHEEVOS] Fetching data for hash 2997c674d40bc822558befbb4b04e4b3
[INFO] [Core] Version of libretro API: 1, Compiled against API: 1
[INFO] [Core] Geometry: 256x384, Aspect: 0.667, FPS: 59.83, Sample rate: 32728.50 Hz.
[INFO] [Video] Set video size to: 720x1080.
[WARN] [SDL] Couldn't open haptic device of the joypad #0: Haptic: There are 0 haptic devices available.
[INFO] [SDL] Falling back to joystick rumble.
[INFO] [Input] Found joypad driver: "sdl2".
[INFO] [D3D12] Found GPU at index 0: "Intel(R) Iris(R) Xe Graphics".
[INFO] [D3D12] Found GPU at index 1: "Microsoft Basic Render Driver".
[INFO] [D3D12] Using GPU index 0.
[INFO] [D3D12] Requesting 1 maximum frame latency, using 1.
[INFO] [Video] Found display server: "win32".
[INFO] [Audio] Set audio input rate to: 32823.63 Hz.
[INFO] [WASAPI] Client initialized (shared, PCM, 48000Hz, 64.0ms).
[INFO] [Audio] Started synchronous audio driver.
[INFO] [Microphone] Initialized microphone driver.
[INFO] [WASAPI] Client initialized (shared, FLOAT, 48000Hz, 64.0ms).
[INFO] [WASAPI] Intermediate shared-mode capture buffer length is 960 frames (20.0ms, 3840 bytes).
[INFO] [WASAPI mic] Stopped capture device "Surface Stereo Microphones (Surface High Definition Audio)".
[INFO] [Microphone] Disabled microphone.
[INFO] [Microphone] Requested microphone sample rate of 44100Hz, got 48000Hz.
[INFO] [Microphone] Initialized microphone.
[INFO] [Display] Found display driver: "d3d12".
[INFO] [Environ] SET_SUBSYSTEM_INFO.
[libretro WARN] Could not get VFS interface 3, falling back to libretro-common defaults
[libretro WARN] Could not get VFS interface 3, falling back to libretro-common defaults
[INFO] [MIDI] Output device: "Microsoft GS Wavetable Synth".
[INFO] [Playlist] Loading favorites file: "C:\RetroArch-Win64\playlists\builtin\content_favorites.lpl".
[INFO] [Environ] SET_ROTATION: "0" (0 deg).
[INFO] [Environ] SET_GEOMETRY.
[INFO] [RCHEEVOS] Identified game: 16300 "Yu-Gi-Oh! 5D's World Championship 2011: Over the Nexus" (2997c674d40bc822558befbb4b04e4b3)
[INFO] [RCHEEVOS] Starting session for game 16300
[INFO] [RCHEEVOS] Registered 0x400000 bytes of SYSTEM RAM at $000000 (offset 0x000000)
[INFO] [RCHEEVOS] Registered 0xC00000 bytes of UNUSED at $400000 (null filler)
[INFO] [RCHEEVOS] Could not map region starting at $1000000
[INFO] [RCHEEVOS] Registered 0x4000 bytes of SYSTEM RAM at $1000000 (null filler)
[INFO] [RCHEEVOS] 609/609 memory addresses valid
[INFO] [RCHEEVOS] Game 16300 loaded, hardcore enabled
[INFO] [RCHEEVOS] You have 89 of 92 achievements unlocked

-- Crash happened here, no further info provided by logs. --

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the crash through the melonDS DS Achievements menu with a game that has locked achievements, using the listed RetroArch nightly setup and log context. Trace the achievements-page entry point and compare it with the working mGBA cases. Done means the Achievements page opens without crashing for the reported melonDS DS games.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.