Home

Awesome

Panda3DS

Windows Build MacOS Build Android Build Linux Build AUR Package

Panda3DS is an HLE, red-panda-themed Nintendo 3DS emulator written in C++ which started out as a fun project out of curiosity, but evolved into something that can sort of play games!

Experimenting with new methods in emulation and unique features such as Lua scripting, we're here to make a difference!

Discussion

Join our Discord server by pressing on the banner below, or find us on other platforms via our website!

Discord Banner 2

screenshot1 screenshot2 screenshot3 screenshot4

Download

You can download stable builds from the Releases tab, or you can download the latest build from the tables below. Additionally, Panda3DS comes in 2 flavours on PC: A minimal SDL frontend, which does not have a GUI, and an experimental Qt 6 frontend with a proper user interface.

SDL builds (No GUI):

PlatformStatusDownload
Windows buildWindows BuildWindows Executable
MacOS buildMacOS BuildMacOS App Bundle
Linux buildLinux BuildLinux AppImage

Qt and Android builds:

PlatformStatusDownload
Windows buildQt BuildWindows Executable
MacOS buildQt BuildMacOS App Bundle
Linux buildQt BuildLinux AppImage
Android build (arm64)Android BuildAndroid APK

Compatibility

Panda3DS is still in the early stages of development. Many games boot, many don't. Lots of games have at least some hilariously broken graphics, audio is WIP, and some QoL features are missing. However, even more things are implemented, such as most of the 3DS core required to play games, and various neat features, such as Lua scripting, discord bot support, support for some system apps, cheats, controller support, WIP amiibo support and many more! The emulator is constantly evolving, so make sure to take a peek every now and then!

For documenting game compatibility, make sure to visit the games list repository. For miscellaneous issues or more technical issues, feel free to use this repo's issues tab.

Why?

The 3DS emulation scene is already pretty mature, with offerings such as Citra which can offer a great playing experience for most games in the library, Corgi3DS, an innovative LLE emulator, or Mikage. However, there's always room for more emulators! While Panda3DS was initially a mere curiosity, there's many different concepts I would like to explore with it in the future, such as:

Keep in mind, these are all long-term plans. Until then, the main focus is just improving compatibility

How to build

Panda3DS compiles on Windows, Linux and MacOS, with only 1 (optional) system dependency, the Vulkan SDK. If you don't want to install the Vulkan SDK you can always build the emulator with only OpenGL support, by adding -DENABLE_VULKAN=OFF to the cmake command

All you need is CMake and a generator of your choice (Make, Visual Studio, Ninja, etc). Simply clone the repo recursively and build it like your average CMake project.

git clone https://github.com/wheremyfoodat/Panda3DS --recursive

cd Panda3DS && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_USER_BUILD=ON  # Set up compilers etc here if you'd like

<Invoke Make, Visual Studio, or whatever you would like to use>

*If you want to contribute to the project, you may not want to enable the ENABLE_USER_BUILD option and instead familiarize yourself with the various CMake options provided in the root CMakeLists.txt

How to use

Simply drag and drop a ROM to the executable if supported, or invoke the executable from the command line with the path to the ROM as the first argument like: Alber.exe MyGame.3ds <br> Panda3DS can load ROMs in the following formats:

Both decrypted and encrypted dumps are supported. However for encrypted dumps you must provide your AES keys file by adding a sysdata folder to the emulator's app data directory with a file called aes_keys.txt including your keys. Currently .cia files are not supported yet (support is planned for the future), however if you want you can usually use Citra to extract the .app/.cxi file out of your .cia and run that.

Controls

Keyboard & Mouse

Panda3DS also supports controller input using the SDL2 GameController API.

Acknowledgements

Sister Projects

Support

If you find this project exciting and want to support the founder, check out his Patreon or Ko-fi <br> Keep in mind that funding is only aimed to cover various life costs and support development. Panda3DS is a free product and on no occasion will official builds ever be made private or limited to sponsors! Any donation is much appreciated!

Nintendo 3DS is a registered trademark of Nintendo Co., Ltd.

panda Here's a panda it go blep