From d9183ede936735a346500dfe1cb7a14179489c15 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 24 Nov 2017 10:28:38 -0500 Subject: [PATCH] GBHawk: Bug Fixes --- BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs | 6 ++++++ .../Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs | 4 ++++ BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/PPU.cs | 1 - 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs index 61e366435c..dff2b9a64e 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs @@ -132,6 +132,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk in_vblank = true; // we start off in vblank since the LCD is off in_vblank_old = true; + // Start off with RAM all 0xFF (the game 'X' (proto) expects this) + for (int i = 0; i < RAM.Length; i++) + { + RAM[i] = 0xFF; + } + Register_Reset(); timer.Reset(); ppu.Reset(); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs index c61133bdcd..2bcabc644d 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/Mappers/Mapper_MBC1.cs @@ -21,6 +21,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk RAM_enable = false; sel_mode = false; ROM_mask = Core._rom.Length / 0x4000 - 1; + + // some games have sizes that result in a degenerate ROM, account for it here + if (ROM_mask > 4) { ROM_mask |= 3; } + RAM_mask = 0; if (Core.cart_RAM != null) { diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/PPU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/PPU.cs index 9b17a7d619..5b94e3b3b5 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/PPU.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/PPU.cs @@ -144,7 +144,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk case 0xFF45: // LYC LYC = value; if (LY != LYC) { STAT &= 0xFB; } - Console.WriteLine(value); break; case 0xFF46: // DMA DMA_addr = value;