加密 ROM 需在应用数据目录建 sysdata 文件夹并放入 aes_keys.txt,否则无法运行;目前不支持 .cia,需先用 Citra 提取出 .app/.cxi;项目仍处早期,大量游戏无法启动或画面音频异常。
git clone https://github.com/wheremyfoodat/Panda3DS --recursive
cd Panda3DS && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_USER_BUILD=ONREADME 未说明具体显存或 GPU 型号要求;构建时 Vulkan SDK 为可选依赖,不装可用 -DENABLE_VULKAN=OFF 仅走 OpenGL。
用 C++ 写的 HLE 3DS 模拟器,想在 PC 和安卓上跑 3DS 游戏可以试试
用 C++ 实现的高层模拟(HLE)任天堂 3DS 模拟器,支持在 PC 和 Android 上运行 3DS 游戏,并内置 Lua 脚本扩展。
核心能力
- 基于 Dynarmic 做 ARM 到 x86-64/ARMv8 的动态重编译
- 支持 Lua 脚本、金手指、手柄和 Discord bot 等附加功能
- 提供无 GUI 的 SDL 前端和实验性 Qt 6 前端两种形态
- 可加载 .3ds/.cci/.cxi/.app/.ncch/.elf/.axf/.3dsx 格式
- 支持解密与加密 ROM,加密需自备 aes_keys.txt
容易踩的坑
- v0.9Panda3DS Christmas 2024 edition最新正式版2024-12-25 · 2024-12-25 13:32 UTC
Note: This release is now outdated and many things have been fixed since it was made. Get a recent build from https://panda3ds.com/download
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
- Mostly complete HLE audio (Enable audio via the audio settings to try it out)
- v0.8Panda3DS post-Halloween edition2024-01-22 · 2024-01-22 13:48 UTC
查看更新说明
Wake up honey, new Panda3DS release just dropped and the changelog is so big I apparently can't autogenerate it.
More games working, first release including Android builds, new desktop UI (Labeled Qt below, as opposed to the original SDL frontend which is just a window), and more
- v0.7Panda3DS pre-Halloween edition2023-10-19 · 2023-10-19 17:21 UTC
查看更新说明
Periodic release cause it's been a while since the last one and there'll be a lot of changes for Qt/Android/etc frontends soon, so it's best to make one now
New features:
- Lua scripting support
- Work-in-progress GUI using Qt (Not included in this release, but will start shipping builds as soon as possible)
- Compatibility fixes (Fixes various games and some OS apps. Various improvements in the BOSS, FS, NS, CFG, and more services, shader emulation fixes, etc)
- There's now a website: https://panda3ds.com/
- Support for portable builds (Save data and such is in the emulator folder when enabled rather than being in %APPDATA% or the Linux/Mac equivalents)
- Fix Android compilation for future Pandroid app
- Fix shader bugs that may have broken the app on some drivers
- Hydra multi-system emulator core soon
- Other stuff I'm forgetting
- v0.6-pandiversaryPanda3DS 1 year anniversary edition (featuring Pokemon)2023-09-14 · 2023-09-14 21:51 UTC
查看更新说明
1 year since the first commit in the repo! This time I'm going to skip the formalities and just show some of what @noumidev and I have in store for you in this new update :p (Thanks @UDXS for the
propagandaphotoshop)Happy pandiversary!
OK now the boring stuff
- Added SD card support
- Added CRO support
- Preliminary Amiibo work
- Initial CSND implementation (Gets various older homebrew such as minicraft working)
- Add SystemSaveData support (Gets OS apps like Mii Maker, Download Play, Activity Log, etc working)
- More FS work
- Fix graphical bugs in games that use invalid textures such as Pokemon X (feat @GPUCode)
- Various HLE work here and there
- More...
- v0.5-betaLatest stable version2023-09-05 · 2023-09-05 17:31 UTC
查看更新说明
- Compatibility fixes
- Graphics fixes
- 3DSX format support
- Linux AppImage support
- Custom red-panda-themed mii faces
- More work on applet support, Vulkan, and so on
Making a stable release before I merge the SD card PR
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Panda3DS
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!

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):
| Platform | Status | Download |
|---|---|---|
| Windows build | Windows Executable | |
| MacOS build | MacOS App Bundle | |
| Linux build | Linux AppImage |
Qt and Android builds:
| Platform | Status | Download |
|---|---|---|
| Windows build | Windows Executable | |
| MacOS build | MacOS App Bundle | |
| Linux build | Linux AppImage | |
| Android build (arm64) | Android 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:
-
Virtualization. What motivated the creation of this emulator was actually a discussion on whether it is possible to get fast 3DS emulation on low-end hardware such as the Raspberry Pi 4, using the KVM API. At the moment, Panda3DS is powered by Dynarmic rather than using virtualization, but this is definitely a concept I want to explore in the future.
-
Debugging, reverse engineering and modding tools. While contributing to PCSX-Redux and collaborating with the other developers, I had the chance to find out how useful tools like these can be. They can serve as indispensable tools for the homebrew devs, modders, reverse engineers, as well as emulator developers themselves. Some tools can even become fun toys the casual user can mess around with. As such, I think they can really improve the experience in a project like this. Of course, I'd like to thank @nicolasnoble and the entire Redux team for helping me learn the value of these tools, as well as making me improve as a programmer.
-
Trying out various other unique features, such as different graphics or audio enhancements, or supporting other niche things such as amiibo.
-
Fun. Writing code is fun and I strongly encourage anyone to do it.
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
Panda3DS can load ROMs in the following formats:
- .3ds/.cci
- .cxi/.app/.ncch
- .elf/.axf
- .3dsx
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
- Up analog W
- Down analog S
- Left analog A
- Right analog D
- D-pad Arrows
- A button L
- B button K
- X button O
- Y button I
- L button Q
- R button P
- Start button Enter
- Select button Backspace
- Touch Screen Left click
- Gyroscope Hold right click and swipe your mouse left and right (support is kind of shaky atm, but games that require gyro here and there like Kirby should work)
- Pause/Resume F4
- Reload F5
Panda3DS also supports controller input using the SDL2 GameController API.
Acknowledgements
-
3DBrew, a wiki full of 3DS information and the main source of documentation used.
-
GBATek, a GBA, DS and 3DS reference which provided insights on some pieces of hardware as well as neatly documenting things like certain file formats used in games.
-
Libctru, the most well-known 3DS homebrew SDK. Used for developing test ROMs, as well as a source of documentation thanks to its doxygen wiki.
-
ctru-rs, a wrapper around libctru for writing 3DS homebrew in Rust.
-
Citra, an HLE 3DS emulator. Very useful as a reference, with some code snippets inspired or adapted from it.
-
3dmoo, an HLE 3DS emulator which helped similarly to Citra
-
Corgi3DS, an LLE 3DS emulator which both served as an inspiration, as well as a nice source of documentation for some PICA200-related things
Sister Projects
- Dynarmic: An arm32/arm64 to x86-64/ARMv8 recompiler
- PCSX-Redux: A PlayStation 1 emulator targetting developers, reverse engineers and regular PS1 fans alike
- SkyEmu: A seagull-themed low-level GameBoy, GameBoy Color, GameBoy Advance and Nintendo DS emulator that is designed to be easy to use, cross platform and accurate.
- NanoBoyAdvance: A Game Boy Advance emulator focusing on hardware research and cycle-accurate emulation
- Dust: Nintendo DS emulator for desktop devices and the web
- felix86: A new x86-64 → RISC-V Linux userspace emulator
- ChonkyStation: Work-in-progress PlayStation emulator
- ChonkyStation 3: Experimental HLE PS3 emulator for Windows, MacOS and Linux
- MelonDS: "DS emulator, sorta" - Arisotura
- Kaizen: Experimental work-in-progress low-level N64 emulator
- shadPS4: Work-in-progress PS4 emulator by the founder of PCSX, PCSX2 and more
- Tanuki3DS: A new 3DS emulator for MacOS and Linux
Support
If you find this project exciting and want to support the founder, check out his Patreon or Ko-fi 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.
Here's a panda it go blep
