/// <summary> /// Initializes a new instance of the <see cref="CartridgeHeader"/> class. /// </summary> /// <param name="entryPoint">The entry point.</param> /// <param name="title">The title.</param> /// <param name="isGameBoyColour">if set to <c>true</c> [supports game boy colour].</param> /// <param name="licenseCode">The license code.</param> /// <param name="isSuperGameBoy">if set to <c>true</c> [supports super game boy].</param> /// <param name="cartridgeType">Type of the cartridge.</param> /// <param name="romSize">Size of the rom.</param> /// <param name="ramSize">Size of the ram.</param> /// <param name="destinationCode">The destination code.</param> /// <param name="romVersion">The rom version.</param> /// <param name="headerChecksum">The header checksum.</param> /// <param name="romChecksum">The rom checksum.</param> public CartridgeHeader(byte[] entryPoint, string title, bool isGameBoyColour, string licenseCode, bool isSuperGameBoy, CartridgeType cartridgeType, CartridgeRomSize romSize, CartridgeRamSize ramSize, DestinationCode destinationCode, byte romVersion, byte headerChecksum, ushort romChecksum) { EntryPoint = entryPoint; Title = title; IsGameBoyColour = isGameBoyColour; LicenseCode = licenseCode; IsSuperGameBoy = isSuperGameBoy; CartridgeType = cartridgeType; RomSize = romSize; RamSize = ramSize; DestinationCode = destinationCode; RomVersion = romVersion; HeaderChecksum = headerChecksum; RomChecksum = romChecksum; }
/// <summary> /// Gets the RAM bank size value of the specified cartridge RAM size. /// </summary> /// <param name="cartridgeRamSize">Size of the cartridge ram.</param> /// <returns></returns> /// <exception cref="System.NotSupportedException">RamSize: + cartridgeRamSize</exception> public static ushort BankSize(this CartridgeRamSize cartridgeRamSize) { switch (cartridgeRamSize) { case CartridgeRamSize.None: return(0); case CartridgeRamSize.Fixed2: return(0x800); case CartridgeRamSize.Fixed8: case CartridgeRamSize.Banked32: case CartridgeRamSize.Banked128: return(0x2000); default: throw new NotSupportedException("RamSize: " + cartridgeRamSize); } }
/// <summary> /// Gets the number of RAM banks required by the specified cartridge RAM size. /// </summary> /// <param name="cartridgeRamSize">Size of the cartridge ram.</param> /// <returns></returns> /// <exception cref="System.NotSupportedException">RamSize: + cartridgeRamSize</exception> public static int NumberOfBanks(this CartridgeRamSize cartridgeRamSize) { switch (cartridgeRamSize) { case CartridgeRamSize.None: return(0); case CartridgeRamSize.Fixed2: return(1); case CartridgeRamSize.Fixed8: return(1); case CartridgeRamSize.Banked32: return(4); case CartridgeRamSize.Banked128: return(16); default: throw new NotSupportedException("RamSize: " + cartridgeRamSize); } }