- 2m
- 14m
- 23m
- 4. Structuring Our Project 8m
- 5. Implementing The Memory 15m
- 6. Creating The Registers 9m
- 7. Creating The Stack 20m
- 8. Creating The Keyboard 28m
- 9. Initializing The Chip-8 3m
- 10. Creating The Default Character Set 8m
- 11. Creating The Chip-8 Display 13m
- 12. Drawing Sprites To The Screen 26m
- 13. Implementing The Delay Timer 4m
- 14. Implementing The Sound Timer 4m
- 15. Starting The Creation Of The Instruction Set Simulator 27m
- 16. Implementing The Chip-8 Instruction Set 1h 37m
- 17. Speeding Up The Emulator 5m
- 18. Small improvements 6m
Creating A Chip-8 Emulator In C
About this course
This course is great for anyone who has programming experience and would love to create an emulator but just does not know where to start or has attempted to do it but ran into problems
You are taken through every step of emulator creation, throughout this course we start by setting up our project, then we start writing code to emulate the display and keyboard from the era. We soon move to simulating the entire Chip-8 instruction set.
After you complete this course you will have a fully functioning Chip-8 emulator that can run space invaders, pong and many other classic games.
What you'll learn
- How to create an emulator for the Chip-8 machine
- Knowledge of how instruction sets work
- Understanding of how machines work
Who this course is for
- People interested in how to create an emulator
Requirements
- You must be confident in the C programming language
- You must understand hexadecimal
- You must understand bitwise operators and bit shifting
Curriculum
18 Lessons • 5h 4m estimated learning time
- 4.90 instructor rating
- 18 courses
- 1,418 students worldwide
Daniel McCarthy
Daniel McCarthy is a seasoned software engineer, boasting an impressive career spanning over 14 years in the industry. Holding a Master's Degree in Advanced Computer Science from Cardiff Metropolitan University, his broad spectrum of experience encompasses everything from web development to complex compiler and interpreter development.
Daniel has honed his skills in bootloader and kernel development. In testament to his proficiency in the field, he has designed two proprietary programming languages: Craft, a general-purpose language, and Marble, a web-focused language akin to PHP. Moreover, he has successfully developed compilers for the C programming language.
A testament to his versatility, Daniel demonstrates proficiency in an extensive list of programming languages that includes C, C++, Java, x86 Assembly language, PIC assembly, SQL, PHP, HTML5, JavaScript, CSS, and of course, his own creations, Craft and Marble.
His professional portfolio also includes the development of Linux kernel modules, a task he has executed with proficiency in a professional context. Currently, Daniel is channeling his wealth of experience and expertise into the education sector, with the aim of nurturing the next generation of professional software engineers.
Student reviews
Interesting topic, I have followed along with my Zig implementation, it was nice and interactive
The course does a good job of walking you through technical documentation and helping you understand what you’re reading. The actual coding and learning process isn’t great though. Purely following along by video doesn’t...
Good
No nonsense to the point development, exactly what it says on the tin. I thoroughly enjoyed the course, sometimes it was a little too quick for me, but that just made me learn faster :-) All in all I'd highly recommend...
I love your courses sir, really clear "hello, world" for emulators. Will definitely purchase other things.