Show whole topic Nov 11, 2008 9:44 pm
mague Offline
Developer
Registered since: Dec 29, 2007
Location: Hungary


Subject: Re: M.A.X. source is lost to Interplay
I also tried to get some information about the topic from the original developers. I won't mention full names, just initials.

C. T. said:
"Sorry, the source code for MAX is lost or unavailable. We've already tried looking for it."

C. N. said:
"I'm afraid I don't have it or know anyone that would any longer. All the Interplay members have moved on and once the projects are done the only copies of the source code would have been with the interplay archives, if they still exist. Sorry."

G. S. said:
"No, I don't have the source code to MAX, though I get asked that sort of question about past projects periodically.

As I recall, the source was fairly quirky. We had libraries from Fallout for some of the user interface / windowing system, and a significant number of assembler modules. We used a command-line C compiler, the name of which escapes me right now, but it wasn't either Microsoft's or Borland's. I think it may have been GCC, in fact, but I'm not sure. Frankly, the source was a mess, and wouldn't port very easily.

Multiplayer was rather TCP/IP unfriendly, because it was frame-locked and didn't deal with delays in transmission very well. Internet play was still very new at the time, and we thought strictly in terms of LAN play. I think you'd have to re-design that from the ground up to get something reliable.

Honestly, the most you'd find useful to salvage would probably be core game logic and AI, since those are hard to reverse engineer. Unfortunately, I can't help you even with that."

Some additional information:
- the user interface / windowing system that G.S. mentioned is the GNW, a user interface and OS-abstraction library, which supports such titles as Fallout & MAX. It was developed by Timothy (Tim) Cain.

- MAX was compiled with DOS/4GW v1.97 libraries witch was distributed with the Watcom C/C++ Compiler. Unfortunately later on (January 30 of 1997) it turned out that the DOS/4GW v1.97 had serious bugs in it's memory allocation handler (DPMI host) that caused mappings of 4 MB or greater ram to be misaligned. Maybe that is the cause why the game crashes a lot with memory allocation errors.

To Mr. Weedy:
decompilation of the MAX executable is possible, but very hard. There are two MAX executables that can be the possible target. The v1.0 PR demo and the v1.56 ALPHA build of the game. These two executables are DEBUG builds, and has lots of AI related debug texts probably for logging purposes. The executables are uses lots of Ansi C functions that can be detected by the decompilers' function libraries. The most unfortunate thing is that the DOS MZ format is can not be interactively debugged by most of the decompilers as interactive debugging would be very important for understanding the local and global variables and such...
Tamas Kleiber
Branch or not to branch, that is the question! Unlocking your destiny is only one LSB away Happy JE 0x74 <-> JNE 0x75