GameService Beta versions
GameService Beta versions
Hi,
does anyone here have a backup copy of the GameService Beta versions?
(e.g. referenced but not cached by the wayback machine)
Many thanks in advance,
Nico
crosspost at Bandie's Racing Board
does anyone here have a backup copy of the GameService Beta versions?
(e.g. referenced but not cached by the wayback machine)
Many thanks in advance,
Nico
crosspost at Bandie's Racing Board
Re: GameService Beta versions
Not on my side ...
Re: GameService Beta versions
Too bad, but thanks for your reply.
Re: GameService Beta versions
Hi again, It's been a long time. Isn't that something Skubidou might have?
Re: GameService Beta versions
I was busy with other things, but from time to time I'm back on IoFreddy a écrit :Hi again, It's been a long time.
After getting POD running in Wine and finishing the analysis of POD's UbiPatch BIN format I continue to reverse engineer the Game Service protocol(s). The "final" Game Service client (let's name it GS2) for POD 2.2.9.0 not only changed the message data encoding (encoded octets diagonally arranged in a square matrix), but also introduced interprocess communication and compatibility problems that are not easily solved on current Windows versions (e.g. registry write access in HKLM, focus/device lost is a problem for some Glide wrappers, ...). Therefore I focus on the "first" Game Service client (let's name it GS1) that was distributed as a single library (gs.dll) and directly integrated in POD 2.2.8.1. Another reason is that only the PowerVR binaries have been built with Visual C++ 4.1, 4.2 and 5.0 (somewhat easier to analyze than all the other binaries that have been built with Watcom). A very basic proof of concept "server" successfully fakes user account creation/login/update and router/server(arena)/session/user lists. Now I'm looking for more information and more client versions to analyze.
I know that there are several ways to cheat in POD multi-player modes, but that's something I don't care about.
Re: GameService Beta versions
Uuuh, that starts to be very interesting. I was thinking of doing the same for a long time, and you seem to have already done a pretty good job !
I'd like to help you so if you could give me some more information on how you managed to launch pod correctly in wine (using dgVoodoo ? With a software rendering version ?) I'd be glad to try this on my side to help reverse engineering the protocol.
Also, I loved the GS1 and the green theme really missed my with the GS2, so I'm all for keeping with the GS1, as buggy as it was.
I'd like to help you so if you could give me some more information on how you managed to launch pod correctly in wine (using dgVoodoo ? With a software rendering version ?) I'd be glad to try this on my side to help reverse engineering the protocol.
Also, I loved the GS1 and the green theme really missed my with the GS2, so I'm all for keeping with the GS1, as buggy as it was.
Re: GameService Beta versions
NIcoDE, I am not at all familiar with all the lingo and programming.
Is the ultimate goal, to re-create the GS1 thru reverse engineering so it can be used again?
Or are you just trying to see if you are successful in doing it as a hobby?
It'll be a huge contribution if you can make a new or existing game service work for everybody.
I am in favor in re-inventing anything that was actually glitchy with POD, as long as the originality and feel of the game remains the same.
Keep up the good work!!
Is the ultimate goal, to re-create the GS1 thru reverse engineering so it can be used again?
Or are you just trying to see if you are successful in doing it as a hobby?
It'll be a huge contribution if you can make a new or existing game service work for everybody.
I am in favor in re-inventing anything that was actually glitchy with POD, as long as the originality and feel of the game remains the same.
Keep up the good work!!
Re: GameService Beta versions
I created a new entry for GOG's POD Gold release in the Wine AppDB (notes and how-to are in progress). And in the meantime I created a winetricks verb for this release.Dfg a écrit :I'd like to help you so if you could give me some more information on how you managed to launch pod correctly in wine (using dgVoodoo ? With a software rendering version ?)
There are some standard tricks to prepare a wineprefix (to avoid littering your Linux home/desktop/menus):
- export WINEPREFIX="$HOME/.local/share/wineprefixes/xxx"
(where xxx is the name of your prefix) - env LANG=C winetricks sandbox
(LANG=C because winetricks does not know all localized shell folder names) - winecfg
(setup your prefix, e.g. "mount" your CD-ROM directory) - export WINEDLLOVERRIDES=winemenubuilder.exe=d
(avoid automatic link creation) - cd "$WINEPREFIX/dosdevices/x:"
(cd to "CD-ROM" drive and run the setup, ...)
I successfully installed and upgraded the POD OEM release to the 3Dfx version 2.2.8.1 following the instructions at Holger Bredel's homepage.
You should only apply the ForceFeedback patch if it's actually working on your system (for my Logitech Driving Force GT it does not). Else you'll have tons of messages in the Wine log.
For the 3Dfx emulation I use nGlide (dgVoodoo did not work on my box in Wine).
And for the run-time patches (buggy CPU checks and so on) PodHacks is used.
My goal is to create a server (private prototype on Windows, later public source code release for Linux) that only implements the required features to connect and play with a GS1 version of POD.Freddy a écrit :Is the ultimate goal, to re-create the GS1 thru reverse engineering so it can be used again?
Or are you just trying to see if you are successful in doing it as a hobby?
I don't wanna bring the whole Game Service back to life
It's a spare time project. Therefore it will take some time (measured in months) because I'm quite busy with my family, a full-time job, and other hobbies.
The project is still in the research phase (there is a private scratch pad where I put some technical stuff from time to time). There might be problems that I'm not aware of at the moment (e.g. the server might have to connect to a client port - what makes the client network setup far more complicated (port forwarding by the router)).
Best regards,
Nico
Re: GameService Beta versions
O M G !
Amazing. That wasn't simple at all.
I'll try this asap ...
Amazing. That wasn't simple at all.
I'll try this asap ...
Re: GameService Beta versions
If you could achieve that, it'll be fantastic.
Playing thru IP wasn't as bad, a disconnect here and there and laggy when playing most custom tracks.
All the original 32 tracks were not a problem. By the time I got to play online the GS2 was being used, I never raced thru the GS1.
A customized GS1 could possibly raise interest again, especially for all those old Poddies like me.
Playing thru IP wasn't as bad, a disconnect here and there and laggy when playing most custom tracks.
All the original 32 tracks were not a problem. By the time I got to play online the GS2 was being used, I never raced thru the GS1.
A customized GS1 could possibly raise interest again, especially for all those old Poddies like me.
Re: GameService Beta versions
Ok, I tried on my POD Gold original CD. Install went fine as usual, and podhacks successfully let me pass the 32k colors restriction.
However, I currently freeze on the intro video...
Edit: googling a bit I found the problem. PulseAudio does not work well with wine. pasuspender solved the problem. Now my main problem is performance : it's horribly slow !
Edit2: Using dgVoodoo, the game is playable. Some polygons are missing and the game isn't really easy to play, but I can test things. And I can run wireshark :-)
However, I currently freeze on the intro video...
Edit: googling a bit I found the problem. PulseAudio does not work well with wine. pasuspender solved the problem. Now my main problem is performance : it's horribly slow !
Edit2: Using dgVoodoo, the game is playable. Some polygons are missing and the game isn't really easy to play, but I can test things. And I can run wireshark :-)
Re: GameService Beta versions
Sounds like 3D acceleration isn't working.Dfg a écrit :it's horribly slow !
Multiarch and no libgl1-xxx-glx:i386 ?
Re: GameService Beta versions
Thanks, I'll look at that. But enough for today. Just for reference my discovery of the day :
http://sd-21102.dedibox.fr/sylvain/pod-gs1.txt
Maybe that's something you already knew ...
http://sd-21102.dedibox.fr/sylvain/pod-gs1.txt
Maybe that's something you already knew ...
Re: GameService Beta versions
A short overview of my guesswork...Dfg a écrit :Maybe that's something you already knew ...
There are two message types in the library (attached gs1msg).
A connection sequence might look like in the attached gs1log.
(all "[4][3]StillAlive <>" have been stripped)
(Demo versions send StillAlive_Shareware and additionally require a Success reply to Connect_Shareware)
- Pièces jointes
-
- gs1log.zip
- GS1 connections sequence
- (517 octets) Téléchargé 340 fois
-
- gs1msg.zip
- GS1 packet doc (C++ style)
- (1.32 Kio) Téléchargé 371 fois
Re: GameService Beta versions
Ok, you're far ahead from me :-) I'll try to fill the gap quickly ...
Re: GameService Beta versions
Ok, I think I get it. Do you already have a basic code for the router / server ? (I'm ready to write one, but maybe it's useless if you already have it done somewhere)
In which way do you think I could help ? I can see a couple of thing :
- Writing a tool that translates logs to binary / binary to logs to help protocol reverse engineering
- Setting up a git somewhere
- Continue protocol reverse engineering
- Something else ?
In which way do you think I could help ? I can see a couple of thing :
- Writing a tool that translates logs to binary / binary to logs to help protocol reverse engineering
- Setting up a git somewhere
- Continue protocol reverse engineering
- Something else ?
Re: GameService Beta versions
This the best I was able to get for years !
I still have issues (car is too fast, and there are some textures errors) ... but still ! Amazing ...
If I am not able to connect my wheel, it is pointless though
I will try with Windows now ... never know !
I still have issues (car is too fast, and there are some textures errors) ... but still ! Amazing ...
If I am not able to connect my wheel, it is pointless though
I will try with Windows now ... never know !
Re: GameService Beta versions
Libgl1 is there and 3D accel is definetly working. And dgVoodoo works fine (in terms of performance ... though rendering is quite ugly). But I don't know why nglide doesn't. Actually, even dgVoodoo sometimes switches to the very slow mode (I can't correlate this to a wine warning or anything). Anyway, I'm running an old ubuntu and it may explain most of the problems I encounter.NicoDE a écrit :Sounds like 3D acceleration isn't working.Dfg a écrit :it's horribly slow !
Multiarch and no libgl1-xxx-glx:i386 ?
Re: GameService Beta versions
No, just a local "router/server" (same port) that replies hard-coded messages to advance step by step in the connection sequence (to reach the point where a game is running).Dfg a écrit :Do you already have a basic code for the router / server ?
I tell the game about my "router" by generating a GS.bin with a custom tool.
That depends on your interest and spare time.Dfg a écrit :In which way do you think I could help ?
Personally I'm fairly new to Linux development/daemons and would start by using the APR framework. But it sounds like your are more experienced in this topic.
Did you notice the gs.dif? Patch your GS.dll and it will generate a log file.Dfg a écrit :- Writing a tool that translates logs to binary / binary to logs to help protocol reverse engineering
I spent a lot of time in IDA looking at the library and the game binaries.Dfg a écrit :- Continue protocol reverse engineering
Maybe I should write down some docs, notes, and comments (or answer questions if possible) before your start to repeat the analysis.
---
You need to enable VSync in dgVoodoo/nGlide.grokon a écrit :(car is too fast, ...)
My wheel works, but not the haptics (not in Linux and therefore not in Wine).grokon a écrit :If I am not able to connect my wheel, it is pointless though
Re: GameService Beta versions
Interest : high , spare time : low. :-)NicoDE a écrit :That depends on your interest and spare time.
I'm fairly experienced in linux development (contrary to windows development : I've never compiled anything on windows), and I didn't know the APR framework. With APR, we may achieve some kind of portability so that may be interesting, though we may lack control on network performance tuning we may need to design a low latency server.NicoDE a écrit :Personally I'm fairly new to Linux development/daemons and would start by using the APR framework. But it sounds like your are more experienced in this topic.
O....K. That's terrific.NicoDE a écrit :Did you notice the gs.dif? Patch your GS.dll and it will generate a log file.
Oh, ok. Good to know.NicoDE a écrit :I spent a lot of time in IDA looking at the library and the game binaries.
Maybe I should write down some docs, notes, and comments (or answer questions if possible) before your start to repeat the analysis.