nukeykt / PCDoom-v2

Doom port for DOS
GNU General Public License v2.0
43 stars 10 forks source link

Unable to build #18

Closed fabiensanglard closed 7 years ago

fabiensanglard commented 7 years ago

i tried to build with DosBox, OpenWatcom and TASM5. I get a linking error message:

"Name must come first"

screen shot 2017-10-26 at 12 08 37 am

I suspect I don't have the right compiler/assembler. What version are needed?

nukeykt commented 7 years ago

Newer versions of TASM seems to be incompatible. I've used TASM v3.1 and open watcom v1.9

fabiensanglard commented 7 years ago

I tried to compile with TASM 3.1 but it doesn't work: (source file open error on /mx):

screen shot 2017-10-28 at 1 29 40 pm

Building with TASM 1.0 works but the games freeze when starting 3D sequence:

screen shot 2017-10-28 at 1 28 12 pm

Are you sure OWatcom 1/9/TASM 3.1 should work?

AXDOOMER commented 7 years ago

DOS tools are a bit finicky. If the assembly is not important for you, you may replace the planar.asm rendering code and division code from _i_ibma.asm with the C version from Chocolate-Doom. There is no C replacement for the DOS joystick input reading code though. That's what I did in my fork to save me some trouble, but the game will run ~20% slower.

I'm looking forward to read your next book!

nukeykt commented 7 years ago

I think it is a different assembler. AFAIR, i copied tasm.exe from Borland C++ 3.1 installation.

fabiensanglard commented 7 years ago

@AXDOOMER Thanks :) ! The ASM is important to be, I want to measure how much it improved performances to provide accurate metrics in the book :) !

@nukeykt YES ! TASM from Borland 3.1 DID IT :) ! It runs. Thank you so much for your help !

AXDOOMER commented 7 years ago

Interesting. I have Borland C++ 3.1 and it gave me the same result as Fabien posted in his first screenshot. It shows that it's version 4.1 of TASM, not TASM 5.

I found all of this confusing, so I tried to compile PCDoom-v2 with the compiled assembly successfully for the first time.

Screenshot that shows it didn't work with TASM from Borland C++ 3.1: screenshot at 2017-10-28 21-10-52

Proof that it's indeed Borland C++ 3.1:screenshot at 2017-10-28 21-28-14

Solution

So instead I ran TASM from Borland C++ 2.0, which is version 2.51 and this time it worked!