{"version":1,"kind":"hwanse-map-animation-exe-pattern-review","promotionStatus":"animation-redraw-and-cache-visible-motion-grounded","conclusion":{"short":"Current EXE/runtime evidence grounds layer1 0x40 dirty redraw and cache self-blit visible motion for the known fire/waterfall/beach animated regions.","tileReplacement":"No simple contiguous tile-id replacement table was found for the known fire/waterfall candidate sequences.","dirtyRedraw":"The layer1 0x40 consumer marks viewport cells dirty and does not choose alternate layer0 tile ids at that point.","paletteVm":"Palette opcodes 0x38/0x39 are table-dispatched VM commands and eventually apply through DirectDrawPalette::SetEntries.","paletteCandidateScope":"Most palette candidates that are near animated scene records touch broad palette ranges, so they are better treated as screen fade/transition evidence than localized fire/waterfall loop proof.","tileWriteVm":"Opcode 0x58/0x6b/0x76 tile-grid mutation handlers are real, but they do not yet bind to the 0x40 fire/waterfall visible motion loop.","remainingGap":"The known visible map animation previews now use cache/self-blit evidence where available. Palette VM and tile-write handlers remain useful secondary paths, but they are not the primary visible-motion model for these regions."},"summary":{"animatedMapCount":5,"animatedCellCount":1200,"animatedPaletteIndexRanges":[{"start":2,"end":4,"startHex":"0x02","endHex":"0x04"},{"start":6,"end":7,"startHex":"0x06","endHex":"0x07"},{"start":11,"end":13,"startHex":"0x0b","endHex":"0x0d"},{"start":16,"end":21,"startHex":"0x10","endHex":"0x15"},{"start":27,"end":29,"startHex":"0x1b","endHex":"0x1d"},{"start":32,"end":46,"startHex":"0x20","endHex":"0x2e"}],"tileSequenceRowsScanned":13,"tileSequenceRowsWithContiguousHits":0,"map1PaletteCandidateCount":2,"paletteCommandEffectScopeCounts":{"broad-screen-palette-transition":22,"localized-palette-candidate":7},"paletteCommandNearAnimatedBroadTransitionCount":4,"paletteHandlersTableOnly":true,"exactPerMapPaletteRootProven":false,"mapAnimationPaletteBindingStatus":"candidate-roots-exist-but-map-execution-binding-unproven","tileWritePlausibleAlignedOpcode58Count":90,"tileWriteDirectAnimatedTileWriteCount":0,"tileWriteCoordinateOnlyAlignedHitCount":2,"tileWriteCoordinateOnlyInsideAnimatedRootCount":0,"tileWriteCoordinateOnlyRejectedCount":2,"selfBlitMapACommandSampleCount":24,"selfBlitMapCRootCandidateCount":24,"mapC3WhirlpoolFrameLoopHitCount":2},"exeEvidenceCarryOver":{"source":"out/map_animation_tile_review.json","status":"animation-redraw-consumer-confirmed","summary":"EXE consumers for layer1 0x40, dirty redraw, and palette mutation were found. 0x40 marks cells that must be redrawn because their pixels can change without changing the layer0 tile id at the redraw consumer. Palette-only does not explain the observed spatial motion, so the per-map visible motion stream remains unproven.","confirmed":["layer1 bit 0x40 is read by EXE during viewport redraw preparation.","The 0x40 consumer marks the same map cells dirty every redraw pass; it does not choose alternate tile ids.","The map draw path uses the current layer0 tile id directly, while 0x40 only affects redraw invalidation.","The EXE has palette VM handlers and a deferred DirectDrawPalette SetEntries path.","Generic VM palette opcodes are now length/mode grounded: 0x38 and 0x39 are 8-byte commands, while 0x3a and 0x3b are 4-byte commands.","Opcode 0x38 is a palette step family: mode 0 steps a list toward target RGB, mode 1 steps a range toward stream RGB, and mode 2 steps a range toward backup palette bytes.","Opcode 0x39 is a palette set family: mode 0 sets current palette list, mode 1 fills current palette range, mode 2 fills backup palette range, and mode 3 sets backup palette list.","The non-transparent palette indices used by the current 0x40 layer0 source tiles have been mapped from CNS pixels.","A stricter local VM alignment scan promotes a subset of raw 0x38/0x39 byte-pattern hits to VM-shaped palette script candidates.","VM-aligned palette script roots are now cross-checked against scene/resource groups and nearby map resource records.","The animated fire/waterfall/water regions sit on ordinary layer0 tile ids; 0x40 dirty redraw is grounded, but the visible motion stream is still unbound."],"unresolved":["The exact executed palette command for each map animation has not been bound to a specific map root yet.","The palette-cycle timing/order is not fully tied to a specific map root yet.","Resource binding is a correlation layer only. A contained or nearby resource group does not by itself prove runtime execution for that map.","Broad static palette-command scans contain false positives unless tied to an executed VM command stream; local alignment reduces but does not eliminate this risk.","Generic VM tile-write handlers still exist, but current 0x40 map animation evidence does not require them."],"keyAddresses":{}},"paletteHandlerCarryOver":{"source":"out/map_palette_handler_trace_review.json","summary":{"generalVmTableVaHex":"0x00440538","paletteOpcode38HandlerVaHex":"0x004060db","paletteOpcode39HandlerVaHex":"0x00406206","paletteHandlersTableOnly":true,"paletteHandlerDirectCallCount":0,"nestedRunnerCallCount":19,"nestedRunnerGenericHandlerCallCount":12,"nestedRunnerObjectRuntimeCallCount":7,"deferredPaletteApplyCallers":["0x00411493"],"deferredPaletteApplyFrameCallerVaHex":"0x00411493","contextCreatorCallers":["0x00411426"],"vmRunnerDirectCallers":["0x0040237f","0x004058af","0x004058d8","0x004330a9"],"exactPerMapPaletteRootProven":false,"mapAnimationPaletteBindingStatus":"candidate-roots-exist-but-map-execution-binding-unproven"},"confirmed":["Generic script execution is anchored at 0x00402321: it reads the opcode from context+0x40 and dispatches through table 0x00440538.","Palette opcode 0x38 resolves to 0x004060db and opcode 0x39 resolves to 0x00406206 in the generic VM table.","There are no direct calls to 0x004060db or 0x00406206; these palette handlers are table-dispatched.","Both palette handlers are 8-byte VM commands and advance context+0x40 by 8.","Nested script execution is anchored at 0x00402360; multiple generic VM handlers and object/display runtime callsites feed it alternate stream pointers.","Palette writes are dirty-buffered: helpers update 0x004676e8 and set 0x00559d98, while 0x00401000 applies the palette through DirectDraw SetEntries later in the frame/update loop.","Palette opcode semantics split current palette updates from backup palette seeding/restoration. 0x38 steps current values, while 0x39 can seed either current or backup values depending on mode."],"unresolved":["The exact executed palette stream root for each animated map is not proven yet.","The high/medium palette command candidates remain local VM-shape evidence, not per-map execution proof.","The next useful target is the descriptor/stream producer feeding nested runner callsites, not more raw 0x38/0x39 byte scans."]},"tileReplacementScan":{"status":"simple-contiguous-tile-replacement-table-not-found","scope":"known fire/waterfall/waterfall-rope candidate tile-id triples and nearby static controls","limitation":"negative result only covers simple contiguous u8/u16/u32 encoded sequences, not compressed code, arithmetic generation, or palette-only animation","sequenceRows":[{"family":"map1_01a fire 4x3 row variants","sequence":[396,436,476],"sequenceText":"396 -> 436 -> 476","encodings":[{"encoding":"u16le","bytePattern":"8c 01 b4 01 dc 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"8c 01 00 00 b4 01 00 00 dc 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_01a fire 4x3 row variants","sequence":[397,437,477],"sequenceText":"397 -> 437 -> 477","encodings":[{"encoding":"u16le","bytePattern":"8d 01 b5 01 dd 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"8d 01 00 00 b5 01 00 00 dd 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_01a fire 4x3 row variants","sequence":[398,438,478],"sequenceText":"398 -> 438 -> 478","encodings":[{"encoding":"u16le","bytePattern":"8e 01 b6 01 de 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"8e 01 00 00 b6 01 00 00 de 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_01a fire 4x3 row variants","sequence":[399,439,479],"sequenceText":"399 -> 439 -> 479","encodings":[{"encoding":"u16le","bytePattern":"8f 01 b7 01 df 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"8f 01 00 00 b7 01 00 00 df 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b waterfall/water row variants","sequence":[394,434,474],"sequenceText":"394 -> 434 -> 474","encodings":[{"encoding":"u16le","bytePattern":"8a 01 b2 01 da 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"8a 01 00 00 b2 01 00 00 da 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b waterfall/water row variants","sequence":[395,435,475],"sequenceText":"395 -> 435 -> 475","encodings":[{"encoding":"u16le","bytePattern":"8b 01 b3 01 db 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"8b 01 00 00 b3 01 00 00 db 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b waterfall/water row variants","sequence":[436,396,476],"sequenceText":"436 -> 396 -> 476","encodings":[{"encoding":"u16le","bytePattern":"b4 01 8c 01 dc 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"b4 01 00 00 8c 01 00 00 dc 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b waterfall/water row variants","sequence":[437,397,477],"sequenceText":"437 -> 397 -> 477","encodings":[{"encoding":"u16le","bytePattern":"b5 01 8d 01 dd 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"b5 01 00 00 8d 01 00 00 dd 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b waterfall/water row variants","sequence":[438,398,478],"sequenceText":"438 -> 398 -> 478","encodings":[{"encoding":"u16le","bytePattern":"b6 01 8e 01 de 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"b6 01 00 00 8e 01 00 00 de 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b waterfall/water row variants","sequence":[439,399,479],"sequenceText":"439 -> 399 -> 479","encodings":[{"encoding":"u16le","bytePattern":"b7 01 8f 01 df 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"b7 01 00 00 8f 01 00 00 df 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b bridge/static neighbor controls","sequence":[58,59,60],"sequenceText":"58 -> 59 -> 60","encodings":[{"encoding":"u8","bytePattern":"3a 3b 3c","hitCount":0,"hitVas":[]},{"encoding":"u16le","bytePattern":"3a 00 3b 00 3c 00","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"3a 00 00 00 3b 00 00 00 3c 00 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b bridge/static neighbor controls","sequence":[85,86,87],"sequenceText":"85 -> 86 -> 87","encodings":[{"encoding":"u8","bytePattern":"55 56 57","hitCount":0,"hitVas":[]},{"encoding":"u16le","bytePattern":"55 00 56 00 57 00","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"55 00 00 00 56 00 00 00 57 00 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0},{"family":"map1_02b bridge/static neighbor controls","sequence":[293,294,295],"sequenceText":"293 -> 294 -> 295","encodings":[{"encoding":"u16le","bytePattern":"25 01 26 01 27 01","hitCount":0,"hitVas":[]},{"encoding":"u32le","bytePattern":"25 01 00 00 26 01 00 00 27 01 00 00","hitCount":0,"hitVas":[]}],"totalContiguousHitCount":0}],"individualTileRows":[{"tile":58,"u16le":"3a 00","hitCount":285,"sectionCounts":{".text":28,".data":210,".rsrc":1,".reloc":46},"hitVas":["0x00405414","0x0040d5f9","0x0040f2c3","0x0040f3dc","0x0040f532","0x0040fe69","0x0040ffcc","0x00410da2","0x00416102","0x0041df6f","0x0041dfd8","0x0041fc3d","0x00421ead","0x004257e0","0x0042e503","0x0042fb7d"]},{"tile":59,"u16le":"3b 00","hitCount":177,"sectionCounts":{".text":23,".data":110,".reloc":44},"hitVas":["0x00407201","0x00407507","0x0040d9b5","0x00410483","0x0041520a","0x0041c100","0x0041c3ab","0x0041c6a4","0x0041ca4b","0x0041cd7f","0x0041d0fb","0x004205ff","0x004224ac","0x004242bc","0x004249c0","0x0042ad39"]},{"tile":60,"u16le":"3c 00","hitCount":202,"sectionCounts":{".text":33,".data":118,".reloc":51},"hitVas":["0x0040251a","0x0040384b","0x00404362","0x004046ae","0x00404829","0x004048a6","0x004052fc","0x00406d4c","0x00408bb7","0x00408cbf","0x0040981c","0x00409bf9","0x0040f73e","0x0041431d","0x0041d641","0x004212f7"]},{"tile":85,"u16le":"55 00","hitCount":2295,"sectionCounts":{".text":1470,".data":824,".idata":1},"hitVas":["0x0040100a","0x0040102b","0x004010c7","0x00401183","0x004012b5","0x0040130a","0x00401321","0x00401338","0x00401382","0x00401398","0x004013af","0x004013c7","0x0040145f","0x004014a8","0x004014c8","0x004014e9"]},{"tile":86,"u16le":"56 00","hitCount":39,"sectionCounts":{".text":11,".data":22,".idata":1,".rsrc":5},"hitVas":["0x0040e277","0x00416478","0x0041a614","0x004226bf","0x00427fb0","0x00430e49","0x00430f55","0x00433d61","0x004341ab","0x00436314","0x00436319","0x0043ffe4","0x004546d9","0x00458066","0x004585d0","0x004585da"]},{"tile":87,"u16le":"57 00","hitCount":907,"sectionCounts":{".text":862,".data":40,".idata":5},"hitVas":["0x00402dc7","0x00403128","0x00403383","0x004033ec","0x00403495","0x0040366d","0x004039e0","0x00403a99","0x00403bb7","0x00403cc1","0x00404166","0x0040420f","0x00405818","0x0040583e","0x0040677e","0x004067a4"]},{"tile":293,"u16le":"25 01","hitCount":40,"sectionCounts":{".text":1,".data":39},"hitVas":["0x0042898e","0x00442ce3","0x00444bcc","0x0044544e","0x004454ca","0x00450dd2","0x00450e2e","0x0046832c","0x004887f0","0x00494410","0x00495984","0x004ababc","0x004ac528","0x004ac7e8","0x004c37fc","0x004d320b"]},{"tile":294,"u16le":"26 01","hitCount":8,"sectionCounts":{".text":2,".data":6},"hitVas":["0x0040f493","0x00421d6e","0x004d2e1f","0x0051e656","0x005220ea","0x0052212e","0x00526ea0","0x00526efa"]},{"tile":295,"u16le":"27 01","hitCount":38,"sectionCounts":{".text":6,".data":32},"hitVas":["0x00407145","0x0040f4cb","0x00410cb5","0x0041326e","0x00413d0f","0x00424166","0x00444bc8","0x00468328","0x004887ec","0x0049440c","0x00495980","0x004abab8","0x004ac524","0x004ac7e4","0x004c37f8","0x004ccb42"]},{"tile":394,"u16le":"8a 01","hitCount":23,"sectionCounts":{".text":12,".data":11},"hitVas":["0x004013a5","0x00401436","0x0040160c","0x0040179e","0x004153a9","0x004167be","0x0041690b","0x00416aca","0x0041ad50","0x0043701c","0x004371d5","0x00438119","0x004ad61a","0x004ad63e","0x004ad646","0x004ddcd0"]},{"tile":395,"u16le":"8b 01","hitCount":11,"sectionCounts":{".text":4,".data":7},"hitVas":["0x0043702c","0x004371e4","0x00437253","0x00438d1f","0x004ad6fa","0x004ad71e","0x004ad726","0x004ddd90","0x004e0b66","0x004e0b8a","0x004e0b92"]},{"tile":396,"u16le":"8c 01","hitCount":11,"sectionCounts":{".text":2,".data":8,".reloc":1},"hitVas":["0x00424b46","0x0042ed6e","0x004a9fdc","0x004ad7da","0x004ad7fe","0x004ad81e","0x004b984f","0x004b9b13","0x004b9dd7","0x0053f324","0x005b3014"]},{"tile":397,"u16le":"8d 01","hitCount":6,"sectionCounts":{".text":2,".data":4},"hitVas":["0x00401c28","0x00401c67","0x004ad892","0x004ad8b6","0x004ad8d6","0x004ccb56"]},{"tile":398,"u16le":"8e 01","hitCount":5,"sectionCounts":{".text":2,".data":3},"hitVas":["0x00405a27","0x00433b02","0x004acd6e","0x004acdfa","0x004de524"]},{"tile":399,"u16le":"8f 01","hitCount":5,"sectionCounts":{".text":2,".data":3},"hitVas":["0x0040c534","0x004359bb","0x004ace4e","0x004aceda","0x004e0542"]},{"tile":434,"u16le":"b2 01","hitCount":38,"sectionCounts":{".text":5,".data":33},"hitVas":["0x00407f55","0x00409311","0x0042b5c0","0x00430c33","0x00431647","0x004747c2","0x00474abe","0x00474bf2","0x00474d32","0x00474e66","0x00474f9a","0x004750be","0x0047513e","0x00475352","0x0047545a","0x00475562"]},{"tile":435,"u16le":"b3 01","hitCount":4,"sectionCounts":{".text":1,".data":3},"hitVas":["0x00401898","0x0047464a","0x00474686","0x0048bbf3"]},{"tile":436,"u16le":"b4 01","hitCount":15,"sectionCounts":{".text":3,".data":11,".reloc":1},"hitVas":["0x00408a44","0x0040cd37","0x0040e97a","0x00442e79","0x0047448a","0x004745ce","0x004746a2","0x00475032","0x004750ca","0x00475276","0x00475a7a","0x00475bea","0x00475d36","0x0047640a","0x005b587c"]},{"tile":437,"u16le":"b5 01","hitCount":15,"sectionCounts":{".text":3,".data":12},"hitVas":["0x0040486a","0x004096c0","0x0040a0cf","0x00474482","0x004746a6","0x00474732","0x0047503a","0x004750d2","0x0047527e","0x00475a72","0x00475be2","0x00475d2e","0x00476412","0x004ccb5e","0x0050aae6"]},{"tile":438,"u16le":"b6 01","hitCount":94,"sectionCounts":{".text":1,".data":93},"hitVas":["0x0043a5a6","0x0043ceec","0x0043f13c","0x00444dc8","0x00444f78","0x004451dc","0x004456b0","0x004458e4","0x00445d00","0x00446074","0x004460a8","0x004460dc","0x00446110","0x00446228","0x00451124","0x00451354"]},{"tile":439,"u16le":"b7 01","hitCount":3,"sectionCounts":{".data":3},"hitVas":["0x004748de","0x004748ea","0x0047671e"]},{"tile":474,"u16le":"da 01","hitCount":9,"sectionCounts":{".text":4,".data":3,".idata":1,".rsrc":1},"hitVas":["0x00401871","0x00405f2f","0x0040cd27","0x00411356","0x00492276","0x00492296","0x004922b6","0x005a0c02","0x005a21b0"]},{"tile":475,"u16le":"db 01","hitCount":4,"sectionCounts":{".text":2,".data":2},"hitVas":["0x00405f1c","0x0041c20b","0x0049231e","0x00492332"]},{"tile":476,"u16le":"dc 01","hitCount":7,"sectionCounts":{".text":4,".data":3},"hitVas":["0x0041dee9","0x004235cd","0x00424e5f","0x0042f10a","0x00492382","0x004923a6","0x004923c6"]},{"tile":477,"u16le":"dd 01","hitCount":7,"sectionCounts":{".text":2,".data":5},"hitVas":["0x004079c0","0x00420bae","0x0045ae4a","0x0045ae5e","0x0045ae7e","0x0045ae92","0x004ded0c"]},{"tile":478,"u16le":"de 01","hitCount":6,"sectionCounts":{".text":2,".data":4},"hitVas":["0x00407752","0x00411454","0x00459fbe","0x00459fca","0x0045aec2","0x004ccb66"]},{"tile":479,"u16le":"df 01","hitCount":5,"sectionCounts":{".text":5},"hitVas":["0x00407f28","0x004092e4","0x00423ba7","0x00430c06","0x0043161a"]}],"totalSequenceRows":13,"contiguousHitRows":0},"tileWriteCommandScan":{"status":"tile-write-handler-grounded-animation-binding-unproven","handlers":[{"opcode":"0x58","handlerVa":"0x00407686","commandBytes":8,"layout":"58 mode u16(tileId) u16(x) u16(y)","semantics":["mode 0 writes tileId to layer0 grid 0x00595af0 at y * mapWidth + x","mode 1 writes tileId/flag to layer1 grid 0x0058d7d0 at y * mapWidth + x","both modes call 0x004255eb(x, y) to invalidate the touched tile"],"promotion":"confirmed-handler"},{"opcode":"0x6b","handlerVa":"0x00408d10","commandBytes":12,"layout":"6b mode actorFilter u16(xOffset) u16(yOffset) u16(tileId)","semantics":["iterates active descriptor slots 0x004576e8/0x0059dd70","matches actor id or 0xff wildcard","writes tileId at active-object base coordinate plus signed offsets"],"promotion":"confirmed-handler-object-relative"},{"opcode":"0x76","handlerVa":"0x00409f23","commandBytes":12,"layout":"76 mode actorFilter u16(xOffset) u16(yOffset) u16(tileId)","semantics":["iterates linked active object list rooted at 0x00574100","matches actor id, 0xfe current context, or 0xff wildcard","writes tileId at active-object base coordinate plus signed offsets"],"promotion":"confirmed-handler-object-relative"}],"summary":{"animatedTileIdCount":27,"animatedCoordinatePairCount":1008,"maxAnimatedMapWidth":100,"maxAnimatedMapHeight":96,"candidateAlignmentCounts":{"vm-aligned-local-high":45,"vm-aligned-local-medium":45,"vm-aligned-local-weak":47},"plausibleAlignedOpcode58Count":90,"directAnimatedTileWriteCount":0,"coordinateOnlyAlignedHitCount":2,"coordinateOnlyInsideAnimatedRootCount":0,"coordinateOnlyRejectedCount":2,"rawAnimatedTileFalsePositiveSampleCount":8,"asciiFalsePositiveSampleCount":16},"directAnimatedTileWrites":[],"coordinateOnlyAlignedHits":[{"va":"0x00446ab8","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":20,"x":33,"y":61,"raw":"58 00 14 00 21 00 3d 00","alignmentStatus":"vm-aligned-local-high","bestRootVa":"0x00446aac","directReferenceCount":7,"preview":["0x6d 00 00 00","0x03 -> 0x004469d4","0x58 00 14 00 21 00 3d 00","0x32 00 f9 00 d0 6a 44 00","0x58 00 15 00 21 00 3d 00","0x05 00 00 00","0x08 00 00 00","0x03 00 00 00 00 00 00 10"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x00446aac","containingGroups":[{"id":"scene-text-group-005","selector":"13:1","rootVaHex":"0x00444a44","maps":["map5_11i","map5_12i","map5_13i","map5_14i","map5_15i","map5_16i","map5_17i","map5_18i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-004","selector":"56:0","rootVaHex":"0x0043fc5c","distanceBytes":13996,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-006","selector":"4:1","rootVaHex":"0x0044aad0","distanceBytes":16420,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_17h","map2_18d"],"animatedMaps":[],"animatedTilesets":["map_a1"],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"classification":"rejected-nonanimated-or-unbound-root","note":"The command touches a coordinate that is animated in at least one map, but writes a non-animated tile id. This is not visible animation proof unless the root also binds to the animated map."},{"va":"0x00446ac8","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":21,"x":33,"y":61,"raw":"58 00 15 00 21 00 3d 00","alignmentStatus":"vm-aligned-local-high","bestRootVa":"0x00446aac","directReferenceCount":7,"preview":["0x6d 00 00 00","0x03 -> 0x004469d4","0x58 00 14 00 21 00 3d 00","0x32 00 f9 00 d0 6a 44 00","0x58 00 15 00 21 00 3d 00","0x05 00 00 00","0x08 00 00 00","0x03 00 00 00 00 00 00 10"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x00446aac","containingGroups":[{"id":"scene-text-group-005","selector":"13:1","rootVaHex":"0x00444a44","maps":["map5_11i","map5_12i","map5_13i","map5_14i","map5_15i","map5_16i","map5_17i","map5_18i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-004","selector":"56:0","rootVaHex":"0x0043fc5c","distanceBytes":13996,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-006","selector":"4:1","rootVaHex":"0x0044aad0","distanceBytes":16420,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_17h","map2_18d"],"animatedMaps":[],"animatedTilesets":["map_a1"],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"classification":"rejected-nonanimated-or-unbound-root","note":"The command touches a coordinate that is animated in at least one map, but writes a non-animated tile id. This is not visible animation proof unless the root also binds to the animated map."}],"rawAnimatedTileFalsePositiveSamples":[{"va":"0x0047fb36","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":59,"x":0,"y":456,"raw":"58 00 3b 00 00 00 c8 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x0047fb36","directReferenceCount":0,"preview":["0x58 00 3b 00 00 00 c8 01"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x0047fb36","containingGroups":[{"id":"scene-text-group-012","selector":"1:0","rootVaHex":"0x00478364","maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_15j","map2_16j"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","distanceBytes":19030,"maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-011","selector":"19:1","rootVaHex":"0x004741c4","distanceBytes":30674,"maps":["map3_02f","map3_03h","map3_04h","map3_05h","map3_06h","map3_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"},{"va":"0x004bd74e","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":58,"x":0,"y":496,"raw":"58 00 3a 00 00 00 f0 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004bd74e","directReferenceCount":0,"preview":["0x58 00 3a 00 00 00 f0 01"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x004bd74e","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-018","selector":"11:0","rootVaHex":"0x004c3e08","distanceBytes":26298,"maps":["map2_15j","map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","distanceBytes":41338,"maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"},{"va":"0x004bd776","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":59,"x":0,"y":496,"raw":"58 00 3b 00 00 00 f0 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004bd776","directReferenceCount":0,"preview":["0x58 00 3b 00 00 00 f0 01"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x004bd776","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-018","selector":"11:0","rootVaHex":"0x004c3e08","distanceBytes":26258,"maps":["map2_15j","map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","distanceBytes":41378,"maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"},{"va":"0x004bd79e","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":59,"x":0,"y":496,"raw":"58 00 3b 00 00 00 f0 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004bd79e","directReferenceCount":0,"preview":["0x58 00 3b 00 00 00 f0 01"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x004bd79e","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-018","selector":"11:0","rootVaHex":"0x004c3e08","distanceBytes":26218,"maps":["map2_15j","map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","distanceBytes":41418,"maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"},{"va":"0x004e3f26","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":58,"x":0,"y":456,"raw":"58 00 3a 00 00 00 c8 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004e3f26","directReferenceCount":0,"preview":["0x58 00 3a 00 00 00 c8 01"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x004e3f26","containingGroups":[{"id":"scene-text-group-022","selector":"21:0","rootVaHex":"0x004e2374","maps":["map6_10e","map7_01f","map7_05h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-023","selector":"7:0","rootVaHex":"0x004e4388","distanceBytes":1122,"maps":["map4_08n"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-024","selector":"14:0","rootVaHex":"0x004e6254","distanceBytes":9006,"maps":["map4_01l","map4_08n","map4_09l"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"},{"va":"0x005172c2","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":60,"x":0,"y":456,"raw":"58 00 3c 00 00 00 c8 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x005172c2","directReferenceCount":0,"preview":["0x58 00 3c 00 00 00 c8 01"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x005172c2","containingGroups":[{"id":"scene-text-group-031","selector":"55:0","rootVaHex":"0x005137dc","maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-030","selector":"40:0","rootVaHex":"0x00503870","distanceBytes":15078,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-032","selector":"36:2","rootVaHex":"0x0051bf28","distanceBytes":19558,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"},{"va":"0x005172fa","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":60,"x":0,"y":456,"raw":"58 00 3c 00 00 00 c8 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x005172fa","directReferenceCount":0,"preview":["0x58 00 3c 00 00 00 c8 01"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x005172fa","containingGroups":[{"id":"scene-text-group-031","selector":"55:0","rootVaHex":"0x005137dc","maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-030","selector":"40:0","rootVaHex":"0x00503870","distanceBytes":15134,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-032","selector":"36:2","rootVaHex":"0x0051bf28","distanceBytes":19502,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"},{"va":"0x00517382","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":60,"x":0,"y":432,"raw":"58 00 3c 00 00 00 b0 01","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x00517382","directReferenceCount":0,"preview":["0x58 00 3c 00 00 00 b0 01"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x00517382","containingGroups":[{"id":"scene-text-group-031","selector":"55:0","rootVaHex":"0x005137dc","maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-030","selector":"40:0","rootVaHex":"0x00503870","distanceBytes":15270,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-032","selector":"36:2","rootVaHex":"0x0051bf28","distanceBytes":19366,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"rejectedReason":"known animated tile id appears, but x/y is outside known map dimensions; treated as false-positive byte overlap"}],"asciiFalsePositiveSamples":[{"va":"0x0043fbfa","mode":1,"modeMeaning":"write layer1 flag grid 0x0058d7d0","tile":0,"x":0,"y":0,"raw":"58 01 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x0043fbf6","directReferenceCount":0,"preview":["0x28 00 00 00","0x58 01 00 00 00 00 00 00","0x10 02 00 00"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x0043fbf6","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-004","selector":"56:0","rootVaHex":"0x0043fc5c","distanceBytes":102,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-005","selector":"13:1","rootVaHex":"0x00444a44","distanceBytes":20046,"maps":["map5_11i","map5_12i","map5_13i","map5_14i","map5_15i","map5_16i","map5_17i","map5_18i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"asciiContext":"zs_rr.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00442f24","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":0,"y":0,"raw":"58 00 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x00442f20","directReferenceCount":0,"preview":["0x60 00 00 00","0x58 00 00 00 00 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x00442f20","containingGroups":[{"id":"scene-text-group-004","selector":"56:0","rootVaHex":"0x0043fc5c","maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-005","selector":"13:1","rootVaHex":"0x00444a44","distanceBytes":6948,"maps":["map5_11i","map5_12i","map5_13i","map5_14i","map5_15i","map5_16i","map5_17i","map5_18i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-006","selector":"4:1","rootVaHex":"0x0044aad0","distanceBytes":31664,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_17h","map2_18d"],"animatedMaps":[],"animatedTilesets":["map_a1"],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"zky_gen.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00442f3c","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":0,"y":0,"raw":"58 00 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x00442f38","directReferenceCount":0,"preview":["0xc0 00 00 00","0x58 00 00 00 00 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x00442f38","containingGroups":[{"id":"scene-text-group-004","selector":"56:0","rootVaHex":"0x0043fc5c","maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-005","selector":"13:1","rootVaHex":"0x00444a44","distanceBytes":6924,"maps":["map5_11i","map5_12i","map5_13i","map5_14i","map5_15i","map5_16i","map5_17i","map5_18i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-006","selector":"4:1","rootVaHex":"0x0044aad0","distanceBytes":31640,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_17h","map2_18d"],"animatedMaps":[],"animatedTilesets":["map_a1"],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"zky_gen.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00487150","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":8,"y":0,"raw":"58 00 00 00 08 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x00487150","directReferenceCount":1,"preview":["0x58 00 00 00 08 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x00487150","containingGroups":[{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-012","selector":"1:0","rootVaHex":"0x00478364","distanceBytes":11204,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_15j","map2_16j"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":37760,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"middata.","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00487160","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":16,"y":0,"raw":"58 00 00 00 10 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x0048715c","directReferenceCount":1,"preview":["0x08 00 00 00","0x58 00 00 00 10 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x0048715c","containingGroups":[{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-012","selector":"1:0","rootVaHex":"0x00478364","distanceBytes":11216,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_15j","map2_16j"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":37748,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"middata.mlk","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00487170","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":24,"y":0,"raw":"58 00 00 00 18 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x0048716c","directReferenceCount":0,"preview":["0x10 00 00 00","0x58 00 00 00 18 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x0048716c","containingGroups":[{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-012","selector":"1:0","rootVaHex":"0x00478364","distanceBytes":11232,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_15j","map2_16j"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":37732,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"middata.mlk","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00487180","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":32,"y":0,"raw":"58 00 00 00 20 00 00 00","alignmentStatus":"vm-aligned-local-medium","bestRootVa":"0x00487180","directReferenceCount":1,"preview":["0x58 00 00 00 20 00 00 00","0x6d 69 64 64","0x61 74 61 2e","0x6d 6c 6b 00","0x40 03 00 00","0x40 08 00 00","0x40 0d 00 00","0x00 00 03 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x00487180","containingGroups":[{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-012","selector":"1:0","rootVaHex":"0x00478364","distanceBytes":11252,"maps":["map2_02d","map2_09g","map2_10g","map2_11g","map2_12h","map2_14j","map2_15j","map2_16j"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":37712,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"middata.mlk","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00490047","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":0,"y":0,"raw":"58 00 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x00490047","directReferenceCount":1,"preview":["0x58 00 00 00 00 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x00490047","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":1161,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","distanceBytes":16131,"maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"asciiContext":"zky_ao.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x0049005f","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":0,"y":0,"raw":"58 00 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x0049005f","directReferenceCount":0,"preview":["0x58 00 00 00 00 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x0049005f","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":1137,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","distanceBytes":16155,"maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"asciiContext":"zky_ao.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x00490073","mode":1,"modeMeaning":"write layer1 flag grid 0x0058d7d0","tile":0,"x":88,"y":0,"raw":"58 01 00 00 58 00 00 00","alignmentStatus":"vm-aligned-local-medium","bestRootVa":"0x00490073","directReferenceCount":0,"preview":["0x58 01 00 00 58 00 00 00","0x20 00 00 00 00 00 00 00","0x58 01 00 00 00 00 00 00","0xc0 01 00 00","0x58 00 00 00 00 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x00490073","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":1117,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","distanceBytes":16175,"maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"asciiContext":"_ao.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x0049047b","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":32,"y":0,"raw":"58 00 00 00 20 00 00 00","alignmentStatus":"vm-aligned-local-medium","bestRootVa":"0x00490477","directReferenceCount":0,"preview":["0xc0 00 00 00","0x58 00 00 00 20 00 00 00","0x18 00 00 00 c0 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"map-binding-unproven","rootVaHex":"0x00490477","containingGroups":[],"nearestGroups":[{"id":"scene-text-group-014","selector":"38:0","rootVaHex":"0x004904d0","distanceBytes":89,"maps":[],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-only-text-range-candidate"},{"id":"scene-text-group-013","selector":"12:0","rootVaHex":"0x0048458c","distanceBytes":17203,"maps":["map5_14i","map5_37i"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"No resource group or scene record currently binds this VM root to a specific animated map."},"asciiContext":"zi_ibo.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x004a3d61","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":64,"y":0,"raw":"58 00 00 00 40 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004a3d61","directReferenceCount":0,"preview":["0x58 00 00 00 40 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x004a3d61","containingGroups":[{"id":"scene-text-group-015","selector":"8:0","rootVaHex":"0x00494c34","maps":["map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h","map5_08h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-016","selector":"15:0","rootVaHex":"0x004a4e9c","distanceBytes":4411,"maps":["map4_02f","map4_03h","map4_04h","map4_05h","map4_06h","map4_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","distanceBytes":33707,"maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"zi_ikkak.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x004a3d71","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":0,"y":0,"raw":"58 00 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004a3d71","directReferenceCount":0,"preview":["0x58 00 00 00 00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x004a3d71","containingGroups":[{"id":"scene-text-group-015","selector":"8:0","rootVaHex":"0x00494c34","maps":["map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h","map5_08h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-016","selector":"15:0","rootVaHex":"0x004a4e9c","distanceBytes":4395,"maps":["map4_02f","map4_03h","map4_04h","map4_05h","map4_06h","map4_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","distanceBytes":33691,"maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"zi_ikkak.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x004a5adc","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":0,"y":0,"raw":"58 00 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004a5ad8","directReferenceCount":0,"preview":["0x60 00 00 00","0x58 00 00 00 00 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x004a5ad8","containingGroups":[{"id":"scene-text-group-016","selector":"15:0","rootVaHex":"0x004a4e9c","maps":["map4_02f","map4_03h","map4_04h","map4_05h","map4_06h","map4_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-015","selector":"8:0","rootVaHex":"0x00494c34","distanceBytes":7404,"maps":["map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h","map5_08h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","distanceBytes":26164,"maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"zky_shu.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x004a5af4","mode":0,"modeMeaning":"write layer0 tile grid 0x00595af0","tile":0,"x":0,"y":0,"raw":"58 00 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004a5af0","directReferenceCount":0,"preview":["0xc0 00 00 00","0x58 00 00 00 00 00 00 00","0x00 00 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x004a5af0","containingGroups":[{"id":"scene-text-group-016","selector":"15:0","rootVaHex":"0x004a4e9c","maps":["map4_02f","map4_03h","map4_04h","map4_05h","map4_06h","map4_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-015","selector":"8:0","rootVaHex":"0x00494c34","distanceBytes":7428,"maps":["map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h","map5_08h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","distanceBytes":26140,"maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"zky_shu.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"},{"va":"0x004b0f12","mode":1,"modeMeaning":"write layer1 flag grid 0x0058d7d0","tile":0,"x":0,"y":0,"raw":"58 01 00 00 00 00 00 00","alignmentStatus":"vm-aligned-local-weak","bestRootVa":"0x004b0f0e","directReferenceCount":0,"preview":["0x28 00 00 00","0x58 01 00 00 00 00 00 00","0x40 02 00 00"],"resourceBinding":{"status":"resource-group-contained-nonanimated","rootVaHex":"0x004b0f0e","containingGroups":[{"id":"scene-text-group-017","selector":"18:0","rootVaHex":"0x004ac10c","maps":["map2_04l","map2_05e","map2_06e","map2_07e","map2_08e","map6_01e","map6_02e","map6_03e"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"nearestGroups":[{"id":"scene-text-group-016","selector":"15:0","rootVaHex":"0x004a4e9c","distanceBytes":42338,"maps":["map4_02f","map4_03h","map4_04h","map4_05h","map4_06h","map4_07h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"},{"id":"scene-text-group-015","selector":"8:0","rootVaHex":"0x00494c34","distanceBytes":53538,"maps":["map5_01f","map5_02h","map5_03h","map5_04h","map5_05h","map5_06h","map5_07h","map5_08h"],"animatedMaps":[],"animatedTilesets":[],"linkClass":"selector-root-resource-text-range-candidate"}],"note":"The VM root falls inside a selector-root group, but that group does not reference the currently known 0x40 animated maps/tilesets."},"asciiContext":"zs_rg.cns","rejectedReason":"candidate overlaps asset/string bytes rather than an isolated VM command stream"}],"conclusion":["Tile-grid mutation opcodes are real and their layouts are now separated from palette evidence.","No aligned, plausible opcode 0x58 command was found that directly writes one of the current known 0x40 animated layer0 tile ids.","Some aligned tile writes touch coordinates that are animated in a known map, but the known hits either write ordinary tile ids from nonanimated/unbound roots or overlap resource/descriptor tables.","Object-relative tile write opcodes 0x6b/0x76 may matter for doors/NPC/event map edits, but they do not currently bind the fire/waterfall loop."]},"surfaceSelfBlitCommandScan":{"status":"self-blit-helper-grounded-map-c-beach-runtime-confirmed","confirmedHelperPath":[{"va":"0x004256D1","role":"surface self-blit helper","evidence":"calls BltFast wrapper twice, surface 0x0a -> 0x0a and surface 0x0b -> 0x0b, using rectBase + wordIndex * 16"},{"va":"0x0040791F","role":"stream consumer into self-blit helper","evidence":"reads current stream pointer from context+0x40, rect table base from context+0xa8, then forwards two stream words into 0x004256D1"},{"va":"0x00417750","role":"DirectDraw Blt/BltFast wrapper","evidence":"final DirectDraw surface copy wrapper used by the self-blit helper"}],"mapARectTables":[{"baseVa":"0x00442761","role":"map_a 64x48 cache block + source frames","rects":[{"index":0,"va":"0x00442761","rect":[576,144,640,192],"size":[64,48]},{"index":1,"va":"0x00442771","rect":[0,144,64,192],"size":[64,48]},{"index":2,"va":"0x00442781","rect":[64,144,128,192],"size":[64,48]},{"index":3,"va":"0x00442791","rect":[128,144,192,192],"size":[64,48]}]},{"baseVa":"0x004427A1","role":"map_b/map_a strip-style cache source candidate","rects":[{"index":0,"va":"0x004427a1","rect":[192,144,256,192],"size":[64,48]},{"index":1,"va":"0x004427b1","rect":[544,144,560,192],"size":[16,48]},{"index":2,"va":"0x004427c1","rect":[0,144,16,192],"size":[16,48]},{"index":3,"va":"0x004427d1","rect":[16,144,32,192],"size":[16,48]}]},{"baseVa":"0x004427B1","role":"strip cache rect continuation","rects":[{"index":0,"va":"0x004427b1","rect":[544,144,560,192],"size":[16,48]},{"index":1,"va":"0x004427c1","rect":[0,144,16,192],"size":[16,48]},{"index":2,"va":"0x004427d1","rect":[16,144,32,192],"size":[16,48]},{"index":3,"va":"0x004427e1","rect":[32,144,48,192],"size":[16,48]}]}],"mapACommandSamples":[{"va":"0x00442b09","opcode":"0x5d","submode":"0x02","word4":0,"word6":1,"ptrOrArg8":"0x00020002","raw":"5d 02 00 00 00 00 01 00 02 00 02 00"},{"va":"0x00442b15","opcode":"0x5d","submode":"0x02","word4":0,"word6":2,"ptrOrArg8":"0x00020002","raw":"5d 02 00 00 00 00 02 00 02 00 02 00"},{"va":"0x00442b21","opcode":"0x5d","submode":"0x02","word4":0,"word6":3,"ptrOrArg8":"0x00020002","raw":"5d 02 00 00 00 00 03 00 02 00 02 00"},{"va":"0x00442b2d","opcode":"0x5d","submode":"0x02","word4":0,"word6":4,"ptrOrArg8":"0x00020002","raw":"5d 02 00 00 00 00 04 00 02 00 02 00"},{"va":"0x00442b49","opcode":"0x5d","submode":"0x02","word4":0,"word6":1,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 00 00 01 00 5d 02 00 00"},{"va":"0x00442b51","opcode":"0x5d","submode":"0x02","word4":4,"word6":5,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 04 00 05 00 5d 02 00 00"},{"va":"0x00442b59","opcode":"0x5d","submode":"0x02","word4":8,"word6":9,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 08 00 09 00 5d 02 00 00"},{"va":"0x00442b61","opcode":"0x5d","submode":"0x02","word4":12,"word6":13,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 0c 00 0d 00 5d 02 00 00"},{"va":"0x00442b69","opcode":"0x5d","submode":"0x02","word4":16,"word6":17,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 10 00 11 00 5d 02 00 00"},{"va":"0x00442b71","opcode":"0x5d","submode":"0x02","word4":20,"word6":21,"ptrOrArg8":"0x00020002","raw":"5d 02 00 00 14 00 15 00 02 00 02 00"},{"va":"0x00442b7d","opcode":"0x5d","submode":"0x02","word4":0,"word6":2,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 00 00 02 00 5d 02 00 00"},{"va":"0x00442b85","opcode":"0x5d","submode":"0x02","word4":4,"word6":6,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 04 00 06 00 5d 02 00 00"},{"va":"0x00442b8d","opcode":"0x5d","submode":"0x02","word4":8,"word6":10,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 08 00 0a 00 5d 02 00 00"},{"va":"0x00442b95","opcode":"0x5d","submode":"0x02","word4":12,"word6":14,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 0c 00 0e 00 5d 02 00 00"},{"va":"0x00442b9d","opcode":"0x5d","submode":"0x02","word4":16,"word6":18,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 10 00 12 00 5d 02 00 00"},{"va":"0x00442ba5","opcode":"0x5d","submode":"0x02","word4":20,"word6":22,"ptrOrArg8":"0x00020002","raw":"5d 02 00 00 14 00 16 00 02 00 02 00"},{"va":"0x00442bb1","opcode":"0x5d","submode":"0x02","word4":0,"word6":3,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 00 00 03 00 5d 02 00 00"},{"va":"0x00442bb9","opcode":"0x5d","submode":"0x02","word4":4,"word6":7,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 04 00 07 00 5d 02 00 00"},{"va":"0x00442bc1","opcode":"0x5d","submode":"0x02","word4":8,"word6":11,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 08 00 0b 00 5d 02 00 00"},{"va":"0x00442bc9","opcode":"0x5d","submode":"0x02","word4":12,"word6":15,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 0c 00 0f 00 5d 02 00 00"},{"va":"0x00442bd1","opcode":"0x5d","submode":"0x02","word4":16,"word6":19,"ptrOrArg8":"0x0000025d","raw":"5d 02 00 00 10 00 13 00 5d 02 00 00"},{"va":"0x00442bd9","opcode":"0x5d","submode":"0x02","word4":20,"word6":23,"ptrOrArg8":"0x00020002","raw":"5d 02 00 00 14 00 17 00 02 00 02 00"},{"va":"0x00442bf5","opcode":"0x5d","submode":"0x02","word4":0,"word6":1,"ptrOrArg8":"0x00040002","raw":"5d 02 00 00 00 00 01 00 02 00 04 00"},{"va":"0x00442c01","opcode":"0x5d","submode":"0x02","word4":0,"word6":2,"ptrOrArg8":"0x00040002","raw":"5d 02 00 00 00 00 02 00 02 00 04 00"}],"mapCRootCommandCandidates":[{"va":"0x0045dbb8","opcode":"0x65","submode":"0x02","word4":1,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 01 00 02 00 70 dd 45 00"},{"va":"0x0045dbcc","opcode":"0x65","submode":"0x02","word4":2,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 02 00 02 00 70 dd 45 00"},{"va":"0x0045dbe0","opcode":"0x65","submode":"0x02","word4":3,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 03 00 02 00 70 dd 45 00"},{"va":"0x0045dbf4","opcode":"0x65","submode":"0x02","word4":4,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 04 00 02 00 70 dd 45 00"},{"va":"0x0045dc08","opcode":"0x65","submode":"0x02","word4":5,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 05 00 02 00 70 dd 45 00"},{"va":"0x0045dc1c","opcode":"0x65","submode":"0x02","word4":6,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 06 00 02 00 70 dd 45 00"},{"va":"0x0045dc30","opcode":"0x65","submode":"0x02","word4":7,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 07 00 02 00 70 dd 45 00"},{"va":"0x0045dc44","opcode":"0x65","submode":"0x02","word4":8,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 08 00 02 00 70 dd 45 00"},{"va":"0x0045dc58","opcode":"0x65","submode":"0x02","word4":9,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 09 00 02 00 70 dd 45 00"},{"va":"0x0045dc6c","opcode":"0x65","submode":"0x02","word4":10,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 0a 00 02 00 70 dd 45 00"},{"va":"0x0045dc80","opcode":"0x65","submode":"0x02","word4":11,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 0b 00 02 00 70 dd 45 00"},{"va":"0x0045dc94","opcode":"0x65","submode":"0x02","word4":12,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 0c 00 02 00 70 dd 45 00"},{"va":"0x0045dca8","opcode":"0x65","submode":"0x02","word4":13,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 0d 00 02 00 70 dd 45 00"},{"va":"0x0045dcbc","opcode":"0x65","submode":"0x02","word4":14,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 0e 00 02 00 70 dd 45 00"},{"va":"0x0045dcd0","opcode":"0x65","submode":"0x02","word4":15,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 0f 00 02 00 70 dd 45 00"},{"va":"0x0045dce4","opcode":"0x65","submode":"0x02","word4":16,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 10 00 02 00 70 dd 45 00"},{"va":"0x0045dcf8","opcode":"0x65","submode":"0x02","word4":17,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 11 00 02 00 70 dd 45 00"},{"va":"0x0045dd0c","opcode":"0x65","submode":"0x02","word4":18,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 12 00 02 00 70 dd 45 00"},{"va":"0x0045dd20","opcode":"0x65","submode":"0x02","word4":19,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 13 00 02 00 70 dd 45 00"},{"va":"0x0045dd34","opcode":"0x65","submode":"0x02","word4":20,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 14 00 02 00 70 dd 45 00"},{"va":"0x0045dd48","opcode":"0x65","submode":"0x02","word4":21,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 15 00 02 00 70 dd 45 00"},{"va":"0x0045dd5c","opcode":"0x65","submode":"0x02","word4":22,"word6":2,"ptrOrArg8":"0x0045dd70","raw":"65 02 00 00 16 00 02 00 70 dd 45 00"},{"va":"0x0045e250","opcode":"0x65","submode":"0x02","word4":0,"word6":2,"ptrOrArg8":"0x0045e284","raw":"65 02 00 00 00 00 02 00 84 e2 45 00"},{"va":"0x0045e25c","opcode":"0x65","submode":"0x02","word4":1,"word6":2,"ptrOrArg8":"0x0045e284","raw":"65 02 00 00 01 00 02 00 84 e2 45 00"}],"mapCRuntimeTraceEvidence":{"trace":"captures/runtime/hwanse-runtime-trace-2026-07-11T15-18-27-318Z-ani-wave.jsonl","selfBlitCaller":"0x004177DA","screenConsumerCaller":"0x00419BC7","surfaces":["map_c1.cns","map_c2.cns"],"cacheDestRect":[592,160,640,192],"sourceFrameRects":[[0,160,48,192],[48,160,96,192],[96,160,144,192],[144,160,192,192],[192,160,240,192],[240,160,288,192],[288,160,336,192],[336,160,384,192],[384,160,432,192],[432,160,480,192]],"observedCadence":"every 4 runtime frames, roughly 200ms in ani-wave"},"summary":{"mapACommandSampleCount":24,"mapCRootCandidateCount":24},"conclusion":["The self-blit/cache mechanism is real and is strong evidence for map_a/map_b style animation when paired with runtime surface traces.","ani-wave runtime binds map_c beach motion to the same cache-consumer model: map_c1/map_c2 self-blit 48x32 source frames into cache 592,160..640,192, then 0x00419BC7 draws those cache cells.","The older map_c 0x65/0x02 local-root rows remain unpromoted and should not be used as the animation model now that the runtime cache path is known."]},"mapC3WhirlpoolObjectAnimation":{"status":"source-rect-table-and-slot-frame-loop-confirmed-placement-candidate","asset":"map_c3.cns","map":"map6_26c","sourceRectTableVa":"0x0052df6c","sourceRects":[{"index":0,"va":"0x0052df6c","rect":[0,0,160,128],"size":[160,128]},{"index":1,"va":"0x0052df7c","rect":[160,0,320,128],"size":[160,128]},{"index":2,"va":"0x0052df8c","rect":[320,0,480,128],"size":[160,128]},{"index":3,"va":"0x0052df9c","rect":[480,0,640,128],"size":[160,128]}],"frameLoopHits":[{"va":"0x005314f0","raw":"21 00 01 00 00 00 0c 00 21 00 01 00 01 00 0c 00 21 00 01 00 02 00 0c 00 21 00 01 00 03 00 0c 00","frames":[0,1,2,3],"slotHex":"0x000c","nearbyPlacementCandidates":[{"x":53,"y":4,"evidence":"word-pairs e802 0035, ea02 0004"}],"contextVa":"0x00531490","contextWords":["0x0007","0x0000","0x1408","0x0053","0x0003","0x0000","0x1440","0x0053","0x0021","0x0001","0x000a","0x0026","0x0003","0x0000","0x14a0","0x0053","0x0008","0x0000","0x0003","0x0000","0x0000","0x1000","0xe802","0x0035","0xea02","0x0004","0xe601","0x0008","0xe701","0x0000","0x2c03","0x0000","0x0001","0x0000","0x1402","0x0101","0x00ff","0x0000","0x0020","0x0000","0x14f0","0x0053","0x0001","0x0000","0x0003","0x0000","0x14e4","0x0053"]},{"va":"0x00531bc8","raw":"21 00 01 00 00 00 0c 00 21 00 01 00 01 00 0c 00 21 00 01 00 02 00 0c 00 21 00 01 00 03 00 0c 00","frames":[0,1,2,3],"slotHex":"0x000c","nearbyPlacementCandidates":[{"x":53,"y":4,"evidence":"word-pairs e802 0035, ea02 0004"}],"contextVa":"0x00531b68","contextWords":["0x0021","0x0001","0x0008","0x0016","0x0003","0x0000","0x1b50","0x0053","0x0021","0x0001","0x0009","0x0016","0x0003","0x0000","0x1b78","0x0053","0x0008","0x0000","0x0003","0x0000","0x0000","0x1000","0xe802","0x0035","0xea02","0x0004","0xe601","0x0008","0xe701","0x0000","0x2c03","0x0000","0x0001","0x0000","0x1402","0x0101","0x00ff","0x0000","0x0020","0x0000","0x1bc8","0x0053","0x0001","0x0000","0x0003","0x0000","0x1bbc","0x0053"]}],"resourceRefs":[{"map":"map2_13c","recordVa":"0x00531fc4","resourceRefVa":"0x00531fec","slotHex":"0x000c","string":"map_c3.cns","placementStatus":"resource-ref-only; candidate x=53 exceeds map width 37"},{"map":"map6_26c","recordVa":"0x0053207c","resourceRefVa":"0x005320a4","slotHex":"0x000c","string":"map_c3.cns","placementStatus":"source-rect-and-frame-loop-confirmed; placement candidate x=53,y=4"}],"candidatePlacement":{"x":53,"y":4,"w":10,"h":8,"hitCount":2,"evidenceStatus":"nearby-active-object-position-word-pairs; direct draw consumer still unproven"},"conclusion":["map_c3.cns is a four-frame 160x128 whirlpool sheet, grounded by EXE source rect table 0x0052df6c.","The slot 0x0c frame loop 0,1,2,3 appears exactly twice in the EXE at 0x005314f0 and 0x00531bc8.","Both loop contexts carry nearby e802/ea02 word pairs with x=53,y=4, which is plausible for map6_26c and out of bounds for map2_13c; map_review therefore renders map6_26c at tile 53,4 as a placement candidate.","The final unresolved item is a direct map-space draw consumer/runtime trace tying those word pairs to the visible object position."]},"map1PaletteCandidates":[{"va":"0x0043d920","opcode":"0x38","mode":1,"kind":"range-step-to-rgb","range":{"start":16,"end":239,"startHex":"0x10","endHex":"0xef"},"effectScope":{"class":"broad-screen-palette-transition","paletteEntryCount":224,"note":"Touches a broad palette range; treat as screen fade/transition evidence, not a localized map animation loop by itself."},"payloadHex":"00 00 00 20","scriptAlignment":{"status":"vm-aligned-local-high","bestRootVa":"0x0043d904","directReferenceCount":6,"preview":["0x01 00 00 00","0x38/m1 range-step-to-rgb 0x30+192 rgb=(0, 0, 0) repeat=64","0x06 -> 0x0043d904","0x05 00 00 00","0x01 00 00 00","0x38/m1 range-step-to-rgb 0x10+224 rgb=(0, 0, 0) repeat=32","0x06 -> 0x0043d91c","0x05 00 00 00"],"note":"Local alignment proof only. This shows the palette bytes fit the generic VM command stream shape; it does not yet bind the stream to a specific map root."},"resourceBinding":{"status":"near-animated-scene-record-unverified","rootVaHex":"0x0043d904","nearestAnimatedSceneRecords":[{"map":"map1_01a","recordVaHex":"0x0043e798","sceneIdHex":"0x0518","distanceBytes":3732,"tilesets":["map_a1","map_a2"],"resources":["map_a1","map_a2","cara_at2","face_01","cara_etc"],"animatedMap":true,"animatedTilesets":["map_a1"]},{"map":"map1_02b","recordVaHex":"0x0043e7f0","sceneIdHex":"0x0618","distanceBytes":3820,"tilesets":["map_b1","map_b2","map_b3"],"resources":["map_b1","map_b2","map_b3","face_01","cara_01"],"animatedMap":true,"animatedTilesets":["map_b1"]}],"nearestGroups":[{"id":"scene-text-group-004","selector":"56:0","rootVaHex":"0x0043fc5c","distanceBytes":9048,"maps":[],"animatedMaps":[]},{"id":"scene-text-group-005","selector":"13:1","rootVaHex":"0x00444a44","distanceBytes":28992,"maps":["map5_11i","map5_12i","map5_13i","map5_14i","map5_15i","map5_16i","map5_17i","map5_18i"],"animatedMaps":[]}]}},{"va":"0x0043d96c","opcode":"0x38","mode":2,"kind":"range-step-to-backup","range":{"start":16,"end":239,"startHex":"0x10","endHex":"0xef"},"effectScope":{"class":"broad-screen-palette-transition","paletteEntryCount":224,"note":"Touches a broad palette range; treat as screen fade/transition evidence, not a localized map animation loop by itself."},"payloadHex":"20 00 00 00","scriptAlignment":{"status":"vm-aligned-local-high","bestRootVa":"0x0043d91c","directReferenceCount":4,"preview":["0x01 00 00 00","0x38/m1 range-step-to-rgb 0x10+224 rgb=(0, 0, 0) repeat=32","0x06 -> 0x0043d91c","0x05 00 00 00","0x01 00 00 00","0x38/m2 range-step-to-backup 0x30+192 repeat=64","0x06 -> 0x0043d934","0x6d 00 00 00"],"note":"Local alignment proof only. This shows the palette bytes fit the generic VM command stream shape; it does not yet bind the stream to a specific map root."},"resourceBinding":{"status":"near-animated-scene-record-unverified","rootVaHex":"0x0043d91c","nearestAnimatedSceneRecords":[{"map":"map1_01a","recordVaHex":"0x0043e798","sceneIdHex":"0x0518","distanceBytes":3708,"tilesets":["map_a1","map_a2"],"resources":["map_a1","map_a2","cara_at2","face_01","cara_etc"],"animatedMap":true,"animatedTilesets":["map_a1"]},{"map":"map1_02b","recordVaHex":"0x0043e7f0","sceneIdHex":"0x0618","distanceBytes":3796,"tilesets":["map_b1","map_b2","map_b3"],"resources":["map_b1","map_b2","map_b3","face_01","cara_01"],"animatedMap":true,"animatedTilesets":["map_b1"]}],"nearestGroups":[{"id":"scene-text-group-004","selector":"56:0","rootVaHex":"0x0043fc5c","distanceBytes":9024,"maps":[],"animatedMaps":[]},{"id":"scene-text-group-005","selector":"13:1","rootVaHex":"0x00444a44","distanceBytes":28968,"maps":["map5_11i","map5_12i","map5_13i","map5_14i","map5_15i","map5_16i","map5_17i","map5_18i"],"animatedMaps":[]}]}}],"mapReviewPreviewMeaning":{"source":"web/map_review.html MAP_ANIMATION_PREVIEWS","meaning":"visual approximation / audit helper","notProofOf":"runtime tile-id replacement","whyStillUseful":"It lets a human compare promoted visible fire/waterfall/beach motion while keeping palette/tile-write candidates separate. map_c beach preview is now runtime-confirmed from ani-wave self-blit/cache evidence rather than the older unpromoted row-pair or pixel-scroll review candidates."}}
