You are browsing as a guest. Sign up (or log in) to start making projects!

CHIP-8 Rust emu

  • 6 Devlogs
  • 14 Total hours

Building a Chip-8 Emulator (for like the 3rd time) but in Rust to learn about emulation

Ship #1

I made a simple barebones Chip-8 emulator in Rust.

Chip-8 is an interpreted programming language (not an actual cpu!!) with a very small instruction set, this is why I chose to write my first emulator for it, since its dead simple.

The hardest part was the image handling, but that depends on the language and frameworks you use, not the emulator logic itself (what I like)

So it was an easy fun quick little project, cross platform, feel free to test it out!

  • 6 devlogs
  • 14h
  • 13.85x multiplier
  • 184 Stardust
Try project → See source code →
Open comments for this post

57m 56s logged

Finished with the audio and the readMe.

So project finished!!

It was fun, I have already tried making a chip-8 emulator some other times, but never got around to finishing it so, this time I did.

I plan on making one for the 6502 (Apple Computer)

0
0
8
Open comments for this post

3h 0m 39s logged

Finished today with a functional emulator, you can play games and everything. I finished all the opcodes, also fixing some mistakes that broke the whole thing (interpreted some opcodes wrong) and some display fixes.

I also aded if you hit Esc the game closes and if you hit Enter the emu reloads.

The only thing left is some audio, and the readme, also to compile executables and binaries.

2
0
54
Open comments for this post

5h 31m 38s logged

Spent a loooong while, display and some other work.

I tried to make a purelly terminal based emu with ratatui, but since terminals are weird, I couldn’t get the Image to display perfectly with the terminal, so I opted to a regular window, using winit and pixels to render the pixel buffer.

I still have to separate the display code into the display file (maybe not sure abt this one) add the timer logic, and the stack logic and opcodes, after that, input, then Im set

0
0
7
Open comments for this post

1h 40m 14s logged

Made the Chip8 Struct with all the vm’s properties.

Made a function to initialize the struct and another to load the desired program into memory starting at 0x200 as the spec sheet says

0
0
6

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…