using System; namespace MyNes.Core { internal class BoardInfoAttribute : Attribute { public string Name { get; private set; } public int Mapper { get; private set; } public int DefaultPRG_RAM_8KB_BanksCount { get; private set; } public int DefaultCHR_RAM_1KB_BanksCount { get; private set; } public bool Enabled_ppuA12ToggleTimer { get; private set; } public bool PPUA12TogglesOnRaisingEdge { get; private set; } public BoardInfoAttribute(string boardName, int inesMapperNumber) { Name = boardName; Mapper = inesMapperNumber; DefaultPRG_RAM_8KB_BanksCount = 1; DefaultCHR_RAM_1KB_BanksCount = 8; Enabled_ppuA12ToggleTimer = (PPUA12TogglesOnRaisingEdge = false); } public BoardInfoAttribute(string boardName, int inesMapperNumber, int defaultPRG_RAM_8KB_BanksCount, int defaultCHR_RAM_1KB_BanksCount) { Name = boardName; Mapper = inesMapperNumber; DefaultPRG_RAM_8KB_BanksCount = defaultPRG_RAM_8KB_BanksCount; DefaultCHR_RAM_1KB_BanksCount = defaultCHR_RAM_1KB_BanksCount; Enabled_ppuA12ToggleTimer = (PPUA12TogglesOnRaisingEdge = false); } public BoardInfoAttribute(string boardName, int inesMapperNumber, bool Enabled_ppuA12ToggleTimer, bool PPUA12TogglesOnRaisingEdge) { Name = boardName; Mapper = inesMapperNumber; DefaultPRG_RAM_8KB_BanksCount = 1; DefaultCHR_RAM_1KB_BanksCount = 8; this.Enabled_ppuA12ToggleTimer = Enabled_ppuA12ToggleTimer; this.PPUA12TogglesOnRaisingEdge = PPUA12TogglesOnRaisingEdge; } public BoardInfoAttribute(string boardName, int inesMapperNumber, int defaultPRG_RAM_8KB_BanksCount, int defaultCHR_RAM_1KB_BanksCount, bool Enabled_ppuA12ToggleTimer, bool PPUA12TogglesOnRaisingEdge) { Name = boardName; Mapper = inesMapperNumber; DefaultPRG_RAM_8KB_BanksCount = defaultPRG_RAM_8KB_BanksCount; DefaultCHR_RAM_1KB_BanksCount = defaultCHR_RAM_1KB_BanksCount; this.Enabled_ppuA12ToggleTimer = Enabled_ppuA12ToggleTimer; this.PPUA12TogglesOnRaisingEdge = PPUA12TogglesOnRaisingEdge; } } }