Handler tables, opcode 0x0b text rendering, opcode 0x0d text-source production, and dialogue storage blocks are grounded. The evidence still cannot promote story dialogue execution because only the text-source subset, opcode 0x02 cursor/separator, and a small control/display opcode subset are grounded; route-linked VM execution is absent, scene event text refs are zero, and the browser runtime only records partial dialogue replay plus bounded browser-side branch/control replay for indexed dialogue candidates rather than executing the full original event VM bytecode. The event VM promotion gate classifies that browser replay as non-promoting until route dispatch, full decode, story flag mutation, full browser VM execution, and event-driven battle entry are proven.
Promotion status: handler-storage-grounded-execution-missing
browserReplayClassification: browser-partial-known-opcode-replay-not-original-event-vm-runtime
browserReplayPromotesOriginalEventVm: False
remainingOriginalEventVmProofInputs: ["fullInstructionLengthDecode", "fullOperandLayoutDecode", "routeLinkedEventVmExecution", "sceneEventDialogueBinding", "originalStoryFlagMutation", "fullBrowserEventVmImplementation", "eventDrivenBattleEntry"]
| field | value |
|---|---|
| source | out/script_handler_table.json |
| scope | first-byte handler candidates from save-selector leaf stream dwords |
| handlerTableVaHex | 0x00440720 |
| opcodeCount | 35 |
| codeHandlerCount | 26 |
| defaultHandlerCount | 9 |
| defaultHandlerVaHex | 0x0040239f |
| firstByteCandidateOnly | True |
| instructionLengthFullyDecoded | False |
| operandLayoutFullyDecoded | False |
| field | value |
|---|---|
| source | out/save_selector_branch_state_dispatch.json |
| tableVaHex | 0x0047f1d8 |
| entryCount | 64 |
| tableEntryCount | 64 |
| textEntryCount | 64 |
| uniqueCodeHandlerCount | 56 |
| dispatcherVaHex | 0x0041b687 |
| dispatchCallVaHex | 0x0041b6cd |
| dispatcherVerified | True |
| handlerScanCount | 56 |
| matchedTextHandlerCount | 4 |
| directTextRoutineHandlerCount | 1 |
| classificationCounts | {"battle-action": 1, "item-menu": 1, "text-routine-runtime-source": 1, "text-table": 1} |
| field | value |
|---|---|
| source | out/event_text_source_flow.json |
| commandCount | 3265 |
| commandCountsByOpcode | {"0x0b": 3179, "0x0c": 3, "0x0d": 83} |
| opcode0dMediumCommandCount | 79 |
| routeLinkedCommandCount | 2 |
| routeLinkedCommandsArePointerOverlap | True |
| pointerOverlapCountsByOpcode | {"0x0b": 2, "0x0c": 3, "0x0d": 4} |
| confidenceCounts | {"low": 9, "medium": 3256} |
| field | value |
|---|---|
| source | out/event_vm_opcode_semantics.json |
| status | text-opcode-semantics-grounded-route-execution-missing |
| dispatcherVerified | True |
| textSourceOpcodeLengthsDecoded | True |
| textSourceOperandSemanticsGrounded | True |
| decodedTextSourceOpcodeLengths | {"0x0b": 4, "0x0c": 20, "0x0d": 8} |
| displayCursorOpcodeGrounded | True |
| decodedDisplayCursorOpcodeLengths | {"0x02": 4} |
| displayCursorCommandCount | 526 |
| controlOpcodeSemanticsGrounded | True |
| groundedControlOpcodeCount | 11 |
| decodedControlOpcodeLengths | {"0x03": 4, "0x04": 4, "0x06": 4, "0x07": 8, "0x09": 8, "0x0e": 8, "0x15": 8, "0x1b": 4, "0x37": 4} |
| variableLengthControlOpcodes | {"0x08": {"mode0": 4, "mode1": 8}} |
| controlOpcodeCommandCounts | {"0x03": 77, "0x04": 21, "0x06": 243, "0x07": 75, "0x08": 75, "0x09": 143, "0x0a": 95, "0x0e": 87, "0x15": 59, "0x1b": 78, "0x37": 54} |
| groundedControlCommandCount | 1007 |
| groundedControlEventCount | 1007 |
| groundedControlEventOpcodeSet | ["0x03", "0x04", "0x06", "0x07", "0x08", "0x09", "0x0a", "0x0e", "0x15", "0x1b", "0x37"] |
| groundedControlSampleEffectExecutionCount | 0 |
| browserGroundedControlEventsPreserved | True |
| literalStorageOpcodeObserved | True |
| literalStorageEventCount | 249 |
| opcode0cPointerOverlapNotPromoted | True |
| browserPartialReplayMatchesTextSemantics | True |
| routeLinkedEventVmExecution | False |
| browserFullEventVmImplemented | False |
| fullInstructionLengthFullyDecoded | False |
| fullOperandLayoutFullyDecoded | False |
| field | value |
|---|---|
| source | out/event_dialogue_blocks.json |
| blockCount | 47 |
| dialogueLikeBlockCount | 43 |
| routeLinkedBlockCount | 0 |
| classificationCounts | {"battle-dialogue-like": 7, "map-dialogue-like": 7, "story-dialogue-like": 29, "system-text-like": 4} |
| partialVmReplayBlockCount | 47 |
| partialVmReplayOpcodeSet | ["0x02", "0x0b", "0x0d", "0x35"] |
| literalVmReplayBlockCount | 41 |
| literalVmReplayEventCount | 249 |
| groundedControlReplayBlockCount | 47 |
| groundedControlReplayEventCount | 1007 |
| groundedControlReplayOpcodeSet | ["0x03", "0x04", "0x06", "0x07", "0x08", "0x09", "0x0a", "0x0e", "0x15", "0x1b", "0x37"] |
| field | value |
|---|---|
| source | out/scene_event_text_refs.json |
| eventCount | 11 |
| directTextRefCount | 0 |
| textTableRefCount | 0 |
| textCandidateCount | 132 |
| textClusterCount | 14 |
| field | value |
|---|---|
| source | out/dialogue_candidate_review_summary.json |
| status | passed |
| groundedControlEffectsExecuted | True |
| groundedControlExecutedEventCount | 15 |
| groundedControlExecutedOpcodeSet | ["0x03", "0x06", "0x07", "0x08", "0x09", "0x0a", "0x15", "0x1b", "0x37"] |
| groundedControlWaitForInputReleaseCount | 4 |
| groundedControlBranchCallCount | 4 |
| groundedControlObjectPositionCount | 1 |
| controlFlowSummary | event-dialogue-block-005 calls=4 returns=1 maxDepth=4 finalDepth=4 underflowReturns=1 firstTarget=0x0045ee2c firstContinuation=0x0045ee64 dataBank=0 dataBankSelects=1 branchExecSteps=62 branchExecRenders=6 branchExecLineAdvances=8 branchExecWaits=4 branchExecReturns=5 branchExecMaxDepth=1 branchExecFinalDepth=0 branchExecHalt=end-of-known-instructions branchExecFirstTarget=0x0045ee2c branchExecFirstContinuation=0x0045ee64 branchTextOrigin=5:0x0045ee44:16,16 branchGlobalTimer=5:0x0045ee4c:0 browserEventVmBranchExecutionImplemented=True browserEventVmBranchTextOriginImplemented=True browserEventVmBranchGlobalTimerImplemented=True browserEventVmControlFlowSummaryImplemented=True originalEventVmRuntimeImplemented=False |
| branchExecutionStepCount | 62 |
| branchExecutionRenderCount | 6 |
| branchExecutionLineAdvanceCount | 8 |
| branchExecutionWaitCount | 4 |
| branchExecutionReturnCount | 5 |
| branchTextOrigin | 5:0x0045ee44:16,16 |
| branchGlobalTimer | 5:0x0045ee4c:0 |
| renderStateSnapshotCount | 2 |
| renderStateSummary | event-dialogue-block-005 snapshots=2 renderVa=0x0045ee54 lineIndex=0 textSource=0x00030000 origin=16,16 cursor=16,16 fontRow=0 style=default dataBank=0 appliedControls=6 browserEventVmRenderStateSnapshotImplemented=True originalEventVmRuntimeImplemented=False |
| displayStyleSummary | event-dialogue-block-005 fontRow=0 styleMode=0 styleTableIndex=0 styleName=default textColor=#f5eec8 headerColor=#9bd4ff fontPx=17 lineHeight=24 timerSeed=0 browserEventVmDisplayStyleImplemented=True browserEventVmDisplayTimerStateImplemented=True originalEventVmRuntimeImplemented=False |
| displayStyleProbeSummary | event-dialogue-block-029 fontRow=2 styleTableIndex=1 styleName=emphasis textColor=#ffe07a headerColor=#ffd447 fontPx=15 lineHeight=22 displayTimerRaw=2880 branchFontRow=12:0x004ec78a:2 branchDisplayStyle=12:0x004ec78e:1:emphasis branchObjectPosition=12:0x004ec79a:144,248 branchDisplayTimer=12:0x004ec7a2:2880 browserEventVmDisplayStyleImplemented=True browserEventVmDisplayTimerStateImplemented=True browserEventVmBranchDisplayTimerImplemented=True originalEventVmRuntimeImplemented=False |
| cursorRelativeSummary | event-dialogue-block-028 cursorRelativeCount=37 lineLayoutCount=20 currentLine=기본기 cursorRaw=24,96 cursorRelative=24,96 branchCursorRelative=37:0x004e8054:24,96 branchDisplayTimer=5:0x004e7ffc:1856 branchStyle=6:0x004e7ff0:0 branchObject=5:0x004e8000:0,352 branchDataBank=4:0x004e8088:0 browserEventVmCursorRelativeLayoutImplemented=True browserEventVmBranchCursorRelativeImplemented=True browserEventVmBranchDisplayTimerImplemented=True originalEventVmRuntimeImplemented=False |
| literalPayloadSummary | event-dialogue-block-001 literalEvents=7 literalSamples=다리오스,황금돼지야,도대체 어디 있는거니 branchLiteralExec=7 branchLiteralMatched=10 firstRender=branch-execution:literal-cp949-text-payload:0x00441737:다리오스 lineAdvance=branch-execution:literal-cp949-text-payload:0x00441754:도대체 어디 있는거니 browserEventVmLiteralTextPayloadLineImplemented=True originalEventVmRuntimeImplemented=False |
| objectFocusSummary | event-dialogue-block-005 active=True rendered=True xy=144,248 raw=144,248 va=0x0045ee3c browserEventVmObjectPositionFocusImplemented=True originalObjectVmRuntimeImplemented=False |
| inputWaitSummary | event-dialogue-block-005 advanced=True releaseCleared=True index=0->1 dialogueSoundCount=1 advanceSound=dialogue-advance-sound:0->1 branchRender=branch-execution:0x0045ee54:17:1 branchRenderLine=이곳은 주작의 시련이 있는 곳 branchRenderSelection=True branchLineAdvance=branch-line-advance:6:0x0045ef2c:5 branchLineAdvanceLine=주작권사 branchLineAdvanceSelection=True branchWait=0x0045eeb4:3:1 branchWaitLine=주작권사 branchWaitLatch=True branchWaitChrome=True canvasPointer=True event-dialogue-block-005 firstAdvanced=True repeatBlocked=True releaseCleared=True secondAdvancedAfterRelease=True index=1->2->2->3 soundFirst=2 soundRepeat=2 soundSecond=3 browserDialogueInputWaitLatchImplemented=True originalEventVmRuntimeImplemented=False |
| browserEventVmControlFlowSummaryImplemented | True |
| browserEventVmBranchExecutionImplemented | True |
| browserEventVmBranchTextOriginImplemented | True |
| browserEventVmBranchGlobalTimerImplemented | True |
| browserEventVmRenderStateSnapshotImplemented | True |
| browserEventVmDisplayStyleImplemented | True |
| browserEventVmDisplayTimerStateImplemented | True |
| browserEventVmBranchDisplayStyleImplemented | True |
| browserEventVmBranchObjectPositionImplemented | True |
| browserEventVmBranchDisplayTimerImplemented | True |
| browserEventVmCursorRelativeLayoutImplemented | True |
| browserEventVmBranchCursorRelativeImplemented | True |
| browserEventVmBranchDataBankImplemented | True |
| browserEventVmLiteralTextPayloadLineImplemented | True |
| browserEventVmObjectPositionFocusImplemented | True |
| browserDialogueInputWaitLatchImplemented | True |
| browserGroundedControlReplayImplemented | True |
| browserEventVmFullImplementation | False |
| originalEventVmRuntimeImplemented | False |
| originalStoryFlagRuntimeImplemented | False |
| field | value |
|---|---|
| source | out/event_vm_semantics_gap.json |
| classification | browser-partial-known-opcode-replay-not-original-event-vm-runtime |
| browserReplayScope | known text-source/cursor/control/display opcode replay for indexed dialogue candidates |
| browserReplayPromotesOriginalEventVm | False |
| allRequiredGatesPassed | False |
| requiredGateCount | 7 |
| missingGateCount | 7 |
| missingGateIds | ["fullInstructionLengthDecode", "fullOperandLayoutDecode", "routeLinkedEventVmExecution", "sceneEventDialogueBinding", "originalStoryFlagMutation", "fullBrowserEventVmImplementation", "eventDrivenBattleEntry"] |
| requiredGates | [{"currentEvidence": "Only text-source, cursor, and selected control/display opcode lengths are grounded.", "id": "fullInstructionLengthDecode", "requiredEvidence": "Decode the full save-selector/event-object VM instruction length space.", "status": "missing"}, {"currentEvidence": "Text-source, cursor, and selected control/display effects are grounded; the rest remains partial.", "id": "fullOperandLayoutDecode", "requiredEvidence": "Decode operand layouts and stack/state effects for the full relevant VM opcode set.", "status": "missing"}, {"currentEvidence": "Indexed browser dialogue candidates replay extracted metadata without original route dispatch.", "id": "routeLinkedEventVmExecution", "requiredEvidence": "Capture normal map interaction dispatching a story dialogue through the original event/object VM.", "status": "missing"}, {"currentEvidence": "Scene event text refs are zero and dialogue blocks are storage-indexed candidates.", "id": "sceneEventDialogueBinding", "requiredEvidence": "Bind scene event records or runtime dispatch to a story dialogue block.", "status": "missing"}, {"currentEvidence": "Browser progress flags are prototype-local save/load markers.", "id": "originalStoryFlagMutation", "requiredEvidence": "Identify and execute original story/event flag mutations for completed dialogue.", "status": "missing"}, {"currentEvidence": "Browser replay is limited to known opcode traces for indexed dialogue candidates.", "id": "fullBrowserEventVmImplementation", "requiredEvidence": "Execute the full original event/object VM bytecode path in the browser runtime.", "status": "missing"}, {"currentEvidence": "Dialogue-battle links and battle rows are browser prototype surfaces.", "id": "eventDrivenBattleEntry", "requiredEvidence": "Prove event VM dispatch into original battle entry.", "status": "missing"}] |
| field | value |
|---|---|
| scriptHandlerTableMapped | True |
| eventObjectHandlerTableMapped | True |
| opcode0bTextRoutineGrounded | True |
| opcode0dTextSourceGrounded | True |
| textSourceOpcodeLengthsDecoded | True |
| textSourceOperandSemanticsGrounded | True |
| displayCursorOpcodeGrounded | True |
| controlOpcodeSemanticsGrounded | True |
| browserGroundedControlEventsPreserved | True |
| literalStorageOpcodeObserved | True |
| opcode0cPointerOverlapNotPromoted | True |
| dialogueStorageIndexed | True |
| browserDialogueProgressSmoke | True |
| browserGroundedControlReplayImplemented | True |
| browserEventVmBranchExecution | True |
| browserEventVmRenderStateSnapshot | True |
| browserEventVmDisplayStyle | True |
| browserEventVmCursorRelativeLayout | True |
| browserEventVmLiteralPayloadLine | True |
| browserEventVmObjectPositionFocus | True |
| browserDialogueInputWaitLatch | True |
| instructionLengthFullyDecoded | False |
| operandLayoutFullyDecoded | False |
| routeLinkedEventVmExecution | False |
| sceneEventDirectTextRefs | False |
| browserEventVmPartialReplay | True |
| browserReplayPromotesOriginalEventVm | False |
| browserEventVmImplementation | False |
| eventVmPromotionGatePassed | False |
| storyDialogueRouteProof | False |
| id | status | gap |
|---|---|---|
| instructionLengthFullyDecoded | missing | Text-source event/object opcodes 0x0b/0x0c/0x0d, cursor opcode 0x02, and control/display opcodes 0x03/0x04/0x06/0x07/0x08/0x09/0x0a/0x0e/0x15/0x1b/0x37 now have grounded lengths, variants, or stack effects, but the full save-selector and event/object VM instruction set is not decoded. |
| operandLayoutFullyDecoded | missing | Text-source operand effects, opcode 0x02 cursor effects, and several control/display effects are grounded, but many event/object opcodes and the save-selector stream operand layouts remain partial. |
| routeLinkedEventVmExecution | missing | No normal map interaction has been captured dispatching a story dialogue block through the event/object VM. |
| sceneEventDirectTextRefs | missing | Current scene event windows have no direct Korean text pointer or text-table references. |
| browserEventVmImplementation | missing | The web runtime now records a partial 0x02/0x0d/0x0b/0x35 replay trace for indexed dialogue candidates and WebKit-smoke-verified bounded branch/control replay for dialogue render/style/cursor/object/input-wait snapshots, but it still does not execute the full original event/object VM bytecode. |