Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

CHIP-8 Emulator

License

NotificationsYou must be signed in to change notification settings

IlanVinograd/CHIP-8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A CHIP-8 emulator developed in modern C++ using WinAPI and GDI+. This project is designed for Windows systems and features a responsive graphical interface, interactive controls, and built-in debugging tools. Built from the ground up to serve both as a learning platform and a technical showcase of low-level programming.

Game Previews

The following GIFs demonstrate a few classic games running on this emulator:

RushHour:RushHour

Space Invaders:Space Invaders

Brix:Brix

Tetris:Tetris

Keyboard Layout

The emulator maps your keyboard to the original CHIP-8 hexadecimal keypad as follows:

CHIP-8 Keypad Layout:

123C
456D
789E
A0BF

Keyboard Mapping:

1234
QWER
ASDF
ZXCV

How to Run

Requirements

  • Windows OS only – This emulator uses native WinAPI and GDI+ for rendering and user interface.
  • No additional dependencies – A C++17-compatible compiler andmake utility are required (e.g., MinGW or MSYS2).

This emulator is not compatible with macOS or Linux due to its use of Windows-specific APIs.

Running a Game

To run a CHIP-8 ROM, click theLoad button to select a.ch8 file. Once loaded, clickStart to begin execution:Choose Game

Build Instructions

  1. Open a terminal and navigate to thesrc directory:

    cd src
  2. Build and launch the emulator:

    make
  3. To clean up generated files:

    make clean

Documentation and References

Architecture Overview

  • Modular Design:
    • Chip8: System coordinator
    • CPU,Memory,Display: Core functional modules
  • User Interface:
    • Real-time visualization of memory, stack, and registers
    • Custom GDI+ rendering
    • ROM loader and UI buttons for control (Start, Pause, Reset, Load)
  • Input Handling:
    • Fully supports the CHIP-8 hexadecimal keypad layout
  • Audio Feedback:
    • Sound playback via WinMM

Technical References


Project Purpose

This emulator was created as a practical exploration of low-level development, real-time graphics rendering, and system emulation using Windows-native technologies. It serves both as a hands-on learning tool and a demonstration of competency in systems programming and emulator architecture.


License

This project is licensed under the MIT License. Contributions and feedback are welcome.

About

CHIP-8 Emulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp