From 3eeeea564cd5446d3692c16af8c0d19ec674d127 Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Mon, 15 Feb 2021 23:07:56 +0300 Subject: FDS disk info block fix --- FdsBlockDiskInfo.cs | 11 +++++------ NesFile.cs | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/FdsBlockDiskInfo.cs b/FdsBlockDiskInfo.cs index 447e51a..3bdb0e8 100644 --- a/FdsBlockDiskInfo.cs +++ b/FdsBlockDiskInfo.cs @@ -205,13 +205,12 @@ namespace com.clusterrr.Famicom.Containers [MarshalAs(UnmanagedType.U1)] // Raw byte: $00. Speculative: Location/site? byte unknown08 = 0x00; - [MarshalAs(UnmanagedType.U1)] - // Raw byte: $00 - byte unknown09 = 0x00; - [MarshalAs(UnmanagedType.U1)] - // Raw byte: $02 + [MarshalAs(UnmanagedType.U2)] + // Raw bytes: $00 $02 + ushort unknown09 = 0x0200; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] // Speculative: some kind of game information representation? - byte unknown10 = 0x02; + byte[] unknown10; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] byte[] rewrittenDate; diff --git a/NesFile.cs b/NesFile.cs index 861d87e..4c2fcb4 100644 --- a/NesFile.cs +++ b/NesFile.cs @@ -822,7 +822,7 @@ namespace com.clusterrr.Famicom.Containers header[8] |= (byte)(Submapper << 4); var prgRamBitSize = GetBitSize((int)PrgRamSize); var prgNvRamBitSize = GetBitSize((int)PrgNvRamSize); - // PRG-RAM (volatile) shift count + // PRG RAM (volatile) shift count header[10] |= (byte)(Math.Max(prgRamBitSize - 7, 0) & 0x0F); // PRG-NVRAM/EEPROM (non-volatile) shift count header[10] |= (byte)((Math.Max(prgNvRamBitSize - 7, 0) << 4) & 0xF0); -- cgit v1.2.3