Merge pull request #22 from elijah-thomas774/ut_binaryFileFormat

ut_binaryFileFormat
This commit is contained in:
Elijah Thomas
2024-05-04 20:39:58 -04:00
committed by GitHub
5 changed files with 34 additions and 3 deletions
+3
View File
@@ -173,6 +173,9 @@ nw4r/ut/ut_list.cpp:
nw4r/ut/ut_LinkList.cpp:
.text start:0x8042A850 end:0x8042A9E0
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 @@ Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
Clear__Q44nw4r2ut6detail12LinkListImplFv = .text:0x8042A930; // type:function size:0x44
Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode = .text:0x8042A980; // type:function size:0x2C
Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode = .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
@@ -319,6 +319,7 @@ config.libs = [
[
Object(Matching, "nw4r/ut/ut_list.cpp"),
Object(Matching, "nw4r/ut/ut_LinkList.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