Hacking [Proof-Of-Concept] N3dES

CollosalPokemon

ばん。。。かい
OP
Member
Joined
Oct 18, 2009
Messages
682
Trophies
0
XP
1,724
Country
United States
N3dES Emulator which plays NES games in the 3DS-mode browser

For the past week I've been experimenting with the 3DS web browser and javascript. I found a neat emulator for the NES made in javascript by Ben Firshman (JSNES) so I decided to optimize it for 3DS use. Now I am happy to present the first 3DS-mode emulator which plays homebrew NES ROMs without a flashcart or an exploit, granted VERY slowly because of Nintendo put restrictions on processing power in the 3DS Web Browser's canvas/javascript abilities.
However, since Nintendo made javascript and html5 severely weaker than it could have been this is a proof-of-concept emulator and it runs VERY slowly but it does run. I am trying to work on a workaround to make it run faster but the current canvas/html5 is limited by Nintendo. Even with its limitations though, it's 0.30-ish FPS better than I've seen here so don't complain about speed because of the browser's limits on canvas elements. A lot of buttons are experimental atm it works.
Again, this is for now a proof-of-concept of running NES ROMs through the 3DS Web Browser. (I know I put a lot of emphasis on like everything in case your wondering)

While the 3DS is not yet hacked that doesn't mean there can't be homebrew emulation running through the 3DS Browser, which runs in 3DS mode. Again, granted the emulation is VERY slow because of Nintendo putting limits on the processing of many elements but it is custom NES emulation running in 3DS mode 3DS Web Browser.

N3dES = Smexy combination of 3DS and NES :P

Release:

Go to this page on your 3DS (Note: This is a 3DS-only page so you'll only be able to browse this on your 3DS) : n3des.byethost6.com

New homebrew added! [10/31/2011]
From NES World

"Zombie Zap" (NES Zapper/lightgun example)
"Stuck In Castle Nessenstein"


Pros:

* No flashcart needed
* Region Free NES emulation
* Virtually no graphic bugs
* Runs NES homebrew ROMs
* Runs in 3DS fullscreen as much as possible (there are still the 3DS web browser's 2 HUDs)
* Uses touchable buttons not physical buttons (not all button codes for 3DS are known but as I've tested retrieving a physical button click on the 3DS is really slow so touch buttons are faster)
* Can pause gameplay at any time anywhere in the game
* Can reset/reload game
* Can be used on a retail 3DS unit.
* Can emulate NES Zapper through touch screen (note: input is slow due to javascript limitations)

Cons:

* Can not save to your SD (although not many nes games can/actually need to save)
* VERY slow (< 1 FPS) (Again, this is a proof-of-concept release)
* Can not use ROMs from SD
* Requires an internet connection (not a big deal though, most of us have internet connections if we can view gbatemp lol)
* No sound (currently not known how to play custom sounds on 3DS through javascript in the browser)
* Restricted to 65KB ROM or less (working on support for bigger ROMs)

Media:

superpakpak.jpg


nyancat.jpg
 
  • Like
Reactions: 6 people

Critica1

Well-Known Member
Member
Joined
Oct 4, 2011
Messages
185
Trophies
0
Age
33
Location
CA
Website
www.onehitgamer.com
XP
161
Country
United States
Great experiment, I look forward to more progress.

CollosalPokemon said:
because of Nintendo put restrictions on processing power in the 3DS Web Browser's canvas/javascript abilities.
However, since Nintendo made javascript and html5 severely weaker than it could have

A very plausible concept and a good observation. If eventually over time the system does get hacked completely, it could be possible to overclock to get the processing power needed to improve stability.
 

kevan

Imagination rules the world
Member
Joined
Dec 4, 2009
Messages
1,378
Trophies
0
Age
29
Location
Place
Website
Visit site
XP
496
Country
Truthfully this is sort of pointless (since you will never have the power to emulate until a hack, and when a hack comes we could just use a real emu...)
 
  • Like
Reactions: 1 person

CollosalPokemon

ばん。。。かい
OP
Member
Joined
Oct 18, 2009
Messages
682
Trophies
0
XP
1,724
Country
United States
Great experiment, I look forward to more progress.

CollosalPokemon said:
because of Nintendo put restrictions on processing power in the 3DS Web Browser's canvas/javascript abilities.
However, since Nintendo made javascript and html5 severely weaker than it could have

A very plausible concept and a good observation. If eventually over time the system does get hacked completely, it could be possible to overclock to get the processing power needed to improve stability.

Thank you Critica1. I am working on improving the frame rate, although it's difficult when the processing speed is as limited as Nintendo made it.

Truthfully this is sort of pointless (since you will never have the power to emulate until a hack, and when a hack comes we could just use a real emu...)

Or rather it will be pointless when a hack comes out, since now there are no hacks the point is to demonstrate running ROMs without a flash cart. when a hack comes out it'll have more power and will run faster, but the proof is right there showing it's possible to emulate atm until a hack comes out.
 

deathking

Well-Known Member
Member
Joined
Mar 15, 2009
Messages
647
Trophies
0
Website
toxsic.com
XP
235
Country
United States
great idea this seems cool stop nintendos monoploy of 5 dollar nes games
maybe it could run lower cpu requirement emus like atari on the web faster
 

alidsl

I am now a lurker
Member
Joined
May 27, 2009
Messages
2,823
Trophies
0
Age
28
Location
Kanto - Pallet Town
XP
688
Country
*snip* Just to make Kevan look better
this guy is currently the closest you can get to emulating with the 3DS. Plus if the 3DS does get hacked then the power of the browser can be increased and the games can be played perfectly
 

CollosalPokemon

ばん。。。かい
OP
Member
Joined
Oct 18, 2009
Messages
682
Trophies
0
XP
1,724
Country
United States
kevan isn't being a dick, he's just stating the obvious. It doesn't run fast yet, which is what I was expecting a lot of people to really nail me on, however I wanted to post this showing it's possible.
But you're right, this is 0.20-0.30 FPS better than anyone has publically done on the 3DS without a flash card. Not great but it works.
 
  • Like
Reactions: 1 person

alidsl

I am now a lurker
Member
Joined
May 27, 2009
Messages
2,823
Trophies
0
Age
28
Location
Kanto - Pallet Town
XP
688
Country
kevan isn't being a dick, he's just stating the obvious. It doesn't run fast yet, which is what I was expecting a lot of people to really nail me on, however I wanted to post this showing it's possible.
But you're right, this is 0.20-0.30 FPS better than anyone has publically done on the 3DS without a flash card. Not great but it works.
He's saying this isn't a proof of concept because it's slow

That kinda ruins the point of it being a proof of concept :unsure:
 

damedus

Well-Known Member
Member
Joined
Jun 11, 2007
Messages
220
Trophies
0
Age
44
Location
Puerto Rico
XP
278
Country
United States
just a small question would it be possible using this same method to lets say get a streaming app to stream movies from our pc to the app and then have the app be a local webpage we can access on the 3ds? or even to stream a emu running on our pc and we just get the end result streamed on the 3ds browser and the 3ds browser used to send the game pad commands? or even creating small community based home brew like a java based old school rpg that can be run on the browser?
 

exangel

executioner angel
Member
Joined
Apr 20, 2010
Messages
1,571
Trophies
0
Age
40
Location
Tucson, AZ
XP
602
Country
United States
just a small question would it be possible using this same method to lets say get a streaming app to stream movies from our pc to the app and then have the app be a local webpage we can access on the 3ds? or even to stream a emu running on our pc and we just get the end result streamed on the 3ds browser and the 3ds browser used to send the game pad commands? or even creating small community based home brew like a java based old school rpg that can be run on the browser?

A lot can be done if most of the computation is done remotely.. this is something that is possible in a number of ways, just not within my realm of expertise and there are limitations in the 3DS browser. But this requires something between running your own server and actually designing a cloud computing system on it, I'd think.

edit: Basically, a service akin to onLive which only exists because it makes money and isn't completely free
 

Frederica Bernkastel

Well-Known Member
Member
GBAtemp Patron
Joined
Jan 31, 2008
Messages
3,169
Trophies
2
Age
28
Location
Hinamizawa
XP
989
Country
Japan
I'm terribly sorry, but you're hosting commercial ROMs on your site, and have broken the rules by linking this emulator here. The proof lies in the source code, which I'll admit you attempted to hide very well (javascript redirect from here, and a meta-refresh in noscript tags). However, this is more of an insult towards a user's intelligence than anything else. I've taken the liberty of pastebinning the source-code, which is here (with the offending links removed, of course). Also, it fails to pass both the XHTML 1.0 standard that it is declared as, and the HTML5 standard that you have claimed it complies to, something that you can fix pretty easily (seriously, some of the errors are just faulty placed comments).
 

CollosalPokemon

ばん。。。かい
OP
Member
Joined
Oct 18, 2009
Messages
682
Trophies
0
XP
1,724
Country
United States
I'm terribly sorry, but you're hosting commercial ROMs on your site, and have broken the rules by linking this emulator here. The proof lies in the source code, which I'll admit you attempted to hide very well (javascript redirect from here, and a meta-refresh in noscript tags). However, this is more of an insult towards a user's intelligence than anything else. I've taken the liberty of pastebinning the source-code, which is here (with the offending links removed, of course). Also, it fails to pass both the XHTML 1.0 standard that it is declared as, and the HTML5 standard that you have claimed it complies to, something that you can fix pretty easily (seriously, some of the errors are just faulty placed comments).

I'm not posting links to commercial ROMs. In fact with redirect was saying I had taken the liberty and time to hide the rom downloads from the general public. Most people would not go to the lengths of where you went. Technically it uses HTML5 canvas's although it might not be standardized.
 

Frederica Bernkastel

Well-Known Member
Member
GBAtemp Patron
Joined
Jan 31, 2008
Messages
3,169
Trophies
2
Age
28
Location
Hinamizawa
XP
989
Country
Japan
I'm terribly sorry, but you're hosting commercial ROMs on your site, and have broken the rules by linking this emulator here. The proof lies in the source code, which I'll admit you attempted to hide very well (javascript redirect from here, and a meta-refresh in noscript tags). However, this is more of an insult towards a user's intelligence than anything else. I've taken the liberty of pastebinning the source-code, which is here (with the offending links removed, of course). Also, it fails to pass both the XHTML 1.0 standard that it is declared as, and the HTML5 standard that you have claimed it complies to, something that you can fix pretty easily (seriously, some of the errors are just faulty placed comments).

I'm not posting links to commercial ROMs. In fact with redirect was saying I had taken the liberty and time to hide the rom downloads from the general public. Most people would not go to the lengths of where you went. Technically it uses HTML5 canvas's although it might not be standardized.
It's not that HTML5 isn't standardized, you're blatantly declaring the document as XHTML 1.0 Transitional.
Code:
Something that you would have picked up, if you did indeed write any of this. I'm basing this on the assumption that since none of the syntax is consistent ("you" switch between different types of indents, different types of capitalization, declare opposing standards etc...), it must have been written by different people (seemingly with very different purposes in mind), and as such I can conclude that you've plagiarized content from other sources. (I even linked 3dsbrew.org for the redirect, which is letter-for-letter the same (except with a different redirect link)).
Furthermore, there are no canvas elements in this page whatsoever despite you saying otherwise, and frankly I'm surprised that you're even keeping up this farce.
And actually, I didn't go to any lengths whatsoever, I simply have META Redirects disabled and have NoScript set to block untrusted sites by default. I got a very nice little popup telling me that your site tried to redirect me twice, and that's when I checked the page source. I know for a fact that there are many others who have a similar setup. If you would only remove those from your emulator, you wouldn't be breaking any rules.
...Oh, now that I've mentioned rules, let's take a look at your webhost:
Software Distribution & Gaming
WebHostingPad Web Hosting and Ecommerce accounts are not configured for the purposes of distributing software and/or multimedia products. This includes but is not limited to file sharing, torrents, warez, and pirated material.Running any online gaming is prohibited due to intense CPU and memory usage.
What a shame.

EDIT: Ah, now you've removed the offending content, feel free to disregard this post.
 

CollosalPokemon

ばん。。。かい
OP
Member
Joined
Oct 18, 2009
Messages
682
Trophies
0
XP
1,724
Country
United States
I'm terribly sorry, but you're hosting commercial ROMs on your site, and have broken the rules by linking this emulator here. The proof lies in the source code, which I'll admit you attempted to hide very well (javascript redirect from here, and a meta-refresh in noscript tags). However, this is more of an insult towards a user's intelligence than anything else. I've taken the liberty of pastebinning the source-code, which is here (with the offending links removed, of course). Also, it fails to pass both the XHTML 1.0 standard that it is declared as, and the HTML5 standard that you have claimed it complies to, something that you can fix pretty easily (seriously, some of the errors are just faulty placed comments).

I'm not posting links to commercial ROMs. In fact with redirect was saying I had taken the liberty and time to hide the rom downloads from the general public. Most people would not go to the lengths of where you went. Technically it uses HTML5 canvas's although it might not be standardized.
It's not that HTML5 isn't standardized, you're blatantly declaring the document as XHTML 1.0 Transitional.
Code:
Something that you would have picked up, if you did indeed write any of this. I'm basing this on the assumption that since none of the syntax is consistent ("you" switch between different types of indents, different types of capitalization, declare opposing standards etc...), it must have been written by different people (seemingly with very different purposes in mind), and as such I can conclude that you've plagiarized content from other sources. (I even linked 3dsbrew.org for the redirect, which is letter-for-letter the same (except with a different redirect link)).
Furthermore, there are no canvas elements in this page whatsoever despite you saying otherwise, and frankly I'm surprised that you're even keeping up this farce.
And actually, I didn't go to any lengths whatsoever, I simply have META Redirects disabled and have NoScript set to block untrusted sites by default. I got a very nice little popup telling me that your site tried to redirect me twice, and that's when I checked the page source. I know for a fact that there are many others who have a similar setup. If you would only remove those from your emulator, you wouldn't be breaking any rules.
...Oh, now that I've mentioned rules, let's take a look at your webhost:
Software Distribution & Gaming
WebHostingPad Web Hosting and Ecommerce accounts are not configured for the purposes of distributing software and/or multimedia products. This includes but is not limited to file sharing, torrents, warez, and pirated material.Running any online gaming is prohibited due to intense CPU and memory usage.
What a shame.

Oh geez I knew I was forgetting to credit someone. I meant to credit 3DBrew and I did credit Ben Firshman for his JSNES clearly, who based it on a different guy's emulator. So there were multiple minds on this case. I mostly did small revisions to make it a little nicer on the 3DS, so a lot of the code I was planning to revise. I removed the offensive links.

Oh? That's funny I'm at 0% CPU usage.
Plus anyways I'm sure they were talking about games like WoW. I'm sure that uses significant CPU. If I added in WiFi multiplayer (perhaps by sending pushed=x signals) that would use much more CPU and technically become an online game.
 

indask8

New Member Forever
Member
Joined
Apr 19, 2007
Messages
987
Trophies
0
Age
37
Location
Look at the Flag...
XP
352
Country
France
Nice proof of concept, reminds me of the good old time of the PSP flash portals.

You should also release the source code/website folder, so people who have an http server running on their computer can put the games they want and run it locally.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: @salazarcosplay, I heard herbert stopped appearing on the show