namespace MyNes.Core
{
    [BoardInfo("Camerica", 71)]
    internal class Mapper071 : Board
    {
    	private bool fireHawk;

    	internal override void HardReset()
    	{
    		base.HardReset();
    		Switch16KPRG(PRG_ROM_16KB_Mask, PRGArea.AreaC000);
    		fireHawk = SHA1.ToUpper() == "334781C830F135CF30A33E392D8AAA4AFDC223F9";
    	}

    	internal override void WritePRG(ref ushort addr, ref byte val)
    	{
    		if (addr < 40960)
    		{
    			if (fireHawk)
    			{
    				Switch01KNMTFromMirroring(((val & 0x10) == 16) ? Mirroring.OneScB : Mirroring.OneScA);
    			}
    		}
    		else if (addr >= 49152)
    		{
    			Switch16KPRG(val, PRGArea.Area8000);
    		}
    	}
    }
}