aka Enterprise Chip-8
A CHIP-8 emulator implemented in C# / .NET with MonoGame, featuring completely unnecessary layers of abstraction and general over-engineering.
- ๐ฎ
NetChip8.DesktopGLโ MonoGame frontend - ๐ง
NetChip8.EmulatorCoreโ Core CHIP-8 CPU/Emulator logic - ๐๏ธ
NetChip8.Emulator.Sharedโ Shared interfaces, abstractions, and artifacts of software architecture cosplay
| Opcode | Label | Mnemonic | Status |
|---|---|---|---|
| 0NNN | Sys | SYS addr | ๐ซ |
| 00E0 | Clr | CLS | โ |
| 00EE | Rts | RET | โ |
| 1NNN | Jump | JP addr | โ |
| 2NNN | Call | CALL addr | โ |
| 3XNN | Ske | SE Vx, byte | โ |
| 4XNN | Skne | SNE Vx, byte | โ |
| 5XY0 | Skre | SE Vx, Vy | โ |
| 6XNN | Load | LD Vx, byte | โ |
| 7XNN | Add | ADD Vx, byte | โ |
| 8XY0 | Move | LD Vx, Vy | โ |
| 8XY1 | Or | OR Vx, Vy | โ |
| 8XY2 | And | AND Vx, Vy | โ |
| 8XY3 | Xor | XOR Vx, Vy | โ |
| 8XY4 | Addr | ADD Vx, Vy | โ |
| 8XY5 | Sub | SUB Vx, Vy | โ |
| 8XY6 | Shr | SHR Vx {, Vy} | โ |
| 8XY7 | Subn | SUBN Vx, Vy | โ |
| 8XYE | Shl | SHL Vx {, Vy} | โ |
| 9XY0 | Skrne | SNE Vx, Vy | โ |
| ANNN | Loadi | LD I, addr | โ |
| BNNN | Jumpi | JP V0, addr | โ |
| CXNN | Rand | RND Vx, byte | โ |
| DXYN | Draw | DRW Vx, Vy, nibble | โ |
| EX9E | Skpr | SKP Vx | โ |
| EXA1 | Skup | SKNP Vx | โ |
| FX07 | Moved | LD Vx, DT | โ |
| FX0A | Keyd | LD Vx, K | โ |
| FX15 | Loadd | LD DT, Vx | โ |
| FX18 | Loads | LD ST, Vx | โ |
| FX1E | Addi | ADD I, Vx | โ |
| FX29 | Ldspr | LD F, Vx | โ |
| FX33 | Bcd | LD B, Vx | โ |
| FX55 | Stor | LD [I], Vx | โ |
| FX65 | Read | LD Vx, [I] | โ |
- โ โ Implemented
- โ โ Not yet implemented
- ๐ซ โ Intentionally not implemented
Made with ๐งก๐ง using Rider, Visual Studio and ReSharper (because after 15+ years of writing C# I still can't decide which IDE I like)