Keen 1 early December version origin

Here, you can get help with anything or just chat about the original Commander Keen games.
Post Reply
Litude
Vortininja
Posts: 56
Joined: Tue Nov 13, 2007 20:57
Location: Finland

Keen 1 early December version origin

Post by Litude »

Ever since finding the early Keen 1 December version in 2007, I have been wondering about the origin of this version. The original place I found it was just some random download link which did not give much away as to how that version was released. Is it a beta version that was somehow inadvertently leaked, or is it the reason the most common early distribution of Keen 1 is identified as version 1.1 and this was the mysterious version 1.0?

One possibility is that perhaps it was actually distributed as part of a bonus disk. Discmaster also seems to collaborate this; there is a single match for that version available here which seems like it originated from a bonus disk but the document has been modified and the self-extracting ZIP file has been rezipped into a regular zip file. Both modifications made it difficult to be 100% sure that was the case, perhaps someone had just dropped the bonus disk readme from some other floppy into that zip file?

Well, I recently came across this disk.
Image

Except for knowing that it was very old, I had no idea what would be on this very disk. I was expecting it to perhaps include the shareware version of Kroz, Pharaoh's Tomb or some other very early Apogee game. And I was prepared that it be difficult to read since the label looked kind of rough and in my experience such disks have also often suffered some sort of data corruption.

However, it turns out it was an Apogee bonus disk from early December 1990! And it was perfectly readable. And includes this early December version of Keen 1! :O (among shareware versions of many other Apogee games) I can't believe that there ever were many such disks out there; Apogee was a pretty small player at this point. The fact that one has survived perfectly intact to this day and I managed to dump it without a single read error is nothing short of a miracle.

The disk label suggests that the disk was mastered on December 7th, 1990. All file modify dates are set to November 10th, 1990 which obviously makes no sense but messing with file modify dates was common Apogee practice (sigh), sometimes setting them to some nice round date in the future and sometimes to the past... December 7th, 1990 is thus probably when this disk was mailed to customers.

So it seems that the Keen 1 early December version was a perfectly legitimate release that was at least includes as part of a bonus disk sent to Apogee customers. Thus it is probably safe to say that this is indeed Keen 1 Version 1.0 and not a leaked beta version.

Download Floppy Image (IMA and Greaseweazle RAW dump):
https://mega.nz/file/5w0XlbJZ#y0wLWPAmo ... yvFe0vwElg

Download Scans:
https://mega.nz/file/418SgCiC#ywVXTibNk ... yxm9WY1F0U
User avatar
Roobar
Vorticon Elite
Posts: 3367
Joined: Tue Jan 08, 2008 16:12
Contact:

Re: Keen 1 early December version origin

Post by Roobar »

Wow! What a find! If this is indeed the v1.0 version, then we need to update keenwiki!
User avatar
Multimania
Vortininja
Posts: 87
Joined: Sat Nov 10, 2007 8:10
Location: Hiding in a small, cramped corner of the BwB megarocket.
Contact:

Re: Keen 1 early December version origin

Post by Multimania »

This is v1.0.

You can tell the version number from the file timestamps. They're always set to (version-number) PM on the 1st Jan 1991.
So, for this version, it's 1:00 PM (13:00) for v1.0:

Code: Select all

43622  Stored    43622   0% 1991-01-01 13:00 f0cc0fee  KEEN1.EXE
For v1.1, it's 1:10 PM (13:10):

Code: Select all

51226  Defl:N    46745   9% 1991-01-01 13:10 d30e6c3a  KEEN1.EXE
For v1.31, it's 1:31 PM (13:31):

Code: Select all

51190  Defl:N    46736   9% 1991-01-01 13:31 14c4ff5f  KEEN1.EXE
Litude
Vortininja
Posts: 56
Joined: Tue Nov 13, 2007 20:57
Location: Finland

Re: Keen 1 early December version origin

Post by Litude »

Multimania wrote: Wed May 29, 2024 6:43 You can tell the version number from the file timestamps. They're always set to (version-number) PM on the 1st Jan 1991.
This logic does not hold for files as old as this. Apogee started this practice only in 1992 with Wolfenstein 3D. Until that point, file modify times were pretty much always set to 1:00 PM. This very floppy is also proof of that: It includes Pharaoh's Tomb v2.9 but the file modify dates are set to 1:00 PM.

Original releases of Keen v1.1 carry modify times of 1:00 PM and so does v1.3. Later rereleases of v1.31 carry modify times of 1:31 PM but the original releases do not. A Keen v1.1 with a modify date of 1:10 PM sounds strange and has probably been tampered with. The earliest Keen 1 release I have that follows the modify time version pattern is from 1993; even releases from 1992 have the modify dates set to 1:00 PM.

These are probably the original releases of the game:
Version 1.1: 1keen.zip
Version 1.3: 1keenv2.zip (Not 100% original, must be a repack of the original files since the ZIP file version is 20 but the files are original. I have a 1keenv2.zip with ZIP version 10 and identical files on my hard drive but can't remember where I found it)
Version 1.31: 1keenv3.zip
User avatar
Roobar
Vorticon Elite
Posts: 3367
Joined: Tue Jan 08, 2008 16:12
Contact:

Re: Keen 1 early December version origin

Post by Roobar »

How to extract the content? Does it contain the other games from that floppy?
User avatar
szemi
Vorticon Elite
Posts: 1771
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Re: Keen 1 early December version origin

Post by szemi »

Roobar wrote: Wed May 29, 2024 17:33 How to extract the content? Does it contain the other games from that floppy?
Use MagicISO. I used that to extract the contents. :D
Yeah, piece of cake!
User avatar
lestagio
Vortininja
Posts: 72
Joined: Sun Apr 07, 2024 22:07

Re: Keen 1 early December version origin

Post by lestagio »

Wow!!! That's an awesome find!

I love seeing this stuff. I like seeing all of the files and games that were on the disk! That''s very awesome to come across! From what I can tell, this seems like a legit release. If this is version 1.0, does anyone know the differences between this and version 1.1?

By the way, the file can also be extracted with 7-zip.
"Inconceivable!"
nwe74
Grunt
Posts: 13
Joined: Sun Sep 18, 2022 18:29

Re: Keen 1 early December version origin

Post by nwe74 »

First, thank you for sharing this.

An interesting difference between the attached version and 1.1 is that the screenshot feature works as intended in 1.0. When pressing F8, the contents of EGA video memory will be saved as a file named KEENSCRN.PIC. (Code changes between versions 1.0 and 1.1 broke this feature and it was subsequently disabled in later versions.)

The attached version also helped me to understand why this no longer works after version 1.0. Keen 1 1.0 uses a buffer for storing the compressed level data read from the LEVELXX.CK1 file which is separate from the memory area where the decompressed level is stored. This behavior was changed by the developers for the 1.1 version for some reason not yet clear to me. Maybe for reducing memory usage, due to the increase in the size of the executable? (But see my other comment below.) (In contrast, in Keen 1 1.31, the compressed level data is read into the same segment as the "final" location of the data, at offset 0xffff minus the size of the file.) The screenshot function was implemented in a way that it reuses this "temporary" (only in 1.0) buffer for temporarily storing the data copied from the EGA video memory. As a consequence, the screenshot code works in 1.0 but leads to the corruption of the level data stored in the memory in 1.1.

The attached version also uses an adaptive tile refresh implementation that differs considerably from what is found in the later versions. In Keen 1 1.1 and later (I did not check 1.34) the tile refresh code is located in a separate code segment which contains two very long unrolled loops (for the two "pages" in the video memory). This is absent from the attached 1.0 version, it uses a much shorter but probably slower implementation instead. The increase in the executable size (~14 kB) due to the much larger optimized code in 1.1 and later versions may or may not have been the reason for the re-implementation of the level loading code for reducing memory usage.

(I have already suspected that an older implementation of adaptive tile refresh may have existed. For example, Keen 1 1.31 contains an array at offset 0x35c0 in the data segment which I thought it could be related to tile refresh but it is not used in the code at all. Version 1.0 has an equivalent of this array and it is indeed used for this purpose. Before I have checked the attached version it was not clear to me whether the implementation was changed before or after the release the game. So again, thank you for sharing this, it was really informative for me.)

The level files as well as EGAHEAD, EGALATCH, ENDTEXT, FINALE, SOUNDS and STORYTXT appear to be identical in 1.0 and 1.31. EGASPRIT, HELPTEXT and the PREVIEW* files are different. (I have only checked the hash values of the files.)
NY00123
Vorticon Elite
Posts: 545
Joined: Sun Sep 06, 2009 19:36

Re: Keen 1 early December version origin

Post by NY00123 »

That's another surprise to see after all of these years! The game data might not be as new to us at this point, but to gain access to an obscure floppy disk of this kind is generally not expected.

Interestingly, it looks like it was 14 years + 5 days earlier when the exact same PCKF member posted about a Keen 1 beta version here: https://pckf.com/viewtopic.php?t=1211
Litude
Vortininja
Posts: 56
Joined: Tue Nov 13, 2007 20:57
Location: Finland

Re: Keen 1 early December version origin

Post by Litude »

nwe74 wrote: Sun Jun 02, 2024 21:51 An interesting difference between the attached version and 1.1 is that the screenshot feature works as intended in 1.0. When pressing F8, the contents of EGA video memory will be saved as a file named KEENSCRN.PIC. (Code changes between versions 1.0 and 1.1 broke this feature and it was subsequently disabled in later versions.)
Wow, that's really interesting. Thank you for sharing your discoveries!
nwe74 wrote: Sun Jun 02, 2024 21:51The level files as well as EGAHEAD, EGALATCH, ENDTEXT, FINALE, SOUNDS and STORYTXT appear to be identical in 1.0 and 1.31. EGASPRIT, HELPTEXT and the PREVIEW* files are different. (I have only checked the hash values of the files.)
I think the differences in those files are already covered in the Keen wiki (e.g. earlier preview images and smaller text changes).
NY00123 wrote: Fri Jun 14, 2024 15:22Interestingly, it looks like it was 14 years + 5 days earlier when the exact same PCKF member posted about a Keen 1 beta version here: https://pckf.com/viewtopic.php?t=1211
Quite the coincidence. Can't believe it's been 14 years?! :D Still remember digging through that floppy image in a hex editor like it was yesterday.

Interestingly it seems even the original PCKF and the thread where I initially shared this same build is still online here. I originally found it on eMule, so that certainly left me curious as to whether it was legit and what its origins where.
Calvero
Vortininja
Posts: 100
Joined: Tue Jan 29, 2008 15:31

Re: Keen 1 early December version origin

Post by Calvero »

Litude wrote: Sat Jun 15, 2024 10:06
NY00123 wrote: Fri Jun 14, 2024 15:22Interestingly, it looks like it was 14 years + 5 days earlier when the exact same PCKF member posted about a Keen 1 beta version here: https://pckf.com/viewtopic.php?t=1211
Quite the coincidence. Can't believe it's been 14 years?! :D Still remember digging through that floppy image in a hex editor like it was yesterday.
And I'm still kicking myself for not discovering the beta files. :helmet :)
I was so close when I thought of using a hex editor to look inside the disk image and finding some bits of the Keen 1 source code. The thought of the image containing recoverable deleted files didn't occur to me.
Litude
Vortininja
Posts: 56
Joined: Tue Nov 13, 2007 20:57
Location: Finland

Re: Keen 1 early December version origin

Post by Litude »

Calvero wrote: Mon Jun 17, 2024 19:49And I'm still kicking myself for not discovering the beta files. :helmet :)
I was so close when I thought of using a hex editor to look inside the disk image and finding some bits of the Keen 1 source code. The thought of the image containing recoverable deleted files didn't occur to me.
If you had never noticed those defines and posted about them, I would certainly not have given that disk image a deeper look. Perhaps that beta version would have still remained undiscovered.
User avatar
DoomJedi
Vorticon Elite
Posts: 931
Joined: Mon Dec 14, 2009 11:22
Location: Israel
Contact:

Re: Keen 1 early December version origin

Post by DoomJedi »

Wow, this is a VERY cool discovery.
Keen archeology at its best.
User avatar
Mobiethian
Vortininja
Posts: 294
Joined: Sat Jul 25, 2009 17:36
Location: Pennsylvania, USA

Re: Keen 1 early December version origin

Post by Mobiethian »

DoomJedi wrote: Sat Jun 29, 2024 20:25 Wow, this is a VERY cool discovery.
Keen archeology at its best.
Agreed! So at this point, I am wondering if it's actually worth a lot of money. An eBay auction of this same exact disk would explode, most likely. Just my random thought. Wow, love this! Litude, hang onto that thing! ;)
Post Reply