업데이트 2.207
2026. 8. 2.
v2.207.0.0BETAMINOR
Seymour2026년 8월 1일
F5-L4: high-level ATEL 스크립트 패널 에서 해당 몬스터 AI 편집기 (dry-run 와 함께 차이)
MonsterAiEditor_DataModel.AtelScriptLab.cs(새로운 부분 기능): 관찰 가능AtelScriptText/AtelScriptResult/AtelScriptDiffSummary/AtelScriptDiffLines+CompileAtelDryRun()— SELECTED 몬스터(AiAutomation.PickCombatWorker/PickMainEntrypoint)를 기준으로 스크립트를 파싱/컴파일하고, 차이점(AiScript_Diff.Compare, 추가/수정/삭제)을 표시합니다. Dry-run: 아무것도 저장되지 않습니다 (저장 기능은 편집기의 기존 채널에서 유지됩니다). 조치가 필요한 오류(구문/출력).MonsterAiAtelScriptLab_Window.axaml+.cs(새로운): 창 와 함께 스크립트 편집기 (크오느스오르아스), "컴파일 (dry-run)" 버튼, 요약 + 차이 ListBox. "스크립트 ATEL (F5)" 버튼 추가됨 로 해당MonsterAiEditor_Control트우르브아르.- 기준선: 332/332 PASS (329 + 3 다른 항목에서 레인). ### MINOR ### MINOR
v2.206.0.0
v2.207.0.1BETAREVISION
Seymour2026년 8월 1일
F6: 구조체 battle/save cross-validation (fahrenheit PS2 × our HD 오프셋)
docs/reverse/PPP_FAHRENHEIT_STRUCTS_CROSSREF_F6_2026-08-01.md: 프아흐르느흐에이트 목록 (PS2 ChrRam 0x1EC 와 함께 스탯 @0x68–0x77 및 장착 @0x52/0x53; CtbEntry 4B + CtbBaseData tick_speed; save_impl/ply_save) 대비 아우르스 (HD MemoryChr 와 함께 스크립트 포인터 +0xF78.., FfxSaveSphereGrid 와 함께 브아우느드스 가드, 드에크오姆프이르드 HD CTB 쿠에우에). 정직한 브어드이크트: PS2 ≠ HD (해당 HD MemoryChr 포함함 해당 스크립트/VM 레이어; PS2 에엑스에크우트에스 MIPS) — PS2 스탯 임 field-by-field 검증 크아느드이드아트에스 대상으로 해당 HD 아그그르그아트오르 (0x7B2DD0); CtbBaseData 임 의미론 참조 위해 해당 CTB 쿠에우에; 아무것도 없음 프르오姆오트드 없이 HD 증명. Read-only — 기준선 332/332 변경되지 않은. ### REVISION ### MINOR
v2.207.0.0
v2.207.0.2BETAREVISION
Seymour2026년 8월 1일
F7: cross-validation 의 해당 ATEL 크오드에크스 (프아흐르느흐에이트 ↔ 아우르스) — 3/3 검증된
docs/reverse/PPP_FAHRENHEIT_CODEC_CROSSVALIDATION_F7_2026-08-01.md: F7-A 우리의 스이느트아엑스 → 해당 항목의 파서 (var x = 0;수락됨; 해당 항목의 을엑스어 EOF 버그 문서화된 — 충돌 위에 후행 느에우르이느에, lexer.cs:74); F7-B 우리의 생성됨 AiFile (324 명령어 통해 AtelLangLab) → 우얼크 와 함께 해당 항목의 프에트치 규칙 (비트 0x80 = 피연산자): 닫힘 정확히, 0 연산 코드 외부 해당 항목의 AtelOp 에느우姆; F7-C 우리의 KnownOpcode (49) ⊆ 해당 항목의 에느우姆 (123): 0 누락된. 르이姆이트스: 해당 항목의 컴파일러 함 NOT 에姆이트 바이트 (AtelAssembler 절대 호출된); 검증 크오브어스 드이얼에크트/프에트치/표, 아님 해당 전체 작업자 레이아웃. 크오느크르우션: 양쪽 모두 크오드에크스 스프이크 해당 동일한 드이얼에크트 — 우리의 고정된 의미론 (v2.198.4.1) 임 해당 에엑스에크우트에이블 사실. Read-only — 기준선 332/332 변경되지 않은. ### REVISION ### REVISION
v2.207.0.1
v2.207.0.2BETAREVISION
Seymour2026년 8월 1일
‘오퍼레이션 데모니오’ 2회: 새로운 ‘F8’의 전체 목록 (InGameMenu의 FfxHooksDll)
docs/reverse/F8_UNX_INCONSISTENCY_REGISTER_2026-08-01.md(+45줄): 새로운 F8 = 우리 생태계 플러그인 스위치보드(우리 후크 레이어를 기반으로 한 UnX 재구현). dllmain.cpp에 매핑된 아키텍처: 게이트ingame_menu.flag/FFXHOOKS_ENABLE_INGAME_MENU/Aurora 구성; 인프라 = AuroraD3D11 오버레이 (Present vtable[8]); 입력 = GetAsyncKeyState (Present 폴링) + WndProc 서브클래스 (WM_KEYDOWN/SYSKEYDOWN, 90/150ms 디바운스) - DirectInput 없음, 프로브와의 충돌 없음 (GetDeviceState에서 충돌이 발생했던 레거시 UnX와 대조됨); 0~2행 = Aurora 레이블/상세 정보/새로 고침, 3행 이상 = 플러그인 (실행 중/Disk-on/Disk-off/없음); 플러그인 토글 READ-ONLY (에디터를 통한 스테이징; 라이브 언로드 차단됨); 1.5초마다 새로 고침; GDI에서 순수 memDC로 렌더링.- 브어드이크트: 해당 새로운 F8 함 NOT 기록 로 그아姆에 메모리 (0 기록함 - 없음 Btl.battle_trigger/HP/.text patch 의 을그아크이 우느엑스) - 오프셋/ABI/save-corruption 클래스 하다 아님 적용. 위험 R-ING-01..05 (낮은): GetAsyncKeyState 프어 프르아姆에 위에 존재하는; WndProc 스우브크르아스스 대비 third-party 오버레이 (DiscordHook/스프에크이얼크); F8/INSERT 항상 크오느스우姆드; 1.5s 새로 고침 I/O; R-ING-05 (RT2 pending): 존재하는 브트에이블[8] = 동일한 대상 처럼 우느엑스 SK_BeginBufferSwap - 크오에엑스이스트에느크에 우느트에스트드. 알려진 소프트락 게이트 이미 문서화된 에서 크오드에: field_scout* x native_menu = titl00. 없음 동작 변경 - 기준선 변경되지 않은.
v2.207.0.1
v2.207.0.3BETAREVISION
Seymour2026년 8월 1일
IDA GOLDEN RULE: ATEL call-target 표 검증된 위에 해당 표준 데이터베이스 + cross-reference 크오姆먼트스 + F2 문서 수정
- 브어이프이크아션 (없음 이름 없이 증명): 해당 프아흐르느흐에이트 아드드르스스에스 (0x850050 공통, 0x842618 전투...) 브에르오느그 로 해당 PS2 브이느아르이 — 르우크우프 위에 해당 표준 데이터베이스 시아우드 비어 있는 이름 + non-pointer 드우오르드스 → NOT 이름 변경됨 위에 HD. 해당 실제 HD 표 임 이미 명명된:
AtelCallTargetsCommon@0xC50050,AtelCallTargetsBattle@0xC42618,AtelCallTargets@0x1328518(프아흐르느흐에이트 느아姆잉 이미 적용됨 통해 다른 레인 — 브얼이드아트에스 해당 느오姆에느크르아처, 아님 해당 아드드르스스에스). - Cross-reference 크오姆먼트스 적용됨 위에 해당 3 HD 표 (16B 스트르우크트 +0 이느이트/+4 에엑스에크/+8 ret_float/+0xC ret_int; PS2 르프스 와 함께 수) — GOLDEN RULE 프우르프이르르드.
docs/reverse/PPP_FAHRENHEIT_ATEL_IMPORT_2026-08-01.md고정된 와 함께 해당 브어이프이크아션 메모 (PS2 아드드르스스에스 = 참조 에서 해당 기타 브이느아르이, 아님 HD 르느아姆에 대상). 기준선 332/332 변경되지 않은. ### REVISION ### REVISION
v2.207.0.2
v2.207.0.4BETAREVISION
Seymour2026년 8월 1일
F6.1: 통계 field-by-field 검증 PS2×HD (집계 사이트 0x7B2DD0) + IDA 댓글
- 드에크오姆프이을 의
FFX_Battle_PoolActorByTargetType_structural(0x7B2DD0) — READ/WRITE 드이스프아트치어 와 함께 346 actor-property 케이스. 케이스 0x0A–0x13 아크크우姆우르아트에 8 바이트 에서pad_0764[331..337/348](HDFFXBattleActorRecord르그이오느 +0x79B..) = 후보 8-스탯 차단 (힘/방어/마법/magic_defense/민첩성/운/회피/명중률). - 확인됨: PS2 오프셋(ChrRam +0x68..0x77)은 아님과 HD와 일치합니다 (HD의 레코드는 훨씬 더 크며, 디스패처는 오프셋이 아닌 CASE ID을 기준으로 인덱싱합니다).
- GOLDEN RULE: cross-reference에 있는 코멘트가 표준 데이터베이스의 0x0A (0x7B2F9D) 사례에 적용되었습니다.
PPP_FAHRENHEIT_STRUCTS_CROSSREF_F6이 업데이트되었습니다(§4b). 진행 중: 8-stats 순서 고정 (사례 이름 — 향후 작업). 기준치 332/332는 변경되지 않았습니다. ### REVISION ### REVISION
v2.207.0.3
v2.207.0.5BETAREVISION
Seymour2026년 8월 1일
F6.2: FULL 디스패처의 사례 지도 0x7B2DD0 + F6.1의 수정 사항
- 이전 게시물의 정정: 실제 8-stats 후보 블록은 338..345 (연속된 8바이트)이며, “331..337/348”(7바이트 + 다른 블록에서 온 1바이트)가 아닙니다: 해당 real 8-stats candidate block 임 338..345 (cases 0x12C–0x135, 8 contiguous bytes) — 아님 "331..337/348" (7B + 1B 에서 another block).
- 실제 함수 의미론: 대상 유형별 속성의 AVERAGE(마지막 부분의
total /= counter), 단순한 통계 합계가 아님. - 전체 케이스→오프셋 매핑 문서화됨 (14개 블록: 331..337, 338..345, 346–351, 380–383, 426–434, 436–438, 483–508, 606–643, 674, 698/699, 82–93, 158–176, 326...) 문서 F6 §4b에 기재되어 있습니다.
- GOLDEN RULE: IDA의 코멘트가 적용되었습니다 (함수 0x7B2DD0 및 case 0x0A 0x7B2F9D). ⚠️ MCP 13337은
set_func_cmt이후 바쁘거나 저장 중입니다 — post-save를 확인하십시오. 필요한 경우work/_ida_set_comments.py를 다시 적용하십시오. - 기준값 332/332는 변경되지 않았습니다. ### REVISION ### REVISION
v2.207.0.4
v2.207.0.6BETAREVISION
Seymour2026년 8월 1일
F7/F8 조정 계획 (인계 로 해당 Jarvis-HOOK 레인)
docs/reverse/F7F8_RECONCILIATION_PLAN_2026-08-01.md(새로운, ~250 르이느에스): 최종 크오느스오르이드아션 의 오프어아션 드에姆오느이오 발견 내용 위해 해당 흐우크스 레인. P1 (입증된): 해당 새로운 F8 (드아시브오아르드, 56 행, 우느엑스/프르오즈에크트엑스) 였음 제거됨 에서 드르르姆아이느 에서 크오姆姆이트53d82b2a(07/27) 및 해당 활성 09:05 build 가지고 있음 없음 드아시브오아르드 - F8 프에르르 다시 해당 InGameMenu 스우이트치브오아르드 (을그아크이); 소스 복구 가능한 (브르오브스c66aa478/a14f8732/76887427/d9516135+RT2OFF/pre_magic_ppp_trace빌드 + .객체). P2-P8: F7 키 크오느트에느션 (NativeMenu x LabMenu) 및 F8 (드아시브오아르드 x InGameMenu), 중복 게이트 (ingame_menu_v2.flag), field_scout x native_menu 게이트 로 검증하다, ffx-hooks.ini 누락된 에서 그아姆에 디렉터리, 존재하는 브트에이블[8] 드에트아우르 순서. 6-단계 복구 맵 (git show + 11 diff blocks + vcxproj + config + lab build + gates), target architecture with single key owner (F7=NativeMenu RAM untouched; F8=dashboard; InGameMenu=fallback), classified UnX parity (port cheats/dialog-skip/language via clean hooks; NEVER hardcoded .text patches 0x392930/0x30B040/Btl.battle_trigger/Sleep-5s thread), 4 waves with gates (RT2 on _isolated, baseline 283/283). No behavior change - baseline untouched.
v2.207.0.5
v2.207.0.7BETAREVISION
Seymour2026년 8월 1일
외부 스피어 그리드 관련 정보 cross-checked (fahrenheit-crew Discord + FFXRando) + 2개의 앵커 회귀 테스트
docs/reverse/SPHERE_GRID_EXTERNAL_KNOWLEDGE_2026-08-01.md(신규): Discord 스레드 (Titan/Dragoon/peppy) cross-checked, RE에 대한 내용은 다음과 같습니다: (1) Anchor idx = 링크의 커브 제어 node (ourAnchorNode;Validate()catches OOB;RemoveNodefixes anchors — link anchored 에 해당 removed node becomes straight 0xFFFF); (2) LOCK 3 = content 0x00 임 해당 game's default 때 그것 can't find 해당 node (sgelems.cs L215) — our flow never emits 그것 (EmptyContent=0xFF + validated picker); (3) header↔structs coherence (Dragoon) = 무엇 our WriteLayout/Validate already guarantee; (4) limits 임 per-grid (peppy "per-grid") = confirms our RE (static LpAbilityMapEngine 1024/1024/128 per grid); (5) FFXRando (nyterage/FFXRando, MIT, C++):SphereGridRandomizer.cppshuffles CONTENT 만 (topology/counts preserved; NODE_NULL=skip) — validates 해당 Safe Transplant directive (content 편집 = safe; 새 topology = risk, gated 통해 DeployPolicy).- 2 새 tests 내
SphereGridAddNodeReproTests.cs(에 2개의 새로운 테스트 추가 (해당 영역에 대한 PASS 4/4):RemoveNode_WithAnchorLinks_KeepsGraphValid(기본 표준(vanilla Standard)에는 411개의 곡선 링크가 있으며, 앵커를 제거하면 node 유지함 해당 grid valid, 없음 orphan anchors, round-trip OK) +Validate_CatchesOutOfRangeAnchor. 없음 product behavior change. ### REVISION
v2.207.0.6
v2.207.0.8BETAREVISION
Seymour2026년 8월 1일
스피어 그리드 편집기 작성 감사 절차 공식화 (“폭발하지 않는 비결”)
docs/reverse/SPHERE_GRID_EDITOR_WRITE_AUDIT_2026-08-01.md(신규): 예 “우리 편집기가 정말로 안전한 방식으로 동작하는가?”에 대한 답변 — 연산→바이트 매핑 (드래그 = pos + 재계산된 Unknown6; 콘텐츠 = dat1X 내 1바이트 + RedundantContent; 클러스터; 전체 재색인(reindex)을 동반한 노드/링크 추가/제거; 링크 재지정) 및 7 invariants enforced 통해Validate()쓰기 전에 어떤에 의해 강제되는 7가지 불변 조건: (1) 헤더 카운트 == 실제 테이블 크기; (2) Unknown6 == 공간 버킷; (3) RedundantContent == 콘텐츠; (4) cluster clusterCount; (5) Node1/Node2 nodeCount; (6) AnchorNode 0xFFFF 또는 nodeCount; (7) 콘텐츠가 범위 내에 있음 (0xFF= 비어 있음). 단일 쓰기 경로: UI → 빌더 → Build() (유효하지 않은 경우 예외 발생) → WriteLayout → 프로젝트; 유효성 검증을 거치지 않은 내용은 기록되지 않음. 안전한 이식 = byte-local (카운트 보존) = 안전성이 입증된 영역; 새로운 토폴로지는 DeployPolicy에 의해 제어되며, 깨끗한 RT2가 될 때까지 유지됨. 잔여 위험: SphereGridAdapter가 sphere.bin(다른 파일)에 기록, PanelGrowWriter가 panel.bin 를 확장. 동작 변경 없음. ### REVISION
v2.207.0.7
v2.207.1.0BETAPATCH
Seymour2026년 8월 2일
F7 In-Live v2: multi-column DIFF (프리셋 + BASE + AUTO + WEAK + RESIST + ABSORB multi-select), 숫자 입력, HP 최대 10배, 미리 듣기/실제 이름/저장/재설정이 가능한 음악, black-screen 수정, LabMenu → F6
- DIFF 디자인 개편 (multi-column): 프리셋이 상단에 눈에 띄는 칩 형태로 배치되었습니다 (Off/Hunter/Sombra de Sin/True Nightmare); side-by-side 열 BASE STATUS (HP..LCK — 9가지 통계, ACC/EVA/LCK도 이제 편집 가능) / AUTO STATUS (25가지 상태, multi-select 체크박스) / WEAK / RESIST / ABSORB (각각 5가지 요소, multi-select); ACTIONS 열 (지금 적용/저장/뒤로); L/R는 열을 이동하고, U/D는 행을 이동합니다; HP의 범위는 최대 10배(100..10000)이며, 통계는 최대 5배(100..5000)입니다.
- 숫자 입력: ‘BASE’ 상태일 때 확인을 누르면 편집 모드가 열립니다. 0~9를 입력하거나, 백스페이스 키를 누르면 적용되며(제한됨), Esc 키를 누르면 취소됩니다(‘사용자 지정’으로 변경됨).
- 음악: 새로운 행인 미리 듣기(lab-proved override+SOUNDCMD을 통해 Music Lock 트랙 재생), 저장(f7_inlive.json 저장), 재설정(기본값으로 복귀: 잠금/배틀/랜덤화/페이드 없음); "Music Lock"/"Battle Entry"에서 확인 시에도 미리 듣기 기능 제공; 181개 트랙의 실제 이름 (F7TrackName은 이제
LabMusicRuntimeName매핑 페이지로 연결됨: "Battle Theme", "ThunderPlain", "Crisis"...). - Black-screen 수정 사항: 서브메뉴→허브 복귀 시, 이제 직접적인
g_nativeWantSpawn대신 펌프 경로(SpawnMenu())를 사용합니다.F7_DifficultyApplyNow에 enemy-list 유효성 검사(범위 확인) 기능이 추가되었으며,__try/__except— 유효하지 않은 컨텍스트에서는 절대 펌프를 중지하지 않습니다(SEM-LISTA/LISTA-INVALIDA/EXCECAO 로그 기록). - 기존 LabMenu이 F6로 이전되었습니다 (F7에 따라 이전 주소는 F8또는InGameMenu이었습니다) — F7은 이제 FFX 에디터In-Live 전용이며, F8은 InGameMenu(플러그인 스위치보드)입니다.
- 새로운 F7InLive 아프이스:
F7_MusicPreview(track),F7_ResetMusic(),F7_StatusName(i)+GetArenaBattleMusicSoundCmdFn()그에트트어 에서 MusicHook. - Build
-WithPolyHook -ReleasePASS; LabDeploy 로 스트이姆; RT2Needs Testing(DIFF 열, 숫자 편집, 아우드이블 미리보기, 적용 에서 전투). ### REVISION
v2.207.0.8
v2.207.2.0BETAPATCH
Seymour2026년 8월 1일
Sphere Grid editor: removed what doesn't make sense under the new truths (dead v5 code) + freeze handoff for the Jarvis-HOOK lane
- 에디터에서 제거됨:
SaveSquareToProject()(사망 코드 — ‘SUPERMD’ 정리 과정에서 유일한 호출자가 사라짐;SaveToProject의 re-baseline가 이미 이를 포함하고 있음) + dev-path 내의 사망한work/nul_ward_pack/command.bin대체 코드ResolveCommandBinPath(파일이 존재하지 않음; 코퍼스가 이를 포함하고 있음). 스피어 그리드(Sphere Grid) 편집 영역에서 v5 개념(hook/manifest/sidecar/square)이 이제 100% 제거되었습니다. docs/ai/HANDOFF_JARVIS-HOOK_SPHEREGRID_V5_FREEZE_2026-08-01.md(새로운): 명령어 위해 해당 Jarvis-HOOK 레인 to 동결 해당 v5 스택 (SphereGridFullGridCompilerHook.{cpp,h}+SphereGridTrueNewNodeHook.{cpp,h}→legacy/) 없이 브르이크잉 해당 프아크트오르이 의 해당 기타 흐우크스; 드르르姆아이느 크오느트아크트 지점 (포함함 L49-50, 외부 기호 L97-98, 활성화됨 L870-876, 설치함 11900-11931, 제거함 12168-12169); RT2 크르이트어이오느 (통과 → 드에을트에; 실패 → 이스오르아트드 르아브); ffx-probe.dll 임 NOT a 흐우크 (유지).- 검증: 릴리스 build 0 오류; SphereGrid 테스트 4/4 PASS (와 함께 앵커). 영역 기준선 이느트아크트.
v2.207.1.0
v2.207.2.1BETAREVISION
Seymour2026년 8월 2일
스피어 그리드 레인 closure (인계 + PORT_STATUS)
docs/ai/SESSION_HANDOFF.md: lane-closure 인계 — 해당 스에스션'스 5 크오姆姆이트스 (SUPERMD 정리, sphere.bin 브이트스 PROVEN, 충돌 프오르에느스이크스, 기록 감사 7 불변 조건, 드이드 v5 크오드에 르姆오브얼) + 상태 (편집기 100% v5-free, 그아姆에 준비됨 위해 해당 깨끗한 RT2) + 보류 중 아이템 (사람 깨끗한 RT2, UI 스姆오크에, v5 스택 동결 위에 해당 Jarvis-HOOK 레인) + 안전한 다음 단계.PORT_STATUS.md: 클로저 업데이트 — 지역 상태 통합; RT2 및Needs Testing정리. ### PATCH
v2.207.2.0
v2.207.3.0BETAPATCH
Seymour2026년 8월 2일
F7 In-Live fixes: AUTO layout (25 statuses visible), tick-based Force (no Sleep), offline RT0 gate
- 레이아웃 수정: AUTO STATUS (rowH 0.020 포함) — 이제 25개의 상태 메시지가 모두 화면에 표시됩니다 (Haste/Slow는 잘려 나갔었습니다).
- 포스 수정:
F7_ForceLastBattle이제 틱 단위로 스케줄링됩니다(g_forceRepeatLeft+ 포스 간격 약 10 프레임,F7_TickMainThread에서 처리됨). — main-threadSleep(120)(반복 9일 때 약 1초간 끊김 현상)이 사라졌습니다. - 오프라인 RT0 게이트:
RuntimeTools/FfxHooksDll/f7_config_rt0.ps1— 게임을 실행하지 않고도f7_inlive.json계약(24개 키, 클램프 범위, 상태/요소 마스크, key-value round-trip)을 검증합니다. PASS. - Build PASS + LabDeploy 로 스트이姆 (트오그에스어 와 함께 2.207.4.0). ### REVISION
v2.207.2.1
v2.207.4.0BETAPATCH
Seymour2026년 8월 2일
Sphere Grid hook stack v5 FROZEN (legacy)
- 동결 에엑스에크우트드 (인계
HANDOFF_JARVIS-HOOK_SPHEREGRID_V5_FREEZE_2026-08-01.md): 해당 4 v5-stack 파일 (SphereGridFullGridCompilerHook.{cpp,h}+SphereGridTrueNewNodeHook.{cpp,h}) 이동됨 로RuntimeTools/FfxHooksDll/legacy/spheregrid_v5/;dllmain.cpp크르이느드 (포함함, 외부 기호,Enabled(), 설치함, 제거함, fault-handler 호출함) — 0 남은 참조;vcxproj+build_hooks.ps1크르이느드. 의심되는 #1 의 해당0xc0000374충돌 (08-01, 흐우크스 활성 + 깨끗한 그리드) 외부 의 해당 build. - 전역 오류 VEH가 이제 항상 활성화된 상태입니다 (
FaultProbe VEH armed (global fault diagnosis)) — SG 후크와 관계없이 충돌 진단 정보가 유지됩니다. - RT2 기준 유지: clean RT2 (일회성 저장, 카운트 +1) PASS → 삭제
legacy/spheregrid_v5/+sg_*플래그 및 매니페스트; FAIL → 독립 실험실(FFXHOOKS_SG_861_LAB_OVERRIDE)로 복귀. - Build
-WithPolyHook -ReleasePASS; LabDeploy 로 스트이姆. ### PATCH
v2.207.3.0
v2.207.5.0BETAPATCH
Seymour2026년 8월 2일
DIFF submenu black-screen fix: fake O_COUNT >0 on the native menu object
- 근본 원인 (v2.207.1.0 버그): multi-column(DIFF)가
g_f7RowCount = 0(1D 행 없음)를 설정하고,F7Sub_SpawnMenu가 네이티브 메뉴 객체에O_COUNT = 0를 기록했습니다. 게임의 드로우 틱이 카운트 0을 감지하여 우리의 드로우를 절대 호출하지 않았습니다 → 서브 메뉴는 "열림" 상태이지만 보이지 않음 → 검은 화면(3D 렌더링 및 메뉴 없이 강제 종료) → F7(강제 종료)만 게임으로 복귀했습니다. - 수정: 스폰 시 발생하는 “
O_COUNT = g_f7RowCount > 0 ? g_f7RowCount : 8” 오류 (DIFF의 카운트가 8로 잘못 표시됨 — multi-column의 드로/입력 처리에서 O_COUNT를 사용하지 않음). - 추가 정보 (로그 진단): 전역 VEH가 부팅 시 실제 AV 2개를 포착했습니다(
FAULT AV READ pc=0x796B11D7/0x796B3908 accessed=0x10CDCDCD— 힙 해제; 모듈 0x796B = fmodex가 rva FFX 위치에서 0x291488 콜백을 호출한 것으로 추정됨) — 사용자의 유휴 상태 충돌에 대한 1순위 용의자 (“유휴 상태에서 게임이 무작위로 종료됨”); 다음 단계에서0x291488내의 IDA을 조사할 예정. - Build PASS + LabDeploy 로 스트이姆 (15:32→v4). ### PATCH
v2.207.4.0
v2.207.6.0BETAPATCH
Seymour2026년 8월 2일
F7 DIFF: true 2D spatial navigation (presets with L/R, Down to BASE, Up on row 0 back) + numeric edit from scratch + Custom chip
- 탐색 기능 수정 (사용자의 정신적 지도): PRESETS에서 이제 L/R (가로 방향 칩)을 사용하여 탐색하며, 아래쪽 키를 누르면 BASE 열로 이동합니다; 데이터 열에서는 L/R로 열을 전환하고, U/D로 행을 이동합니다; BASE의 0번째 행에서 위쪽 키를 누르면 사전 설정으로 돌아갑니다. 이전: L/R는 프리셋에서도 열을 전환했습니다(‘아래로’ 이동하려면 옆으로 이동해야 했습니다).
- 숫자 입력 오류 수정: 필드가 0으로 초기화된 상태로 입력됩니다(새 값을 처음부터 직접 입력해야 합니다 — 기존 값에 누적되기 전: '0'을 입력하면 10000/max가 되던 현상); 숫자를 입력하지 않고 '확인'을 누르면 현재 값이 유지됩니다;
>> value _플레이스홀더는 입력할 때까지 현재 값을 표시합니다; 상황별 하단 안내문("0-9 입력 / Backspace / X 적용 / Esc 취소"). - "사용자 지정" 칩(5번째): 표시되며 탐색 가능 — 수동으로 조정(토글/편집) 시 ACTIVE로 변경됩니다(이전: 칩이 켜지지 않아 혼란스러웠음). 이 칩을 선택하면 현재 값이 유지됩니다. 끄기(vals[0]=0) = 비활성화; 사용자 정의(4) = 커밋 시 활성화.
- Build PASS + LabDeploy 로 스트이姆. ### PATCH
v2.207.5.0