RiptOPL DOCS

Network Boot (SMB / UDP)

Stream your PS2 game library from a PC over the LAN. RiptOPL configures the network with four rows in Device Settings: Network Protocol (the start mode โ€” Off / Manual / Auto), Protocol (SMB / UDPFS / UDPBD), SMB Version (SMBv1 or SMB2) and Access (Files or IMG). Because the PS2 has one Ethernet adapter, exactly one transport is ever active, so the Protocol row is exclusive by construction. UDPFS is the modern network-boot protocol (Rick Gaiser's UDPRDMA transport); UDPBD is the older SUDPBDv2 protocol, kept for users still running the udpbd-server. Both appear in RiptOPL as their own games list โ€” with covers, Favourites, and per-game settings, just like a local drive โ€” and always launch through Neutrino (there is no OPL built-in core fallback for them). SMB is the exception: it is a mounted file share served by OPL's own core, and needs no Neutrino.

โ„น Four rows, Off by default
The old Network Boot ON/OFF toggle and the separate Net Boot Protocol picker are retired placeholders. The network is now four rows: row 1 Network Protocol is an Off / Manual / Auto start mode and defaults to Off (no network device); row 2 Protocol chooses SMB / UDPFS / UDPBD and greys while row 1 is Off; rows 3 and 4 (SMB Version and Access) qualify the chosen protocol. UDPFS needs a static PS2 IP and a matching PC-side server. Pick a protocol only when you have those pieces in place. Local devices (USB / internal HDD / MMCE) are independent and browse alongside whichever network protocol you choose.

The Network rows

Settings → Device Settings carries four network rows. Row 1 Network Protocol is the start mode (Off / Manual / Auto); while it is Off, the other three grey out. Row 2 Protocol picks the transport โ€” because the PS2 has a single NIC, choosing one automatically excludes the others. Row 3 SMB Version is live only while Protocol = SMB, and keeps its value (rather than snapping back) while greyed. Row 4 Access is free to change only under UDPFS: it is value-locked to Files under SMB and to IMG under UDPBD, and greyed in both cases. In the table below, Off is row 1's value; the other three are row 2's.

ChoiceWire protocolOn the PS2PC serverCore
Off โ€” no network device (default) โ€” โ€”
SMB SMBv1 or SMB2 (Device Settings → SMB Version; default SMBv1) a mounted file share PS2 Servers (recommended) / Samba OPL's own core (not Neutrino)
UDPFS UDPRDMA a games source served over UDP โ€” a filesystem (udpfs:, loose ISOs) or a block device (massN:, disk image), set by Access below PS2 Servers (recommended) / udpfsd Neutrino only
UDPBD SUDPBDv2 a served disk image mounted as massN: PS2 Servers (recommended) / udpbd-server Neutrino only

UDPFS is the one modern network-boot protocol (Rick Gaiser's UDPRDMA transport). It comes in two shapes, chosen with the Access row (see the comparison below): Files (the udpfs_ioman filesystem, loose ISOs) or IMG (the udpfs_bd block device, a served disk image). It has no DHCP client and needs a static PS2 IP; if neutrino.elf is missing at launch, OPL warns and returns to the menu.

โ„น UDPBD vs UDPFS โ€” pick by your PC server
UDPBD (the older SUDPBDv2 udpbd.irx protocol) is a first-class fourth choice, not retired โ€” it is kept because SUDPBDv2 is wire-incompatible with UDPRDMA (UDPBD speaks port 0xBDBD via udpbd-server; UDPFS speaks 0xF5F6 via udpfsd), so users still running the old udpbd-server must be able to keep selecting it. A config saved as UDPBD stays UDPBD โ€” RiptOPL never silently migrates you off it. If you are setting up fresh, prefer UDPFS (it also serves loose ISOs and transparent .zso/.cso/.chd โ€” see below).
โš  Emulator-validated only
The UDPRDMA path (both Files and IMG modes) is validated on emulator so far โ€” real-PS2 confirmation is pending.

SMB Version โ€” SMBv1 or SMB2

When Protocol = SMB, the SMB Version row selects the wire dialect: SMBv1 (the default) or SMB2. It applies to both halves of SMB โ€” browsing the share from the menu and reading the game in-game. The row is greyed unless Protocol is SMB, and its value is preserved while greyed, so flipping away to UDPFS and back does not silently reset you to SMBv1.

SMB3 is not offered. It is reserved internally but deliberately absent from the picker, because it mandates packet signing that this tree does not implement.

โš  Your server must speak the dialect you pick
An SMBv1-only server lists nothing under SMB2 โ€” including the bundled pc/smbserver/smbserver_opl.py, which is SMBv1 only. If your share stops listing after you switch to SMB2, switch back to SMBv1 or point RiptOPL at a server that speaks SMB2.

Access โ€” Files vs IMG

The Access row is always present in Device Settings, but it is only free to change while Protocol = UDPFS โ€” under SMB it is value-locked to Files and under UDPBD to IMG, greyed in both cases. Its two values are Files (default) and IMG. They are the same UDPFS protocol in two shapes: Files is the udpfs_ioman filesystem (udpfs:), IMG is the udpfs_bd block device (massN:).

Files (default)IMG
IOP driverudpfs_ioman.irxudpfs: (filesystem)udpfs_bd.irxmassN: (block device)
PC servesa folder containing CD/ and DVD/ subfolders of ISOs (the standard OPL layout โ€” OPL lists from <served>/CD + <served>/DVD, not the folder root)a FAT/exFAT disk image
Server commandudpfsd -fsroot <dir>udpfsd -bdpath <image>
Launchby name (-dvd=udpfs:<name>, stock -bsd=udpfs) โ€” no massN:, no fragment listmounted like a USB drive (massN:, fragment-list launch)
Add a gamedrop it into the served CD/ or DVD/ foldermount the image, copy, unmount
Compressiontransparent .zso/.cso/.chdโ€” (raw sectors only)

Both ride the same UDPRDMA transport and the same server โ€” pcm720/udpfsd, a single prebuilt Go binary (no Python) that serves both; just pass -fsroot <dir> for Files (the filesystem) or -bdpath <image> for IMG (the block image). A UDPBD-only udpbd-server (SUDPBDv2) will not talk to either. Because both backends bind the same UDPRDMA port and the IOP can load only one per boot, you can't run both at once โ€” Files vs IMG is a config-time choice, and switching between them needs an OPL restart to take effect (OPL shows the usual restart-to-apply notice).

So why offer both Files and IMG?

They're the same protocol but a genuinely different workflow. Files is the lower-friction, "modern" model (loose ISOs, drop-in, transparent .zso/.cso/.chd compression) and matches how NHDDL and pcm720's server are designed. IMG reuses OPL's existing massN: block pipeline (a disk image the PS2 mounts with its own FAT/exFAT drivers) โ€” handy if you already keep a block image or want the exact same shape as USB/HDD. Pick whichever fits how you store your games. (If you already run the old udpbd-server, that's a separate UDPBD choice โ€” see above โ€” not a UDPFS mode.) Hardware note: the UDPRDMA path (both modes) is validated on emulator only so far โ€” real-PS2 confirmation is pending.

Which PC-side UDPFS server do I run?

The RiptOPL release ships Neutrino as a drag-and-drop neutrino/ folder, but it does not embed PC server software. Open PS2-Servers.url from the package or visit PS2 Servers for the maintained UDPFS / SMBv1 / UDPBD all-in-one launcher, then choose UDPFS and follow its protocol-specific settings. Advanced users can instead run pcm720/udpfsd directly: pass -fsroot <dir> for Files or -bdpath <image> for IMG. The standalone udpbd-server speaks SUDPBDv2 and does not work with UDPFS; use it only with the separate Protocol = UDPBD choice.

Why does UDPFS IMG need a private bsd-udpfsbd.toml when a stock bsd-udpfs.toml exists?

The -bsd token is just a config filename: at game boot Neutrino loads config/bsd-<token>.toml, and the toml's body picks the IOP driver. Stock Neutrino already ships a bsd-udpfs.toml whose body is the FHI filesystem driver (udpfs_ioman / udpfs_fhi, no i_bdm, registers no massN: block device). The Files mode uses that stock token as-is โ€” -bsd=udpfs, opening the game -dvd=udpfs:<name> by name.

The IMG mode needs the block-device body instead (udpfs_bd.irx, i_bdmmassN:) because that launch hands Neutrino -dvd=massN:. Neutrino ships udpfs_bd.irx but no built-in -bsd token for it, so RiptOPL auto-injects config/bsd-udpfsbd.toml into the bundled Neutrino folder at build time and emits -bsd=udpfsbd. The private name is deliberate โ€” bsd-udpfsbd.toml will not collide with stock's bsd-udpfs.toml (a different driver), so the block config and the stock filesystem config coexist on one Neutrino install. If you assembled Neutrino yourself, copy neutrino/bsd-udpfsbd.toml from the RiptOPL source tree into your neutrino/config/ folder.

Requirements

Selecting a network protocol

Set a static IP on the PS2 (UDPFS only)

For UDPFS (either access mode), go to Settings → Network Config and set a fixed IP address, subnet mask, and gateway; turn DHCP off. The UDPFS IOP modules read this address at module-load time and have no way to acquire a lease later. (SMB can stay on DHCP if you prefer.)

Pick your Network Protocol (and Access)

In Settings → Device Settings, set Network Protocol (row 1) to Manual or Auto, then set Protocol (row 2) to SMB, UDPFS, or UDPBD; set row 1 back to Off to disable networking. When Protocol = SMB, pick the SMB Version โ€” SMBv1 (default) or SMB2. The Access row (Files / IMG) is always present, but it is only free to change under UDPFS: under SMB it is locked to Files and under UDPBD to IMG, greyed in both cases. Because the PS2 has a single NIC, choosing one excludes the others automatically. Save settings. When UDPFS is selected, SMB's server / port / share / credentials fields on the Network Config page are hidden automatically. Switching between Files and IMG needs an OPL restart to take effect (only one UDPFS backend can bind the transport per boot).

Start the PC server

Open PS2-Servers.url from the RiptOPL package or visit PS2 Servers. In its all-in-one launcher, choose the server that matches RiptOPL's Protocol row: SMBv1 server (RiptOPL), UDPFS, or UDPBD. Select the games folder or disk image, click Start, and follow the protocol-specific settings the launcher displays.

Advanced: run pcm720/udpfsd directly

For UDPFS only, advanced users can run pcm720/udpfsd in the mode that matches the chosen access mode. Files serves a directory containing CD/ and DVD/ subfolders; IMG serves a FAT/exFAT disk image.

# UDPFS Files โ€” a folder with CD/ and DVD/ subfolders of ISOs
udpfsd -fsroot /path/to/games            # Files   (Linux/macOS)
udpfsd.exe -fsroot C:\path\to\games      # Files   (Windows)

# UDPFS IMG โ€” a served FAT/exFAT disk image
udpfsd -bdpath /path/to/games.img        # IMG   (Linux/macOS)
udpfsd.exe -bdpath C:\path\to\games.img  # IMG   (Windows)

Boot the PS2 and find your games

RiptOPL loads the IOP module as soon as it starts. UDPFS Files mounts the udpfs: filesystem; UDPFS IMG mounts the served image as massN:. Your games appear in the UDPFS games list. Select a game and launch it โ€” Neutrino is invoked automatically; SMB boots through OPL's own core.

Neutrino-only: no OPL core fallback (UDPFS)

UDPFS (both Files and IMG) has no embedded cdvdman backend, so it cannot use OPL's built-in EE core. Every UDPFS game launches via Neutrino, regardless of the per-game Loader Core setting. In the per-game Compatibility screen, the Loader Core selector is locked to Neutrino on the block-device tabs (UDPFS IMG and UDPBD) โ€” it cannot be changed to <OPL>; on the UDPFS Files tab the row stays editable, but the launch forces Neutrino anyway. If neutrino.elf is missing when a game is launched, OPL shows a warning and returns to the menu; it does not attempt an OPL-core fallback.

SMB is different: it is served by OPL's own core, needs no Neutrino, and behaves like the classic OPL network share. See SMB (network share).

โ„น Per-game settings still work
UDPFS games support the full per-game settings screen in its Neutrino-aware mode: compat modes 1/2/3/5 (mapped to -gc), mode 7 (fix IOP buffer overrun, -gc=7), the Neutrino Video picker (-gsm), VMC, and free-text Neutrino Launch Args. OPL-core-only panels (GSM, Cheats, PADEMU, OSD Language) show a "not used with the Neutrino core" notice. See Per-game Settings and Neutrino Core for details.

One NIC, one transport โ€” how the four rows interlock

The PS2 has a single Ethernet adapter (SMAP), and every network transport โ€” SMB, UDPFS and UDPBD โ€” loads a SMAP driver on it. Only one can own the adapter at a time, so RiptOPL exposes them as mutually exclusive values of one Protocol row rather than independent toggles. That replaces the old model, where a separate Network Boot toggle and an Ethernet (SMB) mode had to be greyed against each other. The four rows still interlock live, but only downward: Network Protocol (row 1) gates the rest โ€” while it is Off, Protocol, SMB Version and Access are all greyed โ€” and the chosen protocol then qualifies its own sub-rows (SMB Version is live only under SMB; Access is free only under UDPFS, and is value-locked to Files under SMB and to IMG under UDPBD). Switching between SMB, UDPFS and UDPBD is just changing the Protocol value and saving. (The same one-transport-per-boot rule is why Access = Files vs IMG is a config-time choice, applied on the next restart.)

Local devices โ€” USB, MX4SIO, iLink, internal HDD (APA / exFAT), and MMCE โ€” are entirely independent of these rows and browse alongside whichever network protocol you pick (or none).

Config file keys

These values are stored in settings_riptopl.cfg.

KeyTypeDefaultMeaning
network_protocolint (0โ€“4)0Authoritative selector. User-facing: 0=Off, 1=SMB, 2=UDPFS (Access = Files). 3=UDPFSBD is the internal value for Access = IMG โ€” the picker maps both 2 and 3 onto the single "UDPFS" menu entry, and the Access row picks between them. 4=UDPBD is a first-class value for the retained UDPBD (SUDPBDv2) choice: it is preserved as-is on load, never migrated, so users still on the old udpbd-server keep it.
net_start_modeint (0โ€“2)0Row 1 Network Protocol: 0=Off, 1=Manual, 2=Auto. Reconciled with network_protocol on load โ€” a protocol of Off forces this to Off, and a live protocol with an Off (or out-of-range) start mode is floored to Manual.
smb_dialectint (0/1)0Row 3 SMB Version: 0=SMBv1 (default), 1=SMB2. Only meaningful while the protocol is SMB; the value is kept (not reset) when the row is greyed. SMB3 is reserved internally and is not a selectable value.
enable_udpbdbool (0/1)0Legacy back-compat shadow (superseded by network_protocol). Still dual-written: 1 whenever the protocol resolves to UDPFSBD (IMG) or UDPBD โ€” both block-device transports set it.
net_boot_protocolint (0/1)0Legacy back-compat shadow (superseded). Derived from the selector; only meaningful when the legacy enable_udpbd=1. Selecting UDPBD sets enable_udpbd=1 with the classic UDPBD encoding, so a fresh UDPBD config still produces the legacy UDPBD shadow values.
eth_modeintโ€”Legacy back-compat shadow of the old ETH/SMB start mode; the unified selector supersedes it. Still written for older readers.

There is no separate config key for the Access (Files / IMG) row โ€” it is folded into network_protocol itself (2 = Files, 3 = IMG). RiptOPL writes the legacy enable_udpbd / net_boot_protocol / eth_mode keys alongside the new one (a dual-write) purely so older builds can still read the config; network_protocol is the source of truth. The PS2 IP address used by the UDPFS IOP modules is read from the standard Network Config fields (the same ones SMB uses); there are no protocol-specific network keys.

Game folder layout on the server

For the IMG mode (Access = IMG) and SMB, the PC server exports a FAT/exFAT volume the PS2 reads with the same folder conventions as a USB drive:

mass0:/  (device root โ€” folders sit here directly by default)
  CD/          โ† PS2 CD-ROM images (.iso)
  DVD/         โ† PS2 DVD images (.iso)
  ART/         โ† cover art (same naming as USB)
  CFG/         โ† per-game config files
  VMC/         โ† virtual memory cards (optional)
  POPS/        โ† PS1 POPS firmware (for VCD, if used)
  POPSTARTER/  โ† POPSTARTER.ELF (for VCD, if used)
  APPS/        โ† homebrew ELF files (optional)

The UDPFS Files mode uses the same CD/ + DVD/ layout, just without a disk image: point udpfsd -fsroot at a folder that contains CD/ and DVD/ subfolders of ISOs (OPL lists from <served>/CD + <served>/DVD, not the served root). Drop an ISO into CD/ or DVD/ and it appears in the UDPFS games list โ€” no massN:, no fragment list, and transparent .zso/.cso/.chd compression.

Can I use ZSO or UL-format images over UDPFS?

It depends on the access mode. Files (the filesystem) supports transparent .zso/.cso/.chd compression โ€” Neutrino opens the file by name and the server decompresses on the fly. The IMG mode serves raw sectors only, and USB Extreme split (.ul) images require the OPL built-in core, which UDPFS does not use โ€” so in IMG mode, only standard ISO images work.

Troubleshooting

SymptomLikely causeFix
No network games list appears Network Protocol is Off, or the IOP module failed to load (no network link at boot). Check Device Settings → Network Protocol is Manual or Auto (not Off), and that Protocol is set to your chosen transport. Verify the PS2 has a physical Ethernet link before power-on.
"needs a static PS2 IP" warning when selecting UDPFS DHCP is enabled in Network Config. Go to Settings → Network Config, disable DHCP, and enter a static IP.
List appears but game list is empty PC server not running, wrong IP, or the server is in a different mode than the Access you selected. Confirm the server is running. Confirm the PS2 IP in Network Config matches the server's expected client address. Confirm the Access mode matches the server flag (-fsroot for Files, -bdpath for IMG).
Game launches but immediately crashes or freezes neutrino.elf not found, wrong ip= in the Neutrino toml, or server disconnect mid-launch. Verify neutrino.elf exists (bundled neutrino/ folder or the custom Neutrino ELF Path). Check the ip= line in the active mode's toml (neutrino/config/bsd-udpfs.toml for Files, bsd-udpfsbd.toml for IMG) matches your PS2's static IP. Keep the PC server running throughout play.
UDPFS IMG game fails but Files works (or vice-versa) For IMG: bsd-udpfsbd.toml missing from the Neutrino config folder, or the server is in the wrong mode for the Access you selected. (Switching Files ↔ IMG also needs an OPL restart.) Use the bundled Neutrino folder from the RiptOPL release (it contains config/bsd-udpfsbd.toml pre-injected). If you installed Neutrino manually, copy neutrino/bsd-udpfsbd.toml from the RiptOPL source into neutrino/config/. Make sure the server runs with -bdpath for IMG (block) or -fsroot for Files (filesystem), and that you restarted OPL after switching Access.
Existing UDPBD setup stopped working after updating The Protocol row is set to something other than UDPBD (UDPBD is wire-incompatible with UDPFS, so a UDPFS pick won't talk to udpbd-server). Set Device Settings → Protocol back to UDPBD (with Network Protocol on Manual or Auto) and keep running the same udpbd-server on the PC โ€” a config saved as UDPBD is preserved as-is, never migrated. (Alternatively, switch to UDPFS and run udpfsd instead โ€” but that is a different protocol and server.)

For further reading see Neutrino Core (per-game settings, launch args) and SMB (network share) (the SMB protocol in depth, which uses the OPL built-in core and does not require Neutrino).