ARM 서버에서 Palworld UE4SS 실행하기 ⑤ — TrueMercy segfault와 잘못 찾은 GNatives 함수 표
TrueMercy의 지속 피해 훅에서 발생한 segfault를 추적하니 UE4SS가 .init_array를 GNatives로 오인하고 있었다. 바이트코드 인자 해석이 깨진 증거, 함수 표 검증 수정, 실제 플레이와 최종 Docker 검증을 기록한다.
blog.dragonfire.dev / notes
notes.
TrueMercy의 지속 피해 훅에서 발생한 segfault를 추적하니 UE4SS가 .init_array를 GNatives로 오인하고 있었다. 바이트코드 인자 해석이 깨진 증거, 함수 표 검증 수정, 실제 플레이와 최종 Docker 검증을 기록한다.
dl_iterate_phdr의 서로 다른 콜백이 Box64의 브리지 슬롯을 소진했다. 공통 dispatcher로 최소 재현 테스트를 139에서 0으로 바꾸고, ELF 범위 계산 수정과 Lua·REST 검증까지 마친 기록이다.
마지막 로그가 file_open이라고 파일 열기가 실패한 것은 아니었다. stderr 경계 로그, GUI 비활성화, 로더 실험으로 초기화 단계를 나누고 Box64의 콜백 경고까지 도달한 과정을 기록한다.
ARM64 호스트에서 x86_64 UE4SS를 빌드하도록 CMake와 Rust 타깃을 맞추고, headless 빌드의 의존성과 ps_scan 링크 누락을 수정했다. Docker Compose override로 Box64 preload를 적용한 과정까지 정리한다.
UE4SS의 ARM64 빌드와 네이티브 후킹 테스트는 통과했다. 하지만 Docker 안의 게임은 Box64로 실행되는 x86_64 바이너리였다. 포팅 과정과 아키텍처 판단을 되짚는다.
봇 목록 조회와 3개 봇의 가위바위보 실험을 돌아보며, 메시지 접수·작업 완료·결과 검증의 차이와 읽기 전용 관찰 화면이 필요한 이유를 정리했다.
Node.js stdio 서버의 모듈 구조, 읽기·쓰기 권한, 접수와 완료의 구분을 설명하고 초기 실서버 검증과 2026년 10월 2일 회귀 테스트 결과를 분리해 기록했다.
기존 MCP 저장소 검토에서 출발해, 설치된 Windows Grok Bot의 현재 계정을 사용하는 로컬 브리지의 범위와 인증·권한·검증 원칙을 정리했다.
Laya·Kev·Jev 서버와 WebUI·MCP를 구현하고 AMD GPU를 붙인 뒤, Ollama의 Tev1·Nimble과 Jev를 같은 언어 판별 입력으로 비교했다. 동작 검증과 판단 품질이 왜 별개인지 실제 실패 사례로 정리한다.
Jev·Laya·Kev의 typed decision을 하나의 MCP 서버로 연결한 구조와, confidence 정규화·입력 적격성·failover·로컬 모델 운영에서 확인한 사항을 정리합니다.