Welcome to NESOnline!

What is better than playing the original Super Mario Bros. on the original Nintendo Entertainment System (NES)? Of course, the answer is to play the exact same game on a free emulator online where you can actually see the inside of you classic 1985 console. (Actually, my personal answer would be to play Super Mario World on the SNES, but I'm afraid of the haters...)

The goal of this homemade website is to create a complete emulator of the NES, freely available online. I also want to document the whole system for educational purposes. For now, you can enjoy a partial 6502 emulator. In fact, the CPU of the NES is modified MOS 6502 microprocessor. My emulator can be run step by step and all the registers, the flags and the memory can easily be edited by the user. Therefore, you can play with it and explore its most obsure features... Actually, it is not very obscure since a variant of this processor was used in the Commodor 64, the Apple II and the Atari family.

While this project is in active development (in my rare free times...), I will try to inform you of the latest additions to the emulator, so you can play with the latest opcodes or my first implementation of the PPU once they will be created. There will probably be a "News" page sometime where this information will be found. For now, simply jump to the emulator and play with it!

The technology

Behind this website is a somewhat large technology stack. The mix between these modern softwares and the 1976 MOS microprocessor is interesting, in my nerdy opinion. So here is a brief description of the technology stack involved in this website:

The server

  • Hosted in North Virginia, USA.
  • Running CentOS 7
  • All the pages are served by nginx

The back-end

  • Running PHP-FPM with PHP 5.6
  • The back-end is based on the Laravel framework
  • The front-end is compiled by the back-end using Laravel's Elixir

The front-end

  • All the front-end is written in vanilla Javascript
  • Compiled by browserify in order to provide modules and minimize the size
  • The CSS is written in Less and compiled afterwards

About me

Here is the narcissistic part of this page, where I actually promote myself. You can skip it if you cannot endure this navel-gazing.

I'm Émile Grégoire, and as my name and the myriad of typos on this website suggest, my native language is not English. I'm from Québec City, Canada, so I speak French and I eat poutine. Daily, I study in Software Engineering at Université Laval and I'm a programmer for Novatize. I like everything around computers and electronics, but I also appreciate music and old school stuff. Oh, and by the way, you cannot beat me at Super Mario World. Period.

You can stalk me on some social media, but be advised that I'm not very active on these. You can also check my personal website.