ut_binaryFileFormat Matching

This commit is contained in:
elijah-thomas774
2024-05-04 20:35:32 -04:00
parent 1ecdfe9a4d
commit 93a9b77d42
5 changed files with 34 additions and 3 deletions
+3
View File
@@ -170,6 +170,9 @@ rvl/CX/cx.c:
nw4r/ut/ut_list.cpp:
.text start:0x8042A530 end:0x8042A850
nw4r/ut/ut_binaryFileFormat.cpp:
.text start:0x8042A9E0 end:0x8042AA54
nw4r/db/db_directPrint.cpp:
.text start:0x804342A0 end:0x80434E9C
.rodata start:0x804F5D28 end:0x804F5FDC
+1 -1
View File
@@ -23939,7 +23939,7 @@ fn_8042A8E0 = .text:0x8042A8E0; // type:function size:0x48
fn_8042A930 = .text:0x8042A930; // type:function size:0x44
fn_8042A980 = .text:0x8042A980; // type:function size:0x2C
fn_8042A9B0 = .text:0x8042A9B0; // type:function size:0x30
fn_8042A9E0 = .text:0x8042A9E0; // type:function size:0x74
IsValidBinaryFile__Q24nw4r2utFPCQ34nw4r2ut16BinaryFileHeaderUlUsUs = .text:0x8042A9E0; // type:function size:0x74
fn_8042AA60 = .text:0x8042AA60; // type:function size:0x78
fn_8042AAE0 = .text:0x8042AAE0; // type:function size:0x1C
fn_8042AB00 = .text:0x8042AB00; // type:function size:0x1C
+1
View File
@@ -318,6 +318,7 @@ config.libs = [
"ut",
[
Object(Matching, "nw4r/ut/ut_list.cpp"),
Object(Matching, "nw4r/ut/ut_binaryFileFormat.cpp"),
],
),
# EGG
+1 -2
View File
@@ -19,8 +19,7 @@ struct BinaryFileHeader {
u16 numBlocks; // at 0xE
};
bool IsValidBinaryFile(const BinaryFileHeader* header, u32 magic, u16 version,
u16 numBlocks);
bool IsValidBinaryFile(const BinaryFileHeader *header, unsigned long magic, u16 version, u16 numBlocks);
} // namespace ut
} // namespace nw4r
+28
View File
@@ -0,0 +1,28 @@
#include <nw4r/ut/ut_binaryFileFormat.h>
namespace nw4r {
namespace ut {
/* 8042a9e0 */
bool IsValidBinaryFile(const BinaryFileHeader *header, unsigned long magic, u16 version, u16 numBlocks) {
if (header->magic != magic) {
return false;
}
if (header->byteOrder != 0xFEFF) {
return false;
}
if (header->version != version) {
return false;
}
if (header->fileSize < (numBlocks * sizeof(BinaryBlockHeader) + sizeof(BinaryFileHeader))) {
return false;
}
if (header->numBlocks < numBlocks) {
return false;
}
return true;
}
} // namespace ut
} // namespace nw4r