Map Palette Handler Trace Review

palette-handler-producer-family-grounded-map-binding-unproven

Summary

handler table 0x00440538

0x38 -> 0x004060db, 0x39 -> 0x00406206

table-only handlers: True

nested runner callsites: 19

deferred palette apply caller: 0x00411493

Binding State

exact per-map palette root proven: False

candidate-roots-exist-but-map-execution-binding-unproven

source: out/map_animation_tile_review.json

Confirmed

Unresolved

Focused Generic VM Handlers

opcodetable entryhandlerrole
0x200x004405b80x0040448astores a resumable frame/nested script pointer at context+0x64; later VM runtime can resume it
0x380x004406180x004060dbpalette fade/step command handler
0x390x0044061c0x00406206palette direct update command handler
0x5a0x004406a00x004077b3nested stream producer; calls 0x00402360 with object/list script pointers
0x5b0x004406a40x00407896nested stream producer variant; calls 0x00402360
0x5c0x004406a80x004078ebnested stream producer variant; calls 0x00402360
0x5e0x004406b00x004079ffactive/resource object nested execution handler; calls 0x00402360
0x970x004407940x0040be38display/object nested execution family; calls 0x00402360
0x9a0x004407a00x0040c3f4display/object nested execution family; calls 0x00402360 several times
0xa00x004407b80x0040c948display/object nested execution family; calls 0x00402360
0xa20x004407c00x0040cb98display/object nested execution family; calls 0x00402360

Palette Handler Semantics

opcodehandlerlendirect handler callsdword refscalls inside handlermodes
0x380x004060db800x00440618 .data0x004010d2, 0x00401518, 0x0040146amode 0: repeat byte[+2] times; call 0x004010d2 with dword pointer at +4; step current palette list toward target RGB entries / mode 1: repeat byte[+7] times; call 0x00401518 with range bytes +2/+3 and RGB target at +4; step current palette range toward stream RGB / mode 2: repeat byte[+4] times; call 0x0040146a with bytes +2/+3; step current palette range toward backup palette bytes
0x390x00406206800x0044061c .data0x00401036, 0x004015b9, 0x00401632, 0x00401699mode 0: call 0x00401036 with dword pointer at +4; set current palette list immediately / mode 1: call 0x004015b9 with bytes +2/+3/+4; fill current palette range / mode 2: call 0x00401632 with bytes +2/+3/+4; fill backup palette range / mode 3: call 0x00401699 with dword pointer at +4; set backup palette list

Palette Helpers

helperroleused bydirect callersmeaning
0x00401036current-list-setter0x39 mode 00x0040622creads 0xff-terminated entries and writes target RGB nibbles into current palette buffer 0x004676e8
0x004010d2current-list-stepper0x38 mode 00x00406124steps current palette list entries one byte toward target RGB entries through 0x0040118e
0x00401518current-range-step-to-rgb0x38 mode 10x00406177steps current palette range toward immediate RGB bytes from the command stream
0x0040146acurrent-range-step-to-backup0x38 mode 20x004061c0steps current palette range toward backup palette bytes at 0x00559da1..
0x004015b9current-range-setter0x39 mode 10x00406257fills a current palette range with one stream byte value
0x00401632backup-range-setter0x39 mode 20x00406282fills a backup palette range with one stream byte value
0x00401699backup-list-setter0x39 mode 30x00406299reads 0xff-terminated entries and writes target RGB nibbles into the backup palette buffer
0x004012c0backup-copy-from-currentdirect helper0x0040632dcopies a current palette range into backup bytes
0x00401344current-restore-from-backupdirect helper0x0040635brestores a current palette range from backup bytes and marks the palette dirty
0x004011d5current-channel-shiftdirect helper0x004062ffshifts current palette channel bytes left/right for a range and marks the palette dirty
0x004013d2current-range-copydirect helper0x00406393copies one current palette range to another current palette range and marks the palette dirty

Nested Runner Producers

callsiteclassificationopcode(s)handlerrole
0x004077d6generic-vm-handler0x5a0x004077b3nested stream producer; calls 0x00402360 with object/list script pointers
0x00407889generic-vm-handler0x5a0x004077b3nested stream producer; calls 0x00402360 with object/list script pointers
0x004078d7generic-vm-handler0x5b0x00407896nested stream producer variant; calls 0x00402360
0x0040790bgeneric-vm-handler0x5c0x004078ebnested stream producer variant; calls 0x00402360
0x00407bebgeneric-vm-handler0x5e0x004079ffactive/resource object nested execution handler; calls 0x00402360
0x0040c070generic-vm-handler0x970x0040be38display/object nested execution family; calls 0x00402360
0x0040c447generic-vm-handler0x9a0x0040c3f4display/object nested execution family; calls 0x00402360 several times
0x0040c466generic-vm-handler0x9a0x0040c3f4display/object nested execution family; calls 0x00402360 several times
0x0040c4a4generic-vm-handler0x9a0x0040c3f4display/object nested execution family; calls 0x00402360 several times
0x0040ca37generic-vm-handler0xa00x0040c948display/object nested execution family; calls 0x00402360
0x0040cc56generic-vm-handler0xa20x0040cb98display/object nested execution family; calls 0x00402360
0x0040cca9generic-vm-handler0xa20x0040cb98display/object nested execution family; calls 0x00402360
0x004320beobject-display-runtimeobject/display runtime nested script callsite outside the handler table
0x004321feobject-display-runtimeobject/display runtime nested script callsite outside the handler table
0x0043240eobject-display-runtimeobject/display runtime nested script callsite outside the handler table
0x004325a7object-display-runtimeobject/display runtime nested script callsite outside the handler table
0x00432750object-display-runtimeobject/display runtime nested script callsite outside the handler table
0x00433183object-display-runtimeobject/display runtime nested script callsite outside the handler table
0x004331afobject-display-runtimeobject/display runtime nested script callsite outside the handler table

Palette Candidate Root Snapshot

Alignment counts: {'vm-aligned-local-high': 10, 'vm-aligned-local-medium': 10, 'vm-aligned-local-weak': 9}

Resource binding counts: {'map-binding-unproven': 9, 'near-animated-scene-record-unverified': 2, 'resource-group-contained-nonanimated': 18}

commandopcodemodealignmentbest rootresource bindingnearest animated scene records
0x0043d9200x381vm-aligned-local-high0x0043d904near-animated-scene-record-unverifiedmap1_01a 0x0043e798 +3732B; map1_02b 0x0043e7f0 +3820B
0x0043d96c0x382vm-aligned-local-high0x0043d91cnear-animated-scene-record-unverifiedmap1_01a 0x0043e798 +3708B; map1_02b 0x0043e7f0 +3796B
0x00440bb80x380vm-aligned-local-medium0x00440bb8resource-group-contained-nonanimatedmap2_01c 0x00440f90 +984B; map2_13c 0x00440fc8 +1040B
0x00440bc40x390vm-aligned-local-medium0x00440bc4resource-group-contained-nonanimatedmap2_01c 0x00440f90 +972B; map2_13c 0x00440fc8 +1028B
0x004443c80x390vm-aligned-local-medium0x004443c8map-binding-unprovenmap2_13c 0x00440fc8 +13312B; map2_01c 0x00440f90 +13368B
0x004443d40x390vm-aligned-local-medium0x004443d4map-binding-unprovenmap2_13c 0x00440fc8 +13324B; map2_01c 0x00440f90 +13380B
0x004443e00x390vm-aligned-local-medium0x004443e0map-binding-unprovenmap2_13c 0x00440fc8 +13336B; map2_01c 0x00440f90 +13392B
0x0045c5220x381vm-aligned-local-medium0x0045c516resource-group-contained-nonanimated
0x0045c56e0x381vm-aligned-local-medium0x0045c56eresource-group-contained-nonanimated
0x0046c5400x381vm-aligned-local-high0x0046c4f0resource-group-contained-nonanimated
0x0046c58c0x382vm-aligned-local-high0x0046c53cresource-group-contained-nonanimated
0x004a6fa80x381vm-aligned-local-high0x004a6f4cmap-binding-unproven
0x004a6fc00x382vm-aligned-local-high0x004a6f64map-binding-unproven
0x004b07900x380vm-aligned-local-medium0x004b0790resource-group-contained-nonanimated
0x004b079c0x390vm-aligned-local-medium0x004b079cresource-group-contained-nonanimated
0x004d28800x380vm-aligned-local-medium0x004d2864map-binding-unproven
0x004de3e80x381vm-aligned-local-high0x004de388resource-group-contained-nonanimated
0x004dea9c0x381vm-aligned-local-high0x004dea90resource-group-contained-nonanimated
0x004dfe1c0x391vm-aligned-local-high0x004dfde8resource-group-contained-nonanimated
0x004dfe600x382vm-aligned-local-high0x004dfe04resource-group-contained-nonanimated