diff --git a/src/Cafe/IOSU/fsa/iosu_fsa.cpp b/src/Cafe/IOSU/fsa/iosu_fsa.cpp index aa2ad553..0f0b9fe0 100644 --- a/src/Cafe/IOSU/fsa/iosu_fsa.cpp +++ b/src/Cafe/IOSU/fsa/iosu_fsa.cpp @@ -609,7 +609,10 @@ namespace iosu #ifndef PUBLIC_RELEASE cemuLog_force("FSAProcessCmd_appendFile(): size 0x{:08x} count 0x{:08x} (todo)\n", _swapEndianU32(cmd->cmdAppendFile.size), _swapEndianU32(cmd->cmdAppendFile.count)); #endif - return _swapEndianU32(cmd->cmdAppendFile.size) * _swapEndianU32(cmd->cmdAppendFile.count); + MPTR destOffset = _swapEndianU32(cmd->cmdDefault.destBufferMPTR); + void* destPtr = memory_getPointerFromVirtualOffset(destOffset); + fsc_setFileSeek(fscFile, fsc_getFileSize(fscFile)); + return fsc_writeFile(fscFile, destPtr, cmd->cmdAppendFile.count); } FSStatus FSAProcessCmd_truncateFile(FSAClient* client, FSAIpcCommand* cmd) diff --git a/src/Cafe/OS/libs/coreinit/coreinit_FS.cpp b/src/Cafe/OS/libs/coreinit/coreinit_FS.cpp index 1598429f..5a2a4d4e 100644 --- a/src/Cafe/OS/libs/coreinit/coreinit_FS.cpp +++ b/src/Cafe/OS/libs/coreinit/coreinit_FS.cpp @@ -83,11 +83,14 @@ namespace coreinit fsCmdBlock->data.mount_it++; // SD - if (mountSourceType == MOUNT_TYPE::SD && fsCmdBlock->data.mount_it == 1) + if (mountSourceType == MOUNT_TYPE::SD) { - mountSourceInfo->sourceType = 0; - strcpy(mountSourceInfo->path, "/sd"); - return FS_RESULT::SUCCESS; + if (fsCmdBlock->data.mount_it == 1 || fsCmdBlock->data.mount_it == 2) + { + mountSourceInfo->sourceType = 0; + strcpy(mountSourceInfo->path, "/sd"); + return FS_RESULT::SUCCESS; + } } return FS_RESULT::END_ITERATION;