2023-11-19 20:21:56 -05:00
|
|
|
// Copyright 2023 The LightningBolt Authors
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
2023-11-19 20:14:08 -05:00
|
|
|
struct BoltHdr {
|
|
|
|
char magic[6]; // BOLT\r\n
|
|
|
|
|
|
|
|
// have no idea what these are yet
|
|
|
|
u8 unk2;
|
|
|
|
u8 unk3;
|
|
|
|
|
|
|
|
// or these, they don't seem to be
|
|
|
|
// directly referenced by bolt stuff
|
|
|
|
u8 unk5;
|
|
|
|
u8 unk6;
|
|
|
|
u8 unk7;
|
|
|
|
|
|
|
|
u8 groupCount;
|
|
|
|
|
|
|
|
// in bytes
|
|
|
|
u32 libSize;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct BoltGroupEnt {
|
|
|
|
u32 unk;
|
|
|
|
u32 fileSize;
|
|
|
|
u32 fileOffset;
|
|
|
|
u32 unk3;
|
|
|
|
|
|
|
|
u8 fileData[4] @ fileOffset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct BoltGroupDesc {
|
|
|
|
// flags?
|
|
|
|
u8 unk;
|
|
|
|
u8 unk2;
|
|
|
|
u8 unk3;
|
|
|
|
u8 groupEntCount;
|
|
|
|
|
|
|
|
// in bytes
|
|
|
|
u32 groupSize;
|
|
|
|
u32 groupOffset;
|
|
|
|
|
|
|
|
// ptr padding for ps2 code
|
|
|
|
u32 resolvedptr;
|
|
|
|
|
|
|
|
if(groupEntCount == 0)
|
|
|
|
BoltGroupEnt groupEntries[0x100] @ groupOffset;
|
|
|
|
else
|
|
|
|
BoltGroupEnt groupEntries[groupEntCount] @ groupOffset;
|
|
|
|
};
|
|
|
|
|
|
|
|
BoltHdr hdr @0;
|
|
|
|
BoltGroupDesc groupDescs[hdr.groupCount] @ $;
|