diff --git a/ultramodern/src/pfs.cpp b/ultramodern/src/pfs.cpp index f76741f..6ba363d 100644 --- a/ultramodern/src/pfs.cpp +++ b/ultramodern/src/pfs.cpp @@ -227,7 +227,7 @@ extern "C" s32 osPfsDeleteFile(RDRAM_ARG PTR(OSPfs) pfs_, u16 company_code, u32 return PFS_ERR_INVALID; } -extern "C" s32 osPfsReadWriteFile(RDRAM_ARG PTR(OSPfs) pfs_, s32 file_no, u8 flag, int offset, int size_in_bytes, u8* data_buffer) { +extern "C" s32 osPfsReadWriteFile(RDRAM_ARG PTR(OSPfs) pfs_, s32 file_no, u8 flag, int offset, int nbytes, u8* data_buffer) { pfs_state_t pak; const auto filename = pfs_file_path(file_no); @@ -243,15 +243,12 @@ extern "C" s32 osPfsReadWriteFile(RDRAM_ARG PTR(OSPfs) pfs_, s32 file_no, u8 fla return PFS_ERR_INVALID; } - std::vector swap_buffer(size_in_bytes); - if (flag == 0) { + if (flag == PFS_READ) { pak.file.seekg(offset, std::ios::beg); - pak.file.read((char*)swap_buffer.data(), size_in_bytes); - ByteSwapCopy(data_buffer, swap_buffer.data(), size_in_bytes); + pak.file.read((char*)data_buffer, nbytes); } else { - ByteSwapCopy(swap_buffer.data(), data_buffer, size_in_bytes); pak.file.seekp(offset, std::ios::beg); - pak.file.write((char*)swap_buffer.data(), size_in_bytes); + pak.file.write((const char*)data_buffer, nbytes); } pak.file.close(); diff --git a/ultramodern/src/pfs.hpp b/ultramodern/src/pfs.hpp index 46891c2..5a83fea 100644 --- a/ultramodern/src/pfs.hpp +++ b/ultramodern/src/pfs.hpp @@ -105,27 +105,5 @@ void pfs_header_read(pfs_header_t& hdr, u8 file_index) { pak.header.close(); } -void Pfs_ByteSwapFile(u8* buffer, size_t size) { - uint8_t c0, c1, c2, c3; - - for (size_t i = 0; i < size; i += 4) { - c0 = buffer[i + 0]; - c1 = buffer[i + 1]; - c2 = buffer[i + 2]; - c3 = buffer[i + 3]; - - buffer[i + 3] = c0; - buffer[i + 2] = c1; - buffer[i + 1] = c2; - buffer[i + 0] = c3; - } -} - -void ByteSwapCopy(uint8_t* dst, const uint8_t* src, size_t nbytes) { - for (size_t i = 0; i < nbytes; i++) { - dst[i] = src[i ^ 3]; - } -} - #endif // __ULTRAMODERN_PFS_HPP__