using System; using System.IO; namespace FriskySNES { public class ROM { public byte[] data; public ROM(Stream stream) { BinaryReader reader = new BinaryReader(stream); data = reader.ReadBytes((int)stream.Length); } public static int ROMSizeInMBitFromSizeByte(byte b) { return (2 << (b - 8)); } public static int SRAMSizeInMBitFromSizeByte(byte b) { return (1 << (b + 3)); } } /* ---------------------------------------------------------------------------- * Useful enum types * ------------------------------------------------------------------------- */ public enum ROMSpeed : byte { SlowROM = 0, FastROM = 3 } public enum ROMBankSize : byte { LoROM = 0, HiROM = 1 } public enum ROMType : byte { ROM = 0, ROMAndRAM = 1, ROMAndSRAM = 2, ROMAndDSP1 = 3, ROMAndRAMAndDSP1 = 4, ROMAndSRAMAndDSP1 = 5, ROMAndSuperFX = 6, ROMAndRAMAndGameBoy = 227, ROMAndDSP2 = 246 } public enum Region : byte { JP = 0, US = 1, AU = 2, SE = 3, FI = 4, DK = 5, FR = 6, NL = 7, ES = 8, DE = 9, IT = 10, CN = 11, ID = 12, KR = 13 } public enum Licensee : byte { Nintendo = 1, ImagineerZoom = 3, Zamuse = 5, Falcom = 6, Capcom = 8, HOTB = 9, Jaleco = 10, Coconuts = 11, RageSoftware = 12, Technos = 14, MebioSoftware = 15, GremlinGraphics = 18, ElectronicArts = 19, COBRATeam = 21, HumanField = 22, KOEI = 23, HudsonSoft = 24, Yanoman = 26, Tecmo = 28, OpenSystem = 30, VirginGames = 31, KSS = 32, Sunsoft = 33, POW = 34, MicroWorld = 35, Enix = 38, LoricielElectroBrain = 39, Kemco = 40, SetaCoLtd = 41, VisitCoLtd = 45, Carrozzeria = 49, Dynamic = 50, Nintendo2 = 51, Magifact = 52, Hect = 53, EmpireSoftware = 60, Loriciel = 61, SeikaCorp = 64, Ubisoft = 65, System3 = 70, SpectrumHolobyte = 71, Irem = 73, RayaSystemsSculpturedSoftware = 75, RenovationProducts = 76, MalibuGamesBlackPearl = 77, USGold = 79, AbsoluteEntertainment = 80, Acclaim = 81, Activision = 82, AmericanSammy = 83, GameTek = 84, HiTechExpressions = 85, LJNToys = 86, Mindscape = 90, Tradewest = 93, AmericanSoftworksCorp = 95, Titus = 96, VirginInteractiveEntertainment = 97, Maxis = 98, Ocean = 103, ElectronicArts2 = 105, LaserBeam = 107, Elite = 110, ElectroBrain = 111, Infogrames = 112, Interplay = 113, LucasArts = 114, ParkerBrothers = 115, STORM = 117, THQSoftware = 120, AccoladeInc = 121, TriffixEntertainment = 122, Microprose = 124, Kemco2 = 127, Misawa = 128, Teichio = 129, NamcoLtd = 130, Lozc = 131, KOEI2 = 132, TokumaShotenIntermedia = 134, DATAMPolystar = 136, BulletProofSoftware = 139, VicTokai = 140, CharacterSoft = 142, IMax = 143, Takara = 144, CHUNSoft = 145, VideoSystemCoLtd = 146, BEC = 147, Varie = 149, Kaneco = 151, PackInVideo = 153, Nichibutsu = 154, TECMO = 155, ImagineerCo = 156, Telenet = 160, Konami = 164, KAmusementLeasingCo = 165, Takara2 = 167, TechnosJap = 169, JVC = 170, ToeiAnimation = 172, Toho = 173, NamcoLtd2 = 175, ASCIICoActivision = 177, BandaiAmerica = 178, Enix2 = 180, Halken = 182, CultureBrain = 186, Sunsoft2 = 187, ToshibaEMI = 188, SonyImagesoft = 189, Sammy = 191, Taito = 192, Kemco3 = 194, Square = 195, TokumaSoft = 196, DataEast = 197, TonkinHouse = 198, KOEI3 = 200, KonamiUSA = 202, NTVIC = 203, Meldac = 205, PonyCanyon = 206, SotsuAgencySunrise = 207, DiscoTaito = 208, Sofel = 209, QuestCorp = 210, Sigma = 211, Naxat = 214, CapcomCoLtd = 216, Banpresto = 217, Tomy = 218, Acclaim2 = 219, NCS = 221, HumanEntertainment = 222, Altron = 223, Jaleco2 = 224, Yutaka = 226, TAndESoft = 228, EPOCHCoLtd = 229, Athena = 231, Asmik = 232, Natsume = 233, KingRecords = 234, Atlus = 235, SonyMusicEntertainment = 236, IGS = 238, MotownSoftware = 241, LeftFieldEntertainment = 242, BeamSoftware = 243, TecMagik = 244, Cybersoft = 249, HudsonSoft2 = 255 } }