This is a Gameboy emulator written in C# and ASP.NET Core/Standard. Written purely for educational purposes!
- Start Project!
- Define Skeleton
- Define methods of loading .gb files
- Define modular components (Processor, GraphicsProcessor, Memory, etc)
- Create Processor Module
- Fetch Opcodes from Memory
- Decode Opcodes (technique on this is still in discussion; currently using Dictionary with opcode being the index, and returning an action to execute.
- Implement all Flags and Register related functionality; i.e. Updating Flags and Registers, returning Paired Registers, etc
- How do we test the Processor Module? Here is a collection of gb-test-roms that we may be able to leverage.
- Look into MemoryController and Memory management
All decisions are loosely made are open for discussion for improvement. Most decisions are based from the documentation of the Gameboy development cycle as well as the resources linked below.
CPU/OpCode Resources |
---|
Gameboy CPU Manual |
Gameboy CPU (LR35902) instruction set |
GameBoy Opcode Summary |
GameBoy CPU InstructionSet Sheet (GCISheet) |
DECODING Gameboy Z80 OPCODES |