diff --git a/asm/Kyoto/DolphinCMemoryCardSys.s b/asm/Kyoto/DolphinCMemoryCardSys.s index 4435b232..e62c546e 100644 --- a/asm/Kyoto/DolphinCMemoryCardSys.s +++ b/asm/Kyoto/DolphinCMemoryCardSys.s @@ -970,8 +970,8 @@ lbl_8034E0F0: /* 8034E100 0034B060 38 21 00 30 */ addi r1, r1, 0x30 /* 8034E104 0034B064 4E 80 00 20 */ blr -.global LockBannerToken__13CCardFileInfoFiR11CSimplePool -LockBannerToken__13CCardFileInfoFiR11CSimplePool: +.global LockBannerToken__13CCardFileInfoFUiR11CSimplePool +LockBannerToken__13CCardFileInfoFUiR11CSimplePool: /* 8034E108 0034B068 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8034E10C 0034B06C 7C 08 02 A6 */ mflr r0 /* 8034E110 0034B070 90 01 00 34 */ stw r0, 0x34(r1) diff --git a/asm/MetroidPrime/CMemoryCardDriver.s b/asm/MetroidPrime/CMemoryCardDriver.s index 9fc867d4..fb64d66d 100644 --- a/asm/MetroidPrime/CMemoryCardDriver.s +++ b/asm/MetroidPrime/CMemoryCardDriver.s @@ -1258,7 +1258,7 @@ InitializeFileInfo__17CMemoryCardDriverFv: /* 8024D2B8 0024A218 80 9E 00 04 */ lwz r4, 4(r30) /* 8024D2BC 0024A21C 7F E3 FB 78 */ mr r3, r31 /* 8024D2C0 0024A220 80 AD A0 64 */ lwz r5, gpSimplePool@sda21(r13) -/* 8024D2C4 0024A224 48 10 0E 45 */ bl LockBannerToken__13CCardFileInfoFiR11CSimplePool +/* 8024D2C4 0024A224 48 10 0E 45 */ bl LockBannerToken__13CCardFileInfoFUiR11CSimplePool /* 8024D2C8 0024A228 80 9E 00 08 */ lwz r4, 8(r30) /* 8024D2CC 0024A22C 7F E3 FB 78 */ mr r3, r31 /* 8024D2D0 0024A230 80 CD A0 64 */ lwz r6, gpSimplePool@sda21(r13) diff --git a/include/rstl/string.hpp b/include/rstl/string.hpp index 9e64308d..48f5a53a 100644 --- a/include/rstl/string.hpp +++ b/include/rstl/string.hpp @@ -95,6 +95,7 @@ public: basic_string& operator=(const basic_string&); basic_string operator+(const basic_string&); + basic_string operator+(const _CharTp*); const char* data() const { return x0_ptr; } }; diff --git a/src/MetroidPrime/CMemoryCardDriver.cpp b/src/MetroidPrime/CMemoryCardDriver.cpp index 5805083b..2fb159f3 100644 --- a/src/MetroidPrime/CMemoryCardDriver.cpp +++ b/src/MetroidPrime/CMemoryCardDriver.cpp @@ -645,8 +645,11 @@ void CMemoryCardDriver::StartCardFormat() { } void CMemoryCardDriver::InitializeFileInfo() { + CCardFileInfo& fileInfo = *x198_fileInfo; ExportPersistentOptions(); + const char nameConstant[33] = "Metroid Prime "; + OSCalendarTime time; OSTicksToCalendarTime(OSGetTime(), &time); @@ -655,12 +658,10 @@ void CMemoryCardDriver::InitializeFileInfo() { sprintf(nameBuffer, "%02d.%02d.%02d %02d:%02d", time.x10_mon + 1, time.xc_mday, time.x14_year % 100, time.x8_hour, time.x4_min); - x198_fileInfo->SetComment(rstl::string_l("Metroid Prime ") + nameBuffer); - - x198_fileInfo->LockBannerToken(x4_saveBanner, *gpSimplePool); - x198_fileInfo->LockIconToken(x8_saveIcon0, 2, *gpSimplePool); - - CMemoryStreamOut w = x198_fileInfo->BeginMemoryOut(3004); + fileInfo.SetComment(rstl::string_l(nameConstant) + nameBuffer); + fileInfo.LockBannerToken(x4_saveBanner, *gpSimplePool); + fileInfo.LockIconToken(x8_saveIcon0, 2, *gpSimplePool); + CMemoryStreamOut w = fileInfo.BeginMemoryOut(3004); SSaveHeader header(0); for (int i = 0; i < xe4_fileSlots.capacity(); ++i) {