Releases: NathanNeurotic/PS2-Servers
Release list
PS2 Servers main-216-7662804
Automatic development build from main, published as a
pre-release. For stable downloads use the
latest tagged release.
Commit: 7662804
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. This avoids one source of heuristic
detections, but the portable app remains unsigned and can also be
flagged. The single-file PS2Servers-windows-x64.zip is published
for convenience; verify the exact file with its checksum/attestation.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. macOS ships as a .app inside the zip.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. Choose it for headless use; Desktop is the
graphical launcher.
PS2 Servers Edge — routers, NAS, Raspberry Pi
The PS2ServersEdge-* files are the native headless edition, with an optional
web dashboard and no Python runtime, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
An incompatible build usually refuses to start; verify the OS and architecture
before installing it.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default; saves require a client that supports that write path.
Pass --read-only to prevent writes. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. The UCI configuration exposes the serving options, including block_device;
CLI-only flags such as --quiet are not UCI options. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
On OpenWrt the dashboard's Save and Restart need root — uci commit rewrites
a file in /etc/config and restarting goes through /etc/init.d — so they are
off by default and report a permission error. Status, configuration and file
browsing all work regardless. Set option run_as_root '1' to enable them, which
runs the dashboard as root; that is a real trade, which is why it is a choice.
Edge gameplay and writes have not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1 — guest file sharing. Desktop defaults to TCP
1025; Core/standalone
and Edge default to TCP port1111. Match the running server’s printed port. - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573). - HTTP game serving — experimental, read-only, normally TCP
1100;
distinct from Edge’s management dashboard. Set the client port explicitly.
For UDPFS, Auto negotiates Standard/Modulo per peer. If games list but fail to
launch on a multi-interface PC, use the UDPFS card’s Bind address (PC) /
Use LAN IP, then stop/start UDPFS. The top LAN IP selector alone supplies
setup hints. See UDPFS setup.
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
Direct-link setup also requires elevation to configure/restore its dedicated
interface and DHCP helper. Disable it before removing the app. The launcher
stores per-user settings (including configured credentials); manually installed
services and containers require separate cleanup.
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains packaging-related detections and how to verify the exact file.
Portable builds remain unsigned and may also be flagged.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
PS2 Servers main-215-0a574d8
Automatic development build from main, published as a
pre-release. For stable downloads use the
latest tagged release.
Commit: 0a574d8
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. This avoids one source of heuristic
detections, but the portable app remains unsigned and can also be
flagged. The single-file PS2Servers-windows-x64.zip is published
for convenience; verify the exact file with its checksum/attestation.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. macOS ships as a .app inside the zip.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. Choose it for headless use; Desktop is the
graphical launcher.
PS2 Servers Edge — routers, NAS, Raspberry Pi
The PS2ServersEdge-* files are the native headless edition, with an optional
web dashboard and no Python runtime, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
An incompatible build usually refuses to start; verify the OS and architecture
before installing it.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default; saves require a client that supports that write path.
Pass --read-only to prevent writes. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. The UCI configuration exposes the serving options, including block_device;
CLI-only flags such as --quiet are not UCI options. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
On OpenWrt the dashboard's Save and Restart need root — uci commit rewrites
a file in /etc/config and restarting goes through /etc/init.d — so they are
off by default and report a permission error. Status, configuration and file
browsing all work regardless. Set option run_as_root '1' to enable them, which
runs the dashboard as root; that is a real trade, which is why it is a choice.
Edge gameplay and writes have not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1 — guest file sharing. Desktop defaults to TCP
1025; Core/standalone
and Edge default to TCP port1111. Match the running server’s printed port. - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573). - HTTP game serving — experimental, read-only, normally TCP
1100;
distinct from Edge’s management dashboard. Set the client port explicitly.
For UDPFS, Auto negotiates Standard/Modulo per peer. If games list but fail to
launch on a multi-interface PC, use the UDPFS card’s Bind address (PC) /
Use LAN IP, then stop/start UDPFS. The top LAN IP selector alone supplies
setup hints. See UDPFS setup.
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
Direct-link setup also requires elevation to configure/restore its dedicated
interface and DHCP helper. Disable it before removing the app. The launcher
stores per-user settings (including configured credentials); manually installed
services and containers require separate cleanup.
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains packaging-related detections and how to verify the exact file.
Portable builds remain unsigned and may also be flagged.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
PS2 Servers v0.7.5
Built from the tagged v0.7.5 source, so this release matches main at that tag.
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. This avoids one source of heuristic
detections, but the portable app remains unsigned and can also be
flagged. The single-file PS2Servers-windows-x64.zip is published
for convenience; verify the exact file with its checksum/attestation.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. On Linux you can also take PS2Servers-x86_64.AppImage for desktop and menu shortcuts (via AppImageLauncher).
macOS ships as a .app inside the zip — unzip and right-click → Open,
since it is unsigned.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. Choose it for headless use; Desktop is the
graphical launcher.
Each download has a matching .sha256.txt next to it.
Portable and AppImage builds are best-effort: their build steps are
allowed to fail without blocking the primary downloads. The table
above is generated from the files actually attached, so anything it
lists is present.
Compression note: ZSO/LZ4 support is bundled. CHD support is backed by
a libchdr native library built from source during release packaging.
PS2 Servers Edge — routers, NAS, Raspberry Pi
The PS2ServersEdge-* files are the native headless edition, with an optional
web dashboard and no Python runtime, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
An incompatible build usually refuses to start; verify the OS and architecture
before installing it.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default; saves require a client that supports that write path.
Pass --read-only to prevent writes. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. The UCI configuration exposes the serving options, including block_device;
CLI-only flags such as --quiet are not UCI options. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
On OpenWrt the dashboard's Save and Restart need root — uci commit rewrites
a file in /etc/config and restarting goes through /etc/init.d — so they are
off by default and report a permission error. Status, configuration and file
browsing all work regardless. Set option run_as_root '1' to enable them, which
runs the dashboard as root; that is a real trade, which is why it is a choice.
Edge gameplay and writes have not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1 — guest file sharing. Desktop defaults to TCP
1025; Core/standalone
and Edge default to TCP port1111. Match the running server’s printed port. - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573). - HTTP game serving — experimental, read-only, normally TCP
1100;
distinct from Edge’s management dashboard. Set the client port explicitly.
For UDPFS, Auto negotiates Standard/Modulo per peer. If games list but fail to
launch on a multi-interface PC, use the UDPFS card’s Bind address (PC) /
Use LAN IP, then stop/start UDPFS. The top LAN IP selector alone supplies
setup hints. See UDPFS setup.
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
Direct-link setup also requires elevation to configure/restore its dedicated
interface and DHCP helper. Disable it before removing the app. The launcher
stores per-user settings (including configured credentials); manually installed
services and containers require separate cleanup.
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains packaging-related detections and how to verify the exact file.
Portable builds remain unsigned and may also be flagged.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
CI checks host behavior and cross-implementation conformance.
Those checks do not establish PS2 gameplay. HTTP remains experimental;
Edge gameplay and write paths require separate console validation.
Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).
PS2 Servers v0.7.2
Built from the tagged v0.7.2 source, so this release matches main at that tag.
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. The wrapper is what makes some
antivirus flag the single-file build, so the portable one usually
comes up clean — that is why it is the recommendation rather than the
single-file PS2Servers-windows-x64.zip, which is published for
convenience.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. On Linux you can also take PS2Servers-x86_64.AppImage for desktop and menu shortcuts (via AppImageLauncher).
macOS ships as a .app inside the zip — unzip and right-click → Open,
since it is unsigned.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. You do not need it on a normal computer.
Each download has a matching .sha256.txt next to it.
Portable and AppImage builds are best-effort: their build steps are
allowed to fail without blocking the primary downloads. The table
above is generated from the files actually attached, so anything it
lists is present.
Compression note: ZSO/LZ4 support is bundled. CHD support is backed by
a libchdr native library built from source during release packaging.
PS2 Servers Edge — routers, NAS, Raspberry Pi
If you are on a normal computer, ignore these. The PS2ServersEdge-* files
are a different program: a small headless server with no GUI and no Python, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
Picking the wrong one is harmless — it simply will not start.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default, so saves work; pass --read-only to prevent that. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. Every Edge option is a
UCI option there, including block_device. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
On OpenWrt the dashboard's Save and Restart need root — uci commit rewrites
a file in /etc/config and restarting goes through /etc/init.d — so they are
off by default and report a permission error. Status, configuration and file
browsing all work regardless. Set option run_as_root '1' to enable them, which
runs the dashboard as root; that is a real trade, which is why it is a choice.
Edge has not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1 — built-in SMB/CIFS subset, normally TCP port
1111
(below 1033 discouraged). - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573).
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains why the single-file build trips heuristics, and why the portable
build usually does not.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
Servers pass their protocol self-tests and cross-implementation
conformance probes. Validation on real PS2 hardware or PCSX2 is
still pending.
Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).
PS2 Servers v0.7.1
Built from the tagged v0.7.1 source, so this release matches main at that tag.
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. The wrapper is what makes some
antivirus flag the single-file build, so the portable one usually
comes up clean — that is why it is the recommendation rather than the
single-file PS2Servers-windows-x64.zip, which is published for
convenience.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. On Linux you can also take PS2Servers-x86_64.AppImage for desktop and menu shortcuts (via AppImageLauncher).
macOS ships as a .app inside the zip — unzip and right-click → Open,
since it is unsigned.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. You do not need it on a normal computer.
Each download has a matching .sha256.txt next to it.
Portable and AppImage builds are best-effort: their build steps are
allowed to fail without blocking the primary downloads. The table
above is generated from the files actually attached, so anything it
lists is present.
Compression note: ZSO/LZ4 support is bundled. CHD support is backed by
a libchdr native library built from source during release packaging.
PS2 Servers Edge — routers, NAS, Raspberry Pi
If you are on a normal computer, ignore these. The PS2ServersEdge-* files
are a different program: a small headless server with no GUI and no Python, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
Picking the wrong one is harmless — it simply will not start.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default, so saves work; pass --read-only to prevent that. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. Every Edge option is a
UCI option there, including block_device. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
On OpenWrt the dashboard's Save and Restart need root — uci commit rewrites
a file in /etc/config and restarting goes through /etc/init.d — so they are
off by default and report a permission error. Status, configuration and file
browsing all work regardless. Set option run_as_root '1' to enable them, which
runs the dashboard as root; that is a real trade, which is why it is a choice.
Edge has not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1 — built-in SMB/CIFS subset, normally TCP port
1111
(below 1033 discouraged). - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573).
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains why the single-file build trips heuristics, and why the portable
build usually does not.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
Servers pass their protocol self-tests and cross-implementation
conformance probes. Validation on real PS2 hardware or PCSX2 is
still pending.
Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).
PS2 Servers v0.7.0
Built from the tagged v0.7.0 source, so this release matches main at that tag.
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. The wrapper is what makes some
antivirus flag the single-file build, so the portable one usually
comes up clean — that is why it is the recommendation rather than the
single-file PS2Servers-windows-x64.zip, which is published for
convenience.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. On Linux you can also take PS2Servers-x86_64.AppImage for desktop and menu shortcuts (via AppImageLauncher).
macOS ships as a .app inside the zip — unzip and right-click → Open,
since it is unsigned.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. You do not need it on a normal computer.
Each download has a matching .sha256.txt next to it.
Portable and AppImage builds are best-effort: their build steps are
allowed to fail without blocking the primary downloads. The table
above is generated from the files actually attached, so anything it
lists is present.
Compression note: ZSO/LZ4 support is bundled. CHD support is backed by
a libchdr native library built from source during release packaging.
PS2 Servers Edge — routers, NAS, Raspberry Pi
If you are on a normal computer, ignore these. The PS2ServersEdge-* files
are a different program: a small headless server with no GUI and no Python, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
Picking the wrong one is harmless — it simply will not start.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default, so saves work; pass --read-only to prevent that. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. Every Edge option is a
UCI option there, including block_device. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
On OpenWrt the dashboard's Save and Restart need root — uci commit rewrites
a file in /etc/config and restarting goes through /etc/init.d — so they are
off by default and report a permission error. Status, configuration and file
browsing all work regardless. Set option run_as_root '1' to enable them, which
runs the dashboard as root; that is a real trade, which is why it is a choice.
Edge has not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1 — built-in SMB/CIFS subset, normally TCP port
1111
(below 1033 discouraged). - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573).
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains why the single-file build trips heuristics, and why the portable
build usually does not.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
Servers pass their protocol self-tests and cross-implementation
conformance probes. Validation on real PS2 hardware or PCSX2 is
still pending.
Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).
PS2 Servers v0.5.3
Built from the tagged v0.5.3 source, so this release matches main at that tag.
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. The wrapper is what makes some
antivirus flag the single-file build, so the portable one usually
comes up clean — that is why it is the recommendation rather than the
single-file PS2Servers-windows-x64.zip, which is published for
convenience.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. On Linux you can also take PS2Servers-x86_64.AppImage for desktop and menu shortcuts (via AppImageLauncher).
macOS ships as a .app inside the zip — unzip and right-click → Open,
since it is unsigned.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. You do not need it on a normal computer.
Each download has a matching .sha256.txt next to it.
Portable and AppImage builds are best-effort: their build steps are
allowed to fail without blocking the primary downloads. The table
above is generated from the files actually attached, so anything it
lists is present.
Compression note: ZSO/LZ4 support is bundled. CHD support is backed by
a libchdr native library built from source during release packaging.
PS2 Servers Edge — routers, NAS, Raspberry Pi
If you are on a normal computer, ignore these. The PS2ServersEdge-* files
are a different program: a small headless server with no GUI and no Python, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
Picking the wrong one is harmless — it simply will not start.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default, so saves work; pass --read-only to prevent that. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. Every Edge option is a
UCI option there, including block_device. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
On OpenWrt the dashboard's Save and Restart need root — uci commit rewrites
a file in /etc/config and restarting goes through /etc/init.d — so they are
off by default and report a permission error. Status, configuration and file
browsing all work regardless. Set option run_as_root '1' to enable them, which
runs the dashboard as root; that is a real trade, which is why it is a choice.
Edge has not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1/RiptOPL — built-in SMB/CIFS subset, normally TCP port
1111
(below 1033 discouraged). - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573).
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains why the single-file build trips heuristics, and why the portable
build usually does not.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
Servers pass their protocol self-tests and cross-implementation
conformance probes. Validation on real PS2 hardware or PCSX2 is
still pending.
Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).
PS2 Servers v0.5.0
Built from the tagged v0.5.0 source, so this release matches main at that tag.
Downloads
There are a lot of files below. You need exactly one. Find your
computer in this table and ignore everything else:
| Your computer | Download this |
|---|---|
| Windows, normal (64-bit) | PS2Servers-windows-x64-portable.zip |
| Windows, older 32-bit PC | PS2Servers-windows-x86-portable.zip |
| Linux | PS2Servers-linux-x64 |
| Mac, Apple Silicon (M1–M4) | PS2Servers-macos-arm64.zip |
| Mac, Intel | PS2Servers-macos-x64.zip |
On Windows: unzip it, open the folder, run PS2Servers.exe. That's it.
Why "portable", and what are the other files?
The portable build is the same app laid out as a plain folder,
with no self-extracting wrapper. The wrapper is what makes some
antivirus flag the single-file build, so the portable one usually
comes up clean — that is why it is the recommendation rather than the
single-file PS2Servers-windows-x64.zip, which is published for
convenience.
On Linux, PS2Servers-linux-x64 is a single executable; take
PS2Servers-linux-x64-portable.tar.gz instead if /tmp is mounted
noexec. On Linux you can also take PS2Servers-x86_64.AppImage for desktop and menu shortcuts (via AppImageLauncher).
macOS ships as a .app inside the zip — unzip and right-click → Open,
since it is unsigned.
PS2Servers-source.zip is the source, for running from Python
directly or for inspection.
Everything beginning PS2ServersEdge- is a different program —
see the section below. You do not need it on a normal computer.
Each download has a matching .sha256.txt next to it.
Portable and AppImage builds are best-effort: their build steps are
allowed to fail without blocking the primary downloads. The table
above is generated from the files actually attached, so anything it
lists is present.
Compression note: ZSO/LZ4 support is bundled. CHD support is backed by
a libchdr native library built from source during release packaging.
PS2 Servers Edge — routers, NAS, Raspberry Pi
If you are on a normal computer, ignore these. The PS2ServersEdge-* files
are a different program: a small headless server with no GUI and no Python, for
devices where the launcher does not fit — routers, NAS units, Raspberry Pi and
other embedded Linux. Windows and macOS builds exist for people who want one
native binary and no Python runtime.
Each file is named for the device family it serves, for example
armv5-pogoplug-sheevaplug-dockstar, edgerouter-octeon-mips64, or
router-mips-little-endian-mt7621. Run uname -m on the device and match it in
EDGE-WHICH-BUILD.md;
every archive also contains a WHICH-DEVICE.txt confirming what it is for.
Picking the wrong one is harmless — it simply will not start.
Edge serves three protocols, one subcommand each, and can run more than one
at a time:
ps2servers-edge udpfs --root /mnt/games # folder as a network file share
ps2servers-edge udpbd --image /mnt/ps2.img # disk image as a network drive
ps2servers-edge smb --share games=/mnt/games # SMBv1, for OPL and POPSTARTER
# folder AND a disk image from one server, over UDPFS block access
ps2servers-edge udpfs --root /mnt/games --block-device /mnt/ps2.imgsmb is what OPL's own network game list and POPSTARTER use. It listens on
TCP port 1111 rather than 445, because ports below 1024 need root and Edge
runs unprivileged — set OPL's "SMB Port" to match.
There is also a fourth subcommand, webui, which serves a small web dashboard
for configuring and restarting the others from a phone or a browser. It binds
127.0.0.1 and refuses to start on any other address without a password
(--auth-pass, or --insecure to have one generated and logged), because it
rewrites configuration and restarts services — reaching it is equivalent to
shell access on the device. It speaks plain HTTP, so the password stops casual
access on the LAN, not someone capturing traffic.
Edge supports CSO and ZSO but not CHD (CHD needs a native library that would
break static linking — use the Desktop app for CHD). It allows the console to
write by default, so saves work; pass --read-only to prevent that. --metrics
logs periodic transfer statistics, which is the way to tell a slow transfer from
a stalled one on a machine with no screen. --compression-cache-size tunes how
many decompressed blocks are held per image, which matters most on the slowest
devices.
For OpenWrt, build the source package for your exact target rather than using
these generic binaries — see
OPENWRT.md.
The OpenWrt package starts read-only; set option read_only '0' in
/etc/config/ps2servers-edge to let the console save. Every Edge option is a
UCI option there, including block_device. Each subcommand is its own procd
instance, so a board can serve UDPFS and SMB at once. There are systemd units
for the same thing on ordinary Linux, where systemctl restart ps2servers-edge@smb does restart just that one.
Edge has not been verified on a physical PlayStation 2 or an emulator. Its
wire behaviour is checked in CI against the hardware-validated Python servers,
including a byte-for-byte comparison for UDPBD, which is the strongest evidence
available without a console — and not the same thing as one. Treat the write
paths as unproven.
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local
server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1/RiptOPL — built-in SMB/CIFS subset, normally TCP port
1111
(below 1033 discouraged). - SMB2/SMB3 — a separate, newer server for clients that speak them,
off by default and with NTLMv2 authentication when credentials are set. - UDPFS — UDP file serving, normally UDP port
0xF5F6(62966). - UDPBD — UDP block-device serving, normally UDP port
0xBDBD(48573).
The PS2 Servers Edge build additionally offers an optional HTTP management
dashboard on TCP 8082 (ps2servers-edge webui). It is off by default,
binds loopback when started, and refuses any other bind address without a
password. No listener is opened unless you start it.
Every server here is started by the user and listens on the local network only.
Nothing phones home, and nothing opens a port at install time.
Windows behavior:
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksums: a single
SHA256SUMS.txton
development builds frommain, and a per-asset<name>.sha256.txtbeside
each file on tagged releases. - GitHub artifact attestations are generated for binary and source artifacts.
- For the lowest-trust path, use
PS2Servers-source.zipand run from source.
If your antivirus flags a download, see
ANTIVIRUS-NOTICE.md
— it explains why the single-file build trips heuristics, and why the portable
build usually does not.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository: https://github.com/NathanNeurotic/PS2-Servers
Servers pass their protocol self-tests and cross-implementation
conformance probes. Validation on real PS2 hardware or PCSX2 is
still pending.
Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).
PS2 Servers v0.4.9
Built from the tagged v0.4.9 source so the release tracks main. Download the correct asset for your OS below.
Downloads
| OS | Recommended | Also available |
|---|---|---|
| Windows x64 | PS2Servers-windows-x64-folder.zip (folder, AV-clean) |
PS2Servers-windows-x64.zip (single file) |
| Windows x86 (32-bit) | PS2Servers-windows-x86-folder.zip (folder, AV-clean) |
PS2Servers-windows-x86.zip (single file) |
| Linux x64 | PS2Servers-linux-x64 (single file) |
PS2Servers-x86_64.AppImage (desktop/menu integration, newer) or PS2Servers-linux-x64-folder.tar.gz (folder; use if /tmp is noexec) |
| macOS — Apple Silicon | PS2Servers-macos-arm64.zip |
|
| macOS — Intel | PS2Servers-macos-x64.zip |
Run it: Windows — unzip the folder build and run PS2Servers.exe from inside the folder. The single-file .exe works too but trips some antivirus heuristics; the folder build comes up clean. Linux — chmod +x PS2Servers-linux-x64 and run it; or try the newer .AppImage for desktop/menu shortcuts (via AppImageLauncher). macOS — unzip and right-click → Open (unsigned).
Compression note: ZSO/LZ4 support is bundled. CHD support is backed by a libchdr native library built from source during release packaging.
One launcher for all three OPL servers (SMBv1, UDPFS, UDPBD): pick a folder, hit Start. On Windows it runs from the system tray (close/minimize → tray; right-click → Open/Quit).
Security transparency
PS2 Servers is an open-source PS2 homebrew utility for user-controlled local server setup. It runs local LAN servers for Open PS2 Loader:
- SMBv1/RiptOPL: built-in SMB/CIFS subset, normally TCP port
1111(below 1033 discouraged). - UDPFS: UDP file/block serving, normally UDP port
0xF5F6. - UDPBD: UDP block-device serving, normally UDP port
0xBDBD.
Windows behavior:
- The Windows SMB server uses PS2 Servers' built-in SMB/CIFS implementation and does not enable Windows SMB1.
- The app does not enable or disable Windows optional features.
- Windows Firewall changes happen only after user action/consent and use rules named
PS2 Servers - .... - Advanced SMB port
445mode is optional and requires administrator consent. - To uninstall, delete the extracted app folder. To remove PS2 Servers firewall rules, use the GUI action or
tools/remove-windows-firewall-rules.ps1.
Verification:
- Release assets include SHA-256 checksum files.
- For the lowest-trust path, inspect the source and run from source.
PS2 Servers has been submitted to Avast/Gen Threat Labs for false-positive review.
The application is open source and built from the public GitHub repository. It is a PS2 homebrew utility for user-controlled local server setup and does not contain malware, credential collection, persistence, adware, browser modification, or crypto-mining behavior.
Repository:
https://github.com/NathanNeurotic/PS2-Servers
🤖 Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).
PS2 Servers — Linux tray preview (dev build)
Development preview — not a stable release. For stable downloads use the latest tagged release.
Built from main @ 666689c. This preview is here to test two things that just merged.
🎨 Modernized GUI
One shared palette, cleaner flat surfaces (no more neon boxes), an accent Start button, themed About/terminal panels, and roomier top tabs. Renders the same on every OS.
🧪 Linux system tray — experimental, this is the bit to test
Linux can now close/minimize to the system tray so the servers keep running without a window, like the Windows build. The Linux download here has the tray backend (pystray) bundled in.
How to try it:
- Run
PS2Servers-linux-x64. - Open the About tab and tick Close to tray / Minimize to tray (they are off by default).
- Close the window — it should hide to a tray icon (right-click → Open / Quit) instead of quitting.
- Works on desktops with a system tray: XFCE, Cinnamon, MATE, KDE, or GNOME with the AppIndicator extension. If no icon appears (some desktops have no tray), nothing breaks — closing just quits normally.
Please report: does the tray icon show, and do Open / Quit / close-to-tray / minimize-to-tray work?
The .AppImage (adds desktop-menu integration) will ship with the next tagged release. The tray itself is identical in this plain binary, so it fully validates the feature.
Downloads
- Windows:
PS2Servers-windows-x64-folder.zip— runPS2Servers.exefrom inside the folder (AV-clean). Single-file.zipalso provided. - Linux:
PS2Servers-linux-x64(orPS2Servers-linux-x64-folder.tar.gzif/tmpisnoexec). - macOS: the
.zip.app(Apple Silicon / Intel).
Each asset has a matching .sha256.txt.