Page 1 of 1

Keen 1-style items

Posted: Wed Sep 12, 2018 10:24 pm
by Flyingmouse
Image
EDIT: This is for Keen 3.
EDIT 2: I'm overthinking things. Instead of having an item exit the level and track the pogo from that specific level, I can instead use an unused level (22) and reprogram an item to increase its variable, then track the pogo from that variable. This avoids exiting the level after obtaining the pogo.

I'm planning to have both the pogo and raygun be collectible items (the raygun will stay as its item, while the pogo is an item that sets level 22's state to 1), with the gun having infinite shots so I can remove the ammo count entirely. I've done the patching to set up the status menu with two lines and the items to be collectable, but don't really know the status menu well enough to patch much else. Is it possible for the raygun and ankh tiles to show up only when you have at least 1 ammo (or 1 ammo specifically if its easier) and when level 22's state is set to at least 1 respectively, and show a blank tile otherwise? I have free space at the Extra Keen At code and Ordering Info/About ID screens, if it helps.

Re: Keen 1-style items

Posted: Tue Sep 18, 2018 11:26 pm
by levellass
What patching have you already done? It'd be a large but relatively simple patch to simply rewrite the Status Screen code more efficiently, which should allow the things you require to be added in, Keen 1 does the same thing in essence with the keycards and whatnot.

Re: Keen 1-style items

Posted: Wed Sep 19, 2018 4:34 pm
by Flyingmouse
Here's the status box-specific patching:

Code: Select all

#Disable EKA (Frees $0DE9-$0E21)
%patch $0DE7 $5D $C3
#Score replaces EKA
%patch $0F9C $00
%patch $0F86 $1C
#New sprite used for health (originally 4th frame of Jack); health moved to where score was
%patch $0FDB $B8 $01C4W  $50 $8B $C7 $05 $000BW  $D1 $E0 $D1 $E0
             $50 $8B $46 $FE $D1 $E0 $90
#Ankh not shown
%patch $105D $90 $90 $90
#Couldn't figure out how to remove Ankh count, this moves it offscreen
%patch $106E $95
#Window size (by line)
%patch $0EC0 $0007W
#Keys moved to where lives were
%patch $1084 $0001W #Keycards h position (4 keys start here)
%patch $108C $0004W #Keycards v position (All 4 keys this height)
#Raygun position
%patch $1023 $0013W #H position
#Scoreboard
%patch $1BAF4 "   ARMOR             SCORE  " $0A $00
%patch $1BB15 "      KEYS          ITEMS   " $0A $00
%patch $1BB3C " PRESS ANY KEY TO CONTINUE  " $0A $00
%patch $1BB3C " PRESS ANY KEY TO CONTINUE  " $0A $00 #Not sure on this bit, removing it screwed up the text
%patch $1BB5A "" $0A $00
%patch $1BB5D "" $0A $00
%patch $1BB60 "" $0A $00
%patch $1BB63 "" $00 ""
#Block reassignment
%patch $0EDF $0013W #2nd line
%patch $0EF7 $0011W #4th line
%patch $0F07 $0011W #5th line
%patch $0F17 $0011W #6th line
Which ends up looking like this ingame (haven't redone the tiles yet so it looks ugly):
Image
Currently this still reflects an earlier build where Keen has the pogo starting out and used an ammo count; I still need to remove the ammo count and replace it with the Ankh tile, which hopefully should be simple repositioning things I can do on my own time.

For ease of reference I need the tiles to appear based on ammo count ($9D48, word) and level 22's completion ($9D3B, single byte thanks to 32-level patch)