Advertisement

Probs compiling Quake 1 (full source)

Started by December 26, 2000 08:30 AM
5 comments, last by Insomnia 24 years ago
Hey all, I finally got the full Quake 1 source (for about the 50th time ) and, yet again, I *cannot* get it to compile under Visual C++ 6.0, damnit. For a start, all the *.s assembley files obviously don''t compile ("bad command file or name" twice for each of them ), then all the *.c ones compile fine, then I get this linker error message: LINK : fatal error LNK1181: cannot open input file ".\Release\d_draw.obj" Error executing link.exe. And then the compilation process stops. d_draw.s is one of the assembley files, so naturally d_draw.obj can''t be opened because it doesn''t exist . My question goes out to those who''ve managed it: Carmack''s readme says "It is possible to change a #define and build with only C code", but i''m afraid that particular #define eludes me. Where the hell is it (which file)? Failing that, how can I get the asm files to compile, all in the same build process (in vc++)? I''m afraid that although my C++ skills are perfectly dandy, I''ve never dared step into the depths of asm, so I don''t have a single clue what to do . Well, thanks to anyone who can help, in any way... much appreciated . Insomnia
Insomnia
I think they used an external assembler... can''t remember which one tho...
I''m afraid you have to do a lil'' research now

greetz
pi~

Jan PieczkowskiBrainwave Studios
Advertisement
they used djgpp to make quake. I''m not sure which assembler they used, but it was probably NASM or something similar.

JoeMont001@programmer.net www.polarisoft.n3.net
My HomepageSome shoot to kill, others shoot to mame. I say clear the chamber and let the lord decide. - Reno 911
If the assembler file has an extension of .S (or .s) its more than likely a GNU GAS file (the assembler with DJGPP called "as").

This assembler uses AT&T asm syntax and is quite different from normal goofy-Intel syntax (but unfamiliar to many).

I would look in the .s file to see what functions are defined, then search the source for a C version of those functions and you can probably determine the name of the #define to use the C code.
Download DJGPP.....www.delorie.com
I had this problem all the time as well!
The assembler used is gas2masm, the source of which is included with the quake 1 source. Just compile the gas2masm project, then put it in the source directory.
should work.
Advertisement
The full solution, no compromises.

1) Obtain a copy of MASM, there is a tutorial set on gamedev.net titled something like "Win32 Assembly Part ##" in the first one there is a link to a site which has this on.

2) Put the ml.exe obtained with this package in your VC/bin directory.

3) Open the Q1 source project in VC++ 6.

4) Perform a gas2masm *debug* build.

5) Build the GLQuake source.

That ought to work. If it doesn''t, then come back and shout at me.

-Mezz

This topic is closed to new replies.

Advertisement