mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-28 07:47:02 -05:00
patterns: Add a pattern for Roblox .pack files (#435)
* Added the .pack format * Clarified some fields by changing the naming
This commit is contained in:
@@ -128,6 +128,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi
|
|||||||
| NTFS | | [`patterns/fs/ntfs.hexpat`](patterns/fs/ntfs.hexpat) | NTFS (NT File System) |
|
| NTFS | | [`patterns/fs/ntfs.hexpat`](patterns/fs/ntfs.hexpat) | NTFS (NT File System) |
|
||||||
| OGG | `audio/ogg` | [`patterns/ogg.hexpat`](patterns/ogg.hexpat) | OGG Audio format |
|
| OGG | `audio/ogg` | [`patterns/ogg.hexpat`](patterns/ogg.hexpat) | OGG Audio format |
|
||||||
| ORP / ORS | | [`patterns/orp.hexpat`](patterns/orp.hexpat) | OpenRGB profile format |
|
| ORP / ORS | | [`patterns/orp.hexpat`](patterns/orp.hexpat) | OpenRGB profile format |
|
||||||
|
| PACK | | [`patterns/roblox_pack.hexpat`](patterns/roblox_pack.hexpat) | Roblox shader archive format |
|
||||||
| PAK | | [`patterns/xgspak.hexpat`](patterns/xgspak.hexpat) | Exient XGS Engine Pak files |
|
| PAK | | [`patterns/xgspak.hexpat`](patterns/xgspak.hexpat) | Exient XGS Engine Pak files |
|
||||||
| PCAP | `application/vnd.tcpdump.pcap` | [`patterns/pcap.hexpat`](patterns/pcap.hexpat) | pcap header and packets |
|
| PCAP | `application/vnd.tcpdump.pcap` | [`patterns/pcap.hexpat`](patterns/pcap.hexpat) | pcap header and packets |
|
||||||
| PcapNG | `application/vnd.tcpdump.pcap` | [`patterns/pcapng.hexpat`](patterns/pcapng.hexpat) | pcapng header and packets |
|
| PcapNG | `application/vnd.tcpdump.pcap` | [`patterns/pcapng.hexpat`](patterns/pcapng.hexpat) | pcapng header and packets |
|
||||||
|
|||||||
33
patterns/roblox_pack.hexpat
Normal file
33
patterns/roblox_pack.hexpat
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#pragma author marduk.ru
|
||||||
|
#pragma description Roblox .pack shader archive format
|
||||||
|
#pragma magic [ 52 42 58 53 ] @ 0x00
|
||||||
|
|
||||||
|
import std.string;
|
||||||
|
import hex.core;
|
||||||
|
import type.magic;
|
||||||
|
|
||||||
|
struct Header {
|
||||||
|
type::Magic<"RBXS"> magic;
|
||||||
|
u32 fileCount;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct FileIndex {
|
||||||
|
char name[0x40];
|
||||||
|
u128 md5Hash;
|
||||||
|
u32 offset;
|
||||||
|
u32 size;
|
||||||
|
u64 reserved;
|
||||||
|
|
||||||
|
u8 file[size] @ offset;
|
||||||
|
|
||||||
|
#ifdef __IMHEX__
|
||||||
|
hex::core::add_virtual_file(name, file);
|
||||||
|
#endif
|
||||||
|
} [[name(name)]];
|
||||||
|
|
||||||
|
struct RBXPack {
|
||||||
|
Header header;
|
||||||
|
FileIndex files[header.fileCount];
|
||||||
|
};
|
||||||
|
|
||||||
|
RBXPack pack @ 0x0;
|
||||||
BIN
tests/patterns/test_data/roblox_pack.hexpat.pack
Normal file
BIN
tests/patterns/test_data/roblox_pack.hexpat.pack
Normal file
Binary file not shown.
Reference in New Issue
Block a user