Repository navigation
v0.0.200
rePIU v0.0.200
이전 릴리스 v0.0.197 이후의 변경입니다(Tasks 764–770). v0.0.198과 v0.0.199는 릴리스 노트 없이 태그만
붙었으므로 여기에 함께 적습니다. 화면 후처리 shader(crt, scanline)와 전체화면 전환이 들어왔고, 창을
어떤 모양으로 바꿔도 원래 4:3 화면을 유지합니다. vsync가 기본으로 켜지고, GitHub 릴리스에 Linux i386·x64
압축 파일이 함께 올라갑니다.
새로 들어온 것
화면 후처리 shader (Task 768). 버퍼 swap 직전에 표시 단계 전용 pass가 하나 돕니다. 게스트가 읽는
framebuffer는 바뀌지 않습니다.
- 내장
crt(곡률, 빔 모양 주사선, 마스크, 비네트)와scanline. libretro 단일 pass GLSL 형식의.glsl
파일을shaders\에 넣으면 목록에 함께 나옵니다. - 고르는 곳: 런처 Options의 "Screen shader"(
cfg\repiu.ini에 저장),REPIU_POST_SHADER=crt(그 실행, 런처
값보다 우선), 게임 중TabOSD(그 실행만; Reload와 매개변수 슬라이더). - 기본은
none이며 이때는 GL 호출을 하나도 더하지 않습니다. - 기본 2배 창에서 주사선이 보이도록 줄의 밝기 곡선을 출력 픽셀에 맞췄습니다.
crt곡률 기본값은 0.01입니다. - 형식과 확인 절차: 후처리 shader 가이드. 개발 기록:
WIP 글.
전체화면 전환과 비율 유지 (Task 769). 게임 창을 더블클릭하거나 Alt+Enter를 누르면 테두리 없는
전체화면과 창 모드를 오갑니다. 디스플레이 해상도는 바꾸지 않습니다. 창 크기를 바꾸든 전체화면이든 그림은
원래 비율을 유지하고 남는 부분은 검은 띠가 됩니다. 게스트가 읽는 값에는 띠가 섞이지 않습니다. Alt+14배를 고릅니다. 전에는 전체화면이 없었고, 창을 늘리면 그림이 비율 없이 늘어났습니다.Alt+4는
창 모드에서 1
vsync 기본 켜짐 (v0.0.198, Task 766). REPIU_GLIDE_SWAP_INTERVAL이 없으면 엔진이 swap interval을
요청하지 않아, SDL의 Wayland 백엔드에서는 vsync 없이 그려졌습니다. 이제 GL 창이 생기면 항상 요청합니다
(변수 값이 유효하면 그 값, 아니면 1). REPIU_GLIDE_SWAP_INTERVAL=0 또는 런처의 "Wait for vertical sync" 해제로
끕니다.
Linux 릴리스 압축 파일 (v0.0.199, Task 767). 릴리스 워크플로가 Win32와 함께 Linux i386·x64 Release를
ubuntu-22.04에서 빌드해 rePIU-v<version>-linux-<arch>.tar.gz로 올립니다. C++ 런타임은 정적 링크라 libGL과
glibc 2.35 이상만 있으면 됩니다.
스크린샷 (Task 770). 16개 롬셋의 화면을 docs/screenshots/에 두고 README와
프로젝트 사이트 소개에 넣었습니다. shader 비교 화면은
docs/screenshots/shaders/에 있습니다.
사이트와 크레딧 (Tasks 764–765). 사이트에 Pump It Up Exceed 아케이드 장식을 더했고, LICENSE(BSD
3-Clause), CREDITS.md, 사이트 Credits 페이지가 들어왔습니다.
새 스위치 (설정하지 않으면 기본 동작)
REPIU_POST_SHADER—none(기본),crt,scanline, 또는shaders\안 파일 이름.cfg\repiu.ini의[Video] post_shader— 런처가 저장합니다.
확인한 것
| 구성 | 확인 |
|---|---|
| Win32 x86 Debug | 빌드, repiu_aot_probe --post-shader·--glide-letterbox·--launcher, repiu_glide_render_probe --opengl-post-shader·--opengl-lfb(Intel Arc), pumpit1 15초 none·crt·scanline |
| Win32 x86 Release | 빌드, 16개 롬셋 90초씩 화면 캡처(스크린샷), pumpit8 입력 스크립트로 none·crt·scanline 캡처 |
| Linux x64 Debug (WSL) | 빌드, 위 probe 세 개(임시 빌드), GL probe를 x11·Wayland × d3d12·llvmpipe로, pumpit1 30초 x11에서 실제 X 입력으로 전체화면 왕복 4회 |
알려진 것
- Linux에서 창 크기를 바꾼 직후 한 프레임은 옛 크기 버퍼에 새 viewport로 그려질 수 있습니다. Mesa는 다음
swap에서야 버퍼 크기를 바꾸기 때문입니다. 다음 프레임부터는 맞습니다. 같은 이유로
repiu_glide_render_probe --opengl-post-shader의 letterbox 검사는 Linux에서 실패합니다(검사 쪽 문제). - WSLg Wayland에서 전체화면 해제가 느리고 일정하지 않습니다(swap 13~368번, 한 번은 600번 안에 풀리지
않음). 엔진은 해제를 정상으로 요청합니다. x11과 Windows에서는 바로 풀립니다. 실제 Wayland 데스크톱은
확인하지 못했습니다. repiu_aot_probe와repiu_glide_render_probe는 Linux에서 빌드 대상이 아닙니다.- Linux i386 빌드와 웹 빌드는 이번에 확인하지 않았습니다.
- v0.0.197의 "알려진 것"(Win32 Release core probe의
stack_bridge_contract=false등)은 그대로입니다.
rePIU v0.0.200
Changes since the previous release, v0.0.197 (Tasks 764–770). v0.0.198 and v0.0.199 were tagged
without release notes, so they are described here as well. Screen post-processing shaders (crt,
scanline) and a fullscreen toggle are in, and the original 4:3 picture is kept whatever shape the
window takes. Vertical sync is on by default, and the GitHub release carries Linux i386 and x64
archives.
New
Screen post-processing shaders (Task 768). One presentation-only pass runs just before the buffer
swap; the framebuffer the guest reads is unchanged.
- Built-in
crt(curvature, beam-shaped scanlines, a mask and a vignette) andscanline..glslfiles
in the libretro single-pass layout dropped intoshaders\join the list. - Chosen in the launcher's Options "Screen shader" (stored in
cfg\repiu.ini), with
REPIU_POST_SHADER=crt(that run, over the launcher's value), or in game from theTabOSD (that run
only, with Reload and parameter sliders). - The default is
none, which adds no GL call. - The brightness profile of a line is aligned to output pixels so scanlines show in the default 2x
window. Thecrtcurvature defaults to 0.01. - Format and checks: the post-processing shader guide. Dev log:
the WIP post.
Fullscreen toggle and aspect ratio (Task 769). Double-click the game window or press Alt+Enter to
switch between borderless fullscreen and windowed mode; the display resolution is left alone. Whether
the window is resized or fullscreen, the picture keeps its original ratio with black bars around it,
and the bars never reach what the guest reads back. Alt+1 to Alt+4 pick a 1x to 4x window in
windowed mode. Before, there was no fullscreen and a stretched window stretched the picture with it.
Vertical sync on by default (v0.0.198, Task 766). Without REPIU_GLIDE_SWAP_INTERVAL the engine never
requested a swap interval, so SDL's Wayland backend drew without vsync. It now always requests one once a
GL window exists (the variable's value when valid, 1 otherwise). REPIU_GLIDE_SWAP_INTERVAL=0 or
unchecking "Wait for vertical sync" in the launcher turns it off.
Linux release archives (v0.0.199, Task 767). The release workflow builds Linux i386 and x64 Release on
ubuntu-22.04 next to Win32 and attaches them as rePIU-v<version>-linux-<arch>.tar.gz. The C++ runtime is
linked statically, so they need only libGL and glibc 2.35 or newer.
Screenshots (Task 770). Screens from 16 ROM sets are in docs/screenshots/, shown in the README and
on the project site's introduction; the shader comparison shots are in
docs/screenshots/shaders/.
Site and credits (Tasks 764–765). The site gained a Pump It Up Exceed arcade layer, and LICENSE
(BSD 3-Clause), CREDITS.md and a site Credits page are in.
New switches (default behaviour when unset)
REPIU_POST_SHADER—none(default),crt,scanline, or a file name inshaders\.[Video] post_shaderincfg\repiu.ini— stored by the launcher.
Verified
| Configuration | Check |
|---|---|
| Win32 x86 Debug | build, repiu_aot_probe --post-shader, --glide-letterbox and --launcher, repiu_glide_render_probe --opengl-post-shader and --opengl-lfb (Intel Arc), pumpit1 15 s with none, crt and scanline |
| Win32 x86 Release | build, 16 ROM sets captured for 90 s each (the screenshots), pumpit8 with an input script captured under none, crt and scanline |
| Linux x64 Debug (WSL) | build, the three probes above (ad hoc build), the GL probe under x11 and Wayland × d3d12 and llvmpipe, pumpit1 30 s under x11 with four fullscreen round trips by real X input |
Known
- On Linux, the one frame right after a window resize can be drawn with the new viewport into the
old-size buffer, because Mesa resizes the buffer only at the next swap; the next frame is right. For
the same reason the letterbox check ofrepiu_glide_render_probe --opengl-post-shaderfails on Linux
(a problem in the check). - Leaving fullscreen on WSLg Wayland is slow and erratic (13 to 368 swaps, once not within 600). The
engine requests it correctly; under x11 and on Windows it leaves at once. A real Wayland desktop was not
checked. repiu_aot_probeandrepiu_glide_render_probeare not built on Linux.- The Linux i386 build and the web build were not checked this time.
- v0.0.197's known issues (the Win32 Release core probe's
stack_bridge_contract=false, among others)
remain.