N163: default to having PRG RAM if no NES2.0 header

This commit is contained in:
paulb-nl
2025-01-13 17:12:53 +01:00
parent 3ed9b46d3e
commit d29d7cebdf
2 changed files with 5 additions and 2 deletions

3
NES.sv
View File

@@ -1469,7 +1469,8 @@ wire [3:0] prg_nvram = (is_nes20 ? ines[10][7:4] : 4'h0);
wire piano = is_nes20 && (ines[15][5:0] == 6'h19);
wire has_saves = ines[6][1];
assign mapper_flags[63:35] = 'd0;
assign mapper_flags[63:36] = 'd0;
assign mapper_flags[35] = is_nes20;
assign mapper_flags[34:31] = prg_nvram; //NES 2.0 Save RAM shift size (64 << size)
assign mapper_flags[30] = piano;
assign mapper_flags[29:26] = prgram; //NES 2.0 PRG RAM shift size (64 << size)

View File

@@ -71,7 +71,9 @@ wire [18:10] chr_aoutm;
wire [3:0] prg_ram_size = flags[29:26];
wire [3:0] prg_nvram_size = flags[34:31];
wire has_prg_ram = |{prg_ram_size, prg_nvram_size};
wire is_nes20 = flags[35];
// Default to having PRG RAM if no NES2.0 header
wire has_prg_ram = |{~is_nes20, prg_ram_size, prg_nvram_size};
// 2KB PRG RAM for mapper 210
wire ram_2k = (prg_ram_size == 4'h5 || prg_nvram_size == 4'h5);