fuzziqersoftware / newserv

Phantasy Star Online game server, proxy, and reverse-engineering tools
MIT License
161 stars 36 forks source link

[PSOPC] Consider implementing the PSOPC Network Trial Edition #276

Closed ShiftaDeband closed 9 months ago

ShiftaDeband commented 9 months ago

As far as I can tell, the only remaining PSO version not yet supported by newserv is the PSO PC Network Trial Edition.

This version of Phantasy Star Online, released sometime mid-July 2002, was unique in that it was essentially a trial of the online (and offline) modes, with several files removed. That said, it was still a 86.4MB download.

If I remember correctly, other users at the time realized that one could add missing files to make it essentially the full game - probably by replacing the executable and adding the missing files from the main game (memory is a little fuzzy here, but I believe that's the gist. Before this, there was another trial released, but it was offline-only and missing a ton of assets including sound effects, music, and only included Forest.) The server was apparently named 00:JP/Trial and was shut down sometime late 2003.

The executable tries to connect on port 9100 to pso-kr06.sonic.isao.net which can be changed by editing the pso.exe executable.

The PC NTE is unique in that it:

I tried to connect it to newserv today, but it looks like it won't connect, likely due to the missing SN/AK. I've attached a log of that connection attempt. You can see the differences between this and where the SN/AK would be sent to the server in the smoke test over here.

Aside from getting this far, I have no idea how the server and client interact beyond this point, for instance, what happens to the guild card number issued to the client.

I assume the client has limitations on what it can do, including sending guild cards, areas it can access, etc. I am not sure if the client or server handle the limitation on playtime, though I wouldn't expect newserv to implement this if it was server-side.

I 2651 2023-12-17 18:33:30 - [C-1] Created
I 2651 2023-12-17 18:33:30 - [Server] Client connected: C-1 on fd 38 via 15 (T-9100-PC_V2-gc-us10-pc_console_detect)
I 2651 2023-12-17 18:33:30 - [Commands] Sending to C-1 (version=PC_V2 command=19 flag=00)
0000 | B0 00 19 00 C0 A8 05 FA ED 13 00 00 00 00 00 00 |                 
0010 | 00 00 00 00 00 00 00 00 00 19 00 97 00 C0 A8 05 |                 
0020 | FA EC 13 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0090 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
00A0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
I 2651 2023-12-17 18:33:30 - [Server] Client disconnected: C-1 on fd 38
I 2651 2023-12-17 18:33:30 - [C-1] Deleted
I 2651 2023-12-17 18:33:30 - [C-2] Created
I 2651 2023-12-17 18:33:30 - [Server] Client connected: C-2 on fd 38 via 27 (T-5101-PC_V2-pc-login-login_server)
I 2651 2023-12-17 18:33:30 - [Commands] Sending to C-2 (version=PC_V2 command=17 flag=00)
0000 | 00 01 17 00 44 72 65 61 6D 43 61 73 74 20 50 6F |     DreamCast Po
0010 | 72 74 20 4D 61 70 2E 20 43 6F 70 79 72 69 67 68 | rt Map. Copyrigh
0020 | 74 20 53 45 47 41 20 45 6E 74 65 72 70 72 69 73 | t SEGA Enterpris
0030 | 65 73 2E 20 31 39 39 39 00 00 00 00 00 00 00 00 | es. 1999        
0040 | 00 00 00 00 59 B1 0C 79 70 6C C9 4F 54 68 69 73 |     Y  ypl OThis
0050 | 20 73 65 72 76 65 72 20 69 73 20 69 6E 20 6E 6F |  server is in no
0060 | 20 77 61 79 20 61 66 66 69 6C 69 61 74 65 64 2C |  way affiliated,
0070 | 20 73 70 6F 6E 73 6F 72 65 64 2C 20 6F 72 20 73 |  sponsored, or s
0080 | 75 70 70 6F 72 74 65 64 20 62 79 20 53 45 47 41 | upported by SEGA
0090 | 20 45 6E 74 65 72 70 72 69 73 65 73 20 6F 72 20 |  Enterprises or 
00A0 | 53 4F 4E 49 43 54 45 41 4D 2E 20 54 68 65 20 70 | SONICTEAM. The p
00B0 | 72 65 63 65 64 69 6E 67 20 6D 65 73 73 61 67 65 | receding message
00C0 | 20 65 78 69 73 74 73 20 6F 6E 6C 79 20 74 6F 20 |  exists only to 
00D0 | 72 65 6D 61 69 6E 20 63 6F 6D 70 61 74 69 62 6C | remain compatibl
00E0 | 65 20 77 69 74 68 20 70 72 6F 67 72 61 6D 73 20 | e with programs 
00F0 | 74 68 61 74 20 65 78 70 65 63 74 20 69 74 2E 00 | that expect it. 
I 2651 2023-12-17 18:33:30 - [Commands] Received from C-2 (version=PC_V2 command=9A flag=00)
0000 | E0 00 9A 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0010 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0040 | 00 00 00 00 00 00 FF FF FF FF FF FF 29 00 00 00 |             )   
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
0090 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
00A0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
00B0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
00C0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
00D0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |                 
W 2651 2023-12-17 18:33:30 - [Server] Error processing client command: stoul
I 2651 2023-12-17 18:33:30 - [Server] Client disconnected: C-2 on fd 38
I 2651 2023-12-17 18:33:30 - [C-2] Deleted
fuzziqersoftware commented 9 months ago

This is a strange version of PSO! Thanks for posting this; I had looked for PC NTE recently to add support for it but failed to find any download links that were still valid in 2023, and it seemed archive.org hadn't saved the file either.

This version seems fairly similar to the final PC version from the server's perspective; the only major difference is the missing serial number and access key. I've made newserv use random Guild Card numbers for PC NTE clients, which enables them to connect and join the lobby. (You'll also have to enable AllowPCNTE and AllowUnregisteredUsers in config.json before connecting.) I tested a game very briefly and without any other players present; I suspect everything will work properly in-game, but didn't spend a lot of time on it. As always, please create further issues here or reopen this one if you notice anything broken.