Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HexFiend template for parsing files. #1

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Conversation

mbirth
Copy link

@mbirth mbirth commented Oct 16, 2021

This is a template for the HexFiend hex editor. It works for all Metroid Dread files, which are basically Type-Value-storages. It's always an 8-Byte TypeID followed by a payload. For arrays, the first 4 Bytes of the payload are the amount of records (uint32). Even the very first 8 Bytes (0x6C83AF6F9CA85C5A or 0xD0BE2F66278BC819) seem to be a TypeID.

Apart from a few data types (see "TODO"s in file), I hopefully figured out the structure. All my files parse 100% with this.

Screenshot 2021-10-17 at 01 41 56

(On a sidenode: Why not put the Wiki pages into MD-files into the repository - so others can edit them, too?)

@GoobyCorp
Copy link

The "type ID" is a CRC64 checksum of the actual data type string in the executable, Samus Returns used a CRC32 version of the same thing.

@GoobyCorp
Copy link

GoobyCorp commented Oct 21, 2021

https://gist.github.com/GoobyCorp/133bc16fd20d3302f1dbb2a443b75059

0x6C83AF6F9CA85C5A = CBlackboard
0xD0BE2F66278BC819 = CGameBlackboard

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants