How online play works in PSPC
PSP games went online in two ways, and PSPC supports both:
- Infrastructure mode: over the internet
- The PSP joined a Wi-Fi access point and the game talked to its publisher's servers. PSPC gives games a virtual access point that is your PC's own network connection. When a game asks which connection to use, choose PSPC 1. Games that signed in to the PlayStation Network sign in to PSPC Network, PSPC's stand-in for it.
- Ad hoc mode: local multiplayer
- Nearby PSPs talked to each other directly. In PSPC, players meet through an ad hoc server that introduces them, and the game's data then goes straight between their PCs. The server speaks PPSSPP's protocol, so PSPC and PPSSPP players can play together.
The original servers are gone, so a game in infrastructure mode usually gets as far as contacting its server and then reports that it can't be reached, unless a replacement exists. PSPC brings replacements for Syphon Filter: Combat Ops and GameSpy, for Star Wars Battlefront: Elite Squadron and Star Wars Super Squadron. Other games can be pointed at community revival servers where those exist: see below.
Networking is on by default. network=0 in pspc.ini turns it off, as if the PSP's WLAN switch were off.
The Online page
Click Online in the launcher's sidebar. It has a card for each service, and each card shows where your games go and whether the server on your PC runs:
- PSPC Network: sign-in, online IDs and friends.
- Syphon Filter: Combat Ops: the game's lobby, matches, shared missions, cells and leaderboards.
- GameSpy: Elite Squadron and Super Squadron: accounts, friends, games to join and leaderboards. Super Squadron uses the public server by default.
- Ad hoc: local multiplayer over a network.
Every card has Start and Stop for the server on your PC, a Log of what it does, and Start with PSPC to start it whenever the launcher opens. Change… sets where your games go instead (on the PSPC Network card, that is Account…), and Manage… administers the server (Accounts… on the PSPC Network card). Everything the servers need comes with PSPC, Python included. Closing the launcher stops them, and disconnects anyone playing on them.
Your PSPC Network account
Without an account, games sign in “locally” under the name you choose (PSPCPlayer by default). That is enough for a game that only needs a sign-in, but a game server can't confirm who you are. With an account on a PSPC Network server, you have an online ID, a password and a friend list, and games sign in with a signed ticket, as with Sony's PSN.
-
Pick a server
To host one yourself, click Start on the PSPC Network card, then Sign in here. To use a friend's or a community's, click Account… (or Network at the bottom of the sidebar) and enter its address, such as
https://np.example.orgorhttp://192.168.1.10:8423on a LAN. -
Create your account or sign in
Enter an online ID and a password, then Create account the first time, or Sign in after that.
-
Add friends
The same window lists your friends. Enter a friend's online ID and choose Add / accept: the request becomes a friendship when they add you too.
In a game, the PSN sign-in then takes a moment (“PSPC Network: Signing in.”) and returns your account. PSPC never stores your password: signing in saves a token in pspc.ini, so keep that file private. If the server can't be reached or has revoked the token, the game shows its own sign-in error; sign in again from the launcher.
Syphon Filter: Combat Ops
PSPC's Combat Ops server brings back the game's whole online mode: sign-in, the lobby and chat, hosting and joining games, full matches, the Mission Modifier's shared missions with ratings and favorites, cells (clans), buddies, stats, and the Community pages with leaderboards and a message board.
-
Add the game to your library
The server serves the game's official missions from your copy of the disc (NPUG80114), so it needs to be in the library.
-
Start the server
On the Online page, click Start on the Syphon Filter: Combat Ops card. Your game now goes online to this PC's server. If PSPC Network runs on the same page, the server checks sign-ins with it; players without an account are let in too, unless you change that under Manage….
-
Go online in the game
Start Combat Ops, choose online play and the connection PSPC 1. The game signs in, shows its terms of use, and enters the lobby.
-
Find players
A match needs at least two players, and a ranked match four. Friends on other PCs join you as described in Playing with friends.
To try a match alone, start a second copy of the game with a memory stick folder and online ID of its own. From a terminal in PSPC's folder, using your game file's name:
mkdir ms0-second
pspc.exe --memstick ms0-second --set np_online_id=Other Games\SFCO.iso
Each instance gets its own console identity and ports. Manage… on the card sets the address other players reach your server at, and lists players (ban, unban), shared missions (hide, delete), news and the message board.
Star Wars Battlefront: Elite Squadron
Elite Squadron went online through GameSpy, which closed in 2014. PSPC's GameSpy server brings back its accounts, friends and messages, hosted games and the server browser, player records and leaderboards.
-
Choose a server
Click Start on the GameSpy card to run one on your PC; your game then goes online to it. Or click Change… to point the game at a friend's server, or at OpenSpy (openspy.net), the public GameSpy revival. Whether OpenSpy has Elite Squadron set up is up to OpenSpy.
-
Connect
In the game, choose Multiplayer > Infrastructure and the connection PSPC 1.
-
Log in
At the Login screen, choose Create New GameSpy ID the first time (a nickname, an e-mail address and a password), and Login Using Existing GameSpy ID after that. These accounts belong to the GameSpy server, separate from PSPC Network.
-
Host or join
To host: Create, give the server a name, build the playlist and Launch with Start. To join: Join, then press R to switch to Player-Hosted Servers, where games hosted from a PSP or PSPC appear. Dedicated sessions run by the server appear in the dedicated list. L hides full games, Square refreshes.
The Infrastructure menu also has Friend List and Player Rankings. To test hosting and joining alone, start a second instance with its own memory stick folder (--memstick), as for Combat Ops.
Star Wars Super Squadron
Super Squadron, a mod of Elite Squadron (disc ID ULUS99390), now appears on the Online page's GameSpy card. PSPC sends its GameSpy names to the public server swss.pspc.online by default: you don't need to start a server on your PC. Choose Multiplayer > Infrastructure and PSPC 1, then create a GameSpy ID or log in, as above.
Starting the GameSpy server on your PC, choosing a different server or selecting OpenSpy overrides the public default. Accounts belong to the chosen GameSpy server. v0.1.2 also answers the game's ICMP server pings when Windows won't allow raw sockets, so servers show in its list.
Ad hoc multiplayer
For games' local multiplayer modes, everyone playing together uses the same ad hoc server.
Two windows on one PC
-
Start the ad hoc server
Click Start on the Ad hoc card.
-
Start the game twice
Launch it again while the first window runs. Each window gets its own address and MAC address, so the game sees two consoles.
-
Choose ad hoc play in both
Pick the game's ad hoc or local multiplayer mode in each window; one hosts, the other joins.
Several PCs on a LAN
-
Run the server on one PC
Click Start on its Ad hoc card, and allow it through Windows Firewall on private networks when asked. The card shows the address players use.
-
Point every PC at it
On every PC, including the server's, click Change… on the Ad hoc card and enter the server PC's LAN address, such as
192.168.1.10. Use the LAN address on the server PC as well, notlocalhost, or the other players are given an address they can't reach.
With PPSSPP players: any PPSSPP-compatible ad hoc server works, PSPC's, PPSSPP's built-in one or a public one, and PSPC uses PPSSPP's default port offset, so PSPC and PPSSPP players can join the same game. Playing over the internet needs the game's ports to be reachable: PSPC has no relay and no UPnP.
Every installation has its own console identity. If you copied a PSPC folder to another PC, delete pspc_idstorage.txt in the copy's active firmware\<name>\flash1 folder so the two don't look like the same PSP.
Playing with friends on other PCs
To join a friend: under Account… on the PSPC Network card, enter their server's address. Then, on each game's card, click Change… and enter their address too. Copy address on their side copies what to send you.
To host for friends: start the servers you need. When Windows asks whether PSPC's servers (Python and pspc.exe) may use the network, allow private networks. Open to other PCs on the PSPC Network card, on by default, lets other PCs sign in. For internet hosting, first read the public-server limits and setup, then forward the needed ports on your router to your PC:
| Server | Ports |
|---|---|
| PSPC Network | The port in its address (8423 by default) |
| Combat Ops | 10070–10079 and 10443 |
| GameSpy | TCP 80, 28910, 29900, 29901 and 29920; UDP 27900–27901, plus each dedicated game's fixed UDP port |
| Ad hoc | 27312 |
Keep the test scope in mind. Match tests used game instances on one PC. The public Super Squadron server runs on the internet, and the GameSpy direct/tunnel paths have separate-process end-to-end checks; those aren't evidence of gameplay tested between remote PCs.
Running a server for a community
The servers are plain Python 3.9 or later, standard library only, each keeping its state in one SQLite file, so they run on any small server. From the server folder of PSPC:
# PSPC Network, the sign-in server (http://0.0.0.0:8423)
$ python -m pspc_network serve
# Syphon Filter: Combat Ops
$ python -m pspc_medius --db sfco.sqlite serve --public-host 203.0.113.7 --umd SFCO.iso --network https://np.example.org
# GameSpy for Elite Squadron and Super Squadron, with a player-host limit
$ python -m pspc_gamespy --db gamespy.sqlite serve --public-host 203.0.113.7 --max-player-hosts 5
On the internet, put PSPC Network behind a reverse proxy that does HTTPS, since passwords and session tokens travel over it, and back up its database: it holds everyone's accounts and the key that signs their tickets. The server guide covers HTTPS, systemd, account administration and the game servers' options.
Public GameSpy hosting: v0.1.2 adds per-connection/protocol limits and bounded parsing, with refusals logged. Use --local-hosts-only to list only this machine's games, or a small --max-player-hosts limit for player-hosted games: UDP heartbeats can be forged, so even a bounded list can be filled with false games. Read the public-server setup and security review before exposing it. The source tree's SWSS deployment covers dedicated sessions, fixed map/mode selection and making a playerless dedicated disc from your playable copy.
gamespy-sessions.json configures dedicated sessions; gamespy-games.json adds games beyond the built-in pair. Each dedicated session needs its own fixed UDP game_port in pspc.ini (or --set game_port=3659) and a matching router forward. --renderer none runs display lists without drawing, for GPU-less hosts. Cloudflare Tunnel is optional and needs the documented relay setup; normal forwarded ports use direct game traffic.
Other games: where a community runs a revival server for a game, PSPC can send the game's old server names to it with an infrastructure.json next to pspc.exe. PPSSPP's infra-dns.json tables work unchanged. See redirects for the format.
Limits
- Combat Ops, Elite Squadron and Super Squadron have built-in server support; additional GameSpy games need configuration, not just a new disc ID. Other online games stop at their old server unless a revival exists.
- One virtual access point, IPv4 only. Network configurations made in the XMB aren't kept.
- Ad hoc: no relay or UPnP; the server doesn't connect different regions of a game; chat messages are only logged; every instance uses the nickname “PSPC”.