-
Notifications
You must be signed in to change notification settings - Fork 2
SMB
Load PS2 (and PS1) games directly from a shared folder on a Windows PC, Linux Samba server, or NAS over your local network. RiptOPL speaks SMBv1 by default and can be switched to SMB2 with the SMB Version row in Game Sources. No USB drive required — the PS2 mounts the share and reads ISOs straight off it.
ℹ SMB and Network Boot share the same adapter
The PS2 has one Ethernet port and one network driver. SMB (ETH) and Network Boot (UDPBD/UDPFS) are mutually exclusive — selecting one in Game Sources excludes the others. If you switch, you must save and restart for the change to take effect. See Network Boot for the UDPBD/UDPFS alternative.
- A PS2 with a network adapter (PS2 HDD adaptor with Ethernet, or a compatible third-party adapter).
- A PC, NAS, or Linux/macOS box that can serve a share in the dialect you select — SMBv1 (the default) or SMB2. The server only has to speak the one dialect you pick. On Windows, the recommended path is the PS2 Servers all-in-one launcher, whose server is SMBv1-only; Samba and compatible NAS shares remain supported.
- Both devices on the same local network (wired is strongly recommended — Wi-Fi via a media bridge is possible but adds latency).
- A static IP address for the PS2, or DHCP with a known/stable lease. A static IP is far simpler and avoids reconnection surprises.
ℹ Recommended on Windows: PS2 Servers
RiptOPL no longer embeds a PC SMB server. Open PS2-Servers.url from the release package or
visit PS2 Servers, choose its SMBv1 server,
select your games folder and follow the protocol-specific IP, port, share and credential values the
launcher displays. It implements the OPL-compatible SMBv1 subset directly and does not require you
to enable Windows' built-in SMB1 feature. Because it serves SMBv1 only, leave
Game Sources → SMB Version on SMBv1 when you use it — set to SMB2 it lists no games
at all. Samba/NAS users staying on SMBv1 may need min protocol = NT1 if their server
defaults have been tightened; that line is not needed when you run OPL on SMB2.
PS2 Servers: download its packaged app, choose SMBv1 server (RiptOPL), select your games folder and click Start. Use the exact connection settings shown by the launcher, and keep SMB Version on SMBv1. The manual share instructions below are for Samba, a NAS, or another already-configured SMB server.
Create a folder to act as the OPL root — e.g. C:\PS2SMB on Windows or /srv/ps2smb on Linux. Give it the standard OPL subfolder layout (OPL will create missing folders automatically on first connect, but it helps to have them ready):
PS2SMB\
CD\ ← PS2 CD-ROM games (blue-bottom discs, <700 MB ISOs)
DVD\ ← PS2 DVD5 / DVD9 ISOs
POPS\ ← PS1 *.VCD files + POPSTARTER.ELF (for PS1 games)
ART\ ← cover art
CFG\ ← per-game config files
VMC\ ← Virtual Memory Card images
THM\ ← themes
CHT\ ← cheat files
APPS\ ← homebrew ELFs
Read access is required for game loading. Write access is also needed to create support folders, save configuration changes or save to VMCs on the share. Copy the endpoint and credentials shown by your server.
Linux / Samba: add a share block to /etc/samba/smb.conf — for example:
[PS2SMB]
path = /srv/ps2smb
browseable = yes
writable = yes
guest ok = yes
min protocol = NT1
Then run sudo systemctl restart smbd. If you use a password, set up a Samba user with sudo smbpasswd -a <username> instead of using guest ok = yes.
The min protocol = NT1 line above is only there to let a modern Samba still answer SMBv1. If you set SMB Version to SMB2 in Game Sources, drop that line and leave Samba at its own defaults.
Copy PS2 ISOs into DVD\ (for DVD games) or CD\ (for CD-ROM games). USBExtreme/USB Advance split-format games (ul.*) work too, but single-file ISOs are simpler over a network. There is no per-file size limit on the SMB path — DVD9 dual-layer ISOs (~8 GB) are fine.
In RiptOPL, go to Settings → Network. The page has two sections: the PS2's own network identity, and the share address.
| Field | Description |
|---|---|
| IP address type | Static or DHCP. Static is recommended — it avoids re-needing to update the settings when your router assigns a different lease. |
| IP Address | The PS2's IP address (e.g. 192.168.0.10). Grayed out when DHCP is selected. |
| Mask | Typically 255.255.255.0 for a home /24 network. |
| Gateway | Your router's IP (e.g. 192.168.0.1). |
| DNS Server | Usually the same as the gateway, or your ISP/public DNS. Not required for SMB itself (which connects by IP), but needed if DHCP negotiation touches DNS. |
| Ethernet Link Mode | Leave on Auto unless your switch forces a specific speed/duplex. Options: Auto, 100Mbps Full-Duplex, 100Mbps Half-Duplex, 10Mbps Full-Duplex, 10Mbps Half-Duplex. |
| Field | Description |
|---|---|
| Address Type |
IP Address or NetBIOS. For most setups use IP address — it connects directly without name resolution. NetBIOS lets you type a Windows machine name (e.g. MYPC) but requires the PS2 to resolve the name first; if the name lookup fails, OPL cannot connect at all. |
| Address | Either the server's IPv4 address (e.g. 192.168.0.5) or its NetBIOS name (up to 15 characters, e.g. MYPC), depending on Address Type. |
| Port | RiptOPL defaults to 1111, but the client and server must match. PS2 Servers currently defaults to 1111; enter the value its launcher displays. Standard Samba/native SMB commonly uses port 445. The Network page opens with Advanced Options on, so the Port field is editable straight away. |
| Share | The share name, e.g. PS2SMB. This is the name you gave the share on the server — not a path. A fresh RiptOPL install defaults to games. |
| User | The username to log on with. A fresh install defaults to guest. For a guest/public share leave this as-is. For a password-protected share enter the correct account name. |
| Password | Leave empty for no-password shares. For password-protected shares OPL first asks the loaded SMB driver to pre-hash the password. The SMBv1 driver does that and sends the hash; the SMB2 driver declines, because its own NTLMSSP exchange wants the password verbatim — so OPL hands it over as-is and the driver still turns it into an NTLM response rather than putting it on the wire in the clear. |
ℹ Subfolder prefix (ETH Prefix)
If your share contains more than one OPL layout — for example you have multiple consoles sharing one NAS share — you can point OPL at a subfolder inside the share. Set ETH Prefix Path on Settings → General & System (config key eth_prefix) to the subfolder name. OPL will prepend that path to every read/write inside the share. Leave it empty to use the share root directly.
After filling in the fields, press OK to save. The dialog also has a Reconnect button: it saves and immediately retries the SMB connection without a full restart. If anything changed on the server (new files, credentials updated), Reconnect refreshes the game list without rebooting.
The Network page stores the how: protocol, address and credentials. Game Sources stores the whether. For SMB, set Network Connectivity on Game Sources to Manual or Auto, then on the Network page set Protocol to SMB and SMB Version to the dialect your server speaks:
| Row | Values | What it does |
|---|---|---|
| Network Connectivity (Game Sources) | Off / Manual / Auto | The network start mode, using the same three options as every other device. Off loads no network transport at all. Manual registers the ETH Games tab and connects when you navigate into it — boot stays fast and you only pay the connection cost on entry. Auto brings the stack up during startup instead. |
| Protocol (Network) | SMB / UDPFS / UDPBD / HTTP | Which transport owns the single Ethernet adapter. SMB is the network-share client documented on this page; UDPFS and UDPBD select Network Boot instead — see Network Boot. |
| SMB Version (Network) | SMBv1 / SMB2 | Which SMB dialect to speak. SMBv1 is the default. Live only while Protocol is SMB, and greyed out otherwise — but the value is kept, so detouring through UDPFS and back does not silently reset you to SMBv1. See SMB Version below. |
| Access (Network) | Files / IMG | Only meaningful for UDPFS. Under SMB it is locked to Files and greyed out; under UDPBD it is locked to IMG. You never need to touch it for an SMB setup. |
ℹ SMB is interlocked with Network Boot
Because Protocol is one exclusive picker, SMB and Network Boot (UDPBD/UDPFS) are mutually exclusive by construction: selecting SMB rules out UDPBD/UDPFS, and selecting either UDP transport rules out SMB. Both require the PS2's single Ethernet adapter; only one can be active at a time. The interlock is enforced both in the UI and at runtime in ethsupport.c, which refuses to bring up the SMB stack while UDPBD holds the adapter.
The SMB Version row picks the dialect for the whole SMB session. It is not a browse-only or an in-game-only setting — selecting SMB2 swaps both halves of the SMB path:
| Half | SMBv1 (default) | SMB2 |
|---|---|---|
| Browsing the share in the menu (the ETH Games tab) | PS2SDK's smbman.irx
|
RiptOPL's smb2man.irx, built on libsmb2 |
| Reading the disc image in-game | The SMB1 reader inside cdvdman
|
The SMB2 reader inside cdvdman
|
Both drivers register the same smb0: device name, so every path elsewhere in OPL — the folder layout, the ETH prefix, the config keys — is identical whichever one is loaded. Only one is ever resident at a time.
⚠ An SMBv1-only server lists no games under SMB2
The whole session is one dialect; there is no negotiation down. If you set SMB Version to SMB2 and your server only speaks SMBv1 — which includes the bundled PS2 Servers SMBv1 server — the ETH Games tab comes up completely empty. That looks like a broken build but it is a configuration mismatch: put the row back on SMBv1, or run a server that speaks SMB2. OPL pops a message box saying as much each time you change the row to SMB2.
⚠ Changing the dialect needs a restart if the network stack is already up
Each network transport loads its IOP module chain once per boot, and the in-game reader latches its dialect when cdvdman starts. If a network stack has already been brought up this session, switching between SMBv1 and SMB2 (or changing Protocol) does nothing until you restart OPL — OPL shows the same restart notice it uses for a protocol change. From a cold boot the new dialect applies straight away.
ℹ SMB3 is deliberately not offered
SMB3 exists as a reserved value in the code but is not selectable: it mandates packet signing, which this tree does not implement. Offering it would be a picker that silently did something else. The row lists exactly two choices, and an unrecognised saved value is clamped back to SMBv1.
ℹ Share browsing behaves differently on SMB2
If you leave the Share field empty, OPL asks the driver to enumerate the server's shares and lists those on the ETH tab so you can pick one instead of games. The SMB2 driver does not implement share enumeration yet and reports zero shares, so under SMB2 that list comes up empty. On SMB2, fill in the Share name exactly as the server publishes it.
OPL uses the same folder structure on an SMB share as on USB or MMCE:
| Folder | Contents |
|---|---|
CD\ |
PS2 CD-ROM games (ISOs under ~700 MB — blue-bottom discs) |
DVD\ |
PS2 DVD5 and DVD9 ISOs (up to ~8.5 GB — FAT32 4 GB limit does not apply over SMB) |
POPS\ |
PS1 *.VCD files + POPSTARTER.ELF (see PS1 over SMB below) |
ART\ |
Cover art images |
CFG\ |
Per-game configuration files |
VMC\ |
Virtual Memory Card images (.bin) |
THM\ |
Themes |
CHT\ |
PS2RD cheat files |
APPS\ |
Homebrew ELFs |
Note that SMB paths use backslashes (\) internally — OPL handles this automatically; your folder names on the server should just be plain ASCII without special characters.
The L3 PS1 view works on SMB just like USB: press L3 on the ETH Games page to toggle between your PS2 disc list and your PS1 *.VCD list. Place your VCDs (and POPSTARTER.ELF) in the POPS\ subfolder of the share.
Launching a PS1 game over SMB has one extra requirement: POPSTARTER needs its own copy of the network configuration and its SMB modules on the memory card — it cannot read them from the share at launch time.
The release package ships a POPSTARTER/ folder containing the four network IRX modules POPSTARTER needs for SMB: smbman.irx, ps2ip.irx, ps2smap.irx, and ps2dev9.irx. Copy them to mc0:/POPSTARTER/ (or mc1:/POPSTARTER/). OPL checks for all four on one card before an SMB VCD launch and warns you rather than hanging if any are missing. OPL does not install them for you.
Open POPSTARTER Network Settings, from Settings → Network or Settings → PS Emulation Settings. It edits POPSTARTER's own mc?:/POPSTARTER/IPCONFIG.DAT and SMBCONFIG.DAT in the format POPSTARTER expects, so you do not need to edit those files by hand.
The screen shows what those files already contain, or says none were found. Import from SMB POPS Directory copies both from the connected share's POPS folder. On OK, only the values you changed are written, to the card the existing files came from, and replacing an existing configuration asks first. On a first setup, with neither file on the card, saving the SMB values writes IPCONFIG.DAT too, as DHCP unless a complete static IP is entered. If writing fails, OPL shows an error message.
⚠ The PS1 leg is SMBv1 regardless of the SMB Version row
The SMB Version setting governs OPL's own browsing and its in-game reader. It does not reach POPSTARTER: the module set OPL checks for on the memory card is the SMBv1 one (smbman.irx), and POPSTARTER reads its own SMBCONFIG.DAT, not OPL's dialect choice. So a PS1 VCD launched over SMB still needs a server that answers SMBv1, even if you have set OPL to SMB2 for PS2 games. If your server is SMB2-only, PS2 games over SMB will work and PS1 VCDs over SMB will not.
For deeper PS1 coverage — cover art by PS1 disc ID, the four PS2/PS1 Game Display modes, and BDMA module equipping for block devices — see PS1 Games (VCD).
Does the BDMA exFAT equip apply to SMB?
No. The BDMA equip copies block-device driver modules for POPSTARTER to use when reading an exFAT drive. SMB is a pure network path — there is no block device involved. The BDMA Mode and BDMA Source settings on PS Emulation Settings have no effect on an SMB VCD launch. The only prerequisite for PS1 over SMB is the four network IRX modules above plus the POPSTARTER network config files.
The PS2's DEV9 expansion bay contains the Ethernet adapter (SMAP). There is only one, and only one network driver stack can own it at a time.
- SMB active: OPL loads its own network stack (NETMAN + SMAP + PS2IP) and connects to the share. UDPBD/UDPFS cannot load.
-
Network Boot active: Neutrino's UDPBD or UDPFS driver owns the adapter. The SMB stack will not load (enforced both in the Game Sources UI and by a runtime guard in
ethsupport.c).
To switch from SMB to Network Boot (or vice versa), go to Game Sources, change the Protocol row, save, and restart OPL. You do not need to change any hardware.
The two approaches serve different use cases: SMB lets any device on the LAN (NAS, always-on PC, server) host your library with no special server software beyond a standard file share; Network Boot via UDPBD/UDPFS requires a dedicated server process running on a PC during play but streams the disc image at block-device level (Neutrino handles the disc emulation, not OPL's loader core). See Network Boot (UDPBD/UDPFS) for details.
| Symptom | Likely cause & fix |
|---|---|
| OPL shows "Network startup error: CONN" or similar | The PS2 cannot reach the server. Check: server IP is correct, server is on and reachable, the server answers the dialect selected in SMB Version, no firewall is blocking the configured port, and the PS2 IP is valid. With PS2 Servers, copy the protocol-specific IP and port shown by its launcher rather than assuming RiptOPL's default 1111. |
| OPL shows "LOGON" error | Wrong username or password. Try GUEST / empty password for a guest share, or confirm the account credentials. Check that the Samba user (if Linux) has been added with smbpasswd. |
| OPL shows "SHARE" error (open share failed) | The share name does not match. Verify the exact share name on the server (case-sensitive on Linux). RiptOPL's default share name is games (stock OPL uses PS2SMB). |
| Game list is empty even after connecting | Check that ISOs are in the correct subfolder (DVD\ or CD\) and that the user has read access to those folders. On Windows, NTFS permissions and share permissions are separate — verify both. |
| ETH Games tab lists nothing at all after switching to SMB2 | Almost always a dialect mismatch: the server only speaks SMBv1. The session does not negotiate down, so nothing is listed. Set Game Sources → SMB Version back to SMBv1 (required for the bundled PS2 Servers SMBv1 server), or point OPL at a server that speaks SMB2. If you just changed the row and nothing moved at all, restart OPL — see below. |
| Changing SMB Version appears to do nothing | The SMB module chain loads once per boot and the in-game reader latches its dialect when the game starts, so the new dialect only applies after a restart if a network stack was already up this session. OPL shows a restart notice in that case; save and restart OPL. |
| Games load slowly or stutter | Wired Ethernet is strongly recommended. If using a media bridge or powerline adapter, test with a direct cable run first. Neither dialect compresses or caches on OPL's side; all disc reads go across the wire in real time. |
| DHCP fails / no IP assigned | OPL waits up to 30 seconds for a valid DHCP lease. If it times out, it logs "Unable to get valid IP address via DHCP." Switch to a static IP if your DHCP server is slow or if the PS2's MAC is not being offered a lease. |
| PS1 VCD launch fails or hangs | Check that the four SMB IRX modules (smbman.irx, ps2ip.irx, ps2smap.irx, ps2dev9.irx) are present in mc?:/POPSTARTER/, and that the network config files (IPCONFIG.DAT, SMBCONFIG.DAT) have been written. Set them up from POPSTARTER Network Settings on Settings → Network. Note that this leg is SMBv1 whatever SMB Version is set to, so the server must still answer SMBv1 for PS1 VCDs. |
| Windows: share works from PC but PS2 cannot connect | Use PS2 Servers instead of enabling Windows' built-in SMB1 feature, and match the IP, port, share and credentials shown by its launcher. Confirm its firewall rule allows the selected SMB port on your private LAN. |
The PS2's network identity and the share address are stored in conf_network.cfg (saved alongside settings_riptopl.cfg). You can edit it directly for values the on-screen number-spinner makes tedious to enter:
| Key | Description |
|---|---|
ps2_ip_use_dhcp |
0 = static, 1 = DHCP |
ps2_ip_addr |
PS2 static IP address |
ps2_netmask |
Subnet mask |
ps2_gateway |
Default gateway |
ps2_dns |
DNS server |
eth_linkmode |
0 = Auto, 1–4 = 100M FDX / 100M HDX / 10M FDX / 10M HDX |
smb_share_use_nbns |
0 = IP address mode, 1 = NetBIOS name mode |
smb_share_nb_addr |
NetBIOS name of the server (used when smb_share_use_nbns=1) |
smb_ip |
Server IP address (used when smb_share_use_nbns=0) |
smb_port |
SMB TCP port (default 1111) |
smb_share |
Share name (default games) |
smb_user |
Login username (default guest) |
smb_pass |
Password (empty for no-password shares) |
Two more keys affect SMB but live in settings_riptopl.cfg rather than conf_network.cfg, because they belong to OPL's own settings rather than to the share address:
| Key | Description |
|---|---|
smb_dialect |
The SMB Version row. 0 = SMBv1 (default), 1 = SMB2. 2 is reserved for SMB3 and is not selectable; any value other than 0 or 1 is clamped back to SMBv1 on load. |
eth_prefix |
The ETH Prefix Path subfolder inside the share — see below. |
What about eth_prefix / ETH Prefix?
The eth_prefix key (set via Settings → General & System → ETH Prefix Path) is stored in settings_riptopl.cfg, not in conf_network.cfg. When non-empty, OPL appends it (plus a backslash) between the share root and every path it constructs — so smb0:PS2\DVD\game.iso instead of smb0:DVD\game.iso. Use this if the share hosts multiple setups and OPL's root is not the share root.
-
📡 Network Boot UDPBD & UDPFS — block-level streaming via Neutrino
-
⚛️ Neutrino Core External loader core — per-game device & args
-
🖧 NBD Server Expose the internal HDD to a PC over the network
Source: smb.html @ fc2e13154e51. Read on the documentation website.
Start here
Storage and networking
- USB, MX4SIO and iLink
- MMCE
- Internal HDD: APA and exFAT
- SMB shares
- Network boot: UDPFS and UDPBD
- HTTP
- NBD server
Games and features
- Neutrino core
- PS1: POPStarter and Ember
- Per-game settings
- Virtual memory cards
- GSM video modes
- In-game reset
- Cheats
- PADEMU
- RetroAchievements
- Apps
Interface and customization
Help and reference
- Troubleshooting
- ZSO format
- Backward-compatible PS3
- Credits and sources
- Features in other forks
- Project overview
Detailed references
- Complete repository guide
- Rolling release reference
- APA hard disk safety and code 402
- Autolaunch and global settings
- Controls reference
- GSM reference
- HTTP reference
- In-game reset reference
- Folders, parental lock and audio
- Language maintenance
- MX4SIO launch reference
- Neutrino reference
- PADEMU reference
- RetroAchievements reference
- Theme engine: full authoring reference
- PS1/VCD reference
- HTTP server conformance tools
- APA recovery tool