- 25 hours on-demand video content
- Lifetime access
- Downloadable resources and exercises
- Certificate on completion
- Access on mobile and desktop
- Secure checkout via Credit Card or PayPal
- 14-day money back guarantee
- Last updated December 2023
$69.99
ENROLL NOW FREE PREVIEWThis course is a complete immersion into the world of the Nintendo Entertainment System. We will learn how to program games for the NES using 6502 assembly while exploring the building blocks of computer architecture. The rudimentary hardware of the NES is a perfect sandbox for us to learn important concepts of low-level programming.
At the end of the course, you'll have a working knowledge of 6502 assembly language, a comprehensive understanding of the NES hardware, and a toy homebrew game project that we'll code together from scratch. We'll start with small examples and proceed to glue everything together in a final project that demonstrates how a simple NES game works.
We'll use a simple code editor, an assembler called CA65, and a NES emulator called FCEUX. All these tools are cross-platform, so you'll be able to follow along on either Windows, macOS, or Linux!
This is a self-contained course with no formal prerequisites. However, you will probably get the most out of it if you already know the basics of coding (if-else, loops, functions).
If you like retro game development and want to learn more about computer architecture and low-level programming, then this course is definitely for you!
Gustavo Pezzi is a university lecturer in London, UK. He has won multiple education awards as a teacher and is also the founder of pikuma.com.
Gustavo teaches fundamentals of computer science and mathematics; his academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.
The 6502 processor is an extremely important part of computing history, powering many popular game consoles and microcomputers of the past, like the NES, the Commodore 64, the Apple II, and even the Tamagotchi.
Differently than other online resources about retro game programming, this course is not simply a documentation of assembly mnemonics that only experienced developers can digest. This course tries to be as beginner-friendly as possible, giving you the chance to learn assembly in a fun way.
Trying to understand how modern computers work under the hood can be overwhelming. The small architecture of the NES is our chance to take a step back and look at the fundamental building blocks of computing. So, if you want to really learn how digital machines work and finally lose your fear of the expression "assembly programming", then get ready and buckle up! We are about to go on a super cool nerd trip together.
73% of our students come back for another course
We don't offer discounts on our courses. Ever.
"A Comprehensive Fundamental Course in NES Programming! When I started the course, I was relatively familiar with the basics of the NES and the things that went into it (e.g. there are patterns, what sound channels it had), but nothing to the level required to even get what is happening under the hood. The deep dive explanations within the course was definitely worth it. Getting to understand how and why the PPU worked the way it does, how controllers worked, down to the minutiae of the timings within the system, it gives a full view of how everything comes together in concert to run the programs it runs. After going through the course, it gives one a better understanding of the trials that went into making software work on the NES, and it can be rather exciting to think of how to make it work even with its limitations."
"It was great to see a course that dug into the depths of Assembly. More and more, the majority of programmers are unaware of what is actually going on at the low level. I had not used Assembly since my University days (Vax Assembly) since the 90s. It was great to get back to my roots and really refresh myself about just how much care and intent it takes to actually write good code. I would highly recommend this course for anyone who wants to really learn to be a good programmer."
"I just finished this course, and of all the different courses I've take throughout my years as a programmer, this was the most enjoyable by far, and one of the most in-depth and well-organized! Thanks so much for taking the time to not just show the code and tell us what it does, but actually going into detail of the *how* and *why*. You're a fantastic teacher and I'm looking forward to seeing more courses from you!"
"Probably the best NES/Assembly course out there! I started this course because I wanted to learn more about assembly but in a fun way. And Gustavo delivered exactly that. Not did I just learn assembly but also a lot of history and game dev for the NES but also in general. The course was very entertaining and I wish every course out there would be like this. This is the perfect fusion of education and entertainment for the mind. Thank you Gustavo for being such a good educator."
"Thank you! I learned so much! I have very little programming experience and what experience I do have is at the higher levels (Javascript, C++, etc). Gustavo did an excellent job of breaking every concept down and made the daunting task of learning a low-level language like 6502 Assembly much more manageable. I have been using a program called NESMaker to develop a game of my own and was starting to hit brick walls as I wanted to incorporate more and more custom code. This course gave me a MUCH better understanding of how the logic and syntax of 6502 Assembly works. Thanks again, Gustavo!"