Skip to content

Releases: NathanNeurotic/PS2-Servers

PS2 Servers main-216-7662804

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Sep 22:44
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.img

smb 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 rootuci 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 port 1111. 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 05:15
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.img

smb 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 rootuci 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 port 1111. 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Choose a tag to compare

@github-actions github-actions released this 08 Sep 17:42
335648f

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.img

smb 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 rootuci 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 port 1111. 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Choose a tag to compare

@github-actions github-actions released this 17 Aug 14:02

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.img

smb 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 rootuci 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Choose a tag to compare

@github-actions github-actions released this 15 Aug 21:55

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.img

smb 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 rootuci 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Choose a tag to compare

@github-actions github-actions released this 15 Aug 21:20

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.img

smb 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 rootuci 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Choose a tag to compare

@github-actions github-actions released this 10 Aug 23:24

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.img

smb 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 rootuci 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Choose a tag to compare

@github-actions github-actions released this 09 Aug 14:04

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.img

smb 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 445 mode 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.txt on
    development builds from main, and a per-asset <name>.sha256.txt beside
    each file on tagged releases.
  • GitHub artifact attestations are generated for binary and source artifacts.
  • For the lowest-trust path, use PS2Servers-source.zip and 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

Choose a tag to compare

@github-actions github-actions released this 20 Jul 21:30

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 445 mode 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

⚠️ Servers pass protocol self-tests; real PS2 / PCSX2 hardware validation still pending.

🤖 Built by GitHub Actions (Intel macOS cross-built on Apple Silicon).

PS2 Servers — Linux tray preview (dev build)

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 20 Jul 17:59
666689c

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 — run PS2Servers.exe from inside the folder (AV-clean). Single-file .zip also provided.
  • Linux: PS2Servers-linux-x64 (or PS2Servers-linux-x64-folder.tar.gz if /tmp is noexec).
  • macOS: the .zip .app (Apple Silicon / Intel).

Each asset has a matching .sha256.txt.