Panda3DS is a new Nintendo 3DS emulator for Windows, Mac and Linux

panda3ds.jpg

A beta, preview build for a new Nintendo 3DS emulator called Panda3DS has been released.

The emulator is written in C++ and can be compiled for Windows, Mac and Linux. While the emulator is in its early stages it can already boot several commercial games.

The team behind Panda3DS state their goal is to see if fast 3DS emulation can be achieved on low-end hardware like the Raspberry Pi 4 and to ultimately create an emulator that offers debugging, reverse engineering and modding tools that can assist 3DS homebrew developers and tinkerers.

pokegang.png OoT_Title.png MK7.png

Screenshots of the Panda3DS emulator running on Windows
Panda3DS is still in the early stages of development. Many games boot, many don't. Most games have at least some hilariously broken graphics, audio is not supported, performance leaves a bit to be desired mainly thanks to lack of shader acceleration, and most QoL features (including a GUI) are missing.

In addition, some games don't quiiite work with the upstream code. A lot of them might need some panics in the source code to be commented out before they work, etc. However, just the fact things can work as well as they do now is promising in itself.

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

:arrow: Panda3DS on GitHub
:arrow: Panda3DS on Twitter
 

linuxares

The inadequate, autocratic beast!
Global Moderator
Joined
Aug 5, 2007
Messages
13,312
Trophies
2
XP
18,158
Country
Sweden
"The team behind Panda3DS state their goal is to see if fast 3DS emulation can be achieved on low-end hardware like the Raspberry Pi 4"

You had my curiosity, but now how you have me attention
That would be amazing! Tiny Pi being the ultimate TV connected emu machine
 

MadMakuFuuma

Well-Known Member
Member
Joined
Jun 23, 2018
Messages
192
Trophies
0
Age
40
XP
1,312
Country
Brazil
this is honestly good news. citra is a good emulator (the only one, so far) but the lack of interest at times, from the creators to the user community (in terms of criticism, suggestions etc) makes the project, in my view, stagnated in some points, while other emulators that also only have one viable option to play (pcsx2, dolphin etc) don't have this kind of problem (or, if have, is way less in general). again, critra is a good emulator. to me the problem is the clash i saw, all those years, between users and creators for silly things. i hope that, with a new emulator, things get more interesting from the innovative standpoint. and like some people said, that low end machines benefit from it.
 

mrcroket

Well-Known Member
Member
Joined
Mar 14, 2018
Messages
176
Trophies
0
Age
33
XP
1,945
Country
Spain
I never had a good experience with citra, I mean I appreciate the work done by the developers, of course, but I feel that it has been stuck for years.
 

chrisrlink

Has a PhD in dueling
Member
Joined
Aug 27, 2009
Messages
5,561
Trophies
2
Location
duel acadamia
XP
5,742
Country
United States
as long as it can run gen6 and 7 (pokemon) at a decent speed i'll be happy and use luma's patching method like what ryujinxs and yuzu does for mods,and remember make sure to not supply keys like what dolphin did that'll just put a huge target on your backs I'm curious on your mac app is it an intel based or native apple sillicon app?
 
Last edited by chrisrlink,
  • Like
Reactions: Subtle Demise

wheremyfoodat

Developer
Developer
Joined
Jul 9, 2023
Messages
10
Trophies
0
Age
19
XP
116
Country
Greece
can't wait for the switch port :nds:
Someone on our Discord server is trying to run it on Ubuntu!Switch. It compiles but gets a SIGILL when trying to run an STLR instruction. Currently investigating.
Post automatically merged:

You guys might also be interested in knowing that we're trying to put the emulator in a Discord bot to play Fire Emblem/Pokemon later on lmao

(Excuse the... odd names present in this screenshot)
Post automatically merged:

as long as it can run gen6 and 7 (pokemon) at a decent speed i'll be happy and use luma's patching method like what ryujinxs and yuzu does for mods,and remember make sure to not supply keys like what dolphin did that'll just put a huge target on your backs I'm curious on your mac app is it an intel based or native apple sillicon app?
Hello. The MacOS builds on Github are all Intel-based because I have no way of easily generating MacOS ARM executables via Github at the moment. However the emulator does build and run fine natively on M1 Macs (part of it was developed on M1). Keep in mind though it might be faster to use the x64 builds + shader recompiler until we manage to port shader recompilation to arm64
 

Attachments

  • 1688978552361.png
    1688978552361.png
    555.3 KB · Views: 36
Last edited by wheremyfoodat,
  • Like
Reactions: DoctorBagPhD

James_

aka Underscore_ or 'that Meowstic guy'
Member
GBAtemp Patron
Joined
Oct 2, 2019
Messages
732
Trophies
2
Age
18
Location
Outside, I wandered off
XP
4,852
Country
United Kingdom
You guys might also be interested in knowing that we're trying to put the emulator in a Discord bot to play Fire Emblem/Pokemon later on lmao
Ocarina of Time 3D on Discord?

We've gone too far
 

Korma

Well-Known Member
Newcomer
Joined
Aug 11, 2014
Messages
56
Trophies
0
XP
1,308
Country
United States
I see on the github you mention improving perf on low end devices using the KVM api, does that mean itll function similar to how QEMU is used to emulate machines?
 

wheremyfoodat

Developer
Developer
Joined
Jul 9, 2023
Messages
10
Trophies
0
Age
19
XP
116
Country
Greece
Hold strong people, here comes the pokefans. They going to ask if it can run they lame games.


But seriously when will it be able to run pokemon games?
Mainline Pokemon is pretty brutal for HLE 3DS emulation. Currently the emulator is incapable of booting them due to no CRO support. After that they'll also need AAC (Audio thingie) support, though I think they might be able to boot without it.

I can't give an estimate but I hope relatively soonish
Post automatically merged:

I see on the github you mention improving perf on low end devices using the KVM api, does that mean itll function similar to how QEMU is used to emulate machines?
That's how I picture it. The emulator is currently not doing virtualization yet though, it's doing good old recompilation from ARMv6K (3DS) to x86-64 or arm64 depending on the platform you're running on (and we will keep supporting this forever; it's necessary to have JITs for various platforms to be as portable as possible. Virtualization would only be supported on select platforms, as opposed to our current JIT model which runs on pretty much every computer currently in use and offers pretty good performance already)

Also nice pfp :P
 

Korma

Well-Known Member
Newcomer
Joined
Aug 11, 2014
Messages
56
Trophies
0
XP
1,308
Country
United States
That's how I picture it. The emulator is currently not doing virtualization yet though, it's doing good old recompilation from ARMv6K (3DS) to x86-64 or arm64 depending on the platform you're running on (and we will keep supporting this forever; it's necessary to have JITs for various platforms to be as portable as possible. Virtualization would only be supported on select platforms, as opposed to our current JIT model which runs on pretty much every computer currently in use and offers pretty good performance already)

Also nice pfp :P
Very cool, after seeing projects like Spine emu and using QEMU myself, Im definitely interested in seeing different methods of console emulation. Looking forward to seeing your project grow
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    S @ salazarcosplay: @BakerMan can one play cod from hen ps3?