CHIP-8 Emulator using C and SDL2

CHIP-WALO

C SDL2

Intro

CHIP-8 is an interpreted programming language which was initially used in the late 1970s. It was made to allow more easily programed game for those computers. All programs written in CHIP-8 are run on a virtual machine which interprets each instruction.

Reference: Wikipedia

"WALO" is from the tagalog word of the number 8.

Game samples

Space Invaders

Breakout

Usage

1 2 3 4
Q W E R
A S D F
Z X C V

This is the key mappings of the chip-walo, use keyboard to control.

Building from source

Linux

Pre-requisites:

  • git
  • gcc
  • make
  • libsdl2-2.0
  • libsdl2-dev

Download the repo:

git clone https://github.com/diamant3/chip-walo.git

After you download, run this:

cd chip-walo 

and this:

make

Note: The executable file is located in bin folder.

chip-walo PATH/OF/THE/ROM

Windows

Pre-requisites:

  • gcc
  • make

You can download here chip-walo.

Extract the zip file then run this inside the folder:

make

Download and extract the runtime binary(32-bit Windows) and put the SDL2.dll in the bin folder.

Note: The executable file is located in bin folder.

chip-walo PATH/OF/THE/ROM

❤️ Credits

SDL2 - graphics API that i used to make this.
Cowgod - Heavily used for the references of op codes.
Wikipedia - Another reference for op codes.
Multigesture - the emulation of graphics of chip-8 is mostly from here.
Tobiasvl- Clear explanation about chip-8 development.
Chip-8 - Chip-8 Resources.
Zophar.net - chip-8 ROMS.

License

lib and include/SDL2 folders are contained source codes from SDL2.

SDL 2.0 and newer are available under the zlib license: Please see the SDL2 - License.

Owner
Diamond Rivero
Computer Science Student
Diamond Rivero
Similar Resources

CHIP-8 interpreter in C11

shoganai | しょうがない It means accepting what happens beyond our control and cannot be avoided. It is used to encourage people to move forward without bei

Sep 28, 2021

Lo-Fi SAMD21 based mini chip tune synthesizer - Seeed Studio - Seeeduino XIAO arduino project

Lo-Fi SAMD21 based mini chip tune synthesizer - Seeed Studio - Seeeduino XIAO arduino project

samd21_mini_synth Lo-Fi SAMD21 based mini chip tune synthesizer Seeed Studio - Seeeduino XIAO arduino project link to the video Description This time

Dec 12, 2022

This repository contains the tools we used in our research on the Google Titan M chip

Titan M tools In this repository, we publish the tools we used in our research on the Google Titan M chip. We presented our results at Black Hat EU 21

Dec 5, 2022

GNU project for mm32 chip

GNU project for mm32 chip

编译环境安装(以下是ubuntu上的示例) git 下载项目工程 git clone https://github.com/YanMinge/mm32_project_demo 下载最新的 gcc开发环境 sudo apt-get install sudo apt-get install gcc-a

Mar 31, 2022

A minimal implementation of a task-switching kernel in C for the ATmega328P chip

Multi-tasking Kernel for ATmega328P This repo includes a simple multi-tasking kernel, allowing the registration and execution of multiple tasks. In de

Dec 23, 2021

Mods to improve the Kingroom KP3S 3d printer (STM32F407 chip)

Mods to improve the Kingroom KP3S 3d printer (STM32F407 chip)

Kingroon KP3S Mods Mods for Kingroon KP3S. The original printer started with a titan extruder. The board model on this machines is the STM32F407 so th

Dec 8, 2022

Single-chip solution for Hi-speed USB2.0(480Mbps) JTAG/SPI Debugger based on RISC-V MCU CH32V30x/CH32V20x

480Mbps High Speed USB2.0 JTAG Debugger Open source information |-- bin |--------MCU: MCU target program |--------WIN APP |------------------USB20Jtag

Jan 5, 2023

A tiny evolution simulator, which uses SDL2 and is written in C

evosim Evosim is a small evolution simulator. Evosim uses the SDL2 library for graphics. The program can be compiled by simply running make in the evo

Nov 20, 2021

📽 A simple X11+SDL2 animated wallpaper setter and video player

📽 A simple X11+SDL2 animated wallpaper setter and video player

anipaper 📽 A simple X11+SDL2 animated wallpaper setter and video player Introduction Anipaper (ANImated Wallpaper) is a simple 'wallpaper setter' for

Dec 21, 2022
Comments
  • Moving the cursor

    Moving the cursor

    Issue Up/Down cursor not working in Timendus's chip8-test-suite, idk where's the problem, my chip8 or the test suite

    You can't move it using the W/S keys on your PC keyboard? That's weird. Does the keypad test work as expected?

  • fix moving cursor bug

    fix moving cursor bug

    This is my pr to fix the moving cursor bug. It fixed the moving cursor bug, but the cursor is exceeding the program's screen :(. I didn't quite get why you said I needed v[0] to subtract from the value of vF. The technical ref said the vx and vy are only needed. I just use the result variable for the result of vx and vy. Then check if the subtrahend is bigger than the minimum, then vf is set to 1. Otherwise, leave it at 0. sorry for my english

GameBoy emulator with debugger written in C++ using Win32 and SDL2
GameBoy emulator with debugger written in C++ using Win32 and SDL2

脳(のう)腐(ふ) DMG-01 emulator written in modern C++ using Win32 API and SDL2. It is intended as a hobby project to sharpen my C++ skills. The emulator is

Sep 21, 2022
EMUCHIP8, a CHIP-8 emulator.

EMUCHIP8 Chip-8 Demo Video This is a fun retro emulator project of mine. You can download the source code and build with MAKE, then insert your chip-8

Jan 1, 2023
A simple CHIP-8 emulator made for the purpose of studying computer organization, mainly how emulation does work.

CHIP8EMU A simple CHIP-8 emulator made for the purpose of studying computer organization, mainly how emulation does work. It was written in just a few

Nov 9, 2021
Simple emulator for the extremely popular Chip-8 Virtual Machine.
Simple emulator for the extremely popular Chip-8 Virtual Machine.

C8_Emulator [System Structure Reference] #@@@@@@@@@@@. @@@@@@@@@@@@@@@@,

Nov 6, 2021
CHIP-8 Emulator/Debugger made with C++ 17, OpenGL & ImGui.
CHIP-8 Emulator/Debugger made with C++ 17, OpenGL & ImGui.

Description (Some frames were deleted to make the GIF smaller) CHIP-8 interpreter/debugger made with C++ 17. SDL 2.0.16 for window creation, event han

Jan 7, 2022
Basic emulator for the CHIP-8 system

CHIP-8 Emulator Overview This project aims to write a small and functional CHIP-8 emulator (or more accurately an interpreter, since CHIP-8 wasn't eve

Feb 12, 2022
Firmware for DMR transceivers using the NXP MK22 MCU, AT1846S RF chip and HR-C6000 DMR chipset. Including the Radioddiy GD-77, Baofeng DM-1801 and Baofeng RD-5R.

OpenGD77 Firmware for DMR transceivers using the NXP MK22 MCU, AT1846S RF chip and HR-C6000 DMR chipset. This includes the Radioddiy GD-77, Radioddity

Dec 31, 2022
This is a set of utilities that allow you to read, write or erase SPI flash chips using a Raspberry Pi Pico (RP2040) chip.

Pico SPI Utilities This is a set of utilities that allow you to read, write or erase SPI flash chips using a Raspberry Pi Pico (RP2040) chip. While th

Aug 7, 2022
Multi OS Platform Wallpaper Engine using SDL2

MOWE MOWE is 'Multi OS Wallpaper Engine'. This is Wallpaper Engine for any OS like MacOSX, Windows, Linux. This Project use SDL, WinAPI, X11 API conte

Dec 26, 2021
Tiny FEL tools for allwinner SOC, support RISC-V D1 chip

XFEL Tiny FEL tools for allwinner SOC, support RISC-V D1 chip. How to build The xfel tools depends on the libusb-1.0 library, you need to install libu

Dec 30, 2022