Misc

FM

There’s an object that seems to represent higher-level file operations.

FM FileManage
Location 8095fcbc
Pointer 80578260 (static) | aka r13 (=8057c6a0) - 0x4440
Size 0x840

Methods:
80013af0 | ?? (usually run after a file operation)
80014610 | copy
800146d0 | delete
80014770 | save
800153d0 | ??

80014610: void FM::copy() {
    cf.fileCopy(this[0x835], this[0x834]);
    cf->selectedFileNo = this[0x834];
    this->FUN_80013af0();
    cf._u0[0] = 1;
}
800146d0: void FM::delete() {
    cf.fileClearA();			// 0 → FA
    cf.fileSaveSelected-2();	// FA → FS
    this->FUN_80013af0();
    cf._u0[0] = 1;
}
80014770: void FM::save() {
    if (this[0x82c] == 0 && cf.errorFlag != 1 && cf->_u0[4] != 0) {
        if (cf->_u0[1] == 1) {
            cf.fileA[0x53ad] = 0;
            cf.fileSaveSelected();
            this->FUN_80013af0();
            cf._u0[0] = 1;
        } else {
            cf.fileSaveSelected();
            cf._u0[0] = 1;
            this->FUN_80012d00();
            this[0x838] = 1;
        }
    }
}

An object representing Link.

Link  
Location (variable)
Pointer 805789ec, 80578a18 (static, seem identical)
Size ?
offset size description
ba [2] θ (facing angle)
c0 [4] x (position)
c4 [4] y (position)
c8 [4] z (position)
13e [2] vθ (movement angle)

Misc

Another object:

?? ??
Location 809553ac
Pointer 80578338‬‬ (static) | aka r13 (=8057c6a0) - 0x4368
Size ≤0xb0
Methods 80052e10, 80052e60, etc.

80004204F: 12B of free space for cheat-code flags

Heap starts at 809511e4?

Commits: some higher-level wrapping fn calls:

    802e1900	v [higher level]
    800c0820	loading zone post-load routine?
    - 800bfcb0	story flags
    - 800bfdd0	inv flags
    - 800c0060	heartbeat
    800bfba0