• ARCA 0.1.21

    ARCA 0.1.21 변경 사항

    이전 버전: 0.1.20. LINKS 요청 6건(2026-10-16) 대응 release다. native runtime(mkxp-z core JS·WASM)·SDK bundle·contracts tgz·Builder archive·npm tgz bytes가 바뀐다. 새 오류 code·schema는 없고 삭제된 export도 없다. 새 공개 값은 모두 가산이다(release pin builderConfigDigest, getArcaRelease().builder.configDigest, loadArcaBuilder() 결과 configDigest, SDK presentation 옵션과 onPresentation의 filter·scaling).

    포함 변경 요약

    runtime: 비율 맞춤 여백 잔상 수정

    • canvas 비율과 게임 비율이 다를 때(Graphics.resize_screen, 정수 배율, 17:13이 아닌 canvas) Emscripten WebGL 1 offscreen blit이 gl2의 letterbox viewport를 그대로 써서 frame이 그 안으로 눌리고 여백 바깥 줄에 이전 화면이 남았다. frontend patch retroarch-main-thread-webgl-proxy의 swap이 commit 전에 viewport를 drawing buffer 전체로 둔다(근거).

    runtime: suspended AudioContext의 선부팅 지연 수정

    • user gesture 전 suspended AudioContext에서 RetroArch AudioWorklet writer가 즉시 반환해 threaded core audio가 속도 제한 없이 decode하고 write마다 main thread에 resume()을 쌓았다(선부팅이 20 s 상한까지 대기). frontend patch retroarch-audio-continuity가 blocking writer를 버린 frame의 재생 시간만큼 기다리게 하고 resume() 요청을 1초에 한 번으로 줄인다(근거).
    • runtimes/mkxp-z/dependencies.lock.json·build recipe와 redistribution-policy.json의 lock hash를 갱신했다. 제3자 dependency·license 변경은 없다.
    • native runtime export(named volume clean build): rgss23-core.js d4884b14f717f5b2ac35ec8a53f6d4663d6b1c70e2f477682e93326ef6cd8bd2(256,567 B), rgss23-core.wasm 39085f4e81f83ae1a7588849b4c696ea2fadf6d2a03f0c50954c44403c45c716(44,432,926 B).

    SDK: 표시 품질 launch 옵션

    • presentation: { filter?: "nearest" | "bilinear", scaling?: "fit" | "integer" }(launch·prepare 전용, 시작 뒤 변경 없음). 기본값 nearest·fit은 이전 release의 실제 동작과 같다(RetroArch video_smooth 기본 off). 알 수 없는 값은 launch 전 TypeError. onPresentation 상태에 적용된 filter·scaling을 보고한다.
    • presentation 통지가 정지·dispose 뒤 한 번 더 올 수 있던 RAF 경로를 막았다.
    • browser compositor의 CSS 확대(부모 transform, scaled 상태)는 host CSS 책임이며 SDK는 canvas style을 바꾸지 않는다(SDK 화면 표시).

    release·deploy: Builder config digest

    • release pin builderConfigDigest(Builder archive의 OCI image config descriptor digest = Docker 24 graphdriver store의 load 뒤 image ID). getArcaRelease().builder.configDigest는 integrity로 결속된 archive를 Docker 없이 읽어 pin과 같을 때만 돌려준다(다르면 ARCA_RELEASE_BUILDER_MISMATCH). release manifest schema는 그대로다.

    smoke·문서

    • runtime:smoke:dpr: resize 뒤 640×480·544×480·544×416 여백 전체 검정·frame 무축소 단언, --worker-mode. runtime:smoke:presentation-quality 신설. runtime:smoke:host-storage-metrics: --suspend-audio·--autoplay-policy.
    • LINKS 가이드 0.1.21 절(요청별 판정·검증 대응), 프로젝트 상태·호환성 매트릭스·로드맵(backing 재할당 보류, RTP pruning 미채택, iOS 초안 보류). release bytes에 들어가는 packages/contracts/README.md·tools/release/npm/README.md가 바뀌었다.

    측정 요약

    2026-10-16, 같은 PC, Chrome 155.0.8059.84·Firefox 153.0.1 headless, 자동화 PASS·사람 검토 NOT RUN.

    • resize 여백: runtime:smoke:dpr Chrome·Firefox × DPR 1·2·3 × 390×844·820×1180 × module·opaque-origin Worker 24셀 PASS(수정 전 runtime은 같은 셀 FAIL).
    • 표시 품질: runtime:smoke:presentation-quality Chrome·Firefox × module·opaque-origin 80셀 PASS(DPR 1의 2·3·2.3배, DPR 1.25·1.5; backing = CSS × DPR, nearest 경계 혼합 0, integer 여백 검정).
    • 선부팅(AudioContext 강제 suspended, prepare→paused): 제공 VX Ace Chrome lazy 4.6/3.8 s, opaque frame + opaque-origin Worker 3.4/4.1 s, heap 9.3 s, Firefox 4.1/3.2 s, 클릭 뒤 오디오 재개. WAV BGM 합성 게임 0.1.20 20.8 s → 0.1.21 3.7 s.
    • browser:smoke:chrome:vx-ace:title PASS(title gold 28353853… 일치).

    host 적용 순서

    LINKS 적용 가이드 0.1.21 절을 따른다. 요약:

    1. @rgss23/arca 전체를 0.1.21 exact pin과 registry integrity로 올리고 release pin·runtime generation을 함께 적용한다(절차는 0.1.20과 같다).
    2. Builder 실행 참조: load 뒤 daemon image ID가 getArcaRelease().builder.digest(containerd store) 또는 configDigest(Docker 24 graphdriver store)와 같을 때만 그 ID로 실행한다.
    3. 선명도가 필요하면 launch·prepare에 presentation을 전달한다. 부모 CSS transform 확대는 browser가 bilinear로 리샘플링하므로 표시 크기 배치를 우선한다.
    4. resize 여백 edge 단언과 suspended AudioContext 선부팅(force probe)을 host 경로에서 다시 측정한다.

    NOT RUN

    • LINKS opaque frame 적용·force probe·run-player-dpr 재측정, NAS 실환경, Docker 24.0.2 실제 daemon 재확인.
    • 실행 중 backing 재할당(보류), sharp 배율(미포함).
    • 사람 화면·청취 확인, 새 사용자 acceptance(제공 VX/VX Ace acceptance 기준은 2026-08-05 그대로), 새 runtime의 나머지 browser smoke 행렬.
    • 실기 모바일·Safari, Linux 재현.

    배포 검증

    • tag: 0.1.21(annotated, tag object 07605b80a1)
    • release source: 07ade373fa(버전 커밋)
    • manifest SHA-256: 219cfa29635aeda918ab73c40b093f90bdd5a3bccdf090507e7e40855023a603
    • Builder digest(pin): sha256:83adbc29a760db8f94cbbd331ba36028526067165b17d241a56fc8a13abe4d7b · Builder config digest(pin builderConfigDigest): sha256:43bc702e27c753de3c61fa206624a30a321efd3c1348a556d1aaba3d5a8c8d7c
    • artifact SHA-256: builder e97830b7d7e657d722a970ca59a54309aa9adb440d880148951037f2c8160a07 · contracts 63ceb690cd532aaf955af23d5dfb2bece1c6c988f8b138ed7c454ad95a2d649d · runtime 376de5df60edf710520bdc2927729aa9fd88750263c9acfedbd363df2abd53d5
    • npm: @rgss23/arca@0.1.21 (Forgejo registry), rgss23-arca-0.1.21.tgz SHA-256 70eb2ed4e281c32ca3db4bea5032a5e2c344239b1a55b79ef3738f127dbf2c82, integrity sha512-MA28KwXCDci8cpO6Twss9W3XFCbvudRNQpk+lyZXxB36DDyYRolNbscVMVXXAZ9vNiQb3GwgcU+cQIC4+CmiGg==
    • 단위 테스트 618개, 타입 검사, release 회귀 47개, native 준비 recipe 검증, git diff --check: PASS(2026-10-16, 버전 커밋 07ade37). runtime lock·native 진단 lock 검증과 browser 도구 회귀 125개: PASS(같은 code, 버전 커밋 직전).
    • release:build(Builder gate·source-free consumer gate)·release:verify·release:npm:test·release:reproduce: PASS(2026-10-16, source 07ade37). Windows·같은 Docker host만, Linux 재현 NOT RUN.

    asset 7개

    파일 크기(B) SHA-256
    release-manifest.json 2,155 219cfa29635aeda918ab73c40b093f90bdd5a3bccdf090507e7e40855023a603
    release-manifest.sha256 88 c619c86baa17c55c86eb1cc29a4b6011c489e9fa4880684aa21051d05a7d84c4
    release-pin.json 537 3cb9a5821ddcc2f0a1f79ee220b22637d37d378feeade952a99c04f6fc581efc
    rgss23-arca-0.1.21.tgz 99,986,173 70eb2ed4e281c32ca3db4bea5032a5e2c344239b1a55b79ef3738f127dbf2c82
    rgss23-builder-0.1.21.oci.tar 61,884,928 e97830b7d7e657d722a970ca59a54309aa9adb440d880148951037f2c8160a07
    rgss23-contracts-0.1.21.tgz 38,248 63ceb690cd532aaf955af23d5dfb2bece1c6c988f8b138ed7c454ad95a2d649d
    rgss23-runtime-0.1.21.zip 45,707,430 376de5df60edf710520bdc2927729aa9fd88750263c9acfedbd363df2abd53d5

    로컬 경로: dist/release/0.1.21/, dist/npm/0.1.21/rgss23-arca-0.1.21.tgz. artifacts.json·npm-package.json은 업로드하지 않는다.

    0.1.20 대비 전체 변경

    Downloads 9