Тёмный

Building an All-Terrain NES Emulator 

Inkbox
Подписаться 106 тыс.
Просмотров 50 тыс.
50% 1

I created an all terrain NES emulator that will run on any device anywhere. Toploader - JSNES, uses the JSNES emulator created by Ben Firshman. A few features were added on top of the base emulator. First, the NES output screen was expanded, second, colors were corrected to be more acurate to the origional hardware of the NES, and third controls and mapping were added both for PC and mobile.
Toploader - JSNES is availible now at notin.tokyo/nes
To remap the keys just click on any button and then press whatever key you would like to bind.
And as a final note here, I am about to start a new series of videos on this channel which will begin to tell a story that I've wanted to share for as long as I've been on youtube.com. So please stay tuned for that.
Sources and further reading:
en.wikipedia.org/wiki/YIQ
www.nesdev.org/wiki/PPU_palettes
Tetris video from: • Tetris for NES (CRT Ga...

Наука

Опубликовано:

 

24 мар 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 129   
@Faoplich-On-Rumble
@Faoplich-On-Rumble Год назад
POV: Nintendo getting ready to arrest the entire internet and the entirety of javascript just because theres a nes emulator website
@juanmacias5922
@juanmacias5922 Год назад
Cool concept! I like using web apps because anyone can use it, but dealing with browser specific errors can be annoying lol
@roguewarrior51
@roguewarrior51 Год назад
best way to play Oregon trail
@dubbynelson
@dubbynelson Месяц назад
not anyone-the memory overhead on a lot of web apps is absurd and not everyone buys the latest iPad every four years to catch up with the overwhelming bloat that modern software development teams (or, more specifically, those in charge of said teams) have made so disgustingly standard.
@Smaxx
@Smaxx Год назад
Nice! Only two minor complaints from me: If you try to load a game using an unsupported/unimplemented mapper, there's an error message in the JS console, but not visible to the regular user. And the second one is about your input scheme: Not everyone is on QWERTY keyboards. I as a German user QWERTZ, which kind of works, but imagine having to play with Y and X. It's probably even worse for French AZERTY.😉 As a nice to have feature, would be nice to have a PAL toggle to run the game at 50Hz.
@InkboxSoftware
@InkboxSoftware Год назад
Try clicking on the input button and you can rebind the key. I will also work on the mapper alert issue.
@Smaxx
@Smaxx Год назад
@@InkboxSoftware Ah, nice, that wasn't obvious enough. With visible key binds disabled you only see the controller changing color after all.
@yaboijuanito1460
@yaboijuanito1460 Год назад
@@InkboxSoftware I'm having trouble to play my NES roms on the website
@WinVisten
@WinVisten Год назад
There used to be one called virtualNES or something like that , it existed years ago in like 2006-2011, but it disappeared forever ago. Basically it used a web-app emulator that would load a game you clicked from a list of games that the creator/owner of the site/emulator had a copy of.
@BoysenBarry
@BoysenBarry Год назад
This brings me back, if we're remembering the same website this is how I played a LOT of NES games when I was in grade school in the computer lab. It's how I first played a Final Fantasy game and is probably a huge contributing factor as to my love for 8-bit games as a whole. Great times.
@FigureFarter
@FigureFarter 7 месяцев назад
That emulator was used in the punch out minigame from warioware wii. If you remove the tv border, there's a window of virtuanes running the game
@thomaswesleyscott4555
@thomaswesleyscott4555 Год назад
This is great - I love all of your NES videos. Your video with the mushroom and the sword helped me finally understand how to make a background for an .NES game, so thank you for that. You earned my subscription, and many thumbs up for the foreseeable future!
@ChadWSmith
@ChadWSmith Год назад
You are wealth of information and entertainment. Thank you!
@mustachewalrus
@mustachewalrus Год назад
This project is crazy, super underrated.
@gengar-1997
@gengar-1997 Год назад
A few complaints: 1. PAL games don't work correctly. (I'm European) 2. The control scheme that you chose is unusual for me, the people who use QWERTZ, and the French AZERTY. 3. Add support for more mappers so that the Famicom game, "Gimmick!", works on JSNES.
@YesImAbby276
@YesImAbby276 Год назад
Try clicking on the input button and you can rebind the key.
@gengar-1997
@gengar-1997 Год назад
@@YesImAbby276 But I use QWERTY!
@BNWilliamGaming
@BNWilliamGaming 4 месяца назад
I recently got to play Journey to Silius, my favorite NES game, at school because of this. Thanks!
@4rumani
@4rumani Год назад
Great work Inkbox
@RaphielShiraha64
@RaphielShiraha64 Год назад
Don't know how hard it would be, but having toggle buttons for the A and B would be nice to have, since for example like showed in the video is hard to make mario run and jump both at once with mobile controls. So just having a extra mobile button that you can press to just have run always turned on, then being able to turn it off when unecessary would be nice. Another suggestion would be turbo controls, for well turbo.
@63801170
@63801170 11 месяцев назад
I'm new to your channel and only 4 videos in, but getting that dreaded feeling... like this awesome binge-watch fest is surely going to end soon 😭... hoping you have a ton of videos back there 🤞
@beyondobscure
@beyondobscure Год назад
Nice Phineas and Ferb reference in the thumbnail haha
@mariobot128
@mariobot128 Год назад
it would be great to add a selection of your own games to be playable without download since some devices (such as consoles or e-ink readers) do not have a file browser
@Spunney
@Spunney Год назад
Crazily opens you up to serious legal trouble, as I think that's essentially distributing roms and Nintendo definitely cares about that sort of thing
@mariobot128
@mariobot128 Год назад
@@Spunney no but i mean distributing HIS games, the ones he developed, given he owns the copyright to it he's gonna be fine
@refeals
@refeals Год назад
definitely a great use of web technology! as a professional web developer, i'd love to see more stuff like this popping up
@Spunney
@Spunney Год назад
This is great! ^^
@pontoexclamacao9158
@pontoexclamacao9158 Год назад
very good video
@jorotroid
@jorotroid Год назад
A while back some friends and I made a javascript platformer game for school and we chose to use z and x for the action buttons, but in hindsight (in lieu of creating a custom input menu) we should have used a and s instead. We had many people complain about using the z key because sometimes they would accidentally hit the Windows key.
@lockl00p27
@lockl00p27 11 месяцев назад
There is an entire port of retroarch to webassembly. Damn it’s good
@Pootie_Tang
@Pootie_Tang 3 месяца назад
As a bum living on the road and covered in mud, I can truly appreciate this
@netherportals
@netherportals 11 месяцев назад
Wtaching your videos, keep it up. (On an aside, I watched your 8-Bit Minecraft video, you could do a Aether, Nether, and then end versions (I luv the overworld version), so people could play different dimensions, maybe throw a nether portal in there for me :D )
@nachiopistachio
@nachiopistachio Год назад
Came for the Phineas and Ferb reference, stayed for a really handy project. Gotta try this on my otherwise useless for emulation iPhone
@PretendCoding
@PretendCoding Год назад
I would love to see "cloud save" functionality. All that would have to be done is storing those saves in a place like firebase, aws, etc. and checking against local storage upon logging in. Oh yeah... and logging in. Admittedly, super easy with firebase.
@BrainSlugs83
@BrainSlugs83 Год назад
Nice work. I have a few suggestions if you're willing to hear them out. I think you should put the Start and Select above A and B so that pressing them needs to be intentional (and the palm of your hand /base of your thumb can't hit them by accident). Also adding a left handed mode in the settings (to swap the dpad over to the right) would be a nice accessibility improvement, and finally: adding a way to hard code a single ROM from a URL would be nice. So that you can host an embedded player for your game on the download page.
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
but dont hardcode roms you will definitely go to jail
@MrMegaManFan
@MrMegaManFan Год назад
Sadly it doesn’t seem to work on Apple phones.
@SKCro.
@SKCro. 29 дней назад
Safari doesn't like to conform to web standards very well (despite using WebKit), so I'm not surprised :P
@Nbrother1607
@Nbrother1607 3 месяца назад
240x212 on PocketNES is then scaled down to 240x160 for the GBA screen
@todesziege
@todesziege Год назад
Almost entirely off-topic, but many european (CRT) TVs display the full 256x240 resolution, or close to (often showing glitches at the edges as a result).
@eloujtimereaver4504
@eloujtimereaver4504 Год назад
I would very much prefer if Start and Select were moved to the bottom, on either side of the settings button, and/or if they could be put above the A and B buttons instead for the games that make more in game use of them. Honestly all 3 positions being an option in the settings would be very helpful. It might also be good to have the key-rebinding be in the settings rather than clicking on the button to have better support for windows touch screens. (And I know some people who might try to click them with a mouse to try and play.) Going to be testing it with my various android and windows folding devices a bit later to see how it does.
@TheChocolatBlanc
@TheChocolatBlanc Год назад
Too bad for the Zapper ! I wonder if by using the exploit you could manage to play it from a Switch , but yeah great project , came out really clean , maybe a small potential addition to add in the setting would be to have a sound feedback when pressing a key from the virtual controller .
@63801170
@63801170 11 месяцев назад
A website cookie could flag (or not be available) indicating a first-time visitor is on your site, and perhaps you could have a (your 😊) game loaded and ready to go... with a pop up modal to explain what's going on... as said, only first time (or if you come in fresh from new interface). It would indicate it's working and if you're like me and don't have a ready-available ROM , it can do something straight up! Cheers!
@DissociatedWomenIncorporated
RIP Inkbox, taken out by Nintendo ninjas (Nintinjas) after an epic shurikens vs NES Zapper battle 😢
@stgigamovement
@stgigamovement Год назад
I wrote BWTC32Key in vanilla JavaScript precisely so it works everywhere.
@anEevee
@anEevee Год назад
couldn't someone find the algorithm used to generate the NES colors to figure out what they are?
@mattrogers6646
@mattrogers6646 11 месяцев назад
He explained in the video how the original NES/FamiCom color palette was created and why it doesn't map to RGB exactly.
@tomrow32
@tomrow32 Год назад
It would be nice if you could add a URL field to load a ROM image from. There are many devices out there that don't support file upload form fields.
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
illegal.
@neonfuz_
@neonfuz_ 11 месяцев назад
My main desktop monitor is portrait (LG 28MQ780-B), so your site incorrectly assumes I'm using a phone and makes the controls huge and cut off...
@itsthem5699
@itsthem5699 Год назад
Why aren't we using WASD and space for jump in modern browser games? Maybe shift for B (hold shift to run) and right shift and enter for select and start.
@peej10do91
@peej10do91 Год назад
R.O.B. would be cool, as well as the Power Pad, Game Genie, and Famicom Disk System.
@iggienator
@iggienator Год назад
The biggest advantage of an online emulator, at least for me, would be cloud storage for roms and saves. Obviously you can‘t just go ahead and upload all sorts of roms for for the public, but a personal storage for my own data sounds not to bad, right? Maybe even combine it with dropbox or something like that so that you do not have to mess with cloud storage hosting.
@DrNo64
@DrNo64 Год назад
I see the reference in the thumbnail
@SonicTheFantastic
@SonicTheFantastic Год назад
Only complaint with this is that the touch controls are WAY too high for me to reach even my thumb, on my big huge tablet
@cuntman7411
@cuntman7411 Год назад
I think the ui could use some work but otherwise very nice
@vyachachsel
@vyachachsel Год назад
My wishlist for NesOS 2.0: 1 - Programming
@flameofthephoenix8395
@flameofthephoenix8395 4 месяца назад
0:06 Well that looks quite nice, it doesn't seem to support multiplayer which negates the whole point of a "family console," at least to a good extent. However, I'll watch further, perhaps I'm mistaken!
@Jintenzo
@Jintenzo Год назад
Neat, but i feel that (when available) native apps would be better.
@InkboxSoftware
@InkboxSoftware Год назад
I agree, native apps are usually faster and more reliable. I don't think this will be my new everyday emulator (and I don't recommend it for such) but if I need a quick fix it could come in handy.
@Arock_tws
@Arock_tws Год назад
Input doesn't allow for controller keybinds. Otherwise it runs great, nice work
@FlergerBergitydersh
@FlergerBergitydersh Год назад
S and D should be the universal default for two button games and emulators like this, because this is where the hand rests when using WASD anyway, and it doesn't disrupt QWERTZ and AZERTY layouts. Which button should be A and which should be B should be a toggle. I agree that B should be on the left, but many PC games already have the "shoot" button on the right as well, so muscle memory may be crippled for a lot of people (despite the fact that I think the stronger middle finger should always be on shoot, and the weaker pointer finger should always be on "jump")
@xXJ4FARGAMERXx
@xXJ4FARGAMERXx 11 месяцев назад
Instead of choosing for people, why not let them choose their own button mappings?
@FlergerBergitydersh
@FlergerBergitydersh 11 месяцев назад
@@xXJ4FARGAMERXx ideally, that should ALWAYS be an option. But I have strong opinions on what should be present in cases where that's not possible.
@bananacraft69
@bananacraft69 Год назад
NESOS 2.0? will it have an api that allows for writing custom programms?
@InkboxSoftware
@InkboxSoftware Год назад
That's the plan
@MilleFalchiJUNIOR
@MilleFalchiJUNIOR 9 месяцев назад
Hello Inkbox, it's been a while since I first used this emulator and I find it fantastic but I had an "issue" with it, that is that when I play on different devices I have different save files so what did I do? I made a simple webpage using vanilla JS and HTML (just like the spirit of this emulator) that helps you export and import save files for this emulator and also lets you convert exported data to standard .sav formats and vice versa, I would like to share this with others but I think I need your permission first Thanks and keep up the good work buddy
@InkboxSoftware
@InkboxSoftware 9 месяцев назад
The actual emulator I used is open source, so you're free to use that. If you want to use my control mapping features and other UI things then that's no problem either.
@fishactivation5087
@fishactivation5087 Год назад
I, myself, prefer mapping everything to W (up), A (left), S (down), D (right), K (B), L (A), Enter (start), and Space (select).
@FlergerBergitydersh
@FlergerBergitydersh Год назад
Start should be on Space. There are some NES games that actually use Start as an action button, and being able to pause as quickly as possible is a plus anyway, so it should definitely be taken off of Enter unless you are emulating something with a more complicated controller, like the SNES and later game consoles. At the very least, this should be a toggle.
@thecubeman381
@thecubeman381 Год назад
Really good. Where are the turbo buttons though?
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
not there
@inventionpro_
@inventionpro_ Год назад
cool, but where can i download the nes games to load in emulator?
@painlesschunk
@painlesschunk Год назад
Vimms lair
3 месяца назад
Why not compile existing emulator into WASM? I believe SDL is pretty well implemented these days...
@americanpatrotism
@americanpatrotism 10 месяцев назад
ah so thats why the colors look different on the emulators
@maricthehedgehog
@maricthehedgehog Год назад
Alright let's just hope Nintendo won't take this down
@guyrocketram9698
@guyrocketram9698 Год назад
i know this is a weird bug, but for some reason caveman games for the NES doesn't work on it? for me at least.
@RaphielShiraha64
@RaphielShiraha64 Год назад
Someone said pal games don't work, so maybe that.
@h28yt
@h28yt Год назад
you should try making UNO on NES
@imonly1man_
@imonly1man_ Год назад
Is the thumbnail text a semi-obscure Phineas and Ferb reference?
@nachiopistachio
@nachiopistachio Год назад
Yes, yes it is.
@amydoesart3724
@amydoesart3724 Год назад
Now i wanna Port It to the dsi
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
nononnnonononono
@rampantmold
@rampantmold Год назад
this is great, can you provide a downloadable html file?
@GameCyborgCh
@GameCyborgCh Год назад
"uses Z and X" me on a non american keyboard layout: "god damn it"
@InkboxSoftware
@InkboxSoftware Год назад
Key binding is customizable, just click the button on the controller
@JPGT
@JPGT Год назад
It would be nice to have a JS Interpreter (even if old version) on NESOS.
@mgord9518
@mgord9518 11 месяцев назад
The NES isn't anywhere near powerful enough to even run the most basic JS
@user-ui9qy6cw5y
@user-ui9qy6cw5y Год назад
Force 50/60hz option, don't want those games going too slow or too fast
@jackolli877
@jackolli877 Год назад
can you stop using es6 cause the your jscript nes emulator won't work
@MotownBatman
@MotownBatman Год назад
KILLER!@! Now Do SEGA! lol, I'm trying to find something like this to run on a home server, so I can access it on iOS devices without having to Sideload Apps!
@TeamUnpro
@TeamUnpro Год назад
Thankfully you can just add a "image-rendering" css property, it used to bug the living freq out of me
@TheAmethystAurora
@TheAmethystAurora Год назад
Issue: doesn't work on MS-DOS 6.0
@Gvcdthbhigv5
@Gvcdthbhigv5 Год назад
Would be nice to have it work On the Xbox with the browser
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
nope
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
lemme know when the zapper feature works
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
you know it works when on the title screen the zapper acts as start instead of select
@PickledL
@PickledL Год назад
will this function on a samsung smart fridge
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
no
@PickledL
@PickledL Месяц назад
@@BuggaDude2012:(
@junebug3507
@junebug3507 Год назад
pachinko! pachinko!
@AlexeyFilippenkoPlummet
@AlexeyFilippenkoPlummet Год назад
Wait, if the colors of NES were mathematically picked on a specific color scale, how is it impossible to convert them to RGB? After all color scale represents CERTAIN colors, doesn't it?
@jhgvvetyjj6589
@jhgvvetyjj6589 Год назад
Some of the RGB values end up out of bounds by this way
3 месяца назад
WYM, I can totally convert YUV into RGB... Although my monitor isn't even basic HDR, so I won't have full color space coverage :((((
@DanTDMJace
@DanTDMJace 6 месяцев назад
RetroArch Web exists
@soundrogue4472
@soundrogue4472 Год назад
2:26 I'm sorry I can't pay attention in this video because I can't get over the fact IT'S UNDER 4K LINES OF CODE???
@cst1229
@cst1229 Год назад
That's probably minified (basically, removing all parts of the code that aren't required, like most newlines and whitespace), the actual source code size is probably larger.
@asbfabfoaijfo8
@asbfabfoaijfo8 14 дней назад
yiq which stands for lumi- WHY IS IT Y THAN?
@asbfabfoaijfo8
@asbfabfoaijfo8 14 дней назад
no agression
@412lop7
@412lop7 Год назад
App name?
@talisman_games15
@talisman_games15 11 месяцев назад
The sounds sound a bit off
@talisman_games15
@talisman_games15 11 месяцев назад
like pitched down
@skejeton
@skejeton Год назад
be careful w local storage data loss!! theres a newer FS api
@joycetong8434
@joycetong8434 Год назад
Try making rhythm heaven in nes
@BuggaDude2012
@BuggaDude2012 6 месяцев назад
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@redalpha333
@redalpha333 Год назад
Hmm- No exporting or importing or saves though and even if you consider it cheating save states and the ability to make load export import have multiple or be able to undo the last one is useful, as well rom hacks or cheat codes wouldn't be supported. Any who I'm just saying- webretro has all that but it dosen't have onscreen controls or good mobile support I guess.
@SysDataSoftOffical
@SysDataSoftOffical 8 месяцев назад
also ATARI:
@HUYI1
@HUYI1 Год назад
What is the point in this vid when it's based on a web browser? 😤😤
@dr.shakib9961
@dr.shakib9961 Год назад
Meh, my New 3DS does the job pretty well.
@fnf_noob
@fnf_noob Год назад
emulatorjs
@buster5661
@buster5661 Год назад
Start with showing preview content for the video then start with the behind-the-scenes step-by-step process It's so annoying I have to skip to the end to see the actual content for the video
@meatbleed
@meatbleed Год назад
so to you "the content" is just playing NES games? you clicked "building an NES emulator" for the gameplay at the end?
@buster5661
@buster5661 Год назад
@@meatbleed do you not understand what a "preview" is? I wouldn't expect much from a half eaten chicken wing
@dickwaffle468
@dickwaffle468 Год назад
Good video, but audio poppage is pretty bad
Далее
I Made Fruit Ninja Into a REAL 8-Bit NES Game
11:03
Просмотров 261 тыс.
What is going on? 😂 (via haechii_br/IG) #shorts
00:15
Я тоже так могу
00:12
Просмотров 897 тыс.
Best COLOR Tool for REAPER?
10:36
Просмотров 1,9 тыс.
How I made typing Chinese on the Apple II possible
20:32
Early Video Game Emulation was Weird
9:09
Просмотров 54 тыс.
How NESticle changed NES Emulation forever | MVG
11:27
Просмотров 292 тыс.
Consoles Vs. Emulators
20:21
Просмотров 165 тыс.
I Made My Own 40KB NES Game
14:33
Просмотров 117 тыс.
I made Super Mario Odyssey for the NES!!!
12:59
Просмотров 540 тыс.
Creating an Operating System for the NES
11:11
Просмотров 771 тыс.
Проверил, как вам?
0:58
Просмотров 390 тыс.