Sim Theme Park/Theme Park World Online Functions

Discussion in 'Programming' started by Blayer98, Jul 10, 2015.

  1. Blayer98

    Blayer98 Active Member

    No wonder Theme Park World keeps disconnecting from the server with my localhost connection
    HTML:
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>501 Method Not Implemented</title>
    </head><body>
    <h1>Method Not Implemented</h1>
    <p>Bc to / not supported.<br />
    </p>
    </body></html>
    Nevermind, turns out the game doesn't use http at all, but a custom protocol, well, I guess I'll have to reverse engineer?
    Last edited: Jun 26, 2016
    LetsRaceBwoi likes this.
  2. Marvin732

    Marvin732 Active Member

    I have One question, which recorder did you used at your video

    https://www.dropbox.com/s/gu3cppzypr0lgv3/How the LoginServer works on Theme Park World.mp4?dl=0
    I used that back then too but i forgot the Name :/
  3. Blayer98

    Blayer98 Active Member

  4. slappyhead

    slappyhead New Member

    Little optimism here, but got to come out of the woodwork and attempt to stimulate interest in this project to continue! :)
    nhetkhfgjhk likes this.
  5. -BloodFighter-

    -BloodFighter- Active Member

    After two years, I guess that is a bit too late^^
    Marvin732 and nhetkhfgjhk like this.
  6. LetsRaceBwoi

    LetsRaceBwoi Well-Known Member

    I'm still interested in this - I had a look not too long ago at trying to re-create the online features. Here's some of the stuff I discovered: please note that I could be completely wrong!

    The game actually runs several servers; I'm only going to be talking about the login server that runs on port 7598 for trivial reasons. Patching the client is relatively easy and only requires a change to the Online.sam file, which is plaintext anyway. I decided to go the long way around and add an entry to my hosts file so that daphne.eagames.co.uk would get resolved to localhost, because the client seems to work slightly differently when it's given localhost directly.

    The login server uses TCP, and when a client connects the server *must* write at least one byte in the TCP stream, otherwise the client will just sit there and do nothing. The client then sends across a "packet" (write ~148 bytes to the stream) beginning with 0x42 and 0x63, which is a login request. This contains the username and password that the user entered at positions 20 and 84 respectively, plus some additional info I haven't figured out quite yet.

    From there, I think the server has to write a few bytes back, however I found that writing more than two seems to cause the connection to drop instantaneously. 0x42 and 0x73 are mentioned at one point, so I've been trying those. It is quite possible that I am completely wrong as my knowledge of assembly language is extremely basic and I've never done anything like this before, but I'm giving it a try anyway.

    I also did a bit of work trying to unpack the DWFB WAD files the game uses for use in the future, because the PS2 has additional rides that were rewards from the PC online play. This is actually relatively simple (there is some simple documentation on the format here) but once again decompression seems to be my downfall.
    People appear to have had luck here, however contacting them has unfortunately yielded nothing.
    mrpenguinb likes this.

Share This Page