{"title":"Battle Per-Hit Result Flag Review","subject":"actor +0x62 bits 0x08, 0x10, and 0x20","status":"per-hit-result-flags-grounded-critical-presentation-supported","summary":["Bits 0x08/0x10/0x20 are per-hit result bits cleared at hit-unit reset by +0x62 &= 0xc3.","0x20 is the strongest conclusion: target full miss / HP-apply skip. 0x4340ae returns before HP/recovery apply.","0x08 is a guard/glancing chip-damage target result: the normal formula is skipped and attacker +0x6e becomes random(3)+1.","0x10 belongs to the attacker and selects the critical/alternate damage path and alternate result sound/effect; the result layer clears it after consumption.","The 0x10 consumer path is statically grounded: stream operand +3 selects alternate WLK, helper runner 0x402321 is spawned, child script table [0x442da1+0x150] is attached, and +0x10 is cleared.","0x10 can be downgraded by the alternate formula when the computed result is below 3, so the bit is not simply a permanent critical label.","0x08/0x20 display bindings are grounded. 0x08 is not a MISS label path; it displays low damage over the normal target frame with a weak hit sound. Critical is not expected to have a text label; it is a flash/sound/high-damage presentation path."],"flagRows":[{"bit":"0x08","owner":"target actor","role":"guard/glancing chip-damage hit result","producer":"0x434218 hit/avoid branch sets target +0x62|=0x08 when avoidance wins, but only by a small gap.","consumer":"0x43414d sets attacker +0x6e=random(3)+1, clears target +0x6c, skips normal/alternate damage formula.","sound":"0x40ef1b includes target bits 0x08/0x20 in mask 0x28, suppressing the normal hit-sound branch.","confidence":"정적 확정 / 수동 관찰 정합","remaining":"표시/수치 경로 확정. target result script 0x004545b4가 WLK id 11/helper 0x16과 btl_efc F56..F59를 선택하고, +0x6e random(1..3)을 숫자로 표시한다. 수동 관찰상 MISS 라벨은 뜨지 않고, 몬스터는 피격 프레임이 아니라 normal frame에 머물며, 약한 '팅' 계열 효과음과 1자리수 데미지만 표시된다."},{"bit":"0x10","owner":"attacker actor","role":"critical presentation / alternate damage result","producer":"0x4343db stat/random branch compares attacker +0x28/+0x72 against target +0x26/+0x7e, then passes a second >150 random gate before setting attacker +0x62|=0x10.","consumer":"0x43414d selects alternate damage formula 0x434737; 0x40ef1b uses alternate WLK operand and effect script, then clears 0x10.","sound":"0x40ef1b reads stream operand +3 for the alternate sound unless stream type is 2, spawns helper script 0x402321, and clears the bit.","confidence":"정적 역할 확정 / 수동 관찰 정합","remaining":"critical은 MISS처럼 텍스트가 뜨지 않고 섬광·전용 사운드·높은 데미지로 인지된다는 수동 관찰과 정합한다. dedicated WLK/helper 경로는 정적으로 확정됐고, controlled runtime은 실제 WLK id 14 재생과 타이밍 고정용으로만 남았다."},{"bit":"0x20","owner":"target actor","role":"full miss / HP-apply skip","producer":"0x434218 hit/avoid branch sets target +0x62|=0x20 when target score beats attacker score by more than 3.","consumer":"0x43414d skips formula; 0x4340ae returns before HP/recovery apply; 0x40ef1b mask 0x28 suppresses normal hit sound.","sound":"Normal result sound is skipped by the 0x28 mask. battle_result_helper_label_review grounds helper 0x05 / selector 0x00100051 as the MISS display branch.","confidence":"확정","remaining":"HP apply skip and MISS display branch are grounded. Exact surrounding battle text timing is outside this narrow flag."}],"pipelineRows":[{"step":"reset hit-unit flags","va":4407054,"operation":"attacker/target +0x62 &= 0xc3","meaning":"한 타격 시작 시 0x08/0x10/0x20 결과 비트를 지우고 0x01/0x02/0x40/0x80 류 상태성 비트만 보존한다."},{"step":"common physical-family entry","va":4407629,"operation":"attacker +0x6e=0; call 0x434218","meaning":"결과값을 0으로 초기화하고 hit/avoid 판정으로 들어간다."},{"step":"hit/avoid result","va":4407832,"operation":"compare attacker hit score vs target avoid score","meaning":"공격자가 이기면 정상 진행, 방어자가 크게 이기면 0x20, 작게 이기면 0x08을 target에 세운다."},{"step":"0x20 branch","va":4407668,"operation":"if target +0x62&0x20, jump to copy result","meaning":"데미지 공식과 상태 후보 처리를 건너뛴다. 결과값은 0으로 남는다."},{"step":"0x08 branch","va":4407685,"operation":"attacker +0x6e=random(3)+1; target +0x6c=0","meaning":"정상 공식 대신 1..3의 가드/스침성 chip damage 결과를 만든다."},{"step":"alternate/critical flag gate","va":4408283,"operation":"luck-side random comparison, then attacker +0x62|=0x10","meaning":"정상 명중 후 alternate/critical result flag를 세울 수 있다."},{"step":"formula select","va":4407751,"operation":"if attacker +0x62&0x10 call 0x434737 else call 0x43461f","meaning":"0x10은 데미지 공식 선택에도 사용된다."},{"step":"low alternate downgrade","va":4409143,"operation":"if alternate result < 3, set random(5)+1 and attacker +0x62&=0xef","meaning":"alternate branch가 항상 최종 critical 표시로 유지되지는 않는다."},{"step":"HP/recovery apply","va":4407470,"operation":"if target +0x62&0x20 return; else dispatch by +0x6d","meaning":"0x20은 최종 HP 적용을 막는 확정 skip 비트다."},{"step":"sound/effect consume","va":4255510,"operation":"if actor +0x62&0x10 use alternate WLK/effect and clear 0x10; else check target result-bit mask 0x28 before normal sound","meaning":"0x10은 결과음/이펙트 레이어에서 소비되고, 0x08/0x20은 일반 타격음을 억제하는 쪽으로 연결된다."}],"relatedFields":[["actor+0x04","actor kind/type. hit/avoid table lookup branches by 1/2."],["actor+0x06","base level-ish term used in hit/avoid score."],["actor+0x22","attacker hit/tech contribution."],["actor+0x24","target avoid/agility contribution."],["actor+0x26","target side alternate/critical resistance-ish term."],["actor+0x28","attacker-side chance coefficient used by status and alternate/critical gates; UI name unknown."],["actor+0x62 bit 0x08","per-hit guard/glancing chip-damage target result."],["actor+0x62 bit 0x10","per-hit alternate/critical-like attacker result."],["actor+0x62 bit 0x20","per-hit full miss / HP apply skip target result."],["actor+0x6c","target result/status side byte cleared by the 0x08 branch."],["actor+0x6d","result family: 0 damage, 1 no-op, 2 recovery."],["actor+0x6e","numeric battle result value copied from attacker to target."],["actor+0x72/+0x74","attacker coefficient terms for alternate/hit formulas."],["actor+0x7c/+0x7e","target coefficient terms for avoid/alternate formulas."]],"evidence":[{"label":"hit-unit reset preserves long-lived actor bits and clears 0x08/0x10/0x20","range":"0x00433f0e..0x00433f50","lines":["  433f1a:\t33 c9                \txor    ecx,ecx","  433f1c:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  433f1f:\t80 e1 c3             \tand    cl,0xc3","  433f22:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  433f25:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  433f28:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  433f2b:\t33 c9                \txor    ecx,ecx","  433f2d:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  433f30:\t80 e1 c3             \tand    cl,0xc3","  433f33:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  433f36:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  433f39:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  433f40:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  433f43:\t66 c7 40 6e 00 00    \tmov    WORD PTR [eax+0x6e],0x0","  433f49:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]"]},{"label":"common physical-family coordinator routes 0x20, 0x08, and 0x10","range":"0x0043414d..0x00434218","lines":["  434163:\t50                   \tpush   eax","  434164:\te8 af 00 00 00       \tcall   0x434218","  434169:\t83 c4 08             \tadd    esp,0x8","  434171:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434174:\tf6 c1 20             \ttest   cl,0x20","  434177:\t0f 85 88 00 00 00    \tjne    0x434205","  434182:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434185:\tf6 c1 08             \ttest   cl,0x8","  434188:\t0f 84 21 00 00 00    \tje     0x4341af","  43418e:\t6a 03                \tpush   0x3","  434190:\te8 9b 35 ff ff       \tcall   0x427730","  434195:\t83 c4 04             \tadd    esp,0x4","  43419c:\t8b 4d 08             \tmov    ecx,DWORD PTR [ebp+0x8]","  43419f:\t66 89 41 6e          \tmov    WORD PTR [ecx+0x6e],ax","  4341a3:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  4341b6:\t50                   \tpush   eax","  4341b7:\te8 1f 02 00 00       \tcall   0x4343db","  4341bc:\t83 c4 08             \tadd    esp,0x8","  4341c4:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  4341c7:\tf6 c1 10             \ttest   cl,0x10","  4341ca:\t0f 84 15 00 00 00    \tje     0x4341e5","  4341d7:\t50                   \tpush   eax","  4341d8:\te8 5a 05 00 00       \tcall   0x434737","  4341dd:\t83 c4 08             \tadd    esp,0x8","  4341ec:\t50                   \tpush   eax","  4341ed:\te8 2d 04 00 00       \tcall   0x43461f","  4341f2:\t83 c4 08             \tadd    esp,0x8","  4341fc:\t50                   \tpush   eax","  4341fd:\te8 a9 02 00 00       \tcall   0x4344ab","  434202:\t83 c4 08             \tadd    esp,0x8","  43420c:\t8b 4d 0c             \tmov    ecx,DWORD PTR [ebp+0xc]","  43420f:\t66 89 41 6e          \tmov    WORD PTR [ecx+0x6e],ax","  434213:\t5f                   \tpop    edi"]},{"label":"hit/avoid comparison produces target 0x20 or 0x08","range":"0x00434218..0x004343db","lines":["  4342a0:\t33 c9                \txor    ecx,ecx","  4342a2:\t66 8b 48 06          \tmov    cx,WORD PTR [eax+0x6]","  4342a6:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  4342a9:\t33 d2                \txor    edx,edx","  4342ab:\t66 8b 50 22          \tmov    dx,WORD PTR [eax+0x22]","  4342af:\t03 ca                \tadd    ecx,edx","  4342b5:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  4342b8:\t66 8b 40 74          \tmov    ax,WORD PTR [eax+0x74]","  4342bc:\t66 89 45 f0          \tmov    WORD PTR [ebp-0x10],ax","  4342c3:\t33 c9                \txor    ecx,ecx","  4342c5:\t66 8b 48 24          \tmov    cx,WORD PTR [eax+0x24]","  4342c9:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  4342cc:\t33 d2                \txor    edx,edx","  4342ce:\t66 8b 50 06          \tmov    dx,WORD PTR [eax+0x6]","  4342d2:\t03 ca                \tadd    ecx,edx","  4342d8:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  4342db:\t66 8b 40 7c          \tmov    ax,WORD PTR [eax+0x7c]","  4342df:\t66 89 45 e8          \tmov    WORD PTR [ebp-0x18],ax","  4342e6:\t33 c9                \txor    ecx,ecx","  4342e8:\t8a 48 06             \tmov    cl,BYTE PTR [eax+0x6]","  4342eb:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  43432d:\t50                   \tpush   eax","  43432e:\te8 fd 33 ff ff       \tcall   0x427730","  434333:\t83 c4 04             \tadd    esp,0x4","  434342:\t50                   \tpush   eax","  434343:\te8 e8 33 ff ff       \tcall   0x427730","  434348:\t83 c4 04             \tadd    esp,0x4","  434396:\t25 ff ff 00 00       \tand    eax,0xffff","  43439b:\t83 e8 03             \tsub    eax,0x3","  43439e:\t8b 4d f4             \tmov    ecx,DWORD PTR [ebp-0xc]","  4343b4:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  4343b7:\t80 c9 20             \tor     cl,0x20","  4343ba:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  4343ca:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  4343cd:\t80 c9 08             \tor     cl,0x8","  4343d0:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]"]},{"label":"alternate/critical flag gate sets attacker 0x10","range":"0x004343db..0x004344ab","lines":["  4343e4:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  4343e7:\t66 8b 40 28          \tmov    ax,WORD PTR [eax+0x28]","  4343eb:\t66 89 45 fc          \tmov    WORD PTR [ebp-0x4],ax","  4343ef:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  4343f2:\t66 8b 40 72          \tmov    ax,WORD PTR [eax+0x72]","  4343f6:\t66 89 45 f8          \tmov    WORD PTR [ebp-0x8],ax","  4343fd:\t33 c9                \txor    ecx,ecx","  4343ff:\t66 8b 48 26          \tmov    cx,WORD PTR [eax+0x26]","  434403:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  434406:\t33 d2                \txor    edx,edx","  434408:\t66 8b 50 7e          \tmov    dx,WORD PTR [eax+0x7e]","  43440c:\t0f af ca             \timul   ecx,edx","  434420:\t50                   \tpush   eax","  434421:\te8 0a 33 ff ff       \tcall   0x427730","  434426:\t83 c4 04             \tadd    esp,0x4","  434445:\t50                   \tpush   eax","  434446:\te8 e5 32 ff ff       \tcall   0x427730","  43444b:\t83 c4 04             \tadd    esp,0x4","  434459:\t6a 64                \tpush   0x64","  43445b:\te8 d0 32 ff ff       \tcall   0x427730","  434460:\t83 c4 04             \tadd    esp,0x4","  434466:\t6a 64                \tpush   0x64","  434468:\te8 c3 32 ff ff       \tcall   0x427730","  43446d:\t83 c4 04             \tadd    esp,0x4","  434488:\tf7 f9                \tidiv   ecx","  43448a:\t3d 96 00 00 00       \tcmp    eax,0x96","  43448f:\t0f 8e 11 00 00 00    \tjle    0x4344a6","  43449a:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  43449d:\t80 c9 10             \tor     cl,0x10","  4344a0:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]"]},{"label":"alternate damage formula can clear 0x10 when result is too low","range":"0x00434737..0x0043485e","lines":["  434743:\t33 c9                \txor    ecx,ecx","  434745:\t66 8b 48 70          \tmov    cx,WORD PTR [eax+0x70]","  434749:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  43474c:\t33 d2                \txor    edx,edx","  43474e:\t66 8b 50 1c          \tmov    dx,WORD PTR [eax+0x1c]","  434752:\t0f af ca             \timul   ecx,edx","  434776:\t33 c9                \txor    ecx,ecx","  434778:\t66 8b 48 7a          \tmov    cx,WORD PTR [eax+0x7a]","  43477c:\t8b 45 0c             \tmov    eax,DWORD PTR [ebp+0xc]","  43477f:\t33 d2                \txor    edx,edx","  434781:\t66 8b 50 20          \tmov    dx,WORD PTR [eax+0x20]","  434785:\t0f af ca             \timul   ecx,edx","  43481c:\t8b 4d 08             \tmov    ecx,DWORD PTR [ebp+0x8]","  43481f:\t66 89 41 6e          \tmov    WORD PTR [ecx+0x6e],ax","  434823:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  434826:\t0f bf 40 6e          \tmovsx  eax,WORD PTR [eax+0x6e]","  43482a:\t83 f8 03             \tcmp    eax,0x3","  43482d:\t0f 8d 26 00 00 00    \tjge    0x434859","  434841:\t8b 4d 08             \tmov    ecx,DWORD PTR [ebp+0x8]","  434844:\t66 89 41 6e          \tmov    WORD PTR [ecx+0x6e],ax","  434848:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  43484d:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434850:\t80 e1 ef             \tand    cl,0xef","  434853:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]"]},{"label":"result dispatcher skips HP/recovery apply when target has 0x20","range":"0x004340ae..0x0043414d","lines":["  4340bc:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  4340bf:\tf6 c1 20             \ttest   cl,0x20","  4340c2:\t0f 84 05 00 00 00    \tje     0x4340cd","  4340e8:\t50                   \tpush   eax","  4340e9:\te8 0a 13 00 00       \tcall   0x4353f8","  4340ee:\t83 c4 08             \tadd    esp,0x8","  4340f4:\t50                   \tpush   eax","  4340f5:\te8 8a 0d 00 00       \tcall   0x434e84","  4340fa:\t83 c4 04             \tadd    esp,0x4","  434112:\t50                   \tpush   eax","  434113:\te8 7d 11 00 00       \tcall   0x435295","  434118:\t83 c4 08             \tadd    esp,0x8"]},{"label":"sound/effect layer consumes 0x10 and checks target 0x28 before normal hit sound","range":"0x0040ef16..0x0040f01e","lines":["  40ef1b:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  40ef1e:\tf6 c1 10             \ttest   cl,0x10","  40ef21:\t0f 84 83 00 00 00    \tje     0x40efaa","  40ef3e:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40ef41:\t66 0f b6 40 03       \tmovzx  ax,BYTE PTR [eax+0x3]","  40ef46:\t50                   \tpush   eax","  40ef47:\t6a 00                \tpush   0x0","  40ef49:\te8 25 c0 01 00       \tcall   0x42af73","  40ef4e:\t83 c4 08             \tadd    esp,0x8","  40ef65:\t6a 02                \tpush   0x2","  40ef67:\t68 21 23 40 00       \tpush   0x402321","  40ef6c:\te8 ea 6b 02 00       \tcall   0x435b5b","  40ef71:\t83 c4 08             \tadd    esp,0x8","  40ef99:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  40ef9c:\t80 e1 ef             \tand    cl,0xef","  40ef9f:\t8b 45 f8             \tmov    eax,DWORD PTR [ebp-0x8]","  40efe8:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  40efeb:\tf6 c1 28             \ttest   cl,0x28","  40efee:\t0f 85 2a 00 00 00    \tjne    0x40f01e","  40eff7:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40effa:\t66 0f b6 40 02       \tmovzx  ax,BYTE PTR [eax+0x2]","  40efff:\t50                   \tpush   eax","  40f000:\t6a 00                \tpush   0x0","  40f002:\te8 6c bf 01 00       \tcall   0x42af73","  40f007:\t83 c4 08             \tadd    esp,0x8"]}]}