It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
abr_alex: With the new patch the game doesn't work under Windows XP anymore (with a message that program isn't a 32-bit application). Can this be fixed? Maybe GOG can add 32-bit launcher to ensure compatability?
avatar
AstralWanderer: It isn't a 32/64-bit issue - the headers of the nexus.exe and nexusDX9.exe files have values set to block them running on WinXP/Win2K (causing them to fail with the "not a valid Win32 application" message). Given that Nexus originally ran on Win9x plus the GOG gamecard still lists it as WinXP compatible, this does need to be addressed by GOG Support.

In the meantime however, affected owners can get the files to run on WinXP (and Win2K) with the following steps:

* Download and install a hex editor (I suggest using the free HxD);
* Make backup copies of nexus.exe and nexusDX9.exe (HxD will make backup copies too, but better to play safe);
* Open nexus.exe using HxD and change bytes 140 and 148 (hex) from 06 to 04 (see the outlined values in Nexus.gif) - save this altered file;
* Open nexusDX9.exe using HxD and change bytes 180 and 188 (hex) from 06 to 04 (see the outlined values in NexusDX9.gif) - save this altered file;
* Try running either file, both should now work.

I have tested this with multiple savegames from different parts of the campaign and encountered no problems (on a WinXP SP3 system) though I can't guarantee that this will work for everyone else. However my experience seems to show there is no valid reason to block execution on WinXP and this is likely due to Mithis using Visual Studio 2015 or a similar tool that requires patching for WinXP support.
Are those offsets consistent across all cases where it's merely the headers blocking something from running?

I ask because I'm considering whipping up a quick little patcher utility.

(Note: Because I have no experience with the raw Windows API, the lightest solution I can justify the time for is a Python script wrapped in py2exe, since that'll give me EasyDialogs for Windows.)
avatar
ssokolow: Are those offsets consistent across all cases where it's merely the headers blocking something from running?
It's values in the file headers (specifically the Program Executable Optional Header - Required OS Version and Subsystem Version values) that have to be changed. The offsets will vary for different program files so your utility will need to parse the headers if it is to work on .exe files generally, but doing one to patch this version of Nexus only can assume fixed offsets.
avatar
ssokolow: Are those offsets consistent across all cases where it's merely the headers blocking something from running?
avatar
AstralWanderer: It's values in the file headers (specifically the Program Executable Optional Header - Required OS Version and Subsystem Version values) that have to be changed. The offsets will vary for different program files so your utility will need to parse the headers if it is to work on .exe files generally, but doing one to patch this version of Nexus only can assume fixed offsets.
That'll take a little longer to write but I do have experience parsing binary formats in Python and I also have some PE reference documentation already stockpiled for an EXE type detector I want to write (ie. real-mode DOS vs. DPMI vs. OS/2 vs. Win16 vs. Win386 vs. Win32 vs. Win64 vs. CLR) so I'll see if I can fit it in.

Trivia: If you've never heard of Win386, it's to Windows 3.1 what DOS4G/W was to DOS games. They're both stub-based 32-bit extenders which were bundled with the Watcom C compiler. They both expect your program to be compiled to PharLap executable format and then have a launcher/wrapper stub bound to it, and game developers like Sierra were using both of them for games like King's Quest 7 because the total cost of ownership for Watcom C plus the bundled extenders was much lower than for other offerings.

Source: Watcom Win386 - OS/2 Museum plus bits I ran across elsewhere on the web and my own experiments with OpenWatcom (which is still capable of compiling to all of its historical targets from modern 64-bit OSes. The only non-native line in that link is Pacific C, which I run inside DOSEmu because /usr/bin/file reacts uniquely to its output).
Post edited September 12, 2016 by ssokolow
Sorry for the delay in replying (GOG's ReCAPTCHA shenanigans has been making it difficult for me to login).

You might find checking the source code for PEViewer worthwhile. This utility (supplied with Process Hacker) does parse file headers and does show (though not modify) one of the header values concerned, so it might provide a head start.

I can see such a tool being handy, but only in very specific situations. Pointing Nordic towards OpenWatcom to recompile Nexus might be more useful. ;)
Just a small note to ask about the status of a WinXP fix...any news? (I know about the hex editing and can do so, but prefer a cleaner solution. Preferably direct from GOG since there also seems to be a showstopping savegame bug with the current Nexus game version as well...)
What about 1.03?
avatar
Riekopo: What about 1.03?
Seconded. Where's 1.03?
avatar
Riekopo: What about 1.03?
avatar
JoelDurhamJr: Seconded. Where's 1.03?
https://www.gog.com/forum/nexus_the_jupiter_incident/are_we_getting_v103/post8

Soon... i hope so ;-)
Still nothing. :(
Looks like, that this part of 1.03 makes some trouble for GOG-Version?
MODDING ADDITIONS
• Added Steam Workshop support.