Emulation Homebrew Emulator The DSi deserves a better SNES emulator

First post

Sarthix

Active Member
OP
Newcomer
Joined
Apr 4, 2021
Messages
33
Trophies
0
XP
302
Country
Italy
This thread has the only purpose of encouraging the best coders that work on the emulation for the DS(i) to reconsider the idea of working on a better SNES emulator, since we have proof that this is possible (even though it is difficult). If you don’t care about this discussion or if you find it irrelevant to you for some reason, please don’t comment. Thank you.

So... here's a little story. Imagine having a child, and wanting to show him how handled gaming was back in your days. Your little boy has now discovered the DS, and he has fun with it like you did at his age. He likes Mario, and now comes the better part: you can install a lot of emulators on it just to play with him all the best retro Mario games in existence! That's right, you can play Super Mario Bros, Super Mario Kart... alright, not that one, Super Mario RPG... nope, it doesn't work. Well, at least it can play Super Mario World! You let your child play it, and... *crashes on the first boss*

That, my guys, is the current state of the SNES emulation on the DS and DSi, and the little boy in the story was just a metaphor for me discovering the SNES emulation and the bad effort that was put into SNEmulDS and lolSnes.

Now let's talk about SNEmulDS rebirth. That can be seen as an original idea, but at the same time as a lazy choice. Someone cannot just take a 2008 software (made even before the DSi release) and make a base out of it, the code is too messy. It's like you want to build a skyscraper without a foundation. And even if we try to see something good that has come out of this, we can only say that Megaman X2 and Megaman X3 are now compatible... Alright, great job, great job, nothing to say but WHO CARES, they are just two games out of hundreds of them.

Ok, don't get me wrong too early. I'm not a coder, but I know emulating the Super Nintendo is not quite simple, but another thing I know is that a lot of other projects like S8DS or GbaRunner have active development (made by the same person who created the original software, lol), and they have a decent emulation. The same thing, sadly, cannot be said when it comes to emulating the SNES, where the current state of emulation is THIS:

Dre4mR.png



And for SNEmulDS (The current best one) the games supported mediocrely are not even the half of the compatibility list!


Why?? Why one of the best consoles with the best retro games ever made does not have a decent support but the "SeGa mAsTEr SySteM" does?? :angry:

Alright, the moment of relief is over. Now let's talk about why I think making a new SNES emulator is possible. Even though I repeat it once again, I don't know anything about coding in general (someday I probably will, I'm only 18).

So one main reason why a ton of SNES games cannot be emulated perfectly on the DS is because it is not capable of emulating enchantment chips. These chips were built into the Super Nintendo cardtriges, and they cannot be emulated unless you make a patch specifically for these games (this is what @Coto did for Megaman X2 and X3). But a good patch can only be supported with better hardware than the DS one, and this is where a company called Supercard come in. There is only one good SNES emulator for the DS, which is CATSFC, but it's only available on the Supercard DSTWO, which is a rare card made specifically for emulation that has additional RAM and CPU, and it can be found pretty rarely to buy online (its cost is about 200 USD). This card is capable of emulating a lot of games compared to SNEmulDS because it can emulate the enchantment chips better due to its additional hardware. So my brain went like isn’t this the same thing the DSi has? So if it is possible to do it, it would only be possible on the DSi because it has a powerful hardware. Another proof for this is that the N64 cannot emulate the SNES either, and its specs are very similar to the DS. So I came to the conclusion that the DS won't ever be able to emulate the SNES properly without the DSTWO card.

Speaking of specs, what I've noticed during my research is that there is a comparison between the New 3DS emulating N64 and the possible DSi emulating SNES. They both are remakes of an older console, and that older console has similar hardware characteristics to the console which they're not capable of emulating perfectly. Also, I was recently comparing the number of times the DSi and the New 3DS are more powerful than the consoles they want to emulate: the New 3DS ram is 64 times bigger than the N64, and the CPU is 8,576 times faster than the N64; the DSi ram is 125 times bigger than the SNES, and the CPU is 37 times faster than the SNES (that is way more than the New 3DS with the N64).

Nintendo 64:
- RAM 4 MB
- CPU 93.75 MHz
New Nintendo 3DS:
- RAM 256 MB (64 times bigger)
- CPU 804 MHz (8,576 times faster)

Super Nintendo Entertainment System:
- RAM 0,128 MB
- CPU 3.58 MHz
Nintendo DSi:
- RAM 16 MB (125 times bigger)
- CPU 133 MHz (37 times faster)

After all of this information, I really believe that if someone in this world has the dedication to make a better SNES emulator for the DSi, at least 75% of the games would run without any big problem whatsoever. After all, this is just my humble opinion on something that is about data processing, and I'm not familiar with it. If I had the competence and the time, I would create my own software and even my own hardware if I had the budget.

P.S. Edit:
I suggest everyone to read all the threadmarks (the important posts).

A developer who is really willing to make this attempt should be aware that doing this is incredibly difficult and requires a lot of dedication. Lastly, I wanted to share a list of some source codes that might help someone.

 
Last edited by Sarthix,

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,941
Trophies
3
Age
25
XP
21,831
Country
United States
Another possible reason of why we haven't gotten a better SNES emulator for the DSi, is because DSi-mode homebrew wasn't very accessible back then (you'd need either a rare DSi-mode flashcard, or if using a non-patched system update, an exploitable DSiWare title), and the 3DS came out 3 years later or so.
 

The Catboy

GBAtemp Official Catboy™: Entropy Trap
Member
Joined
Sep 13, 2009
Messages
28,679
Trophies
6
Location
Making a non-binary fuss
XP
42,207
Country
Antarctica
I wouldn’t mind a better SNES emulator for the DSi and I am kind of shocked that there hasn’t been one yet. I would assume it’s due to the 3DS but with the current rise in DSi hacking, I am just guessing it’s that no one has found interest in making one yet.
 

jonhon

Member
Newcomer
Joined
Jan 15, 2020
Messages
18
Trophies
0
Age
29
XP
544
Country
Chile
People should stop expecting full accurate emulation from a 2009 device.
not even the olds 3ds has 100% snes compatibily. (and the dstwo can barely play Mario kart and Mario RPG anyway)

Maybe we should work with the games we have. or get a superior device with better emulation abilities
 

Sarthix

Active Member
OP
Newcomer
Joined
Apr 4, 2021
Messages
33
Trophies
0
XP
302
Country
Italy
People should stop expecting full accurate emulation from a 2009 device.
not even the olds 3ds has 100% snes compatibily. (and the dstwo can barely play Mario kart and Mario RPG anyway)

Maybe we should work with the games we have. or get a superior device with better emulation abilities
You probably misunderstood the purpose of this thread, and I don’t blame you, It’s not easy to understand.

What me, and a lot of other people here in the Nintendo DS homebrew community want, is the possibility to run all of these games in one single handled console like the Nintendo DS. Because well… it’s the console we grew up with and we are attached to it like a friend. We don’t want to get a superior device because it’s not the device we are attached to. We know emulation is a lot better on modern devices but we don’t care, we only want to play those games on DS(i) and I’m not saying 100% of the games, but at least the majority of them.
 

JaapDaniels

Well-Known Member
Member
Joined
Apr 22, 2012
Messages
1,242
Trophies
1
Age
40
Website
github.com
XP
2,606
Country
Netherlands
You probably misunderstood the purpose of this thread, and I don’t blame you, It’s not easy to understand.

What me, and a lot of other people here in the Nintendo DS homebrew community want, is the possibility to run all of these games in one single handled console like the Nintendo DS. Because well… it’s the console we grew up with and we are attached to it like a friend. We don’t want to get a superior device because it’s not the device we are attached to. We know emulation is a lot better on modern devices but we don’t care, we only want to play those games on DS(i) and I’m not saying 100% of the games, but at least the majority of them.
You don't seem to understand the limitations of the NintendoDS like devices.
you've got the choice:
  • A more powerfull handheld to play those games on, and you'll be able to play those extra snes games (even on todays hardware it's hard to gen 100% of the games running perfect).
  • accept that it's impossible to find a perfecte emulator for snes on the NintendoDS, you can't simply combine the snes emulators, they need to be in written in the same language, are based on the same principle...
 
Last edited by JaapDaniels,

Sarthix

Active Member
OP
Newcomer
Joined
Apr 4, 2021
Messages
33
Trophies
0
XP
302
Country
Italy
You don't seem to understand the limitations of the NintendoDS like devices.
Yes, I do. I even got an answer up here from two bigs Nintendo DS and DSi Homebrewers that this is possible. Please read the full initial post if you care, including the parts where I specify which are the limitations of the hardware and why it can be possible only on the DSi.
 
Last edited by Sarthix,
  • Like
Reactions: 1nitiate

JaapDaniels

Well-Known Member
Member
Joined
Apr 22, 2012
Messages
1,242
Trophies
1
Age
40
Website
github.com
XP
2,606
Country
Netherlands
Yes, I do. I even got an answer up here from two bigs Nintendo DS and DSi Homebrewers that this is possible. Please read the full initial post if you care, including the parts where I specify which are the limitations of the hardware and why it can be possible only on the DSi.
That's great except we never really got DSi homebrew working, we only got DS hardware limited homebrew and 3DS hardware homebrew as far as i know.
The DSi was sort of cracked, only to be patched not using the i.
Technically you could try to make DSi application yourself, but it'll mean it needs a new flashcard too.
So again, not possible at this moment, and i'm not sure anyone wants to spend too much time on it for they got n3ds and PS vita.
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,045
Trophies
1
XP
3,135
Country
United States
hat's great except we never really got DSi homebrew working, we only got DS hardware limited homebrew and 3DS hardware homebrew as far as i know.
The DSi was sort of cracked, only to be patched not using the i.
It is possible to create dsi compatible homebrew that take advantage of the extra memory and increased processor speed. The new WiFi may not be supported but the rest of the system is very much the same as the ds. There some minor difference but for the most part they are the same. For example 2d and 3d hardware are the same.
Memory pit for one does not require a flash card. It has been so long though … I can’t recall if it needed one for installation … and I am too lazy to look. In any case lots of people have it installed and use it.
 

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,941
Trophies
3
Age
25
XP
21,831
Country
United States
accept that it's impossible to find a perfecte emulator for snes on the NintendoDS, you can't simply combine the snes emulators, they need to be in written in the same language, are based on the same principle...
According to the first post, I don't think he is expecting a perfect emulator.
That's great except we never really got DSi homebrew working, we only got DS hardware limited homebrew and 3DS hardware homebrew as far as i know.
The DSi was sort of cracked, only to be patched not using the i.
Technically you could try to make DSi application yourself, but it'll mean it needs a new flashcard too.
So again, not possible at this moment, and i'm not sure anyone wants to spend too much time on it for they got n3ds and PS vita.
I assume you haven't heard of the recent exploits such as Memory Pit, Flipnote Lenny, or stylehax then. Those are exploits for the DSi Camera, Flipnote Studio, and the DSi Browser, respectively. No flashcards are needed as well.
Also, there has been some recent homebrew such as TWiLight Menu++ & nds-bootstrap (both which I developed) and FastVideoDS, and they take advantage of the DSi hardware. For example, FastVideoDS uses it to play videos up to 60FPS (on DS, they'd play at half the speed).
As a bonus for the DS homebrew side, nds-bootstrap can run many DSiWare titles (a few of which use the Camera, but isn't the main feature) on the DS Phat and Lite models via flashcards.

All that said, while it may not be possible to run every single SNES game on a DSi, and with recent DS(i) homebrew development, I'm sure there's someone out there who's willing to develop an SNES emulator which runs best on DSi consoles.
An attempt has recently been made to improve lolSNES to run better on DSi consoles: https://github.com/Arisotura/lolSnes/commits/shito
 

Sarthix

Active Member
OP
Newcomer
Joined
Apr 4, 2021
Messages
33
Trophies
0
XP
302
Country
Italy
That's great except we never really got DSi homebrew working, we only got DS hardware limited homebrew and 3DS hardware homebrew as far as i know.
The DSi was sort of cracked, only to be patched not using the i.
Technically you could try to make DSi application yourself, but it'll mean it needs a new flashcard too.
So again, not possible at this moment, and i'm not sure anyone wants to spend too much time on it for they got n3ds and PS vita.
Alright, I'm sorry that we don't have the same opinion, but I'm trying to explain myself the best I can. Somehow I feel like you didn't read the full post or that somehow you didn't understand what I mean, so I will repeat myself once again. I just want this to be a friendly discussion.

This thread has the only purpose of encouraging the best coders that work on the emulation for the DS(i) to reconsider the idea of working on a new SNES emulator. In my post, I cover every point on why this can be possible, and I did a lot of research around the web just to be sure that what I was saying was not craziness. When @RocketRobz and @The Catboy replied, I knew that what I was searching for was possible to realize. You cannot say it's impossible because of the hardware limitation, because I have the proof now.

Something you can say, though, is that nobody will ever try to do a new SNES emulator for the DSi because nobody will ever be interested in it, and this is where the purpose of this thread comes in.

Also, I didn't mention anywhere that the new emulator can be created by combining the existing two SNES emulators.
 
More specifications

asiekierka

Well-Known Member
Member
Joined
Sep 26, 2007
Messages
120
Trophies
1
XP
1,112
Country
Poland
After all of this information, I really believe that if someone in this world has the dedication to make a better SNES emulator for the DSi, at least 90% of the games would run perfectly without any problem whatsoever.

300MHz PCs weren't enough to run "90% of the games perfectly without any problem whatsoever." You needed 3GHz PCs for that.

Super Nintendo Entertainment System:
- CPU 3.58 MHz
Nintendo DSi:
- CPU 133 MHz (37 times faster)

The DSi is much more than 37 times faster than the Super Famicom. It's also less than 37 times faster than the Super Famicom. It's not, it's not such an obvious number.

Generally, for CPU performance with an interpreter, the rule of thumb is that you need to have a ~10x faster emulating CPU than the emulated CPU. However, the SNES doesn't just have the 65C816 CPU: it also has the APU, which is its own 1.024 MHz CPU handling the audio logic. It also has the PPU, the video chip which the DS's video hardware doesn't map to entirely cleanly. It also has other functionality, like DMA which has to be executed at the correct times.

Either way, emulation isn't just a numbers game. Emulating the components of a SNES is fairly easy; even a GBA can emulate the 65816 CPU to some extent. Emulating them at the same time, in sufficiently perfect lockstep, is very hard and very computationally expensive. The alternative is per-game hacks, fixing the emulator to run a specific game correctly rather than more accurately represent the console.

N64 emulators often went down the path of hacks, which is why many games simply never worked right or accurately no matter the emulator. When CEN64, the first attempt at a truly accurate N64 emulator, came out, there was almost no computer in existence which could run any game at full speed with it.

Also, I didn't mention anywhere that the new emulator can be created by combining the existing SNES emulators.

This has already been done in the past, lolSnes reused some code from SNemulDS.

There is new hardware potential being unlocked - there's renewed interest in unlocking the power of DSi's third CPU, the Teak DSP; understanding of the DS/DSi hardware in general grows with time - but writing an emulator which is highly compatible despite having to make many concessions for accuracy is simply very hard, there's no way around it.
 

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,454
Trophies
2
XP
3,606
Country
I'm sorry to say it but you sound very entitled. You should start learning a suitable programming language and learn about the hardware you want to emulate and the one you run the emulation on. Then you can complain about the lack of a good emulator.
The SNES is literally that hard to emulate. Many games abuse tricky to emulate hardware behavior.

I don't think it's impossible to get something better working (on DSi at least) but with many more powerful devices out there simply no one bothered yet.
 

Sarthix

Active Member
OP
Newcomer
Joined
Apr 4, 2021
Messages
33
Trophies
0
XP
302
Country
Italy
300MHz PCs weren't enough to run "90% of the games perfectly without any problem whatsoever." You needed 3GHz PCs for that.



The DSi is much more than 37 times faster than the Super Famicom. It's also less than 37 times faster than the Super Famicom. It's not, it's not such an obvious number.

Generally, for CPU performance with an interpreter, the rule of thumb is that you need to have a ~10x faster emulating CPU than the emulated CPU. However, the SNES doesn't just have the 65C816 CPU: it also has the APU, which is its own 1.024 MHz CPU handling the audio logic. It also has the PPU, the video chip which the DS's video hardware doesn't map to entirely cleanly. It also has other functionality, like DMA which has to be executed at the correct times.

Either way, emulation isn't just a numbers game. Emulating the components of a SNES is fairly easy; even a GBA can emulate the 65816 CPU to some extent. Emulating them at the same time, in sufficiently perfect lockstep, is very hard and very computationally expensive. The alternative is per-game hacks, fixing the emulator to run a specific game correctly rather than more accurately represent the console.

N64 emulators often went down the path of hacks, which is why many games simply never worked right or accurately no matter the emulator. When CEN64, the first attempt at a truly accurate N64 emulator, came out, there was almost no computer in existence which could run any game at full speed with it.



This has already been done in the past, lolSnes reused some code from SNemulDS.

There is new hardware potential being unlocked - there's renewed interest in unlocking the power of DSi's third CPU, the Teak DSP; understanding of the DS/DSi hardware in general grows with time - but writing an emulator which is highly compatible despite having to make many concessions for accuracy is simply very hard, there's no way around it.
I wanted to take a moment to appreciate your interest in this argument and in teaching me about something. Almost everything you said was not known to me, and I was thinking of editing the first post, including some of this information, but I'm too lazy. Anyway, thank you very much.
I'm sorry to say it but you sound very entitled. You should start learning a suitable programming language and learn about the hardware you want to emulate and the one you run the emulation on. Then you can complain about the lack of a good emulator.
The SNES is literally that hard to emulate. Many games abuse tricky to emulate hardware behavior.

I don't think it's impossible to get something better working (on DSi at least) but with many more powerful devices out there simply no one bothered yet.
Yes, as I mentioned earlier, I don't know anything, not only about emulating but even about coding in general. I'm currently in high school in Italy (which has a different system and structure than the US one), and I'm studying mostly math and physics. I probably made this choice too early because I'm not enjoying them too much, and now that I'm in my last year, I have to finish the studies. Something I will look forward to learning in the future is coding alongside other things.
 

KleinesSinchen

GBAtemp's Backup Reminder + Fearless Testing Sina
Member
Joined
Mar 28, 2018
Messages
4,620
Trophies
4
XP
16,284
Country
Germany
SNES emulation on the DS isn't very interesting for me because the screens have a too low resolution to show all pixels. Either cropping or scaling or both. 2|3DS are more suitable in my opinion.

What makes SNES emulation especially tricky is the abundance of enhancement chips – especially Super FX and SA1. Those two are really powerful and have to be emulated as well for games that contained them.

Super Mario RPG... nope, it doesn't work.
Super Mario RPG contains SA1. That one is demanding.
 
  • Like
Reactions: Tarmfot and DaFixer
Another possibility

Nikokaro

Lost philosopher... searching for a way out...
Member
Joined
Feb 3, 2020
Messages
2,312
Trophies
2
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
7,585
Country
Italy
I only recall the existence, for those who don't know, of Zsnes for ms DOS, which twenty years ago ran at full speed on Pentium I or even less, and had almost complete compatibility except for some special chip games. The source code is freely available online, for those who wish to attempt the feat of porting it to DSi, whose available RAM would be more than sufficient to run It flawlessly.
 

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,360
Trophies
2
Location
Tree
XP
3,844
Country
Poland
I only recall the existence, for those who don't know, of Zsnes for ms DOS, which twenty years ago ran at full speed on Pentium I or even less, and had almost complete compatibility except for some special chip games. The source code is freely available online, for those who wish to attempt the feat of porting it to DSi, whose available RAM would be more than sufficient to run It flawlessly.
zsnes core is made in x86 assembly, porting this thing to arm architecture means starting from scratch.
 
Last edited by plasturion,
  • Like
Reactions: Kwyjor

Nikokaro

Lost philosopher... searching for a way out...
Member
Joined
Feb 3, 2020
Messages
2,312
Trophies
2
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
7,585
Country
Italy
zsnes core is made in x86 assembly, porting this thing to arm architecture means starting from scratch.
Lad, you pointed out something obvious. Note that the same thing was done many years ago by porting Snemul for MS-DOS to DS consoles. So nothing new there. Even at that time Zsnes for dos was much better in performance and compatibility than Snemul. Zsnes ran fast even on very weak processors and little available RAM: this was because ms-dos was a simple, light, and manageable operating system, I surmise.
 
  • Like
Reactions: F-00 and 1nitiate

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,360
Trophies
2
Location
Tree
XP
3,844
Country
Poland
Yep, zsnes is still my fav emulator, even for now I'm still using, cause it takes a very few cpu percent of usage and battery last longer. Compability is also great, I don't say is not a bad idea to use for effecient tricks and compabilty base... however pc processor has much more potential than arm in ds, different instruction set, multiple calculations in once cycle ability, different everything. You have to decode and figure out all the dependiecies from once assambly school to other one. Respect for the one who want to make it. Plus it was created to draw everything in framebuffer, so you have to rewrite much part that was done before in snemulds to work natively to use 2d engine same as snes, etc. Well, I'm not specialist here but wonder myself how much is possible to port it to DS and potentialy what we could recive, if Snemul went some way. But also we have current emulators with open source, isn't faster to optimize the current ones to assembly with some speed hax? Anyway fine, it's good to mention about ZSNES emulator here too. Or at least is it possible to fix layers priority in current emulators for ds and not to set them manually? I always wandered because snes and ds have almost the same 2d engine, the same number of layers and rotating/scaling features, but it may be also some stiff hardware gpu limitations on different graphic modes.
 
Last edited by plasturion,
  • Like
Reactions: Nikokaro

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://m.youtube.com/watch?time_continue=7&v=g71GIU_Bf2c&embeds_referring_euri=https%3A%2F%2Fwww...