C Board  

Go Back   C Board > General Programming Boards > Game Programming

Reply
 
LinkBack Thread Tools Display Modes
Old 01-19-2003, 01:23 AM   #1
Banned
 
Join Date: Jan 2003
Posts: 1,708
Problem building Quake source

I download the 3MB quake source from IDsoftware, but it cannot find the d_draw.obj file. First of all what exactly is stored in a .obj file, is it like assembly or something? Secondly how can I get the d_draw.obj file? Or did Id purposely not include it so little buttheads like me can't actually build the quake project?
Silvercord is offline   Reply With Quote
Old 01-19-2003, 01:31 AM   #2
Programming Sex-God
 
Polymorphic OOP's Avatar
 
Join Date: Nov 2002
Posts: 1,078
ddraw is directdraw.

You need the directx SDK

http://msdn.microsoft.com/directx
Polymorphic OOP is offline   Reply With Quote
Old 01-19-2003, 01:32 AM   #3
mov.w #$1337,D0
 
Jeremy G's Avatar
 
Join Date: Nov 2001
Posts: 704
i believe d_draw is part of the Direct X package.
go to: http://www.microsoft.com and use the little search field on th left navigation menu and search for DirectX 8.1 SDK.

Download and install that 182ish mB file, and you will have the direct x files.

I believe .obj are what the compiler compiles your .cpp files into, before it LINKS them together to create the executeables.
__________________
c++->visualc++->directx->opengl->c++;
(it should be realized my posts are all in a light hearted manner. And should not be taken offense to.)
Jeremy G is offline   Reply With Quote
Old 01-19-2003, 07:56 AM   #4
Banned
 
Join Date: Jan 2003
Posts: 1,708
Does it matter which version of dx sdk I get? Im downloading 9 will that work? I mean this is afterall an extremely old game so I have my doubts if either would end up working.

Thanks
Silvercord is offline   Reply With Quote
Old 01-19-2003, 09:30 AM   #5
I lurk
 
Join Date: Aug 2002
Posts: 1,361
No, sorry to say you're all wrong
You need the MASM assembler installed to your VC98\bin\ folder.

Yet again, a simple search: http://www.inside3d.com/qip/home.shtml
Eibro is offline   Reply With Quote
Old 01-19-2003, 09:33 AM   #6
Banned
 
Join Date: Jan 2003
Posts: 1,708
Ok Eibro. What is the exact name of the program? There's a bunch there and I don't see 'MASM' anything, perhaps I don't have it?

What's the difference between 'MASM' and 'GASM'?
Silvercord is offline   Reply With Quote
Old 01-19-2003, 10:56 AM   #7
I lurk
 
Join Date: Aug 2002
Posts: 1,361
Quote:
Originally posted by Silvercord
Ok Eibro. What is the exact name of the program? There's a bunch there and I don't see 'MASM' anything, perhaps I don't have it?

What's the difference between 'MASM' and 'GASM'?
Quote:
You can get version 6.11d of MASM for free through the Win98 DDK at
http://www.microsoft.com/ddk/download/98/BINS_DDK.EXE
Run it to extract the BINS_DDK.CAB file, then open the new file with an CAB-
capable tool (e.g. PowerArchiver, see link on 3.3), extract BIN_WIN98_ML.EXE,
rename to ML.EXE and put it in the BIN directory of your VC++ installation.
I also found you have to extract BIN_WIN98_ML.ERR and rename it to ML.ERR

I'll take a shot in the dark and guess GASM is ASM for *nix.
Eibro is offline   Reply With Quote
Old 01-19-2003, 11:27 AM   #8
Banned
 
Join Date: Jan 2003
Posts: 1,708
Ok thanks Eibro, I appreciate the help. I downloaded the entire dx 9.0 sdk (200 somethingMB) for nothing, lol!!! Oh well I've done worse things! Who knows maybe I'll find it useful yet!
Silvercord is offline   Reply With Quote
Old 01-19-2003, 11:30 AM   #9
mov.w #$1337,D0
 
Jeremy G's Avatar
 
Join Date: Nov 2001
Posts: 704
well, you kinda did, kinda didnt download DX sdk for nothing.

On the PRO, you now have the DX sdk, and you can start with making graphic window applications.

On the CON, for me, DX9 has been the crappiest dx EVER! Its given me nothing but problems (Prevent half life, 3dsMax, and other programs from running) and slowed down my quake 3.
How ever, some others dont seem to face this problem. Sigh. i hate dx9
__________________
c++->visualc++->directx->opengl->c++;
(it should be realized my posts are all in a light hearted manner. And should not be taken offense to.)
Jeremy G is offline   Reply With Quote
Old 01-19-2003, 12:01 PM   #10
Banned
 
Join Date: Jan 2003
Posts: 1,708
I'm getting these errors, I don't really know what I'm doing but I'm going to try to fix them anyways

Code:
--------------------Configuration: winquake - Win32 Release--------------------
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
worlda.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\worlda.asm
.\Release\worlda.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
sys_wina.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\sys_wina.asm
.\Release\sys_wina.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
surf8.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\surf8.asm
.\Release\surf8.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
surf16.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\surf16.asm
.\Release\surf16.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
snd_mixa.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\snd_mixa.asm
.\Release\snd_mixa.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
r_varsa.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\r_varsa.asm
.\Release\r_varsa.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
r_edgea.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\r_edgea.asm
.\Release\r_edgea.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
r_drawa.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\r_drawa.asm
.\Release\r_drawa.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
r_aliasa.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\r_aliasa.asm
.\Release\r_aliasa.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
r_aclipa.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\r_aclipa.asm
.\Release\r_aclipa.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
math.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\math.asm
.\Release\math.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
d_varsa.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\d_varsa.asm
.\Release\d_varsa.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
d_spr8.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\d_spr8.asm
.\Release\d_spr8.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
d_scana.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\d_scana.asm
.\Release\d_scana.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
d_polysa.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\d_polysa.asm
.\Release\d_polysa.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
d_parta.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\d_parta.asm
.\Release\d_parta.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
d_draw16.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\d_draw16.asm
.\Release\d_draw16.asm(1) : error A2088: END directive required at end of file
mycoolbuild
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
d_draw.s
The system cannot find the path specified.
Microsoft (R) Macro Assembler Version 6.11d
Copyright (C) Microsoft Corp 1981-1995.  All rights reserved.
 Assembling: .\Release\d_draw.asm
.\Release\d_draw.asm(1) : error A2088: END directive required at end of file
Linking...
LINK : fatal error LNK1181: cannot open input file ".\Release\d_draw.obj"
Error executing link.exe.

WinQuake.exe - 19 error(s), 0 warning(s)
Silvercord is offline   Reply With Quote
Old 01-19-2003, 12:18 PM   #11
I lurk
 
Join Date: Aug 2002
Posts: 1,361
Haha. Looks like you're having the same problems I was having. I just said the hell with it

My best guess is: what we downloaded was a newer version of MASM, and those files are using something which has been depricated.

If anyone knows MASM, perhaps they could take a look at the d_draw.s file.
*signals Silvercord to attach d_draw.s*
Eibro is offline   Reply With Quote
Old 01-19-2003, 01:33 PM   #12
Banned
 
Join Date: Jan 2003
Posts: 1,708
Oh sorry it took so long for me to attach it, here is d_draw.s

EDIT: Just to let you know even when we do get this part working you are still going to need to download quake so you can have all the .wad files and what not
Attached Files
File Type: zip d_draw.zip (5.3 KB, 43 views)
Silvercord is offline   Reply With Quote
Old 01-19-2003, 02:18 PM   #13
mov.w #$1337,D0
 
Jeremy G's Avatar
 
Join Date: Nov 2001
Posts: 704
READ THIS OR DIE!!!!!

Found this at my favorite quake sites:
http://www.sowbug.org/qdev.html

contents:
Building Quake from id's source
If this doesn't work for you or if you have other tips please let me (Mike Tsao) know at sowbug@sowbug.org.

December 27, 1999
If you'd like to compile Quake under Linux, here's another tutorial from Ralph Churchill. I haven't tried it myself so please e-mail questions and comments to him. Thanks, Ralph!

Also, to solve the mathlib.c freezing problem under MSVC 5.0, try compiling the QuakeWorld version of the same file. That should work ok and you can just copy the file into the WinQuake project. Also try removing lines 178 and 287 from the mathlib.c file (I haven't tried this myself so I don't know what these lines are, but I have been told this makes it work).

December 26, 1999
Several people have written me about trouble getting the source to compile and run using Visual Studio 5.0. The specific problems are:

1. Freezing during compilation of mathlib.c;

2. The QuakeWorld server freezes during runtime if compiled with the optimizations used in the VC6 project.

I don't have Visual Studio 5 so I can't reproduce these problems, but it makes sense to create your own project (.dsp) and workspace (.dsw) files and recreate the projects from scratch, because there may be a new option in VC6 that makes VC5 explode. Also make sure you have the latest Service Pack for VC 5, which you can get here.

If you know how to solve these problems, please write me and I'll post the instructions here.

December 23, 1999
If you don't have MASM, telefragged.com has a link on how to get it. Or just get it from here and find the file in the CAB file named BIN_WIN98_ML.EXE, and rename that to ml.exe. Then continue with step 1 below.

This is how to get a fully functional copy of WinQuake working if you have MASM:

1. Install MASM if you haven't already, and add the MASM611\bin path so that Visual Studio 6.0 can see it.

2. Open the WinQuake workspace and set to the debug configuration. This is important because both the release and debug configurations of WinQuake rely on the debug version of gas2masm!

3. Compile. It should work just fine.

4. Now switch to the release configuration of the WinQuake project. Compile. Done.

I am working on a version of the .s files in WinQuake that will compile under NASM, but I haven't figured out how to integrate NASM with Visual Studio 6.0. If you know how to do this, please let me know. The next step, of course, is getting it to compile under a totally free development environment, but I know lots of people are already working on that.

December 22, 1999
This is how to get a marginally functional copy of WinQuake working without MASM (but I don't think there's any reason to do this since you can get MASM for free here):

1. Download the source from ftp.cdrom.com or wherever else and unzip into some directory somewhere.

2. Open the WinQuake project from Visual Studio 6.0.

3. In quakedef.h, modify line 65 which defines id386 to be 1. You want this constant defined as 0. This is the project-wide constant that says "we are compiling for an Intel processor and we have provided hand-optimized code from Michael Abrash that must be compiled with an assembler."

4. Move all the .s files within the project to a new project folder called "Assembly files" or something like that. Then right-click that project folder, select "settings...," and check the box that says "Exclude file from build." These are all the files that you need MASM to compile, so what we're doing here is setting them aside for now but not actually removing them from the project.

5. Add nonintel.c to the project.

6. In sys_win.c, comment out lines 273 and 291, which cause the following empty functions to be included: Sys_SetFPCW(), Sys_PushFPCW_SetHigh(), Sys_PopFPCW(), MaskExceptions(). These are some of the functions that would have been implemented in the .s files that we took out.

7. In sys_win.c, add the following empty functions:

void Sys_HighFPPrecision (void)
{
}

void Sys_LowFPPrecision (void)
{
}

8. Compile. You'll get a couple warnings about functions that might not return required results, but that's ok.

9. Move the file WinQuake.exe that's now in the Release folder into some other folder on your drive, and copy the ID1 folder from your Quake 1 folder into that folder (this is just like how it already is in your Quake 1 folder). Run it. It should work. You'll see the textures wig out from time to time and draw gray instead of the right texture. Since the functions we stubbed out in steps 6 and 7 all deal with particular ways to round floating-point numbers and deal with NAN problems, I'm sure that the reason we're seeing buggy drawing code is because it relied on these functions.

Note: After running WinQuake my Windows Start button turns blue and the taskbar doubles its height. Go figure.

If you have questions e-mail Mike Tsao at sowbug@sowbug.org.

If you have a handheld device and would like to get stock quotes, sports scores, daily news, message board postings, maps, and driving directions on it for free, go to AvantGo! It works with Palms, Palm Pilots, Windows CE devices, Pocket PCs, Windows, Macintosh, Unix, and Linux! Symbian/Epoc and RIM support is coming soon.


--------------------------------------------------------------------------------
__________________
c++->visualc++->directx->opengl->c++;
(it should be realized my posts are all in a light hearted manner. And should not be taken offense to.)
Jeremy G is offline   Reply With Quote
Old 01-25-2003, 12:30 PM   #14
Banned
 
Join Date: Jan 2003
Posts: 1,708
I tried download quake off of KaZaa, it seems to run fine except for that fact that it doesn't actually do anything, it just goes to the opening screen (console) says the direct sound sampling rate, and it makes gameplay noises but it never actually goes into the game. Anyone know why?

EDIT: Just to let you guys know I got it to work and I'm fiddling with it right now. Instead of relying on MASM I did the 'marginal functional working version' directions from that website and it works fine, it hasn't even 'tweaked out' yet (the drawing) like it said it would. This is pretty neat looking at a full version of a game, I hope I can learn a lot from this.

EDIT1: actually the drawing is tweaked out, I guess it really isn't optimized afterall, but it's still fun to play and i can still mess with the source so I guess it is kind of a moot point

Last edited by Silvercord; 01-25-2003 at 04:19 PM.
Silvercord is offline   Reply With Quote
Old 01-25-2003, 10:01 PM   #15
Banned
 
frenchfry164's Avatar
 
Join Date: Oct 2001
Posts: 1,552
Did you download the game or the source? If you just got the source you'll need to plug in the resources for the game (levels, etc.)
frenchfry164 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
small reference problem DavidP C++ Programming 6 06-21-2004 07:29 PM
Tutorial review Prelude A Brief History of Cprogramming.com 11 03-22-2004 09:40 PM
i got the source code for my problem DarkViper Windows Programming 14 11-13-2002 05:55 PM
QUAKE 2 SOURCE GPL'ED!!!(eg. ITS FREE AND OPEN!!) no-one A Brief History of Cprogramming.com 8 12-23-2001 11:33 PM


All times are GMT -6. The time now is 10:34 AM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0 RC2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22