After a long while, it's time for a new release. The changelog is enormous so I'll focus on the more important stuff (new UI, audio support, better Android performance, libretro core, ...)🥳
I also promise the next release won't take as long to come out (oops). Make sure to get the Qt builds if you want to try out the new desktop UI!
What's Changed
- Mostly complete HLE audio (Enable audio via the audio settings to try it out)
- Includes support for AAC audio, and other goodies such as the ability to boost audio volume above 100%
- Much better performance on Android, comfortably running fullspeed on a lot of phones
- Desktop UI rework
- New configuration menu with most emulator settings + UI configuration settings
- Support for translations (At the time of writing this there's English, Greek, Spanish, Dutch, and Brazilian Portuguese)
- Cheats UI, Scripting UI, ROM patching UI, some debug UI widgets for dumping game filesystems & DSP firmware, ...
- Fixed resizing the window on both SDL and Qt, added support for optionally remembering window size & position
- Qt frontend now supports controllers (SDL already did)
- New Qt UI themes (Cream, Greetings Cat)
- Official Libretro core
- You can download it in the Retroarch UI after enabling support for "Experimental Cores"
- Lots of GPU emulation work and fixes
- New fragment shader generation backend heavily reduces GPU usage
- New shader decompiler heavily reduces both CPU & GPU usage, making the emulator orders of magnitude faster on phones and lower end laptops/PCs.
- Metal API GPU backend for Apple devices (Currently only supported on the SDL build of the emulator)
- Fog emulation
- Proper lighting emulation
- x64 and arm64 shader JIT improvements
- Fixed various rendering errors & crashes (Try toggling the "Accelerate shaders" option in case a game doesn't work)
- Implemented missing GPU registers (Eg VSH_OUTMAP_MASK)
- ...
- Added support for gyroscope and accelerometer ("motion controls")
- Supported on desktop when the user has a compatible controller
- Supported on Android by moving your phone
- Android
- Much improved performance, the emulator is now properly usable on many phones.
- Audio support, motion support, encrypted games support...
- Support for configuring 3DS screen layout
- More emulator settings exposed via the UI
- Store Access Framework (SAF) support
- Use Material for parts of the UI
- MacOS builds are now universal (ie include both an arm64 and x64 binary)
- Improves performance on arm64 Macs, ie "Apple Silicon", as the emulator no longer runs under Rosetta.
- Fixed various bugs and crashes that would occur when loading encrypted games.
- Also added support for decrypting games that require seeddb.bin, provided the user has seeddb.bin in the correct path.
- Added support for decrypting games in the Android backend. User can provide aes_keys.txt and seeddb.bin via the settings UI.
- Lots of emulation fixes
- Improved audio emulation, games have audio and will no longer hang due to needing more of the audio DSP implemented (For example in Pokemon X/Y, Pokemon ORAS, Pokemon Mystery Dungeon Gates To Infinity, TLoZ: A Link Between Worlds, Professor Layton, ...).
- Improved filesystem emulation, fixes a lot of OS apps (3DS Sound, Face Raiders, AR cards, ...), homebrew (Anemone3DS) and retail games (Luigi's Mansion)
- Improved camera emulation (but still not supporting proper camera captures): Games will no longer hang due to camera not being implemented
- Added support for the Software Keyboard & Mii Selector applets, games will no longer hang when they ask the user to select a mii or enter their name.
- CRO fixes (Pokemon games no longer randomly crash, other than Sun/Moon and US/UM which need one last thing implemented)
- Kernel fixes
- Y2R fixes
- Home Menu related fixes for the future
- Various optimizations:
- Added scheduler for scheduling emulator events
- Handwritten SSE/NEON code for faster GPU & DSP emulation
- Added idle skipping
- ...
- Lua:
- Expose more emulator functions to the scripting API
- Expose libuv
- Miscellaneous fixes
- Fixed system volume slider not working on Android.
- Fix touchscreen emulation not working on Qt.
- Fix Android APKs being huge due to not being properly stripped
- Fix emulator hanging on devices where audio couldn't be initialized
- ...
Full changelog: v0.8...v0.9