Homebrew blargSnes -- SNES emulator for the 3DS (WIP)

Status
Not open for further replies.

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,565
Country
Chile
Isn't there a DSP microcode set up by the firmware? (or does it use CSND?)

DSP would be tricky. I started looking into it, and well... it's a pain. The only documentation is littered with errors, the assembly language is weird and confusing, and half the disassembled code makes no sense.


ive been like that for almost a year. trust me. I know that feeling.
 

dontay0100

Well-Known Member
Member
Joined
Mar 18, 2007
Messages
506
Trophies
0
XP
511
Country
United States
Which is why I love hackers.. I cant wait for homebrew.. I have some Zelda games I need to beat that I don't want to play on tv cuz my gf is so mean when a ninja try to game lol
 

Arisotura

rise of melonism
OP
Member
Joined
Dec 5, 2009
Messages
839
Trophies
1
Age
30
Location
center of the Sun
Website
kuribo64.net
XP
2,498
Country
France
Blarg, enough piracy debate please.

Also, I don't care about the VC and still wouldn't care even if it emulated SNES games. The VC basically just plays the game it is set to play, without any possible configuration or extra features. No savestates, no importing/exporting savefiles unless you're able to break some encryption/verification scheme, no fancy scaling options, no cheats, and so on...

Oh and homebrew emulators can load any ROM, not just one bundled ROM.


I added support for PPU modes 0-4. With the syscore trick, I'm able to properly emulate the SPC700, meaning more games will run. No sound for now though.

I'll release it in a few days :)
 

DaniPoo

Well-Known Member
Member
Joined
Jan 2, 2013
Messages
925
Trophies
1
Age
35
XP
2,284
Country
I touched the subject before about rendering 2d layers in 3D.
It can be done bu it requires some stretching in order to look good and there are some basic rules to be followed.

1. In order to get background layers to fill up the "screen" you need to stretch them a littleand only show some of the picture to each eye.
If you dont stretch there will be an "border" on the sides.

2. The layers are different from game to game so different stretching and order needs to be applied to each game.

3. dont try to make a popout effect from a 2D layer it will just hurt your eye as this effect works best for small objects in the middle of the screen and not very good near the edges of the screen.

I have made some 3D pictures of how it could look if anyone is interested
 

DSoryu

GBA/NDS Maniac
Member
Joined
May 5, 2010
Messages
2,356
Trophies
2
Location
In my house
XP
4,757
Country
Mexico
I touched the subject before about rendering 2d layers in 3D.
It can be done bu it requires some stretching in order to look good and there are some basic rules to be followed.

1. In order to get background layers to fill up the "screen" you need to stretch them a littleand only show some of the picture to each eye.
If you dont stretch there will be an "border" on the sides.

2. The layers are different from game to game so different stretching and order needs to be applied to each game.

3. dont try to make a popout effect from a 2D layer it will just hurt your eye as this effect works best for small objects in the middle of the screen and not very good near the edges of the screen.

I have made some 3D pictures of how it could look if anyone is interested

Hahaha of course everyone is interested :)

I'm giving this homebrew project high hopes, it sounds ans looks so amazing this far.
 

spinal_cord

Knows his stuff
Member
Joined
Jul 21, 2007
Messages
3,224
Trophies
1
Age
43
Location
somewhere
Website
spinalcode.co.uk
XP
3,365
Country
Please, not the stretching argument again. Stretching lo-res gfx always looks bad, no matter what the reason. A 4 pixel border will not be noticeable much, especially when the SNES screen is smaller than the 3DS screen anyway. I would rather have the stretching completely optional, just as blur effects would be on larger screen devices.
 
  • Like
Reactions: signz

DiscostewSM

Well-Known Member
Member
Joined
Feb 10, 2009
Messages
5,484
Trophies
2
Location
Sacramento, California
Website
lazerlight.x10.mx
XP
5,481
Country
United States
Here's a question, somewhat off-topic by itself, but sorta on-topic with this. When "3D" is enabled, does it force the parallax barrier to activate, or can you de/activate that separately? Just wondering because of the potential use of the top-screen for some semi-hi-res modes and even Mode 7, having 2 buffers that are 256 pixels wide mixed together to make it appear as 512 pixels wide (though it would still be 224p/240p/etc by nature).
 

the_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
31,284
Trophies
2
Age
38
Location
Dr. Wahwee's castle
XP
18,969
Country
United States
Blarg, enough piracy debate please.

Also, I don't care about the VC and still wouldn't care even if it emulated SNES games. The VC basically just plays the game it is set to play, without any possible configuration or extra features. No savestates, no importing/exporting savefiles unless you're able to break some encryption/verification scheme, no fancy scaling options, no cheats, and so on...

Oh and homebrew emulators can load any ROM, not just one bundled ROM.


I added support for PPU modes 0-4. With the syscore trick, I'm able to properly emulate the SPC700, meaning more games will run. No sound for now though.

I'll release it in a few days :)


Awesome work, man, keep it up :) Once sound is up and running, will ADSR, Gaussian interpolation (or Hermite), etc be implemented?
 

Arisotura

rise of melonism
OP
Member
Joined
Dec 5, 2009
Messages
839
Trophies
1
Age
30
Location
center of the Sun
Website
kuribo64.net
XP
2,498
Country
France
ADSR is already part of the lolSnes/SNemulDS DSP, so it'll be in.

Gaussian interpolation, noise and echo should be feasible easily, even with only 30% of the syscore's power.


Sound will not be in until we figure out how to make the 3DS play sound, though. We have the mostly-unknown DSP service (which apparently requires obtaining a signed DSP firmware binary somehow), and the CSND service we can't access because it's not listed in the service access list in gw_workaround.rsf.

In theory, the srv:Pm hole could make up for that, atleast on firmwares under 7.0.0-13. In practice, I can't manage to get a handle to srv:Pm. svc_connectToPort() returns 'not found' and srv_getServiceHandle() returns 'access denied'. I tried 'srv:Pm', 'srv::Pm', 'srv:PM' and 'srv::PM', same results.
 
  • Like
Reactions: the_randomizer

DaniPoo

Well-Known Member
Member
Joined
Jan 2, 2013
Messages
925
Trophies
1
Age
35
XP
2,284
Country
hey spinal_cord, Have you even seen the border that im talking about?
It's really painfull to look at as it's only visible to one eye on each side.

I dont anderstand what so horrible about stretching the background layers just a few pixels in order to prevent that and get more consistant graphics.
But if you want I could provide you with a picture of what it looks like streched and also unstretched so that you can judge for yourselves
 

spinal_cord

Knows his stuff
Member
Joined
Jul 21, 2007
Messages
3,224
Trophies
1
Age
43
Location
somewhere
Website
spinalcode.co.uk
XP
3,365
Country
hey spinal_cord, Have you even seen the border that im talking about?
It's really painfull to look at as it's only visible to one eye on each side.

I dont anderstand what so horrible about stretching the background layers just a few pixels in order to prevent that and get more consistant graphics.
But if you want I could provide you with a picture of what it looks like streched and also unstretched so that you can judge for yourselves


I would rather clip the edges without stretching, if they are too irritating to look at. From the very beginning of emulation I have had a problem with stretching screens, it isn't just a SNES/DS/3DS thing. Stretching is usually done badly, resulting in misshapen pixels or blurry images, both of which I find infinitely more painful to look at than a 1:1 ratio screen. Then of course there's the 4:3 ratio argument, which I couldn't care less about because you need a display many times larger than the original image to prevent unevenly stretched pixels. So, basically, given the option, I'd rather have 1:1 pixel perfect over ANY of the alternatives.
 

BejittoSSJ5

Well-Known Member
Newcomer
Joined
Jul 30, 2014
Messages
57
Trophies
0
Age
30
XP
175
Country
United States
SNES Games always have a sprite layer, basic 3DS should just have the sprite layer in the front and thats it :)

bQDr9UR.png
Liked for using DBZ : Hyper Dimension, in all seriousness though this idea could work very well, almost naturally since you are correct about the SNES using seperate layers (5 if I'm correct) in games.
 

gamesquest1

Nabnut
Former Staff
Joined
Sep 23, 2013
Messages
15,153
Trophies
2
XP
12,247
This guy did some screen grabs a while ago showing how some games can look in 3d.
http://joshuajamesslone.name/temp/snes3d/

Anyway, great work so far, I hope the project goes well.
they look very cool....hopefully 3d does get added to this emulator at some point....yeah i know it wont look good on all games, but due to the nature of how the snes games are displayed in layers its pretty practical to do and doesn't look too shabby either
 

Gadorach

Electronics Engineering Technologist
Member
Joined
Jan 22, 2014
Messages
970
Trophies
0
Location
Canada
XP
956
Country
Canada
This guy did some screen grabs a while ago showing how some games can look in 3d.
http://joshuajamesslone.name/temp/snes3d/

Anyway, great work so far, I hope the project goes well.
Those are great examples, and if we could get that effect, that would be really nice.You don't need a 3D headset or special glasses to view them by the way. I just looked at them by de-focusing my eyes to a crossed-eye view and merging the images, then locking focus on the image in a combined state. I recommend taking a look, as that's basically what I expect the games will look like in 3D when the feature is ready, and it looks damn good.
 

Arisotura

rise of melonism
OP
Member
Joined
Dec 5, 2009
Messages
839
Trophies
1
Age
30
Location
center of the Sun
Website
kuribo64.net
XP
2,498
Country
France
There's a detail, though: there's not just one 'sprite layer'. Sprites have BG-relative priorities.

Then the BG layers can also have tiles with 'high' priority.


Basically, SNES graphics aren't as simple as just 5 layers. This model would be closer to that of the DS.



Rowan: no, no binary yet. Release is coming very soon, though.
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: For real for real