Field Encounter Formation Opcode Cluster Review
The 0x1b..0x20/0x22 cluster is grounded as a battle setup/control cluster around actor formation. Opcode 0x1e is the explicit formation consumer, but no static producer currently binds it to field walking encounters or map IDs. Keep map encounter/no-encounter classification unpromoted.
statusbattle-formation-opcode-cluster-grounded-producer-unbound
handler table0x00440720
handler matchTrue
0x1b blocks431
0x1c blocks0
producerFalse
Handler Table Grounding
| opcode | handler table entry | handler | expected | match |
|---|---|---|---|---|
| 0x1b | 0x0044078c | 0x0040bbf3 | 0x0040bbf3 | True |
| 0x1c | 0x00440790 | 0x0040bcc9 | 0x0040bcc9 | True |
| 0x1d | 0x00440794 | 0x0040be38 | 0x0040be38 | True |
| 0x1e | 0x00440798 | 0x0040c084 | 0x0040c084 | True |
| 0x1f | 0x0044079c | 0x0040c2fc | 0x0040c2fc | True |
| 0x20 | 0x004407a0 | 0x0040c3f4 | 0x0040c3f4 | True |
| 0x22 | 0x004407a8 | 0x0040c4e0 | 0x0040c4e0 | True |
Cluster Semantics
| opcode | role | meaning | status |
|---|---|---|---|
| 0x1b | branch-state call/jump | mode 0 clears branch-state, mode 1 jumps through a pointer table and saves return ctx+8, mode 2 conditionally jumps when branch-state is set | stream-control primitive; not a field encounter producer by itself |
| 0x1c | selector / RNG jump | selects a following dword command pointer by active actor count/order or RNG range | selector primitive; no well-formed static command stream found in current scan |
| 0x1d | party/generic actor initializer | initializes player-side actors or generic row-based actors and advances ctx by 4 | battle setup consumer; not a formation table producer |
| 0x1e | explicit actor formation stream | after a 4-byte header, consumes count entries of 8 bytes: row index at +0, x word at +4, y word at +6; bytes +1..+3 are not consumed by this handler | grounded formation consumer; producer remains unbound |
| 0x1f | actor slot clear/reset | resets battle actor slots and active party references | cleanup/reset primitive |
| 0x20 | party nested script dispatcher | dispatches nested scripts for active party actors; mode 0 and mode 1 choose different script pointer fields | nested dispatch primitive; no field encounter producer proof |
| 0x22 | global-gated branch | condition branch using a global battle/UI state flag | condition primitive; current refs are not enough to bind map transitions or encounters |
Opcode 0x1b Candidate Blocks
These are plausible data/rdata blocks only. They are not promoted unless a root dispatch path reaches them.
| stream | section | mode | class | operand ptr | selected target valid | raw |
|---|---|---|---|---|---|---|
| 0x0043cce0 | .data | 0x00 | opcode1b-plausible | 1b 00 00 02 64 03 0e 00 | ||
| 0x0043cce8 | .data | 0x00 | opcode1b-plausible | 1b 00 01 02 64 03 14 00 | ||
| 0x0043ccf0 | .data | 0x00 | opcode1b-plausible | 1b 00 02 02 5a 00 00 00 | ||
| 0x0043dea6 | .data | 0x00 | opcode1b-plausible | 1b 00 02 ea 0a 00 02 16 | ||
| 0x0043dec2 | .data | 0x00 | opcode1b-plausible | 1b 00 02 ea 0c 00 02 16 | ||
| 0x0043dede | .data | 0x00 | opcode1b-plausible | 1b 00 02 ea 0e 00 02 16 | ||
| 0x0043ef04 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 88 ec 43 00 | ||
| 0x0043ef10 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 88 ec 43 00 | ||
| 0x0043ef1c | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 88 ec 43 00 | ||
| 0x0043ffc1 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 1f 00 00 d4 | ||
| 0x00441560 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 e0 01 70 00 | ||
| 0x00441568 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 00 02 d0 00 | ||
| 0x00441588 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 f0 01 e0 00 | ||
| 0x00441721 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x00441fb9 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x00443f9c | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 64 03 11 00 | ||
| 0x00444298 | .data | 0x00 | opcode1b-plausible | 1b 00 00 02 03 00 00 00 | ||
| 0x00444666 | .data | 0x00 | opcode1b-plausible | 1b 00 39 00 00 00 88 44 | ||
| 0x0044468a | .data | 0x00 | opcode1b-plausible | 1b 00 1e 00 00 00 8c 47 | ||
| 0x004446ae | .data | 0x00 | opcode1b-plausible | 1b 00 3e 00 00 00 cc 46 | ||
| 0x00444756 | .data | 0x00 | opcode1b-plausible | 1b 00 39 00 00 00 88 44 | ||
| 0x0044477a | .data | 0x00 | opcode1b-plausible | 1b 00 1e 00 00 00 8c 47 | ||
| 0x00444890 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 64 03 18 00 | ||
| 0x004448b8 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 64 03 2f 00 | ||
| 0x00444e5b | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0044500b | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0044534f | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x00445a8b | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x00445b84 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 64 03 18 00 | ||
| 0x00445e03 | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x00445e14 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 64 03 18 00 | ||
| 0x00445eb8 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 64 03 18 00 | ||
| 0x0044632f | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x00446360 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 64 03 2f 00 | ||
| 0x00447a16 | .data | 0x00 | opcode1b-plausible | 1b 00 02 ea 36 00 01 e6 | ||
| 0x0044b842 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 02 00 50 ba | ||
| 0x0044c648 | .data | 0x00 | opcode1b-plausible | 1b 00 22 00 03 00 00 00 | ||
| 0x0044e091 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x0044e0c1 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x0044e0f1 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x00450472 | .data | 0x00 | opcode1b-plausible | 1b 00 41 00 00 00 9c 04 | ||
| 0x00450526 | .data | 0x00 | opcode1b-plausible | 1b 00 45 00 00 01 13 41 | ||
| 0x004512cf | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x004521ce | .data | 0x00 | opcode1b-plausible | 1b 00 02 ea 42 00 01 e6 | ||
| 0x00452cf4 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 11 c0 ea 00 | ||
| 0x00452d14 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 11 c0 ea 00 | ||
| 0x00452e58 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 11 c0 ea 00 | ||
| 0x00452e78 | .data | 0x00 | opcode1b-plausible | 1b 00 00 00 11 c0 ea 00 | ||
| 0x00454e15 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 1f 00 00 28 | ||
| 0x004556ed | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x00457e66 | .data | 0x00 | opcode1b-plausible | 1b 00 1e 00 10 00 1b 00 | ||
| 0x00457e6c | .data | 0x00 | opcode1b-plausible | 1b 00 16 00 2d 00 64 00 | ||
| 0x00457f44 | .data | 0x00 | opcode1b-plausible | 1b 00 1a 00 46 00 17 00 | ||
| 0x00458056 | .data | 0x00 | opcode1b-plausible | 1b 00 96 00 00 00 21 00 | ||
| 0x004581ae | .data | 0x00 | opcode1b-plausible | 1b 00 14 00 0a 00 2d 00 | ||
| 0x0045891c | .data | 0x00 | opcode1b-plausible | 1b 00 48 00 50 00 41 00 | ||
| 0x00458954 | .data | 0x00 | opcode1b-plausible | 1b 00 5c 00 50 00 55 00 | ||
| 0x0045898c | .data | 0x00 | opcode1b-plausible | 1b 00 88 00 55 00 76 00 | ||
| 0x0045a07f | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0045a13b | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0045a1f7 | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0045a51b | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0045a58e | .data | 0x00 | opcode1b-plausible | 1b 00 07 03 00 00 5c c5 | ||
| 0x0045a877 | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0045a9e3 | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0045aa47 | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x00017c00 | False | 1b 01 00 00 00 7c 01 00 |
| 0x0045b00e | .data | 0x00 | opcode1b-plausible | 1b 00 02 ea 1a 00 01 e6 | ||
| 0x0045bb4c | .data | 0x00 | opcode1b-plausible | 1b 00 22 00 21 00 01 00 | ||
| 0x0045bb5c | .data | 0x00 | opcode1b-plausible | 1b 00 22 00 21 00 01 00 | ||
| 0x0045c78c | .data | 0x00 | opcode1b-plausible | 1b 00 23 00 21 00 01 00 | ||
| 0x0045da7b | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x02006600 | False | 1b 01 00 00 00 66 00 02 |
| 0x0045df23 | .data | 0x01 | opcode1b-mode1-pointer-unproven | 0x02006600 | False | 1b 01 00 00 00 66 00 02 |
| 0x0045ee51 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x00466c89 | .data | 0x00 | opcode1b-plausible | 1b 00 00 40 0b 00 00 40 | ||
| 0x004689e2 | .data | 0x00 | opcode1b-plausible | 1b 00 06 00 00 01 03 00 | ||
| 0x00468a46 | .data | 0x00 | opcode1b-plausible | 1b 00 04 00 00 00 60 8a | ||
| 0x00469436 | .data | 0x00 | opcode1b-plausible | 1b 00 02 ea 04 00 01 e6 | ||
| 0x0046b744 | .data | 0x00 | opcode1b-plausible | 1b 00 22 00 03 00 00 00 | ||
| 0x0046b794 | .data | 0x00 | opcode1b-plausible | 1b 00 22 00 12 81 1c 00 | ||
| 0x0046b7fc | .data | 0x00 | opcode1b-plausible | 1b 00 22 00 12 81 1c 00 |
Opcode 0x1c Well-Formed Blocks
No rows.
script_handler_table Cluster Refs
Most previous refs are low-byte/pointer artifacts. Raw bytes must begin at the opcode and validate operands before promotion.
| opcode | word | value | source | target | raw | interpretation |
|---|---|---|---|---|---|---|
| 0x1c | 0x00542b20 | 0x0053f71c | map1_01a | map2_02d | 1c f7 53 00 11 90 24 00 | direct opcode-looking byte at referenced word |
| 0x1c | 0x00542b20 | 0x0053f71c | map1_01a | map2_02d | 1c f7 53 00 11 90 24 00 | direct opcode-looking byte at referenced word |
| 0x1c | 0x00542b20 | 0x0053f71c | map1_01a | map2_02d | 1c f7 53 00 11 90 24 00 | direct opcode-looking byte at referenced word |
| 0x22 | 0x00542e3c | 0x0053f422 | map1_01a | map2_02d | 22 f4 53 00 18 15 00 00 | direct opcode-looking byte at referenced word |
Next Frontier
- Find a command/root that reaches a well-formed opcode 0x1e stream through ctx+0x40, not just a byte pattern.
- Only after such a producer is found, correlate it with field step RNG and btl background setup.
- Do not use low-byte refs from script_handler_table as direct opcode proof unless raw bytes begin at the opcode and operand layout validates.