• Print

medusa alpha 2


It’s been teased, it’s been joked about. No one could quite tell if the April 1 article was a joke or not. Well, allow me to formally announce to you: it’s real. Every single word was true. I’ve been working tirelessly for the past several months to bring a DS emulator up to a good enough point to release a preview build. And today, I think I’m there. So allow me to introduce another new Nintendo DS emulator: with added DS support, mGBA will now be medusa.


Before you get too excited, please allow me to state that this is still a very early work in progress—this isn’t even a 0.1 build of medusa; it’s still buggy, slow, and incomplete. This is more of a proof of concept to show off what I’ve been working on since June of 2016, and the reason mGBA 0.6.0 still isn’t out. While a good number of games work relatively well, virtually every game has graphical bugs, and many have even worse bugs. So caveat emptor, this is not a real release, and medusa won’t be replacing any other DS emulators any time soon.


While medusa is still an alpha quality software, it will be versioned separately from mGBA. Releasing hopefully soon will be mGBA 0.6.0, and on a separate schedule, medusa 0.1.0 will release. Sometime after mGBA 1.0 is released, the medusa branch will be merged back into mGBA and the combined product will become medusa 2.0. This will likely happen sometime in 2018, but that’s still up in the air. There’s a lot of work still to be done. Until then, medusa will contain all of the features of mGBA releases, and likely some experimental features that aren’t quite polished for a stable release. Every so often, mGBA master will be merged into the medusa branch so as to keep it up to date. As such, releases of medusa may contain unpolished features from mGBA master up until the merge.


Currently, about 80% of the DS’s hardware is implemented, and many games are fully playable. However, the software rasterizer for the 3D graphics is still very slow. This release should help those interested in finding bugs contribute to medusa before 0.1 is released, but it is not recommended for actual playing of games.


Some of the more important features that are still missing are:

  • Savestates
  • Several graphical features including edge marking, toon shading and fog
  • Some audio features such as the square wave and noise channels
  • Microphone support
  • HLE BIOS and firmware


A more comprehensive and up-to-date list can be found in the readme.


Meanwhile, many popular games have pretty serious issues:

  • Mario Kart DS races run at half speed
  • The World Ends With You locks up during the new game intro
  • Pokémon Diamond/Pearl/Platinum have a lot of graphical issues affecting battles
  • Pokémon Black/White have graphical issues during the battle transition
  • Some graphics are missing in New Super Mario Bros. and WarioWare: Touched!, among other games
  • Star Fox Command’s text is illegible


Please report any issues you find to the bug tracker; the more that are reported, the more that can be fixed. If you wish to discuss medusa, there are both forums and the #medusa-emu channel on FreeNode


As always, downloads can be found on the download page. Due to the heavy use of 64-bit math in the renderer, there are now 64-bit Windows builds. There will also be separate nightlies for medusa, as there are for mGBA master. The source code can be found on GitHub.


Please enjoy all of the hours I’ve put into medusa and mGBA, and here’s hoping for a better future for DS emulation. If you’re looking to give back, I always appreciate pledges on the mGBA Patreon, and more ways are listed on the donate page.


A new alpha of medusa is available. It contains many bugfixes, and allows many major games to be fully playable now. Notably, game-breaking bugs affecting Mario Kart DS, The World Ends With You, Star Fox Command, and more have been fixed. Some smaller hardware features have been added, but many are still missing. The full list of changes is below.


  • DS Audio: Add PSG audio
  • DS Slot-1: Improve savedata setup via IPC sniffing
  • DS Video: Add display capture blending


  • DS: Fix exposed CPU frequencies and audio timing
  • DS Audio: Fix audio sampling slightly too quickly
  • DS GX: Fix T-repeat textures (fixes #577)
  • DS GX: Fix 4-color texture coordinates
  • DS GX: Hack around writing to a full FIFO that has a swap pending (fixes #608)
  • DS GX: Fix bitmap textures when no palette is mapped (fixes #628)
  • DS GX: Don’t reset state between buffer swaps (fixes #642)
  • DS GX: Allow viewport to change in the middle of a frame
  • DS GX: Properly mask address for slot 2 4x4-texel textures
  • DS GX: Retain translucent polygon ID when drawing opaque fragments (fixes #661)
  • DS GX: Fix DMAs triggering too frequently (fixes #620, #583)
  • DS GX: Fix large textures wrapping
  • DS Slot-1: Emulate initial SPI command delay
  • DS Timers: Fix ARM9 timers running too fast
  • DS Video: Fix VRAM mirroring in the renderer (fixes #561)
  • DS Video: Fix extended modes 1.x screen base range (fixes #568)
  • DS Video: Capture with alpha bit set
  • DS Video: Bitmap sprites use alpha bit for transparent
  • DS Video: Fix blend bit on windows for 3D layer (fixes #611)
  • DS Video: Enable overflow bit on extended affine modes
  • DS Video: Fix extended mode 0 without extended palettes
  • DS Video: Fix capture stride
  • DS Video: Fix affine transformations in video capture
  • Feature: Fix resizing GIF buffer (fixes #695)


  • ARM9: Implement SMLAW and SMULW
  • ARM9: Implement STRD/LDRD
  • DS: Set boot complete bit in RAM on boot (fixes #576, #580, #586)
  • DS: Attempt to detect if a game is homebrew
  • DS Memory: Ensure DS9 I/O is 8-byte aligned
  • DS Slot-1: Emulate KEY delay
  • FFmpeg: Allow framerate to be adjusted
  • Qt: Add .nds files to the extension list in Info.plist
  • Qt: Add .srl as an extension for DS ROMs

Get it now in the Downloads section. Binaries are available for Windows and macOS, and the source code is available for all other platforms. Note that due to issues with the automated build system, there is not currently an alpha 2 build for Ubuntu.






blog comments powered by Disqus