diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-09-16 14:10:34 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-09-16 14:10:34 +0300 |
commit | 98d19160032f630c54dcbbd9a396342dd3acbaf2 (patch) | |
tree | 3d7c403c1af3f8cb679a599357749a00d380c7eb | |
parent | 5d144bc1ed096cedcd5c68c1d0a932815442663d (diff) |
Mirroring values
-rw-r--r-- | NesFile.cs | 34 | ||||
-rw-r--r-- | NesHeaderFixer.cs | 6 |
2 files changed, 32 insertions, 8 deletions
@@ -116,15 +116,39 @@ namespace com.clusterrr.Famicom.Containers /// </summary>
public byte MiscellaneousROMsCount { get; set; } = 0;
+ /// <summary>
+ /// What CIRAM A10 is connected to
+ /// </summary>
public enum MirroringType
{
+ /// <summary>
+ /// PPU A11 (horizontal mirroring)
+ /// </summary>
Horizontal = 0,
+ /// <summary>
+ /// PPU A10 (vertical mirroring)
+ /// </summary>
Vertical = 1,
- FourScreenVram = 2,
- OneScreenA = 3,
- OneScreenB = 4,
- Unknown_both = 0xfe,
- Unknown_none = 0xff
+ /// <summary>
+ /// Ground (one-screen A)
+ /// </summary>
+ OneScreenA = 2,
+ /// <summary>
+ /// Vcc (one-screen B)
+ /// </summary>
+ OneScreenB = 3,
+ /// <summary>
+ /// Extra memory has been added (four-screen)
+ /// </summary>
+ FourScreenVram = 4,
+ /// <summary>
+ /// Mapper controlled
+ /// </summary>
+ MapperControlled = 5, // for UNIF
+ /// <summary>
+ /// Unknown value
+ /// </summary>
+ Unknown = 0xff
};
/// <summary>
diff --git a/NesHeaderFixer.cs b/NesHeaderFixer.cs index c52d397..997388a 100644 --- a/NesHeaderFixer.cs +++ b/NesHeaderFixer.cs @@ -50,13 +50,13 @@ namespace com.clusterrr.Famicom.Containers.HeaderFixer }
if (mirroring >= 0)
{
- // Anything but hard-wired(four screen)
if (mirroring == 8 && nes.Mirroring == NesFile.MirroringType.FourScreenVram)
{
+ // no four-screen
nes.Mirroring = NesFile.MirroringType.Horizontal;
fixType |= NesFixType.Mirroring;
}
- NesFile.MirroringType needMirroring = NesFile.MirroringType.Unknown_none;
+ NesFile.MirroringType needMirroring = NesFile.MirroringType.Unknown;
switch (mirroring)
{
case 0:
@@ -69,7 +69,7 @@ namespace com.clusterrr.Famicom.Containers.HeaderFixer needMirroring = NesFile.MirroringType.FourScreenVram;
break;
}
- if (needMirroring != NesFile.MirroringType.Unknown_none && needMirroring != nes.Mirroring)
+ if (needMirroring != NesFile.MirroringType.Unknown && needMirroring != nes.Mirroring)
{
nes.Mirroring = needMirroring;
fixType |= NesFixType.Mirroring;
|