Repository navigation
v0.0.149
rePIU v0.0.149
이전 릴리스 v0.0.148 이후의 변경입니다. 이번 릴리스는 PIU10 타이틀별 CAT702 구성을
분리하고, 호출 래퍼를 사용하는 포트 I/O와 MP3 feeder에도 주소·바이너리 독립적인 batching을
확장하며, 후속 PIU10 타깃 프로파일 7종을 추가합니다.
TargetProfile과 CAT702
TargetProfile::enable_cat702을 PIU10 ISA 보드 capability와 분리했습니다.- CAT702이 꺼져도 PIU10 flash, MP3와 DAC는 계속 동작하며, CAT702 data-out은 0이고 직렬
입력은 무시됩니다. 해당 profile은<target>.cat702자산도 요구하지 않습니다. pumpitpc에서 CAT702을 끄면 실제 Lock Error 키 대기 경로로 진입하고, 기본값을 다시
켜면 같은 지점을 지나 계속 실행됨을 확인했습니다. 이는 profile 설정이 실제 보안 검사
결과를 제어한다는 회귀 검증입니다.- CAT702 transform과 challenge-response 알고리즘은 타이틀별로 보정하지 않았습니다.
호출 래퍼형 포트 I/O 지연 루프
- 입력 포트 래퍼의 register 보존, port 전달, 상대
call, guest stack 반환 주소와 caller
loop를 검증한 뒤, 결과를 폐기하는 반복만 일괄 처리합니다. - 마지막 반복과 flags 계산은 원본 guest가 수행하며, matcher는 target 이름이나 고정 코드
주소를 사용하지 않습니다. pumpitpcRelease A/B에서 전체 port I/O는 244,970회에서 14,110회로 약 94.2%,
privileged-instruction 예외는 236,962회에서 7,936회로 약 96.7% 감소했습니다.
호출 래퍼형 PIU10 MP3 feeder
- 기존 direct
OUT DX,ALmatcher를 유지하면서 register 보존 byte-output 래퍼와 feeder
call/return 관계를 검증하는 후순위 matcher를 추가했습니다. - source cursor, frame count,
ECX, backward loop와 service 조건을 명령 operand에서
추출하므로 profile, 실행 파일 주소나 해시에 의존하지 않습니다. - 감사 계획도 compressed inflight의
0xE00DEMAND경계에서 끊어 scalar status polling과
같은 반환 지점을 보존합니다. - 실제
pumpitpc감사에서 3,700개 segment가 연속 일치했고, 일반 실행은 140,795 byte 중
136,595 byte(약 97.0%)를 batch 처리하면서 drop과 starvation을 기록하지 않았습니다.
추가 타깃 프로파일
- 기존
pumpite뒤에pumpitpr,pumpitpx,pumpit8,pumpitp2,pumpipx2,
pumpitp3,pumpipx3을 추가했습니다. - 신규 프로파일은 공용
piu_common, CHD mount, JAMMA/YMZ280B, PIU10 ISA와 CAT702 경로를
사용하며 MP3 시작 지연 기본값은 0 ms입니다. - Debug/Release profile probe가 등록 순서, 단일 등록, 경로, ROM-set id와 capability를
검증합니다.
검증
- Win32 x86 Debug와 Release 빌드가 성공했습니다.
- Debug/Release
repiu_aot_probe --piu10이 통과했습니다. - 신규 7개 로컬 ROM ZIP은 PIU10/CAT702 필수 entry 검증을 통과했습니다.
pumpitpc의 일반 실행, batching A/B와 MP3 감사 실행을 완료했습니다.
알려진 제한
- 저작권이 있는 ROM ZIP과 CHD는 배포하지 않습니다.
- 신규 7개 타깃은 로컬 CHD가 없어 profile과 ZIP까지만 검증했으며, ISO mount와 guest
실행은 아직 검증하지 않았습니다. - matcher가 wrapper, loop, memory alias 또는 runtime 범위를 완전히 검증하지 못하면 기존
scalar 경로를 유지합니다.
rePIU v0.0.149
Everything since the previous release, v0.0.148. This release separates per-target CAT702
configuration, extends address- and binary-independent batching to wrapped port I/O and MP3
feeders, and adds seven later PIU10 target profiles.
TargetProfile and CAT702
- Added
TargetProfile::enable_cat702independently from the PIU10 ISA-board capability. - With CAT702 disabled, PIU10 flash, MP3, and DAC remain active; CAT702 data-out is zero, serial
input is ignored, and<target>.cat702is not required. - Disabling CAT702 for
pumpitpcreaches the real Lock Error key-wait path, while restoring the
default enabled value continues beyond the same point. This verifies that the profile setting
controls the original security-check result. - No title-specific adjustment was made to the CAT702 transform or challenge-response algorithm.
Wrapped port-I/O delay loops
- The batcher validates input-wrapper register preservation, port transfer, relative
call, guest
stack return address, and caller loop before skipping only iterations whose input is discarded. - The original guest executes the final iteration and flag calculation, and matching uses no target
name or fixed code address. - In a same-Release-binary
pumpitpcA/B, total port I/O fell about 94.2%, from 244,970 to 14,110,
and privileged-instruction exceptions fell about 96.7%, from 236,962 to 7,936.
Wrapped PIU10 MP3 feeders
- The existing direct
OUT DX,ALmatcher remains first, followed by a matcher that validates a
register-preserving byte-output wrapper and feeder call/return relationship. - Source cursor, frame count,
ECX, backward loop, and service conditions come from instruction
operands, without profile, executable-address, or hash dependencies. - Audit plans also stop at the compressed-inflight
0xE00DEMANDboundary, preserving the same
return point as scalar status polling. - A live
pumpitpcaudit passed 3,700 consecutive segments. A normal run batched 136,595 of
140,795 bytes, about 97.0%, with no drops or starvation.
Additional target profiles
- Added
pumpitpr,pumpitpx,pumpit8,pumpitp2,pumpipx2,pumpitp3, andpumpipx3
immediately after the existingpumpiteprofile. - They use the shared
piu_common, CHD mount, JAMMA/YMZ280B, PIU10 ISA, and CAT702 paths, with zero
milliseconds of default MP3 startup latency. - Debug and Release profile probes validate registration order, uniqueness, paths, ROM-set ids,
and capabilities.
Verification
- Win32 x86 Debug and Release builds passed.
- Debug and Release
repiu_aot_probe --piu10passed. - Local ROM ZIPs for all seven new targets passed required PIU10/CAT702 entry validation.
- Live
pumpitpcnormal execution, batching A/B, and MP3 audit runs completed.
Known limitations
- Copyrighted ROM ZIP and CHD assets are not distributed.
- The seven new targets have no local CHDs, so validation currently stops after profile and ZIP
checks; ISO mounting and guest execution remain unverified. - If a wrapper, loop, memory alias, or runtime range cannot be fully validated, the matchers retain
the existing scalar path.