CHIP-8 Emulator p4: Finish Opcodes, Keypad, CPU Speed (C / SDL2)
Channel: Queso Fuego
Date: 2022-12-05

Finishing up instruction emulation and adding keypad input, and setting virtual CPU speed after.
 
Errata:
- time_elapsed should be (end - start) * 1000, not divided by 1000.

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://en.wikipedia.org/wiki/CHIP-8
https://wiki.libsdl.org/APIByCategory
https://tobiasvl.github.io/blog/write-a-chip-8-emulator/

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:
- I did find a better test suite CHIP8 rom, it'll be used for the part after the next one. That will involve fixing some VF values in instructions and separating CHIP8/SUPERCHIP "quirks".

0:00 rand() function 0xCXNN
8:46 check if key pressed 0xEX9E & 0xEXA1
16:21 start 0xF instructions
19:08 chip8 keypad input
33:40 remaining 0xF instructions
1:06:03 set emulation speed 
1:19:22 update timers
1:24:35 coming up & outro

Music:
"Acid Trumpet" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 4.0 License
http://creativecommons.org/licenses/by/4.0/

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