diff --git a/bios/Id Software/Commander Keen/K6DEMO/audio.ck6 b/bios/Id Software/Commander Keen/K6DEMO/audio.ck6 new file mode 100644 index 00000000..4370749e Binary files /dev/null and b/bios/Id Software/Commander Keen/K6DEMO/audio.ck6 differ diff --git a/bios/Id Software/Commander Keen/K6DEMO/egagraph.ck6 b/bios/Id Software/Commander Keen/K6DEMO/egagraph.ck6 new file mode 100644 index 00000000..cb7f603b Binary files /dev/null and b/bios/Id Software/Commander Keen/K6DEMO/egagraph.ck6 differ diff --git a/bios/Id Software/Commander Keen/K6DEMO/gamemaps.ck6 b/bios/Id Software/Commander Keen/K6DEMO/gamemaps.ck6 new file mode 100644 index 00000000..fb8a3d2e Binary files /dev/null and b/bios/Id Software/Commander Keen/K6DEMO/gamemaps.ck6 differ diff --git a/bios/Id Software/Commander Keen/K6DEMO/k6demo.exe b/bios/Id Software/Commander Keen/K6DEMO/k6demo.exe new file mode 100644 index 00000000..e5655838 Binary files /dev/null and b/bios/Id Software/Commander Keen/K6DEMO/k6demo.exe differ diff --git a/bios/Id Software/Commander Keen/KDREAMS.AUD b/bios/Id Software/Commander Keen/KDREAMS.AUD new file mode 100644 index 00000000..9f2cda8a Binary files /dev/null and b/bios/Id Software/Commander Keen/KDREAMS.AUD differ diff --git a/bios/Id Software/Commander Keen/KDREAMS.CMP b/bios/Id Software/Commander Keen/KDREAMS.CMP new file mode 100644 index 00000000..1bbde7bf Binary files /dev/null and b/bios/Id Software/Commander Keen/KDREAMS.CMP differ diff --git a/bios/Id Software/Commander Keen/KDREAMS.EGA b/bios/Id Software/Commander Keen/KDREAMS.EGA new file mode 100644 index 00000000..d19a9c5e Binary files /dev/null and b/bios/Id Software/Commander Keen/KDREAMS.EGA differ diff --git a/bios/Id Software/Commander Keen/KDREAMS.EXE b/bios/Id Software/Commander Keen/KDREAMS.EXE new file mode 100644 index 00000000..427deaf9 Binary files /dev/null and b/bios/Id Software/Commander Keen/KDREAMS.EXE differ diff --git a/bios/Id Software/Commander Keen/KDREAMS.MAP b/bios/Id Software/Commander Keen/KDREAMS.MAP new file mode 100644 index 00000000..2ddd2ec9 Binary files /dev/null and b/bios/Id Software/Commander Keen/KDREAMS.MAP differ diff --git a/bios/Id Software/Commander Keen/audio.ck4 b/bios/Id Software/Commander Keen/audio.ck4 new file mode 100644 index 00000000..7e3c16e0 Binary files /dev/null and b/bios/Id Software/Commander Keen/audio.ck4 differ diff --git a/bios/Id Software/Commander Keen/egagraph.ck4 b/bios/Id Software/Commander Keen/egagraph.ck4 new file mode 100644 index 00000000..634f6548 Binary files /dev/null and b/bios/Id Software/Commander Keen/egagraph.ck4 differ diff --git a/bios/Id Software/Commander Keen/egahead.ck1 b/bios/Id Software/Commander Keen/egahead.ck1 new file mode 100644 index 00000000..c1ca61aa Binary files /dev/null and b/bios/Id Software/Commander Keen/egahead.ck1 differ diff --git a/bios/Id Software/Commander Keen/egalatch.ck1 b/bios/Id Software/Commander Keen/egalatch.ck1 new file mode 100644 index 00000000..0c51a5d1 Binary files /dev/null and b/bios/Id Software/Commander Keen/egalatch.ck1 differ diff --git a/bios/Id Software/Commander Keen/egasprit.ck1 b/bios/Id Software/Commander Keen/egasprit.ck1 new file mode 100644 index 00000000..8a278469 Binary files /dev/null and b/bios/Id Software/Commander Keen/egasprit.ck1 differ diff --git a/bios/Id Software/Commander Keen/endtext.ck1 b/bios/Id Software/Commander Keen/endtext.ck1 new file mode 100644 index 00000000..6efe1622 --- /dev/null +++ b/bios/Id Software/Commander Keen/endtext.ck1 @@ -0,0 +1,41 @@ +~ +~ TO BE CONTINUED... +~ + + +You must find your way onto the Vorticon Mothership and destroy all the +horrible Tantalus Rays! If you don't--THE EARTH EXPLODES! Don't miss +episode two! + + +And then on to Vorticon VI where the whole planet awaits your arrival! Make +your way through all the Vorticon Cities and military installations, and +prepare yourself for the final confrontation with the Grand Intellect! You +won't believe the shocking finale! + + +The final episodes are available from Apogee Software Productions. They are +only $15 each or $30 for the whole trilogy! + + +Send your check or money order to: + + +Apogee Software Productions +P.O. Box 476389 +Garland, TX 75047 + + +Or call: 1-800-852-5659. + + +(U.S. Funds only, and please include $2 for Shipping and Handling.) + + + + —˜ Commander Keen says: + ™š "Hope you enjoyed + the game. I did!" + + +~ THE END (for now...) \ No newline at end of file diff --git a/bios/Id Software/Commander Keen/finale.ck1 b/bios/Id Software/Commander Keen/finale.ck1 new file mode 100644 index 00000000..47d7ec50 Binary files /dev/null and b/bios/Id Software/Commander Keen/finale.ck1 differ diff --git a/bios/Id Software/Commander Keen/gamemaps.ck4 b/bios/Id Software/Commander Keen/gamemaps.ck4 new file mode 100644 index 00000000..8835ae7c Binary files /dev/null and b/bios/Id Software/Commander Keen/gamemaps.ck4 differ diff --git a/bios/Id Software/Commander Keen/helptext.ck1 b/bios/Id Software/Commander Keen/helptext.ck1 new file mode 100644 index 00000000..1f45e050 --- /dev/null +++ b/bios/Id Software/Commander Keen/helptext.ck1 @@ -0,0 +1,85 @@ + Ÿ Ÿ ŸŸŸŸ Ÿ ŸŸŸ + Ÿ Ÿ Ÿ Ÿ Ÿ Ÿ + ŸŸŸŸ ŸŸŸ Ÿ ŸŸŸ + Ÿ Ÿ Ÿ Ÿ Ÿ + Ÿ Ÿ ŸŸŸŸ ŸŸŸŸ Ÿ + + +You can move Commander Keen with the joystick or keyboard. + + +When you first start Keen, you will be in keyboard mode. Let's look at the +keys you need to know to play the game. + +KEY WHAT IT DOES + +Arrows Move Keen around + +Ctrl Jump + +Alt Use Pogo/Stop Pogo + (if you have one) + +Ctrl AND Alt Fire raygun + (if it has charges) + +You can redefine these keys by pressing F3. + + +OTHER IMPORTANT KEYS + +Spacebar Status screen + +F1 Help! + +F2 Sound on/off + +F3 Keyboard mode + +F4 Joystick mode + +F5 Save Game + +ESC Quit + + +If you use the joystick, press button 1 to jump, button 2 to use the +pogo, and both to fire the raygun. Controlling Keen while using the pogo is +more difficult. + +When you are on the Mars map, you may be blocked by a city, shrine, or other +obstacle. You must enter the city (press Ctrl or button 1) and finish it +before proceeding. + +When you enter a city, you can get things by simply running into them. + +If you cannot pass through a door, there may be a "keycard" that the door +requires. This keycard will be the same color as the door. + + +~ TREASURES + + Lollipop „… 100 points + †‡ + + Soda ˆ‰ 200 points + Š‹ + + Pizza €� 500 points + ‚ƒ + + Book Œ� 1000 points + Ž� + + Teddy Bear ‘’ 5000 points + ”• + +You get an extra Keen every 20,000 points. + + + —˜ Commander Keen says: + ™š "Get to Episode Two + before the Earth + explodes!" + +~ END OF HELP \ No newline at end of file diff --git a/bios/Id Software/Commander Keen/keen1.exe b/bios/Id Software/Commander Keen/keen1.exe new file mode 100644 index 00000000..2ce704c7 Binary files /dev/null and b/bios/Id Software/Commander Keen/keen1.exe differ diff --git a/bios/Id Software/Commander Keen/keen4e.exe b/bios/Id Software/Commander Keen/keen4e.exe new file mode 100644 index 00000000..49f6c706 Binary files /dev/null and b/bios/Id Software/Commander Keen/keen4e.exe differ diff --git a/bios/Id Software/Commander Keen/level01.ck1 b/bios/Id Software/Commander Keen/level01.ck1 new file mode 100644 index 00000000..018252c8 Binary files /dev/null and b/bios/Id Software/Commander Keen/level01.ck1 differ diff --git a/bios/Id Software/Commander Keen/level02.ck1 b/bios/Id Software/Commander Keen/level02.ck1 new file mode 100644 index 00000000..93cb56ae Binary files /dev/null and b/bios/Id Software/Commander Keen/level02.ck1 differ diff --git a/bios/Id Software/Commander Keen/level03.ck1 b/bios/Id Software/Commander Keen/level03.ck1 new file mode 100644 index 00000000..937bf90e Binary files /dev/null and b/bios/Id Software/Commander Keen/level03.ck1 differ diff --git a/bios/Id Software/Commander Keen/level04.ck1 b/bios/Id Software/Commander Keen/level04.ck1 new file mode 100644 index 00000000..400d8d4a Binary files /dev/null and b/bios/Id Software/Commander Keen/level04.ck1 differ diff --git a/bios/Id Software/Commander Keen/level05.ck1 b/bios/Id Software/Commander Keen/level05.ck1 new file mode 100644 index 00000000..207ad946 Binary files /dev/null and b/bios/Id Software/Commander Keen/level05.ck1 differ diff --git a/bios/Id Software/Commander Keen/level06.ck1 b/bios/Id Software/Commander Keen/level06.ck1 new file mode 100644 index 00000000..1ba6b866 Binary files /dev/null and b/bios/Id Software/Commander Keen/level06.ck1 differ diff --git a/bios/Id Software/Commander Keen/level07.ck1 b/bios/Id Software/Commander Keen/level07.ck1 new file mode 100644 index 00000000..8e2a159f Binary files /dev/null and b/bios/Id Software/Commander Keen/level07.ck1 differ diff --git a/bios/Id Software/Commander Keen/level08.ck1 b/bios/Id Software/Commander Keen/level08.ck1 new file mode 100644 index 00000000..f83ee72f Binary files /dev/null and b/bios/Id Software/Commander Keen/level08.ck1 differ diff --git a/bios/Id Software/Commander Keen/level09.ck1 b/bios/Id Software/Commander Keen/level09.ck1 new file mode 100644 index 00000000..ffbccaf4 Binary files /dev/null and b/bios/Id Software/Commander Keen/level09.ck1 differ diff --git a/bios/Id Software/Commander Keen/level10.ck1 b/bios/Id Software/Commander Keen/level10.ck1 new file mode 100644 index 00000000..56abf5a6 Binary files /dev/null and b/bios/Id Software/Commander Keen/level10.ck1 differ diff --git a/bios/Id Software/Commander Keen/level11.ck1 b/bios/Id Software/Commander Keen/level11.ck1 new file mode 100644 index 00000000..bc443ebd Binary files /dev/null and b/bios/Id Software/Commander Keen/level11.ck1 differ diff --git a/bios/Id Software/Commander Keen/level12.ck1 b/bios/Id Software/Commander Keen/level12.ck1 new file mode 100644 index 00000000..07551911 Binary files /dev/null and b/bios/Id Software/Commander Keen/level12.ck1 differ diff --git a/bios/Id Software/Commander Keen/level13.ck1 b/bios/Id Software/Commander Keen/level13.ck1 new file mode 100644 index 00000000..30e3e080 Binary files /dev/null and b/bios/Id Software/Commander Keen/level13.ck1 differ diff --git a/bios/Id Software/Commander Keen/level14.ck1 b/bios/Id Software/Commander Keen/level14.ck1 new file mode 100644 index 00000000..20258283 Binary files /dev/null and b/bios/Id Software/Commander Keen/level14.ck1 differ diff --git a/bios/Id Software/Commander Keen/level15.ck1 b/bios/Id Software/Commander Keen/level15.ck1 new file mode 100644 index 00000000..17618a57 Binary files /dev/null and b/bios/Id Software/Commander Keen/level15.ck1 differ diff --git a/bios/Id Software/Commander Keen/level16.ck1 b/bios/Id Software/Commander Keen/level16.ck1 new file mode 100644 index 00000000..112b9229 Binary files /dev/null and b/bios/Id Software/Commander Keen/level16.ck1 differ diff --git a/bios/Id Software/Commander Keen/level80.ck1 b/bios/Id Software/Commander Keen/level80.ck1 new file mode 100644 index 00000000..50bfe30b Binary files /dev/null and b/bios/Id Software/Commander Keen/level80.ck1 differ diff --git a/bios/Id Software/Commander Keen/level81.ck1 b/bios/Id Software/Commander Keen/level81.ck1 new file mode 100644 index 00000000..54cb2798 Binary files /dev/null and b/bios/Id Software/Commander Keen/level81.ck1 differ diff --git a/bios/Id Software/Commander Keen/level90.ck1 b/bios/Id Software/Commander Keen/level90.ck1 new file mode 100644 index 00000000..c8bf8dfb Binary files /dev/null and b/bios/Id Software/Commander Keen/level90.ck1 differ diff --git a/bios/Id Software/Commander Keen/preview2.ck1 b/bios/Id Software/Commander Keen/preview2.ck1 new file mode 100644 index 00000000..4a622b36 Binary files /dev/null and b/bios/Id Software/Commander Keen/preview2.ck1 differ diff --git a/bios/Id Software/Commander Keen/preview3.ck1 b/bios/Id Software/Commander Keen/preview3.ck1 new file mode 100644 index 00000000..6afb7309 Binary files /dev/null and b/bios/Id Software/Commander Keen/preview3.ck1 differ diff --git a/bios/Id Software/Commander Keen/previews.ck1 b/bios/Id Software/Commander Keen/previews.ck1 new file mode 100644 index 00000000..062a8d95 --- /dev/null +++ b/bios/Id Software/Commander Keen/previews.ck1 @@ -0,0 +1,49 @@ +~ +~ PREVIEWS! +~ + + +You have seen a short glimpse of the excitement that awaits in the rest of +the Commander Keen trilogy! + +The second episode is "The Earth Explodes," which contains new features like +see-through windows, new aliens such as the Vorticon Elite, and truly +earth-shattering animation! Use moving platforms, evade new robots, and make +your way to the Tantalus Ray chambers! Save the Earth before it's too late! + +The third episode in Invasion of the Vorticons is "Keen Must Die!" In this +episode there is danger lurking everywhere as you visit Vorticon VI, where +you explore the richly-detailed Vorticon society. See beautiful parks, +dangerous cities, and confusing caves! And all this on the way to your final +confrontation with the Grand Intellect! Episode three features a big +cast including Vorticon women, Meeps, Foobs, and VortiNinjas! And you +won't believe the new, mysterious "Ankh" power! + + +~ COMING SOON FROM ID SOFTWARE + +As our follow-up to the Commander Keen trilogy, Id Software is working on +"The Fight for Justice": a completely new approach to fantasy gaming. You +start not as a weakling with no food--you start as Quake, the strongest, +most dangerous person on the continent. You start off with a Hammer of +Thunderbolts, a Ring of Regeneration, and a trans-dimensional artifact. Here +the fun begins. You fight for Justice, a secret organization devoted to +vanquishing evil from the land! This is role-playing excitement. + +And you don't chunk around the screen. "The Fight for Justice" contains fully +animated scrolling backgrounds. All the people you meet have their own +lives, personalities, and objectives. A 256-color VGA version +will be available (smooth scrolling 256-color screens--fancy that)! + +And the depth of play will be intense. No more "whack whack here's some +gold." There will be interesting puzzles and decisions won't be "yes/no" but +complex correlations of people and events. + +"The Fight for Justice" will be the finest PC game yet. + + + —˜ Billy says: + ™š "Id Software is really + keen!" + +~ END OF PREVIEWS \ No newline at end of file diff --git a/bios/Id Software/Commander Keen/sounds.ck1 b/bios/Id Software/Commander Keen/sounds.ck1 new file mode 100644 index 00000000..2b78e664 Binary files /dev/null and b/bios/Id Software/Commander Keen/sounds.ck1 differ diff --git a/bios/Id Software/Commander Keen/storytxt.ck1 b/bios/Id Software/Commander Keen/storytxt.ck1 new file mode 100644 index 00000000..e910f39b --- /dev/null +++ b/bios/Id Software/Commander Keen/storytxt.ck1 @@ -0,0 +1,94 @@ +~ COMMANDER KEEN +~ in +~ "Invasion of the Vorticons" + + +Billy Blaze, eight year-old genius, working diligently in his backyard +clubhouse has created an interstellar starship from old soup cans, rubber +cement and plastic tubing. While his folks are out on the town and the +babysitter has fallen asleep, Billy travels into his backyard workshop, dons +his brother's football helmet, and transforms into... + + COMMANDER KEEN--defender of Earth! + +In his ship, the Bean-with-Bacon Megarocket, Keen dispenses galactic justice +with an iron hand! + + +~ Episode One: Marooned on Mars + + +In this episode, aliens from the planet Vorticon VI find out about the eight +year-old genius and plan his destruction. While Keen is out exploring the +mountains of Mars, the Vorticons steal vital parts of his ship and take +them to distant Martian cities! Can Keen recover all the pieces of his +ship and repel the Vorticon invasion? Will he make it back before his +parents get home? Stay tuned! + +~ WHAT THE VORTICONS HAVE STOLEN + +The Bean-with-Bacon Megarocket was constructed from objects around the house +that you have "modified" into starship parts: + + JOYSTICK (from your brother's video game) Manual flight control. + + CAR BATTERY (from your Mom's car) Electrical systems power. + + VACUUM CLEANER (from the kitchen, heavily modified) Ion propulsion +unit (with carpet height adjustment). + + EVERCLEAR (from your Dad's liquor cabinet) Fuel. + + + +The Vorticons have taken these pieces to the far reaches of Mars and are +guarding them. You must find the members of this Vorticon outpost and wrest +the parts back from their wicked, clawed hands! + +~ INFORMATION ON MARS + +Unbeknownst to NASA, when the Viking Lander settled to the surface of +Mars, it caused a major political upheaval. Viking actually landed on the +despotic Martian king! The Yorps (the extremely friendly one-eyed +Martians) were free from enslavement, and the Gargs (the vicious, aggressive +Martians) were angry. + +The Martians created robots for menial work and guard duties. Beware of the +tank-like Guard Robots--they are VERY good at what they do. + +Martians have been visiting Earth in UFOs for decades. Why? They come to +Earth for one reason--THEY WANT OUR TOYS. Hula hoops and skateboards are +holy objects to them! Who knows...you may find some toys useful! + +There are signs everywhere. You haven't been able to decipher them yet.... + +~ THE ADVENTURE BEGINS... + +Your task is before you. Go get 'em, Commander Keen! + +______________________________________ +~ + +And don't miss episodes Two and Three in the "Invasion of the Vorticons" +trilogy! + + +~ Episode Two: The Earth Explodes + +Keen has assembled his ship and returned home, only to find the Vorticon +Mothership hovering over the Earth, ready to destroy all of Earth's cities +and wonders! Keen must sneak aboard, stop the imminent destruction of Earth +and find a way to neutralize the Mothership! If he fails...THE EARTH +EXPLODES! (No pressure.) + +~ Episode Three: Keen Must Die! + +Keen flies to the planet Vorticon VI to once and for all rid the galaxy of +the Vorticon menace. The entire planet is waiting for his arrival, with +only one order given--Commander Keen must die! What evil being is behind +all this? Stay tuned for the climactic, shocking finale! + + + —˜ Commander Keen says: + ™š "You won't believe what happens + in Episode Three!" \ No newline at end of file diff --git a/bios/Softdisk/Catacomb Abyss/.variants/EGAGRAPH.ABS.04511fde b/bios/Softdisk/Catacomb Abyss/.variants/EGAGRAPH.ABS.04511fde new file mode 100644 index 00000000..dcae6f24 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/.variants/EGAGRAPH.ABS.04511fde differ diff --git a/bios/Softdisk/Catacomb Abyss/AUDIO.ABS b/bios/Softdisk/Catacomb Abyss/AUDIO.ABS new file mode 100644 index 00000000..84045dd1 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/AUDIO.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/BEGIN.ABS b/bios/Softdisk/Catacomb Abyss/BEGIN.ABS new file mode 100644 index 00000000..f8e865d7 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/BEGIN.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/CREDITS.ABS b/bios/Softdisk/Catacomb Abyss/CREDITS.ABS new file mode 100644 index 00000000..2868d186 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/CREDITS.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/EGAGRAPH.ABS b/bios/Softdisk/Catacomb Abyss/EGAGRAPH.ABS new file mode 100644 index 00000000..680d35b2 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/EGAGRAPH.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/FINALE.ABS b/bios/Softdisk/Catacomb Abyss/FINALE.ABS new file mode 100644 index 00000000..f16a78fe Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/FINALE.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/GAMEMAPS.ABS b/bios/Softdisk/Catacomb Abyss/GAMEMAPS.ABS new file mode 100644 index 00000000..20194b2a Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/GAMEMAPS.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SDLOGO.ABS b/bios/Softdisk/Catacomb Abyss/SDLOGO.ABS new file mode 100644 index 00000000..2de4d063 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SDLOGO.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP01.ABS b/bios/Softdisk/Catacomb Abyss/SHP01.ABS new file mode 100644 index 00000000..1cb16a2e Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP01.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP02.ABS b/bios/Softdisk/Catacomb Abyss/SHP02.ABS new file mode 100644 index 00000000..8f3edcf5 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP02.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP03.ABS b/bios/Softdisk/Catacomb Abyss/SHP03.ABS new file mode 100644 index 00000000..82146753 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP03.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP04.ABS b/bios/Softdisk/Catacomb Abyss/SHP04.ABS new file mode 100644 index 00000000..25efd4a4 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP04.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP05.ABS b/bios/Softdisk/Catacomb Abyss/SHP05.ABS new file mode 100644 index 00000000..e9363b68 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP05.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP06.ABS b/bios/Softdisk/Catacomb Abyss/SHP06.ABS new file mode 100644 index 00000000..25622910 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP06.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP07.ABS b/bios/Softdisk/Catacomb Abyss/SHP07.ABS new file mode 100644 index 00000000..7136cb6d Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP07.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP08.ABS b/bios/Softdisk/Catacomb Abyss/SHP08.ABS new file mode 100644 index 00000000..4b2dbf0d Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP08.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP09.ABS b/bios/Softdisk/Catacomb Abyss/SHP09.ABS new file mode 100644 index 00000000..5f488cca Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP09.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP10.ABS b/bios/Softdisk/Catacomb Abyss/SHP10.ABS new file mode 100644 index 00000000..ac8e937a Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP10.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP11.ABS b/bios/Softdisk/Catacomb Abyss/SHP11.ABS new file mode 100644 index 00000000..d3bb2eca Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP11.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/SHP12.ABS b/bios/Softdisk/Catacomb Abyss/SHP12.ABS new file mode 100644 index 00000000..518d5211 Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/SHP12.ABS differ diff --git a/bios/Softdisk/Catacomb Abyss/TITLE.ABS b/bios/Softdisk/Catacomb Abyss/TITLE.ABS new file mode 100644 index 00000000..433c17ca Binary files /dev/null and b/bios/Softdisk/Catacomb Abyss/TITLE.ABS differ diff --git a/emulators/catacombgl.yml b/emulators/catacombgl.yml index 3eb5b3f0..d5f15a31 100644 --- a/emulators/catacombgl.yml +++ b/emulators/catacombgl.yml @@ -4,282 +4,845 @@ core_classification: game_engine source: "https://github.com/ArnoAnsems/CatacombGL" upstream: "https://github.com/ArnoAnsems/CatacombGL" profiled_date: "2026-10-04" -source_commit: "fc0e70bf69276939d8f2b02a9dd89817263095e5" -core_version: "0.5.5" +source_commit: "7d3b859a17f7edf02ce47f2d22e8b291e4ef0c91" +core_version: "0.5.7 Beta" display_name: "Catacomb 3-D (CatacombGL)" cores: [catacombgl] systems: [catacomb-3d, catacomb-adventure] verification: existence notes: | - OpenGL source port by Arno Ansems of id Software's Catacomb Adventure series: - - Catacomb 3-D: The Descent (.C3D) - - Catacomb Abyss (.ABS), three releases v1.12 / v1.13 / v1.24 - - Catacomb Armageddon (.ARM) - - Catacomb Apocalypse (.APC) + OpenGL source port of the Catacomb 3-D games. Seven releases are accepted, + each with its own file table mapping a file name to an exact byte size + (src/System/Finder.cpp:35-44): + Catacomb Abyss v1.12, v1.13, v1.24 (src/Abyss/GameDetectionAbyss.h:28-76) + Catacomb Armageddon v1.02 (src/Armageddon/GameDetectionArmageddon.h:27-46) + Catacomb Apocalypse v1.01 (src/Apocalypse/GameDetectionApocalypse.h:27-46) + Catacomb 3-D v1.00, v1.22 (src/Catacomb3D/GameDetectionCatacomb3D.h:27-39) - The engine detects which game a search path points at by matching every - filename and byte-size against a hardcoded map in src//GameDetection - .h. GameDetectionAbyss.h, GameDetectionArmageddon.h, - GameDetectionApocalypse.h and GameDetectionCatacomb3D.h declare the - Files* std::map tables used by - src/Engine/GameDetection.cpp. + Detection is per release and all-or-nothing. GetDetectionReport + (src/Engine/GameDetection.cpp:38-73) walks one table against one folder and + adds 2 to the score for a missing file and 1 for a file whose size differs + from the table. A release is detected only at score 0, so every file of its + table must be present with the listed size. A game whose score is not 0 + cannot start: the launch ends in a fatal error naming the offending files + (src/System/CatacombGL.cpp:416-451). No hash is computed. - Files are matched by exact byte size at this layer; the loaders downstream - then open each by name through src/Engine/EngineCore.cpp. Catacomb Abyss has - three distinct file sets (v1.12, v1.13, v1.24), and Catacomb 3-D has v1.00 - and v1.22. + Folders tried for each release, until one scores 0: the working directory + (src/System/Finder.cpp:139-143), the folder stored in the configuration for + that release (src/System/Finder.cpp:176-185), then for the four Catacombs + Pack releases the GOG install folder plus Abyss, Armageddon, Apocalypse or + Cat3D (src/System/Finder.cpp:46-52, 145-163). The selection menu can also + browse to a folder. File names are joined to the folder as written in the + tables, upper case. - Each supported game sits in its own directory, picked by the user through - the game selection menu (src/Engine/GameSelection.cpp). No separate BIOS is - needed: the retail / shareware DOS data files are the only requirement. + The selection menu groups the releases as "Catacombs Pack (GOG)" (3-D v1.22, + Abyss v1.24, Armageddon, Apocalypse), "Shareware" (Abyss v1.12 and v1.13) + and "Catacomb 3-D Big Box" (3-D v1.00) (src/Engine/GameSelection.cpp:71-73, + src/System/CatacombGL.cpp:252-280). Abyss v1.12 is scanned like the others + but its menu entry and key are compiled only when CATABYSSV112 is defined; + the build files do not define it (src/System/CatacombGL.cpp:266-271, 313-318). - The Catacomb Adventure Series releases (Abyss shareware, Armageddon, - Apocalypse) were made freeware by Flat Rock Software and are distributed by - 3D Realms. Catacomb 3-D was released as shareware; the registered v1.22 data - is commercial. + Once a game starts, EGAGRAPH, GAMEMAPS and AUDIO are read through the + static tables of each game and a failed open or short read is fatal + (src/Engine/EgaGraph.cpp:50-70, src/Engine/AudioRepository.cpp:43-58). The + SHP files are the intro pictures (src/Abyss/IntroViewAbyss.cpp:48-90, + src/Armageddon/IntroViewArmageddon.cpp:27-76, + src/Apocalypse/IntroViewApocalypse.cpp:27-76); Abyss v1.12 uses SDLOGO, + TITLE, CREDITS, BEGIN and FINALE instead (src/Abyss/IntroViewAbyss.cpp:28-45, + src/Abyss/GameAbyss.cpp:53-58). SHP10.ABS, SHP13.ARM and SHP13.APC are + never opened but belong to the detection tables. + + Catacomb 3-D also reads CONFIG.C3D (474 bytes, written by the DOS game) from + the game folder to import its high scores when the port has none of its own + (src/Catacomb3D/GameCatacomb3D.cpp:52-57, src/Engine/HighScores.cpp:57-72). + Builds defining SAVEDGAMESINDOSFORMAT also import DOS saved games from the + game folder (src/Engine/EngineCore.cpp:123-148). Both are user state. files: - # ─── Catacomb 3-D v1.22 (registered) ─── + # Catacomb 3-D v1.00 (menu group "Catacomb 3-D Big Box") - name: "AUDIO.C3D" + path: "AUDIO.C3D" category: game_data system: catacomb-3d - description: "Catacomb 3-D audio chunks" + description: "Catacomb 3-D v1.00 sound chunks" required: false size: 5062 + validation: [size] + source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:29 (catacomb3Dv100Files)" + + - name: "EGAGRAPH.C3D" + path: "EGAGRAPH.C3D" + category: game_data + system: catacomb-3d + description: "Catacomb 3-D v1.00 EGA graphics" + required: false + size: 258007 + validation: [size] + source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:30 (catacomb3Dv100Files)" + + - name: "GAMEMAPS.C3D" + path: "GAMEMAPS.C3D" + category: game_data + system: catacomb-3d + description: "Catacomb 3-D v1.00 level maps" + required: false + size: 14288 + validation: [size] + source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:31 (catacomb3Dv100Files)" + + # Catacomb 3-D: The Descent v1.22 (menu group "Catacombs Pack (GOG)") + - name: "AUDIO.C3D" + path: "AUDIO.C3D" + category: game_data + system: catacomb-3d + description: "Catacomb 3-D v1.22 sound chunks" + required: false + size: 5062 + validation: [size] source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:36 (catacomb3Dv122Files)" - name: "EGAGRAPH.C3D" + path: "EGAGRAPH.C3D" category: game_data system: catacomb-3d description: "Catacomb 3-D v1.22 EGA graphics" required: false size: 256899 - source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:37" + validation: [size] + source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:37 (catacomb3Dv122Files)" - name: "GAMEMAPS.C3D" + path: "GAMEMAPS.C3D" category: game_data system: catacomb-3d - description: "Catacomb 3-D v1.22 level data" + description: "Catacomb 3-D v1.22 level maps" required: false size: 14288 - source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:38" + validation: [size] + source_ref: "src/Catacomb3D/GameDetectionCatacomb3D.h:38 (catacomb3Dv122Files)" - # ─── Catacomb Abyss v1.24 (final shareware) ─── + # Catacomb Abyss v1.12 (menu group "Shareware", selectable only in builds defining CATABYSSV112) - name: "AUDIO.ABS" + path: "AUDIO.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss v1.24 audio" + description: "Catacomb Abyss v1.12 sound chunks" required: false size: 6904 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:30 (abyssFilesv112)" + + - name: "BEGIN.ABS" + path: "BEGIN.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.12 intro picture" + required: false + size: 12742 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:31 (abyssFilesv112)" + + - name: "CREDITS.ABS" + path: "CREDITS.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.12 credits picture" + required: false + size: 15237 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:32 (abyssFilesv112)" - name: "EGAGRAPH.ABS" + path: "EGAGRAPH.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.12 EGA graphics" + required: false + size: 320626 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:33 (abyssFilesv112)" + + - name: "FINALE.ABS" + path: "FINALE.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.12 finale picture" + required: false + size: 11918 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:34 (abyssFilesv112)" + + - name: "GAMEMAPS.ABS" + path: "GAMEMAPS.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.12 level maps" + required: false + size: 20433 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:35 (abyssFilesv112)" + + - name: "SDLOGO.ABS" + path: "SDLOGO.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.12 Softdisk logo picture" + required: false + size: 1431 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:36 (abyssFilesv112)" + + - name: "TITLE.ABS" + path: "TITLE.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.12 title picture" + required: false + size: 17486 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:37 (abyssFilesv112)" + + # Catacomb Abyss v1.13 (menu group "Shareware") + - name: "AUDIO.ABS" + path: "AUDIO.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 sound chunks" + required: false + size: 6904 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:42 (abyssFilesv113)" + + - name: "EGAGRAPH.ABS" + path: "EGAGRAPH.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 EGA graphics" + required: false + size: 336143 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:43 (abyssFilesv113)" + + - name: "GAMEMAPS.ABS" + path: "GAMEMAPS.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 level maps" + required: false + size: 20433 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:44 (abyssFilesv113)" + + - name: "SHP01.ABS" + path: "SHP01.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 1" + required: false + size: 1376 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:45 (abyssFilesv113)" + + - name: "SHP02.ABS" + path: "SHP02.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 2" + required: false + size: 15181 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:46 (abyssFilesv113)" + + - name: "SHP03.ABS" + path: "SHP03.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 3" + required: false + size: 13158 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:47 (abyssFilesv113)" + + - name: "SHP04.ABS" + path: "SHP04.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 4" + required: false + size: 12648 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:48 (abyssFilesv113)" + + - name: "SHP05.ABS" + path: "SHP05.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 5" + required: false + size: 724 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:49 (abyssFilesv113)" + + - name: "SHP06.ABS" + path: "SHP06.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 6" + required: false + size: 9182 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:50 (abyssFilesv113)" + + - name: "SHP07.ABS" + path: "SHP07.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 7" + required: false + size: 9930 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:51 (abyssFilesv113)" + + - name: "SHP08.ABS" + path: "SHP08.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 8" + required: false + size: 398 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:52 (abyssFilesv113)" + + - name: "SHP09.ABS" + path: "SHP09.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 9" + required: false + size: 417 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:53 (abyssFilesv113)" + + - name: "SHP10.ABS" + path: "SHP10.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 10" + required: false + size: 329 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:54 (abyssFilesv113)" + + - name: "SHP11.ABS" + path: "SHP11.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 11" + required: false + size: 10595 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:55 (abyssFilesv113)" + + - name: "SHP12.ABS" + path: "SHP12.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.13 intro shape 12" + required: false + size: 9182 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:56 (abyssFilesv113)" + + # Catacomb Abyss v1.24 (menu group "Catacombs Pack (GOG)") + - name: "AUDIO.ABS" + path: "AUDIO.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.24 sound chunks" + required: false + size: 6904 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:61 (abyssFilesv124)" + + - name: "EGAGRAPH.ABS" + path: "EGAGRAPH.ABS" category: game_data system: catacomb-adventure description: "Catacomb Abyss v1.24 EGA graphics" required: false size: 335994 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:62 (abyssFilesv124)" - name: "GAMEMAPS.ABS" + path: "GAMEMAPS.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss v1.24 level data" + description: "Catacomb Abyss v1.24 level maps" required: false size: 20433 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:63 (abyssFilesv124)" - name: "SHP01.ABS" + path: "SHP01.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss shapes bank 1" + description: "Catacomb Abyss v1.24 intro shape 1" required: false size: 1376 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:64 (abyssFilesv124)" - name: "SHP02.ABS" + path: "SHP02.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss shapes bank 2" + description: "Catacomb Abyss v1.24 intro shape 2" required: false size: 14912 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:65 (abyssFilesv124)" - name: "SHP03.ABS" + path: "SHP03.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss shapes bank 3" + description: "Catacomb Abyss v1.24 intro shape 3" required: false size: 13186 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:66 (abyssFilesv124)" - name: "SHP04.ABS" + path: "SHP04.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss shapes bank 4" + description: "Catacomb Abyss v1.24 intro shape 4" required: false size: 12648 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:67 (abyssFilesv124)" - name: "SHP05.ABS" + path: "SHP05.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss shapes bank 5" + description: "Catacomb Abyss v1.24 intro shape 5" required: false size: 724 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:68 (abyssFilesv124)" - name: "SHP06.ABS" + path: "SHP06.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Abyss shapes bank 6" + description: "Catacomb Abyss v1.24 intro shape 6" required: false size: 9182 - source_ref: "src/Abyss/GameDetectionAbyss.h (abyssFilesv124)" + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:69 (abyssFilesv124)" - # ─── Catacomb Armageddon ─── - - name: "AUDIO.ARM" + - name: "SHP07.ABS" + path: "SHP07.ABS" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon audio" + description: "Catacomb Abyss v1.24 intro shape 7" + required: false + size: 9930 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:70 (abyssFilesv124)" + + - name: "SHP08.ABS" + path: "SHP08.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.24 intro shape 8" + required: false + size: 398 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:71 (abyssFilesv124)" + + - name: "SHP09.ABS" + path: "SHP09.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.24 intro shape 9" + required: false + size: 417 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:72 (abyssFilesv124)" + + - name: "SHP10.ABS" + path: "SHP10.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.24 intro shape 10" + required: false + size: 329 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:73 (abyssFilesv124)" + + - name: "SHP11.ABS" + path: "SHP11.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.24 intro shape 11" + required: false + size: 10328 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:74 (abyssFilesv124)" + + - name: "SHP12.ABS" + path: "SHP12.ABS" + category: game_data + system: catacomb-adventure + description: "Catacomb Abyss v1.24 intro shape 12" + required: false + size: 1652 + validation: [size] + source_ref: "src/Abyss/GameDetectionAbyss.h:75 (abyssFilesv124)" + + # Catacomb Armageddon v1.02 (menu group "Catacombs Pack (GOG)") + - name: "AUDIO.ARM" + path: "AUDIO.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 sound chunks" required: false size: 7104 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:29 (armageddonFiles)" - name: "EGAGRAPH.ARM" + path: "EGAGRAPH.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon EGA graphics" + description: "Catacomb Armageddon v1.02 EGA graphics" required: false size: 355832 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:30 (armageddonFiles)" - name: "GAMEMAPS.ARM" + path: "GAMEMAPS.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon level data" + description: "Catacomb Armageddon v1.02 level maps" required: false size: 17653 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:31 (armageddonFiles)" - name: "SHP1.ARM" + path: "SHP1.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon shapes bank 1" + description: "Catacomb Armageddon v1.02 intro shape 1" required: false size: 1376 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:32 (armageddonFiles)" - name: "SHP2.ARM" + path: "SHP2.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon shapes bank 2" + description: "Catacomb Armageddon v1.02 intro shape 2" required: false size: 3991 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:33 (armageddonFiles)" - name: "SHP3.ARM" + path: "SHP3.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon shapes bank 3" + description: "Catacomb Armageddon v1.02 intro shape 3" required: false size: 15036 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:34 (armageddonFiles)" - name: "SHP4.ARM" + path: "SHP4.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon shapes bank 4" + description: "Catacomb Armageddon v1.02 intro shape 4" required: false size: 15568 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:35 (armageddonFiles)" - name: "SHP5.ARM" + path: "SHP5.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon shapes bank 5" + description: "Catacomb Armageddon v1.02 intro shape 5" required: false size: 13234 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:36 (armageddonFiles)" - name: "SHP6.ARM" + path: "SHP6.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Armageddon shapes bank 6" + description: "Catacomb Armageddon v1.02 intro shape 6" required: false size: 10861 - source_ref: "src/Armageddon/GameDetectionArmageddon.h (armageddonFiles)" + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:37 (armageddonFiles)" - # ─── Catacomb Apocalypse ─── - - name: "AUDIO.APC" + - name: "SHP7.ARM" + path: "SHP7.ARM" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse audio" + description: "Catacomb Armageddon v1.02 intro shape 7" + required: false + size: 9414 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:38 (armageddonFiles)" + + - name: "SHP8.ARM" + path: "SHP8.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 intro shape 8" + required: false + size: 749 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:39 (armageddonFiles)" + + - name: "SHP9.ARM" + path: "SHP9.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 intro shape 9" + required: false + size: 9182 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:40 (armageddonFiles)" + + - name: "SHP10.ARM" + path: "SHP10.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 intro shape 10" + required: false + size: 9930 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:41 (armageddonFiles)" + + - name: "SHP11.ARM" + path: "SHP11.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 intro shape 11" + required: false + size: 398 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:42 (armageddonFiles)" + + - name: "SHP12.ARM" + path: "SHP12.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 intro shape 12" + required: false + size: 417 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:43 (armageddonFiles)" + + - name: "SHP13.ARM" + path: "SHP13.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 intro shape 13" + required: false + size: 329 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:44 (armageddonFiles)" + + - name: "SHP14.ARM" + path: "SHP14.ARM" + category: game_data + system: catacomb-adventure + description: "Catacomb Armageddon v1.02 intro shape 14" + required: false + size: 1688 + validation: [size] + source_ref: "src/Armageddon/GameDetectionArmageddon.h:45 (armageddonFiles)" + + # Catacomb Apocalypse v1.01 (menu group "Catacombs Pack (GOG)") + - name: "AUDIO.APC" + path: "AUDIO.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 sound chunks" required: false size: 7366 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:29 (apocalypseFiles)" - name: "EGAGRAPH.APC" + path: "EGAGRAPH.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse EGA graphics" + description: "Catacomb Apocalypse v1.01 EGA graphics" required: false size: 382078 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:30 (apocalypseFiles)" - name: "GAMEMAPS.APC" + path: "GAMEMAPS.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse level data" + description: "Catacomb Apocalypse v1.01 level maps" required: false size: 18855 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:31 (apocalypseFiles)" - name: "SHP1.APC" + path: "SHP1.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse shapes bank 1" + description: "Catacomb Apocalypse v1.01 intro shape 1" required: false size: 1376 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:32 (apocalypseFiles)" - name: "SHP2.APC" + path: "SHP2.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse shapes bank 2" + description: "Catacomb Apocalypse v1.01 intro shape 2" required: false size: 6329 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:33 (apocalypseFiles)" - name: "SHP3.APC" + path: "SHP3.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse shapes bank 3" + description: "Catacomb Apocalypse v1.01 intro shape 3" required: false size: 13187 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:34 (apocalypseFiles)" - name: "SHP4.APC" + path: "SHP4.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse shapes bank 4" + description: "Catacomb Apocalypse v1.01 intro shape 4" required: false size: 13592 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:35 (apocalypseFiles)" - name: "SHP5.APC" + path: "SHP5.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse shapes bank 5" + description: "Catacomb Apocalypse v1.01 intro shape 5" required: false size: 12698 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:36 (apocalypseFiles)" - name: "SHP6.APC" + path: "SHP6.APC" category: game_data system: catacomb-adventure - description: "Catacomb Apocalypse shapes bank 6" + description: "Catacomb Apocalypse v1.01 intro shape 6" required: false size: 11131 - source_ref: "src/Apocalypse/GameDetectionApocalypse.h (apocalypseFiles)" + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:37 (apocalypseFiles)" + + - name: "SHP7.APC" + path: "SHP7.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 7" + required: false + size: 13266 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:38 (apocalypseFiles)" + + - name: "SHP8.APC" + path: "SHP8.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 8" + required: false + size: 640 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:39 (apocalypseFiles)" + + - name: "SHP9.APC" + path: "SHP9.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 9" + required: false + size: 9182 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:40 (apocalypseFiles)" + + - name: "SHP10.APC" + path: "SHP10.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 10" + required: false + size: 9930 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:41 (apocalypseFiles)" + + - name: "SHP11.APC" + path: "SHP11.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 11" + required: false + size: 398 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:42 (apocalypseFiles)" + + - name: "SHP12.APC" + path: "SHP12.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 12" + required: false + size: 417 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:43 (apocalypseFiles)" + + - name: "SHP13.APC" + path: "SHP13.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 13" + required: false + size: 329 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:44 (apocalypseFiles)" + + - name: "SHP14.APC" + path: "SHP14.APC" + category: game_data + system: catacomb-adventure + description: "Catacomb Apocalypse v1.01 intro shape 14" + required: false + size: 1668 + validation: [size] + source_ref: "src/Apocalypse/GameDetectionApocalypse.h:45 (apocalypseFiles)" diff --git a/emulators/cgenius.yml b/emulators/cgenius.yml index 957d3622..46866009 100644 --- a/emulators/cgenius.yml +++ b/emulators/cgenius.yml @@ -12,187 +12,907 @@ systems: [commander-keen] verification: existence notes: | - Open-source reimplementation of the Commander Keen engines (Vorticon, Galaxy, - Dreams) and the Cosmo engine, by Gerstrong. Needs the original Commander Keen - data files from the user; the engine itself ships with a 876 KB vfsroot (UI - art, fonts, sounds) that is not a BIOS and is bundled with the binary. + Reimplementation of the Commander Keen engines: Vorticon (Keen 1 to 3), + Galaxy (Keen 4 to 6) and Keen Dreams. It reads the data files of the DOS + releases and the DOS executable itself, from which it extracts tables, + texts and compressed headers. - For each supported game, Commander Genius expects a flat directory under its - "games/" tree containing the original DOS data files. KeenFiles::setupFilenames - (src/fileio/KeenFiles.h:36-57) names them by episode number: + Game detection. The launcher scans its root and every folder up to two + levels under games/ for .exe and .lua files (src/engine/CGameLauncher.h:36-40, + src/engine/CGameLauncher.cpp:134-141, 64-78). A file name containing + keenN.exe, keenNe.exe, keenN.lua or kNdemo.exe (N from 1 to 6) or kdreams + makes the folder a game (src/engine/CGameLauncher.cpp:437-487). Folder names + are free; the paths below use the folder names of the packages the project + publishes for its in-app downloader, which unpacks under games/ + (src/engine/gamedownloader.cpp:455-491). File lookups are case-insensitive. - Vorticon trilogy (episodes 1-3, Keen 1/2/3) - egagraph.ck{N}, egahead.ck{N}, egadict.ck{N}, - audio.ck{N}, audiohed.ck{N}, audiodct.ck{N}, - gamemaps.ck{N}, maphead.ck{N} - Galaxy trilogy (episodes 4-6, Keen 4/5/6) - same naming, {N} = 4..6 - Keen Dreams (episode 7, "KDREAMS") - KDREAMSDICT.EGA, KDREAMS.AUD, AUDIODCT.KDR, AUDIOHHD.KDR, plus KDREAMS.EXE - (CExeFile.cpp:190-195 reads kdreams.exe to extract the Dreams tiles) + Executable. readKeenExeData tries keenN.exe, keenNe.exe, kNdemo.exe, then + kdreams.exe (src/fileio/CExeFile.cpp:164-203), unpacks LZEXE or PKLITE + compression (src/fileio/CExeFile.cpp:235-255) and derives the version from + the size of the unpacked image, never from a hash + (src/fileio/CExeFile.cpp:350-402): + Keen 1 100274 v1.1, 100484 v1.31, 100132 v1.34 + Keen 2 118626 v1.0, 118672 v1.31 + Keen 3 127598 v1.0, 127616 v1.31 + Keen 4 258064 v1.0, 259232 v1.1, 263488 v1.4 + Keen 5 262176 v1.0, 266096 v1.4 + Keen 6 236112 v1.0 (the demo executable), 271696 v1.4, 270896 v1.5 + Dreams 213536 + The version selects the offsets used to read data out of the image. Tile + properties are known for Keen 1 v1.1, v1.31, v1.34, Keen 2 and 3 v1.0 and + v1.31, Keen 4 and 5 v1.4, Keen 6 v1.4 and v1.5, Keen Dreams and the Keen 6 + demo (src/fileio/CTileLoader.cpp:68-88). The constructor also holds a + support map keyed by the same sizes (src/fileio/CExeFile.cpp:29-50); its + result and the CRC comparison of getEXECrc are stored in the launcher entry + and read nowhere else (src/engine/CGameLauncher.cpp:546-548). - Episode 1-6 shareware and demo files are freely redistributable under the - Apogee/3D Realms terms; the registered Keen 4-6 and Keen Dreams data remain - commercial. CPatcher.cpp:129-140 lets a patch file override the default names - so GOG/Steam variants work in-place. + Vorticon episodes open egahead, egalatch and egasprit, one levelNN file per + map (80 is the world map, 81 the ending map, 90 the title map; the other + numbers come from the world map data) and finale.ckN. Episode 1 also reads + its story, help and ending texts, its sounds and its preview screens from + files; episodes 2 and 3 take texts and sounds from the executable + (src/engine/keen/vorticon/CStory.cpp:35-76, + src/engine/keen/vorticon/CHelp.cpp:38-81, + src/engine/keen/vorticon/CAudioVorticon.cpp:40-60). A sounds.ckN file, when + present, replaces the embedded sounds. Without the three EGA files or a + level file nothing is drawn or the map load fails; the text, finale, sound + and preview files are skipped when absent. High scores are kept in the + engine's own highscoreepN.dat, SCORES.CKN is not read + (src/engine/keen/vorticon/CHighScores.cpp:394-397). - cosmos engine (added as a git submodule by the build) looks for Cosmo's - Cosmic Adventures data (COSMOx.STN, VOLUMES.STN, etc.) using the same - directory-per-game layout; those files are not profiled here because the - cosmos sub-engine is a separate upstream (Dringgstein/cosmos, pinned to - 8497b5696c92b13ede4f5ad01dfb577b208404cb by cgenius.mk). + Galaxy episodes open EGAGRAPH, GAMEMAPS and AUDIO. A missing EGAGRAPH ends + the load (src/engine/keen/galaxy/GalaxyEngine.cpp:237-243). The graphics and + audio dictionaries, EGAHEAD, AUDIOHED and MAPHEAD come from the executable; + a file named egahead.ckN, egadict.ckN, audiohed.ckN, audiodct.ckN or + maphead.ckN in the game folder takes precedence when present, which is how + mods replace them (src/fileio/KeenFiles.h:41-48, + src/engine/keen/galaxy/res/CEGAGraphicsGalaxy.cpp:537-585, 706-742, + src/engine/keen/galaxy/res/CAudioGalaxy.cpp:350-355, 389-411, + src/engine/keen/galaxy/common/CMapLoaderGalaxy.cpp:220-235). The Keen 6 demo + uses its own offsets (src/fileio/CExeFile.cpp:268-289, + src/engine/keen/galaxy/res/CEGAGraphicsGalaxy.cpp:190-205). - Game directories are searched under the user's roms root. The engine then - loads from vfsroot/global/ at startup (fonts, trophy UI, generic sounds), - which is bundled with the install, not with the Keen data. + Keen Dreams runs on an embedded Reflection Keen build for the EGA releases + (src/engine/refkeen/CMakeLists.txt:11-13). The engine extracts nine tables + from KDREAMS.EXE at the offsets of shareware v1.13 + (src/engine/keen/dreams/dreamsengine.cpp:103-114, 226-283, 438) and opens + KDREAMS.EGA, KDREAMS.MAP and KDREAMS.AUD, quitting when one is missing. + The same file lists a size and CRC-32 for each file of that release + (src/engine/keen/dreams/dreamsengine.cpp:93-101); the routine that compared + them is commented out (src/engine/refkeen/be_cross_fs.cpp:660-679), so + nothing is verified. LAST.SHL is in that list and is never opened. + + A .pat file in the game folder can rename the header and map files and + patch the image (src/fileio/CPatcher.cpp:102-141, + src/engine/CGameLauncher.cpp:660-696). Optional replacement graphics, sounds + and music (gfx/, snd/, music/, songlist.lst) and Lua scripts are looked up + in the game folder, some also in the bundled global/ folder + (GsKit/fileio/ResourceMgmt.cpp:34-78). + + Cosmo's Cosmic Adventure is handled by a separate submodule compiled only + with BUILD_COSMOS, off by default (src/engine/CMakeLists.txt:3). files: - # ─── Keen 1: Marooned on Mars (shareware, freely distributable) ─── + # Commander Keen 1: Marooned on Mars (shareware) + - name: "keen1.exe" + path: "games/keen1/keen1.exe" + category: game_data + system: commander-keen + description: "Keen 1 executable, read for tables, texts and tile properties" + required: false + source_ref: "src/fileio/CExeFile.cpp:164-168" + - name: "egahead.ck1" + path: "games/keen1/egahead.ck1" category: game_data system: commander-keen description: "Keen 1 EGA graphics header" required: false - source_ref: "src/fileio/KeenFiles.h:42 (egaheadFilename = egahead.ckN)" + source_ref: "src/engine/keen/vorticon/CEGAGraphicsVort.cpp:48-52" - - name: "egagraph.ck1" + - name: "egalatch.ck1" + path: "games/keen1/egalatch.ck1" category: game_data system: commander-keen - description: "Keen 1 EGA graphics data" + description: "Keen 1 tiles, fonts and bitmaps" required: false - source_ref: "src/fileio/KeenFiles.h:41" + source_ref: "src/engine/keen/vorticon/CEGALatch.cpp:160-165" - - name: "egadict.ck1" + - name: "egasprit.ck1" + path: "games/keen1/egasprit.ck1" category: game_data system: commander-keen - description: "Keen 1 EGA huffman dictionary" + description: "Keen 1 sprites" required: false - source_ref: "src/fileio/KeenFiles.h:43" + source_ref: "src/engine/keen/vorticon/CEGAGraphicsVort.cpp:146-149, src/engine/keen/vorticon/CEGASprit.cpp:111-116" - - name: "audio.ck1" + - name: "level01.ck1" + path: "games/keen1/level01.ck1" category: game_data system: commander-keen - description: "Keen 1 audio data" + description: "Keen 1 level 1" required: false - source_ref: "src/fileio/KeenFiles.h:44" + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" - - name: "audiohed.ck1" + - name: "level02.ck1" + path: "games/keen1/level02.ck1" category: game_data system: commander-keen - description: "Keen 1 audio header" + description: "Keen 1 level 2" required: false - source_ref: "src/fileio/KeenFiles.h:45" + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" - - name: "audiodct.ck1" + - name: "level03.ck1" + path: "games/keen1/level03.ck1" category: game_data system: commander-keen - description: "Keen 1 audio dictionary" + description: "Keen 1 level 3" required: false - source_ref: "src/fileio/KeenFiles.h:46" + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" - - name: "gamemaps.ck1" + - name: "level04.ck1" + path: "games/keen1/level04.ck1" category: game_data system: commander-keen - description: "Keen 1 level data" + description: "Keen 1 level 4" required: false - source_ref: "src/fileio/KeenFiles.h:47" + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" - - name: "maphead.ck1" + - name: "level05.ck1" + path: "games/keen1/level05.ck1" category: game_data system: commander-keen - description: "Keen 1 level header" + description: "Keen 1 level 5" required: false - source_ref: "src/fileio/KeenFiles.h:48" + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" - # ─── Keen 4: Secret of the Oracle (full version, Galaxy episode 1) ─── - - name: "egahead.ck4" + - name: "level06.ck1" + path: "games/keen1/level06.ck1" category: game_data system: commander-keen - description: "Keen 4 EGA graphics header" + description: "Keen 1 level 6" required: false - source_ref: "src/fileio/KeenFiles.h:42" + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level07.ck1" + path: "games/keen1/level07.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 7" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level08.ck1" + path: "games/keen1/level08.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 8" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level09.ck1" + path: "games/keen1/level09.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 9" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level10.ck1" + path: "games/keen1/level10.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 10" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level11.ck1" + path: "games/keen1/level11.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 11" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level12.ck1" + path: "games/keen1/level12.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 12" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level13.ck1" + path: "games/keen1/level13.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 13" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level14.ck1" + path: "games/keen1/level14.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 14" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level15.ck1" + path: "games/keen1/level15.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 15" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level16.ck1" + path: "games/keen1/level16.ck1" + category: game_data + system: commander-keen + description: "Keen 1 level 16" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level80.ck1" + path: "games/keen1/level80.ck1" + category: game_data + system: commander-keen + description: "Keen 1 world map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/playgame/CPlayGameVorticon.h:35" + + - name: "level81.ck1" + path: "games/keen1/level81.ck1" + category: game_data + system: commander-keen + description: "Keen 1 ending map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/finale/CEndingEp1.cpp:104" + + - name: "level90.ck1" + path: "games/keen1/level90.ck1" + category: game_data + system: commander-keen + description: "Keen 1 title and demo map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/CPassiveVort.cpp:33" + + - name: "finale.ck1" + path: "games/keen1/finale.ck1" + category: game_data + system: commander-keen + description: "Keen 1 ending picture" + required: false + source_ref: "src/engine/keen/vorticon/finale/CEndingEp1.cpp:167, src/engine/keen/vorticon/finale/finale.cpp:94-95" + + - name: "sounds.ck1" + path: "games/keen1/sounds.ck1" + category: game_data + system: commander-keen + description: "Keen 1 PC speaker sounds" + required: false + source_ref: "src/engine/keen/vorticon/CAudioVorticon.cpp:36-40" + + - name: "storytxt.ck1" + path: "games/keen1/storytxt.ck1" + category: game_data + system: commander-keen + description: "Keen 1 story text" + required: false + source_ref: "src/engine/keen/vorticon/CStory.cpp:42-46" + + - name: "helptext.ck1" + path: "games/keen1/helptext.ck1" + category: game_data + system: commander-keen + description: "Keen 1 help text" + required: false + source_ref: "src/engine/keen/vorticon/CHelp.cpp:45-49" + + - name: "endtext.ck1" + path: "games/keen1/endtext.ck1" + category: game_data + system: commander-keen + description: "Keen 1 ending text" + required: false + source_ref: "src/engine/keen/vorticon/finale/CFinale.cpp:41-44, src/engine/keen/vorticon/finale/CEndingEp1.cpp:42" + + - name: "previews.ck1" + path: "games/keen1/previews.ck1" + category: game_data + system: commander-keen + description: "Keen 1 previews text, enables the Previews menu entry" + required: false + source_ref: "src/engine/keen/vorticon/CPreviews.cpp:58-65, src/engine/core/menu/CHelpMenu.cpp:58-67" + + - name: "preview2.ck1" + path: "games/keen1/preview2.ck1" + category: game_data + system: commander-keen + description: "Keen 1 preview screen 2" + required: false + source_ref: "src/engine/keen/vorticon/CPreviews.cpp:42-49" + + - name: "preview3.ck1" + path: "games/keen1/preview3.ck1" + category: game_data + system: commander-keen + description: "Keen 1 preview screen 3" + required: false + source_ref: "src/engine/keen/vorticon/CPreviews.cpp:42-49" + + # Commander Keen 2: The Earth Explodes (registered) + - name: "keen2.exe" + path: "games/keen2/keen2.exe" + category: game_data + system: commander-keen + description: "Keen 2 executable, read for tables, texts and tile properties" + required: false + source_ref: "src/fileio/CExeFile.cpp:164-168" + + - name: "egahead.ck2" + path: "games/keen2/egahead.ck2" + category: game_data + system: commander-keen + description: "Keen 2 EGA graphics header" + required: false + source_ref: "src/engine/keen/vorticon/CEGAGraphicsVort.cpp:48-52" + + - name: "egalatch.ck2" + path: "games/keen2/egalatch.ck2" + category: game_data + system: commander-keen + description: "Keen 2 tiles, fonts and bitmaps" + required: false + source_ref: "src/engine/keen/vorticon/CEGALatch.cpp:160-165" + + - name: "egasprit.ck2" + path: "games/keen2/egasprit.ck2" + category: game_data + system: commander-keen + description: "Keen 2 sprites" + required: false + source_ref: "src/engine/keen/vorticon/CEGAGraphicsVort.cpp:146-149, src/engine/keen/vorticon/CEGASprit.cpp:111-116" + + - name: "level01.ck2" + path: "games/keen2/level01.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 1" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level02.ck2" + path: "games/keen2/level02.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 2" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level03.ck2" + path: "games/keen2/level03.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 3" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level04.ck2" + path: "games/keen2/level04.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 4" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level05.ck2" + path: "games/keen2/level05.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 5" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level06.ck2" + path: "games/keen2/level06.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 6" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level07.ck2" + path: "games/keen2/level07.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 7" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level08.ck2" + path: "games/keen2/level08.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 8" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level09.ck2" + path: "games/keen2/level09.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 9" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level10.ck2" + path: "games/keen2/level10.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 10" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level11.ck2" + path: "games/keen2/level11.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 11" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level12.ck2" + path: "games/keen2/level12.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 12" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level13.ck2" + path: "games/keen2/level13.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 13" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level14.ck2" + path: "games/keen2/level14.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 14" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level15.ck2" + path: "games/keen2/level15.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 15" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level16.ck2" + path: "games/keen2/level16.ck2" + category: game_data + system: commander-keen + description: "Keen 2 level 16" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level80.ck2" + path: "games/keen2/level80.ck2" + category: game_data + system: commander-keen + description: "Keen 2 world map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/playgame/CPlayGameVorticon.h:35" + + - name: "level81.ck2" + path: "games/keen2/level81.ck2" + category: game_data + system: commander-keen + description: "Keen 2 ending map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/finale/CEndingEp2.cpp:72" + + - name: "level90.ck2" + path: "games/keen2/level90.ck2" + category: game_data + system: commander-keen + description: "Keen 2 title and demo map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/CPassiveVort.cpp:33" + + - name: "finale.ck2" + path: "games/keen2/finale.ck2" + category: game_data + system: commander-keen + description: "Keen 2 ending picture" + required: false + source_ref: "src/engine/keen/vorticon/finale/CEndingEp2.cpp:174, src/engine/keen/vorticon/finale/finale.cpp:94-95" + + # Commander Keen 3: Keen Must Die! (registered) + - name: "keen3.exe" + path: "games/keen3/keen3.exe" + category: game_data + system: commander-keen + description: "Keen 3 executable, read for tables, texts and tile properties" + required: false + source_ref: "src/fileio/CExeFile.cpp:164-168" + + - name: "egahead.ck3" + path: "games/keen3/egahead.ck3" + category: game_data + system: commander-keen + description: "Keen 3 EGA graphics header" + required: false + source_ref: "src/engine/keen/vorticon/CEGAGraphicsVort.cpp:48-52" + + - name: "egalatch.ck3" + path: "games/keen3/egalatch.ck3" + category: game_data + system: commander-keen + description: "Keen 3 tiles, fonts and bitmaps" + required: false + source_ref: "src/engine/keen/vorticon/CEGALatch.cpp:160-165" + + - name: "egasprit.ck3" + path: "games/keen3/egasprit.ck3" + category: game_data + system: commander-keen + description: "Keen 3 sprites" + required: false + source_ref: "src/engine/keen/vorticon/CEGAGraphicsVort.cpp:146-149, src/engine/keen/vorticon/CEGASprit.cpp:111-116" + + - name: "level01.ck3" + path: "games/keen3/level01.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 1" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level02.ck3" + path: "games/keen3/level02.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 2" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level03.ck3" + path: "games/keen3/level03.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 3" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level04.ck3" + path: "games/keen3/level04.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 4" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level05.ck3" + path: "games/keen3/level05.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 5" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level06.ck3" + path: "games/keen3/level06.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 6" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level07.ck3" + path: "games/keen3/level07.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 7" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level08.ck3" + path: "games/keen3/level08.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 8" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level09.ck3" + path: "games/keen3/level09.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 9" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level10.ck3" + path: "games/keen3/level10.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 10" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level11.ck3" + path: "games/keen3/level11.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 11" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level12.ck3" + path: "games/keen3/level12.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 12" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level13.ck3" + path: "games/keen3/level13.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 13" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level14.ck3" + path: "games/keen3/level14.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 14" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level15.ck3" + path: "games/keen3/level15.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 15" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level16.ck3" + path: "games/keen3/level16.ck3" + category: game_data + system: commander-keen + description: "Keen 3 level 16" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, 153-160" + + - name: "level80.ck3" + path: "games/keen3/level80.ck3" + category: game_data + system: commander-keen + description: "Keen 3 world map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/playgame/CPlayGameVorticon.h:35" + + - name: "level81.ck3" + path: "games/keen3/level81.ck3" + category: game_data + system: commander-keen + description: "Keen 3 ending map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/finale/CEndingEp3.cpp:68" + + - name: "level90.ck3" + path: "games/keen3/level90.ck3" + category: game_data + system: commander-keen + description: "Keen 3 title and demo map" + required: false + source_ref: "src/engine/keen/vorticon/CVorticonMapLoader.cpp:128-130, src/engine/keen/vorticon/CPassiveVort.cpp:33" + + - name: "finale.ck3" + path: "games/keen3/finale.ck3" + category: game_data + system: commander-keen + description: "Keen 3 ending picture" + required: false + source_ref: "src/engine/keen/vorticon/finale/CEndingEp3.cpp:136, src/engine/keen/vorticon/finale/finale.cpp:94-95" + + # Commander Keen 4: Secret of the Oracle (shareware) + - name: "keen4e.exe" + path: "games/keen4/keen4e.exe" + aliases: ["keen4.exe"] + category: game_data + system: commander-keen + description: "Keen 4 executable, read for dictionaries, headers, texts and tile properties" + required: false + source_ref: "src/fileio/CExeFile.cpp:174-176" - name: "egagraph.ck4" + path: "games/keen4/egagraph.ck4" category: game_data system: commander-keen - description: "Keen 4 EGA graphics data" + description: "Keen 4 EGA graphics" required: false - source_ref: "src/fileio/KeenFiles.h:41" - - - name: "egadict.ck4" - category: game_data - system: commander-keen - description: "Keen 4 EGA huffman dictionary" - required: false - source_ref: "src/fileio/KeenFiles.h:43" - - - name: "audio.ck4" - category: game_data - system: commander-keen - description: "Keen 4 audio data" - required: false - source_ref: "src/fileio/KeenFiles.h:44" - - - name: "audiohed.ck4" - category: game_data - system: commander-keen - description: "Keen 4 audio header" - required: false - source_ref: "src/fileio/KeenFiles.h:45" - - - name: "audiodct.ck4" - category: game_data - system: commander-keen - description: "Keen 4 audio dictionary" - required: false - source_ref: "src/fileio/KeenFiles.h:46" + source_ref: "src/engine/keen/galaxy/res/CEGAGraphicsGalaxy.cpp:754-763" - name: "gamemaps.ck4" + path: "games/keen4/gamemaps.ck4" category: game_data system: commander-keen - description: "Keen 4 level data" + description: "Keen 4 level maps" required: false - source_ref: "src/fileio/KeenFiles.h:47" + source_ref: "src/fileio/KeenFiles.h:47, src/engine/keen/galaxy/common/CMapLoaderGalaxy.cpp:249-257" - - name: "maphead.ck4" + - name: "audio.ck4" + path: "games/keen4/audio.ck4" category: game_data system: commander-keen - description: "Keen 4 level header" + description: "Keen 4 sounds and music" required: false - source_ref: "src/fileio/KeenFiles.h:48" + source_ref: "src/fileio/KeenFiles.h:44, src/engine/keen/galaxy/res/CAudioGalaxy.cpp:358-366, src/fileio/CExeFile.cpp:709-716" - # ─── Keen Dreams (episode 7) ─── + # Commander Keen 5: The Armageddon Machine (registered) + - name: "keen5e.exe" + path: "games/keen5/keen5e.exe" + aliases: ["keen5.exe"] + category: game_data + system: commander-keen + description: "Keen 5 executable, read for dictionaries, headers, texts and tile properties" + required: false + source_ref: "src/fileio/CExeFile.cpp:174-176" + + - name: "egagraph.ck5" + path: "games/keen5/egagraph.ck5" + category: game_data + system: commander-keen + description: "Keen 5 EGA graphics" + required: false + source_ref: "src/engine/keen/galaxy/res/CEGAGraphicsGalaxy.cpp:754-763" + + - name: "gamemaps.ck5" + path: "games/keen5/gamemaps.ck5" + category: game_data + system: commander-keen + description: "Keen 5 level maps" + required: false + source_ref: "src/fileio/KeenFiles.h:47, src/engine/keen/galaxy/common/CMapLoaderGalaxy.cpp:249-257" + + - name: "audio.ck5" + path: "games/keen5/audio.ck5" + category: game_data + system: commander-keen + description: "Keen 5 sounds and music" + required: false + source_ref: "src/fileio/KeenFiles.h:44, src/engine/keen/galaxy/res/CAudioGalaxy.cpp:358-366, src/fileio/CExeFile.cpp:709-716" + + # Commander Keen 6: Aliens Ate My Baby Sitter! (retail) + - name: "keen6e.exe" + path: "games/keen6/keen6e.exe" + aliases: ["keen6.exe"] + category: game_data + system: commander-keen + description: "Keen 6 executable, read for dictionaries, headers, texts and tile properties" + required: false + source_ref: "src/fileio/CExeFile.cpp:174-176" + + - name: "egagraph.ck6" + path: "games/keen6/egagraph.ck6" + category: game_data + system: commander-keen + description: "Keen 6 EGA graphics" + required: false + source_ref: "src/engine/keen/galaxy/res/CEGAGraphicsGalaxy.cpp:754-763" + unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in" + + - name: "gamemaps.ck6" + path: "games/keen6/gamemaps.ck6" + category: game_data + system: commander-keen + description: "Keen 6 level maps" + required: false + source_ref: "src/fileio/KeenFiles.h:47, src/engine/keen/galaxy/common/CMapLoaderGalaxy.cpp:249-257" + unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in" + + - name: "audio.ck6" + path: "games/keen6/audio.ck6" + category: game_data + system: commander-keen + description: "Keen 6 sounds and music" + required: false + source_ref: "src/fileio/KeenFiles.h:44, src/engine/keen/galaxy/res/CAudioGalaxy.cpp:358-366, src/fileio/CExeFile.cpp:709-716" + unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in" + + # Commander Keen 6: Aliens Ate My Baby Sitter! (demo) + - name: "k6demo.exe" + path: "games/K6DEMO/k6demo.exe" + category: game_data + system: commander-keen + description: "Keen 6 demo executable, read for dictionaries, headers, texts and tile properties" + required: false + source_ref: "src/fileio/CExeFile.cpp:183-187" + + - name: "egagraph.ck6" + path: "games/K6DEMO/egagraph.ck6" + category: game_data + system: commander-keen + description: "Keen 6 demo EGA graphics" + required: false + source_ref: "src/engine/keen/galaxy/res/CEGAGraphicsGalaxy.cpp:754-763" + + - name: "gamemaps.ck6" + path: "games/K6DEMO/gamemaps.ck6" + category: game_data + system: commander-keen + description: "Keen 6 demo level maps" + required: false + source_ref: "src/fileio/KeenFiles.h:47, src/engine/keen/galaxy/common/CMapLoaderGalaxy.cpp:249-257" + + - name: "audio.ck6" + path: "games/K6DEMO/audio.ck6" + category: game_data + system: commander-keen + description: "Keen 6 demo sounds and music" + required: false + source_ref: "src/fileio/KeenFiles.h:44, src/engine/keen/galaxy/res/CAudioGalaxy.cpp:358-366, src/fileio/CExeFile.cpp:709-716" + + # Keen Dreams (shareware v1.13, EGA) - name: "KDREAMS.EXE" + path: "games/KeenDreams/KDREAMS.EXE" category: game_data system: commander-keen - description: "Keen Dreams executable (CExeFile reads embedded tiles)" + description: "Keen Dreams executable, read for the nine embedded tables" required: false - source_ref: "src/fileio/CExeFile.cpp:190-195" + size: 81619 + crc32: "9dce0a39" + source_ref: "src/fileio/CExeFile.cpp:195-196, src/engine/keen/dreams/dreamsengine.cpp:97" - - name: "KDREAMSDICT.EGA" + - name: "KDREAMS.EGA" + path: "games/KeenDreams/KDREAMS.EGA" category: game_data system: commander-keen - description: "Keen Dreams EGA huffman dictionary" + description: "Keen Dreams EGA graphics" required: false - source_ref: "src/fileio/KeenFiles.h:52" + size: 213045 + crc32: "2dc94687" + source_ref: "src/engine/refkeen/kdreams/id_ca.cpp:605-608, src/engine/keen/dreams/dreamsengine.cpp:96" + + - name: "KDREAMS.MAP" + path: "games/KeenDreams/KDREAMS.MAP" + category: game_data + system: commander-keen + description: "Keen Dreams level maps" + required: false + size: 65673 + crc32: "8dce09af" + source_ref: "src/engine/refkeen/kdreams/id_ca.cpp:749-752, src/engine/keen/dreams/dreamsengine.cpp:98" - name: "KDREAMS.AUD" + path: "games/KeenDreams/KDREAMS.AUD" category: game_data system: commander-keen - description: "Keen Dreams audio data" + description: "Keen Dreams sounds" required: false - source_ref: "src/fileio/KeenFiles.h:53" + size: 3498 + crc32: "80ac85e5" + source_ref: "src/engine/refkeen/kdreams/id_ca.cpp:817-820, src/fileio/KeenFiles.h:53, src/engine/keen/dreams/dreamsengine.cpp:94" - - name: "AUDIODCT.KDR" + - name: "KDREAMS.CMP" + path: "games/KeenDreams/KDREAMS.CMP" category: game_data system: commander-keen - description: "Keen Dreams audio dictionary" + description: "Keen Dreams title screen library, skipped when absent" required: false - source_ref: "src/fileio/KeenFiles.h:54" - - - name: "AUDIOHHD.KDR" - category: game_data - system: commander-keen - description: "Keen Dreams audio header" - required: false - source_ref: "src/fileio/KeenFiles.h:55" + size: 14189 + crc32: "97628ca0" + source_ref: "src/engine/keen/dreams/dreamsintro.cpp:42-46, src/engine/refkeen/kdreams/soft.cpp:388-390, src/engine/keen/dreams/dreamsengine.cpp:95"