
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
In this lesson, we'll learn more about the Chip-8 and all the challenges it may occur during the course.
In this lesson, we will start create our microprocessor for Chip-8
In this lesson, we will create our Chip-8 display, it's a monochromatic display with resolution of 64x32 pixels.
In this lesson, we will learn how to set up Webpack to help us to transpile and bundle out ECMAScript 2020 files to a file bundle that runs in any browser.
In this lesson we will learn how to set up a webserver inside Visual Code using Live Server
In this lesson we will learn how to connect our HTML canvas to our Display class
In this lesson, we will learn how we can scale our display from 64x32 to 640x320
In this lesson, we will learn how we can draw the screen shape and set the background and foreground color of our pixels
In this lesson, we will learn how we can get the binary representation of our screen from our buffer and actually draw the pixels on the canvas.
In this lesson, we will create out Chip-8 Memory, Chip-8 has 4KB (4,096 bytes) of RAM, from location 0x000 (0) to 0xFFF in this section we will learn how to create, save, and ready from this memory
In this lesson we will create the Chip-8 Registers:
V0-VF - 16 general-purpose 8-bit registers
I - 6-bit register generally used for memory address
ST - Sound Timer an 8-Bit register used to generate beeps
DT - Delay Timer an 8-Bit register used to generate delays
PC - Program counter, points to the memory with the next opcode to be executed in RAM
In this lesson we will continue creating the Chip-8 Registers, in special the stack, used to store the address that the interpreter should return to when finished with a subroutine
Stack - The stack is a 16-bit array that can hold up to 16 values
SP - Points to the last value added to the stack
In this lesson, we will understand when and how the stack overflow or stack underflow can happen and how to be prepared for it.
Did you ever wonder how video games work? What goes inside that little box when you press the power button? How do that tiny silicon chips talk with each other to create the amazing graphics we see on the screen and respond to each press we make on the controllers?
If you want to not only have a complete understanding of how the microprocessor talks to the memory, display, keyboard, and sound card, but also what happens inside with all the registers, so that is the course for you.
In this advanced course, you will learn how to create your very own emulator for the Chip-8 in the JavaScript that runs in any browser, so you can add it to your portfolio page and mesmerize job interviews with all your new knowledge.
The Chip-8 is a virtual machine from the mid-1970s designed to make game development easier. There are a number of classic video games ported to CHIP-8, such as Pong, Space Invaders, Tetris, and Pac-Man. There are also applications like a random maze generator and Conway's Game of Life.
This course is ideal for anyone who has programming experience and always dreamed of creating their own emulator one day, or would love to create an emulator but just does not know where to start. Even someone who has attempted to create an emulator in the past and fail can greatly benefit from this course.
In this course, we will create new classes in JavaScript for each piece of hardware, to emulate the memory, the display, the sound card, and the keyboard, after that, we will jump into the so expect Chip-8, we will first implement its registers and then we will implement each of its 35 opcodes
After you complete this course you will have a fully functioning Chip-8 emulator that is capable to run hundreds of rooms available freely on the internet.