diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp b/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp index bf42643d04..a88bf9ad12 100644 --- a/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp +++ b/Source/Core/Core/HW/GCMemcard/GCMemcard.cpp @@ -677,8 +677,7 @@ u32 GCMemcard::ImportFile(const DEntry& direntry, std::vector& saveBlo } // find first free data block - u16 firstBlock = - CurrentBat->NextFreeBlock(maxBlock, BE16(CurrentBat->m_last_allocated_block)); + u16 firstBlock = CurrentBat->NextFreeBlock(maxBlock, CurrentBat->m_last_allocated_block); if (firstBlock == 0xFFFF) return OUTOFBLOCKS; Directory UpdatedDir = *CurrentDir; @@ -725,7 +724,7 @@ u32 GCMemcard::ImportFile(const DEntry& direntry, std::vector& saveBlo else nextBlock = UpdatedBat.NextFreeBlock(maxBlock, firstBlock + 1); UpdatedBat.m_map[firstBlock - MC_FST_BLOCKS] = BE16(nextBlock); - UpdatedBat.m_last_allocated_block = BE16(firstBlock); + UpdatedBat.m_last_allocated_block = firstBlock; firstBlock = nextBlock; } diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcard.h b/Source/Core/Core/HW/GCMemcard/GCMemcard.h index 0498f1c448..026e3a43e6 100644 --- a/Source/Core/Core/HW/GCMemcard/GCMemcard.h +++ b/Source/Core/Core/HW/GCMemcard/GCMemcard.h @@ -253,12 +253,12 @@ static_assert(sizeof(Directory) == BLOCK_SIZE); struct BlockAlloc { - u16 m_checksum; // 0x0000 2 Additive Checksum - u16 m_checksum_inv; // 0x0002 2 Inverse Checksum - Common::BigEndianValue m_update_counter; // 0x0004 2 Update Counter - Common::BigEndianValue m_free_blocks; // 0x0006 2 Free Blocks - u16 m_last_allocated_block; // 0x0008 2 Last allocated Block - u16 m_map[BAT_SIZE]; // 0x000a 0x1ff8 Map of allocated Blocks + u16 m_checksum; // 0x0000 2 Additive Checksum + u16 m_checksum_inv; // 0x0002 2 Inverse Checksum + Common::BigEndianValue m_update_counter; // 0x0004 2 Update Counter + Common::BigEndianValue m_free_blocks; // 0x0006 2 Free Blocks + Common::BigEndianValue m_last_allocated_block; // 0x0008 2 Last allocated Block + u16 m_map[BAT_SIZE]; // 0x000a 0x1ff8 Map of allocated Blocks u16 GetNextBlock(u16 Block) const; u16 NextFreeBlock(u16 MaxBlock, u16 StartingBlock = MC_FST_BLOCKS) const; bool ClearBlocks(u16 StartingBlock, u16 Length); @@ -270,12 +270,12 @@ struct BlockAlloc { memset(this, 0, BLOCK_SIZE); m_free_blocks = (sizeMb * MBIT_TO_BLOCKS) - MC_FST_BLOCKS; - m_last_allocated_block = BE16(4); + m_last_allocated_block = 4; fixChecksums(); } u16 AssignBlocksContiguous(u16 length) { - u16 starting = BE16(m_last_allocated_block) + 1; + u16 starting = m_last_allocated_block + 1; if (length > m_free_blocks) return 0xFFFF; u16 current = starting; @@ -285,7 +285,7 @@ struct BlockAlloc current++; } m_map[current - 5] = 0xFFFF; - m_last_allocated_block = BE16(current); + m_last_allocated_block = current; m_free_blocks = m_free_blocks - length; fixChecksums(); return starting;