test(nes): consolidate and simplify inline subsystem unit tests
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
const std = @import("std");
|
||||
const common = @import("../common.zig");
|
||||
const Mirroring = common.Mirroring;
|
||||
|
||||
pub const Nrom = @import("nrom.zig");
|
||||
pub const Mmc1 = @import("mmc1.zig");
|
||||
pub const Uxrom = @import("uxrom.zig");
|
||||
pub const Cnrom = @import("cnrom.zig");
|
||||
pub const Mmc3 = @import("mmc3.zig");
|
||||
pub const Axrom = @import("axrom.zig");
|
||||
pub const ColorDreams = @import("color_dreams.zig");
|
||||
pub const Unrom512 = @import("unrom512.zig");
|
||||
pub const Bnrom = @import("bnrom.zig");
|
||||
pub const Gxrom = @import("gxrom.zig");
|
||||
pub const Camerica = @import("camerica.zig");
|
||||
pub const Mmc2 = @import("mmc2.zig");
|
||||
pub const Mmc4 = @import("mmc4.zig");
|
||||
pub const Action53 = @import("action53.zig");
|
||||
pub const Mapper180 = @import("mapper180.zig");
|
||||
|
||||
pub const Mapper = union(enum) {
|
||||
nrom: Nrom,
|
||||
mmc1: Mmc1,
|
||||
uxrom: Uxrom,
|
||||
cnrom: Cnrom,
|
||||
mmc3: Mmc3,
|
||||
axrom: Axrom,
|
||||
color_dreams: ColorDreams,
|
||||
unrom512: Unrom512,
|
||||
bnrom: Bnrom,
|
||||
gxrom: Gxrom,
|
||||
camerica: Camerica,
|
||||
mmc2: Mmc2,
|
||||
mmc4: Mmc4,
|
||||
action53: Action53,
|
||||
mapper180: Mapper180,
|
||||
|
||||
pub fn cpuRead(self: *const Mapper, address: u16, prg_rom: []const u8, prg_ram: []const u8) ?u8 {
|
||||
return switch (self.*) {
|
||||
inline else => |*m| m.cpuRead(address, prg_rom, prg_ram),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn cpuWrite(self: *Mapper, address: u16, value: u8, prg_ram: []u8) bool {
|
||||
return switch (self.*) {
|
||||
inline else => |*m| m.cpuWrite(address, value, prg_ram),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn ppuRead(self: *const Mapper, address: u16, chr_rom: []const u8, chr_ram: []const u8, chr_is_ram: bool) ?u8 {
|
||||
return switch (self.*) {
|
||||
inline else => |*m| m.ppuRead(address, chr_rom, chr_ram, chr_is_ram),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn ppuWrite(self: *Mapper, address: u16, value: u8, chr_ram: []u8, chr_is_ram: bool) bool {
|
||||
return switch (self.*) {
|
||||
inline else => |*m| m.ppuWrite(address, value, chr_ram, chr_is_ram),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn mirroring(self: *const Mapper) Mirroring {
|
||||
return switch (self.*) {
|
||||
inline else => |*m| m.mirroring(),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn irqLine(self: *const Mapper) bool {
|
||||
return switch (self.*) {
|
||||
inline else => |*m| m.irqLine(),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn notifyPpuAddress(self: *Mapper, address: u16) void {
|
||||
switch (self.*) {
|
||||
inline else => |*m| m.notifyPpuAddress(address),
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
test {
|
||||
_ = Nrom;
|
||||
_ = Mmc1;
|
||||
_ = Uxrom;
|
||||
_ = Cnrom;
|
||||
_ = Mmc3;
|
||||
_ = Axrom;
|
||||
_ = ColorDreams;
|
||||
_ = Unrom512;
|
||||
_ = Bnrom;
|
||||
_ = Gxrom;
|
||||
_ = Camerica;
|
||||
_ = Mmc2;
|
||||
_ = Mmc4;
|
||||
_ = Action53;
|
||||
_ = Mapper180;
|
||||
}
|
||||
Reference in New Issue
Block a user