First post, by DosFreak
Syndicate Wars Port is a port of the 1996 DOS game Syndicate Wars to modern operating systems. In particular, it runs on GNU, Ma […]
Syndicate Wars Port is a port of the 1996 DOS game Syndicate Wars to modern operating systems. In particular, it runs on GNU, Mac OS and Windows, but it should also work on any system supported by the SDL library on the i386 architecture.
To create the port, we disassembled the original DOS executable and replaced most of the DOS-specific parts with platform-independent code, using SDL for input and video display, Vorbis for music and OpenAL for sound.
As part of the port we only provide a modernised executable which will run on contemporary systems. However, we do not provide the game data. To install the Syndicate Wars Port, you will need to have the original data from the Syndicate Wars CD.
The port is not fully complete. It is possible to finish the single player campaigns, but support for networking is missing. There is also no support for joystick control.
The project was in many ways challenging, it took us two attempts and a considerable amount of effort to understand the LE executable format, write a disassembler that would produce re-compilable code, understand the old DOS interfaces, Watcom register calling conventions and recognise its statically-compiled C library functions; we had to analyse the disassembled source code, interface the assembler code with C code by using automatically-generated function wrappers and fight with Apple compiler bugs; all this before we could provide our own C replacements for the DOS-specific assembler parts and finally make it all work (after endless hours of debugging the assembler code with gdb, of course); months of tediousness and uncertainty before we could even see the mission screen pop up (and crash). Lots of pain, lots of work, but in the end, lots of fun and lots of satisfaction!
It should also be noted that we got our inspiration for creating this project from John Jordan's Frontier: First Encounters, which is a similar port of a space sim game.