mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-28 07:47:02 -05:00
* Add files via upload * Update README.md Added nes.hexpat to list of hex patterns * Fix indenting of hex patterns list Moved nes.hexpat below NE.hexpat * Update README.md Fixed indenting of PP pattern file's description being wrong * Added x-msdownload MIME type to PE description * Made indenting & code of ips.hexpat better * Improvements to gb.hexpat * Urgent fix to ips.hexpat * Urgent fix to gb.hexpat
29 lines
543 B
Rust
29 lines
543 B
Rust
#pragma author gmestanley
|
|
#pragma description IPS (International Patching System) files
|
|
|
|
#pragma endian big
|
|
|
|
#include <std/mem.pat>
|
|
#include <std/string.pat>
|
|
|
|
struct Hunk {
|
|
u24 offset;
|
|
u16 length;
|
|
if (!length) {
|
|
u16 runCount;
|
|
u8 payload;
|
|
}
|
|
else {
|
|
u8 payload[length];
|
|
}
|
|
};
|
|
|
|
struct IPS {
|
|
char signature[5];
|
|
Hunk hunks[while($ < std::mem::size() - (3 + 3 * (std::mem::read_string(std::mem::size()-3, 3) != "EOF")))];
|
|
char eof[3];
|
|
u24 truncatedSize[3+(std::mem::read_string(std::mem::size()-3, 3) != "EOF")>3];
|
|
};
|
|
|
|
IPS ips @ 0x00;
|