ModId - Modkeen for all the 16-bit Id games!

Here is where to post about the latest Commander Keen fangame or modification you've finished, a new website you've made, or another Keen-related creation.
NY00123
Vorticon Elite
Posts: 442
Joined: Sun Sep 06, 2009 19:36

Post by NY00123 » Wed Mar 16, 2016 21:30

OK, I have these definitions for Cat3D v1.22 from refkeen, so you may compare. Each struct has the filename, filesize and crc32.

I think that the files you want to verify that you got as described here are EGAGRAPH.C3D and CAT3D.EXE.

Code: Select all

/*** v1.22 ***/
static const BE_GameFileDetails_T g_be_reqgameverfiles_cat3d122[] = {
	{"AUDIO.C3D", 5062, 0x074f7525},
	{"EGAGRAPH.C3D", 256899, 0xbc122f40},
	{"GAMEMAPS.C3D", 14288, 0x1ecb107b},
	{"CAT3D.EXE", 78285, 0xfaa27410},
	{0}
};

static const BE_EmbeddedGameFileDetails_T g_be_embeddedgameverfiles_cat3d122[] = {
	{"AUDIODCT.C3D", 1024, 0xd3dbe849, 0x241d8},
	{"AUDIOHHD.C3D", 368, 0xb83933bc, 0x1bd10},
	{"EGADICT.C3D", 1024, 0xb26a70a6, 0x245d8},
	{"EGAHEAD.C3D", 1437, 0x3fde00c4, 0x1be80},
	// INTROSCN.SCN isn't displayed in vanilla v1.22, but it's still 
	// allocated and in use, so it's safer to require this chunk
	{"INTROSCN.SCN", 4008, 0xcf9696af, 0x1a570},
	{"MTEMP.TMP", 618, 0x6b7cc556, 0x1c420},
	{0}
};

User avatar
szemi
Vorticon Elite
Posts: 1581
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Post by szemi » Wed Mar 16, 2016 21:31

Cool. Where can I find these definitions? In which file?


Now other question.

Is it okay if use Borland 2.0? Or 3.1? Or nevermind?


EDIT:

After importing the graphics in the original game (as a test), egadict.c3d doesn't even appear, only egahead.c3d.
Yeah, piece of cake!

User avatar
furan
Meep
Posts: 2
Joined: Tue Jul 29, 2014 3:34

Post by furan » Thu Mar 17, 2016 5:06

Levellass wrote:Sadly no. But it could edit a VGA Keen if you had one!
Yeah, I guess it could. I mean, if you had one. 8)

NY00123
Vorticon Elite
Posts: 442
Joined: Sun Sep 06, 2009 19:36

Post by NY00123 » Thu Mar 17, 2016 21:08

szemi wrote:Cool. Where can I find these definitions? In which file?
ok, it's true that all I've really meant is that you'll check if you have the correct CAT3D.EXE and EGAGRAPH.C3D files, and possibly also EGAHEAD.C3D and EGADICT.C3D if you extract these for any reason (e.g., from the previously mentioned OBJ files).

To answer your questions, I can link to the rest of the definitions, but I think that I have a couple of reasons to not do so right now:
- First of all, while checking these definitions, I've spotted a little bit of a possible mistake (regarding another 3-D Catacomb game): The EGAHEAD's size is a bit larger than expected in the relevant definition. There may be a good reason why this happened, but that's enough for me to not give a link at the moment.
- It may also be a good idea to pick a specific version for modding as a "standard". Since Catacomb 3-D v1.22 is the latest, is available from GOG.com and the sources are further for this version, I believe this is a good choice.

Thus, all that you should do in terms of game data, is making sure you have v1.22 (of EGAGRAPH.C3D + CAT3D.EXE), possibly using the table I've posted for assistance.
Now other question.

Is it okay if use Borland 2.0? Or 3.1? Or nevermind?
I think I've already answered this in a previous post? Both should work, but it's probably better to pick one version and stay with it. You may have to manually clean up files generated by Borland C++ when you change between versions.
EDIT:

After importing the graphics in the original game (as a test), egadict.c3d doesn't even appear, only egahead.c3d.
Hmm, I think that I've been a bit wrong this time. You see, the egadict.c3d, which tells how to compress the data, remains the same upon importing. So ModId expects to find the unpacked cat3d.exe, then use its internal copy of egadict.c3d, and finally generate new files like egagraph.c3d. It won't extract egadict.c3d from cat3d.exe because, well, this wouldn't be required if modding was done with a "C3DPATCH"-style tool.

So to conclude, you probably want to extract egadict.c3d from c3dedict.obj.

Side-note: If cat3d.exe is not found while importing graphics, but egadict.c3d is, then this file is used for compression (with no change to it).

User avatar
szemi
Vorticon Elite
Posts: 1581
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Post by szemi » Thu Mar 17, 2016 21:41

Hmm, alright, I'll try everything.
Yeah, piece of cake!

User avatar
MoffD
Vorticon Elite
Posts: 1167
Joined: Thu Jul 05, 2012 17:30
Location: /dev/null
Contact:

Post by MoffD » Sat Mar 19, 2016 17:27

furan wrote:
Levellass wrote:Sadly no. But it could edit a VGA Keen if you had one!
Yeah, I guess it could. I mean, if you had one. 8)
Oh hi.
mortimermcmirestinks wrote: Now I wish MoffD wasn't allergic to me.
Levellass wrote:You're an evil man.
Image

NY00123
Vorticon Elite
Posts: 442
Joined: Sun Sep 06, 2009 19:36

Post by NY00123 » Sat Apr 09, 2016 12:05

OK, I know this somewhat off-topic, but it may still be relevant (at least for *really* few individuals, and that's a maybe).

Although I've added CGAGRAPH support to ModId, I've mainly had source modding in my mind. The various versions of CKPATCH scattered around wouldn't let you patch original CGA Keen executables.

This is not the case anymore, as of today!

Another unofficial update to CKPATCH is available now, covering original CGA releases of Keen 4-6 (and also KDreams as a little bonus). There are also a few unrelated changes/additions, but not a lot. For more details and a download link, see at K:M here: http://keenmodding.org/viewtopic.php?t= ... c&start=15

NY00123
Vorticon Elite
Posts: 442
Joined: Sun Sep 06, 2009 19:36

Re: ModId - Modkeen for all the 16-bit Id games!

Post by NY00123 » Sat Jun 10, 2017 14:16

I've just published another release of ModId with a few changes. There isn't a lot of features added, but there's a warning below that someone might want to check out.

The last release may currently be found here: https://github.com/owenmpierce/modId/releases

FOR ANYBODY WHO IMPORTED VGA MASKED 16x16 TILES, PLEASE READ THIS:
So, it turned out that an old Wolfenstein 3D alpha version (from March), leaked long ago, has 16x16 tiles in its VGAGRAPH.WL1 file.
However, the format that ModId expected for VGA masked 16x16 tiles differed. I don't think ModId was really used for importing VGA 16x16 tiles, except for one case of what might be an abandoned game/mod.

Personally, I thought it's more important to be consistent with the tiles formats as originally used in early Wolfenstein 3D revisions. And so, ModId is now compatible with all 16x16 tiles from the Wolfenstein 3D alpha. (In fact, no change was required for the non-masked tiles, just the masked ones).

It does mean, though, that if any of you used ModId for importing VGA masked 16x16 tiles, changes will be required. In particular:
- You'll need to add a separate mask for the tiles. The -16color option has no effect on VGA tiles, and the masks are always separated from the color data.
- You'll probably also need to re-import the VGAGRAPH data, and possibly also modify any relevant game code for handling/drawing the tiles.
- Unfortunately, exporting 16x16 masked tiles from an older VGAGRAPH file may be a problem, unless you use an older version of ModId.
- I'm really sorry for doing this, but I thought it's more important to track the original formats (as once used in Wolf3D).
- Finally, you can still use an older version of ModId if it's really a problem.

A few more changes:
* def and palette files updates.
* VGA fonts are now exported as 8-bpp bmps (S3DNA fix).
* Added -optimizedcomp.
* Masked 16x16 tile no. 0 is now imported as-is, rather than being replaced
with a sparse tile. This was done so the Wolfenstein 3D alpha's graphics
can be exported and then imported back as-is.

Post Reply