TTDPatch on Win xp x64

An archive of the Usenet group alt.games.microprose.transport-tyc.
Locked
Stan Kondak

TTDPatch on Win xp x64

Post by Stan Kondak » 29 May 2005 09:36

Hi Josef,

just I wanted to test the TTDPatch on Win XP x64, but it crashes.
I adjusted the compatibility to windows 2000, XP and Win98, all the same - the game crashes every time :-(

Stan
--
Opera M2/8.01

Josef Drexler

Re: TTDPatch on Win xp x64

Post by Josef Drexler » 29 May 2005 14:24

On Sun, 29 May 2005 11:36:30 +0200, Stan Kondak wrote:
Hi Josef,

just I wanted to test the TTDPatch on Win XP x64, but it crashes.
I adjusted the compatibility to windows 2000, XP and Win98, all the same - the game crashes every time :-(
At what point does it crash? Does it make a crash log?

--
Josef Drexler | http://jdrexler.com/home/
---------------------------------+---------------------------------------
Please help Conserve Gravity | Email address is *valid*.
Use tape&glue, no paperweights | Don't remove the "nospam" part.

Owen Rudge

Re: TTDPatch on Win xp x64

Post by Owen Rudge » 29 May 2005 14:29

just I wanted to test the TTDPatch on Win XP x64, but it crashes.
I adjusted the compatibility to windows 2000, XP and Win98, all the same -
the game crashes every time :-(
I tested it and I think it worked. Or maybe that was OpenTTD, I can't
remember for sure... will test it again later. ;-)

--
Owen Rudge
http://www.owenrudge.net/

Stan Kondak

Re: TTDPatch on Win xp x64

Post by Stan Kondak » 29 May 2005 14:56

Josef Drexler wrote on Sun, 29 May 2005 16:24:04 +0200:
On Sun, 29 May 2005 11:36:30 +0200, Stan Kondak wrote:
just I wanted to test the TTDPatch on Win XP x64, but it crashes.

At what point does it crash? Does it make a crash log?
It crashes just at the beginning. The CRASH000.TXT in attachment

Stan

--
Opera M2/8.01

Stan Kondak

Re: TTDPatch on Win xp x64

Post by Stan Kondak » 29 May 2005 15:00

Owen Rudge wrote on Sun, 29 May 2005 16:29:21 +0200:
just I wanted to test the TTDPatch on Win XP x64, but it crashes.

I tested it and I think it worked. Or maybe that was OpenTTD, I can't remember for sure... will test it again later. ;-)
OpenTTD works very well on win x64 :-)

Stan

--
Opera M2/8.01

Josef Drexler

Re: TTDPatch on Win xp x64

Post by Josef Drexler » 29 May 2005 15:48

On Sun, 29 May 2005 16:56:18 +0200, Stan Kondak wrote:
Josef Drexler wrote on Sun, 29 May 2005 16:24:04 +0200:

On Sun, 29 May 2005 11:36:30 +0200, Stan Kondak wrote:
just I wanted to test the TTDPatch on Win XP x64, but it crashes.

At what point does it crash? Does it make a crash log?

It crashes just at the beginning. The CRASH000.TXT in attachment
Ah, that's actually a crash in TTD. Somehow XP64 doesn't seem to allow
setting the FS segment register, or it fails in other ways. TTD needs
this to display its graphics, however.

That's not something I can fix. Someone who has XP64 might be able to,
though.

--
Josef Drexler | http://jdrexler.com/home/
---------------------------------+---------------------------------------
Please help Conserve Gravity | Email address is *valid*.
Walk with a light step. | Don't remove the "nospam" part.

Josef Drexler

Re: TTDPatch on Win xp x64

Post by Josef Drexler » 29 May 2005 17:23

On Sun, 29 May 2005 16:56:18 +0200, Stan Kondak wrote:
It crashes just at the beginning. The CRASH000.TXT in attachment
One possible way to fix this should be to remove all FS prefixes in the
game, they aren't really needed.

If you are comfortable using a hex editor, you can open gamegfx.exe (make
a backup first!), find all occurences of "64 8A 04 18" and change the "64"
into "90" for all of them (everything in hex here).

Then delete ttdloadw.ovl to make sure these changes get imported there.
That should theoretically fix the problem.

--
Josef Drexler | http://jdrexler.com/home/
---------------------------------+---------------------------------------
Please help Conserve Gravity | Email address is *valid*.
Play Chess, not Basketball. | Don't remove the "nospam" part.

Josef Drexler

Re: TTDPatch on Win xp x64

Post by Josef Drexler » 29 May 2005 18:22

On Sun, 29 May 2005 13:22:25 -0400, I wrote:
On Sun, 29 May 2005 16:56:18 +0200, Stan Kondak wrote:

It crashes just at the beginning. The CRASH000.TXT in attachment

If you are comfortable using a hex editor, you can open gamegfx.exe (make
a backup first!), find all occurences of "64 8A 04 18" and change the "64"
into "90" for all of them (everything in hex here).
By the way, if you aren't comfortable with a hex editor, let me know and I
can easily do this and send you the modified file. I could add this to
the patch too, but first I'd need to confirm that it actually works, so
I'd appreciate if you could be the guinea pig :)

--
Josef Drexler | http://jdrexler.com/home/
---------------------------------+---------------------------------------
Please help Conserve Gravity | Email address is *valid*.
Give up downhill skiing. | Don't remove the "nospam" part.

Stan Kondak

Re: TTDPatch on Win xp x64

Post by Stan Kondak » 29 May 2005 18:48

Josef Drexler wrote on Sun, 29 May 2005 19:23:02 +0200:
If you are comfortable using a hex editor, you can open gamegfx.exe (make
a backup first!), find all occurences of "64 8A 04 18" and change the "64"
into "90" for all of them (everything in hex here).
done - 277 times replaced given String
That should theoretically fix the problem.
The Game works now - thanks ;-)

Stan

--
Opera M2/8.01

Marcin Grzegorczyk

Re: TTDPatch on Win xp x64

Post by Marcin Grzegorczyk » 30 May 2005 14:21

Josef Drexler wrote:
[...]
Ah, that's actually a crash in TTD. Somehow XP64 doesn't seem to allow
setting the FS segment register, or it fails in other ways.
As you may know, under Win32 the FS register points to a special segment
which contains a structure called Thread Information Block. This is
used, among others, for structured exception handling.

AFAIK when a 64-bit processor is running in the IA-32e compatibility
mode, the FS and GS registers are treated somewhat different to the
other segment registers. Might have something to do with the crash.
(Perhaps XP64 somehow protects the FS register to ensure that IA-32
programs don't mess it up.)
--
Marcin Grzegorczyk

Josef Drexler

Re: TTDPatch on Win xp x64

Post by Josef Drexler » 30 May 2005 22:43

On Mon, 30 May 2005 16:20:23 +0200, Marcin Grzegorczyk wrote:
Josef Drexler wrote:
[...]
Ah, that's actually a crash in TTD. Somehow XP64 doesn't seem to allow
setting the FS segment register, or it fails in other ways.

As you may know, under Win32 the FS register points to a special segment
which contains a structure called Thread Information Block. This is
used, among others, for structured exception handling.

AFAIK when a 64-bit processor is running in the IA-32e compatibility
mode, the FS and GS registers are treated somewhat different to the
other segment registers. Might have something to do with the crash.
(Perhaps XP64 somehow protects the FS register to ensure that IA-32
programs don't mess it up.)
It's either that, or it doesn't restore it properly after a mode switch
from 64 bit mode. Perhaps it always restores it to the TIB instead of the
value it had before.

Either way, just removing all FS prefix instructions fixed the problem, so
I've integrated that into alpha 51 (as part of the win2k switch).

--
Josef Drexler | http://jdrexler.com/home/
---------------------------------+---------------------------------------
Please help Conserve Gravity | Email address is *valid*.
Give up downhill skiing. | Don't remove the "nospam" part.

Locked

Return to “alt.games.microprose.transport-tyc”

Who is online

Users browsing this forum: No registered users and 2 guests