Skip to content

v0.0.211

Choose a tag to compare

@github-actions github-actions released this 09 Oct 08:54
· 37 commits to main since this release
01d2775

rePIU v0.0.211

이전 릴리스 v0.0.210 이후의 변경입니다(issue #30, #8, #31). 보류해 두었던 guarded segment
끄기 스위치를 지우고, 머지되지 않은 채 사라졌던 두 수정 — Win32 Release probe 수정과 getch
HLE — 을 다시 들였습니다.

해결된 issue

issue 내용 커밋
#30 guarded segment load·pop·read 끄기 스위치 삭제(환경 변수 토글 정리 보류 항목) cf3c73b
#8 Win32 Release repiu_core_probe의 stack_bridge_contract 실패 cf3c73b
#31 INT 21h AH=07h/08h 에코 없는 콘솔 입력(getch) cf3c73b

바뀐 것

getch로 키를 기다리는 fatal 경로가 이제 키를 받습니다. 게임의 fatal 처리기는 Watcom
getch(INT 21h AH=08h)로 키를 기다리는데, 이 서비스가 없어 그 경로에 닿으면 이름 없는 폴트로
죽었습니다. AH=07h/08h가 BIOS 키보드 버퍼를 읽고, 키가 없으면 다시 묻게 합니다. 2026-10-01
Task 764로 만들어졌지만 그 브랜치가 머지되지 않아 빠져 있던 것입니다.

더 이상 읽지 않는 환경 변수 3개. REPIU_AOT_GUARDED_SEGMENT_LOAD, _POP, _READ. 이 경로들은
dynamic 백엔드에서 항상 켜져 있습니다. v0.0.206에서 슬롯 내부를 바꾼 뒤 비상 수단으로 남겨 두었는데,
v0.0.207~v0.0.210 동안 회귀가 없었습니다.

Win32 Release core probe가 전부 통과합니다. stack_bridge_contract의 거절 검사가 컴파일러가
EAX에 남긴 값에 기대고 있어 Release에서만 실패했습니다. 엔진 결함은 아니었습니다(Task 765의 수정,
같은 이유로 빠져 있던 것).

새 probe. repiu_aot_probe --dos-console-input(core probe에도 포함).

개발 규칙. AGENTS.md에 "main이 아니면 새 브랜치를 만들지 않고 이어서 작업한다"와 여러 issue를
닫는 PR의 작성법을 적었습니다.

확인한 것

구성 확인
Win32 Release 빌드, core probe 전체 통과(stack_bridge 포함), repiu_aot_probe 전체 체인(종료 코드 0), Glide probe 2종
Linux x64 Release 빌드, core probe 전체 통과
Linux i386 Release core probe 전체 통과

알려진 것

  • 게임 실행은 하지 않았습니다. guarded segment는 기본값이 그대로이고, getch는 fatal 경로에서만
    닿습니다(Task 764 당시 pumpipx3에서 확인).

rePIU v0.0.211

Changes since v0.0.210 (issues #30, #8, #31). The deferred guarded segment kill switches are
gone, and two fixes that had been lost with an unmerged branch — the Win32 Release probe fix and
the getch HLE — are back.

Resolved issues

issue Summary Commit
#30 Retire the guarded segment load/pop/read kill switches (environment toggle cleanup, deferred item) cf3c73b
#8 stack_bridge_contract fails in Win32 Release builds of repiu_core_probe cf3c73b
#31 INT 21h AH=07h/08h console input without echo (getch) cf3c73b

Changed

A fatal path waiting on getch now takes a key. The game's fatal handler waits with Watcom's
getch (INT 21h AH=08h), and without that service reaching the path died on a nameless fault.
AH=07h/08h now read the BIOS keyboard buffer and, with nothing queued, let the guest ask again.
This was Task 764 on 2026-10-01, missing because its branch was never merged.

Three variables are no longer read: REPIU_AOT_GUARDED_SEGMENT_LOAD, _POP and _READ; the
paths are always on for the dynamic backend. They were kept as an escape hatch after v0.0.206
changed the slot internals, and v0.0.207 to v0.0.210 showed no regression.

The Win32 Release core probe passes in full. The stack_bridge_contract refusal check relied on
whatever the compiler left in EAX and failed only in Release; the engine was fine (Task 765's fix,
missing for the same reason).

New probe: repiu_aot_probe --dos-console-input (also in the core probe).

Development rules: AGENTS.md now says work continues on the current branch when it is not main,
and how a pull request that resolves several issues closes them.

Verified

  • Win32 Release: build; the full core probe including stack_bridge; the full repiu_aot_probe
    chain (exit 0); both Glide probes.
  • Linux x64 Release: build; all core probes pass.
  • Linux i386 Release: all core probes pass.

Known

  • No game run: the guarded segment defaults are unchanged, and getch is reached only on a fatal
    path (checked on pumpipx3 back in Task 764).