Repository navigation
Overlays
For most of the ROM, there are apparently segments' headers describing their VRAM mapping, size, number, and internal name.
Their current ImHex pattern is as follows
struct SegmentHeader {
type::Magic<"MWo2"> signature;
be u32 segmentNumber;
be type::Hex<u32> vramStart;
be type::Size<u32> segmentSizeMaybe;
be u32 unk01;
be type::Hex<u32> vramEndMaybe;
be u64 pad02;
char segmentName[32];
};Only reference I've seen of this is a mention of "MWo2 Files" is at this archived forum comment by "Zoinkity" about an unreleased N64 game (https://assemblergames.org/viewtopic.php?t=28810&start=20#p425765)
Here's a sample of one of these headers
These can be seen loading into memory with pj64d's DMA Logger, in this case during the start of the game's intro sequence
In order, the sectors shown in the image are:
- loadandsavebg
- intro
- gamecode
As we can see, the "gamecode" segment's vram address in the DMA log matches it's "vramStart" value on the header
Do note that the segments in the same group (same vramStart) do overlap heavily with other groups. That's currently causing linker errors (multiple definitions) (Solution was to use the "symbol_name_format" option on each segment)