Repository navigation
v0.0.148
rePIU v0.0.148
이전 릴리스 v0.0.147 이후의 변경입니다. 이번 릴리스는 pumpitpc의 CAT702 보안
검사에서 발생하던 Lock Error!!!를 수정합니다. CAT702 알고리즘을 바이너리에 맞춰
보정한 것이 아니라, 여러 장치가 공유하는 Watcom 포트 출력 래퍼를 보존하는 공용 포트
I/O 정책으로 해결했습니다.
pumpitpc CAT702 보안 검사
pumpitpc가 호출하는 공용OUT DX,AX래퍼는 시작 과정의0x2AC,0x2A6출력과
이후 PIU10 CAT702 포트0x2D4,0x2D6,0x2DA출력을 모두 담당합니다.- 기존 HLE는 무시하거나 관찰만 하는 첫 출력에서 래퍼의
OUT명령을 NOP로 영구
패치했습니다. 이 때문에 이후 CAT702 직렬 트랜잭션이 실행되지 않아 게임이 Lock Error
경로로 진입했습니다. - 이제 무시·유예 출력은 게스트 코드를 변경하지 않고 현재 EIP만 전진합니다. 해당
트랜잭션만 버리고 공용 래퍼는 다음 DX 포트 호출을 위해 그대로 유지됩니다. - 이 정책은 target ID, 실행 파일 주소, 특정 포트 번호를 조건으로 사용하지 않으므로 같은
형태의 동적 DX 출력 래퍼에 공통으로 적용됩니다.
CAT702 모델 검증
- 실제 transform
F0 1C FE 03 81 40 38 F8, challenge
D0 AA C9 F8 96 4C D0 DE B6 0B, response
7D 77 FE EA 8B 7A 55 7D 5F 1E를 회귀 probe에 추가했습니다. - 게스트의 LSB-first 반전 입력, MSB-first 응답 누적, 추가 clock, 인접 바이트 정렬과 최종
bit reversal을 포함하면 기존 CAT702 HLE 모델이 실제 응답과 정확히 일치합니다. - 따라서 CAT702 transform, bit order 또는 게임 바이너리별 보정은 추가하지 않았습니다.
검증
- Win32 x86 Debug 빌드가 성공했습니다.
- PIU10 실제 CAT702 벡터 probe와 전체
pumpitpcAOT probe가 통과했습니다. - 기본 환경의
pumpitpc가 기존 오류 종료 시점을 지나 50초 이상 계속 실행됨을 확인했습니다.
알려진 제한
- 저작권이 있는 ROM ZIP과 CHD는 배포하지 않습니다.
- 다른 실행 파일이 사용하는 추가 CAT702 명령 형식은 별도의 호환성 검증 대상입니다.
rePIU v0.0.148
Everything since the previous release, v0.0.147. This release fixes the Lock Error!!!
seen during the pumpitpc CAT702 security check. It does not tune the CAT702 algorithm for one
binary; it corrects the shared Port I/O policy so Watcom output wrappers reused across devices
remain intact.
pumpitpc CAT702 security check
- A shared
OUT DX,AXwrapper handles both startup writes to0x2ACand0x2A6and later
PIU10 CAT702 writes to0x2D4,0x2D6, and0x2DA. - The previous HLE permanently NOP-patched the wrapper's
OUTinstruction on the first ignored
or observation-only output. Later CAT702 serial transactions could no longer execute, sending
the game into its Lock Error path. - Ignored and deferred outputs now advance only the current EIP without modifying guest code.
This discards one transaction while retaining the shared wrapper for later DX-port calls. - The policy does not branch on target ID, executable address, or a specific port number, so it
applies generally to equivalent dynamic DX-output wrappers.
CAT702 model verification
- The regression probe now covers real transform
F0 1C FE 03 81 40 38 F8, challenge
D0 AA C9 F8 96 4C D0 DE B6 0B, and response
7D 77 FE EA 8B 7A 55 7D 5F 1E. - With the guest's inverted LSB-first input, MSB-first response accumulation, extra clocks,
adjacent-byte alignment, and final bit reversal included, the existing CAT702 HLE model
matches the real response exactly. - No CAT702 transform, bit-order, or per-binary adjustment was added.
Verification
- The Win32 x86 Debug build passed.
- The real PIU10 CAT702-vector probe and complete
pumpitpcAOT probe passed. - A default-environment
pumpitpcrun continued for more than 50 seconds beyond the previous
failure point.
Known limitations
- Copyrighted ROM ZIP and CHD assets are not distributed.
- Additional CAT702 command forms used by other executables remain separate compatibility work.