Posted: Mon Dec 01, 2014 7:47
So we have the format for those hanging around somewhere?
This is neat.
Clearly reading some code, or even (say) porting it from one platform to a (possibly vastly) different platform is one thing, but understanding more about the code itself is different...Levellass wrote:So we have the format for those hanging around somewhere?
That's just the LBM Format, isn't it?NY00123 wrote:It begins with 4 bytes of the "FORM" string, followed by a 4-bytes length value in big-endian order, followed by 4 bytes of "ILBM". For probably-technical reasons this length value is then increased by 4. Assuming we're talking about the file SHP05.ABS from The Catacomb Abyss v1.13, we get to a mention of "BMHD", followed by a 4-bytes chunkLen value in big-endian order. A BitMapHeader struct is then read, with the 16-bit x,y,w,h fields being stored in big-endian order within the file. At this point, let's call (ChunkLen+1) & 0xFFFFFFFE the "corrected" ChunkLen. Then, for any arbitrary reason, "corrected" ChunkLen + 8 bytes are skipped from the beginning of the aforementioned "BMHD" string, and the scanning of decompressed data continues.
It then looks like 56 bytes of an unused chunk follow (4 bytes of length in 32BIT BE format, followed by 48 bytes beginning with "CMAP"). This is repeated with "GRAB" and some "CRNG" chunks, then a "TINY" chunk. Finally the "BODY" chunk appears. Following the "BODY" string is again a 32BE (big endian 32-bits long) 'size' field, representing data to read from the file. Here SHP->BPR is calculated from SHP->bmHdr.w for some reason, and then 'size' bytes are read into a newly allocated buffer to be pointed by SHP->Data. The loop ends once a "BODY" chunk is found.
I remember playing these games 10 years ago and really liking them. It's cool to see community support for these. When I think of 2.5D FPS games, this is actually the one that comes to mind. I never actually played a lot of Wolfenstein 3D or Doom.NY00123 wrote:UPDATE (Mar 13 2015): It's a little bit overdue, but finally there is a title for the whole codebase now, not just specific source ports. It shouldn't be a surprise, but this name is Reflection Keen. This comes from a release which, along with some other modifications, has experimental "modern" support for game controllers (with the layout of the Xbox 360 controller or similar).
UPDATE (Dec 20 2014): Support for the whole Catacomb Adventure Series is now in. This release should be compatible with the 3D Catacomb titles currently available from GOG.com, or to be more specific: Catacomb 3-D: The Descent v1.22, The Catacomb Abyss v1.24, The Catacomb Armageddon v1.02 and The Catacomb Apocalypse v1.01.
Please note that Armageddon/Apocalypse saved games are generally incompatible with the DOS executables. For more details you can check out the README file, although admittedly a few details are a bit technical, but there's a workaround that may partially work.
UPDATE (Nov 30 2014): Support for Catacomb 3-D (The Descent) has been added. It has taken much less time to add this than Abyss, given that Abyss is close to a direct derivative of 3-D with some added "Gamer's Edge" specific code. As expected, this port is called "Ref Catacomb 3-D".
UPDATE (Oct 25 2014): Support for Catacomb Abyss has been added. One main reason is that both Keen Dreams and Catacomb Abyss share a lot of common code.
Yes, absolutely. It was made from the in-house Apogee 3-D engine, which was a ray-casting 2.5-D engine. I read about this a few weeks ago, it's pretty interesting.Nospike wrote:Wouldn't Duke 3D also count as a 2.5D shooter? The map is pretty detailed 3D but all the actors, items and things to interact with are 2D sprites...