Field Encounter Formation Boundary Review

전투 actor 편성 소비자 0x0040c084는 stream byte row index 목록을 읽어 enemy actor를 생성하는 handler로 확인됐다. 하지만 필드 걷기/트리거에서 이 stream을 선택하거나 공급하는 producer는 아직 발견되지 않았다. selector root 안에서도 map root와 monster root는 분리되어 있고, btl background root는 직접 검출되지 않는다.

statusformation-consumer-grounded-field-producer-not-found
selector roots93
map roots28
monster roots58
btl roots0
all-three roots0
enemy rows80
formation consumerTrue
field producerFalse

Formation Actor Consumer

Handler table base 0x00440720 opcode 0x1e entry 0x00440798 points to 0x0040c084. This is now a grounded consumer of battle actor formation stream entries, but not the field-side producer.

stream fieldmeaning
headerByte0unresolved
headerByte1enemy actor count copied to 0x0059db28
headerAdvance4
entrySize8
entryByte0actor/enemy stat row index into 0x00457c60 + rowIndex * 0x38
entryWord4battle actor X position, stored as fixed-point actor +0x8c
entryWord6battle actor Y position, stored as fixed-point actor +0x90
entryBytes1To3unresolved

Neighbor handlers

opcode / entryhandlerrole
0x1d
0x00440794
0x0040be38single/party actor row initializer
0x1e
0x00440798
0x0040c084multi enemy actor formation initializer
0x1f
0x0044079c
0x0040c2fcneighbor battle actor/display initializer

Decisions

idstatusdecisionevidence
formation-actor-consumergrounded-consumerhandler 0x0040c084 is a battle actor formation consumer.handler table base 0x00440720 opcode 0x1e entry 0x00440798 -> 0x0040c084; stream[1] count, then each 8-byte entry uses +0 row index, +4 X, +6 Y
selector-root-co-locationnegative-evidenceselector root alone cannot be used as a field encounter formation table.map roots=28, monster roots=58, btl roots=0, all-three roots=0
stat-table-bindingconsumer-groundedenemy stat rows and row-index consumption are grounded, but field-side row-index production is not.enemy rows=80; exact .text refs to exported table base=0
battle-candidatescandidate-onlybattle event and sprite proximity candidates remain non-promoting.event candidates=21; sprite candidates=21
formation-opcode-clusteradjacent-consumer-clusteropcode 0x1b..0x20/0x22 cluster is battle setup adjacent, but still producer-unbound.opcode1b plausible blocks=431; opcode1c well formed=0; strong formation refs=0; direct field producer=False
movement-resource-boundaryblockedknown movement/resource boundaries still do not contain the formation producer.movement btl refs=0; movement monster refs=0; resource-runner entry proof=0

Source Layers

layerstatuscountproves formationnote
field family -> btl candidatefield-encounter-background-candidates-not-original-table174Falsemap family can suggest battle backgrounds, but candidate backgrounds do not bind monster formation or probability.
battle event dialogue adjacencycandidate-only21Falsebtl resources near dialogue/event blocks are event adjacency candidates, not random encounter tables.
nearest enemy sprite proximitysprite-proximity-candidate-not-enemy-row21Falsenearest z*/boss sprite names are visual proximity hints; original enemy rows/formations are not bound.
enemy stat tableenemy-stat-table-name-hp-gold-grounded80False80 monster rows are grounded, but no field map/formation selector points to row indexes yet.
battle actor stat layoutactor-stat-layout-grounded80Falseactor row copy/layout is grounded after an actor exists; the actor-instantiation producer is still missing.
monster turn action selectionstatic-vm-script-producer-groundedFalseaction VM chooses a monster skill during battle; it is downstream of formation creation.
battle end rewardbattle-end-exp-gold-grounded-item-drop-handler-grounded-inactiveFalseEXP/gold/drop handling is downstream of defeated actors, not the entry selector.

Selector Root Resource Split

rootclassmap refsbtl refsmonster refsformation proof
0x004449f4
13:0
unclassified-selector-rootmap_i1.cns, map_i2.cns, map_i3.cnsFalse
0x00444a44
13:1
sequence-root-with-resource-structuremap_i1.cns, map_i2.cns, map_i3.cnsFalse
0x0044aa78
4:0
unclassified-selector-rootmap_a1.cns, map_a2.cns, map_d1.cns, map_d2.cns, map_d3.cns, map_g1.cns, map_g2.cns, map_g3.cnsFalse
0x0044aad0
4:1
sequence-root-with-resource-structuremap_a1.cns, map_a2.cns, map_d1.cns, map_d2.cns, map_d3.cns, map_g1.cns, map_g2.cns, map_g3.cnsFalse
0x00459dc4
22:0
sequence-root-with-resource-structuremap_k1.cns, map_k2.cnsFalse
0x0045d7a0
9:0
sequence-root-with-resource-structuremap_c1.cns, map_c2.cns, map_l1.cns, map_l2.cns, map_n1.cns, map_n2.cnsFalse
0x00468b18
16:0
sequence-root-with-resource-structuremap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x00474194
19:0
unclassified-selector-rootmap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x004741c4
19:1
sequence-root-with-resource-structuremap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x00478364
1:0
sequence-root-with-resource-structuremap_d1.cns, map_d2.cns, map_d3.cns, map_g1.cns, map_g2.cns, map_g3.cns, map_h1.cns, map_h2.cnsFalse
0x0048458c
12:0
sequence-root-with-resource-structuremap_i1.cns, map_i2.cnsFalse
0x00494c34
8:0
sequence-root-with-resource-structuremap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x004a4e9c
15:0
sequence-root-with-resource-structuremap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x004ac10c
18:0
sequence-root-with-resource-structuremap_l1.cns, map_l2.cns, map_e1.cns, map_e2.cns, map_e3.cnsFalse
0x004c3e08
11:0
sequence-root-with-resource-structuremap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cns, map_j1.cns, map_j2.cnsFalse
0x004c9a8c
3:0
unclassified-selector-rootmap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x004c9ab4
3:1
sequence-root-with-resource-structuremap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x004e2374
21:0
sequence-root-with-resource-structuremap_e1.cns, map_e2.cns, map_f1.cns, map_f2.cns, map_h1.cns, map_h2.cnsFalse
0x004e4388
7:0
sequence-root-with-resource-structuremap_n1.cns, map_n2.cnsFalse
0x004e6254
14:0
sequence-root-with-resource-structuremap_l1.cns, map_l2.cns, map_n1.cns, map_n2.cnsFalse
0x004f28a4
17:0
sequence-root-with-resource-structuremap_d1.cns, map_d2.cns, map_d3.cns, map_g1.cns, map_g2.cns, map_g3.cns, map_h1.cns, map_h2.cnsFalse
0x004f5ae8
6:0
sequence-root-with-resource-structuremap_f1.cns, map_f2.cns, map_f3.cns, map_h1.cns, map_h2.cns, map_h3.cnsFalse
0x00500000
48:9, 48:13
sequence-root-with-resource-structuremap_l1.cns, map_l2.cns, map_e1.cns, map_e2.cnsFalse
0x00501808
0:0
sequence-root-with-resource-structuremap_a1.cns, map_a2.cns, map_b1.cns, map_b2.cns, map_b3.cnsFalse
0x00532940
5:0
sequence-root-with-resource-structuremap_h1.cns, map_h2.cns, map_l1.cns, map_l2.cns, map_n1.cns, map_n2.cnsFalse
0x0053c4a4
10:0
sequence-root-with-resource-structuremap_d1.cns, map_d2.cns, map_d3.cns, map_g1.cns, map_g2.cns, map_g3.cns, map_h1.cns, map_h2.cnsFalse
0x00540714
2:0
sequence-root-with-resource-structuremap_a1.cns, map_a2.cns, map_d1.cns, map_d2.cns, map_d3.cns, map_g1.cns, map_g2.cns, map_g3.cnsFalse
0x00557e68
20:0
sequence-root-with-resource-structuremap_j1.cns, map_j2.cns, map_j3.cns, map_h1.cns, map_h2.cnsFalse
0x0043fc5c
56:0
sequence-root-with-resource-structurezs_rr.cnsFalse
0x00443400
58:0
resource-root-without-sequencezsk_mou.cnsFalse
0x0044dd5c
45:0
sequence-root-with-resource-structurezs_maoh.cnsFalse
0x0048c144
32:0
resource-root-without-sequencezsl_yoi.cnsFalse
0x004904d0
38:0
sequence-root-with-resource-structurezi_ibo.cnsFalse
0x00493538
61:0
resource-root-without-sequencezjk_gen.cnsFalse
0x004a3dec
39:0
resource-root-without-sequencezi_ikkak.cnsFalse
0x004a69ac
46:0
resource-root-without-sequencezh_doku.cnsFalse
0x004aab84
35:0
resource-root-without-sequencezsa_kika.cnsFalse
0x004bdb2c
62:0
resource-root-without-sequencezjk_byk.cnsFalse
0x004c2a08
63:0
resource-root-without-sequencezkg_kame.cnsFalse
0x004cc00c
47:0
resource-root-without-sequencezh_dai.cnsFalse
0x004cd608
44:0
resource-root-without-sequencezs_rai.cnsFalse
0x004cd63c
44:3
unclassified-selector-rootzg_sen.cnsFalse
0x004cd6ac
44:4
unclassified-selector-rootzg_sen.cnsFalse
0x004cd6b0
44:2
resource-root-without-sequencezg_sen.cnsFalse
0x004cdc98
54:0
unclassified-selector-rootzk_maoh.cnsFalse
0x004cdca4
54:29
resource-root-without-sequencezk_maoh.cnsFalse
0x004ce104
50:0
sequence-root-with-resource-structurezh_rai.cnsFalse
0x004d17e4
57:0
resource-root-without-sequencezs_rb.cnsFalse
0x004d21d4
31:31
unclassified-selector-rootzsa_saru.cnsFalse
0x004d222c
31:0
unclassified-selector-rootzsa_saru.cnsFalse
0x004d2238
31:28
resource-root-without-sequencezsa_saru.cnsFalse
0x004e1aec
37:30
unclassified-selector-rootzi_ana.cnsFalse
0x004e1b40
37:0
unclassified-selector-rootzi_ana.cnsFalse
0x004e1b4c
37:27
resource-root-without-sequencezi_ana.cnsFalse
0x004e56f8
42:0
resource-root-without-sequencezs_enn.cnsFalse
0x004e72b8
48:0
resource-root-without-sequencezh_ka.cnsFalse
0x004ede18
53:28
unclassified-selector-rootzk_q.cnsFalse
0x004ede64
53:0
unclassified-selector-rootzk_q.cnsFalse
0x004ede70
53:25
resource-root-without-sequencezk_q.cnsFalse
0x00503480
59:0
resource-root-without-sequencezjk_suz.cnsFalse
0x00503870
40:0
sequence-root-with-resource-structurezs_sl.cnsFalse
0x005137dc
55:0
sequence-root-with-resource-structurezs_ryu.cnsFalse
0x0051be44
36:30
unclassified-selector-rootzi_inos.cnsFalse
0x0051be50
36:31
unclassified-selector-rootzi_inos.cnsFalse
0x0051be98
36:0
unclassified-selector-rootzi_inos.cnsFalse
0x0051bea4
36:27
resource-root-without-sequencezi_inos.cns, zy_gost.cnsFalse
0x0051beb8
36:1
unclassified-selector-rootzy_gost.cnsFalse
0x0051becc
36:3
unclassified-selector-rootzy_gost.cnsFalse
0x0051bf24
36:4
unclassified-selector-rootzy_gost.cnsFalse
0x0051bf28
36:2
sequence-root-with-resource-structurezy_gost.cnsFalse
0x005286a8
49:0
sequence-root-with-resource-structurezh_sui.cnsFalse
0x0052db58
34:0
sequence-root-with-resource-structurezsa_iwa.cnsFalse
0x00543578
43:0
sequence-root-with-resource-structurezs_ice.cnsFalse
0x005455b8
60:0
resource-root-without-sequencezjk_sei.cnsFalse
0x005455ec
60:3
unclassified-selector-rootzk_big.cnsFalse
0x00545668
60:4
unclassified-selector-rootzk_big.cnsFalse
0x0054566c
60:2
unclassified-selector-rootzk_big.cnsFalse
0x00545928
52:28
unclassified-selector-rootzk_big.cnsFalse
0x00545974
52:0
unclassified-selector-rootzk_big.cnsFalse
0x00545980
52:25
resource-root-without-sequencezk_big.cnsFalse
0x00545d04
41:0
resource-root-without-sequencezs_iwa.cnsFalse
0x00546a90
51:28
unclassified-selector-rootzk_komo.cnsFalse
0x00546a9c
51:29
unclassified-selector-rootzk_komo.cnsFalse
0x00546adc
51:0
unclassified-selector-rootzk_komo.cnsFalse
0x00546ae8
51:25
resource-root-without-sequencezk_komo.cnsFalse
0x005573cc
33:0
resource-root-without-sequencezsa_mi.cnsFalse

Exact Table References In .text

targetcountrefs
actorRowTableBase40x0040bed8, 0x0040bf89, 0x0040c0f6, 0x0040c1b6
exportedEnemyTableBase0
enemyNamePointerTable0

Next Frontier

Raw JSON