# Opening Start Context

- PE entry point: `0x00437410`
- opening/title script pointer candidate: `0x004a2d38`
- selector: `8:0`
- selector root/range: `0x00494c34` / `0x00494c34..0x004a3dec`
- resource tail span: `0x004a2cc0..0x004a2d0b`
- classification: `high-resource-start-candidate`
- detailed row review: [`opening_opcode_review.html`](opening_opcode_review.html)

## Conclusion

- 0x004a2d38 should be treated as the current best opening/title script start candidate.
- The exact resource tail matches the observed compile.cns -> aaa.cns -> btl_k2.cns -> logo_00.cns/title.cns opening flow.
- The opening stream does not directly reference the grounded battle action payload VAs for 선렬각, 쾌진격, or 맹호스페셜.
- The observed opening uses 맹호스페셜/선렬각/쾌진격 신기; those player-side 신기 payloads are grounded, but their opening selector is not decoded yet.
- The MLK id 10 and WLK id 35 sites now have strong opcode-like candidates. WLK id 35 is observed exactly twice, matching the split logo impact, but the EXE consumer remains unpromoted.
- This is separate from the web runtime's field start map and should not be mixed with map transition proof.

## Observed Opening Sequence

| # | phase | observed | evidence | status |
| ---: | --- | --- | --- | --- |
| 1 | `fade-compile` | black screen, compile.cns appears first, then fades out | compile.cns in opening resource tail; user-confirmed first visual before aaa.cns | `resource-grounded-observed` |
| 2 | `fade-logo-a` | black screen, aaa.cns fades in and fades out | aaa.cns in opening resource tail; selected pointer 0x004a2d38 is near this tail | `resource-grounded` |
| 3 | `opening-battle-at` | btl_k2 battle, MLK id 10 continues, Ataho uses 맹호스페셜 신기 | btl_k2.cns in the same opening resource tail; middata.mlk in the adjacent cluster | `resource-grounded-action-pending` |
| 4 | `logo-e0-hit` | black screen, logo_00.cns E0 appears with WLK id 35 sound; first of two confirmed logo impact sounds | logo_00.cns in opening resource tail | `resource-grounded-audio-pending` |
| 5 | `opening-battle-rs` | battle resumes, Rinshan uses 선렬각 신기 | same btl_k2 opening battle context | `action-pending` |
| 6 | `logo-e1-hit` | black screen, logo_00.cns E1 appears near the bottom with WLK id 35 sound; second of two confirmed logo impact sounds | logo_00.cns in opening resource tail | `resource-grounded-audio-pending` |
| 7 | `opening-battle-sm` | battle resumes, Smashu uses 쾌진격 신기 | same btl_k2 opening battle context | `action-pending` |
| 8 | `title-build` | logo_00.cns E0/E1 merge, title.cns fades in, title menu becomes selectable | logo_00.cns and title.cns in opening resource tail | `resource-grounded` |

## Resource Cluster

| resource | VA | file offset | role |
| --- | --- | --- | --- |
| `middata.mlk` | `0x004a2cb4` | `0x000a0cb4` | MIDI archive used by opening BGM candidate |
| `compile.cns` | `0x004a2cc0` | `0x000a0cc0` | first fade-in/fade-out image |
| `aaa.cns` | `0x004a2ccc` | `0x000a0ccc` | second fade-in/fade-out image before opening battle |
| `logo_00.cns` | `0x004a2cd4` | `0x000a0cd4` | E0/E1 logo impact frames |
| `title.cns` | `0x004a2ce0` | `0x000a0ce0` | final title screen |
| `map_k1.cns` | `0x004a2cea` | `0x000a0cea` | same opening/title resource cluster |
| `map_k2.cns` | `0x004a2cf5` | `0x000a0cf5` | same opening/title resource cluster |
| `btl_k1.cns` | `0x004a2d00` | `0x000a0d00` | same opening/title resource cluster |
| `btl_k2.cns` | `0x004a2d0b` | `0x000a0d0b` | opening battle background candidate |

## Decode Probe

- data model caution: The opening range is mixed descriptor/script data. Low-byte opcode scans are useful for narrowing candidates, but pointer/operand collisions must not be promoted as executed opcodes.
- battle action direct pointer hits in opening stream: `0`
- action dispatch interpretation: 선렬각/쾌진격/맹호스페셜 신기 payloads are grounded elsewhere, but the opening stream does not directly contain those payload VAs. The opening likely selects actions indirectly through indices, actor state, or another event object payload.

### Audio Candidates

| kind | status | site | value | candidate meaning | not yet proof |
| --- | --- | --- | --- | --- | --- |
| MIDI/BGM | `strong-candidate-unpromoted` | `0x004a2df4` / `0x0a0df4` | `0x0a003026` | 0x0a is EXE MLK track id 10. The next dword at 0x004a2df8 points to 0x004a2cb4 / middata.mlk. | The 0x26 handler path seen so far refreshes runtime object lists and does not by itself prove MIDI playback. |
| WLK/SFX | `observed-twice-confirmed-exe-site-strong-candidate-unpromoted` | `0x004a3060` / `0x0a1060` | `0x23000124` | 0x23 is EXE WLK id 35. The two identical rows sit in two repeated logo_00 impact sub-blocks, matching the user-confirmed two logo hit sounds. | The 0x24 mode-1 handler reads stream+1 and object/global state; high-byte consumption is not proven in that handler alone. |
| WLK/SFX | `observed-twice-confirmed-exe-site-strong-candidate-unpromoted` | `0x004a308c` / `0x0a108c` | `0x23000124` | 0x23 is EXE WLK id 35. The two identical rows sit in two repeated logo_00 impact sub-blocks, matching the user-confirmed two logo hit sounds. | The 0x24 mode-1 handler reads stream+1 and object/global state; high-byte consumption is not proven in that handler alone. |

### Checked Action Payloads

| action | record/payload | opening stream direct refs | status |
| --- | --- | ---: | --- |
| 선렬각 row 81 | `0x004d2bfc` -> `0x004d4d32` / 4 step(s) | 0 record, 0 payload | `shared battle action payload grounded` |
| 선렬각 row 120 | `0x004d2d34` -> `0x004d5294` / 4 step(s) | 0 record, 0 payload | `shared battle action payload grounded` |
| 쾌진격 row 124 | `0x004d2d54` -> `0x004d533c` / 1 step(s) | 0 record, 0 payload | `shared battle action payload grounded` |
| 맹호스페셜 필살기 | `0x004d301a` / MP 20, 개인, 타격/무속성, 3타 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 맹호스페셜 장기 | `0x004d3048` / MP 20, 개인, 타격/무속성, 3타, 휙날아감 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 맹호스페셜 달인기 | `0x004d3076` / MP 18, 개인, 타격/무속성, 4타, 휙날아감 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 맹호스페셜 신기 (오프닝 관측) | `0x004d30ac` / MP 16, 개인, 타격/무속성, 7타, 휙날아감 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 선렬각 필살기 | `0x004d388a` / MP 15, 개인, 타격/무속성, 3타 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 선렬각 장기 | `0x004d38b8` / MP 15, 개인, 타격/무속성, 4타 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 선렬각 달인기 | `0x004d38ee` / MP 14, 개인, 타격/무속성, 5타 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 선렬각 신기 (오프닝 관측) | `0x004d392c` / MP 12, 개인, 타격/무속성, 6타 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 쾌진격 필살기 | `0x004d3f2a` / MP 15, 개인, 돌격/물기, 휙날아감 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 쾌진격 장기 | `0x004d3f48` / MP 15, 개인, 돌격/물기, 휙날아감 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 쾌진격 달인기 | `0x004d3f66` / MP 14, 개인, 돌격/물기, 휙날아감 | 0 | `player skill level payload grounded; opening observation uses 신기` |
| 쾌진격 신기 (오프닝 관측) | `0x004d3f84` / MP 12, 개인, 돌격/물기, 휙날아감 | 0 | `player skill level payload grounded; opening observation uses 신기` |

### Handler Notes

- `0x24` / `0x0040c513`: mode 1 writes byte(0x0059e348)+3 into current object+0x61 and advances +4; opening use: two 0x23000124 rows are good WLK id 35 candidates but not promoted until object+0x61/global producer-consumer is decoded
- `0x26` / `0x0040c948`: rebuilds/iterates runtime object ordering and calls object setup/update helpers; opening use: 0x0a003026 beside middata.mlk is a good MLK id 10 candidate but not promoted as a playback call yet
- `0x36` / `0x0041ff44..0x00420028`: battle-action text handler grounded in the separate event/object VM context; opening use: no direct 0x36 action row was found in this opening range scan

### Next Proof Needed

- Decode the consumer of object+0x61 around the two 0x23000124 rows to prove WLK id 35.
- Decode the 0x0a003026 + middata.mlk cluster or the subsequent audio function call to prove MLK id 10.
- Find the actor/action index producer that maps the opening Ataho/Rinshan/Smashu sequence to the grounded skill payloads.
- Specifically prove selection of 맹호스페셜/선렬각/쾌진격 신기 payloads, since the opening observation fixes all three skills at 신기.

## Pending Decode

- MLK id 10 and WLK id 35 are observed in-game, and WLK id 35 is confirmed to occur exactly twice during the split logo impact. The exact sound opcode consumers are not decoded yet.
- The opening monster/formation is not grounded. Existing btl_k2 nearest-sprite candidates are proximity only and must not be promoted.
- Ataho/Rinshan/Smashu skill animation calls are observed from gameplay, but the exact opening action script payload is not decoded yet.
- 0x00437410 is the PE entry point. It is not the useful content start by itself; the useful opening/title script pointer is 0x004a2d38.

## Do Not Promote Yet

- opening monster identity
- MLK id 10 call site
- WLK id 35 call site
- exact skill/action sequence payloads
