Dekopon - (Mostly) Fullspeed 3DS Emulation on Nintendo Switch

PalindromicBreadLoaf

Well-Known Member
Member
Joined
Aug 22, 2018
Messages
435
Solutions
2
Reaction score
417
Trophies
0
Age
25
Location
Canada
XP
1,920
Country
Canada
dekopon_square.webp

Credit goes to StickyMangoRice for the logo.

Dekopon is a port of Azahar to the Nintendo Switch.

Performance is very title dependent, and will be improved with time, but many games can be played fullspeed right now, sometimes even with stock handheld clocks. (I do recommend at least bumping the CPU up to dev unit clocks in handheld just to reduce shader compilation stutter and smooth out some rough frame pacing.)

Depending on the game, you can get up to 4x resolution scaling at full speed in docked/handheld charging (although really 3x is all you need in handheld).
If you want to try any new3ds exclusive games, they won't run well. All four of the 3DS' cores run on a single emulation thread, so we're at a 1.2GHz difference (2GHz single core where as the 4 3DS cores each run at 804MHz) from what we would need (and architecture changes from 3DS to Switch cannot account for that much raw clock speed loss). The solution would be to split the emulation threads on new3DS games, but that's a ton of work for very very little gain.

See here for a full compatibility chart: Dekopon Compatibility Chart
Feel free to share your own compatibility findings here and I'll update the sheet accordingly. Also share any issues you have and I'll do my best to fix them.

Downloads can be found here: Releases
Along with the source code here: Source

ROMs default location is /switch/dekopon/roms/
All formats that Azahar natively supports are supported here too.

Different screen layouts can be cycled through via pressing the right stick.
Pressing '+' on a game shows information about it, including updates and dlc.

Enjoy!

Also if someone wants to make a better UI for this I wouldn't be offended. I can't make a good UI to save my life, but the one included at least kinda functions to get you into a game.
 
Last edited by PalindromicBreadLoaf,
Good job! I was waiting for us to finalise the libretro side of things to get to the aza port. Your nxvk port looks better than the slop i've seen before too, Mind if i finally update my projects to vulkan and we ship libretro with nxvk?
 
Good job! I was waiting for us to finalise the libretro side of things to get to the aza port. Your nxvk port looks better than the slop i've seen before too, Mind if i finally update my projects to vulkan and we ship libretro with nxvk?
Yeah, go ahead. It's all open source for a reason. And if you find any issues regarding nxvk do share and I'll look into fixing them. I'm certainly not perfect at programming by any means, so there's bound to be issues somewhere.
Post automatically merged:

Anybody able to get a picture or two I can use of 3DS games running? My CFW Switch still hasn't been unpacked after moving last month lol.

I'll pop something on the front page for it.
Give me a few minutes and I can get you some.
 
Yeah, go ahead. It's all open source for a reason. And if you find any issues regarding nxvk do share and I'll look into fixing them. I'm certainly not perfect at programming by any means, so there's bound to be issues somewhere.
Post automatically merged:


Give me a few minutes and I can get you some.
Sweet, btw i know one of the people involved with the vulkan standard, if you have some particular questions you struggled on I can forward them, I am not a gfx engineer either, thats why I always focused on the low level stuff :P
 
Sweet, btw i know one of the people involved with the vulkan standard, if you have some particular questions you struggled on I can forward them, I am not a gfx engineer either, thats why I always focused on the low level stuff :P
Low level stuff is normally my cup of tea too, but I've been spending the last 3-4 months hard learning gfx protocols, so I figured I could at least try and make an actually maintainable, not AI slop, Vulkan driver for the Switch. I don't think there was anything I struggled more on than other things (really NVK did all the heavy lifting), I just had to figure out WSI platforms and some SoC/Tegra quirks.

@Scarlet here are some screenshots. Hopefully these work for you:
2026071616181500-13F4C83447CD664E7FD6CBEB50612963.jpg

2026071616194900-13F4C83447CD664E7FD6CBEB50612963.jpg

2026071616230100-13F4C83447CD664E7FD6CBEB50612963.jpg
 
does this perform any better than that old Citra core from years back? Cause that thing was ROUGH

Bravely Default, Bravely Second, Radiant Historia: Perfect Chronology all played pretty badly even with full overclocks
 
View attachment 582351
Credit goes to StickyMangoRice for the logo.

Dekopon is a port of Azahar to the Nintendo Switch.

Performance is very title dependent, and will be improved with time, but many games can be played fullspeed right now, sometimes even with stock handheld clocks. (I do recommend at least bumping the CPU up to dev unit clocks in handheld just to reduce shader compilation stutter and smooth out some rough frame pacing.)

Depending on the game, you can get up to 4x resolution scaling at full speed in docked/handheld charging (although really 3x is all you need in handheld).
If you want to try any new3ds exclusive games, they won't run well. All four of the 3DS' cores run on a single emulation thread, so we're at a 1.2GHz difference (2GHz single core where as the 4 3DS cores each run at 804MHz) from what we would need (and architecture changes from 3DS to Switch cannot account for that much raw clock speed loss). The solution would be to split the emulation threads on new3DS games, but that's a ton of work for very very little gain.

See here for a full compatibility chart: Dekopon Compatibility Chart
Feel free to share your own compatibility findings here and I'll update the sheet accordingly. Also share any issues you have and I'll do my best to fix them.

Downloads can be found here: Releases
Along with the source code here: Source

ROMs default location is /switch/dekopon/games/
All formats that Azahar natively supports are supported here too.

Different screen layouts can be cycled through via pressing the right stick.
Pressing '+' on a game shows information about it, including updates and dlc.

You may be wondering why release this when Tico just yesterday announced 3DS support? Firstly, unless I'm missing something, Tico isn't open source, which blatantly violates the GPLv2 license that Azahar is under (along with other emulators, but I digress), and even if it didn't violate licenses, I just have a general disdain for any software that's closed source. I just don't trust it. Also, I've been working on this for weeks and have spent hundreds of hours on it. I'm not just going to abandon it in an almost finished state.

Enjoy!

Also if someone wants to make a better UI for this I wouldn't be offended. I can't make a good UI to save my life, but the one included at least kinda functions to get you into a game.
Watch and see PabloMK7 remove support for this emulator in CTGP-7 like they did with Azahar Plus
 
does this perform any better than that old Citra core from years back? Cause that thing was ROUGH

Bravely Default, Bravely Second, Radiant Historia: Perfect Chronology all played pretty badly even with full overclocks
I don’t own any of those games, but I do have the demo of Bravely Second, and that runs pretty good in the town at 2x res and base handheld clocks.
Is there a Hot-key to exit? Or a general list of Hotkeys to know?
‘+’ and ‘-‘ together exits the currently running game. R3 switches the screen layout. Besides that I don’t think there’s anything else.
 
Watch and see PabloMK7 remove support for this emulator in CTGP-7 like they did with Azahar Plus
???????????????????
You are comparing someone who has caused trouble to us (that we still have to deal with) and been completely disrespectful with a project that's respectful and sane.
 
Last edited by PabloMK7,
Documentation seems to be wrong.

Dekopon's default path is sdmc:/switch/dekopon/roms, not sdmc:/switch/dekopon/games, based on running it right now.

It's also difficult to tell if you're in the "Library" menu or not, when no games are found.

I was very confused why none of my inputs were responding until I pressed B in one of the other menus and figured it out.
 
Low level stuff is normally my cup of tea too, but I've been spending the last 3-4 months hard learning gfx protocols, so I figured I could at least try and make an actually maintainable, not AI slop, Vulkan driver for the Switch. I don't think there was anything I struggled more on than other things (really NVK did all the heavy lifting), I just had to figure out WSI platforms and some SoC/Tegra quirks.

@Scarlet here are some screenshots. Hopefully these work for you:
View attachment 582436
View attachment 582438
View attachment 582439
Years ago i estimated vulkan support to be 3-4 man-months of development (just for a poc), I guess that checks out with the knowledge build-up. But back then mesa was way behind, either way, good job. I still remember those dark pre-gl times too...
Post automatically merged:

So glad to see this and not locked behind some BS paywall! Great work!
People bitch about paywall all the time, but my sources for example have been up for as long my citra port existed.
You arent booting secure if you dont even do your due diligence https://git.m4xw.net/m4x/citra-libretro-nx/-/commits/rebase
You are a insult to your name
 
Last edited by m4xw,
Am I doing something wrong?

I put my .3ds file into /switch/dekopon/roms/ like Dekopon tells me to, but Library never shows it ("No games found".)

I even thought it was because it was encrypted, so I decrypted it and even put the decryption files in /dekopon/sysdata, and it still isn't being detected.

Very confused.
 

Site & Scene News

Popular threads in this forum