From c3c76fd7ac5a8cbd5fa31b778e7805a47f9eff08 Mon Sep 17 00:00:00 2001 From: Amy <milkdrop2000@protonmail.com> Date: Thu, 7 Apr 2022 04:22:06 +0100 Subject: [PATCH] refactoring --- gameboy/CMakeLists.txt | 3 +- gameboy/CPU.c | 123 +++++++------- gameboy/CPU.h | 4 +- gameboy/MMU.c | 42 ++--- gameboy/MMU.h | 12 +- gameboy/PPU.c | 111 +++++++------ gameboy/PPU.h | 17 +- gameboy/consts.c | 39 +++++ gameboy/consts.h | 40 +---- gameboy/enums.h | 11 +- gameboy/lol.uf2 | Bin 0 -> 187392 bytes gameboy/lol2.uf2 | Bin 0 -> 187392 bytes gameboy/main.c | 293 +++++++++++++++------------------- gameboy/pico/pico4ml/screen.c | 4 +- gameboy/pico/pico4ml/screen.h | 2 - gameboy/utils.c | 4 +- gameboy/utils.h | 6 +- 17 files changed, 343 insertions(+), 368 deletions(-) create mode 100644 gameboy/lol.uf2 create mode 100644 gameboy/lol2.uf2 diff --git a/gameboy/CMakeLists.txt b/gameboy/CMakeLists.txt index 1455bdd..bab7fa2 100644 --- a/gameboy/CMakeLists.txt +++ b/gameboy/CMakeLists.txt @@ -4,8 +4,7 @@ project (test C ASM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) -# -O2 bricks the screen! -set(CMAKE_C_FLAGS "-g3 -O1 -mcpu=cortex-m0plus --specs=nosys.specs -Wl,--wrap,malloc -Wl,--wrap,calloc -Wl,--wrap,free -Wl,--wrap,vprintf -Wl,--wrap,vscanf") +set(CMAKE_C_FLAGS "-g3 -O2 -mcpu=cortex-m0plus --specs=nosys.specs -Wl,--wrap,malloc -Wl,--wrap,calloc -Wl,--wrap,free -Wl,--wrap,vprintf -Wl,--wrap,vscanf") SET(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp") file (GLOB srcs diff --git a/gameboy/CPU.c b/gameboy/CPU.c index 93f52f2..0ccfcf3 100644 --- a/gameboy/CPU.c +++ b/gameboy/CPU.c @@ -20,7 +20,7 @@ const uint8_t ClocksPerInstruction[] = { 12, 12, 8, 4, 0, 16, 8, 16, 12, 8, 16, 4, 0, 0, 8, 16 // F }; -uint32_t ClockCount = 0; +uint32_t cpu_clock_count = 0; uint32_t InstructionCount = 0; uint8_t Debugging = 0; @@ -58,7 +58,7 @@ uint8_t Stopped = 0; uint8_t EnableInterruptsFlag = 0; uint8_t InterruptsEnabled = 0; -void InitCPU() { +void cpu_init() { // Simulate Boot ROM reg_AF = 0x11B0; reg_BC = 0x0013; @@ -68,7 +68,6 @@ void InitCPU() { PC = 0x0100; // Setup I/O - SetByteAt (0xFF00, 0xFF); SetByteAt (0xFF04, 0xAB); SetByteAt (0xFF10, 0x80); SetByteAt (0xFF11, 0xBF); @@ -112,16 +111,16 @@ void Interrupt (uint8_t ID) { */ uint8_t reg_IF = 0; - SetBit (®_IF, ID, 1); + set_bit(®_IF, ID, 1); if (InterruptsEnabled) { uint8_t reg_IE = GetByteAt(0xFFFF); - if (GetBit (reg_IE, ID)) { // Interrupt Enabled in IE - ClockCount += 20; + if (get_bit(reg_IE, ID)) { // Interrupt Enabled in IE + cpu_clock_count += 20; InterruptsEnabled = 0; if (Halt) - ClockCount += 4; + cpu_clock_count += 4; Halt = 0; StackPush (PC); PC = 0x0040 + (ID << 3); // Jump to interrupt handler @@ -216,7 +215,7 @@ void Clock () { */ if (Halt) { - ClockCount += ClocksPerInstruction [0x00]; // Execute NOP + cpu_clock_count += ClocksPerInstruction [0x00]; // Execute NOP InstructionCount++; return; } @@ -226,15 +225,15 @@ void Clock () { } void Execute (uint8_t Instruction) { - ClockCount += ClocksPerInstruction [Instruction]; + cpu_clock_count += ClocksPerInstruction [Instruction]; InstructionCount++; //printf("0x%04x: Executing 0x%02x\n", PC - 1, Instruction); - flag_Z = GetBit (*reg_F, 7); - flag_N = GetBit (*reg_F, 6); - flag_H = GetBit (*reg_F, 5); - flag_C = GetBit (*reg_F, 4); + flag_Z = get_bit(*reg_F, 7); + flag_N = get_bit(*reg_F, 6); + flag_H = get_bit(*reg_F, 5); + flag_C = get_bit(*reg_F, 4); if (EnableInterruptsFlag) { InterruptsEnabled = 1; @@ -249,7 +248,7 @@ void Execute (uint8_t Instruction) { case 0xF3: InterruptsEnabled = 0; break; // DI case 0xFB: EnableInterruptsFlag = 1; break; // EI - Delay of one instruction case 0xCB: u8 = GetByteAt(PC++); // CB - ClockCount += 8; + cpu_clock_count += 8; switch (u8) { case 0x00: SetN (0); SetH (0); u8 = *reg_B >> 7; *reg_B <<= 1; *reg_B |= u8; SetC (u8); SetZ (*reg_B == 0); break; // RLC case 0x01: SetN (0); SetH (0); u8 = *reg_C >> 7; *reg_C <<= 1; *reg_C |= u8; SetC (u8); SetZ (*reg_C == 0); break; // RLC @@ -257,7 +256,7 @@ void Execute (uint8_t Instruction) { case 0x03: SetN (0); SetH (0); u8 = *reg_E >> 7; *reg_E <<= 1; *reg_E |= u8; SetC (u8); SetZ (*reg_E == 0); break; // RLC case 0x04: SetN (0); SetH (0); u8 = *reg_H >> 7; *reg_H <<= 1; *reg_H |= u8; SetC (u8); SetZ (*reg_H == 0); break; // RLC case 0x05: SetN (0); SetH (0); u8 = *reg_L >> 7; *reg_L <<= 1; *reg_L |= u8; SetC (u8); SetZ (*reg_L == 0); break; // RLC - case 0x06: SetN (0); SetH (0); u8 = GetM () >> 7; SetM ((GetM () << 1) | u8); SetC (u8); SetZ (GetM () == 0); ClockCount += 8; break; // RLC + case 0x06: SetN (0); SetH (0); u8 = GetM () >> 7; SetM ((GetM () << 1) | u8); SetC (u8); SetZ (GetM () == 0); cpu_clock_count += 8; break; // RLC case 0x07: SetN (0); SetH (0); u8 = *reg_A >> 7; *reg_A <<= 1; *reg_A |= u8; SetC (u8); SetZ (*reg_A == 0); break; // RLC case 0x08: SetN (0); SetH (0); u8 = *reg_B & 1; *reg_B >>= 1; *reg_B |= u8 << 7; SetC (u8); SetZ (*reg_B == 0); break; // RRC @@ -266,7 +265,7 @@ void Execute (uint8_t Instruction) { case 0x0B: SetN (0); SetH (0); u8 = *reg_E & 1; *reg_E >>= 1; *reg_E |= u8 << 7; SetC (u8); SetZ (*reg_E == 0); break; // RRC case 0x0C: SetN (0); SetH (0); u8 = *reg_H & 1; *reg_H >>= 1; *reg_H |= u8 << 7; SetC (u8); SetZ (*reg_H == 0); break; // RRC case 0x0D: SetN (0); SetH (0); u8 = *reg_L & 1; *reg_L >>= 1; *reg_L |= u8 << 7; SetC (u8); SetZ (*reg_L == 0); break; // RRC - case 0x0E: SetN (0); SetH (0); u8 = GetM () & 1; SetM ((GetM () >> 1) | (u8 << 7)); SetC (u8); SetZ (GetM () == 0); ClockCount += 8; break; // RRC + case 0x0E: SetN (0); SetH (0); u8 = GetM () & 1; SetM ((GetM () >> 1) | (u8 << 7)); SetC (u8); SetZ (GetM () == 0); cpu_clock_count += 8; break; // RRC case 0x0F: SetN (0); SetH (0); u8 = *reg_A & 1; *reg_A >>= 1; *reg_A |= u8 << 7; SetC (u8); SetZ (*reg_A == 0); break; // RRC case 0x10: SetN (0); SetH (0); u8 = *reg_B >> 7; *reg_B <<= 1; *reg_B |= flag_C; SetC (u8); SetZ (*reg_B == 0); break; // RL @@ -275,7 +274,7 @@ void Execute (uint8_t Instruction) { case 0x13: SetN (0); SetH (0); u8 = *reg_E >> 7; *reg_E <<= 1; *reg_E |= flag_C; SetC (u8); SetZ (*reg_E == 0); break; // RL case 0x14: SetN (0); SetH (0); u8 = *reg_H >> 7; *reg_H <<= 1; *reg_H |= flag_C; SetC (u8); SetZ (*reg_H == 0); break; // RL case 0x15: SetN (0); SetH (0); u8 = *reg_L >> 7; *reg_L <<= 1; *reg_L |= flag_C; SetC (u8); SetZ (*reg_L == 0); break; // RL - case 0x16: SetN (0); SetH (0); u8 = GetM () >> 7; SetM ((GetM () << 1) | flag_C); SetC (u8); SetZ (GetM () == 0); ClockCount += 8; break; // RL + case 0x16: SetN (0); SetH (0); u8 = GetM () >> 7; SetM ((GetM () << 1) | flag_C); SetC (u8); SetZ (GetM () == 0); cpu_clock_count += 8; break; // RL case 0x17: SetN (0); SetH (0); u8 = *reg_A >> 7; *reg_A <<= 1; *reg_A |= flag_C; SetC (u8); SetZ (*reg_A == 0); break; // RL case 0x18: SetN (0); SetH (0); u8 = *reg_B & 1; *reg_B >>= 1; *reg_B |= flag_C << 7; SetC (u8); SetZ (*reg_B == 0); break; // RR @@ -284,7 +283,7 @@ void Execute (uint8_t Instruction) { case 0x1B: SetN (0); SetH (0); u8 = *reg_E & 1; *reg_E >>= 1; *reg_E |= flag_C << 7; SetC (u8); SetZ (*reg_E == 0); break; // RR case 0x1C: SetN (0); SetH (0); u8 = *reg_H & 1; *reg_H >>= 1; *reg_H |= flag_C << 7; SetC (u8); SetZ (*reg_H == 0); break; // RR case 0x1D: SetN (0); SetH (0); u8 = *reg_L & 1; *reg_L >>= 1; *reg_L |= flag_C << 7; SetC (u8); SetZ (*reg_L == 0); break; // RR - case 0x1E: SetN (0); SetH (0); u8 = GetM () & 1; SetM ((GetM () >> 1) | (flag_C << 7)); SetC (u8); SetZ (GetM () == 0); ClockCount += 8; break; // RR + case 0x1E: SetN (0); SetH (0); u8 = GetM () & 1; SetM ((GetM () >> 1) | (flag_C << 7)); SetC (u8); SetZ (GetM () == 0); cpu_clock_count += 8; break; // RR case 0x1F: SetN (0); SetH (0); u8 = *reg_A & 1; *reg_A >>= 1; *reg_A |= flag_C << 7; SetC (u8); SetZ (*reg_A == 0); break; // RR case 0x20: SetN (0); SetH (0); SetC (*reg_B >> 7); *reg_B <<= 1; SetZ (*reg_B == 0); break; // SLA @@ -293,7 +292,7 @@ void Execute (uint8_t Instruction) { case 0x23: SetN (0); SetH (0); SetC (*reg_E >> 7); *reg_E <<= 1; SetZ (*reg_E == 0); break; // SLA case 0x24: SetN (0); SetH (0); SetC (*reg_H >> 7); *reg_H <<= 1; SetZ (*reg_H == 0); break; // SLA case 0x25: SetN (0); SetH (0); SetC (*reg_L >> 7); *reg_L <<= 1; SetZ (*reg_L == 0); break; // SLA - case 0x26: SetN (0); SetH (0); SetC (GetM () >> 7); SetM (GetM () << 1); SetZ (GetM () == 0); ClockCount += 8; break; // SLA + case 0x26: SetN (0); SetH (0); SetC (GetM () >> 7); SetM (GetM () << 1); SetZ (GetM () == 0); cpu_clock_count += 8; break; // SLA case 0x27: SetN (0); SetH (0); SetC (*reg_A >> 7); *reg_A <<= 1; SetZ (*reg_A == 0); break; // SLA case 0x28: SetN (0); SetH (0); u8 = *reg_B >> 7; SetC (*reg_B & 1); *reg_B >>= 1; *reg_B |= u8 << 7; SetZ (*reg_B == 0); break; // SRA @@ -302,7 +301,7 @@ void Execute (uint8_t Instruction) { case 0x2B: SetN (0); SetH (0); u8 = *reg_E >> 7; SetC (*reg_E & 1); *reg_E >>= 1; *reg_E |= u8 << 7; SetZ (*reg_E == 0); break; // SRA case 0x2C: SetN (0); SetH (0); u8 = *reg_H >> 7; SetC (*reg_H & 1); *reg_H >>= 1; *reg_H |= u8 << 7; SetZ (*reg_H == 0); break; // SRA case 0x2D: SetN (0); SetH (0); u8 = *reg_L >> 7; SetC (*reg_L & 1); *reg_L >>= 1; *reg_L |= u8 << 7; SetZ (*reg_L == 0); break; // SRA - case 0x2E: SetN (0); SetH (0); u8 = GetM () >> 7; SetC (GetM () & 1); SetM ((GetM () >> 1) | (u8 << 7)); SetZ (GetM () == 0); ClockCount += 8; break; // SRA + case 0x2E: SetN (0); SetH (0); u8 = GetM () >> 7; SetC (GetM () & 1); SetM ((GetM () >> 1) | (u8 << 7)); SetZ (GetM () == 0); cpu_clock_count += 8; break; // SRA case 0x2F: SetN (0); SetH (0); u8 = *reg_A >> 7; SetC (*reg_A & 1); *reg_A >>= 1; *reg_A |= u8 << 7; SetZ (*reg_A == 0); break; // SRA case 0x30: SetN (0); SetH (0); SetC (0); SetZ (*reg_B == 0); *reg_B = (*reg_B << 4) | (*reg_B >> 4); break; // SWAP @@ -311,7 +310,7 @@ void Execute (uint8_t Instruction) { case 0x33: SetN (0); SetH (0); SetC (0); SetZ (*reg_E == 0); *reg_E = (*reg_E << 4) | (*reg_E >> 4); break; // SWAP case 0x34: SetN (0); SetH (0); SetC (0); SetZ (*reg_H == 0); *reg_H = (*reg_H << 4) | (*reg_H >> 4); break; // SWAP case 0x35: SetN (0); SetH (0); SetC (0); SetZ (*reg_L == 0); *reg_L = (*reg_L << 4) | (*reg_L >> 4); break; // SWAP - case 0x36: SetN (0); SetH (0); SetC (0); SetZ (GetM () == 0); SetM ((GetM () << 4) | (GetM () >> 4)); ClockCount += 8; break; // SWAP + case 0x36: SetN (0); SetH (0); SetC (0); SetZ (GetM () == 0); SetM ((GetM () << 4) | (GetM () >> 4)); cpu_clock_count += 8; break; // SWAP case 0x37: SetN (0); SetH (0); SetC (0); SetZ (*reg_A == 0); *reg_A = (*reg_A << 4) | (*reg_A >> 4); break; // SWAP case 0x38: SetN (0); SetH (0); u8 = *reg_B & 1; *reg_B >>= 1; SetC (u8); SetZ (*reg_B == 0); break; // SRL @@ -320,7 +319,7 @@ void Execute (uint8_t Instruction) { case 0x3B: SetN (0); SetH (0); u8 = *reg_E & 1; *reg_E >>= 1; SetC (u8); SetZ (*reg_E == 0); break; // SRL case 0x3C: SetN (0); SetH (0); u8 = *reg_H & 1; *reg_H >>= 1; SetC (u8); SetZ (*reg_H == 0); break; // SRL case 0x3D: SetN (0); SetH (0); u8 = *reg_L & 1; *reg_L >>= 1; SetC (u8); SetZ (*reg_L == 0); break; // SRL - case 0x3E: SetN (0); SetH (0); u8 = GetM () & 1; SetM (GetM () >> 1); SetC (u8); SetZ (GetM () == 0); ClockCount += 8; break; // SRL + case 0x3E: SetN (0); SetH (0); u8 = GetM () & 1; SetM (GetM () >> 1); SetC (u8); SetZ (GetM () == 0); cpu_clock_count += 8; break; // SRL case 0x3F: SetN (0); SetH (0); u8 = *reg_A & 1; *reg_A >>= 1; SetC (u8); SetZ (*reg_A == 0); break; // SRL case 0x40: SetZ ((*reg_B & (1 << 0)) == 0); SetN (0); SetH (1); break; // BIT @@ -329,7 +328,7 @@ void Execute (uint8_t Instruction) { case 0x43: SetZ ((*reg_E & (1 << 0)) == 0); SetN (0); SetH (1); break; // BIT case 0x44: SetZ ((*reg_H & (1 << 0)) == 0); SetN (0); SetH (1); break; // BIT case 0x45: SetZ ((*reg_L & (1 << 0)) == 0); SetN (0); SetH (1); break; // BIT - case 0x46: SetZ ((GetM () & (1 << 0)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x46: SetZ ((GetM () & (1 << 0)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x47: SetZ ((*reg_A & (1 << 0)) == 0); SetN (0); SetH (1); break; // BIT case 0x48: SetZ ((*reg_B & (1 << 1)) == 0); SetN (0); SetH (1); break; // BIT @@ -338,7 +337,7 @@ void Execute (uint8_t Instruction) { case 0x4B: SetZ ((*reg_E & (1 << 1)) == 0); SetN (0); SetH (1); break; // BIT case 0x4C: SetZ ((*reg_H & (1 << 1)) == 0); SetN (0); SetH (1); break; // BIT case 0x4D: SetZ ((*reg_L & (1 << 1)) == 0); SetN (0); SetH (1); break; // BIT - case 0x4E: SetZ ((GetM () & (1 << 1)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x4E: SetZ ((GetM () & (1 << 1)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x4F: SetZ ((*reg_A & (1 << 1)) == 0); SetN (0); SetH (1); break; // BIT case 0x50: SetZ ((*reg_B & (1 << 2)) == 0); SetN (0); SetH (1); break; // BIT @@ -347,7 +346,7 @@ void Execute (uint8_t Instruction) { case 0x53: SetZ ((*reg_E & (1 << 2)) == 0); SetN (0); SetH (1); break; // BIT case 0x54: SetZ ((*reg_H & (1 << 2)) == 0); SetN (0); SetH (1); break; // BIT case 0x55: SetZ ((*reg_L & (1 << 2)) == 0); SetN (0); SetH (1); break; // BIT - case 0x56: SetZ ((GetM () & (1 << 2)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x56: SetZ ((GetM () & (1 << 2)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x57: SetZ ((*reg_A & (1 << 2)) == 0); SetN (0); SetH (1); break; // BIT case 0x58: SetZ ((*reg_B & (1 << 3)) == 0); SetN (0); SetH (1); break; // BIT @@ -356,7 +355,7 @@ void Execute (uint8_t Instruction) { case 0x5B: SetZ ((*reg_E & (1 << 3)) == 0); SetN (0); SetH (1); break; // BIT case 0x5C: SetZ ((*reg_H & (1 << 3)) == 0); SetN (0); SetH (1); break; // BIT case 0x5D: SetZ ((*reg_L & (1 << 3)) == 0); SetN (0); SetH (1); break; // BIT - case 0x5E: SetZ ((GetM () & (1 << 3)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x5E: SetZ ((GetM () & (1 << 3)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x5F: SetZ ((*reg_A & (1 << 3)) == 0); SetN (0); SetH (1); break; // BIT case 0x60: SetZ ((*reg_B & (1 << 4)) == 0); SetN (0); SetH (1); break; // BIT @@ -365,7 +364,7 @@ void Execute (uint8_t Instruction) { case 0x63: SetZ ((*reg_E & (1 << 4)) == 0); SetN (0); SetH (1); break; // BIT case 0x64: SetZ ((*reg_H & (1 << 4)) == 0); SetN (0); SetH (1); break; // BIT case 0x65: SetZ ((*reg_L & (1 << 4)) == 0); SetN (0); SetH (1); break; // BIT - case 0x66: SetZ ((GetM () & (1 << 4)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x66: SetZ ((GetM () & (1 << 4)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x67: SetZ ((*reg_A & (1 << 4)) == 0); SetN (0); SetH (1); break; // BIT case 0x68: SetZ ((*reg_B & (1 << 5)) == 0); SetN (0); SetH (1); break; // BIT @@ -374,7 +373,7 @@ void Execute (uint8_t Instruction) { case 0x6B: SetZ ((*reg_E & (1 << 5)) == 0); SetN (0); SetH (1); break; // BIT case 0x6C: SetZ ((*reg_H & (1 << 5)) == 0); SetN (0); SetH (1); break; // BIT case 0x6D: SetZ ((*reg_L & (1 << 5)) == 0); SetN (0); SetH (1); break; // BIT - case 0x6E: SetZ ((GetM () & (1 << 5)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x6E: SetZ ((GetM () & (1 << 5)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x6F: SetZ ((*reg_A & (1 << 5)) == 0); SetN (0); SetH (1); break; // BIT case 0x70: SetZ ((*reg_B & (1 << 6)) == 0); SetN (0); SetH (1); break; // BIT @@ -383,7 +382,7 @@ void Execute (uint8_t Instruction) { case 0x73: SetZ ((*reg_E & (1 << 6)) == 0); SetN (0); SetH (1); break; // BIT case 0x74: SetZ ((*reg_H & (1 << 6)) == 0); SetN (0); SetH (1); break; // BIT case 0x75: SetZ ((*reg_L & (1 << 6)) == 0); SetN (0); SetH (1); break; // BIT - case 0x76: SetZ ((GetM () & (1 << 6)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x76: SetZ ((GetM () & (1 << 6)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x77: SetZ ((*reg_A & (1 << 6)) == 0); SetN (0); SetH (1); break; // BIT case 0x78: SetZ ((*reg_B & (1 << 7)) == 0); SetN (0); SetH (1); break; // BIT @@ -392,7 +391,7 @@ void Execute (uint8_t Instruction) { case 0x7B: SetZ ((*reg_E & (1 << 7)) == 0); SetN (0); SetH (1); break; // BIT case 0x7C: SetZ ((*reg_H & (1 << 7)) == 0); SetN (0); SetH (1); break; // BIT case 0x7D: SetZ ((*reg_L & (1 << 7)) == 0); SetN (0); SetH (1); break; // BIT - case 0x7E: SetZ ((GetM () & (1 << 7)) == 0); SetN (0); SetH (1); ClockCount += 8; break; // BIT + case 0x7E: SetZ ((GetM () & (1 << 7)) == 0); SetN (0); SetH (1); cpu_clock_count += 8; break; // BIT case 0x7F: SetZ ((*reg_A & (1 << 7)) == 0); SetN (0); SetH (1); break; // BIT case 0x80: *reg_B &= 0xFF ^ (1 << 0); break; // RES @@ -401,7 +400,7 @@ void Execute (uint8_t Instruction) { case 0x83: *reg_E &= 0xFF ^ (1 << 0); break; // RES case 0x84: *reg_H &= 0xFF ^ (1 << 0); break; // RES case 0x85: *reg_L &= 0xFF ^ (1 << 0); break; // RES - case 0x86: SetM (GetM () & (0xFF ^ (1 << 0))); ClockCount += 8; break; // RES + case 0x86: SetM (GetM () & (0xFF ^ (1 << 0))); cpu_clock_count += 8; break; // RES case 0x87: *reg_A &= 0xFF ^ (1 << 0); break; // RES case 0x88: *reg_B &= 0xFF ^ (1 << 1); break; // RES @@ -410,7 +409,7 @@ void Execute (uint8_t Instruction) { case 0x8B: *reg_E &= 0xFF ^ (1 << 1); break; // RES case 0x8C: *reg_H &= 0xFF ^ (1 << 1); break; // RES case 0x8D: *reg_L &= 0xFF ^ (1 << 1); break; // RES - case 0x8E: SetM (GetM () & (0xFF ^ (1 << 1))); ClockCount += 8; break; // RES + case 0x8E: SetM (GetM () & (0xFF ^ (1 << 1))); cpu_clock_count += 8; break; // RES case 0x8F: *reg_A &= 0xFF ^ (1 << 1); break; // RES case 0x90: *reg_B &= 0xFF ^ (1 << 2); break; // RES @@ -419,7 +418,7 @@ void Execute (uint8_t Instruction) { case 0x93: *reg_E &= 0xFF ^ (1 << 2); break; // RES case 0x94: *reg_H &= 0xFF ^ (1 << 2); break; // RES case 0x95: *reg_L &= 0xFF ^ (1 << 2); break; // RES - case 0x96: SetM (GetM () & (0xFF ^ (1 << 2))); ClockCount += 8; break; // RES + case 0x96: SetM (GetM () & (0xFF ^ (1 << 2))); cpu_clock_count += 8; break; // RES case 0x97: *reg_A &= 0xFF ^ (1 << 2); break; // RES case 0x98: *reg_B &= 0xFF ^ (1 << 3); break; // RES @@ -428,7 +427,7 @@ void Execute (uint8_t Instruction) { case 0x9B: *reg_E &= 0xFF ^ (1 << 3); break; // RES case 0x9C: *reg_H &= 0xFF ^ (1 << 3); break; // RES case 0x9D: *reg_L &= 0xFF ^ (1 << 3); break; // RES - case 0x9E: SetM (GetM () & (0xFF ^ (1 << 3))); ClockCount += 8; break; // RES + case 0x9E: SetM (GetM () & (0xFF ^ (1 << 3))); cpu_clock_count += 8; break; // RES case 0x9F: *reg_A &= 0xFF ^ (1 << 3); break; // RES case 0xA0: *reg_B &= 0xFF ^ (1 << 4); break; // RES @@ -437,7 +436,7 @@ void Execute (uint8_t Instruction) { case 0xA3: *reg_E &= 0xFF ^ (1 << 4); break; // RES case 0xA4: *reg_H &= 0xFF ^ (1 << 4); break; // RES case 0xA5: *reg_L &= 0xFF ^ (1 << 4); break; // RES - case 0xA6: SetM (GetM () & (0xFF ^ (1 << 4))); ClockCount += 8; break; // RES + case 0xA6: SetM (GetM () & (0xFF ^ (1 << 4))); cpu_clock_count += 8; break; // RES case 0xA7: *reg_A &= 0xFF ^ (1 << 4); break; // RES case 0xA8: *reg_B &= 0xFF ^ (1 << 5); break; // RES @@ -446,7 +445,7 @@ void Execute (uint8_t Instruction) { case 0xAB: *reg_E &= 0xFF ^ (1 << 5); break; // RES case 0xAC: *reg_H &= 0xFF ^ (1 << 5); break; // RES case 0xAD: *reg_L &= 0xFF ^ (1 << 5); break; // RES - case 0xAE: SetM (GetM () & (0xFF ^ (1 << 5))); ClockCount += 8; break; // RES + case 0xAE: SetM (GetM () & (0xFF ^ (1 << 5))); cpu_clock_count += 8; break; // RES case 0xAF: *reg_A &= 0xFF ^ (1 << 5); break; // RES case 0xB0: *reg_B &= 0xFF ^ (1 << 6); break; // RES @@ -455,7 +454,7 @@ void Execute (uint8_t Instruction) { case 0xB3: *reg_E &= 0xFF ^ (1 << 6); break; // RES case 0xB4: *reg_H &= 0xFF ^ (1 << 6); break; // RES case 0xB5: *reg_L &= 0xFF ^ (1 << 6); break; // RES - case 0xB6: SetM (GetM () & (0xFF ^ (1 << 6))); ClockCount += 8; break; // RES + case 0xB6: SetM (GetM () & (0xFF ^ (1 << 6))); cpu_clock_count += 8; break; // RES case 0xB7: *reg_A &= 0xFF ^ (1 << 6); break; // RES case 0xB8: *reg_B &= 0xFF ^ (1 << 7); break; // RES @@ -464,7 +463,7 @@ void Execute (uint8_t Instruction) { case 0xBB: *reg_E &= 0xFF ^ (1 << 7); break; // RES case 0xBC: *reg_H &= 0xFF ^ (1 << 7); break; // RES case 0xBD: *reg_L &= 0xFF ^ (1 << 7); break; // RES - case 0xBE: SetM (GetM () & (0xFF ^ (1 << 7))); ClockCount += 8; break; // RES + case 0xBE: SetM (GetM () & (0xFF ^ (1 << 7))); cpu_clock_count += 8; break; // RES case 0xBF: *reg_A &= 0xFF ^ (1 << 7); break; // RES case 0xC0: *reg_B |= 1 << 0; break; // SET @@ -473,7 +472,7 @@ void Execute (uint8_t Instruction) { case 0xC3: *reg_E |= 1 << 0; break; // SET case 0xC4: *reg_H |= 1 << 0; break; // SET case 0xC5: *reg_L |= 1 << 0; break; // SET - case 0xC6: SetM (GetM () | (1 << 0)); ClockCount += 8; break; // SET + case 0xC6: SetM (GetM () | (1 << 0)); cpu_clock_count += 8; break; // SET case 0xC7: *reg_A |= 1 << 0; break; // SET case 0xC8: *reg_B |= 1 << 1; break; // SET @@ -482,7 +481,7 @@ void Execute (uint8_t Instruction) { case 0xCB: *reg_E |= 1 << 1; break; // SET case 0xCC: *reg_H |= 1 << 1; break; // SET case 0xCD: *reg_L |= 1 << 1; break; // SET - case 0xCE: SetM (GetM () | (1 << 1)); ClockCount += 8; break; // SET + case 0xCE: SetM (GetM () | (1 << 1)); cpu_clock_count += 8; break; // SET case 0xCF: *reg_A |= 1 << 1; break; // SET case 0xD0: *reg_B |= 1 << 2; break; // SET @@ -491,7 +490,7 @@ void Execute (uint8_t Instruction) { case 0xD3: *reg_E |= 1 << 2; break; // SET case 0xD4: *reg_H |= 1 << 2; break; // SET case 0xD5: *reg_L |= 1 << 2; break; // SET - case 0xD6: SetM (GetM () | (1 << 2)); ClockCount += 8; break; // SET + case 0xD6: SetM (GetM () | (1 << 2)); cpu_clock_count += 8; break; // SET case 0xD7: *reg_A |= 1 << 2; break; // SET case 0xD8: *reg_B |= 1 << 3; break; // SET @@ -500,7 +499,7 @@ void Execute (uint8_t Instruction) { case 0xDB: *reg_E |= 1 << 3; break; // SET case 0xDC: *reg_H |= 1 << 3; break; // SET case 0xDD: *reg_L |= 1 << 3; break; // SET - case 0xDE: SetM (GetM () | (1 << 3)); ClockCount += 8; break; // SET + case 0xDE: SetM (GetM () | (1 << 3)); cpu_clock_count += 8; break; // SET case 0xDF: *reg_A |= 1 << 3; break; // SET case 0xE0: *reg_B |= 1 << 4; break; // SET @@ -509,7 +508,7 @@ void Execute (uint8_t Instruction) { case 0xE3: *reg_E |= 1 << 4; break; // SET case 0xE4: *reg_H |= 1 << 4; break; // SET case 0xE5: *reg_L |= 1 << 4; break; // SET - case 0xE6: SetM (GetM () | (1 << 4)); ClockCount += 8; break; // SET + case 0xE6: SetM (GetM () | (1 << 4)); cpu_clock_count += 8; break; // SET case 0xE7: *reg_A |= 1 << 4; break; // SET case 0xE8: *reg_B |= 1 << 5; break; // SET @@ -518,7 +517,7 @@ void Execute (uint8_t Instruction) { case 0xEB: *reg_E |= 1 << 5; break; // SET case 0xEC: *reg_H |= 1 << 5; break; // SET case 0xED: *reg_L |= 1 << 5; break; // SET - case 0xEE: SetM (GetM () | (1 << 5)); ClockCount += 8; break; // SET + case 0xEE: SetM (GetM () | (1 << 5)); cpu_clock_count += 8; break; // SET case 0xEF: *reg_A |= 1 << 5; break; // SET case 0xF0: *reg_B |= 1 << 6; break; // SET @@ -527,7 +526,7 @@ void Execute (uint8_t Instruction) { case 0xF3: *reg_E |= 1 << 6; break; // SET case 0xF4: *reg_H |= 1 << 6; break; // SET case 0xF5: *reg_L |= 1 << 6; break; // SET - case 0xF6: SetM (GetM () | (1 << 6)); ClockCount += 8; break; // SET + case 0xF6: SetM (GetM () | (1 << 6)); cpu_clock_count += 8; break; // SET case 0xF7: *reg_A |= 1 << 6; break; // SET case 0xF8: *reg_B |= 1 << 7; break; // SET @@ -536,7 +535,7 @@ void Execute (uint8_t Instruction) { case 0xFB: *reg_E |= 1 << 7; break; // SET case 0xFC: *reg_H |= 1 << 7; break; // SET case 0xFD: *reg_L |= 1 << 7; break; // SET - case 0xFE: SetM (GetM () | (1 << 7)); ClockCount += 8; break; // SET + case 0xFE: SetM (GetM () | (1 << 7)); cpu_clock_count += 8; break; // SET case 0xFF: *reg_A |= 1 << 7; break; // SET } break; @@ -544,29 +543,29 @@ void Execute (uint8_t Instruction) { // Jumps / Calls case 0xC3: PC = GetWordAt(PC); break; // JP a16 case 0xE9: PC = reg_HL; break; // JP HL - case 0xC2: u16 = GetWordAt(PC); PC += 2; if (!flag_Z) {PC = u16; ClockCount += 4;} break; // JP NZ a16 - case 0xD2: u16 = GetWordAt(PC); PC += 2; if (!flag_C) {PC = u16; ClockCount += 4;} break; // JP NC a16 - case 0xCA: u16 = GetWordAt(PC); PC += 2; if (flag_Z) {PC = u16; ClockCount += 4;} break; // JP Z a16 - case 0xDA: u16 = GetWordAt(PC); PC += 2; if (flag_C) {PC = u16; ClockCount += 4;} break; // JP C a16 + case 0xC2: u16 = GetWordAt(PC); PC += 2; if (!flag_Z) {PC = u16; cpu_clock_count += 4;} break; // JP NZ a16 + case 0xD2: u16 = GetWordAt(PC); PC += 2; if (!flag_C) {PC = u16; cpu_clock_count += 4;} break; // JP NC a16 + case 0xCA: u16 = GetWordAt(PC); PC += 2; if (flag_Z) {PC = u16; cpu_clock_count += 4;} break; // JP Z a16 + case 0xDA: u16 = GetWordAt(PC); PC += 2; if (flag_C) {PC = u16; cpu_clock_count += 4;} break; // JP C a16 case 0x18: i8 = GetByteAt(PC++); PC += i8; break; // JR - case 0x28: i8 = GetByteAt(PC++); if (flag_Z) {PC += i8; ClockCount += 4;} break; // JR Z - case 0x38: i8 = GetByteAt(PC++); if (flag_C) {PC += i8; ClockCount += 4;} break; // JR C - case 0x20: i8 = GetByteAt(PC++); if (!flag_Z) {PC += i8; ClockCount += 4;} break; // JR NZ - case 0x30: i8 = GetByteAt(PC++); if (!flag_C) {PC += i8; ClockCount += 4;} break; // JR NC + case 0x28: i8 = GetByteAt(PC++); if (flag_Z) {PC += i8; cpu_clock_count += 4;} break; // JR Z + case 0x38: i8 = GetByteAt(PC++); if (flag_C) {PC += i8; cpu_clock_count += 4;} break; // JR C + case 0x20: i8 = GetByteAt(PC++); if (!flag_Z) {PC += i8; cpu_clock_count += 4;} break; // JR NZ + case 0x30: i8 = GetByteAt(PC++); if (!flag_C) {PC += i8; cpu_clock_count += 4;} break; // JR NC case 0xCD: u16 = GetWordAt(PC); PC += 2; StackPush (PC); PC = u16; break; // CALL - case 0xC4: u16 = GetWordAt(PC); PC += 2; if (!flag_Z) {StackPush (PC); PC = u16; ClockCount += 12;} break; // CALL NZ, a16 - case 0xD4: u16 = GetWordAt(PC); PC += 2; if (!flag_C) {StackPush (PC); PC = u16; ClockCount += 12;} break; // CALL NC, a16 - case 0xCC: u16 = GetWordAt(PC); PC += 2; if (flag_Z) {StackPush (PC); PC = u16; ClockCount += 12;} break; // CALL Z, a16 - case 0xDC: u16 = GetWordAt(PC); PC += 2; if (flag_C) {StackPush (PC); PC = u16; ClockCount += 12;} break; // CALL C, a16 + case 0xC4: u16 = GetWordAt(PC); PC += 2; if (!flag_Z) {StackPush (PC); PC = u16; cpu_clock_count += 12;} break; // CALL NZ, a16 + case 0xD4: u16 = GetWordAt(PC); PC += 2; if (!flag_C) {StackPush (PC); PC = u16; cpu_clock_count += 12;} break; // CALL NC, a16 + case 0xCC: u16 = GetWordAt(PC); PC += 2; if (flag_Z) {StackPush (PC); PC = u16; cpu_clock_count += 12;} break; // CALL Z, a16 + case 0xDC: u16 = GetWordAt(PC); PC += 2; if (flag_C) {StackPush (PC); PC = u16; cpu_clock_count += 12;} break; // CALL C, a16 case 0xC9: PC = StackPop(); break; // RET case 0xD9: PC = StackPop(); InterruptsEnabled = 1; break; // RETI - case 0xC0: if (!flag_Z) {PC = StackPop(); ClockCount += 12;} break; // RET NZ - case 0xD0: if (!flag_C) {PC = StackPop(); ClockCount += 12;} break; // RET NC - case 0xC8: if (flag_Z) {PC = StackPop(); ClockCount += 12;} break; // RET Z - case 0xD8: if (flag_C) {PC = StackPop(); ClockCount += 12;} break; // RET C + case 0xC0: if (!flag_Z) {PC = StackPop(); cpu_clock_count += 12;} break; // RET NZ + case 0xD0: if (!flag_C) {PC = StackPop(); cpu_clock_count += 12;} break; // RET NC + case 0xC8: if (flag_Z) {PC = StackPop(); cpu_clock_count += 12;} break; // RET Z + case 0xD8: if (flag_C) {PC = StackPop(); cpu_clock_count += 12;} break; // RET C case 0xC7: StackPush (PC); PC = 0x00; break; // RST case 0xCF: StackPush (PC); PC = 0x08; break; // RST diff --git a/gameboy/CPU.h b/gameboy/CPU.h index bb42ad5..4ac25f0 100644 --- a/gameboy/CPU.h +++ b/gameboy/CPU.h @@ -5,12 +5,12 @@ #ifndef CPU_H #define CPU_H -void InitCPU(); +void cpu_init(); void Clock (); void Debug (); void Interrupt (uint8_t ID); -extern uint32_t ClockCount; +extern uint32_t cpu_clock_count; extern uint32_t InstructionCount; extern uint8_t Debugging; diff --git a/gameboy/MMU.c b/gameboy/MMU.c index 95a82e1..46715b5 100644 --- a/gameboy/MMU.c +++ b/gameboy/MMU.c @@ -1,11 +1,9 @@ #include "MMU.h" -#include "enums.h" -#include "consts.h" // TODO - Move to flash later on, intended to be 16 * uint8_t ExternalRAM[4 * 0x2000]; // 16 RAM Banks Max -enum RomType rom_type; +ROMType rom_type; uint8_t rom_has_battery; uint8_t rom_has_external_ram; @@ -17,17 +15,12 @@ uint8_t SelectRAMBank = 0; uint8_t RTCRegister [0x0D]; uint8_t ExternalRAMSize = 0; -// VRAM Status -uint8_t CurrentPPUMode = 1; - -// Convenience Pointers - uint8_t* rom = &__rom_lol_start_cursed_section; -uint8_t Memory[0x10000]; -uint8_t* IOMap = Memory + 0xFF00; +uint8_t ram[0x10000]; +uint8_t* io_map = ram + 0xFF00; void mmu_init() { - memset(Memory, 0, sizeof(Memory)); + memset(ram, 0, sizeof(ram)); parse_rom(); } @@ -73,7 +66,6 @@ void parse_rom() { } printf("\n"); printf("ROM Size: %d KB\n", 32 << GetByteAt(0x0148)); - printf("ORIGINAL1 get_byte: rom_type: %d | MBC3: %d\n", rom_type, MBC3); uint8_t external_ram_size = 0; @@ -87,23 +79,15 @@ void parse_rom() { default: break; } - printf("ORIGINAL2 get_byte: rom_type: %d | MBC3: %d\n", rom_type, MBC3); - rom_has_battery = 1; - rom_has_external_ram = 1; - printf("ORIGINAL3 get_byte: rom_type: %d | MBC3: %d\n", rom_type, MBC3); + rom_has_battery = ROM_INDEX_HAS_BATTERY[rom_index]; + rom_has_external_ram = ROM_INDEX_HAS_RAM[rom_index]; printf("\n"); printf("ROM has Battery: %d\n", rom_has_battery); printf("ROM has External RAM: %d\n", rom_has_external_ram); - - printf("ORIGINAL4 get_byte: rom_type: %d | MBC3: %d\n", rom_type, MBC3); - printf("addr1: %x (rom_type)\naddr2: %x (rom_has_battery)\n", &rom_type, &rom_has_battery); } uint8_t GetByteAt(uint16_t Address) { - printf("get_byte: rom_type: %d | MBC3: %d\n", rom_type, MBC3); - sleep_ms(250); - if (Address < 0x4000) return rom [Address]; // ROM Bank 0 else if (Address < 0x8000) @@ -113,7 +97,7 @@ uint8_t GetByteAt(uint16_t Address) { Address -= 0x2000; if (Address >= 0xFE00 && Address < 0xFEA0) { // OAM - if (CurrentPPUMode >= 2) { // Inaccessible + if (ppu_mode >= 2) { // Inaccessible printf("[WARN] Blocked OAM Read\n"); return 0xFF; } @@ -134,14 +118,14 @@ uint8_t GetByteAt(uint16_t Address) { } } - return Memory [Address]; + return ram [Address]; } void SetByteAt (uint16_t Address, uint8_t Value) { switch (Address) { case 0xFF01: printf("%c", Value); fflush (stdout); return; // SB case 0xFF04: Value = 0; return; // DIV Register, Always write 0 - case 0xFF46: if (CurrentPPUMode < 2) memcpy (Memory + 0xFE00, Memory + (Value << 8), 0xA0); return; // DMA + case 0xFF46: if (ppu_mode < 2) memcpy (ram + 0xFE00, ram + (Value << 8), 0xA0); return; // DMA default: break; } @@ -149,20 +133,20 @@ void SetByteAt (uint16_t Address, uint8_t Value) { Address -= 0x2000; if (Address >= 0xFE00 && Address < 0xFEA0) { // OAM - if (CurrentPPUMode >= 2) { // Inaccessible + if (ppu_mode >= 2) { // Inaccessible printf("[WARN] Blocked OAM Write\n"); return; } } if (Address >= 0x8000 && Address < 0xA000) { // VRAM - if (CurrentPPUMode >= 3) { // Inaccessible + if (ppu_mode >= 3) { // Inaccessible printf("[WARN] Blocked VRAM Write\n"); return; } } - if (Address >= 0xFEA0 && Address < 0xFF00) // Unused Memory Area, Ignore write + if (Address >= 0xFEA0 && Address < 0xFF00) // Unused ram Area, Ignore write return; if (rom_type == ROM_ONLY) { @@ -235,7 +219,7 @@ void SetByteAt (uint16_t Address, uint8_t Value) { } } - Memory [Address] = Value; + ram [Address] = Value; } uint16_t GetWordAt (uint16_t Address) { diff --git a/gameboy/MMU.h b/gameboy/MMU.h index c067ab0..3b4ebc6 100644 --- a/gameboy/MMU.h +++ b/gameboy/MMU.h @@ -5,6 +5,9 @@ #include "pico/stdlib.h" #include <stdio.h> #include <string.h> +#include "enums.h" +#include "consts.h" +#include "PPU.h" void mmu_init(); void parse_rom(); @@ -34,7 +37,7 @@ void SetWordAt(uint16_t Address, uint16_t Value); extern char __rom_lol_start_cursed_section; extern uint8_t* rom; extern uint8_t ExternalRAM[]; -extern enum RomType rom_type; +extern ROMType rom_type; extern uint8_t rom_has_battery; extern uint8_t rom_has_external_ram; @@ -46,11 +49,8 @@ extern uint8_t SelectRAMBank; extern uint8_t RTCRegister[]; extern uint8_t ExternalRAMSize; -// VRAM Status -extern uint8_t CurrentPPUMode; - // Convenience Pointers -extern uint8_t Memory[]; -extern uint8_t* IOMap; +extern uint8_t ram[]; +extern uint8_t* io_map; #endif \ No newline at end of file diff --git a/gameboy/PPU.c b/gameboy/PPU.c index b93a68c..06a5c59 100644 --- a/gameboy/PPU.c +++ b/gameboy/PPU.c @@ -6,7 +6,7 @@ uint8_t BGPalette [4]; uint8_t SpritePalette0 [4]; uint8_t SpritePalette1 [4]; -uint8_t SpriteCount = 0; +uint8_t num_sprites_on_current_line = 0; uint16_t PixelSize; uint8_t CurrentY = 0; @@ -17,8 +17,17 @@ uint16_t PixelsReady [160 * 144]; // When rendering, use these uint8_t OAMQueue [10 * 4]; // 10 Sprites, 4 Bytes each uint8_t ppu_display_y_offset = 0; +PPUMode ppu_mode = VBLANK; -void InitPPU() { +void ppu_init() { +} + +void set_ppu_mode(PPUMode _ppu_mode) { + ppu_mode = _ppu_mode; + + // Update PPU mode register + set_bit(io_map + 0x41, 0, ppu_mode & 1); + set_bit(io_map + 0x41, 1, ppu_mode & 2); } void add_to_ppu_y_offset(uint8_t increment) { @@ -45,55 +54,55 @@ inline void SetPixel (uint32_t CoordX, uint32_t CoordY, uint32_t Color) { Pixels [PixelNo] = Color; } -void OAMSearch (uint8_t* Memory, uint8_t* IOMap) { - uint8_t SpriteSize = 8 + (GetBit (IOMap [0x40], 2) << 3); // 8x8 or 8x16 +void OAMSearch() { + uint8_t SpriteSize = 8 + (get_bit(io_map[0x40], 2) << 3); // 8x8 or 8x16 uint8_t QueueNumber = 0; for (int i = 0xFE00; i <= 0xFE9F; i += 4) { - if (CurrentY + 16 >= Memory[i] && CurrentY + 16 < Memory[i] + SpriteSize) { // Y Position + if (CurrentY + 16 >= ram[i] && CurrentY + 16 < ram[i] + SpriteSize) { // Y Position //printf("%d: Load sprite at %d\n", QueueNumber, CurrentY); - memcpy (OAMQueue + (QueueNumber << 2), Memory + i, 4); + memcpy (OAMQueue + (QueueNumber << 2), ram + i, 4); QueueNumber++; if (QueueNumber == 10) // Max 10 sprites per line break; } } - SpriteCount = QueueNumber; + num_sprites_on_current_line = QueueNumber; } -void Render () { +void render_to_screen() { ST7735_DrawImage(0, 0, 80, 160, (uint8_t*) PixelsReady); } -void Update (uint8_t* Memory, uint8_t* IOMap) { +void render_line() { uint16_t BGTable = 0x9800; uint16_t WindowTable = 0x9800; - if (GetBit (IOMap [0x40], 3)) + if (get_bit(io_map[0x40], 3)) BGTable = 0x9C00; - if (GetBit (IOMap [0x40], 6)) + if (get_bit(io_map[0x40], 6)) WindowTable = 0x9C00; - uint8_t BGAddressingMode = GetBit (IOMap [0x40], 4); // 0 - Signed (0x8000), 1 - Unsigned (0x9000) + uint8_t BGAddressingMode = get_bit(io_map[0x40], 4); // 0 - Signed (0x8000), 1 - Unsigned (0x9000) - if (GetBit (IOMap [0x40], 0)) { // BG Enabled + if (get_bit(io_map[0x40], 0)) { // BG Enabled // Set BG Palette - BGPalette [0] = GetBit (IOMap [0x47], 0) | (GetBit (IOMap [0x47], 1) << 1); - BGPalette [1] = GetBit (IOMap [0x47], 2) | (GetBit (IOMap [0x47], 3) << 1); - BGPalette [2] = GetBit (IOMap [0x47], 4) | (GetBit (IOMap [0x47], 5) << 1); - BGPalette [3] = GetBit (IOMap [0x47], 6) | (GetBit (IOMap [0x47], 7) << 1); + BGPalette [0] = get_bit(io_map[0x47], 0) | (get_bit(io_map[0x47], 1) << 1); + BGPalette [1] = get_bit(io_map[0x47], 2) | (get_bit(io_map[0x47], 3) << 1); + BGPalette [2] = get_bit(io_map[0x47], 4) | (get_bit(io_map[0x47], 5) << 1); + BGPalette [3] = get_bit(io_map[0x47], 6) | (get_bit(io_map[0x47], 7) << 1); } - if (GetBit (IOMap [0x40], 1)) { // Sprites Enabled + if (get_bit(io_map[0x40], 1)) { // Sprites Enabled // Set Sprite Palettes - SpritePalette0 [1] = GetBit (IOMap [0x48], 2) | (GetBit (IOMap [0x48], 3) << 1); - SpritePalette0 [2] = GetBit (IOMap [0x48], 4) | (GetBit (IOMap [0x48], 5) << 1); - SpritePalette0 [3] = GetBit (IOMap [0x48], 6) | (GetBit (IOMap [0x48], 7) << 1); + SpritePalette0 [1] = get_bit(io_map[0x48], 2) | (get_bit(io_map[0x48], 3) << 1); + SpritePalette0 [2] = get_bit(io_map[0x48], 4) | (get_bit(io_map[0x48], 5) << 1); + SpritePalette0 [3] = get_bit(io_map[0x48], 6) | (get_bit(io_map[0x48], 7) << 1); - SpritePalette1 [1] = GetBit (IOMap [0x49], 2) | (GetBit (IOMap [0x49], 3) << 1); - SpritePalette1 [2] = GetBit (IOMap [0x49], 4) | (GetBit (IOMap [0x49], 5) << 1); - SpritePalette1 [3] = GetBit (IOMap [0x49], 6) | (GetBit (IOMap [0x49], 7) << 1); + SpritePalette1 [1] = get_bit(io_map[0x49], 2) | (get_bit(io_map[0x49], 3) << 1); + SpritePalette1 [2] = get_bit(io_map[0x49], 4) | (get_bit(io_map[0x49], 5) << 1); + SpritePalette1 [3] = get_bit(io_map[0x49], 6) | (get_bit(io_map[0x49], 7) << 1); } if (CurrentY < Height) { @@ -101,59 +110,59 @@ void Update (uint8_t* Memory, uint8_t* IOMap) { uint32_t ColorToDraw = Colors [BGPalette [0]]; uint8_t BGColor = 0; - if (GetBit (IOMap [0x40], 0)) { // BG Display + Window Display (DMG Only) - uint8_t BGX = CurrentX + IOMap[0x43]; - uint8_t BGY = CurrentY + IOMap[0x42]; + if (get_bit(io_map[0x40], 0)) { // BG Display + Window Display (DMG Only) + uint8_t BGX = CurrentX + io_map[0x43]; + uint8_t BGY = CurrentY + io_map[0x42]; - uint8_t BGTile = Memory [BGTable + ((BGY >> 3) << 5) + (BGX >> 3)]; + uint8_t BGTile = ram [BGTable + ((BGY >> 3) << 5) + (BGX >> 3)]; uint8_t PixelX = BGX & 0x7; uint8_t PixelY = BGY & 0x7; uint8_t* BGTileData; if (BGAddressingMode) - BGTileData = Memory + (0x8000 + (BGTile << 4)); + BGTileData = ram + (0x8000 + (BGTile << 4)); else - BGTileData = Memory + (0x9000 + (int8_t) BGTile * 16); + BGTileData = ram + (0x9000 + (int8_t) BGTile * 16); // First Byte: LSB of Color for Pixel (PixelX, PixelY) // Second Byte: MSB ~~~ - uint8_t Color = (GetBit (BGTileData [PixelY * 2 + 1], 7 - PixelX) << 1) | GetBit (BGTileData [PixelY * 2], 7 - PixelX); + uint8_t Color = (get_bit(BGTileData [PixelY * 2 + 1], 7 - PixelX) << 1) | get_bit(BGTileData [PixelY * 2], 7 - PixelX); BGColor = Color; ColorToDraw = Colors [BGPalette [Color]]; } - if (GetBit (IOMap [0x40], 0) && GetBit (IOMap [0x40], 5)) { // Window Display - uint8_t CoordX = IOMap[0x4B]; - uint8_t CoordY = IOMap[0x4A]; + if (get_bit(io_map[0x40], 0) && get_bit(io_map[0x40], 5)) { // Window Display + uint8_t CoordX = io_map[0x4B]; + uint8_t CoordY = io_map[0x4A]; if (CoordX - 7 <= CurrentX && CoordY <= CurrentY) { uint8_t WindowX = CurrentX + 7 - CoordX; uint8_t WindowY = CurrentY - CoordY; - uint8_t WindowTile = Memory [WindowTable + ((WindowY >> 3) << 5) + (WindowX >> 3)]; + uint8_t WindowTile = ram [WindowTable + ((WindowY >> 3) << 5) + (WindowX >> 3)]; uint8_t PixelX = WindowX & 0x7; uint8_t PixelY = WindowY & 0x7; uint8_t* WindowTileData; if (BGAddressingMode) - WindowTileData = Memory + (0x8000 + (WindowTile << 4)); + WindowTileData = ram + (0x8000 + (WindowTile << 4)); else - WindowTileData = Memory + (0x9000 + (int8_t) WindowTile * 16); + WindowTileData = ram + (0x9000 + (int8_t) WindowTile * 16); // First Byte: LSB of Color for Pixel (PixelX, PixelY) // Second Byte: MSB ~~~ - uint8_t Color = (GetBit (WindowTileData [PixelY * 2 + 1], 7 - PixelX) << 1) | GetBit (WindowTileData [PixelY * 2], 7 - PixelX); + uint8_t Color = (get_bit(WindowTileData [PixelY * 2 + 1], 7 - PixelX) << 1) | get_bit(WindowTileData [PixelY * 2], 7 - PixelX); ColorToDraw = Colors [BGPalette [Color]]; // Shared with BG } } - if (GetBit (IOMap [0x40], 1)) { // Sprite Display + if (get_bit(io_map[0x40], 1)) { // Sprite Display uint16_t MinX = 256; // Just greater than max (SpriteX) - for (int i = 0; i < (SpriteCount << 2); i += 4) { + for (int i = 0; i < (num_sprites_on_current_line << 2); i += 4) { uint8_t CoordY = OAMQueue [i]; uint8_t CoordX = OAMQueue [i + 1]; @@ -162,35 +171,35 @@ void Update (uint8_t* Memory, uint8_t* IOMap) { uint8_t PixelY = (CurrentY + 16) - CoordY; uint8_t SpriteTile = OAMQueue [i + 2]; - if (GetBit (IOMap [0x40], 2)) // Ignore bit 0 if 8x16 - SetBit (&SpriteTile, 0, 0); + if (get_bit(io_map[0x40], 2)) // Ignore bit 0 if 8x16 + set_bit(&SpriteTile, 0, 0); - uint8_t* SpriteTileData = Memory + (0x8000 + (SpriteTile << 4)); + uint8_t* SpriteTileData = ram + (0x8000 + (SpriteTile << 4)); uint8_t Color = 0; - if (GetBit (OAMQueue [i + 3], 5)) // Flip X + if (get_bit(OAMQueue [i + 3], 5)) // Flip X PixelX = 7 - PixelX; // Y flipping is done differently for 8x16 - if (GetBit (IOMap [0x40], 2)) { // 0 - 8x8, 1 - 8x16 - if (GetBit (OAMQueue [i + 3], 6)) // Flip Y + if (get_bit(io_map[0x40], 2)) { // 0 - 8x8, 1 - 8x16 + if (get_bit(OAMQueue [i + 3], 6)) // Flip Y PixelY = 15 - PixelY; } else { - if (GetBit (OAMQueue [i + 3], 6)) // Flip Y + if (get_bit(OAMQueue [i + 3], 6)) // Flip Y PixelY = 7 - PixelY; } - Color = (GetBit (SpriteTileData [PixelY * 2 + 1], PixelX) << 1) | GetBit (SpriteTileData [PixelY * 2], PixelX); + Color = (get_bit(SpriteTileData [PixelY * 2 + 1], PixelX) << 1) | get_bit(SpriteTileData [PixelY * 2], PixelX); if (Color != 0) { // Not Transparent - if (GetBit (OAMQueue [i + 3], 4)) // Choose sprite palette + if (get_bit(OAMQueue [i + 3], 4)) // Choose sprite palette Color = SpritePalette1 [Color]; else Color = SpritePalette0 [Color]; if (CoordX < MinX) { // Only draw over the sprite if our X coord is < MinX = CoordX; - if (GetBit (OAMQueue [i + 3], 7)) { // Above only if BG Color is 0 + if (get_bit(OAMQueue [i + 3], 7)) { // Above only if BG Color is 0 if (BGColor == 0) ColorToDraw = Colors [Color]; } else @@ -206,7 +215,7 @@ void Update (uint8_t* Memory, uint8_t* IOMap) { } CurrentY = (CurrentY + 1) % 154; - IOMap [0x44] = CurrentY; // Update current line that's being scanned + io_map[0x44] = CurrentY; // Update current line that's being scanned if (CurrentY == 0) // End of Frame, Save the good pixels to be drawn at 60 Hz afterwards memcpy (PixelsReady, Pixels, sizeof (Pixels)); diff --git a/gameboy/PPU.h b/gameboy/PPU.h index a5587b1..21a3fb9 100644 --- a/gameboy/PPU.h +++ b/gameboy/PPU.h @@ -4,20 +4,23 @@ #include <string.h> #include "utils.h" #include "pico/pico4ml/screen.h" +#include "enums.h" +#include "enums.h" +#include "MMU.h" #ifndef PPU_H #define PPU_H -void InitPPU(); +void ppu_init(); void add_to_ppu_y_offset(uint8_t increment); void sub_from_ppu_y_offset(uint8_t decrement); -void OAMSearch (uint8_t* Memory, uint8_t* IOMap); -void Update (uint8_t* Memory, uint8_t* IOMap); -void Render (); +void OAMSearch(); +void render_line(); +void render_to_screen(); -extern uint8_t SpriteCount; +extern uint8_t num_sprites_on_current_line; extern uint16_t PixelSize; extern uint8_t CurrentY; @@ -27,6 +30,10 @@ extern uint16_t Pixels[]; extern uint16_t PixelsReady []; // When rendering, use these extern uint8_t OAMQueue[]; // 10 Sprites, 4 Bytes each +extern PPUMode ppu_mode; + +void set_ppu_mode(PPUMode _ppu_mode); + // Drawing Functions void SetPixel (uint32_t CoordX, uint32_t CoordY, uint32_t Color); diff --git a/gameboy/consts.c b/gameboy/consts.c index e69de29..7b6c28c 100644 --- a/gameboy/consts.c +++ b/gameboy/consts.c @@ -0,0 +1,39 @@ +#include "consts.h" + +const uint8_t VALID_ROM_BYTES[24] = {0x00, 0x01, 0x02, 0x03, 0x05, 0x06, 0x08, 0x09, 0x0B, 0x0C, 0x0D, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x20, 0x22}; + +const ROMType ROM_INDEX_TO_ROMTYPE[] = { + ROM_ONLY, + MBC1, MBC1, MBC1, + MBC2, MBC2, + ROM_ONLY, ROM_ONLY, + MMM01, MMM01, MMM01, + MBC3, MBC3, MBC3, MBC3, MBC3, + MBC5, MBC5, MBC5, MBC5, MBC5, MBC5, + MBC6, + MBC7 +}; + +const uint8_t ROM_INDEX_HAS_RAM[] = { + false, + false, true, true, + false, false, + true, true, + false, true, true, + false, true, false, true, true, + false, true, true, false, true, true, + false, + true +}; + +const uint8_t ROM_INDEX_HAS_BATTERY[] = { + false, + false, false, true, + false, true, + false, true, + false, false, true, + true, true, false, false, true, + false, false, true, false, false, true, + false, + true +}; \ No newline at end of file diff --git a/gameboy/consts.h b/gameboy/consts.h index 65870b3..6581735 100644 --- a/gameboy/consts.h +++ b/gameboy/consts.h @@ -4,41 +4,9 @@ #include "pico/stdlib.h" #include "enums.h" -const uint8_t VALID_ROM_BYTES[24] = {0x00, 0x01, 0x02, 0x03, 0x05, 0x06, 0x08, 0x09, 0x0B, 0x0C, 0x0D, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x20, 0x22}; +const extern uint8_t VALID_ROM_BYTES[24]; +const extern ROMType ROM_INDEX_TO_ROMTYPE[]; +const extern uint8_t ROM_INDEX_HAS_RAM[]; +const extern uint8_t ROM_INDEX_HAS_BATTERY[]; -const enum RomType ROM_INDEX_TO_ROMTYPE[] = { - ROM_ONLY, - MBC1, MBC1, MBC1, - MBC2, MBC2, - ROM_ONLY, ROM_ONLY, - MMM01, MMM01, MMM01, - MBC3, MBC3, MBC3, MBC3, MBC3, - MBC5, MBC5, MBC5, MBC5, MBC5, MBC5, - MBC6, - MBC7 -}; - -const uint8_t ROM_INDEX_HAS_RAM[] = { - false, - false, true, true, - false, false, - true, true, - false, true, true, - false, true, false, true, true, - false, true, true, false, true, true, - false, - true -}; - -const uint8_t ROM_INDEX_HAS_BATTERY[] = { - false, - false, false, true, - false, true, - false, true, - false, false, true, - true, true, false, false, true, - false, false, true, false, false, true, - false, - true -}; #endif diff --git a/gameboy/enums.h b/gameboy/enums.h index dad413d..2457135 100644 --- a/gameboy/enums.h +++ b/gameboy/enums.h @@ -1,7 +1,7 @@ #ifndef ENUMS_H #define ENUMS_H -enum RomType{ +typedef enum{ ROM_ONLY, MBC1, MBC2, @@ -10,6 +10,13 @@ enum RomType{ MBC5, MBC6, MBC7 -}; +} ROMType; + +typedef enum{ + HBLANK = 0, + VBLANK = 1, + OAM_SEARCH = 2, + DATA_TRANSFER = 3 +} PPUMode; #endif diff --git a/gameboy/lol.uf2 b/gameboy/lol.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..898ebe17b405a0e89f6080a3ee8d7ba06d6957fd GIT binary patch literal 187392 zcmWG_GvW#ljGf1zzyJaQ42&R(fgz8Pfg$XF_Y;P#M&61F5eYLgm=rslXC&N6kVuS3 z)bnOgoSDF+7@5eZ_(5rAfVQV(0;A&01XBfu4=z8LlqNWdTwqg_Ok?<9@<TF@5yVoE zNRvuq_@MJcG7kh<6&OC~|6o+)aQb->WR|q2WCDX?WP+5Zv<D;Dtk;T?X$wF)KM4H* zsSxuNfyyxMVbEZ>z~C<AA?(SKz<i?NGe-x9JM-3=Su6^SPQNcODlj_zxX8ShX{$t< zMB4xFpZ-haN#rr@Wnf@(U|?X7U|?WpU|^1CP*h@I_`<*-p`^gDfPs-gfa5L01BmY- zWXUGKDhO+Mk_P!3xlrPtkpUe4pd<i~e+3qW?~DurhZz|JjxsU`9K?f<Bgvg)WDq#b z$RKcbfHA{9B>2JmhkymczE7_^3SIOV1#<Kl1x%P21STw&dd{Gr=*f}5cB1h!M~8sB zyaz)DgNFV^-X+5`<{`eqh<_$X{4+5i@;~1h22G|53?GDk{CqCuDec9e!0>?a;6$fC z7bQJA++mnu-{0qqCm9dTa{7I_z#SB>2N)O>QtTNNWO5k=7#LU-Kp4yxU{PQIVFm_< z0(Wi?h7bFGFu1?}%-V2ZQ-M1J12hj_D6nTx@bG3(;B;jWSjo&FaM6W9AUuqL;m6hk zZa?;L?3w3Q;LhT~>MgLf*@^iAi#LNd!-W~{0((Jrf-uO3Y#!{MoKoEaC;3lG2yFEf zz@<)LE4z<!1%o!{#sA;0{%7@O&}O>8;=%BMVLziX$eiJdG2)*Y693Fd@vmGUu=j=o zq;`0~#wY*^aRzPX3oM?j;1K%%{mg%Xy$9StVRXlVK>?)3L1_}xEU8Iu1?~sjL_slg zQP6v?+yC#M|1&6dyYagTdI)(5NeO&d`I84Edtrt<H<V^jU{GXX;AP<UVE-`XKl_Il z{}mWC85lkY{9yU8=m!G>2gn)-R$x(pr4h|$1_6PsEFThobNetUDQ7S!Mr1H3bA0gq zt(?K6#Gp6>%yawA{2}7+4+RD$<`1|2GAIb_U0}+fAfha=m61WBgT+|71C)NmpnN7M zA7a_?Br)Qj1rq-(Nb&z+>oGTmtqhuC7etg<7#LM&xJjsYGPp@NyD4T!bXa%HaA!Q? zEH}f^!HLyjnbYTs8VoFZCb)gr%c%PExxiKy21W&@4{LujdmomV&7hpH|8so5z+MLi z1`}rQIc|wAoeYd%u>yCH7@HS!#uT??7m&Ug0!$z3e={maJ1HlC)7St1`Yg%?TN%`* z#J6p@9L73@T}33E$CqUan~F&IYzF2jtSTbm(UDA3m{df<8Euv@=tw@vWSnxTB4`uC zBxWy;58HmTZ7A5gg`H901skIPqcWo+hnH{y1amM<&Y0o+`y#uSU_yhUCxdVXx6_{s zp!7RDV;<rwjQD4T#6K%i{4+dYaA5er;J|PIgjpQke->yc+Q#f9oWY>|=K?4`3*2=W z8Ne(CB_?mFgoe)o9T2h89EW1ql^GQz9XcEY96+fARK_20`?2-?XMy&jZG3*la8pim z9FbsGUE+2mhEbW<VYPz<gMx#y6UW6QH)Utx0+2lh3GJT+I)3aGU|{*+@&jb&kFDq2 z+}(QI8bIcC6m3)V)yZJcfw*dxlg^DR9PEm$v22ozDuNC@4mwWq7uXd$-PkNSA6(%8 ziTk+mGl)1Wcd%j5cM`n7Xf)aB(<Md)2Pcqi3`%_7QVAWOAt5z9NsRbsgTy}@Qv3^a zFlg}K=GimBZKm6gy*kbU3?>Edo`XY3Sv#TQvp@$Z#FE_@wBKCdn8Ezv`~L%Optvaj z#Yt<?Ha;I^q&Pklb4-F=S<->cy4yk6iQ~d7XCrXjGAJu2w1U#jUSmaOZ)PtR59SX# z|3T(3a4-sFa4-rea4-sRcsVmnaXX+SEis!R*<})=uyccw5TjHAgA%iM1H+*JaDHuI zaQNcDpzvX<pPQ@OJ-2YT2V0vr$T9HDW@YGfW1KY4iQ!V!17p6~Ze~mj$_5OPZalO2 zKZN|Z_Re9L<CY@1gdxQxIfI>{*~#Rxw*2i)!!za~zQTxqc1ZlQBgOv=H%4vKn+KE| zlx8z3JA*>o$a^hAWaKP222KBqjI)$8f*6Ax9w<pUG$=<iDmzOhIJq%unci$b(qX`0 z#lWB(>6V_r|3UtLuv<hRqXP2=8*rLh<hI)F!(LEG&u~jfVAMW&!`qEf``E<;%FJLJ zr4pE|7H3E~{kZ_KE6U-4GQuu?ueA)5+`QZrGXfo$mAD+F5*U@d-DWvJbnJN^k;(tz z+&@MGMvK1}S3K8MWbtP4V)bDDQ1_1knocS>7zHXg83lSc7zK_ff7r^XD(%<2;Y)<7 z6Z1s|9hr-ekQ$yOM*MR?;vdw?g7yEHH+<MD?$4lPoynlcFxfhjRpI~l!2h4~*Eq{M z30!DU7W9f{5>62G5>EJ>FYCmAad#Gj_M;0k+#fvW^<e(+;UAkKj~9<OuZMuqe?#UE zPXF2zIlQ>MIXwi7JQ<ijSRvwJ0fR%u1_p-&PDp%Q;ef=61Sg|_!B!rH<_%0A{Qoe2 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 literal 0 HcmV?d00001 diff --git a/gameboy/lol2.uf2 b/gameboy/lol2.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..a5b942025f4613d7a2dab5b66a57ff1424e69eae GIT binary patch literal 187392 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%0A^ik>C6U#$B@9et3RsjSC#yac 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∓*;VRD~P=4clB)y4k@@;YU$%)Sy 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 CcKc!g literal 0 HcmV?d00001 diff --git a/gameboy/main.c b/gameboy/main.c index 814bce2..cad27c5 100644 --- a/gameboy/main.c +++ b/gameboy/main.c @@ -1,3 +1,4 @@ +#include "enums.h" #include "pico/stdlib.h" #include "pico/stdio.h" #include <stdbool.h> @@ -9,17 +10,11 @@ #include "CPU.h" #include "utils.h" -void cpu_loop(); +void emu_loop(); +void get_button_from_fifo_nonblocking(); +void core1_entry(); -void core1_entry() { - char c; - - while(1) { - c = getchar(); - multicore_fifo_push_blocking(c); - //printf("sent to the other core: %d\n", c); - } -} +uint8_t sticky_button_input = 0; int main() { stdio_init_all(); @@ -34,169 +29,104 @@ int main() { printf("Gameboy emulator booting up!\n"); mmu_init(); - InitCPU(); - InitPPU(); + cpu_init(); + ppu_init(); - /* - for (int i = 0; i < 100; i++) { - printf("INCOMING! %08x\n", rom); - sleep_ms(100); - } - - while(1) { - for (int i = 0; i < 20; i++) { - for (int k = 0; k < 16; k++) - printf("%x ", rom[i * 16 + k]); - printf("\n"); - } - - sleep_ms(1000); - }*/ - - cpu_loop(); + emu_loop(); printf("\n\n[INFO] CPU Stopped.\n"); } -uint8_t sticky_buttons = 0; - -void get_button_from_fifo_nonblocking() { - if (multicore_fifo_rvalid()) { - char c = multicore_fifo_pop_blocking(); - //printf("got from the other core: %d\n", c); - - if (c == ',') { - sub_from_ppu_y_offset(2); - } - - if (c == '.') { - add_to_ppu_y_offset(2); - } - - if (c == 'w') sticky_buttons |= 1 << 0; - if (c == 'a') sticky_buttons |= 1 << 1; - if (c == 's') sticky_buttons |= 1 << 2; - if (c == 'd') sticky_buttons |= 1 << 3; - - if (c == 'o') sticky_buttons |= 1 << 4; - if (c == 'p') sticky_buttons |= 1 << 5; - if (c == ' ') sticky_buttons |= 1 << 6; - if (c == 13) sticky_buttons |= 1 << 7; - } -} +void emu_loop() { + uint32_t clock_of_last_line = 0; -void cpu_loop() { - // Input status - uint8_t PressDebug = 0; - uint8_t PressControlR = 0; - uint8_t Quit = 0; - - // Timing - uint32_t LastRenderClock = 0; - uint32_t LastLineDrawClock = 0; uint32_t PixelTransferDuration = 0; - uint32_t ClocksPerSec = 4194304; - uint32_t ClocksPerMS = ClocksPerSec / 1000; - uint32_t LastMSClock = 0; + uint32_t LastRenderClock = 0; uint32_t LastTimerClock = 0; uint32_t LastDivClock = 0; - uint32_t LastDebugClock = 0; - uint32_t LastDebugInstructionCount = 0; - - // Main Loop - while (!Quit) { - // Input - SDL - - // IOMap 0x40 - LCDC - // IOMap 0x41 - LCD STAT + + while (1) { + // io_map 0x40 - LCDC + // io_map 0x41 - LCD STAT // Rendering - if (GetBit (IOMap [0x40], 7)) { // LCD Operation - uint32_t CurrentLineClock = ClockCount - LastLineDrawClock; - - if (IOMap [0x44] < 144) { // Current line being drawn - if (CurrentLineClock <= 80) { // OAM Period - if (CurrentPPUMode == 0 || CurrentPPUMode == 1) { // Came from HBlank or VBlank - CurrentPPUMode = 2; - OAMSearch (Memory, IOMap); - PixelTransferDuration = 168 + (SpriteCount * (291 - 168)) / 10; // 10 Sprites should cause maximum duration = 291 Clocks + if (get_bit(io_map[0x40], 7)) { // LCD Display is enabled + uint32_t clock_of_current_line = cpu_clock_count - clock_of_last_line; + + // Apparently the dot clock runs 4x slower than the gameboy cpu? + // So 80 dots = 20 cpu cycles - SetBit (IOMap + 0x41, 0, 0); // Set them now so that the CPU can service the INT correctly - SetBit (IOMap + 0x41, 1, 1); - - if (GetBit (IOMap [0x41], 5)) + if (io_map[0x44] < 144) { // The line being drawn is on the display + if (clock_of_current_line <= 80) { // OAM Period + if (ppu_mode == HBLANK || ppu_mode == VBLANK) { + OAMSearch(); + set_ppu_mode(OAM_SEARCH); + PixelTransferDuration = 168 + (num_sprites_on_current_line * (291 - 168)) / 10; // 10 Sprites should cause maximum duration = 291 Clocks + + if (get_bit(io_map[0x41], 5)) Interrupt (1); } - } else if (CurrentLineClock <= 80 + PixelTransferDuration) { // Pixel Transfer - if (CurrentPPUMode == 2) { - CurrentPPUMode = 3; - - SetBit (IOMap + 0x41, 0, 1); - SetBit (IOMap + 0x41, 1, 1); + } else if (clock_of_current_line <= 80 + PixelTransferDuration) { // Pixel Transfer + if (ppu_mode == OAM_SEARCH) { + set_ppu_mode(DATA_TRANSFER); } } else { // HBlank - if (CurrentPPUMode == 3) { - CurrentPPUMode = 0; - - SetBit (IOMap + 0x41, 0, 0); - SetBit (IOMap + 0x41, 1, 0); - - if (GetBit (IOMap [0x41], 3)) + if (ppu_mode == DATA_TRANSFER) { + set_ppu_mode(HBLANK); + + if (get_bit(io_map[0x41], 3)) Interrupt (1); } } } else { - if (CurrentPPUMode == 0) { // VBlank - CurrentPPUMode = 1; - - SetBit (IOMap + 0x41, 0, 1); - SetBit (IOMap + 0x41, 1, 0); - - Interrupt (0); + if (ppu_mode == HBLANK) { // VBlank + set_ppu_mode(VBLANK); + + Interrupt(0); - if (ClockCount - LastRenderClock >= 103800) { // 83800 - LastRenderClock = ClockCount; - Render (); // Actual rendering on the screen + if (cpu_clock_count - LastRenderClock >= 103800) { // 83800 + LastRenderClock = cpu_clock_count; + render_to_screen(); // Actual rendering on the screen } - if (GetBit (IOMap [0x41], 4)) + if (get_bit(io_map[0x41], 4)) Interrupt (1); } } - if (CurrentLineClock >= (114 << 2)) { // Passed On a New Line - LastLineDrawClock = ClockCount; - Update (Memory, IOMap); + if (clock_of_current_line >= 456) { // Passed On a New Line + clock_of_last_line = cpu_clock_count; + render_line(); - if (IOMap [0x44] == IOMap [0x45]) { // Coincidence LY, LYC - SetBit (IOMap + 0x41, 2, 1); - if (GetBit (IOMap [0x41], 6)) + if (io_map[0x44] == io_map[0x45]) { // Coincidence LY, LYC + set_bit(io_map + 0x41, 2, 1); + if (get_bit(io_map[0x41], 6)) Interrupt (1); } else - SetBit (IOMap + 0x41, 2, 0); + set_bit(io_map + 0x41, 2, 0); } } // Timer // TODO Timer Obscure Behaviour - if (GetBit (IOMap [0x07], 2)) { // TIMCONT + if (get_bit(io_map[0x07], 2)) { // TIMCONT uint32_t TimerDelay = 0; - if (GetBit (IOMap [0x07], 0)) { - if (GetBit (IOMap [0x07], 1)) + if (get_bit(io_map[0x07], 0)) { + if (get_bit(io_map[0x07], 1)) TimerDelay = 256; else TimerDelay = 16; - } else if (GetBit (IOMap [0x07], 1)) + } else if (get_bit(io_map[0x07], 1)) TimerDelay = 64; else TimerDelay = 1024; - if (ClockCount - LastTimerClock >= TimerDelay) { - LastTimerClock = ClockCount; - IOMap [0x05]++; // TIMECNT + if (cpu_clock_count - LastTimerClock >= TimerDelay) { + LastTimerClock = cpu_clock_count; + io_map[0x05]++; // TIMECNT - if (IOMap [0x05] == 0) { - IOMap [0x05] = IOMap [0x06]; // TIMEMOD + if (io_map[0x05] == 0) { + io_map[0x05] = io_map[0x06]; // TIMEMOD Interrupt (2); } } @@ -204,68 +134,103 @@ void cpu_loop() { get_button_from_fifo_nonblocking(); - if (GetBit (IOMap [0x00], 4) == 0) { // Direction Pad - IOMap [0x00] |= 0xF; // 1 - Not Pressed + if (get_bit(io_map[0x00], 4) == 0) { // Direction Pad + io_map[0x00] |= 0xF; // 1 - Not Pressed - if (GetBit(sticky_buttons, 3)) { - SetBit (IOMap + 0x00, 0, 0); + if (get_bit(sticky_button_input, 3)) { + set_bit(io_map + 0x00, 0, 0); } - if (GetBit(sticky_buttons, 1)) { - SetBit (IOMap + 0x00, 1, 0); + if (get_bit(sticky_button_input, 1)) { + set_bit(io_map + 0x00, 1, 0); } - if (GetBit(sticky_buttons, 0)) { - SetBit (IOMap + 0x00, 2, 0); + if (get_bit(sticky_button_input, 0)) { + set_bit(io_map + 0x00, 2, 0); } - if (GetBit(sticky_buttons, 2)) { - SetBit (IOMap + 0x00, 3, 0); + if (get_bit(sticky_button_input, 2)) { + set_bit(io_map + 0x00, 3, 0); } - if ((IOMap [0x00] & 0xF) != 0xF) { // Something was pressed - sticky_buttons &= 0xF0; - //printf("Firing interrupt: %x\n", IOMap[0]); + if ((io_map[0x00] & 0xF) != 0xF) { // Something was pressed + sticky_button_input &= 0xF0; + //printf("Firing interrupt: %x\n", io_map[0]); Interrupt (4); - SetBit (IOMap + 0, 4, 1); + set_bit(io_map + 0, 4, 1); } } - if (GetBit (IOMap [0x00], 5) == 0) { // Buttons - IOMap [0x00] |= 0xF; // 1 - Not Pressed + if (get_bit(io_map[0x00], 5) == 0) { // Buttons + io_map[0x00] |= 0xF; // 1 - Not Pressed - if (GetBit(sticky_buttons, 5)) // A - SetBit (IOMap + 0x00, 0, 0); + if (get_bit(sticky_button_input, 5)) // A + set_bit(io_map + 0x00, 0, 0); - if (GetBit(sticky_buttons, 4)) // B - SetBit (IOMap + 0x00, 1, 0); + if (get_bit(sticky_button_input, 4)) // B + set_bit(io_map + 0x00, 1, 0); - if (GetBit(sticky_buttons, 6)) // SELECT - SetBit (IOMap + 0x00, 2, 0); + if (get_bit(sticky_button_input, 6)) // SELECT + set_bit(io_map + 0x00, 2, 0); - if (GetBit(sticky_buttons, 7)) // START - SetBit (IOMap + 0x00, 3, 0); + if (get_bit(sticky_button_input, 7)) // START + set_bit(io_map + 0x00, 3, 0); - if ((IOMap [0x00] & 0xF) != 0xF) {// Something was pressed - sticky_buttons &= 0x0F; - //printf("Firing interrupt: %x\n", IOMap[0]); + if ((io_map[0x00] & 0xF) != 0xF) {// Something was pressed + sticky_button_input &= 0x0F; + //printf("Firing interrupt: %x\n", io_map[0]); Interrupt (4); - SetBit (IOMap + 0, 5, 1); + set_bit(io_map + 0, 5, 1); } } // DIV Register - if (ClockCount - LastDivClock >= 256) { // DIV increases every 256 clocks - LastDivClock = ClockCount; - IOMap [0x04]++; + if (cpu_clock_count - LastDivClock >= 256) { // DIV increases every 256 clocks + LastDivClock = cpu_clock_count; + io_map[0x04]++; } if (!Debugging) { - uint8_t OldDMA = IOMap [0x46]; + uint8_t OldDMA = io_map[0x46]; Clock (); - if (IOMap [0x46] != OldDMA) // DMA Write - ClockCount += (160 << 2) + 4; + if (io_map[0x46] != OldDMA) // DMA Write + cpu_clock_count += (160 << 2) + 4; } } -} \ No newline at end of file +} + +void core1_entry() { + char c; + + while(1) { + c = getchar(); + multicore_fifo_push_blocking(c); + //printf("sent to the other core: %d\n", c); + } +} + +void get_button_from_fifo_nonblocking() { + if (multicore_fifo_rvalid()) { + char c = multicore_fifo_pop_blocking(); + //printf("got from the other core: %d\n", c); + + if (c == ',') { + sub_from_ppu_y_offset(2); + } + + if (c == '.') { + add_to_ppu_y_offset(2); + } + + if (c == 'w') sticky_button_input |= 1 << 0; + if (c == 'a') sticky_button_input |= 1 << 1; + if (c == 's') sticky_button_input |= 1 << 2; + if (c == 'd') sticky_button_input |= 1 << 3; + + if (c == 'o') sticky_button_input |= 1 << 4; + if (c == 'p') sticky_button_input |= 1 << 5; + if (c == ' ') sticky_button_input |= 1 << 6; + if (c == 13) sticky_button_input |= 1 << 7; + } +} diff --git a/gameboy/pico/pico4ml/screen.c b/gameboy/pico/pico4ml/screen.c index 7603b8d..17c51ba 100644 --- a/gameboy/pico/pico4ml/screen.c +++ b/gameboy/pico/pico4ml/screen.c @@ -92,7 +92,7 @@ static void ST7735_Select() { gpio_put(EPD_CS_PIN, 0); } -void ST7735_Unselect() { +static void ST7735_Unselect() { //HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_SET); gpio_put(EPD_CS_PIN, 1); } @@ -159,7 +159,7 @@ static void ST7735_SetAddressWindow(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t ST7735_WriteCommand(ST7735_RAMWR); } -void ST7735_Init() { +void __attribute__((optimize("O1"))) ST7735_Init() { spi_init(spi1, 12000 * 1000); gpio_set_function(EPD_CLK_PIN, GPIO_FUNC_SPI); gpio_set_function(EPD_MOSI_PIN, GPIO_FUNC_SPI); diff --git a/gameboy/pico/pico4ml/screen.h b/gameboy/pico/pico4ml/screen.h index 6287817..24fed2e 100644 --- a/gameboy/pico/pico4ml/screen.h +++ b/gameboy/pico/pico4ml/screen.h @@ -116,8 +116,6 @@ extern int EPD_MOSI_PIN; #ifdef __cplusplus extern "C" { #endif -// call before initializing any SPI devices -void ST7735_Unselect(); void ST7735_Init(void); void ST7735_DrawPixel(uint16_t x, uint16_t y, uint16_t color); diff --git a/gameboy/utils.c b/gameboy/utils.c index c57dc5d..bf1b834 100644 --- a/gameboy/utils.c +++ b/gameboy/utils.c @@ -1,10 +1,10 @@ #include "utils.h" -inline uint8_t GetBit (uint8_t Value, uint8_t BitNo) { +inline uint8_t get_bit(uint8_t Value, uint8_t BitNo) { return (Value & (1 << BitNo)) != 0; } -inline void SetBit (uint8_t* Value, uint8_t BitNo, uint8_t Set) { +inline void set_bit(uint8_t* Value, uint8_t BitNo, uint8_t Set) { if (Set) *Value |= 1 << BitNo; else diff --git a/gameboy/utils.h b/gameboy/utils.h index e6469a9..3d5c61b 100644 --- a/gameboy/utils.h +++ b/gameboy/utils.h @@ -5,10 +5,10 @@ #ifndef UTILS_H #define UTILS_H -//#define GetBit(Value, BitNo) (((Value >> BitNo) & 1) != 0) +//#define get_bit(Value, BitNo) (((Value >> BitNo) & 1) != 0) -uint8_t GetBit (uint8_t Value, uint8_t BitNo); -void SetBit (uint8_t *Value, uint8_t BitNo, uint8_t Set); +uint8_t get_bit(uint8_t Value, uint8_t BitNo); +void set_bit(uint8_t *Value, uint8_t BitNo, uint8_t Set); /* using namespace std::chrono; -- GitLab