HeaderKeys - CONSTANTSDONTNEEDTOBEALLCAPS

This commit is contained in:
adelikat 2020-03-01 16:36:47 -06:00
parent 9474771098
commit 079a0a4104
25 changed files with 149 additions and 153 deletions

View File

@ -135,8 +135,8 @@ namespace BizHawk.Client.Common
}
return new PlatformFrameRates()[
movie.HeaderEntries[HeaderKeys.PLATFORM],
movie.HeaderEntries.TryGetValue(HeaderKeys.PAL, out var isPal) && isPal == "1"
movie.HeaderEntries[HeaderKeys.Platform],
movie.HeaderEntries.TryGetValue(HeaderKeys.Pal, out var isPal) && isPal == "1"
];
}
}

View File

@ -4,33 +4,29 @@ namespace BizHawk.Client.Common
{
public static class HeaderKeys
{
public const string EMULATIONVERSION = "emuVersion";
public const string MOVIEVERSION = "MovieVersion";
public const string PLATFORM = "Platform";
public const string GAMENAME = "GameName";
public const string AUTHOR = "Author";
public const string RERECORDS = "rerecordCount";
public const string STARTSFROMSAVESTATE = "StartsFromSavestate";
public const string STARTSFROMSAVERAM = "StartsFromSaveRam";
public const string SAVESTATEBINARYBASE64BLOB = "SavestateBinaryBase64Blob"; // this string will not contain base64: ; it's implicit (this is to avoid another big string op to dice off the base64: substring)
public const string SHA1 = "SHA1";
public const string FIRMWARESHA1 = "FirmwareSHA1";
public const string PAL = "PAL";
public const string BOARDNAME = "BoardName";
public const string SYNCSETTINGS = "SyncSettings";
public const string LOOPOFFSET = "LoopOffset";
public const string VBLANKCOUNT = "VBlankCount";
public const string CYCLECOUNT = "CycleCount";
public const string EmulationVersion = "emuVersion";
public const string MovieVersion = "MovieVersion";
public const string Platform = "Platform";
public const string GameName = "GameName";
public const string Author = "Author";
public const string Rerecords = "rerecordCount";
public const string StartsFromSavestate = "StartsFromSavestate";
public const string StartsFromSaveram = "StartsFromSaveRam";
public const string SavestateBinaryBase64Blob = "SavestateBinaryBase64Blob"; // this string will not contain base64: ; it's implicit (this is to avoid another big string op to dice off the base64: substring)
public const string Sha1 = "SHA1";
public const string FirmwareSha1 = "FirmwareSHA1";
public const string Pal = "PAL";
public const string BoardName = "BoardName";
public const string SyncSettings = "SyncSettings";
public const string LoopOffset = "LoopOffset";
public const string VBlankCount = "VBlankCount";
public const string CycleCount = "CycleCount";
public const string Core = "Core";
// Core Setting
public const string CORE = "Core";
public static bool Contains(string val)
{
return typeof(HeaderKeys)
public static bool Contains(string val) =>
typeof(HeaderKeys)
.GetFields()
.Select(field => field.GetValue(null).ToString())
.Contains(val);
}
}
}

View File

@ -156,7 +156,7 @@ namespace BizHawk.Client.Common
var gambatteName = ((CoreAttribute)Attribute.GetCustomAttribute(typeof(Gameboy), typeof(CoreAttribute))).CoreName;
if (Movie.Core == gambatteName)
{
var movieCycles = Convert.ToUInt64(Movie.HeaderEntries[HeaderKeys.CYCLECOUNT]);
var movieCycles = Convert.ToUInt64(Movie.HeaderEntries[HeaderKeys.CycleCount]);
var coreCycles = (Global.Emulator as Gameboy).CycleCount;
if (movieCycles != (ulong)coreCycles)
{

View File

@ -97,12 +97,12 @@ namespace BizHawk.Client.Common
private double Fps(IMovie movie)
{
var system = movie.HeaderEntries[HeaderKeys.PLATFORM];
var core = movie.HeaderEntries[HeaderKeys.CORE];
var pal = movie.HeaderEntries.ContainsKey(HeaderKeys.PAL)
&& movie.HeaderEntries[HeaderKeys.PAL] == "1";
var system = movie.HeaderEntries[HeaderKeys.Platform];
var core = movie.HeaderEntries[HeaderKeys.Core];
var pal = movie.HeaderEntries.ContainsKey(HeaderKeys.Pal)
&& movie.HeaderEntries[HeaderKeys.Pal] == "1";
if (movie.HeaderEntries.ContainsKey(HeaderKeys.CYCLECOUNT) && core == "Gambatte")
if (movie.HeaderEntries.ContainsKey(HeaderKeys.CycleCount) && core == "Gambatte")
{
system = "GB_Clock";
}

View File

@ -30,57 +30,57 @@ namespace BizHawk.Client.Common
{
get
{
if (!Header.ContainsKey(HeaderKeys.RERECORDS))
if (!Header.ContainsKey(HeaderKeys.Rerecords))
{
Header[HeaderKeys.RERECORDS] = "0";
Header[HeaderKeys.Rerecords] = "0";
}
return ulong.Parse(Header[HeaderKeys.RERECORDS]);
return ulong.Parse(Header[HeaderKeys.Rerecords]);
}
set
{
if (Header[HeaderKeys.RERECORDS] != value.ToString())
if (Header[HeaderKeys.Rerecords] != value.ToString())
{
Changes = true;
Header[HeaderKeys.RERECORDS] = value.ToString();
Header[HeaderKeys.Rerecords] = value.ToString();
}
}
}
public bool StartsFromSavestate
{
get => Header.ContainsKey(HeaderKeys.STARTSFROMSAVESTATE) && bool.Parse(Header[HeaderKeys.STARTSFROMSAVESTATE]);
get => Header.ContainsKey(HeaderKeys.StartsFromSavestate) && bool.Parse(Header[HeaderKeys.StartsFromSavestate]);
set
{
if (value)
{
Header[HeaderKeys.STARTSFROMSAVESTATE] = "True";
Header[HeaderKeys.StartsFromSavestate] = "True";
}
else
{
Header.Remove(HeaderKeys.STARTSFROMSAVESTATE);
Header.Remove(HeaderKeys.StartsFromSavestate);
}
}
}
public bool StartsFromSaveRam
{
get => Header.ContainsKey(HeaderKeys.STARTSFROMSAVERAM) && bool.Parse(Header[HeaderKeys.STARTSFROMSAVERAM]);
get => Header.ContainsKey(HeaderKeys.StartsFromSaveram) && bool.Parse(Header[HeaderKeys.StartsFromSaveram]);
set
{
if (value)
{
if (!Header.ContainsKey(HeaderKeys.STARTSFROMSAVERAM))
if (!Header.ContainsKey(HeaderKeys.StartsFromSaveram))
{
Header.Add(HeaderKeys.STARTSFROMSAVERAM, "True");
Header.Add(HeaderKeys.StartsFromSaveram, "True");
}
}
else
{
if (Header.ContainsKey(HeaderKeys.STARTSFROMSAVERAM))
if (Header.ContainsKey(HeaderKeys.StartsFromSaveram))
{
Header.Remove(HeaderKeys.STARTSFROMSAVERAM);
Header.Remove(HeaderKeys.StartsFromSaveram);
}
}
}
@ -88,104 +88,104 @@ namespace BizHawk.Client.Common
public string GameName
{
get => Header.ContainsKey(HeaderKeys.GAMENAME) ? Header[HeaderKeys.GAMENAME] : "";
get => Header.ContainsKey(HeaderKeys.GameName) ? Header[HeaderKeys.GameName] : "";
set
{
if (Header[HeaderKeys.GAMENAME] != value)
if (Header[HeaderKeys.GameName] != value)
{
Changes = true;
Header[HeaderKeys.GAMENAME] = value;
Header[HeaderKeys.GameName] = value;
}
}
}
public string SystemID
{
get => Header.ContainsKey(HeaderKeys.PLATFORM) ? Header[HeaderKeys.PLATFORM] : "";
get => Header.ContainsKey(HeaderKeys.Platform) ? Header[HeaderKeys.Platform] : "";
set
{
if (Header[HeaderKeys.PLATFORM] != value)
if (Header[HeaderKeys.Platform] != value)
{
Changes = true;
Header[HeaderKeys.PLATFORM] = value;
Header[HeaderKeys.Platform] = value;
}
}
}
public string Hash
{
get => Header[HeaderKeys.SHA1];
get => Header[HeaderKeys.Sha1];
set
{
if (Header[HeaderKeys.SHA1] != value)
if (Header[HeaderKeys.Sha1] != value)
{
Changes = true;
Header[HeaderKeys.SHA1] = value;
Header[HeaderKeys.Sha1] = value;
}
}
}
public string Author
{
get => Header[HeaderKeys.AUTHOR];
get => Header[HeaderKeys.Author];
set
{
if (Header[HeaderKeys.AUTHOR] != value)
if (Header[HeaderKeys.Author] != value)
{
Changes = true;
Header[HeaderKeys.AUTHOR] = value;
Header[HeaderKeys.Author] = value;
}
}
}
public string Core
{
get => Header[HeaderKeys.CORE];
get => Header[HeaderKeys.Core];
set
{
if (Header[HeaderKeys.CORE] != value)
if (Header[HeaderKeys.Core] != value)
{
Changes = true;
Header[HeaderKeys.CORE] = value;
Header[HeaderKeys.Core] = value;
}
}
}
public string BoardName
{
get => Header[HeaderKeys.BOARDNAME];
get => Header[HeaderKeys.BoardName];
set
{
if (Header[HeaderKeys.BOARDNAME] != value)
if (Header[HeaderKeys.BoardName] != value)
{
Changes = true;
Header[HeaderKeys.BOARDNAME] = value;
Header[HeaderKeys.BoardName] = value;
}
}
}
public string EmulatorVersion
{
get => Header[HeaderKeys.EMULATIONVERSION];
get => Header[HeaderKeys.EmulationVersion];
set
{
if (Header[HeaderKeys.EMULATIONVERSION] != value)
if (Header[HeaderKeys.EmulationVersion] != value)
{
Changes = true;
Header[HeaderKeys.EMULATIONVERSION] = value;
Header[HeaderKeys.EmulationVersion] = value;
}
}
}
public string FirmwareHash
{
get => Header[HeaderKeys.FIRMWARESHA1];
get => Header[HeaderKeys.FirmwareSha1];
set
{
if (Header[HeaderKeys.FIRMWARESHA1] != value)
if (Header[HeaderKeys.FirmwareSha1] != value)
{
Changes = true;
Header[HeaderKeys.FIRMWARESHA1] = value;
Header[HeaderKeys.FirmwareSha1] = value;
}
}
}
@ -194,7 +194,7 @@ namespace BizHawk.Client.Common
{
get
{
var offsetStr = Header[HeaderKeys.LOOPOFFSET];
var offsetStr = Header[HeaderKeys.LoopOffset];
if (!string.IsNullOrWhiteSpace(offsetStr))
{
return int.Parse(offsetStr);
@ -207,11 +207,11 @@ namespace BizHawk.Client.Common
{
if (value.HasValue)
{
Header[HeaderKeys.LOOPOFFSET] = value.ToString();
Header[HeaderKeys.LoopOffset] = value.ToString();
}
else
{
Header.Remove(HeaderKeys.LOOPOFFSET);
Header.Remove(HeaderKeys.LoopOffset);
}
}
}

View File

@ -169,17 +169,17 @@ namespace BizHawk.Client.Common
if (Global.Emulator is Emulation.Cores.Nintendo.SubNESHawk.SubNESHawk)
{
var _subnes = (Emulation.Cores.Nintendo.SubNESHawk.SubNESHawk)Global.Emulator;
Header[HeaderKeys.VBLANKCOUNT] = _subnes.VBL_CNT.ToString();
Header[HeaderKeys.VBlankCount] = _subnes.VBL_CNT.ToString();
}
else if (Global.Emulator is Emulation.Cores.Nintendo.Gameboy.Gameboy)
{
var _gameboy = (Emulation.Cores.Nintendo.Gameboy.Gameboy)Global.Emulator;
Header[HeaderKeys.CYCLECOUNT] = _gameboy.CycleCount.ToString();
Header[HeaderKeys.CycleCount] = _gameboy.CycleCount.ToString();
}
else if (Global.Emulator is Emulation.Cores.Nintendo.SubGBHawk.SubGBHawk)
{
var _subgb = (Emulation.Cores.Nintendo.SubGBHawk.SubGBHawk)Global.Emulator;
Header[HeaderKeys.VBLANKCOUNT] = _subgb.VBL_CNT.ToString();
Header[HeaderKeys.VBlankCount] = _subgb.VBL_CNT.ToString();
}
var file = new FileInfo(fn);

View File

@ -21,7 +21,7 @@ namespace BizHawk.Client.Common
Mode = MovieMode.Inactive;
MakeBackup = true;
Header[HeaderKeys.MOVIEVERSION] = "BizHawk v2.0.0";
Header[HeaderKeys.MovieVersion] = "BizHawk v2.0.0";
Log = StringLogUtil.MakeStringLog();
}
@ -74,16 +74,16 @@ namespace BizHawk.Client.Common
{
get
{
if (Header.ContainsKey(HeaderKeys.VBLANKCOUNT))
if (Header.ContainsKey(HeaderKeys.VBlankCount))
{
return Convert.ToUInt64(Header[HeaderKeys.VBLANKCOUNT]);
return Convert.ToUInt64(Header[HeaderKeys.VBlankCount]);
}
else if (Header.ContainsKey(HeaderKeys.CYCLECOUNT))
else if (Header.ContainsKey(HeaderKeys.CycleCount))
{
var gambatteName = ((CoreAttribute)Attribute.GetCustomAttribute(typeof(Gameboy), typeof(CoreAttribute))).CoreName;
if (Header[HeaderKeys.CORE] == gambatteName)
if (Header[HeaderKeys.Core] == gambatteName)
{
return Convert.ToUInt64(Header[HeaderKeys.CYCLECOUNT]);
return Convert.ToUInt64(Header[HeaderKeys.CycleCount]);
}
}
return (ulong)Log.Count;

View File

@ -314,7 +314,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
var region = Global.Emulator.AsRegionable().Region;
if (region == Emulation.Common.DisplayType.PAL)
{
movie.HeaderEntries.Add(HeaderKeys.PAL, "1");
movie.HeaderEntries.Add(HeaderKeys.Pal, "1");
}
}
@ -343,7 +343,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
if (Global.Emulator is Gameboy)
{
movie.HeaderEntries.Add(HeaderKeys.CYCLECOUNT, "0");
movie.HeaderEntries.Add(HeaderKeys.CycleCount, "0");
}
if (Global.Emulator is SMS && ((SMS) Global.Emulator).IsSG1000)
@ -368,7 +368,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions
if (Global.Emulator is SubNESHawk || Global.Emulator is SubGBHawk)
{
movie.HeaderEntries.Add(HeaderKeys.VBLANKCOUNT, "0");
movie.HeaderEntries.Add(HeaderKeys.VBlankCount, "0");
}
movie.Core = ((CoreAttribute)Attribute

View File

@ -18,7 +18,7 @@ namespace BizHawk.Client.Common.movie.import
protected override void RunImport()
{
var neshawkName = ((CoreAttribute)Attribute.GetCustomAttribute(typeof(NES), typeof(CoreAttribute))).CoreName;
Result.Movie.HeaderEntries[HeaderKeys.CORE] = neshawkName;
Result.Movie.HeaderEntries[HeaderKeys.Core] = neshawkName;
using var r = new BinaryReader(SourceFile.Open(FileMode.Open, FileAccess.Read));
var signature = new string(r.ReadChars(4));
@ -28,7 +28,7 @@ namespace BizHawk.Client.Common.movie.import
return;
}
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "NES";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "NES";
var syncSettings = new NES.NESSyncSettings();
@ -74,7 +74,7 @@ namespace BizHawk.Client.Common.movie.import
preference. This means that this site cannot calculate movie lengths reliably.
*/
bool pal = ((flags >> 2) & 0x1) != 0;
Result.Movie.HeaderEntries[HeaderKeys.PAL] = pal.ToString();
Result.Movie.HeaderEntries[HeaderKeys.Pal] = pal.ToString();
// other: reserved, set to 0
bool syncHack = ((flags >> 4) & 0x1) != 0;
@ -124,7 +124,7 @@ namespace BizHawk.Client.Common.movie.import
// Advance past null byte.
r.ReadByte();
string gameName = Encoding.UTF8.GetString(gameBytes.ToArray());
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = gameName;
Result.Movie.HeaderEntries[HeaderKeys.GameName] = gameName;
/*
After the header comes "metadata", which is UTF8-coded movie title string. The metadata begins after the ROM
@ -140,7 +140,7 @@ namespace BizHawk.Client.Common.movie.import
// Advance past null byte.
r.ReadByte();
string author = Encoding.UTF8.GetString(authorBytes.ToArray());
Result.Movie.HeaderEntries[HeaderKeys.AUTHOR] = author;
Result.Movie.HeaderEntries[HeaderKeys.Author] = author;
// Advance to first byte of input data.
r.BaseStream.Position = firstFrameOffset;
@ -284,7 +284,7 @@ namespace BizHawk.Client.Common.movie.import
if (fds)
{
Result.Movie.HeaderEntries[HeaderKeys.BOARDNAME] = "FDS";
Result.Movie.HeaderEntries[HeaderKeys.BoardName] = "FDS";
}
syncSettings.Controls = controllerSettings;

View File

@ -15,7 +15,7 @@ namespace BizHawk.Client.Common
protected override void RunImport()
{
var neshawkName = ((CoreAttribute)Attribute.GetCustomAttribute(typeof(NES), typeof(CoreAttribute))).CoreName;
Result.Movie.HeaderEntries[HeaderKeys.CORE] = neshawkName;
Result.Movie.HeaderEntries[HeaderKeys.Core] = neshawkName;
const string emulator = "FCEUX";
var platform = "NES"; // TODO: FDS?
@ -30,7 +30,7 @@ namespace BizHawk.Client.Common
_deck = controllerSettings.Instantiate((x, y) => true);
AddDeckControlButtons();
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = platform;
Result.Movie.HeaderEntries[HeaderKeys.Platform] = platform;
using var sr = SourceFile.OpenText();
string line;
@ -73,11 +73,11 @@ namespace BizHawk.Client.Common
}
else if (line.ToLower().StartsWith("romfilename"))
{
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = ParseHeader(line, "romFilename");
Result.Movie.HeaderEntries[HeaderKeys.GameName] = ParseHeader(line, "romFilename");
}
else if (line.ToLower().StartsWith("cdgamename"))
{
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = ParseHeader(line, "cdGameName");
Result.Movie.HeaderEntries[HeaderKeys.GameName] = ParseHeader(line, "cdGameName");
}
else if (line.ToLower().StartsWith("romchecksum"))
{
@ -94,7 +94,7 @@ namespace BizHawk.Client.Common
}
else if (line.ToLower().StartsWith("comment author"))
{
Result.Movie.HeaderEntries[HeaderKeys.AUTHOR] = ParseHeader(line, "comment author");
Result.Movie.HeaderEntries[HeaderKeys.Author] = ParseHeader(line, "comment author");
}
else if (line.ToLower().StartsWith("rerecordcount"))
{
@ -116,7 +116,7 @@ namespace BizHawk.Client.Common
}
else if (line.ToLower().StartsWith("palflag"))
{
Result.Movie.HeaderEntries[HeaderKeys.PAL] = ParseHeader(line, "palFlag");
Result.Movie.HeaderEntries[HeaderKeys.Pal] = ParseHeader(line, "palFlag");
}
else if (line.ToLower().StartsWith("port0"))
{

View File

@ -32,7 +32,7 @@ namespace BizHawk.Client.Common.movie.import
return;
}
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "NES";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "NES";
var syncSettings = new NES.NESSyncSettings();
// other bits: unknown, set to 0
@ -44,7 +44,7 @@ namespace BizHawk.Client.Common.movie.import
if (((flags >> 5) & 0x1) != 0)
{
fds = true;
Result.Movie.HeaderEntries[HeaderKeys.BOARDNAME] = "FDS";
Result.Movie.HeaderEntries[HeaderKeys.BoardName] = "FDS";
}
else
{

View File

@ -21,7 +21,7 @@ namespace BizHawk.Client.Common.movie.import
return;
}
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "GEN";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "GEN";
// 00F ASCII-encoded GMV file format version. The most recent is 'A'. (?)
string version = new string(r.ReadChars(1));
@ -48,7 +48,7 @@ namespace BizHawk.Client.Common.movie.import
header.
*/
bool pal = ((flags >> 7) & 0x1) != 0;
Result.Movie.HeaderEntries[HeaderKeys.PAL] = pal.ToString();
Result.Movie.HeaderEntries[HeaderKeys.Pal] = pal.ToString();
// bit 6: if "1", movie requires a savestate.
if (((flags >> 6) & 0x1) != 0)

View File

@ -18,7 +18,7 @@ namespace BizHawk.Client.Common.movie.import
protected override void RunImport()
{
var bsnesName = ((CoreAttribute)Attribute.GetCustomAttribute(typeof(LibsnesCore), typeof(CoreAttribute))).CoreName;
Result.Movie.HeaderEntries[HeaderKeys.CORE] = bsnesName;
Result.Movie.HeaderEntries[HeaderKeys.Core] = bsnesName;
var hf = new HawkFile(SourceFile.FullName);
@ -77,7 +77,7 @@ namespace BizHawk.Client.Common.movie.import
authorList += authorLast;
}
Result.Movie.HeaderEntries[HeaderKeys.AUTHOR] = authorList;
Result.Movie.HeaderEntries[HeaderKeys.Author] = authorList;
hf.Unbind();
}
else if (item.Name == "coreversion")
@ -93,7 +93,7 @@ namespace BizHawk.Client.Common.movie.import
hf.BindArchiveMember(item.Index);
var stream = hf.GetStream();
string gameName = Encoding.UTF8.GetString(stream.ReadAllBytes()).Trim();
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = gameName;
Result.Movie.HeaderEntries[HeaderKeys.GameName] = gameName;
hf.Unbind();
}
else if (item.Name == "gametype")
@ -120,7 +120,7 @@ namespace BizHawk.Client.Common.movie.import
}
bool pal = gametype == "snes_pal" || gametype == "sgb_pal";
Result.Movie.HeaderEntries[HeaderKeys.PAL] = pal.ToString();
Result.Movie.HeaderEntries[HeaderKeys.Pal] = pal.ToString();
hf.Unbind();
}
else if (item.Name == "input")
@ -281,7 +281,7 @@ namespace BizHawk.Client.Common.movie.import
}
}
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = platform;
Result.Movie.HeaderEntries[HeaderKeys.Platform] = platform;
Result.Movie.SyncSettingsJson = ConfigService.SaveWithType(ss);
Global.Config.SnesInSnes9x = false; // This could be annoying to a user if they don't notice we set this preference, but the alternative is for the movie import to fail to load the movie
}

View File

@ -27,7 +27,7 @@ namespace BizHawk.Client.Common.movie.import
ss.Port4,
ss.Port5);
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "PCE";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "PCE";
using var sr = SourceFile.OpenText();
string line;
@ -84,7 +84,7 @@ namespace BizHawk.Client.Common.movie.import
}
else if (line.ToLower().StartsWith("pcecd"))
{
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "PCECD";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "PCECD";
}
else if (line.ToLower().StartsWith("emuversion"))
{
@ -97,15 +97,15 @@ namespace BizHawk.Client.Common.movie.import
}
else if (line.ToLower().StartsWith("romfilename"))
{
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = ParseHeader(line, "romFilename");
Result.Movie.HeaderEntries[HeaderKeys.GameName] = ParseHeader(line, "romFilename");
}
else if (line.ToLower().StartsWith("cdgamename"))
{
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = ParseHeader(line, "cdGameName");
Result.Movie.HeaderEntries[HeaderKeys.GameName] = ParseHeader(line, "cdGameName");
}
else if (line.ToLower().StartsWith("comment author"))
{
Result.Movie.HeaderEntries[HeaderKeys.AUTHOR] = ParseHeader(line, "comment author");
Result.Movie.HeaderEntries[HeaderKeys.Author] = ParseHeader(line, "comment author");
}
else if (line.ToLower().StartsWith("rerecordcount"))
{

View File

@ -54,7 +54,7 @@ namespace BizHawk.Client.Common.movie.import
// 0020-005f: string: author info (UTF-8)
string author = NullTerminated(new string(r.ReadChars(64)));
Result.Movie.HeaderEntries[HeaderKeys.AUTHOR] = author;
Result.Movie.HeaderEntries[HeaderKeys.Author] = author;
// 0060: 4-byte little endian flags
byte flags = r.ReadByte();
@ -62,7 +62,7 @@ namespace BizHawk.Client.Common.movie.import
// bit 0: unused
// bit 1: "PAL"
bool pal = ((flags >> 1) & 0x1) != 0;
Result.Movie.HeaderEntries[HeaderKeys.PAL] = pal.ToString();
Result.Movie.HeaderEntries[HeaderKeys.Pal] = pal.ToString();
// bit 2: Japan
bool japan = ((flags >> 2) & 0x1) != 0;
@ -80,14 +80,14 @@ namespace BizHawk.Client.Common.movie.import
isGameGear = false;
}
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "SMS"; // System Id is still SMS even if game gear
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "SMS"; // System Id is still SMS even if game gear
// bits 4-31: unused
r.ReadBytes(3);
// 0064-00e3: string: rom name (ASCII)
string gameName = NullTerminated(new string(r.ReadChars(128)));
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = gameName;
Result.Movie.HeaderEntries[HeaderKeys.GameName] = gameName;
// 00e4-00f3: binary: rom MD5 digest
byte[] md5 = r.ReadBytes(16);

View File

@ -9,7 +9,7 @@ namespace BizHawk.Client.Common
{
protected override void RunImport()
{
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "PSX";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "PSX";
using var fs = SourceFile.OpenRead();
using var br = new BinaryReader(fs);
@ -56,7 +56,7 @@ namespace BizHawk.Client.Common
if ((flags & 0x04) != 0)
{
movie.HeaderEntries[HeaderKeys.PAL] = "1";
movie.HeaderEntries[HeaderKeys.Pal] = "1";
}
if ((flags & 0x08) != 0)
@ -145,7 +145,7 @@ namespace BizHawk.Client.Common
info.FrameCount = br.ReadUInt32();
uint rerecordCount = br.ReadUInt32();
movie.HeaderEntries[HeaderKeys.RERECORDS] = rerecordCount.ToString();
movie.HeaderEntries[HeaderKeys.Rerecords] = rerecordCount.ToString();
// 018: UInt32 savestateOffset
// 01C: UInt32 memoryCard1Offset
@ -162,7 +162,7 @@ namespace BizHawk.Client.Common
uint authorNameLength = br.ReadUInt32();
char[] authorName = br.ReadChars((int)authorNameLength);
movie.HeaderEntries[HeaderKeys.AUTHOR] = new string(authorName);
movie.HeaderEntries[HeaderKeys.Author] = new string(authorName);
info.ParseSuccessful = true;
return info;

View File

@ -15,7 +15,7 @@ namespace BizHawk.Client.Common.Movie.Import
protected override void RunImport()
{
var movie = Result.Movie;
movie.HeaderEntries[HeaderKeys.PLATFORM] = "PSX";
movie.HeaderEntries[HeaderKeys.Platform] = "PSX";
using var fs = SourceFile.OpenRead();
using var br = new BinaryReader(fs);

View File

@ -17,7 +17,7 @@ namespace BizHawk.Client.Common.movie.import
protected override void RunImport()
{
var bsnesName = ((CoreAttribute)Attribute.GetCustomAttribute(typeof(LibsnesCore), typeof(CoreAttribute))).CoreName;
Result.Movie.HeaderEntries[HeaderKeys.CORE] = bsnesName;
Result.Movie.HeaderEntries[HeaderKeys.Core] = bsnesName;
using var fs = SourceFile.Open(FileMode.Open, FileAccess.Read);
using var r = new BinaryReader(fs);
@ -30,7 +30,7 @@ namespace BizHawk.Client.Common.movie.import
return;
}
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "SNES";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "SNES";
// 004 4-byte little-endian unsigned int: version number
uint versionNumber = r.ReadUInt32();
@ -116,7 +116,7 @@ namespace BizHawk.Client.Common.movie.import
// bit 1: if "0", movie is NTSC (60 fps); if "1", movie is PAL (50 fps)
bool pal = ((movieFlags >> 1) & 0x1) != 0;
Result.Movie.HeaderEntries[HeaderKeys.PAL] = pal.ToString();
Result.Movie.HeaderEntries[HeaderKeys.Pal] = pal.ToString();
// other: reserved, set to 0
/*
@ -185,7 +185,7 @@ namespace BizHawk.Client.Common.movie.import
string author = NullTerminated(Encoding.Unicode.GetString(metadata).Trim());
if (!string.IsNullOrWhiteSpace(author))
{
Result.Movie.HeaderEntries[HeaderKeys.AUTHOR] = author;
Result.Movie.HeaderEntries[HeaderKeys.Author] = author;
}
if (extraRomInfo == 30)
@ -197,7 +197,7 @@ namespace BizHawk.Client.Common.movie.import
// the game name copied from the ROM, truncated to 23 bytes (the game name in the ROM is 21 bytes)
string gameName = NullTerminated(Encoding.UTF8.GetString(r.ReadBytes(23)));
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = gameName;
Result.Movie.HeaderEntries[HeaderKeys.GameName] = gameName;
}
SimpleController controllers = new SimpleController

View File

@ -113,7 +113,7 @@ namespace BizHawk.Client.Common.movie.import
{
platform = "GBA";
var mGBAName = ((CoreAttribute)Attribute.GetCustomAttribute(typeof(MGBAHawk), typeof(CoreAttribute))).CoreName;
Result.Movie.HeaderEntries[HeaderKeys.CORE] = mGBAName;
Result.Movie.HeaderEntries[HeaderKeys.Core] = mGBAName;
}
if (isGBC)
@ -126,7 +126,7 @@ namespace BizHawk.Client.Common.movie.import
Result.Errors.Add("SGB imports are not currently supported");
}
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = platform;
Result.Movie.HeaderEntries[HeaderKeys.Platform] = platform;
// 017 1-byte flags: (values of some boolean emulator options)
flags = r.ReadByte();
@ -154,7 +154,7 @@ namespace BizHawk.Client.Common.movie.import
null-terminated (ASCII?)
*/
string gameName = NullTerminated(new string(r.ReadChars(12)));
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = gameName;
Result.Movie.HeaderEntries[HeaderKeys.GameName] = gameName;
// 030 1-byte unsigned char: minor version/revision number of current VBM version, the latest is "1"
byte minorVersion = r.ReadByte();
@ -192,7 +192,7 @@ namespace BizHawk.Client.Common.movie.import
// After the header is 192 bytes of text. The first 64 of these 192 bytes are for the author's name (or names).
string author = NullTerminated(new string(r.ReadChars(64)));
Result.Movie.HeaderEntries[HeaderKeys.AUTHOR] = author;
Result.Movie.HeaderEntries[HeaderKeys.Author] = author;
// The following 128 bytes are for a description of the movie. Both parts must be null-terminated.
string movieDescription = NullTerminated(new string(r.ReadChars(128)));

View File

@ -13,7 +13,7 @@ namespace BizHawk.Client.Common.movie.import
{
protected override void RunImport()
{
Result.Movie.HeaderEntries[HeaderKeys.PLATFORM] = "SAT";
Result.Movie.HeaderEntries[HeaderKeys.Platform] = "SAT";
var ss = new Saturnus.SyncSettings
{
Port1 = SaturnusControllerDeck.Device.Gamepad,
@ -44,7 +44,7 @@ namespace BizHawk.Client.Common.movie.import
}
else if (line.ToLower().StartsWith("cdGameName"))
{
Result.Movie.HeaderEntries[HeaderKeys.GAMENAME] = ParseHeader(line, "romFilename");
Result.Movie.HeaderEntries[HeaderKeys.GameName] = ParseHeader(line, "romFilename");
}
else if (line.ToLower().StartsWith("rerecordcount"))
{
@ -73,7 +73,7 @@ namespace BizHawk.Client.Common.movie.import
else if (line.ToLower().StartsWith("ispal"))
{
bool pal = ParseHeader(line, "isPal") == "1";
Result.Movie.HeaderEntries[HeaderKeys.PAL] = pal.ToString();
Result.Movie.HeaderEntries[HeaderKeys.Pal] = pal.ToString();
}
else
{

View File

@ -10,11 +10,11 @@ namespace BizHawk.Client.Common
Comments = new List<string>();
Subtitles = new SubtitleList();
this[HeaderKeys.EMULATIONVERSION] = VersionInfo.GetEmuVersion();
this[HeaderKeys.PLATFORM] = Global.Emulator != null ? Global.Emulator.SystemId : "";
this[HeaderKeys.GAMENAME] = "";
this[HeaderKeys.AUTHOR] = "";
this[HeaderKeys.RERECORDS] = "0";
this[HeaderKeys.EmulationVersion] = VersionInfo.GetEmuVersion();
this[HeaderKeys.Platform] = Global.Emulator != null ? Global.Emulator.SystemId : "";
this[HeaderKeys.GameName] = "";
this[HeaderKeys.Author] = "";
this[HeaderKeys.Rerecords] = "0";
}
public List<string> Comments { get; }
@ -22,18 +22,18 @@ namespace BizHawk.Client.Common
public string SavestateBinaryBase64Blob
{
get => ContainsKey(HeaderKeys.SAVESTATEBINARYBASE64BLOB)
? this[HeaderKeys.SAVESTATEBINARYBASE64BLOB]
get => ContainsKey(HeaderKeys.SavestateBinaryBase64Blob)
? this[HeaderKeys.SavestateBinaryBase64Blob]
: null;
set
{
if (value == null)
{
Remove(HeaderKeys.SAVESTATEBINARYBASE64BLOB);
Remove(HeaderKeys.SavestateBinaryBase64Blob);
}
else
{
Add(HeaderKeys.SAVESTATEBINARYBASE64BLOB, value);
Add(HeaderKeys.SavestateBinaryBase64Blob, value);
}
}
}

View File

@ -11,7 +11,7 @@ namespace BizHawk.Client.Common
public BkmMovie()
{
Header = new BkmHeader { [HeaderKeys.MOVIEVERSION] = "BizHawk v0.0.1" };
Header = new BkmHeader { [HeaderKeys.MovieVersion] = "BizHawk v0.0.1" };
}
public string PreferredExtension => "bkm";
@ -76,8 +76,8 @@ namespace BizHawk.Client.Common
public string SyncSettingsJson
{
get => Header[HeaderKeys.SYNCSETTINGS];
set => Header[HeaderKeys.SYNCSETTINGS] = value;
get => Header[HeaderKeys.SyncSettings];
set => Header[HeaderKeys.SyncSettings] = value;
}
public string TextSavestate { get; set; }

View File

@ -56,7 +56,7 @@ namespace BizHawk.Client.Common
ChangeLog = new TasMovieChangeLog(this);
TasStateManager = new TasStateManager(this, Global.Config.DefaultTasStateManagerSettings);
Session = new TasSession();
Header[HeaderKeys.MOVIEVERSION] = "BizHawk v2.0 Tasproj v1.0";
Header[HeaderKeys.MovieVersion] = "BizHawk v2.0 Tasproj v1.0";
Markers = new TasMovieMarkerList(this);
Markers.CollectionChanged += Markers_CollectionChanged;
Markers.Add(0, startsFromSavestate ? "Savestate" : "Power on");

View File

@ -214,9 +214,9 @@ namespace BizHawk.Client.EmuHawk
}
// Fetch fps
var system = _selectedMovie.HeaderEntries[HeaderKeys.PLATFORM];
var pal = _selectedMovie.HeaderEntries.ContainsKey(HeaderKeys.PAL)
&& _selectedMovie.HeaderEntries[HeaderKeys.PAL] == "1";
var system = _selectedMovie.HeaderEntries[HeaderKeys.Platform];
var pal = _selectedMovie.HeaderEntries.ContainsKey(HeaderKeys.Pal)
&& _selectedMovie.HeaderEntries[HeaderKeys.Pal] == "1";
var pfr = new PlatformFrameRates();
double fps;

View File

@ -410,20 +410,20 @@ namespace BizHawk.Client.EmuHawk
switch (kvp.Key)
{
case HeaderKeys.SHA1:
case HeaderKeys.Sha1:
if (kvp.Value != _game.Hash)
{
item.BackColor = Color.Pink;
toolTip1.SetToolTip(DetailsView, $"Current SHA1: {_game.Hash}");
}
break;
case HeaderKeys.EMULATIONVERSION:
case HeaderKeys.EmulationVersion:
if (kvp.Value != VersionInfo.GetEmuVersion())
{
item.BackColor = Color.Yellow;
}
break;
case HeaderKeys.PLATFORM:
case HeaderKeys.Platform:
// feos: previously it was compared against _game.System, but when the movie is created
// its platform is copied from _emulator.SystemId, see PopulateWithDefaultHeaderValues()
// the problem is that for GameGear and SG100, those mismatch, resulting in false positive here
@ -453,9 +453,9 @@ namespace BizHawk.Client.EmuHawk
public double Fps(IMovie movie)
{
var system = movie.HeaderEntries[HeaderKeys.PLATFORM];
var pal = movie.HeaderEntries.ContainsKey(HeaderKeys.PAL)
&& movie.HeaderEntries[HeaderKeys.PAL] == "1";
var system = movie.HeaderEntries[HeaderKeys.Platform];
var pal = movie.HeaderEntries.ContainsKey(HeaderKeys.Pal)
&& movie.HeaderEntries[HeaderKeys.Pal] == "1";
return new PlatformFrameRates()[system, pal];