Skip to content

Unknown GCL command id 0xF536 in real .gcx files (e.g. MGS1 USA s07b/demo.gcx) #2

Description

@Greengoblin007

While decompiling real .gcx files from MGS1 USA (PSX, Disc 2, stage s07b/demo.gcx) with the current GclCommands enum I hit:

ValueError: 62774 is not a valid GclCommands

62774 = 0xF536. The opcode appears at offset 0x1982 of s07b/demo.gcx inside an arg list right next to 0x9906 (CHARA), in a context that looks like a chara-related sub-call:

... 60 00 1b f5 36 0a 06 99 06 06 7a 05 06 66 ff 50 74 04 ...
            ^^^^^               ^^^^^
            0xF536              0x9906 (CHARA)

Adding a placeholder entry to the enum (UNK_F536 = 0xf536) is enough to round-trip the file byte-identically through decompile→compile, but I haven't been able to identify the semantic name. Filing as an issue rather than a PR so the canonical name can be used once known.

Reproducer (using upstream main + the file from disc 2):

from gcx import GcxData
from gcl_decompile import GclDecomp
g = GcxData('s07b/demo.gcx')
GclDecomp(g).decompile_gcx_file()  # raises ValueError: 62774 is not a valid GclCommands

If anyone has notes or a reference list of MGS1 GCL command IDs, I'd be happy to PR the proper enum entry.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions