AminetAminet
Search:
85641 packages online
• About
• Recent
• Browse
• Search
• Upload
• Setup
• Services

game/actio/ck1-amiga.lha

Mirror:Random
Showing: ppc-morphos icongeneric icon
No screenshot available
Short:Commander Keen 1 RTG
Author: raoul.schroeter at gmx.de
Uploader:raoul schroeter gmx de
Type:game/actio
Version:0.9
Architecture:m68k-amigaos >= 2.0
Date:2026-10-02
Requires:Picasso96 or CyberGraphX, an RTG graphics card (or an RTG-capable emulator), and your own legitimate Commander Keen 1 v1.31 data files (not included)
Download:game/actio/ck1-amiga.lha - View contents
Readme:game/actio/ck1-amiga.readme
Downloads:4

Commander Keen 1 -- Amiga RTG port
===================================
Unofficial, non-commercial fan-made port of "Commander Keen in Invasion of
the Vorticons -- Episode 1: Marooned on Mars" (v1.31) to the Commodore
Amiga, rendered through RTG (Picasso96 / CyberGraphX, via cybergraphics.library)
in 8-bit chunky-pixel mode instead of the original's EGA/VGA output.

This is a *port*, not an emulator: it is a native m68k AmigaOS program, built
from a line-by-line reconstruction of the original DOS source, that reads
the original game's own data files directly and reimplements the game logic,
rendering, audio and timing natively against Amiga APIs (Picasso96/cgx,
AudioDevice, timer.device, Intuition). No DOS emulation or x86 code of any
kind is involved.

Status: pre-release / work in progress. The core game is fully playable
start to finish (see "Known issues" below for the open corners). Tested on
real Amiga hardware as well as WinUAE/FS-UAE with Picasso96 configured.


LEGAL / COPYRIGHT
-----------------
Commander Keen is (C) id Software / Apogee Software (now part of
ZeniMax/Bethesda). This archive is NOT affiliated with, endorsed by, or
sponsored by id Software, Apogee, Bethesda, ZeniMax, or any of their
successors. "Commander Keen" and related names are their trademarks.

This archive contains ONLY code written for this Amiga port. It does NOT
contain, and will never contain:
  - any of the original game's data files (graphics, levels, sounds, text --
    the *.CK1 files, or the DOS KEEN1.EXE), or
  - the GPLv2-licensed "Reconstructed Commander Keen 1-3 Source Code" project
    by K1n9_Duk3, which was used purely as a reference during development to
    verify this port's behaviour against the original -- none of its code is
    copied into this port's own sources.

To use this port you must already own a legitimate copy of Commander Keen 1
v1.31 (e.g. from id Software's own 1991 shareware/registered release, or a
legally purchased re-release) and supply its data files yourself. See
SETUP below.


WHAT'S IN THIS ARCHIVE
-----------------------
  README.txt           -- this file
  LICENSE              -- license for this port's own source code (GPLv2)
  DECISIONS.md          -- full development log: every architectural
                           decision, fidelity check against the original,
                           and bug investigation made while building this
                           port. Essential reading for anyone continuing
                           this project.
  amiga/README.md       -- short build quick-reference
  amiga/Makefile         -- cross-compiles amiga/src with vbcc
  amiga/build-adf.sh     -- assembles a bootable keen1.adf from amiga/disk/
  amiga/src/             -- full source code of this port (C, m68k AmigaOS)
  amiga/tools/           -- helper scripts (see below)
  amiga/disk/KEEN1       -- precompiled binary (68000, no FPU required)
  amiga/disk/S/Startup-Sequence
                        -- the boot script that launches KEEN1


SETUP -- adding your own copy of the game data
------------------------------------------------
1. Get your own legitimate copy of Commander Keen 1 v1.31 and locate these
   original files (from the DOS install):
     EGAHEAD.CK1  EGALATCH.CK1  EGASPRIT.CK1  FINALE.CK1  HELPTEXT.CK1
     LEVEL01.CK1 .. LEVEL16.CK1  LEVEL80.CK1  LEVEL81.CK1  LEVEL90.CK1
     PREVIEW2.CK1  PREVIEW3.CK1  PREVIEWS.CK1  STORYTXT.CK1  SOUNDS.CK1
     KEEN1.EXE

2. Create a folder named "CKeen1" *next to* the "amiga" folder from this
   archive (i.e. CKeen1/ and amiga/ are siblings), and copy all the files
   above into it.

3. Easiest path (no cross-compiler needed, binary is already built):
     - On a real Amiga or emulator with Picasso96/CyberGraphX installed,
       copy everything from amiga/disk/ plus all the files from CKeen1/
       into one directory (e.g. a hard-drive partition, or an emulated
       directory), then run KEEN1 from there.
     - TILEINFO.BIN and SOUNDS.BIN (two small files this port derives from
       KEEN1.EXE and SOUNDS.CK1) are NOT included in CKeen1/'s original
       file list above -- generate them with:
         python3 amiga/tools/extract_tileinfo.py CKeen1/KEEN1.EXE TILEINFO.BIN
         python3 amiga/tools/extract_sounds.py CKeen1/SOUNDS.CK1 SOUNDS.BIN
       and place both next to the other data files.

4. Bootable-floppy path (produces a ready-to-boot keen1.adf):
     - Requires amitools (`pip3 install amitools`) for its xdftool, on
       whatever machine you run the script on (does not need to be the
       Amiga itself).
     - From amiga/, with CKeen1/ in place as in step 2, run:
         ./build-adf.sh
       This auto-generates TILEINFO.BIN/SOUNDS.BIN, auto-copies the raw
       *.CK1 files from ../CKeen1/, and writes amiga/keen1.adf -- boot that
       on real hardware or in WinUAE/FS-UAE with Picasso96/CyberGraphX
       configured.

5. To rebuild the binary itself from source instead of using the one
   included, see amiga/README.md and amiga/tools/setup-toolchain.sh (needs
   vbcc targeting m68k-amigaos).


CONTROLS
--------
  Arrow keys  -- move
  Ctrl        -- jump
  Alt         -- fire / enter a level from the world map (stand on an
                 entrance and press Alt/Fire)
  Enter/Space -- confirm in menus
  Esc         -- quit (brings up a confirmation box)
  F1          -- help
  F5          -- save game (world map only, matching the original)


REQUIREMENTS
------------
  - Amiga with Picasso96 or CyberGraphX and a supported RTG graphics card
    (or an emulator such as WinUAE/FS-UAE configured with one)
  - 68000 or better, no FPU required
  - Your own legitimate Commander Keen 1 v1.31 data files (see SETUP)


KNOWN ISSUES / NOT YET IMPLEMENTED
------------------------------------
This is a from-scratch native port verified screen-by-screen and mechanic-
by-mechanic against the original DOS source, but a few corners are
deliberately incomplete. Listed here so whoever picks this project up next
doesn't have to rediscover them:

  * Joystick support is not implemented. Input is keyboard-only
    (input_cgx.c, via Intuition RAWKEY). Would need gameport/CIA potgo
    register reads (or lowlevel.library/gameport.device) feeding the same
    control structure keyboard input already populates. Scoped as a small,
    independent task; not attempted yet.

  * F2 (sound on/off) and F3/F4 (keyboard/joystick calibration) are not
    bound to anything. Only F1 (Help) and F5 (Save) are wired up. F3/F4
    only make sense once joystick support (above) exists.

  * The ENDTEXT.CK1 end-credits crawl is not shown after the finale's
    "TO BE CONTINUED....". A KEENSCRN.C-style scrolling text reader
    already exists in this port (textwin.c) and is used elsewhere (Story,
    F1-Help, Previews) -- wiring ENDTEXT.CK1 through it after DoFinale()
    should be straightforward, just not done yet.

  * "Ordering Info" in the main menu shows a short placeholder message
    instead of a reconstruction of the original 1990 Apogee mail-order
    form. Deliberate: that content has no functional value today.

  * "Restart Demo" in the main menu is a no-op (returns to the attract
    cycle). This port has no recorded-input demo-playback subsystem at
    all, so there's nothing to restart.

  * The High Scores screen (reached from the attract-mode title cycle)
    shows a plain black background instead of the LEVEL90 map backdrop
    every other menu screen uses. Minor visual inconsistency, not fixed.

  * World-map avatar movement speed is intentionally code-faithful: it's
    ported literally from the original's own ControlMapKeen(), unscaled
    by elapsed time. Combined with this port's fixed 60Hz pacing, the map
    avatar can feel faster than in-level Keen. This has been raised and
    deliberately deferred twice during development without a decision on
    whether "faithful to the original" should mean code-faithful (current
    behaviour) or feel-faithful (scaled to match perceived speed) --
    needs an explicit decision before anyone changes this, not a silent
    "fix".

  * Title-picture centering was reported as possibly slightly off on one
    real-hardware test. The relevant RTG screen-centering logic
    (video_cgx.c, BestCModeIDTags/s_destx/s_desty) was reviewed and found
    structurally correct; no concrete bug was found. Flagged as
    unresolved -- needs a side-by-side screenshot comparison or another
    real-hardware data point to make further progress.

None of the above affect core gameplay: all three episode-1 "worlds",
all 16 regular levels plus the secret levels, saving/loading, the full
menu system (title, attract-mode cycle, main menu, Story/About
ID/High Scores/Previews/F1-Help text screens), and the finale sequence
are implemented and have been verified on real Amiga hardware.


CONTINUING THIS PROJECT
------------------------
Read DECISIONS.md first. It is a complete, chronological log of every
design decision and bug investigation made while building this port,
including things that were tried and rejected -- it will save you from
re-deriving work already done or re-breaking things already fixed for a
good reason (several entries specifically document "looks like a bug but
isn't" cases and "fixed once, regressed, fixed again, here's why" cases).


CREDITS
-------
This port's fidelity to the original was checked throughout development
against the "Reconstructed Commander Keen 1-3 Source Code" project by
K1n9_Duk3 (GPLv2, (C) 2021-2026), used strictly as a reference -- no code
from it is included in or copied into this archive. If you have access to
that project separately, DECISIONS.md cites it by original filename
(KEENSCRN.C, KEENACTS.C, IDLIBC.C, etc.) throughout.

Commander Keen (C) id Software / Apogee Software.


LICENSE
-------
This port's own source code (everything under amiga/) is licensed under
the GNU General Public License v2 or later -- see LICENSE. This does not
and cannot grant any rights to the original Commander Keen game or its
assets, which remain the property of their respective copyright holders.



Contents of game/actio/ck1-amiga.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]               264423  264423 100.0% -lh0- a8e1 Oct  2 13:55 CK1Amiga/DECISIONS.md
[generic]                18092   18092 100.0% -lh0- a33a Oct  2 13:43 CK1Amiga/LICENSE
[generic]                10111   10111 100.0% -lh0- d344 Oct  2 13:43 CK1Amiga/README.txt
[generic]                 1564    1564 100.0% -lh0- 1602 Oct  2 13:43 CK1Amiga/amiga/Makefile
[generic]                 1675    1675 100.0% -lh0- 548c Oct  2 13:43 CK1Amiga/amiga/README.md
[generic]                 2663    2663 100.0% -lh0- b543 Oct  2 13:43 CK1Amiga/amiga/build-adf.sh
[generic]                79088   79088 100.0% -lh0- 598c Oct  2 13:43 CK1Amiga/amiga/disk/KEEN1
[generic]                  390     390 100.0% -lh0- e5e0 Oct  2 13:43 CK1Amiga/amiga/disk/S/Startup-Sequence
[generic]                 1649    1649 100.0% -lh0- e16e Oct  2 13:43 CK1Amiga/amiga/src/main.c
[generic]                  860     860 100.0% -lh0- 55e1 Oct  2 13:43 CK1Amiga/amiga/src/keen/borderflash.c
[generic]                 1596    1596 100.0% -lh0- d228 Oct  2 13:43 CK1Amiga/amiga/src/keen/borderflash.h
[generic]                 2437    2437 100.0% -lh0- 3297 Oct  2 13:43 CK1Amiga/amiga/src/keen/butler.c
[generic]                  116     116 100.0% -lh0- 07e0 Oct  2 13:43 CK1Amiga/amiga/src/keen/butler.h
[generic]                 5489    5489 100.0% -lh0- 449f Oct  2 13:43 CK1Amiga/amiga/src/keen/cannon.c
[generic]                  679     679 100.0% -lh0- d921 Oct  2 13:43 CK1Amiga/amiga/src/keen/cannon.h
[generic]                 1014    1014 100.0% -lh0- bcad Oct  2 13:43 CK1Amiga/amiga/src/keen/chain.c
[generic]                  113     113 100.0% -lh0- be5e Oct  2 13:43 CK1Amiga/amiga/src/keen/chain.h
[generic]                 3627    3627 100.0% -lh0- 9f11 Oct  2 13:43 CK1Amiga/amiga/src/keen/door.c
[generic]                  675     675 100.0% -lh0- 4153 Oct  2 13:43 CK1Amiga/amiga/src/keen/door.h
[generic]                  995     995 100.0% -lh0- 5af9 Oct  2 13:43 CK1Amiga/amiga/src/keen/fileio.c
[generic]                  494     494 100.0% -lh0- bd1d Oct  2 13:43 CK1Amiga/amiga/src/keen/fileio.h
[generic]                16268   16268 100.0% -lh0- 0869 Oct  2 13:43 CK1Amiga/amiga/src/keen/finale.c
[generic]                  835     835 100.0% -lh0- f80f Oct  2 13:43 CK1Amiga/amiga/src/keen/finale.h
[generic]                41038   41038 100.0% -lh0- f798 Oct  2 13:43 CK1Amiga/amiga/src/keen/game.c
[generic]                  491     491 100.0% -lh0- 0be4 Oct  2 13:43 CK1Amiga/amiga/src/keen/game.h
[generic]                 1103    1103 100.0% -lh0- b724 Oct  2 13:43 CK1Amiga/amiga/src/keen/gamestate.c
[generic]                 3942    3942 100.0% -lh0- 839d Oct  2 13:43 CK1Amiga/amiga/src/keen/gamestate.h
[generic]                 2628    2628 100.0% -lh0- be51 Oct  2 13:43 CK1Amiga/amiga/src/keen/garg.c
[generic]                  110     110 100.0% -lh0- 5e2b Oct  2 13:43 CK1Amiga/amiga/src/keen/garg.h
[generic]                17032   17032 100.0% -lh0- 736d Oct  2 13:43 CK1Amiga/amiga/src/keen/highscore.c
[generic]                 1543    1543 100.0% -lh0- 4368 Oct  2 13:43 CK1Amiga/amiga/src/keen/highscore.h
[generic]                33764   33764 100.0% -lh0- 93b5 Oct  2 13:43 CK1Amiga/amiga/src/keen/keen_player.c
[generic]                 1035    1035 100.0% -lh0- 72ca Oct  2 13:43 CK1Amiga/amiga/src/keen/keen_player.h
[generic]                 1418    1418 100.0% -lh0- fafd Oct  2 13:43 CK1Amiga/amiga/src/keen/level.c
[generic]                 1087    1087 100.0% -lh0- 4fff Oct  2 13:43 CK1Amiga/amiga/src/keen/level.h
[generic]                16226   16226 100.0% -lh0- d86f Oct  2 13:43 CK1Amiga/amiga/src/keen/loadgfx.c
[generic]                 4627    4627 100.0% -lh0- 6030 Oct  2 13:43 CK1Amiga/amiga/src/keen/loadgfx.h
[generic]                 5380    5380 100.0% -lh0- 35ea Oct  2 13:43 CK1Amiga/amiga/src/keen/lzw.c
[generic]                  874     874 100.0% -lh0- b65e Oct  2 13:43 CK1Amiga/amiga/src/keen/lzw.h
[generic]                23755   23755 100.0% -lh0- d41e Oct  2 13:43 CK1Amiga/amiga/src/keen/menu.c
[generic]                 1520    1520 100.0% -lh0- b8df Oct  2 13:43 CK1Amiga/amiga/src/keen/menu.h
[generic]                10908   10908 100.0% -lh0- 2750 Oct  2 13:43 CK1Amiga/amiga/src/keen/object.c
[generic]                 7298    7298 100.0% -lh0- 1ed0 Oct  2 13:43 CK1Amiga/amiga/src/keen/object.h
[generic]                 1730    1730 100.0% -lh0- 4d1a Oct  2 13:43 CK1Amiga/amiga/src/keen/palette.c
[generic]                 1207    1207 100.0% -lh0- 8daa Oct  2 13:43 CK1Amiga/amiga/src/keen/palette.h
[generic]                 3970    3970 100.0% -lh0- 6fce Oct  2 13:43 CK1Amiga/amiga/src/keen/picfile.c
[generic]                  802     802 100.0% -lh0- 216a Oct  2 13:43 CK1Amiga/amiga/src/keen/picfile.h
[generic]                  799     799 100.0% -lh0- 152c Oct  2 13:43 CK1Amiga/amiga/src/keen/picnames.h
[generic]                 6707    6707 100.0% -lh0- db34 Oct  2 13:43 CK1Amiga/amiga/src/keen/quitbox.c
[generic]                 2029    2029 100.0% -lh0- a36e Oct  2 13:43 CK1Amiga/amiga/src/keen/quitbox.h
[generic]                21396   21396 100.0% -lh0- af43 Oct  2 13:43 CK1Amiga/amiga/src/keen/render.c
[generic]                 2481    2481 100.0% -lh0- d4f2 Oct  2 13:43 CK1Amiga/amiga/src/keen/render.h
[generic]                 1364    1364 100.0% -lh0- 1474 Oct  2 13:43 CK1Amiga/amiga/src/keen/rlew.c
[generic]                  866     866 100.0% -lh0- fd6c Oct  2 13:43 CK1Amiga/amiga/src/keen/rlew.h
[generic]                 2487    2487 100.0% -lh0- c46b Oct  2 13:43 CK1Amiga/amiga/src/keen/save.c
[generic]                 1448    1448 100.0% -lh0- cdb7 Oct  2 13:43 CK1Amiga/amiga/src/keen/save.h
[generic]                  104     104 100.0% -lh0- 11ea Oct  2 13:43 CK1Amiga/amiga/src/keen/sound.c
[generic]                  384     384 100.0% -lh0- 0d6e Oct  2 13:43 CK1Amiga/amiga/src/keen/sound.h
[generic]                 1412    1412 100.0% -lh0- 0d51 Oct  2 13:43 CK1Amiga/amiga/src/keen/soundnames.h
[generic]                 2239    2239 100.0% -lh0- 3639 Oct  2 13:43 CK1Amiga/amiga/src/keen/spritenames.h
[generic]                10940   10940 100.0% -lh0- 6fd7 Oct  2 13:43 CK1Amiga/amiga/src/keen/statuswin.c
[generic]                  914     914 100.0% -lh0- 0b61 Oct  2 13:43 CK1Amiga/amiga/src/keen/statuswin.h
[generic]                 4970    4970 100.0% -lh0- d934 Oct  2 13:43 CK1Amiga/amiga/src/keen/tank.c
[generic]                  110     110 100.0% -lh0- 093b Oct  2 13:43 CK1Amiga/amiga/src/keen/tank.h
[generic]                 9733    9733 100.0% -lh0- c78e Oct  2 13:43 CK1Amiga/amiga/src/keen/textwin.c
[generic]                 1461    1461 100.0% -lh0- 2c96 Oct  2 13:43 CK1Amiga/amiga/src/keen/textwin.h
[generic]                  999     999 100.0% -lh0- 1fd5 Oct  2 13:43 CK1Amiga/amiga/src/keen/tileinfo.c
[generic]                  844     844 100.0% -lh0- f8f6 Oct  2 13:43 CK1Amiga/amiga/src/keen/tileinfo.h
[generic]                 3242    3242 100.0% -lh0- d291 Oct  2 13:43 CK1Amiga/amiga/src/keen/vorticon.c
[generic]                  277     277 100.0% -lh0- c09c Oct  2 13:43 CK1Amiga/amiga/src/keen/vorticon.h
[generic]                51805   51805 100.0% -lh0- ce05 Oct  2 13:43 CK1Amiga/amiga/src/keen/worldmap.c
[generic]                 5838    5838 100.0% -lh0- 7c2c Oct  2 13:43 CK1Amiga/amiga/src/keen/worldmap.h
[generic]                 2741    2741 100.0% -lh0- 284d Oct  2 13:43 CK1Amiga/amiga/src/keen/yorp.c
[generic]                  584     584 100.0% -lh0- 8522 Oct  2 13:43 CK1Amiga/amiga/src/keen/yorp.h
[generic]                  390     390 100.0% -lh0- 4d37 Oct  2 13:43 CK1Amiga/amiga/src/platform/amiga_internal.h
[generic]                  876     876 100.0% -lh0- 190d Oct  2 13:43 CK1Amiga/amiga/src/platform/audio.h
[generic]                 6696    6696 100.0% -lh0- e9ab Oct  2 13:43 CK1Amiga/amiga/src/platform/audio_amiga.c
[generic]                 2387    2387 100.0% -lh0- 0d33 Oct  2 13:43 CK1Amiga/amiga/src/platform/endian.h
[generic]                 2620    2620 100.0% -lh0- d7a7 Oct  2 13:43 CK1Amiga/amiga/src/platform/input.h
[generic]                 5866    5866 100.0% -lh0- 7ba0 Oct  2 13:43 CK1Amiga/amiga/src/platform/input_cgx.c
[generic]                  639     639 100.0% -lh0- 4098 Oct  2 13:43 CK1Amiga/amiga/src/platform/timer.h
[generic]                 2227    2227 100.0% -lh0- 8860 Oct  2 13:43 CK1Amiga/amiga/src/platform/timer_amiga.c
[generic]                 2787    2787 100.0% -lh0- e73a Oct  2 13:43 CK1Amiga/amiga/src/platform/video.h
[generic]                 7524    7524 100.0% -lh0- 1828 Oct  2 13:43 CK1Amiga/amiga/src/platform/video_cgx.c
[generic]                 8967    8967 100.0% -lh0- 72c4 Oct  2 13:43 CK1Amiga/amiga/tools/extract_sounds.py
[generic]                 8657    8657 100.0% -lh0- 3f7a Oct  2 13:43 CK1Amiga/amiga/tools/extract_tileinfo.py
[generic]                 8086    8086 100.0% -lh0- 2d59 Oct  2 13:43 CK1Amiga/amiga/tools/host_test_harness.c
[generic]                 2474    2474 100.0% -lh0- f16a Oct  2 13:55 CK1Amiga/amiga/tools/setup-toolchain.sh
[generic]                 4886    4886 100.0% -lh0- a3f6 Oct  2 13:43 CK1Amiga/amiga/tools/unlzexe.py
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        89 files  801597  801597 100.0%            Oct  2 21:51
Page generated in 0.03 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>