- 25 hours on-demand video content
- Lifetime access
- Live meetup
- 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 November 2025
$79.99
ENROLL NOW FREE PREVIEW
This 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.
71% of our students come back for another course
We don't offer discounts on our courses. Ever.
"Teffific course! I started off with the Atari 2600 Assembly course, loved it, and decided to continue my Assembly journey with the NES course and learned so much. Gustavo is a great instructor, and I look forward to taking more courses on this site."
"Ótimo curso! This course is great to understand the NES internals, the teacher explains every detail of CPU, PPU, APU and memory map format needed to create your own homebrew game. Now waiting for the course SNES Programming with 65C816 Assembly :)"
"Amazing course! This course helped me to understand NES hardware and to learn 6502 Assembly. Gustavo is a great teacher. Highly recommend!"
"Great follow up to the Atari Course - I learned so much! I took the Atari course and loved working with (and re-learning) 6502 programming. This was a much bigger and thorough course in many ways. It also highlights the complexity and the differences between the two machines. Gustavo is one of the best teachers for complicated subject like this. I had so much fun learning the material. I'd love to see a 6502 assembly language course for the Apple II - such a vibrant community out there. I am definitely looking at the other courses Gustavo offers."