Homebrew SNES9x for Old 3DS

granville

GBAtemp Goat
Member
Joined
Aug 24, 2007
Messages
5,102
Trophies
1
Age
35
Location
Orlando, Florida
XP
3,087
Country
United States
Seeing as how it takes a really powerful computer to get full-on emulation (as seen with higan), it's why Nintendo chose to go with the game + tailored emulator pack for their VC. With emulators like SNES9x, we're willing to deal with its issues that crop up, no matter how rare, because it's free, as are the games in the way we can get them.
The emulator is accurate for each separate game it's packaged with. You buy each game separately on the eShop, not buy an emulator and launch each game through it.
I already know this. My point is more or less agreeing with you, Nintendo WOULD approach this differently than SNES9x. But they're not interested in system-wide cycle accuracy, they release the games individually with a bunch of per-game hacks and tweaks. It gets them running "accurately" on an individual level, but at the expense of breaking many/most other games. Most emulator authors are averse to this and would not call this accurate. I agree and don't want SNES9x to take Nintendo's approach.

But with taking Nintendo's per-game tweaking into account, why don't they release SNES on o3DS? It seems possible at least for games without special chips. They still probably build off of a single universal base emulator as the foundation for their Wii SNES VC, which I doubt is very accurate or fast without the per-game tweaks.

It would be interesting to know how their base SNES emulator stacks up to SNES9x without any of the per-game tweaks.
 
Last edited by granville,

Deleted member 424658

Annoying Weaboo Girl
Member
Joined
Jun 4, 2017
Messages
499
Trophies
0
Age
24
Website
www.reddit.com
XP
677
Country
United States
I already know this. My point is more or less agreeing with you, Nintendo WOULD approach this differently than SNES9x. But they're not interested in system-wide cycle accuracy, they release the games individually with a bunch of per-game hacks and tweaks. It gets them running "accurately" on an individual level, but at the expense of breaking many/most other games. Most emulator authors are averse to this and would not call this accurate. I agree and don't want SNES9x to take Nintendo's approach.

But with taking Nintendo's per-game tweaking into account, why don't they release SNES on o3DS? It seems possible at least for games without special chips. They still probably build off of a single universal base emulator as the foundation for their Wii SNES VC, which I doubt is very accurate or fast without the per-game tweaks.

It would be interesting to know how their base SNES emulator stacks up to SNES9x without any of the per-game tweaks.
The emulators on o3DS require speed hacks to run games optimally, which is what they don't want.
 

granville

GBAtemp Goat
Member
Joined
Aug 24, 2007
Messages
5,102
Trophies
1
Age
35
Location
Orlando, Florida
XP
3,087
Country
United States
Most likely not if they're going for accuracy.
But that's the thing- they're already tweaking individual games to get them running correctly, those tweaks tend to break a lot of other games (causing booting issues, freezes, graphical/sound glitches and yes speed problems). Correct me if i'm wrong, but most emulator authors would not call that "accuracy".

So can we really make the assumption that speed hacks aren't part of this per-game tweaking process?
 

Deleted member 424658

Annoying Weaboo Girl
Member
Joined
Jun 4, 2017
Messages
499
Trophies
0
Age
24
Website
www.reddit.com
XP
677
Country
United States
But that's the thing- they're already tweaking individual games to get them running correctly, those tweaks tend to break a lot of other games (causing booting issues, freezes, graphical/sound glitches and yes speed problems). Correct me if i'm wrong, but most emulator authors would not call that "accuracy".

So can we really make the assumption that speed hacks aren't part of this per-game tweaking process?
It could be, but maybe they feel that the speed hacks needed cause too many problems in the game.
 

DiscostewSM

Well-Known Member
Member
Joined
Feb 10, 2009
Messages
5,484
Trophies
2
Location
Sacramento, California
Website
lazerlight.x10.mx
XP
5,495
Country
United States
But with taking Nintendo's per-game tweaking into account, why don't they release SNES on o3DS? It seems possible at least for games without special chips. They still probably build off of a single universal base emulator as the foundation for their Wii SNES VC, which I doubt is very accurate or fast without the per-game tweaks.

Because the o3DS is not strong enough to run them without resorting to increased inaccuracy, particularly in the graphical department. Current methods using hardware acceleration cannot properly mimic the SNES's visual output. It may not be noticeable in games that do not alter graphical settings mid-frame, but those that do, it's totally noticeable. First level in DKC is a fine example as it attempts to alter the palette per scanline. Changing the background color is one thing because it's not tied to any graphical tiles and is easily done, but changing even a color used by a background layer tiles is another because there is no paletted-texture support nor fragment/pixel shaders on the 3DS, so all graphics have to be converted to high-color tiles and placed in a cache. Trying to change these tiles for each scanline to get accurate results would result in even less performance than attempting to render the entire scene in software. Another example is Maridia in Super Metroid. The areas where you're underwater are extremely stressful on the GPU and hits the RAM bandwidth hard because it's manipulating each background layer (up to 3 I think) per scanline in a wavy fashion, causing it to get choppy. This causes up to 8x the information to be sent to the GPU (as each tile is made up of 8x8 pixels, so changing per scaline would result in 8 horizontal lines), and because the texture cache is relatively small, it has to continually swap texture data in and out of it from RAM, and with 8x the information being sent to the GPU being 8x the number of requests for certain texture data, that's a load on the bandwidth.
 
Last edited by DiscostewSM,
D

Deleted User

Guest
Because the o3DS is not strong enough to run them without resorting to increased inaccuracy, particularly in the graphical department. Current methods using hardware acceleration cannot properly mimic the SNES's visual output. It may not be noticeable in games that do not alter graphical settings mid-frame, but those that do, it's totally noticeable. First level in DKC is a fine example as it attempts to alter the palette per scanline. Changing the background color is one thing because it's not tied to any graphical tiles and is easily done, but changing even a color used by a background layer tiles is another because there is no paletted-texture support nor fragment/pixel shaders on the 3DS, so all graphics have to be converted to high-color tiles and placed in a cache. Trying to change these tiles for each scanline to get accurate results would result in even less performance than attempting to render the entire scene in software. Another example is Maridia in Super Metroid. The areas where you're underwater are extremely stressful on the GPU and hits the RAM bandwidth hard because it's manipulating each background layer (up to 3 I think) per scanline in a wavy fashion, causing it to get choppy. This causes up to 8x the information to be sent to the GPU (as each tile is made up of 8x8 pixels, so changing per scaline would result in 8 horizontal lines), and because the texture cache is relatively small, it has to continually swap texture data in and out of it from RAM, and with 8x the information being sent to the GPU being 8x the number of requests for certain texture data, that's a load on the bandwidth.
Thanks for the Background Info. This was an interesting read.:)
 

LumInvader

Well-Known Member
Member
Joined
Mar 30, 2013
Messages
702
Trophies
1
XP
1,784
Country
United States
Is the CIA version slower on n3DS than 3DSX?
Ok, since I got no response I've started testing this out myself. I just installed the latest .3dsx versions of all four of bubble's emulators and while they don't have any trouble hitting 60fps in most games, they do suffer from annoying microstutters on my n3DS. The microstutters are pretty easy to spot when forcing a game like Sonic or Mario to max scrolling speed. This was tested with and without frameskipping.

On the PSP, Snes9x TYL mecm is plagued by the same issue due to the way it splits audio and video between separate processors, which causes a desync effect that the devs never figured out how to fix. Whether or not there's a connection here, I don't know.

Another thing I noticed, temperPCE suffers from some serious audio lag.
 

DiscostewSM

Well-Known Member
Member
Joined
Feb 10, 2009
Messages
5,484
Trophies
2
Location
Sacramento, California
Website
lazerlight.x10.mx
XP
5,495
Country
United States
@bubble2k16

Not sure if you still have interests in improving this emulator further, but if you would like, I'd like to show you something I figured out that could be beneficial (but not publicly for the time being). I'd have PMed you straight away, but I couldn't.
 

naaiil

Active Member
Newcomer
Joined
Mar 21, 2016
Messages
40
Trophies
0
Age
31
XP
1,374
Country
Indonesia
i have issue when playing emerald dragon english patched v1.2. Game stuck but emulator is fine can go to menu, setting, etc..

anyone have same issue?

o2ds latest snes9x 1.21

Sent from my Mi-4c using Tapatalk
 
Last edited by naaiil,

lone_wolf323

Well-Known Member
Member
Joined
May 27, 2011
Messages
5,487
Trophies
2
XP
4,937
Country
Canada
Anyone know how I can contact bubble2k16, or if someone who can contact him on my behalf to let him know that I'm looking to show him something? Seems he's pretty much blocked everyone from sending him PMs or making conversations here.
basically the way you pinged him before. Though he probably hasnt seen it yet as his last logged in time was on Feb 22nd.
 

uyjulian

Homebrewer
Member
Joined
Nov 26, 2012
Messages
2,567
Trophies
2
Location
United States
Website
sites.google.com
XP
3,888
Country
United States
Anyone know how I can contact bubble2k16, or if someone who can contact him on my behalf to let him know that I'm looking to show him something? Seems he's pretty much blocked everyone from sending him PMs or making conversations here.
Clone the github repo, then run "git log"
 
Last edited by uyjulian,

MattKimura

3DS & WiiU Enthusiast
Member
Joined
Jun 30, 2014
Messages
2,137
Trophies
1
XP
2,937
Country
United States
Is it normal that whenever it saves the SRAM, it takes a long time (About a minute or less)? It also takes a long time whenever I exit a game and its creating a config file. Furthermore, the SRAM by default is on 1 second for every game and its frequently causing the game to freeze up while its writing to the SD. To top it off, whenever I open the emulator menu then go back to the game, it takes about 30 seconds for the game to resume. I was testing out some rom hacks that I recently put together and the game runs flawless on my New 3DS, its just the SRAM issue. Also saving a state takes quite a while as well, while I was playing brutal super mario world.

My SD card is brand new from about 3 months ago and I don't frequent my 3DS much. It's a Sandisk bought from Amazon and formatted to FAT32 32 KB allocation size. I've never experienced such issues with Snes9x until today. Its playable, but have to wait long periods between SRAM writes, exiting the GUI, saving the config, or making a save state.


My last concern. Is it normal that when I start a game, all the cheats are enabled by default? I opened earthbound to see about 30+ cheats enabled which I never enabled myself.

Again Im using a New 3DS, and I'm using Snes9x 1.21
 
Last edited by MattKimura,

SG6000

Well-Known Member
Member
Joined
Nov 2, 2015
Messages
391
Trophies
0
XP
1,400
Country
United Kingdom
There's an option to turn auto SRAM writing off for those games which use it. Switch it on and the game will only write to SD when you tap the bottom screen.
 

uyjulian

Homebrewer
Member
Joined
Nov 26, 2012
Messages
2,567
Trophies
2
Location
United States
Website
sites.google.com
XP
3,888
Country
United States
Is it normal that whenever it saves the SRAM, it takes a long time (About a minute or less)? It also takes a long time whenever I exit a game and its creating a config file. Furthermore, the SRAM by default is on 1 second for every game and its frequently causing the game to freeze up while its writing to the SD. To top it off, whenever I open the emulator menu then go back to the game, it takes about 30 seconds for the game to resume. I was testing out some rom hacks that I recently put together and the game runs flawless on my New 3DS, its just the SRAM issue. Also saving a state takes quite a while as well, while I was playing brutal super mario world.

My SD card is brand new from about 3 months ago and I don't frequent my 3DS much. It's a Sandisk bought from Amazon and formatted to FAT32 32 KB allocation size. I've never experienced such issues with Snes9x until today. Its playable, but have to wait long periods between SRAM writes, exiting the GUI, saving the config, or making a save state.


My last concern. Is it normal that when I start a game, all the cheats are enabled by default? I opened earthbound to see about 30+ cheats enabled which I never enabled myself.

Again Im using a New 3DS, and I'm using Snes9x 1.21
How much did you fill your SD card? If you have 64GB/128GB/256GB card, that's normal.
A suggestion would be to take note of your free space, back up your files, format your card to FAT32 with 32k allocation, make multiple <4GB empty files with a bit less than what your had of your free space, put your data back on the SD card, then delete the empty files. That should push the data to the end of the SD card so the 3DS doesn't have to go hunting for free blocks.
 
Last edited by uyjulian,
  • Like
Reactions: MattKimura

bubble2k16

Well-Known Member
OP
Member
Joined
Jul 25, 2016
Messages
467
Trophies
0
XP
2,118
Country
Senegal
@bubble2k16

Not sure if you still have interests in improving this emulator further, but if you would like, I'd like to show you something I figured out that could be beneficial (but not publicly for the time being). I'd have PMed you straight away, but I couldn't.

Oops... sorry I have been way too busy with work. :) I will be interested in knowing what you have discovered, although I wouldn't know if I have much time to implement. I'm still fixing up some stuff with the PicoDrive port.

Is it normal that whenever it saves the SRAM, it takes a long time (About a minute or less)? It also takes a long time whenever I exit a game and its creating a config file. Furthermore, the SRAM by default is on 1 second for every game and its frequently causing the game to freeze up while its writing to the SD. To top it off, whenever I open the emulator menu then go back to the game, it takes about 30 seconds for the game to resume. I was testing out some rom hacks that I recently put together and the game runs flawless on my New 3DS, its just the SRAM issue. Also saving a state takes quite a while as well, while I was playing brutal super mario world.

My SD card is brand new from about 3 months ago and I don't frequent my 3DS much. It's a Sandisk bought from Amazon and formatted to FAT32 32 KB allocation size. I've never experienced such issues with Snes9x until today. Its playable, but have to wait long periods between SRAM writes, exiting the GUI, saving the config, or making a save state.


My last concern. Is it normal that when I start a game, all the cheats are enabled by default? I opened earthbound to see about 30+ cheats enabled which I never enabled myself.

Again Im using a New 3DS, and I'm using Snes9x 1.21

I find that if the SD card is too full, the loading and saving of anything becomes really slow. It's probably how the libctru frameworks are written - no caching. So my suggestion is really to keep as little files on the SD card as possible.
 
  • Like
Reactions: MattKimura

MattKimura

3DS & WiiU Enthusiast
Member
Joined
Jun 30, 2014
Messages
2,137
Trophies
1
XP
2,937
Country
United States
Oops... sorry I have been way too busy with work. :) I will be interested in knowing what you have discovered, although I wouldn't know if I have much time to implement. I'm still fixing up some stuff with the PicoDrive port.



I find that if the SD card is too full, the loading and saving of anything becomes really slow. It's probably how the libctru frameworks are written - no caching. So my suggestion is really to keep as little files on the SD card as possible.
Thanks for the clarification, I'm glad to know that it's not my brand new SD card going bad when its barely used. Will deleting some data help the issue, or will I have to resort to formatting the SD card as julialy mentioned? I checked and there's 24 GB free of 116 GB usable. It's quite a shame that even 64 GB users have this issue, it's hard not to fill that up. The best solution is to use a separate SD card with the emulator installed to it. Retroarch's Snes9x2002 core also works good without any hiccups from writing data. Snes9x will always be close to my heart as I've always been a fan of it since its release. Sadly my SD card limits it unless workarounds are done. 32 GB or less SD card users would be better.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    ZeroT21 @ ZeroT21: only ps5 updated to latest firmware can go on psn, jailbroken ones just don't use psn or they...