Skip to content

v0.0.223

Choose a tag to compare

@github-actions github-actions released this 15 Oct 19:38
· 10 commits to main since this release
4320931

rePIU v0.0.223

이전 릴리스 v0.0.222 이후의 변경입니다(issue #72). 브라우저 호스트 단계 4의 첫 단위입니다. 개발용 웹 빌드가 처음으로
브라우저 페이지에서 게임 화면을 냅니다. 배포 빌드(Windows·Linux)의 동작은 바뀌지 않습니다.

해결된 issue

issue 내용 커밋
#72 웹 이식 2B 단계 4: 브라우저 페이지, Worker의 엔진이 WebGL2 캔버스에 그리기 59f2445

바뀐 것

브라우저에서 pumpitea가 돕니다. 페이지에서 ROM ZIP과 CHD를 고르면 엔진이 페이지의 Worker에서 돌고 WebGL2 캔버스에 그립니다.

  • 결과(pumpitea, Chrome): 시작 후 약 4분에 타이틀, 약 400초에 데모 플레이. 처음 약 55초는 CHD에서 게임 파일 428 MB를 메모리에
    푸는 시간입니다. 소리와 입력은 아직 없습니다.
  • 파일: CHD는 통째로 올리지 않고 필요한 부분만 읽습니다. 롬은 사이트에 두지 않고 사용자가 고릅니다.
  • 화면: 창·GL 문맥을 다루는 부분을 경계 하나로 나눠, Windows·Linux는 SDL 창을, 브라우저는 페이지의 캔버스를 씁니다.
  • 실행: 엔진은 한 스레드에서 돌며 프레임마다 브라우저에 잠깐 차례를 넘깁니다.
  • 실행 방법: ./scripts/build_web_wasm.sh --build-dir ~/repiu-web --target repiu_browser로 빌드하고 그 디렉터리를
    python3 -m http.server로 연 뒤 브라우저에서 엽니다.

확인한 것

구성 확인
브라우저(Chrome) 타이틀·데모 플레이 화면, Worker 오류 없음
Win32 Debug·Release 렌더 장면 probe 화소 일치, 후처리·레터박스·전체 화면, core probe
Win32 emulated, Linux x64·i386, 웹 Node 빌드, core probe, 실행
CI Win32 Debug 빌드와 probe

알려진 것

  • 소리·입력이 없습니다(다음 단위). 매번 게임 파일을 다시 풉니다(그다음 단위에서 영구 저장).
  • 실시간보다 많이 느립니다. 제대로 플레이하려면 CPU 에뮬레이터의 번역 확대가 따로 필요합니다.

rePIU v0.0.223

Changes since v0.0.222 (issue #72). The first unit of the browser host's fourth phase. The development web build
puts the game's picture on a browser page for the first time. Release builds (Windows, Linux) behave as before.

Resolved issues

issue Summary Commit
#72 Web port 2B phase 4: the browser page, the engine in a Worker drawing to a WebGL2 canvas 59f2445

Changed

pumpitea runs in a browser. Pick the ROM ZIP and the CHD on the page, and the engine runs in the page's Worker and
draws to a WebGL2 canvas.

  • Result (pumpitea, Chrome): the title about 4 minutes after start, demo play at about 400 s. The first 55 s or so go
    to unpacking 428 MB of game files from the CHD into memory. No sound or input yet.
  • Files: the CHD is never loaded whole; only the parts asked for are read. ROMs are not hosted; the user picks them.
  • Picture: the window and GL context work sits behind one boundary, so Windows and Linux use an SDL window and the
    browser the page's canvas.
  • Running: the engine runs on one thread and hands the browser its turn once a frame.
  • How to run: build with ./scripts/build_web_wasm.sh --build-dir ~/repiu-web --target repiu_browser, serve that
    directory with python3 -m http.server, and open it in a browser.

Checked

Configuration Check
Browser (Chrome) title and demo play on screen, no Worker errors
Win32 Debug and Release render probe scenes pixel for pixel, post-process, letterbox, fullscreen, core probe
Win32 emulated, Linux x64 and i386, web under Node build, core probe, run
CI Win32 Debug build and probes

Known

  • No sound or input (next unit). The game files are unpacked again every time (persistent storage is the unit after).
  • Far slower than real time; playing properly needs wider translation in the CPU emulator, a separate piece of work.