Skip to content

Jsmuk/NetChip8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

7 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ•น๏ธ NetChip8

aka Enterprise Chip-8

A CHIP-8 emulator implemented in C# / .NET with MonoGame, featuring completely unnecessary layers of abstraction and general over-engineering.


๐Ÿงฑ Project Structure

  • ๐ŸŽฎ 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 Implementation Status

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)

About

Overengineered CHIP-8 emulator

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages