HTTP Game Streaming
HTTP Mode serves your PS2 game collection over standard plain HTTP for compatible OPL forks (such as Docmine17's Open-PS2-Loader-HTTP and RiptOPL). By replacing SMB with standard HTTP Range requests, it eliminates complex network authentication entirely.
1. Setting Up HTTP Mode
Start the HTTP Server Card
Select your games folder (the parent holding DVD/ and CD/) and start the HTTP card. The default port is TCP 1100.
Configure Your Console Loader
In OPL Network Settings, configure the following values:
| Field | Required Value |
|---|---|
| Protocol | HTTP |
| Address Type | IP |
| PC IP Address | IP address shown on the running HTTP card |
| Port | 1100 (Must be set explicitly) |
| Share Name | Blank, or anything (ignored by server) |
0 causes its game-list loader to default to port 8080 while its in-game driver defaults to port 1100! The result is that your game list populates, but selecting a game produces an immediate black screen. Always set Port to 1100 explicitly in your loader.
2. What the Server Serves
The HTTP server inspects your games folder root, DVD/, and CD/, automatically generating two resources:
games.csv— Generated on the fly at/games.csvand/<share>/games.csv. Lists startup identifiers, titles, and media types without manual curation.- Bare Game ISOs: Disc images are flattened at the web root (e.g.
GET /SLUS_201.74.Rumble Racing.iso) to accommodate the console driver's hardcoded root path.
RiptOPL path-aware game list
RiptOPL reads a richer, four-field games.csv. On the HTTP card set Game list format to RiptOPL path-aware (headless: --catalog-profile riptopl-path-aware). Keep Legacy flat for Docmine17's OPL-HTTP. Neither client can read the other's list, so the choice is explicit.
- Each game is listed and requested by its real folder path (
DVD/Game.iso), with the STARTUP, title and path fields quoted (MEDIAis a bareCDorDVD). Names with commas, quotes or a leading#work. - A
games.csvyou put in the games folder is only used by Legacy flat, and only when it is readable and at most 8192 bytes; otherwise Legacy flat generates the list. This list is always generated. - There is no bare-filename fallback. A request that does not name a listed path gets a 404 instead of a different disc.
- The list holds up to 262144 bytes and 2048 rows, the limits in RiptOPL's own client. Rows RiptOPL would refuse, and later rows that reuse a STARTUP id, are left out and named in the server log.
- ZSO is decoded to a virtual
.isowhenlz4is installed, because RiptOPL cannot launch ZSO over HTTP. - Opt-in Include nested folders (
--recursive) lists games up to 4 folders deep. It does not follow linked folders. - In RiptOPL, set the base path to
/or leave it blank.
Not tested on a PS2 yet. The list is checked against RiptOPL's compiled parser on a PC only.
3. Compressed Format Streaming
| Format | Handling Mechanism |
|---|---|
.iso |
Streamed directly via HTTP Range headers. |
.zso, .ziso |
Streamed compressed as-is. The PS2 client decompresses LZ4 blocks locally. |
.chd, .cso |
Decompressed in real time on the server and advertised to the client as standard .iso. |
4. Known Limits & Specifications
- Read-Only Protocol: The HTTP client driver does not support WebDAV or HTTP PUT; Virtual Memory Cards (VMC) cannot be written over HTTP. Saves require a physical memory card.
- No Authentication: Never expose port 1100 to the public internet; keep it strictly on your local private subnet.
- Single-Layer Discs Only: The client driver hardcodes
layer1_start = 0, so dual-layer DVD9 titles will not transition beyond the layer break. - Game List Buffer Limit: Docmine17's client has an 8192-byte receive buffer for
games.csv(approximately 80–100 titles). Larger libraries need curating. The RiptOPL path-aware list allows 262144 bytes.