Network Boot (UDPBD / UDPFS)
Stream your PS2 game library from a PC over the LAN. Both protocols appear in RiptOPL as a UDPBD Games list โ exactly like a USB drive, with covers, Favourites, and per-game settings โ because to OPL the network device is just another block device. Games always launch through Neutrino; there is no OPL built-in core fallback for network boot.
UDPBD vs UDPFS โ which protocol?
RiptOPL supports two network block-device transports. Both serve the same purpose; pick the one whose PC server you prefer. The Net Boot Protocol picker in Device Settings selects which one the PS2 loads at runtime.
| Protocol | Wire format | PC server | PS2 Neutrino flag | IRX chain |
|---|---|---|---|---|
| UDPBD | SUDPBDv2 | udpbd-server (rickgaiser/udpbd) |
-bsd=udpbd |
Single monolithic smap_udpbd.irx |
| UDPFS | UDPRDMA | udpfs_server.py (inside the bundled Neutrino archive) |
-bsd=udpfsbd |
3-IRX chain: smap โ ministack โ udpfs_bd |
The two protocols are wire-incompatible. UDPBD's udpbd-server will not
talk to a UDPFS client and vice-versa โ you must run the server that matches the protocol
selected on the PS2 side.
Where is udpfs_server.py?
The RiptOPL release package (RIPTOPL-*.zip) includes a bundled Neutrino archive
(neutrino_*.7z) alongside the ELF. Extracting that archive reveals a
udpfs_server/ directory containing udpfs_server.py โ that is the PC
daemon to run when using UDPFS. UDPBD's udpbd-server is a separate project
(rickgaiser/udpbd) not bundled with RiptOPL.
Why does UDPFS need a bsd-udpfsbd.toml?
Neutrino ships udpfs_bd.irx but has no built-in -bsd token for
it โ the stock Neutrino configuration only defines a token for UDPBD. RiptOPL solves this by
auto-injecting config/bsd-udpfsbd.toml into the bundled Neutrino archive at build
time, so no manual setup is needed if you use the release package. If you assembled your own
Neutrino install, copy neutrino/bsd-udpfsbd.toml (from the RiptOPL source tree)
into your mc?:/neutrino/config/ folder.
Requirements
- Static PS2 IP address. The UDPBD and UDPFS IOP modules have no DHCP client โ they read the IP set in Settings → Network Settings and use it directly. If DHCP is currently on in Network Settings, RiptOPL warns you when you save Device Settings with Network Boot newly enabled.
- PC-side server running on the same LAN โ
udpbd-serverfor UDPBD, orudpfs_server.pyfor UDPFS (see above). - SMB / Ethernet must be disabled. Both protocols load a SMAP NIC driver that occupies the single Ethernet adapter; SMB loads its own SMAP driver on the same hardware. They are mutually exclusive and interlocked in the Device Settings UI โ enabling one greys out the other.
- Neutrino ELF on a memory card (or the custom path). Network-boot games always launch
via Neutrino; if
neutrino.elfis not found at launch, RiptOPL warns and returns to the menu. See Neutrino Core for the install paths. - Game files laid out with standard OPL folders on the share:
CD/,DVD/,ART/,CFG/, etc. โ the same structure you would use on a USB drive.
Enabling network boot
Set a static IP on the PS2
Go to Settings → Network Settings and set a fixed IP address, subnet mask, and gateway. Turn DHCP off. Both UDPBD and UDPFS read this address at module-load time; they have no mechanism to acquire a lease later.
Disable SMB / Ethernet
In Settings → Device Settings, confirm the Ethernet (SMB) device mode is set to Disabled. The Network Boot toggle is greyed while SMB is active.
Turn Network Boot on
In Settings → Device Settings, set Network Boot to On. The Net Boot Protocol picker (defaulting to UDPBD) becomes active โ change it to UDPFS if that is the protocol you are using. Save settings.
Start the PC server
On the PC, run the server that matches your chosen protocol. Both should listen on all
interfaces by default; point them at the directory that holds your CD/,
DVD/, ART/, and CFG/ folders.
# UDPBD udpbd-server /path/to/games # UDPFS python3 udpfs_server.py /path/to/games
Boot the PS2 and find your games
RiptOPL loads the IOP module as soon as it starts and mounts the network block device as
massN:. Your games appear in a UDPBD Games tab (regardless of which
protocol is active). Select a game and launch it โ Neutrino is invoked automatically.
Neutrino-only: no OPL core fallback
UDPBD and UDPFS have no embedded cdvdman backend, so they cannot use OPL's
built-in EE core. Every UDPBD 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 for UDPBD/UDPFS games โ it cannot be changed to <OPL>.
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.
-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.
SMB mutual exclusion
The PS2 has a single Ethernet adapter (SMAP). Both the SMB/ETH stack and the UDPBD/UDPFS stack load a SMAP driver โ they cannot coexist. The Device Settings UI enforces this: enabling Network Boot greys out the Ethernet (SMB) mode selector, and enabling SMB greys out the Network Boot toggle. There is no way to use both at the same time.
If you want to switch between SMB and network boot, disable one, save settings, and enable the other.
Config file keys
These values are stored in settings_riptopl.cfg.
| Key | Type | Default | Meaning |
|---|---|---|---|
enable_udpbd | bool (0/1) | 0 | Master switch: enable network boot (UDPBD or UDPFS). |
net_boot_protocol | int (0/1) | 0 | 0 = UDPBD, 1 = UDPFS. Only meaningful when enable_udpbd=1. |
The PS2 IP address used by the IOP modules is read from the standard Network Settings fields (the same ones SMB uses); there are no protocol-specific network keys.
Game folder layout on the server
The PC server exports a directory that the PS2 mounts as a block device and reads as FAT. RiptOPL scans it 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)
Can I use ZSO or UL-format images over network boot?
No. Compressed (.zso) and USB Extreme split (.ul) images require
the OPL built-in core, which is not available for UDPBD/UDPFS games. Only standard ISO images
work over network boot.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| No "UDPBD Games" tab appears | Network Boot is off, SMB is still active, or the IOP module failed to load (no network link at boot). | Check Device Settings: Network Boot = On, Ethernet/SMB = Disabled. Verify the PS2 has a physical Ethernet link before power-on. |
| "UDPBD needs a static PS2 IP" warning on save | DHCP is enabled in Network Settings. | Go to Settings → Network Settings, disable DHCP, and enter a static IP. |
| Tab appears but game list is empty | PC server not running, wrong IP, or wrong protocol selected. | Confirm the server is running. Confirm the PS2 IP in Network Settings matches the server's expected client address. Confirm the Net Boot Protocol matches the server binary. |
| Game launches but immediately crashes or freezes | neutrino.elf not found, or server disconnect mid-launch. |
Verify neutrino.elf exists at mc0:NEUTRINO/neutrino.elf or the
custom Neutrino ELF Path. Keep the PC server running throughout play. |
| UDPFS game fails but UDPBD works | bsd-udpfsbd.toml missing from the Neutrino config folder. |
Use the bundled Neutrino archive from the RiptOPL release package (it contains
config/bsd-udpfsbd.toml pre-injected). If you installed Neutrino manually,
copy neutrino/bsd-udpfsbd.toml from the RiptOPL source into
mc?:/neutrino/config/. |
For further reading see Neutrino Core (per-game settings, launch args) and SMB (network share) (the alternative network game source, which uses the OPL built-in core and does not require Neutrino).