Crash when opening Achievements menu for melonDS DS games with at least one achievement not unlocked
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
- Connect a RetroAchievements account.
- Open a DS game in melonDS DS that you haven't mastered (e.g. at least one achievement has not been unlocked).
- Open the menu and go to Achievements.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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