tmp: implement mechanisms for a emu reset fn (currently crashes)

This commit is contained in:
2023-02-23 22:12:06 -06:00
parent 3fff4fd742
commit d985eac0fc
15 changed files with 131 additions and 30 deletions

View File

@@ -102,6 +102,32 @@ pub fn deinit(self: *Self) void {
self.* = undefined;
}
pub fn reset(self: *Self) void {
self.bios.reset();
// TODO: deinit ppu
self.apu.reset();
self.iwram.reset();
self.ewram.reset();
// https://github.com/ziglang/zig/issues/14705
{
comptime var i: usize = 0;
inline while (i < self.dma.len) : (i += 1) {
self.dma[0].reset();
}
}
// https://github.com/ziglang/zig/issues/14705
{
comptime var i: usize = 0;
inline while (i < self.tim.len) : (i += 1) {
self.tim[0].reset();
}
}
self.io.reset();
}
fn fillReadTable(self: *Self, table: *[table_len]?*const anyopaque) void {
const vramMirror = @import("ppu/Vram.zig").mirror;