Emulation Homebrew Emulator The DSi deserves a better SNES emulator

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
12,983
Trophies
4
Location
WA State
Website
ko-fi.com
XP
17,020
Country
United States
I don't see any point in writing DSi-specific software emulators, when the 3DS is not only more accessible to homebrewers, but the homebrew is more accessible to the end-users as well. Emulators for the N3DS are abundant, and SNES isn't half bad on the system. the N3DS also has better screens, more pixels to work with, as well as more CPU cores, clockspeed, and RAM to work with. You need to keep your expectations realistic for the system, and understand why certain things haven't happened on said system. Development limitations on the DSi seem never-ending, and some of the best programmers on this site like Rocket Robz have already weighed in as to why.
 
  • Like
Reactions: CoolMe

Dre4mR

Active Member
OP
Newcomer
Joined
Apr 4, 2021
Messages
31
Trophies
0
XP
249
Country
Italy
We don't "deserve" anything. Why bother making these kinds of threads, it comes of as very entitled and incredibly naive.

You'd make a good campaigner but a terrible politician.
Being a politician is not my goal. I partially agree with you because I don’t have any particular competence in this kind of argument. But at the same time, this is a free forum that accepts discussions between developers and other people. Why I shouldn’t have posted this thread?
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.
And since according to most of them this is very difficult, but still possible, why I shouldn’t have posted anything? Also, just so you know, I did a very big research on the internet and writing the first post entirely took me around 3 hours.
 
Last edited by Dre4mR,
  • Like
Reactions: Nikokaro

Nikokaro

Lost philosopher... searching for a way out...
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,751
Country
Italy
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 think you mean the Windows version, since the dos version is inconvenient to play nowadays (via dosbox perhaps?).

Or at least is it possible to fix layers priority in current emulators for ds and not to set them manually?
This is the biggest annoyance of this emulator.
 
  • Like
Reactions: plasturion

Dre4mR

Active Member
OP
Newcomer
Joined
Apr 4, 2021
Messages
31
Trophies
0
XP
249
Country
Italy
I don't see any point in writing DSi-specific software emulators, when the 3DS is not only more accessible to homebrewers, but the homebrew is more accessible to the end-users as well. Emulators for the N3DS are abundant, and SNES isn't half bad on the system. the N3DS also has better screens, more pixels to work with, as well as more CPU cores, clockspeed, and RAM to work with. You need to keep your expectations realistic for the system, and understand why certain things haven't happened on said system. Development limitations on the DSi seem never-ending, and some of the best programmers on this site like Rocket Robz have already weighed in as to why.
I added a warning sentence to the first post. I suggest you to read that, thank you.
 

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,214
Trophies
2
Location
Tree
XP
3,501
Country
Poland
I don't see any point in writing DSi-specific software emulators, when the 3DS is not only more accessible to homebrewers, but the homebrew is more accessible to the end-users as well. Emulators for the N3DS are abundant, and SNES isn't half bad on the system. the N3DS also has better screens, more pixels to work with, as well as more CPU cores, clockspeed, and RAM to work with. You need to keep your expectations realistic for the system, and understand why certain things haven't happened on said system. Development limitations on the DSi seem never-ending, and some of the best programmers on this site like Rocket Robz have already weighed in as to why.
Some pepole like me just don't have 3DS, not interested nor looking for one. There are some adventages of DS/DSi hardware over 3DS. Nitroswan works better on DS/DSi thanks to 75hz framerate trick that is not possible on 3DS/N3DS hardware because of number of scanlines. Other reason may be is not let the scene for your favorite system die but prove that is possible, same as c64 scene is still alive over c128 or OCS demos over AGA chipset. Great to see things in still development, respect and thanks for those who want to participate for less capable machine.
 

asiekierka

Well-Known Member
Member
Joined
Sep 26, 2007
Messages
120
Trophies
1
XP
989
Country
Poland
I don't see any point in writing DSi-specific software emulators, when the 3DS is not only more accessible to homebrewers, but the homebrew is more accessible to the end-users as well.

Isn't the New 3DS ~3-4x more expensive on the second-hand market compared to a DSi?

To be frank, though, an emulation-centric AliExpress handheld or a controller for one's mobile phone is probably both cheaper and more powerful than either; at the very least, cheaper than the 3DS option.
 

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,282
Country
Some pepole like me just don't have 3DS, not interested nor looking for one. There are some adventages of DS/DSi hardware over 3DS. Nitroswan works better on DS/DSi thanks to 75hz framerate trick that is not possible on 3DS/N3DS hardware because of number of scanlines. Other reason may be is not let the scene for your favorite system die but prove that is possible, same as c64 scene is still alive over c128 or OCS demos over AGA chipset. Great to see things in still development, respect and thanks for those who want to participate for less capable machine.
What 75Hz trick? The DS can't go above 59.82 Hz. If anything we have more control of display timings on 3DS as proven here.
 

JaapDaniels

Well-Known Member
Member
Joined
Apr 22, 2012
Messages
1,193
Trophies
1
Age
40
Website
github.com
XP
2,434
Country
Netherlands
According to the first post, I don't think he is expecting a perfect emulator.

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
I missed out a lot of dev. i stand corrected.
@Dre4mR seams there is some hope, still i don't see it happen for there is easy to grab alternatives for programmers, and most rather put thier time there, but you never know.
 
  • Like
Reactions: Dre4mR

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,595
Trophies
3
Age
24
XP
20,997
Country
United States
What 75Hz trick? The DS can't go above 59.82 Hz. If anything we have more control of display timings on 3DS as proven here.
The trick works by writing to the VCount register after a specific number of cycles. As a result, the refresh rate of the screen gets changed/adjusted.
The trick is used by multiplayer DS(i) games in order to maintain sync between the DS consoles, and is also used by FastVideoDS in order to achieve jitter-free playback, and GBARunner2 & 3 to match the original GBA refresh rate.
(Fun fact: GBA mode on DS Phat & DS Lite duplicates some frames instead of adjusting refresh rate, so when you look closely, you'll notice the duplicate frames.)
 

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,214
Trophies
2
Location
Tree
XP
3,501
Country
Poland
Speaking of Nitroswan switch Options -> Settings -> Allow Refresh Change: On/Off and compare. For me it makes a difference.
It needs to skip 55 lines, where on 3ds you can skip only 10 so it's not working. Also you can check commision changes -> here.
 

asiekierka

Well-Known Member
Member
Joined
Sep 26, 2007
Messages
120
Trophies
1
XP
989
Country
Poland
Yes, but i don't see how this can go faster. Only slower.

The DS's screen timings are constant. What VCOUNT does is control the current vertical line - and it just so happens you can write to it. As the vertical blank period consists of quite a few lines, you can go both backwards and forwards in this manner, which respectively lengthens or shortens the vertical blank. This is how it can go both faster and slower.

Speaking of Nitroswan switch Options -> Settings -> Allow Refresh Change: On/Off and compare. For me it makes a difference.
It needs to skip 55 lines, where on 3ds you can skip only 10 so it's not working. Also you can check commision changes -> here.

No. It's because TWL_FIRM does not handle writes to VCOUNT well. It makes sense - the current working theory is that Nintendo only ever intended VCOUNT writes to be used for synchronizing displays with each other in ad-hoc multiplayer, and certainly not for under/overclocking the display panel.
 

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,282
Country
The DS's screen timings are constant. What VCOUNT does is control the current vertical line - and it just so happens you can write to it. As the vertical blank period consists of quite a few lines, you can go both backwards and forwards in this manner, which respectively lengthens or shortens the vertical blank. This is how it can go both faster and slower.
Ah, yeah, but i can see this causing issues with the LCD. If you don't give the LCD the blanking time it needs there is a chance it won't handle this well and either you get glitches or weird artifacts.

As for TWL_FIRM it already tries a best effort approach adjusting the blanking period of the display each frame. But it only adjusts VBlank so there is not as much room. But we can tweak far more settings than just that if needed.
 

Nikokaro

Lost philosopher... searching for a way out...
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,751
Country
Italy
Wow, so many good technical disquisitions. And someone said that no one cares about this old console anymore. Why don't you productively combine your lofty minds and refined concepts to put into practice what our friend OP so kindly asked for: a new, holy, blessed, more efficient (or at least decent), so longed-for SNES emulator on DSi? 😉
 
  • Like
Reactions: Dre4mR

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,295
Trophies
4
Location
Space
XP
13,853
Country
Norway
WARNING!
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 being 15 years into the future, you got a child, being proud of him, 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. He cries* :sad:

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 literally WHO CARES, they are just two games out of hundreds of them.

Ok, now let's calm down please. 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:

View attachment 401468


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


What the hell is THIS?? 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 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 80% of the games would run perfectly without any 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. After all, that is everything I have in my mind, the mind of a dreamer...

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. Lastly, I wanted to share a list of some source codes that might help someone.

I think it's unlikely that any SNES emulator for DSi could run Super Mario RPG (or SuperFX games like Star Fox), these tend to be the most demanding SNES games to run and far more powerful platforms than the DSi, such as the PSP or GP2X, or the DSTWO flashcart, still struggled to run them at playable framerates.

Those games aside, there certainly is a lot of room for improvements though. I think SnemulDS is a marvel, it's amazing what it was able to do on the weak DS, full speed SNES emulation is something I would have just thought not possible on the DS up until that point. But in the process, many compromises had to be made which affected compatibility. On the more powerful DSi, some of these compromises would not have needed to be made, potentially improving the compatibility (and depending less on game specific hacks and workarounds which would make the emulator easier to maintain)

I think high compatibility with non-special chip games and the simpler special chips would be a realistic goal for a new emulator. This would be the vast majority of the SNES library, leaving out maybe a few dozen games, sadly some popular games are among the ones that would just be too demanding, but still a much greater library (and with less issues in the games that already worked) than SnemulDS.
 

wavemotion

Benign Geek
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,346
Country
United States
It is possible to create dsi compatible homebrew that take advantage of the extra memory and increased processor speed.
All seven (7) of the emulators currently under my care utilize the DSi for extra speed. One of them also uses the extra memory (Nintellivision requires about 10MB out of the 16MB DSi memory to render the most complex of ECS banking schemes).

FluBBa's emulators also take advantage of the faster DSi processor.
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,033
Country
United States
All seven (7) of the emulators currently under my care utilize the DSi for extra speed. One of them also uses the extra memory (Nintellivision requires about 10MB out of the 16MB DSi memory to render the most complex of ECS banking schemes).

FluBBa's emulators also take advantage of the faster DSi processor.
Uhm .. are you trying to convince me, or just citing examples? As that was my point - it is already possible.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Lol rappers still promoting crypto