跳到正文

正在自动登录…

← 返回项目列表

snuri00/ps2-web-recomp

PS2游戏运行游戏转换

这是一个将PlayStation 2游戏通过静态重编译为WebAssembly,在浏览器中运行的项目。它包含将游戏光盘镜像转换为网页的脚本,以及一个模拟PS2硬件的运行时。适合希望在现代浏览器中游玩自己拥有的PS2游戏的用户。

AI 中文解读 · 根据仓库描述与 README 生成 · 2026/10/20 04:36:51 · 查看原文

普通C++应用与服务兼有 开发工具
累计 Stars
1,210
当前热度
7~30 天 · 小火
仓库创建时间
打开 GitHub ↗

选用指南

AI 根据 README 整理 · 2026/10/20 04:36:51

适用场景

适合希望将自有PS2游戏光盘镜像转换为可在浏览器或原生窗口中运行的用户,支持Gran Turismo 4和God of War II等游戏。

查看 README 依据
This is the sibling of [psp-web-recomp](https://github.com/snuri00/psp-web-recomp) and follows the same method. The first title brought up this way is Gran Turismo 4, chosen because it is one of the most demanding games on the system: it leans on both vector units, on exact floating point behaviour for its replays and license tests, and on graphics tricks that read rendered images back as palettes. It plays from boot through the opening movie, the menus and races, with music and sound effects, and saves to a memory card kept in the browser. A race runs at full speed, 50 frames per second for
this PAL release, in Chrome on a laptop's integrated GPU at twice the PS2's resolution, which is how the recording above was made. God of War II followed through the same scripts. It needed no game-specific code, but it found two bugs that Gran Turismo 4 had never triggered, one in the recompiler and one in the vector unit timing, and a few missing pieces of the PS2's input/output processor. It now plays from the menus through its cutscenes into combat, and holds 60 frames per second in heavy combat at the PS2's resolution in Chrome. At twice the resolution it runs at 48 to 60, limited by
使用方式

通过命令行脚本port.sh处理光盘镜像,生成网页和原生运行器;浏览器页面支持键盘和手柄操作,原生运行器通过命令行参数启动。

查看 README 依据
run installs the Emscripten SDK into `tools/emsdk`, or uses the one `EMSDK` points to, and downloads wgpu-native for the native runner. With `--native-only` the script skips the browser build and never installs the SDK; the native window then needs the SDL2 development files. Expect about 300 MB of disk space per game for the generated code and the builds; the disc image itself is linked, not copied. ```bash git clone https://github.com/snuri00/ps2-web-recomp.git cd ps2-web-recomp scripts/port.sh mygame "My Game.iso"
The keyboard maps the face buttons to Z (cross), X (circle), A (square) and S (triangle), the shoulders to Q, W, 1 and 2, start and select to Enter and Backspace, the D-pad to the arrow keys and the left stick to I, J, K and L. Gamepads work through the browser's gamepad API. Their analog triggers reach the game as the DualShock 2's pressure-sensitive L2 and R2, and controllers with motors vibrate when the game asks for it, in browsers that expose vibration (Chrome and Edge do). Phones get on-screen controls, and F toggles fullscreen. The resolution selector reloads the page at the new size,
The native runner, `build/native-mygame/ps2run`, plays the game in a window when SDL2 is installed; `scripts/port.sh mygame "My Game.iso" --native-only` builds only this one. It draws through wgpu-native on Vulkan and plays sound through SDL. The keyboard uses the page's keys for the buttons, with the arrow keys as both the D-pad and the left stick, and any game controller SDL recognizes works too, the Steam Deck's own controls included, with the same trigger pressure and vibration as in the browser. ```bash
部署要求

需要git、CMake、Ninja、C++20编译器(推荐clang)、Python 3,以及7-Zip(如果镜像为.7z格式)。浏览器需支持WebGPU,Linux需启用相关标志。

查看 README 依据
Along the way it also needed a boot path like the BIOS gives, a module loaded from memory instead of the disc, and the scratchpad DMA's destination chain mode. ## Port a game of your own You need git, CMake, Ninja, a C++20 compiler (clang is preferred and picked up automatically), Python 3, and 7-Zip if your disc image is in a `.7z`. Everything has been run on Linux on x86-64, and the scripts also build on macOS on Apple silicon, where the scripts need a newer bash than the system 3.2 (`brew install bash cmake ninja sevenzip`) and the native runner links wgpu-native against Metal. The first
The page needs WebGPU for the GPU renderer. Chrome and Edge have it on Windows and macOS. On Linux it is off by default in Chrome and Chromium: turn on `chrome://flags/#enable-unsafe-webgpu` and `chrome://flags/#enable-vulkan` and restart the browser, as the page tells you when it finds no usable adapter. Without WebGPU the software renderer takes over, which is fine for menus and far too slow for 3D. On laptops with two GPUs, a canvas drawn on the discrete GPU sometimes cannot be shown on the screen; the page tries both adapters and falls back to copying frames through a 2D canvas.
已知限制

目前仅成功移植了两款游戏,其他游戏可能因未实现的系统调用或IOP库函数而停止运行,或使用不支持的GS特性。

查看 README 依据
folds into the image of the same code. Set your expectations accordingly: two games have been brought up so far. Another game will most likely stop at a system call or an IOP library function nobody implemented yet, which the runner logs as `[sys] unhandled syscall` or `[iop] missing <library> #<n>`, or use a GS feature the renderer does not handle yet. ## Browsers

README

正在加载 README…

收录信息

仓库创建时间
2026/10/8 15:06:56
首次达标收录
2026/10/13 04:35:43
统计更新时间
2026/10/22 19:00:54

按创建时长与累计 Stars 判断等级。首次达标收录后,即使未达当前门槛仍保留;累计 Stars 和仓库状态会定期更新。确认只有 README 及辅助文件的仓库会停止公开。

模型评估

普通加权总分 3.7 / 5

新颖度
4.2
实用价值
3.0
成熟度
4.1
实质含量
3.8

由 Jev 模型根据仓库描述与 README 评估,2026/10/20 04:36:52 生成。评分仅供参考,不是代码、安全或许可证审查;热度等级另按创建时长与累计 Stars 计算。

仓库信息

最近推送
2026/10/19 15:09:04
许可证标识
MIT
Fork 数
101
当前状态
未归档

收录记录

按创建时长与累计 Stars 首次收录:小火
首次发现项目