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.
While decompiling real
.gcxfiles from MGS1 USA (PSX, Disc 2, stages07b/demo.gcx) with the currentGclCommandsenum I hit:62774 = 0xF536. The opcode appears at offset0x1982ofs07b/demo.gcxinside an arg list right next to0x9906(CHARA), in a context that looks like a chara-related sub-call: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):
If anyone has notes or a reference list of MGS1 GCL command IDs, I'd be happy to PR the proper enum entry.