diff --git a/include/MetroidPrime/CMemoryCardDriver.hpp b/include/MetroidPrime/CMemoryCardDriver.hpp index af31b12b..05b32fdd 100644 --- a/include/MetroidPrime/CMemoryCardDriver.hpp +++ b/include/MetroidPrime/CMemoryCardDriver.hpp @@ -110,8 +110,8 @@ private: CAssetId xc_saveIcon1; EState x10_state; EError x14_error; - int x18_cardFreeBytes; - int x1c_cardFreeFiles; + uint x18_cardFreeBytes; + uint x1c_cardFreeFiles; uint x20_fileTime; long long x28_cardSerial; rstl::reserved_vector< u8, 174 > x30_systemData; diff --git a/src/MetroidPrime/CMemoryCardDriver.cpp b/src/MetroidPrime/CMemoryCardDriver.cpp index 731f9e9c..3e706c28 100644 --- a/src/MetroidPrime/CMemoryCardDriver.cpp +++ b/src/MetroidPrime/CMemoryCardDriver.cpp @@ -431,7 +431,12 @@ void CMemoryCardDriver::ClearError() { x14_error = kE_OK; } -void CMemoryCardDriver::CheckCardCapacity() {} +void CMemoryCardDriver::CheckCardCapacity() { + if (x18_cardFreeBytes >= 0x2000 && x1c_cardFreeFiles >= 1) { + return; + } + x14_error = kE_CardStillFull; +} void CMemoryCardDriver::NoCardFound() {}