Jump to content
This Topic

Softdisk-era id games open sourced


Recommended Posts

YEAH!!!
Finally someone can make a source port for these games, which is a good thing because it removes the need to use DosBox.
And not only that, it could be possible to make mods for them.

Share this post


Link to post

Awesome. I can't wait to play around with this when I finish my Summer semester.

Kind of makes me wonder how much of it is written in C and how much is assembly code.

Share this post


Link to post
  Stygian said:

Awesome. I can't wait to play around with this when I finish my Summer semester.

Kind of makes me wonder how much of it is written in C and how much is assembly code.

Expand  

Progressively less ASM as the games get older, though none of them are entirely without.

Share this post


Link to post

Interesting. I would've predicted the reverse.

Expand  

Hand-tuned ASM used to be faster (usually, not always) than compiler-produced code. Still is in some cases, but the difference is now much more negligible.

Catacomb was written in Turbo Pascal.

Share this post


Link to post
  yukib1t said:

Hand-tuned ASM used to be faster (usually, not always) than compiler-produced code. Still is in some cases, but the difference is now much more negligible.

Catacomb was written in Turbo Pascal.

Expand  

In this case I think the relative non-maintainability of ASM was a big factor, particularly as the latter Catacomb 3D sequels weren't programmed by Carmack but by other people who had to build on top of his code without his advice to run on.

A lot of the ASM that is in there was compiled from C code (which is at least in some cases also included) and then hand-tuned. You can tell as the lines of corresponding C code are interspersed with the assembly in those files, helping to serve as some documentation (should make porting off 16-bit x86 easier too for people who aren't real mode wizards).

Share this post


Link to post

Anyone tried compiling these sources? I cant find a copy of Borland 3.1, or is it 2.0, to compile them with, much less a copy of turbo pascal.

Share this post


Link to post

Anyone tried compiling these sources? I cant find a copy of Borland 3.1, or is it 2.0, to compile them with, much less a copy of turbo pascal.

Expand  

For the Pascal you'd probably have to try to port it to a different more modern Pascal compiler, as I don't think Turbo Pascal was released freely later on like Turbo C/C++ was. Either that or port it to C, which is fairly straight forward - aside from a couple of gotchas, Pascal has more or less the same semantics as C with a different syntax.

Share this post


Link to post
  Quasar said:

For the Pascal you'd probably have to try to port it to a different more modern Pascal compiler, as I don't think Turbo Pascal was released freely later on like Turbo C/C++ was. Either that or port it to C, which is fairly straight forward - aside from a couple of gotchas, Pascal has more or less the same semantics as C with a different syntax.

Expand  


Thing is, im not a programmer, it'd be the first time i port pascal to c syntax. :D Was turbo c/c++ released freely? Is there a url to it?

Share this post


Link to post

Note that if you're looking to port the Pascal to C, just use second game's code base. It's pretty close to a straight Pascal->C source. I think OLDCAT.C is a backup from after the straight port was done.

  Quasar said:

I don't think Turbo Pascal was released freely later on like Turbo C/C++ was.

Expand  

Turbo Pascal 5.5 has been. Doesn't look like the later versions were though.

Share this post


Link to post

Ok, I was able to find a copy of Borland 3.x, and I compiled Hovertank, and it compiles and runs, but when I compiled Catacomb 3d, it compiles, but when executing the program it gives this error:

MM_Getptr: Out of memory!

Share this post


Link to post

but when I compiled Catacomb 3d, it compiles, but when executing the program it gives this error:

Expand  

Probably your data files not being the correct version to match the source release. I can confirm that the source works just fine with the id Anthology data.

  Rohit_N said:

Any way of compiling Catacomb 3D without the supplied OBJ files in the source?

Expand  

Yes, but it wouldn't be of much use. The OBJ files provided are the headers for the game data and the intro screen (which tells you about your hardware). You could extract the C3D files out of the headers and remove the intro screen. To do the former you need to change a define so that it reads the external file instead of the linked data. (Look for where it reads the EGAHEAD.) Not entirely sure what good it would do you though.

Share this post


Link to post

Does the open sourcing include the Catacomb Fantasy Trilogy or just the original Catacomb 3D?

Share this post


Link to post

We need source ports!

Expand  

I wouldn't hold your breath. It could be years before people figure this stuff out enough to port it anywhere, let alone start modifying it. The amount of interest is also low. These were never "big" games like Wolf3D or Doom. Most people barely remember them if they know about them at all.

Share this post


Link to post
  Quasar said:

I wouldn't hold your breath. It could be years before people figure this stuff out enough to port it anywhere, let alone start modifying it. The amount of interest is also low. These were never "big" games like Wolf3D or Doom. Most people barely remember them if they know about them at all.

Expand  


Then I'll start figuring it out myself! Well, at least this source release will at least put these games on people's attentions. Would you say these codebases are simpler to understand than wolf3d/doom's to the complete beginner? Any tips on how/where to start learning?

Share this post


Link to post

Then I'll start figuring it out myself! Well, at least this source release will at least put these games on people's attentions. Would you say these codebases are simpler to understand than wolf3d/doom's to the complete beginner? Any tips on how/where to start learning?

Expand  

Absolutely not, because they are mired very deeply in 16-bit real mode architecture with x86 assembly both inline and out, and use highly tuned approaches that only work under DOS on the bare metal.

This is not a "my first program" job, for sure, unless you just finished cutting your teeth on Abrash's Black Book and consider Dr. Dobbs to be bathroom reading material.

Share this post


Link to post
  Quasar said:

These were never "big" games like Wolf3D or Doom.

Expand  


I'd say Doom or Quake instead of Wolf3D or Doom. As far as the source port scene goes at least. Plenty of choices with Doom or Quake, but the Wolf3D port scene is mostly vanilla or Wolf4SDL with some copy-pasted code to make custom executables for a particular mod, and that's all.


Good thing there's ECWolf. (Which actually may end up being our best hope for a port of Hovertank 3D and the Catacomb games.)

Share this post


Link to post
  Quasar said:

Absolutely not, because they are mired very deeply in 16-bit real mode architecture with x86 assembly both inline and out, and use highly tuned approaches that only work under DOS on the bare metal.

This is not a "my first program" job, for sure, unless you just finished cutting your teeth on Abrash's Black Book and consider Dr. Dobbs to be bathroom reading material.

Expand  


ok, what about the first pascal Catacomb game?

Share this post


Link to post
  Gez said:

I'd say Doom or Quake instead of Wolf3D or Doom. As far as the source port scene goes at least. Plenty of choices with Doom or Quake, but the Wolf3D port scene is mostly vanilla or Wolf4SDL with some copy-pasted code to make custom executables for a particular mod, and that's all.


Good thing there's ECWolf. (Which actually may end up being our best hope for a port of Hovertank 3D and the Catacomb games.)

Expand  


Yes, ECWolf is probably the only port that support wolf3d engine and the like era games these days.

Share this post


Link to post
  • 4 weeks later...

Im trying to figure out the source code for Catacomb II , known too as The Catacomb, since it looks like the simplest codebase for begginers. The code mentions a level editor. Could any coder here please point out if there´s a functioning level editor in the codebase ?

Share this post


Link to post
  • 2 weeks later...

Something funny i found from the Hovertank 3D code:

NOTICE TO ANYONE READING THIS:

This is the last gasp of our old routines! Everything is being rewritten
from scratch to work with new graphic modes and utilities. This code
stinks!

Share this post


Link to post
×
×
  • Create New...