CHIP-8 Emulator p1: Intro & Window Setup (C / SDL2)
Channel: Queso Fuego
Date: 2022-11-29

Making a CHIP-8 emulator with C & SDL2. Technically it's an interpreter.
This video is over installing gcc/make/sdl2 for Linux and Windows, and setting up initial SDL boilerplate for a single color window with input to close the window.
 
Git Repos:
https://github.com/queso-fuego/chip8_emulator_c
https://codeberg.org/queso_fuego/chip8-emulator-c

Join the Community Discord: https://discord.gg/yKm4T89QFn

Links:
https://nuwen.net/mingw.html (gcc & friends for windows)
https://wiki.libsdl.org/
https://en.wikipedia.org/wiki/CHIP-8
https://tobiasvl.github.io/blog/write-a-chip-8-emulator/
https://archive.org/details/bitsavers_rcacosmacCManual1978_6956559/ (COSMAC VIP instruction manual)

Contact:
https://queso_fuego.codeberg.page/contact.html

Support:
https://queso_fuego.codeberg.page/support.html

Questions about setup/software/etc.? 
Check the FAQ: https://queso_fuego.codeberg.page/about.html

Notes/Misc:
- For GCC on windows, I found this later after recording: https://github.com/skeeto/w64devkit (see releases page for self contained .zip folders). It's smaller and has a more up to date GCC version, may use this in the future for C dev on windows.
- Been working on audio, hopefully it sounds a little better and clearer than before. It's been a learning process regarding EQ, compression, de-essing, etc. It currently sounds boxy, will try to reduce that over time.
- The font in windows cmd is "NSimSun", it has a lot of UTF-8 symbols that some other fonts do not, making it decent for unicode printing. It might come installed with windows, not sure.
- I've written a CHIP8-8 emulator in Rust with SDL bindings, and another one in C to use as notes for these videos. I used C for this one as I'm an even worse Rust programmer than C programmer :)
- Future things may be in other languages to learn something else, like C++/Rust/|other language here|. Might use a different framework/library too instead of SDL, but it'd need to have audio support and be cross-platform.

0:00 intro, CHIP-8 overview
6:06 install gcc/make/SDL2 on linux & windows
24:26 SDL docs, SDL_Init()
31:53 sdl window, config struct
44:56 renderer, main loop, show window
1:04:45 user input
1:18:40 coming up & outro

Music:
Downtown Glow by Ghostrifter & Devyzed
Creative Commons — Attribution-NoDerivs 3.0 Unported — CC BY-ND 3.0
Music promoted by https://www.chosic.com/free-music/all/

#chip8 #emulator #programming