Alright, here are the updated versions of Kohntarkosz_'s mod trilogy:
Download
Note: The download will expire in a couple of days, so I would appreciate it if somebody would upload the updated versions to the KeenWiki server.
These updates should fix all crashes/freezes that have been reported so far and make the mods fully playable on all difficulty modes. There are also some quality of life improvements, both in the code as well as in the level design. I have finished all three mods on hard mode without using cheats, so it definitely is possible to beat them.
That being said, I still don't consider them "perfect". There's always room for improvement. There is still the occasional situation where a part of Keen's sprite becomes visible where it should be hidden inside the wall, or situations where Keen's sprite is grabbing onto thin air when grabbing certain edges. Parts of some levels use tiles whose tile images don't really fit together. These are purely cosmetical issues and don't break the game in any way, so I didn't bother trying to fix them all. Fixing them would often require a redesign of the level or additional tiles, which would be a lot of extra work.
Changelog:
Bounty Hunting Brouhaha:
Code: Select all
- Flags will not be drawn on top of the scorebox anymore, or at least not for
more than one frame of the flag animation.
- Added some code to prevent Keen from landing while he is still jumping and
not yet falling. This should fix the problem of Keen "ignoring" the jump key
under some rare circumstances.
- Modified the Wormouth-replacement's code to prevent it from stepping onto a
tile with a special top/north edge. A tile with a special top edge has been
placed in front of the wind tunnel at the end of level 4 (Air Quality
Monitoring Station) to prevent the Wormouth- and Slug-replacements from
entering the wind tunnel, which would have made the level unwinnable.
(Unless you manage to get to the secret exit, that is.)
- Wormouth-replacement will not kill Keen during the first frame of its attack
animation, but it can still be stunned during that frame. This should help
avoid some rather unfair deaths.
- The Miragia animation on the world map (Sewage Plant elevators) won't stop
anymore when Keen is in the area. This should make it easier to get to the
Downstairs level.
- The yellow key in level 4 has been moved down to the first air stream.
- Several levels were modified to make sure they can be completed on Normal &
Hard difficulty. Using the "Impossible Pogo Trick" should not be necessary to
complete the levels anymore. But many secrets and bonus items still require
that trick.
- Some bonus items were moved around to make sure they can be collected on all
difficulty levels.
- Removed black pixels from the bottom right corner of the platform sprite.
- Modified the hitbox of the Mad-Mushroom-replacement. The old hitbox was
bigger than the visible sprite, which might have caused some unfair deaths.
- Modified the Berkeloid-replacement's hitbox and the Berkeloid react code to
prevent them from getting stuck on slopes after throwing a fireball.
- The janitor (witch doctor) dialog will now force the score box to update at
the end, in case its sprite had to be reloaded from the EGAGRAPH file.
- Added the musical inspiration list to the "thanks" help text. Kohntarkosz
added that list in the "The Prisoner's Dilemma" launcher under the title
"MUSICAL INSPIRATION (Previous mod)". I figured I might as well put that
information where it would matter. While I was at it, I noticed that a
paragraph on page 2 of the "thanks" text didn't show up because it was on the
same line as the ^P command. I inserted the missing line break.
The Prisoner's Dilemma:
Code: Select all
- The sprite data has been optimized with uGrab to reduce memory usage. This
lowered the overall memory requirements by about 7k.
- This also fixed a problem with the EGAHEAD files being 3 bytes too short. The
file being too short may have caused some issues when reading the the demo
data for the high scores, which is the final chunk in the EGAGRAPH file.
- Memory requirement for loading music has been cut in half by skipping the
Huffman decompression code and loading the audio data directly into the final
buffer. The audio data is not actually compressed, so doing the decompression
would just waste time and memory.
- Added some code to free the sprite and tile graphics before trying to load a
new map, so the game won't run out of memory while loading the map data.
- Added some code to clear the cache when bringing up the control panel, the
help menu, the in-game text boxes and the ending sequence.
- Also added some code to lock the text buffers for the end texts to make sure
the "PageLayout: Text not headed with ^P" error doesn't pop up.
- Added my screen update patch to get rid of the graphics glitches.
- Flags will not be drawn on top of the scorebox anymore, or at least not for
more than one frame of the flag animation.
- Fixed the bug that would cause the game to lock up when entering the
teleporter on the world map.
- Added some code to prevent Keen/Rick from landing while he is still jumping
and not yet falling. This should fix the problem of Keen/Rick "ignoring" the
jump key under some rare circumstances.
- Fixed the bug that sometimes caused Keen/Rick to get pushed up or down when
he got pushed by an enemy (Riot Cop, Civillians) while he was jumping.
- Launcher was re-implemented from scratch is and much faster now, especially
on pre-Pentium systems without a co-processor.
- The pogo gamepad button is now disabled when player hasn't collected the pogo
stick yet.
- Shortened and moved some strings in the Rick version to prevent them from
overwriting parts of the pdirx array, which caused GoPlats to get stuck
when moving east/right. It also caused the rocket (Rick's Phonebooth) to get
stuck, which is probably the reason why Rick travels via teleporter now.
- The small Odradek can now get squished like the Bip in Keen 6. Added a sprite
for the squished Odradek and placed some additional Odradeks in the levels.
Also changed the code to prevent the Odradek from interrupting the player's
look up & look down animations.
- Some enemy hitbox sizes were adjusted to avoid them zipping around under low
ceilings.
- One sprite of the slice of ham (Rick version) was modified to make it animate
like the tile-based slice of ham.
- All unique background tiles that are never visible in-game were removed from
the levels to reduce memory usage a bit.
- Also removed some animating background tiles that are never visible in-game.
- All dummy "big switch" tiles were replaced with regular blocking tiles.
- Level 13: Had two blue keys and no yellow key -> replaced a blue key with a
yellow one.
- Level 2: Fixed the spelling mistake in the pogo room ("behld" -> "behold").
- Levels 5 & 10: Fixed edge grab bugs in the secrets inside the train.
- Level 6: Changed the level so that Rick can't collect both blue gems on easy
(with impossible pogo trick) and get stuck if both keys are used.
- Level 10: Replaced sprite-based 1UPs (Viva Queen) with tile-based 1UPs.
Send In The Clorts
Code: Select all
- The sprite data has been optimized with uGrab to reduce memory usage. This
lowered the overall memory requirements by about 7k.
- This also fixed a problem with the EGAHEAD file being 3 bytes too short. The
file being too short may have caused some issues when reading the the demo
data for the high scores, which is the final chunk in the EGAGRAPH file.
- Memory requirement for loading music has been cut in half by skipping the
Huffman decompression code and loading the audio data directly into the final
buffer. The audio data is not actually compressed, so doing the decompression
would just waste time and memory.
- Added some code to free the sprite and tile graphics before trying to load a
new map, so the game won't run out of memory while loading the map data.
- Added some code to clear the cache when bringing up the control panel, the
help menu, the in-game text boxes and the ending sequence.
- Also added some code to lock the text buffers for the help and end texts to
make sure the "PageLayout: Text not headed with ^P" error doesn't pop up.
- Added my screen update patch to get rid of the graphics glitches.
- Disabled the code to open/close elevator doors on the world map. This fixed
the "Null pointer assignment" issue.
- The glass of the cloaking devices (and the Re-Synapsizer) now breaks. I think
the reason why it didn't break in the beta was that the fuse code was written
for fuses that are 1 tile wide and 2 tiles high, but the glass is 2x2 tiles
here, which means only the left or right half of the glass would break with
the old code. I modified it for 2x2 tile blocks, but I had to edit the levels
to make sure the left side of the glass is always on an even x coodinate.
- Flags will not be drawn on top of the scorebox anymore, or at least not for
more than one frame of the flag animation.
- Fixed the bug that would cause the game to lock up when entering the
teleporter on the world map.
- Added some code to prevent Keen from landing while he is still jumping and
not yet falling. This should fix the problem of Keen "ignoring" the jump key
under some rare circumstances.
- Fixed the bug that sometimes caused Keen to get pushed up or down when he got
pushed by an enemy (Distorp) while he was jumping.
- The Velospike's sprite hitbox settings were corrected to allow it to walk.
This also allowed it to shoot, which it never seemed to do in the beta. The
spike graphics for the projectiles had to be swapped to match the direction
the spike was flying. After a bit of playtesting, I decided to disable the
shooting entirely, because it made the levels too difficult in my opinion.
- The Rick-Buttons that are linked to some kind of explosion will now make the
screen flash to white and play an explosion sound effect. It's not quite the
"KABOOM" animation Kohntarkosz would have liked to add (he mentioned that in
the beta release thread), but it's better than nothing.
- The Distorp won't try to climb into the floor anymore.
- Removed unnecessary background tiles from many levels.
- Level 3: Replaced one of the two green gems with a yellow gem.
- Level 6: Moved both gem sockets above their doors in case a Velospike jumps
down to the door where shooting it would be extremely difficult.
- Level 8: Added a real exit next to the exit signs.
- Level 12: Replaced tile-based bonus items in the bottom right section with
sprite-based bonus items to avoid the "No free spots in tilearray!" error.
- Deadly pits at the bottom end of each level were modified to allow enemies to
fall out of the level and get removed.
- The number icons for the invisible parts of bridges and switchable tiles were removed from the tileset images.
- The "BRAIN-N-MBTIC" sign was changed into "BRAIN-O-MATIC".
- Fixed some tile placement and tile attribute errors.
- The image positions in the story and end texts were adjusted to make them
appear centered in the text screens. The slightly off-center position didn't
really bother me, but Kohntarkosz mentioned this as a known bug in the beta
release thread, so I changed it.
- The score positions in the high score screen were adjusted to make room for 7
digits. You can easily get over 1 million points in this game, so the score
should be displayed correctly.