Building an All-Terrain NES Emulator

48,702
0
Published 2023-03-25
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 Gameplay Footage)  

All Comments (21)
  • Cool concept! I like using web apps because anyone can use it, but dealing with browser specific errors can be annoying lol
  • POV: Nintendo getting ready to arrest the entire internet and the entirety of javascript just because theres a nes emulator website
  • @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.
  • @ChadWSmith
    You are wealth of information and entertainment. Thank you!
  • 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!
  • @BNWilliamGaming
    I recently got to play Journey to Silius, my favorite NES game, at school because of this. Thanks!
  • @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.
  • @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.
  • @MrMegaManFan
    Sadly it doesn’t seem to work on Apple phones.
  • 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
    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 🤞
  • @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
  • @refeals
    definitely a great use of web technology! as a professional web developer, i'd love to see more stuff like this popping up
  • @beyondobscure
    Nice Phineas and Ferb reference in the thumbnail haha
  • @lockl00p27
    There is an entire port of retroarch to webassembly. Damn it’s good
  • @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.