Creating A Chip-8 Emulator In C

Learn to create an emulator for a 1970s machine!

4.60 (339 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Creating A Chip-8 Emulator In C
8,103
students
5 hours
content
Jun 2020
last update
$69.99
regular price

What you will learn

How to create an emulator for the Chip-8 machine

Knowledge of how instruction sets work

Understanding of how machines work

Why take this course?

In this fantastic course you will learn how to create your very own emulator for the Chip-8 in the C programming language. The Chip-8 is a virtual machine from the mid 1970s designed to make game development easier.

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.

Reviews

Hussam
October 23, 2023
This course was quite informative and fun to follow. Explanations were clear without being dragged out. Many thanks to Dan for this excellent course!
A
October 20, 2023
Excellent course with great coding sessions for creating an emulator from the ground up. Would like to see three things though (1) better explanations of some topics as some seemed rushed or weak at times. (2) mention things to consider when developing on macOS and/or Linux and (3) maybe things to consider if you want to try and extend to the super chip8 instruction set. None of these issues are show stoppers though - would definitely recommend the course to anyone curious about emulators.
George
September 23, 2023
This course can best be summed up as "can't be bothered". The instructor tells multiple times that we should look something up, because he won't explain. I can agree with that if a good resource is provided, but he doesn't. He basically tells you to just Google it, which is dangerous since there is a lot of wrong information out there. The instructor is also not helpful in the Q&A, his answer is mostly to just use his code. Which is demoralizing if you are trying to do something different like for example MacOS. It turns this entire course into a type-along, which is not the best way to learn something. He also chooses the easy way out of everything by sticking to Windows and a specific compiler. Using the Windows functions to sleep a thread and play a beep is totally unnecessary: SDL provides functions to sleep a thread and play a sound which are cross platform. This would be out of scope for the course, but he could have provided a C resource with an implementation of these functions.
Robert
July 24, 2023
It’s worth getting if it’s at a discount. It teaches what it advertised. I don’t regret purchasing it. I think the biggest flaw is that it doesn’t address timing. I expected games to run at a controlled speed which requires more logic. I also wish the final emulator gave “correct” games. They did run logic correctly, but there was lots of flashing. So as an end user I wouldn’t consider what was created to be a good emulator. It did its job and I learned more than I knew. So overall positive.
Marek
July 2, 2023
This course was great in many ways. It demystifies 8bit emulators and shows many useful low level tricks that are were not present in C courses I took before. The fast pace requires extra focus but Daniel handles one problem at the time so it is easy to simply pause and analyse that one thing until it becomes clear. I also enjoyed learning some aspects of C that I was unaware of. Taking this course was time well spend! Thank you Daniel!
Larry
June 7, 2023
This was a very enjoyable little diversion from sockets, threads, etc. I enjoyed the presentation of the lectures and the source code is well-structured. If I ever want to take another short break, I will certainly consider looking at other courses this instructor offers.
Matthias
May 10, 2023
This course provided a solid introduction to emulation. Afterwards I started writing my own Gameboy Color emulator and despite reading lots of documentation I had a good idea of the most importand aspects of the internal procedures thanks to this course (and some further reading).
Cody
April 28, 2023
I enjoyed the pace and how the instructor developed the emulator incrementally. I have no experience in systems development, so I also appreciate this course being here, as it's a subject that's very difficult to learn with zero experience. Also, the project was kept as simple as possible - awesome! Some of the more advanced stuff like bit operations and how sprites are represented in memory are very glossed over, which was a bummer. Overall, this course was worth my time and money!
Reinaldo
March 12, 2023
Amazing instructor, explains everything clearly. But I must stress that if you want to take most out of this course you should learn C language before. It will not teach you the C language, rather it will drive you through emulation basics *using* C . [edit] Indeed, as Daniel said: you have 30 money back guaranteed, so what to lose? Try it even if you dont feel comfortable with C. [/edit]
Dick
February 16, 2023
Nicely done with a quick enough pace. This course can be used as a solid base for emulator writing in general.
Timothy
January 17, 2023
A very enjoyable & interesting course. Good to see how the emulator came together. Daniel communicates the subject matter very well.
Greg
January 1, 2023
If you are looking for a quick and easy weekend project, get this course. It was a great way to spend the a couple of days and I really learned a lot. Can't wait for the compiler course to be completed as I will do that one also.
Okan
December 30, 2022
I bought that course because I want to implement an emulator of chip-8 on Altera FPGA (I do not do that yet, but C++), my second goal was to refresh my memory for pure c because the instructor has 2 important courses: Developing a C compiler from scratch and Developing a Multithreaded Kernel from scratch {I bought 3 of them on black frayday}. I am going to continue from the kernel course. The only missing thing on the course was CPU frequency. I read that a student complained about it, but I think that a student who is familiar basics of programming can handle it easily. And if you know other programming languages such as phyton, java, c++ whatever you can use that course as starting point. So, Daniel, Thanks for this fantastic course.
Mark
December 16, 2022
Enjoyed the course. If honest, would have preferred a progression where one is challenged to come up with solutions along the way rather than a rote follow along type in structure, but the subject matter was good, nonetheless.
Myshkin
December 5, 2022
This course is exactly what i wanted. Tried to make a chip8 emulator my own way before this and it quickly became a chaotic mess without rules. This course gave me some intuition on how to organize the structs, variables, functions and files in C that made it much easier to code and find/solve bugs. I'm now coding another emulator using Z80 CPU without much difficulties as I had before. At the end, there are some minor tweaks to make it perfect, like implementing proper fetch-execute frequency, modifying the way DT and ST are decremented and handling the display better with SDL2, so that it can adjust to any display size, be resizable, go fullscreen etc. You can even play around and make your own debugger interface to get some extra chalenge.

Charts

Price

Creating A Chip-8 Emulator In C - Price chart

Rating

Creating A Chip-8 Emulator In C - Ratings chart

Enrollment distribution

Creating A Chip-8 Emulator In C - Distribution chart

Related Topics

2851148
udemy ID
3/4/2020
course created date
3/22/2020
course indexed date
Bot
course submited by