- 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 July 2023
$59.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.
"Another great course! This one is a lot more technically dense than Atari course that I took (and for good reason). It requires a lot more thought and patience, but it is a great introduction to the NES as a 6502 based architecture. The only minor nits I've got with it is that there were not quizzes on it, which could help reinforce some of the topics a little bit better, and some time could have been spent up front on aspects of game structure and best practices for 6502 code. The course reflects the nature of the machine and getting into the thick of the thorny details and offers a great entry point into game development for this system. As someone with a programming background the topics on LFSR, for randomization and touching on the encoding/decoding of music were also very well thought out."
"Well worth the price! I am really impressed with this course so far. Giving a 5-star review even if I haven't made that much progress in the course yet."
"Incredible course! Complete and comprehensive. Master teacher Gustavo is here to help us go thru very technical stuff that would be otherwise inaccessible to most people. You can feel the passion in this project."
"Absolute great introductory to NES Assembly 6502! Like some members of this course I came from using NESMaker which let's you create games without needing any programming knowledge. But - in order to create more advanced games it is absolutely necessary to learn about the architecture of the NES and at least have some basic understandings of Assembly 6502 code. And this course here is a gold mine. Everything is well explained and constantly updated. I hope there will be an advanced course in the future. But I can't recommend this course enough. If you have ever be interested in the NES and creating games, do yourself a favor and enroll. You won't be disappointed. And take your time - it took me 3 - 3 1/2 months to digest everything and I probably will need to rewatch a couple of lectures later during designing my own game! Thanks Gustavo!"
"Wonderful. Thanks for a great course. I enjoyed almost everything. I specially liked the sidesteps eg talking about number base 12 and origin from the eqyptians, very interesting. The layout of the course was easy to follow. It game me a lot of confidence to go forward creating a game myself as well as showing my 9year daughter doing it together with her."