Add YATF ImHex pattern and add libpixel submodule
This commit is contained in:
parent
62862d832f
commit
7fd4c470af
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "third_party/libpixel"]
|
||||||
|
path = third_party/libpixel
|
||||||
|
url = https://github.com/modeco80/libpixel.git
|
|
@ -1,3 +1,10 @@
|
||||||
|
//
|
||||||
|
// EuropaTools
|
||||||
|
//
|
||||||
|
// (C) 2021-2022 modeco80 <lily.modeco80@protonmail.ch>
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
//
|
||||||
|
|
||||||
#pragma endian little
|
#pragma endian little
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
//
|
||||||
|
// EuropaTools
|
||||||
|
//
|
||||||
|
// (C) 2021-2022 modeco80 <lily.modeco80@protonmail.ch>
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
//
|
||||||
|
|
||||||
|
// YATF pattern
|
||||||
|
|
||||||
|
#include <std/io.pat>
|
||||||
|
#pragma endian little
|
||||||
|
|
||||||
|
namespace europa {
|
||||||
|
|
||||||
|
// YATF header.
|
||||||
|
struct TexHeader {
|
||||||
|
char magic[4]; // 'YATF'
|
||||||
|
|
||||||
|
// Flag descriptions:
|
||||||
|
//
|
||||||
|
// 0x1 - unknown? (always pressent)
|
||||||
|
// 0x30000 - direct color (no palette)
|
||||||
|
// 0x1000000 - uses alpha
|
||||||
|
u32 flags;
|
||||||
|
|
||||||
|
// Always zeroed.
|
||||||
|
u32 zero;
|
||||||
|
|
||||||
|
// these are swapped backwards
|
||||||
|
// for some reason.
|
||||||
|
u32 height;
|
||||||
|
u32 width;
|
||||||
|
};
|
||||||
|
|
||||||
|
// A YATF file.
|
||||||
|
struct TexFile {
|
||||||
|
TexHeader header;
|
||||||
|
|
||||||
|
if(header.flags & 0x1000000) {
|
||||||
|
std::print("[YATF] this YATF uses alpha?");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(header.flags & 0x30000)) {
|
||||||
|
std::print("[YATF] this YATF is palettized");
|
||||||
|
|
||||||
|
u32 palette[256];
|
||||||
|
u8 bitmap[header.width * header.height];
|
||||||
|
} else {
|
||||||
|
std::print("[YATF] this YATF is direct color");
|
||||||
|
|
||||||
|
u32 bitmap[header.width * header.height];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace europa
|
||||||
|
|
||||||
|
|
||||||
|
europa::TexFile tex @ 0x0;
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit e7be1115575317e9b80c5c1be04fa2e950badb97
|
Loading…
Reference in New Issue