This commit is contained in:
Matt Nadareski
2026-03-06 16:00:36 -05:00
parent b339f213b8
commit ca264ce91e
7 changed files with 93 additions and 97 deletions

View File

@@ -20,17 +20,17 @@ namespace SabreTools.Data.Models.NES
/// <summary>
/// PRG ROM data (16384 * x bytes)
/// </summary>
public byte[] PRGROMData { get; set; } = [];
public byte[] PrgRomData { get; set; } = [];
/// <summary>
/// CHR ROM data, if present (8192 * y bytes)
/// </summary>
public byte[] CHRROMData { get; set; } = [];
public byte[] ChrRomData { get; set; } = [];
/// <summary>
/// PlayChoice INST-ROM, if present (0 or 8192 bytes)
/// </summary>
public byte[] PlayChoiceINSTROM { get; set; } = [];
public byte[] PlayChoiceInstRom { get; set; } = [];
/// <summary>
/// PlayChoice PROM, if present (16 bytes Data, 16 bytes CounterOut)
@@ -41,7 +41,7 @@ namespace SabreTools.Data.Models.NES
/// 16 bytes RP5H01 PROM CounterOut output (needed to decrypt the INST ROM) (usually constant: 00,00,00,00,FF,FF,FF,FF,00,00,00,00,FF,FF,FF,FF)
/// </remarks>
/// TODO: Split into 2 parts
public byte[] PlayChoicePROM { get; set; } = [];
public byte[] PlayChoiceProm { get; set; } = [];
/// <summary>
/// Some ROM-Images additionally contain a 128-byte (or sometimes 127-byte)

View File

@@ -15,13 +15,13 @@ namespace SabreTools.Data.Models.NES
/// <summary>
/// Size of PRG ROM in 16 KB units
/// </summary>
public byte PRGROMSize { get; set; }
public byte PrgRomSize { get; set; }
/// <summary>
/// Size of CHR ROM in 8 KB units
/// </summary>
/// <remarks>Value 0 means the board uses CHR RAM</remarks>
public byte CHRROMSize { get; set; }
public byte ChrRomSize { get; set; }
#region Byte 6
@@ -36,7 +36,7 @@ namespace SabreTools.Data.Models.NES
/// or other persistent memory
/// </summary>
/// <remarks>Byte 6, Bit 1</remarks>
public bool BatteryBackedPRGRAM { get; set; }
public bool BatteryBackedPrgRam { get; set; }
/// <summary>
/// 512-byte trainer at $7000-$71FF

View File

@@ -25,7 +25,7 @@ namespace SabreTools.Data.Models.NES
/// This was a later extension to the iNES format and not widely used.
/// NES 2.0 is recommended for specifying PRG RAM size instead.
/// </remarks>
public byte PRGRAMSize { get; set; }
public byte PrgRamSize { get; set; }
/// <summary>
/// TV system (rarely used extension)
@@ -69,7 +69,7 @@ namespace SabreTools.Data.Models.NES
/// This byte is not part of the official specification, and relatively
/// few emulators honor it.
/// </remarks>
public bool PRGRAMPresent { get; set; }
public bool PrgRamPresent { get; set; }
/// <summary>
/// Board has bus conflicts

View File

@@ -30,13 +30,13 @@ namespace SabreTools.Data.Models.NES
/// PRG-ROM size MSB bits 8-11
/// </summary>
/// <remarks>Byte 9, Bits 0-3</remarks>
public byte PRGROMSizeMSB { get; set; }
public byte PrgRomSizeMSB { get; set; }
/// <summary>
/// CHR-ROM size MSB bits 8-11
/// </summary>
/// <remarks>Byte 9, Bits 4-7</remarks>
public byte CHRROMSizeMSB { get; set; }
public byte ChrRomSizeMSB { get; set; }
#endregion
@@ -52,7 +52,7 @@ namespace SabreTools.Data.Models.NES
/// If the shift count is non-zero, the actual size is
/// "64 << shift count" bytes, i.e. 8192 bytes for a shift count of 7.
/// </remarks>
public byte PRGRAMShiftCount { get; set; }
public byte PrgRamShiftCount { get; set; }
/// <summary>
/// PRG-NVRAM/EEPROM (non-volatile) shift count
@@ -64,7 +64,7 @@ namespace SabreTools.Data.Models.NES
/// If the shift count is non-zero, the actual size is
/// "64 << shift count" bytes, i.e. 8192 bytes for a shift count of 7.
/// </remarks>
public byte PRGNVRAMEEPROMShiftCount { get; set; }
public byte PrgNvramEepromShiftCount { get; set; }
#endregion
@@ -80,7 +80,7 @@ namespace SabreTools.Data.Models.NES
/// If the shift count is non-zero, the actual size is
/// "64 << shift count" bytes, i.e. 8192 bytes for a shift count of 7.
/// </remarks>
public byte CHRRAMShiftCount { get; set; }
public byte ChrRamShiftCount { get; set; }
/// <summary>
/// CHR-NVRAM size (non-volatile) shift count
@@ -92,7 +92,7 @@ namespace SabreTools.Data.Models.NES
/// If the shift count is non-zero, the actual size is
/// "64 << shift count" bytes, i.e. 8192 bytes for a shift count of 7.
/// </remarks>
public byte CHRNVRAMShiftCount { get; set; }
public byte ChrNvramShiftCount { get; set; }
#endregion

View File

@@ -40,30 +40,30 @@ namespace SabreTools.Serialization.Readers
// Derive the PRG-ROM and CHR-ROM data sizes
// TODO: Make model for PRG-ROM data blocks
int prgRomSize = cart.Header.PRGROMSize * 16384;
int chrRomSize = cart.Header.CHRROMSize * 8192;
int prgRomSize = cart.Header.PrgRomSize * 16384;
int chrRomSize = cart.Header.ChrRomSize * 8192;
if (cart.Header is Header2 header2)
{
ushort extendedSize = (ushort)((header2.PRGROMSizeMSB << 8)
| header.PRGROMSize);
ushort extendedSize = (ushort)((header2.PrgRomSizeMSB << 8)
| header.PrgRomSize);
prgRomSize = extendedSize * 16384;
extendedSize = (ushort)((header2.CHRROMSizeMSB << 8)
| header.CHRROMSize);
extendedSize = (ushort)((header2.ChrRomSizeMSB << 8)
| header.ChrRomSize);
chrRomSize = extendedSize * 8192;
}
// Read the PRG-ROM and CHR-ROM data
if (prgRomSize > 0)
cart.PRGROMData = data.ReadBytes(prgRomSize);
cart.PrgRomData = data.ReadBytes(prgRomSize);
if (chrRomSize > 0)
cart.CHRROMData = data.ReadBytes(chrRomSize);
cart.ChrRomData = data.ReadBytes(chrRomSize);
// Read the PlayChoice INST-ROM and PROM data, if necessary
if (cart.Header.ConsoleType == ConsoleType.PlayChoice10)
{
cart.PlayChoiceINSTROM = data.ReadBytes(8192);
cart.PlayChoicePROM = data.ReadBytes(32);
cart.PlayChoiceInstRom = data.ReadBytes(8192);
cart.PlayChoiceProm = data.ReadBytes(32);
}
// Read the cart title, if it exists
@@ -111,12 +111,12 @@ namespace SabreTools.Serialization.Readers
var obj = new Header2();
obj.IdentificationString = identificationString;
obj.PRGROMSize = prgRomSize;
obj.CHRROMSize = chrRomSize;
obj.PrgRomSize = prgRomSize;
obj.ChrRomSize = chrRomSize;
// Byte 6
obj.NametableArrangement = nametableArrangement;
obj.BatteryBackedPRGRAM = batteryBackedPrgRam;
obj.BatteryBackedPrgRam = batteryBackedPrgRam;
obj.TrainerPresent = trainerPresent;
obj.AlternativeNametableLayout = alternativeNametableLayout;
obj.MapperLowerNibble = mapperLowerNibble;
@@ -133,18 +133,18 @@ namespace SabreTools.Serialization.Readers
// Byte 9
byte byte9 = data.ReadByteValue();
obj.PRGROMSizeMSB = (byte)(byte9 & 0x0F);
obj.CHRROMSizeMSB = (byte)((byte9 >> 4) & 0x0F);
obj.PrgRomSizeMSB = (byte)(byte9 & 0x0F);
obj.ChrRomSizeMSB = (byte)((byte9 >> 4) & 0x0F);
// Byte 10
byte byte10 = data.ReadByteValue();
obj.PRGRAMShiftCount = (byte)(byte10 & 0x0F);
obj.PRGNVRAMEEPROMShiftCount = (byte)((byte10 >> 4) & 0x0F);
obj.PrgRamShiftCount = (byte)(byte10 & 0x0F);
obj.PrgNvramEepromShiftCount = (byte)((byte10 >> 4) & 0x0F);
// Byte 11
byte byte11 = data.ReadByteValue();
obj.CHRRAMShiftCount = (byte)(byte11 & 0x0F);
obj.CHRNVRAMShiftCount = (byte)((byte11 >> 4) & 0x0F);
obj.ChrRamShiftCount = (byte)(byte11 & 0x0F);
obj.ChrNvramShiftCount = (byte)((byte11 >> 4) & 0x0F);
obj.CPUPPUTiming = (CPUPPUTiming)data.ReadByteValue();
obj.ExtendedSystemType = data.ReadByteValue();
@@ -160,12 +160,12 @@ namespace SabreTools.Serialization.Readers
var obj = new Header1();
obj.IdentificationString = identificationString;
obj.PRGROMSize = prgRomSize;
obj.CHRROMSize = chrRomSize;
obj.PrgRomSize = prgRomSize;
obj.ChrRomSize = chrRomSize;
// Byte 6
obj.NametableArrangement = nametableArrangement;
obj.BatteryBackedPRGRAM = batteryBackedPrgRam;
obj.BatteryBackedPrgRam = batteryBackedPrgRam;
obj.TrainerPresent = trainerPresent;
obj.AlternativeNametableLayout = alternativeNametableLayout;
obj.MapperLowerNibble = mapperLowerNibble;
@@ -175,14 +175,14 @@ namespace SabreTools.Serialization.Readers
obj.NES20 = nes20;
obj.MapperUpperNibble = mapperUpperNibble;
obj.PRGRAMSize = data.ReadByteValue();
obj.PrgRamSize = data.ReadByteValue();
obj.TVSystem = (TVSystem)data.ReadByteValue();
// Byte 10
byte byte10 = data.ReadByteValue();
obj.TVSystemExtended = (TVSystemExtended)(byte10 & 0x03);
obj.ReservedBits23 = (byte)((byte10 >> 2) & 0x03);
obj.PRGRAMPresent = ((byte10 >> 4) & 0x01) == 0x01;
obj.PrgRamPresent = ((byte10 >> 4) & 0x01) == 0x01;
obj.HasBusConflicts = ((byte10 >> 5) & 0x01) == 0x01;
obj.ReservedBits67 = (byte)((byte10 >> 6) & 0x03);

View File

@@ -23,13 +23,13 @@ namespace SabreTools.Serialization.Wrappers
//builder.AppendLine(Model.Trainer, "Trainer Data");
builder.AppendLine(Model.Trainer.Length, "Trainer Data Length");
//builder.AppendLine(Model.PRGROMData, "PRG-ROM Data");
builder.AppendLine(Model.PRGROMData.Length, "PRG-ROM Data Length");
builder.AppendLine(Model.PrgRomData.Length, "PRG-ROM Data Length");
//builder.AppendLine(Model.CHRROMData, "CHR-ROM Data");
builder.AppendLine(Model.CHRROMData.Length, "CHR-ROM Data Length");
builder.AppendLine(Model.ChrRomData.Length, "CHR-ROM Data Length");
//builder.AppendLine(Model.PlayChoiceINSTROM, "PlayChoice INST-ROM Data");
builder.AppendLine(Model.PlayChoiceINSTROM.Length, "PlayChoice INST-ROM Data Length");
builder.AppendLine(Model.PlayChoiceInstRom.Length, "PlayChoice INST-ROM Data Length");
//builder.AppendLine(Model.PlayChoicePROM, "PlayChoice PROM Data");
builder.AppendLine(Model.PlayChoicePROM.Length, "PlayChoice PROM Data Length");
builder.AppendLine(Model.PlayChoiceProm.Length, "PlayChoice PROM Data Length");
builder.AppendLine(Model.Title, "Title");
}
@@ -45,8 +45,8 @@ namespace SabreTools.Serialization.Wrappers
}
builder.AppendLine(header.IdentificationString, " Identification string");
builder.AppendLine(header.PRGROMSize, " PRG-ROM size in 16KiB units");
builder.AppendLine(header.CHRROMSize, " CHR-ROM size in 8KiB units");
builder.AppendLine(header.PrgRomSize, " PRG-ROM size in 16KiB units");
builder.AppendLine(header.ChrRomSize, " CHR-ROM size in 8KiB units");
#region Flag 6
@@ -57,7 +57,7 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine(nametableArrangement, " Nametable Arrangement");
// Bit 1
string batteryBackedPrgRam = header.BatteryBackedPRGRAM ? "Present" : "Not present";
string batteryBackedPrgRam = header.BatteryBackedPrgRam ? "Present" : "Not present";
builder.AppendLine(batteryBackedPrgRam, " Battery-Backed PRG RAM");
// Bit 2
@@ -88,7 +88,7 @@ namespace SabreTools.Serialization.Wrappers
if (header is Header1 header1)
{
// Byte 8
builder.AppendLine(header1.PRGRAMSize, prefixString: " PRG-RAM size in 8KiB units");
builder.AppendLine(header1.PrgRamSize, prefixString: " PRG-RAM size in 8KiB units");
// Byte 9
string tvSystem = header1.TVSystem.FromTVSystem();
@@ -107,7 +107,7 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine(header1.ReservedBits23, " Reserved bits 1-2");
// Bit 4
string prgRamPresent = header1.PRGRAMPresent ? "Present" : "Not present";
string prgRamPresent = header1.PrgRamPresent ? "Present" : "Not present";
builder.AppendLine(prgRamPresent, " PRG-RAM");
// Bit 5
@@ -133,30 +133,30 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine(header2.Submapper, " Submapper");
// Byte 9
ushort extendedPrgRomSize = (ushort)((header2.PRGROMSizeMSB << 8) | header.PRGROMSize);
ushort extendedChrRomSize = (ushort)((header2.CHRROMSizeMSB << 8) | header.CHRROMSize);
ushort extendedPrgRomSize = (ushort)((header2.PrgRomSizeMSB << 8) | header.PrgRomSize);
ushort extendedChrRomSize = (ushort)((header2.ChrRomSizeMSB << 8) | header.ChrRomSize);
builder.AppendLine(header2.PRGROMSizeMSB, " PRG-ROM size MSB");
builder.AppendLine(header2.PrgRomSizeMSB, " PRG-ROM size MSB");
builder.AppendLine(extendedPrgRomSize, " Extended PRG-ROM size");
builder.AppendLine(header2.CHRROMSizeMSB, " CHR-ROM size MSB");
builder.AppendLine(header2.ChrRomSizeMSB, " CHR-ROM size MSB");
builder.AppendLine(extendedChrRomSize, " Extended CHR-ROM size");
// Byte 10
int prgRamSize = header2.PRGRAMShiftCount > 0 ? 64 << header2.PRGRAMShiftCount : 0;
int eepromSize = header2.PRGNVRAMEEPROMShiftCount > 0 ? 64 << header2.PRGNVRAMEEPROMShiftCount : 0;
int prgRamSize = header2.PrgRamShiftCount > 0 ? 64 << header2.PrgRamShiftCount : 0;
int eepromSize = header2.PrgNvramEepromShiftCount > 0 ? 64 << header2.PrgNvramEepromShiftCount : 0;
builder.AppendLine(header2.PRGRAMShiftCount, " PRG-RAM shift count");
builder.AppendLine(header2.PrgRamShiftCount, " PRG-RAM shift count");
builder.AppendLine(prgRamSize, " PRG-RAM size");
builder.AppendLine(header2.PRGNVRAMEEPROMShiftCount, " PRG-NVRAM/EEPROM shift count");
builder.AppendLine(header2.PrgNvramEepromShiftCount, " PRG-NVRAM/EEPROM shift count");
builder.AppendLine(eepromSize, " PRG-NVRAM/EEPROM size");
// Byte 11
int chrRamSize = header2.CHRRAMShiftCount > 0 ? 64 << header2.CHRRAMShiftCount : 0;
int chrNvramSize = header2.CHRNVRAMShiftCount > 0 ? 64 << header2.CHRNVRAMShiftCount : 0;
int chrRamSize = header2.ChrRamShiftCount > 0 ? 64 << header2.ChrRamShiftCount : 0;
int chrNvramSize = header2.ChrNvramShiftCount > 0 ? 64 << header2.ChrNvramShiftCount : 0;
builder.AppendLine(header2.CHRRAMShiftCount, " CHR-RAM shift count");
builder.AppendLine(header2.ChrRamShiftCount, " CHR-RAM shift count");
builder.AppendLine(chrRamSize, " CHR-RAM size");
builder.AppendLine(header2.CHRNVRAMShiftCount, " CHR-NVRAM shift count");
builder.AppendLine(header2.ChrNvramShiftCount, " CHR-NVRAM shift count");
builder.AppendLine(chrNvramSize, " CHR-NVRAM size");
// Byte 12

View File

@@ -22,17 +22,17 @@ namespace SabreTools.Serialization.Wrappers
/// <inheritdoc cref="Header.AlternativeNametableLayout"/>
public bool AlternativeNametableLayout => Header?.AlternativeNametableLayout ?? false;
/// <inheritdoc cref="Header.BatteryBackedPRGRAM"/>
public bool BatteryBackedPRGRAM => Header?.BatteryBackedPRGRAM ?? false;
/// <inheritdoc cref="Header.BatteryBackedPrgRam"/>
public bool BatteryBackedPrgRam => Header?.BatteryBackedPrgRam ?? false;
/// <inheritdoc cref="Cart.CHRROMData"/>
public byte[] CHRROMData => Model.CHRROMData;
/// <inheritdoc cref="Cart.ChrRomData"/>
public byte[] ChrRomData => Model.ChrRomData;
/// <summary>
/// CHR-ROM size in bytes
/// </summary>
/// <remarks>Extended by NES 2.0</remarks>
public int CHRROMSize
public int ChrRomSize
{
get
{
@@ -40,9 +40,9 @@ namespace SabreTools.Serialization.Wrappers
if (Header is null)
return 0;
int chrRomSize = Header.CHRROMSize * 8192;
int chrRomSize = Header.ChrRomSize * 8192;
if (Header is Header2 header2)
chrRomSize = (header2.CHRROMSizeMSB << 8) | chrRomSize;
chrRomSize = (header2.ChrRomSizeMSB << 8) | chrRomSize;
return chrRomSize;
}
@@ -52,10 +52,10 @@ namespace SabreTools.Serialization.Wrappers
public ConsoleType ConsoleType => Header?.ConsoleType ?? ConsoleType.StandardSystem;
/// <summary>
/// Mapper number
/// Mapper ID
/// </summary>
/// <remarks>Extended by NES 2.0</remarks>
public int MapperNumber
public int Mapper
{
get
{
@@ -81,7 +81,8 @@ namespace SabreTools.Serialization.Wrappers
/// <summary>
/// PRG-RAM size in bytes
/// </summary>
public int PRGRAMSize
/// <remarks>Extended by NES 2.0</remarks>
public int PrgRamSize
{
get
{
@@ -90,9 +91,9 @@ namespace SabreTools.Serialization.Wrappers
return 0;
if (Header is Header1 header1)
return header1.PRGRAMSize > 0 ? header1.PRGRAMSize * 8192 : 8192;
return header1.PrgRamSize > 0 ? header1.PrgRamSize * 8192 : 8192;
else if (Header is Header2 header2)
return header2.PRGRAMShiftCount > 0 ? 64 << header2.PRGRAMShiftCount : 0;
return header2.PrgRamShiftCount > 0 ? 64 << header2.PrgRamShiftCount : 0;
else
return 0;
}
@@ -102,7 +103,7 @@ namespace SabreTools.Serialization.Wrappers
/// PRG-ROM size in bytes
/// </summary>
/// <remarks>Extended by NES 2.0</remarks>
public int PRGROMSize
public int PrgRomSize
{
get
{
@@ -110,22 +111,22 @@ namespace SabreTools.Serialization.Wrappers
if (Header is null)
return 0;
int prgRomSize = Header.PRGROMSize * 16384;
int prgRomSize = Header.PrgRomSize * 16384;
if (Header is Header2 header2)
prgRomSize = (header2.PRGROMSizeMSB << 8) | prgRomSize;
prgRomSize = (header2.PrgRomSizeMSB << 8) | prgRomSize;
return prgRomSize;
}
}
/// <inheritdoc cref="Cart.PRGROMData"/>
public byte[] PRGROMData => Model.PRGROMData;
/// <inheritdoc cref="Cart.PrgRomData"/>
public byte[] PrgRomData => Model.PrgRomData;
/// <inheritdoc cref="Cart.PlayChoiceINSTROM"/>
public byte[] PlayChoiceINSTROM => Model.PlayChoiceINSTROM;
/// <inheritdoc cref="Cart.PlayChoiceInstRom"/>
public byte[] PlayChoiceInstRom => Model.PlayChoiceInstRom;
/// <inheritdoc cref="Cart.PlayChoicePROM"/>
public byte[] PlayChoicePROM => Model.PlayChoicePROM;
/// <inheritdoc cref="Cart.PlayChoiceProm"/>
public byte[] PlayChoiceProm => Model.PlayChoiceProm;
/// <inheritdoc cref="Cart.Title"/>
public byte[] Title => Model.Title;
@@ -154,9 +155,9 @@ namespace SabreTools.Serialization.Wrappers
}
}
/// <inheritdoc cref="Header1.PRGRAMPresent"/>
/// <inheritdoc cref="Header1.PrgRamPresent"/>
/// <remarks>Defined only for NES 1.0</remarks>
public bool PRGRAMPresent
public bool PrgRamPresent
{
get
{
@@ -164,7 +165,7 @@ namespace SabreTools.Serialization.Wrappers
if (Header is null || Header is not Header1 header1)
return false;
return header1.PRGRAMPresent;
return header1.PrgRamPresent;
}
}
@@ -204,7 +205,7 @@ namespace SabreTools.Serialization.Wrappers
/// CHR-NVRAM size in bytes
/// </summary>
/// <remarks>Defined only for NES 2.0</remarks>
public int CHRNVRAMSize
public int ChrNvramSize
{
get
{
@@ -212,7 +213,7 @@ namespace SabreTools.Serialization.Wrappers
if (Header is null || Header is not Header2 header2)
return 0;
return header2.CHRNVRAMShiftCount > 0 ? 64 << header2.CHRNVRAMShiftCount : 0;
return header2.ChrNvramShiftCount > 0 ? 64 << header2.ChrNvramShiftCount : 0;
}
}
@@ -220,7 +221,7 @@ namespace SabreTools.Serialization.Wrappers
/// CHR-RAM size in bytes
/// </summary>
/// <remarks>Defined only for NES 2.0</remarks>
public int CHRRAMSize
public int ChrRamSize
{
get
{
@@ -228,7 +229,7 @@ namespace SabreTools.Serialization.Wrappers
if (Header is null || Header is not Header2 header2)
return 0;
return header2.CHRRAMShiftCount > 0 ? 64 << header2.CHRRAMShiftCount : 0;
return header2.ChrRamShiftCount > 0 ? 64 << header2.ChrRamShiftCount : 0;
}
}
@@ -268,7 +269,6 @@ namespace SabreTools.Serialization.Wrappers
/// Extended console type
/// </summary>
/// <remarks>Defined only for NES 2.0</remarks>
/// <remarks>Only valid if <see cref="Flag7.ExtendedConsoleType"/> is set</remarks>
public ExtendedConsoleType ExtendedConsoleType
{
get
@@ -305,7 +305,7 @@ namespace SabreTools.Serialization.Wrappers
/// PRG-NVRAM/EEPROM size in bytes
/// </summary>
/// <remarks>Defined only for NES 2.0</remarks>
public int PRGRAMEEPROMSize
public int PrgNvramEepromSize
{
get
{
@@ -313,15 +313,13 @@ namespace SabreTools.Serialization.Wrappers
if (Header is null || Header is not Header2 header2)
return 0;
return header2.PRGNVRAMEEPROMShiftCount > 0 ? 64 << header2.PRGNVRAMEEPROMShiftCount : 0;
return header2.PrgNvramEepromShiftCount > 0 ? 64 << header2.PrgNvramEepromShiftCount : 0;
}
}
/// <summary>
/// Submapper number
/// </summary>
/// <inheritdoc cref="Header2.Submapper"/>
/// <remarks>Defined only for NES 2.0</remarks>
public int SubmapperNumber
public int Submapper
{
get
{
@@ -337,7 +335,6 @@ namespace SabreTools.Serialization.Wrappers
/// Vs. Hardware Type
/// </summary>
/// <remarks>Defined only for NES 2.0</remarks>
/// <remarks>Only valid if <see cref="Flag7.VSUnisystem"/> is set</remarks>
public VsHardwareType VsHardwareType
{
get
@@ -358,7 +355,6 @@ namespace SabreTools.Serialization.Wrappers
/// Vs. System Type
/// </summary>
/// <remarks>Defined only for NES 2.0</remarks>
/// <remarks>Only valid if <see cref="Flag7.VSUnisystem"/> is set</remarks>
public VsSystemType VsSystemType
{
get