ImportZMV
-Fixed the controllers used code. The docs had the reserved byte and the controller flags backwards. -Properly advanced past the savestate bytes. I was reading the wrong size.
This commit is contained in:
parent
a9bd436b23
commit
4ebca847d0
|
@ -2244,6 +2244,7 @@ namespace BizHawk.MultiClient
|
||||||
m.Header.SetHeaderLine(MovieHeader.PLATFORM, "SNES");
|
m.Header.SetHeaderLine(MovieHeader.PLATFORM, "SNES");
|
||||||
// 003 2-byte little-endian unsigned int: zsnes version number
|
// 003 2-byte little-endian unsigned int: zsnes version number
|
||||||
short version = r.ReadInt16();
|
short version = r.ReadInt16();
|
||||||
|
m.Header.Comments.Add(EMULATIONORIGIN + " ZSNES version " + version);
|
||||||
// 005 4-byte little-endian integer: CRC32 of the ROM
|
// 005 4-byte little-endian integer: CRC32 of the ROM
|
||||||
int crc32 = r.ReadInt32();
|
int crc32 = r.ReadInt32();
|
||||||
m.Header.SetHeaderLine("CRC32", crc32.ToString());
|
m.Header.SetHeaderLine("CRC32", crc32.ToString());
|
||||||
|
@ -2257,7 +2258,7 @@ namespace BizHawk.MultiClient
|
||||||
// 015 4-byte little-endian unsigned int: number of frames advanced step by step
|
// 015 4-byte little-endian unsigned int: number of frames advanced step by step
|
||||||
r.ReadBytes(4);
|
r.ReadBytes(4);
|
||||||
// 019 1-byte: average recording frames per second
|
// 019 1-byte: average recording frames per second
|
||||||
r.ReadBytes(1);
|
r.ReadByte();
|
||||||
// 01A 4-byte little-endian unsigned int: number of key combos
|
// 01A 4-byte little-endian unsigned int: number of key combos
|
||||||
r.ReadBytes(4);
|
r.ReadBytes(4);
|
||||||
// 01E 2-byte little-endian unsigned int: number of internal chapters
|
// 01E 2-byte little-endian unsigned int: number of internal chapters
|
||||||
|
@ -2265,9 +2266,11 @@ namespace BizHawk.MultiClient
|
||||||
// 020 2-byte little-endian unsigned int: length of the author name field in bytes
|
// 020 2-byte little-endian unsigned int: length of the author name field in bytes
|
||||||
ushort authorSize = r.ReadUInt16();
|
ushort authorSize = r.ReadUInt16();
|
||||||
// 022 3-byte little-endian unsigned int: size of an uncompressed save state in bytes
|
// 022 3-byte little-endian unsigned int: size of an uncompressed save state in bytes
|
||||||
uint savestateSize = (uint)(r.ReadByte() | (r.ReadByte() << 8) | (r.ReadByte() << 16));
|
r.ReadBytes(3);
|
||||||
|
// 025 1-byte: reserved
|
||||||
|
r.ReadByte();
|
||||||
/*
|
/*
|
||||||
025 1-byte flags: initial input configuration
|
026 1-byte flags: initial input configuration
|
||||||
bit 7: first input enabled
|
bit 7: first input enabled
|
||||||
bit 6: second input enabled
|
bit 6: second input enabled
|
||||||
bit 5: third input enabled
|
bit 5: third input enabled
|
||||||
|
@ -2294,8 +2297,6 @@ namespace BizHawk.MultiClient
|
||||||
controllersUsed[controllersUsed.Length - controller] = (
|
controllersUsed[controllersUsed.Length - controller] = (
|
||||||
((controllerFlags >> (controller - 1)) & 0x1) != 0
|
((controllerFlags >> (controller - 1)) & 0x1) != 0
|
||||||
);
|
);
|
||||||
// 026 1-byte: reserved
|
|
||||||
r.ReadByte();
|
|
||||||
// 027 1-byte flags:
|
// 027 1-byte flags:
|
||||||
byte movieFlags = r.ReadByte();
|
byte movieFlags = r.ReadByte();
|
||||||
byte begins = (byte)(movieFlags & 0xC0);
|
byte begins = (byte)(movieFlags & 0xC0);
|
||||||
|
@ -2328,7 +2329,7 @@ namespace BizHawk.MultiClient
|
||||||
028 3-byte little-endian unsigned int: initial save state size, highest bit specifies compression, next 23
|
028 3-byte little-endian unsigned int: initial save state size, highest bit specifies compression, next 23
|
||||||
specifies size
|
specifies size
|
||||||
*/
|
*/
|
||||||
r.ReadBytes(3);
|
uint savestateSize = (uint)(r.ReadByte() | (r.ReadByte() << 8) | ((r.ReadByte() << 16) & 0x80));
|
||||||
// Next follows a ZST format savestate.
|
// Next follows a ZST format savestate.
|
||||||
r.ReadBytes((int)savestateSize);
|
r.ReadBytes((int)savestateSize);
|
||||||
return m;
|
return m;
|
||||||
|
|
Loading…
Reference in New Issue