00-10-21 latest release ...a port of ID's glQuake code to the lcc-win32 compiler with bug-fixes and improvements from many Quake source projects. |
| web site host
| player download qbexe-00-10-21.zip -executable -mod directory coder download qbism-00-10-21.zip -source + project -assembly library -executable -mod directory
porting notes Let me know what you'd like to see in more detail. Project directory structure The directory structure of the project is modified from the original source release to be more lcc-win32-friendly: qbism: c sources for glQuake. -doc: Docs about this port. --origdoc: The gnu licence and other source docs. -gas2masm: A separate lcc project for gas2masm. --lcc: Release directory for gas2masm. Contains gas2masm.exe. -lcc: Release directory for glQuake. Contains the glquake.exe. -lib: Libraries. See library notes below. Contains opengl32.lib and quakeasm.lib -libsrc: Library source. Libraries The opengl32.lib (import library) that comes with lcc does not contain all the imports required by glQuake. The missing ones were pasted from the opengl.exp file as necessary and a new opengl32.lib was built. Note that this does not include all missing openGL imports, so additional imports may be needed if more opengl features are added. I put assembly into a static library for convenience. If you wish to rebuild or modify this library yourself you will need to install MASM. Steps to create the assembly library: Create preprocessor output file: lcc -EP -DGLQUAKE math.s This will write a file called math.i. Remove extra spaces in math.i and rename to math.spp. gas2masm is expecting a preprocessor output file in the format Visual C++ uses. lcc's preprocessor output is slightly different because it creates additional spaces at some points in the text. There may be some other differences as well, but only the additiona spaces seem to be a problem. These additional spaces must be found and deleted. To find them, run gas2masm <math.i >math.asm and it will give some sort of error and a line number. Go to the line number and you will find the spaces. If the spaces don't stand out from spaces that should be there, you can compare the line to a similar line in an .spp file I've already corrected (search these files w/ grep), compare the line to a similar line in an .spp file output from VC++, or use good old trial and error. Repeat the process until gas2masm converts the file successfully. Search and replace may come in handy. Yes, what a pain! Once you get the .i file to convert to asm, (Hooray!) you can rename it to .spp if you wish. I did it for convention and to keep from accidentally deleting it. Running masm on it outputs the .obj: ml /c /Cp /coff /Zm /Zi math.asm Make a static library: lcclib quakeasm.lib *.obj | index news info screenshots links tutorials porting notes c-s prediction draw net data old news 00-01 to 00-03 00-04 to 00-05 contact email To get email notification of qbism updates, bugs, and fixes, put ADD LIST in the subject. web site qbism.telefragged.com