mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 23:47:42 +00:00
Memory card bug fixes
This commit is contained in:
@@ -13,7 +13,7 @@ namespace urde
|
||||
using CInputStream = athena::io::IStreamReader;
|
||||
using COutputStream = athena::io::IStreamWriter;
|
||||
|
||||
struct CBitStreamReader : athena::io::MemoryCopyReader
|
||||
struct CBitStreamReader : athena::io::MemoryReader
|
||||
{
|
||||
u32 x1c_val = 0;
|
||||
u32 x20_bitOffset = 0;
|
||||
@@ -31,26 +31,21 @@ public:
|
||||
}
|
||||
|
||||
CBitStreamReader(const void* data, atUint64 length)
|
||||
: MemoryCopyReader(data, length)
|
||||
{
|
||||
}
|
||||
|
||||
CBitStreamReader(const std::string& filename)
|
||||
: MemoryCopyReader(filename)
|
||||
: MemoryReader(data, length)
|
||||
{
|
||||
}
|
||||
|
||||
atUint64 readUBytesToBuf(void *buf, atUint64 len)
|
||||
{
|
||||
x20_bitOffset = 0;
|
||||
atUint64 tmp = MemoryCopyReader::readUBytesToBuf(buf, len);
|
||||
atUint64 tmp = MemoryReader::readUBytesToBuf(buf, len);
|
||||
return tmp;
|
||||
}
|
||||
|
||||
s32 ReadEncoded(u32 key);
|
||||
};
|
||||
|
||||
class CBitStreamWriter : public athena::io::MemoryCopyWriter
|
||||
class CBitStreamWriter : public athena::io::MemoryWriter
|
||||
{
|
||||
private:
|
||||
u32 x14_val = 0;
|
||||
@@ -59,21 +54,21 @@ public:
|
||||
static inline u32 GetBitCount(u32 maxVal) { return CBitStreamReader::GetBitCount(maxVal); }
|
||||
|
||||
CBitStreamWriter(atUint8* data = nullptr, atUint64 length=0x10)
|
||||
: MemoryCopyWriter(data, length)
|
||||
{}
|
||||
|
||||
CBitStreamWriter(const std::string& filename)
|
||||
: MemoryCopyWriter(filename)
|
||||
: MemoryWriter(data, length)
|
||||
{}
|
||||
|
||||
void writeUBytes(const atUint8 *data, atUint64 len)
|
||||
{
|
||||
x14_val = 0;
|
||||
x18_bitOffset = 0x20;
|
||||
MemoryCopyWriter::writeUBytes(data, len);
|
||||
MemoryWriter::writeUBytes(data, len);
|
||||
}
|
||||
|
||||
void WriteEncoded(u32 val, u32 bitCount);
|
||||
|
||||
void Flush();
|
||||
|
||||
~CBitStreamWriter() { Flush(); }
|
||||
};
|
||||
|
||||
using CMemoryInStream = athena::io::MemoryReader;
|
||||
|
||||
Reference in New Issue
Block a user