From 7998626338a72cfbbb3800a44ff643ac70d48142 Mon Sep 17 00:00:00 2001 From: Craig Date: Tue, 16 Jul 2024 19:42:20 -0700 Subject: [PATCH] wip --- .gitignore | 3 ++- src/cpu.zig | 3 ++- src/gameboy.zig | 5 +---- src/gpu.zig | 14 +++++++------- src/main.zig | 4 ++-- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 94a0938..fb8aaf8 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ EpicLog* notes* Blarg* games - +DUMP* +emutrace* diff --git a/src/cpu.zig b/src/cpu.zig index e1872b2..a37c203 100644 --- a/src/cpu.zig +++ b/src/cpu.zig @@ -2015,6 +2015,7 @@ pub const CPU = struct { return false; } pub fn step(self: *CPU) u64 { + log.debug("step: {}\n", .{self.pc}); self.pending_t_cycles = 0; var frame_cycles: u64 = 0; var current_cycles = self.clock.t_cycles; @@ -2030,7 +2031,6 @@ pub const CPU = struct { self.pending_t_cycles = 0; current_cycles = self.clock.t_cycles; - // gameboy_doctor_print(self); beeg_print(self); if (self.halt_state == HaltState.SwitchedOn or self.halt_state == HaltState.Enabled) { self.halt_state = HaltState.Enabled; @@ -2688,6 +2688,7 @@ fn beeg_print(self: *CPU) void { // return; // } log.debug("A: {X:0>2} F: {X:0>2} B: {X:0>2} C: {X:0>2} D: {X:0>2} E: {X:0>2} H: {X:0>2} L: {X:0>2} SP: {X:0>4} PC: 00:{X:0>4} ({X:0>2} {X:0>2} {X:0>2} {X:0>2})\n", .{ + // std.debug.print("A: {X:0>2} F: {X:0>2} B: {X:0>2} C: {X:0>2} D: {X:0>2} E: {X:0>2} H: {X:0>2} L: {X:0>2} SP: {X:0>4} PC: 00:{X:0>4} ({X:0>2} {X:0>2} {X:0>2} {X:0>2})\n", .{ self.registers.A, @as(u8, @bitCast(self.registers.F)), self.registers.B, diff --git a/src/gameboy.zig b/src/gameboy.zig index 448fa6c..de9363a 100644 --- a/src/gameboy.zig +++ b/src/gameboy.zig @@ -71,10 +71,6 @@ pub const Gameboy = struct { pub fn frame(self: *Gameboy) void { const cycles_per_frame = CPU_SPEED_HZ / 60; - // const hz_60_nanos: u64 = std.time.ns_per_s / 60; - // _ = hz_60_nanos; // autofix - // var timer = try std.time.Timer.start(); - // _ = timer; // autofix var frame_cycles: u64 = 0; // std.debug.print("joyp state: 0b{b:0>8}\n", .{@as(u8, @bitCast(self.bus.joypad.joyp))}); @@ -99,6 +95,7 @@ pub const Gameboy = struct { // std.debug.print("gb.timer {} gb.bus.timer {}\n", .{ self.timer.tac, self.memory_bus.timer.tac }); self.memory_bus.update_if_flags(interrupt_flags); + std.time.sleep(500); } // need to track unspent cycles in CPU diff --git a/src/gpu.zig b/src/gpu.zig index 6f84c73..e0b2239 100644 --- a/src/gpu.zig +++ b/src/gpu.zig @@ -313,13 +313,13 @@ pub const GPU = struct { self.stat.ppu_mode = 0b00; self.render_scanline(); - // log.debug("scx {} scy {} ly {} wx {} wy {}\n", .{ - // self.background_viewport.scx, - // self.background_viewport.scy, - // self.ly, - // self.window_position.wx, - // self.window_position.wy, - // }); + log.debug("scx {} scy {} ly {} wx {} wy {}\n", .{ + self.background_viewport.scx, + self.background_viewport.scy, + self.ly, + self.window_position.wx, + self.window_position.wy, + }); // log.debug("BGP 0b{b:0>8} OBP0 0b{b:0>8} OBP1 0b{b:0>8}\n", .{ // @as(u8, @bitCast(self.bgp)), diff --git a/src/main.zig b/src/main.zig index 64fc003..902b9da 100644 --- a/src/main.zig +++ b/src/main.zig @@ -11,8 +11,8 @@ pub const std_options: std.Options = .{ .log_level = std.log.Level.info, .log_scope_levels = &[_]std.log.ScopeLevel{ .{ .scope = .gb, .level = .info }, - .{ .scope = .cpu, .level = .info }, - .{ .scope = .gpu, .level = .debug }, + .{ .scope = .cpu, .level = .debug }, + .{ .scope = .gpu, .level = .info }, .{ .scope = .mbc, .level = .info }, .{ .scope = .timer, .level = .info }, .{ .scope = .joy, .level = .info },