Keen 1: Pogo Fuel?

Request patches for Keens 1-3.
User avatar
Ceilick
Deputy Administrator
Posts: 402
Joined: Wed Sep 03, 2003 2:35 am

Post by Ceilick »

Thanks guys!
Would you also like the battery to not register in the inventory, since it only removes other abilities?
Yes, although since I'm hoping to have a completely redesigned status screen, I'm not sure this is relevant at the moment.
However, it may be feasible to change the palette back temporarily while the menu is displayed, and perhaps to black out the level during that time. This could either be really simple or really difficult depending on what the renderer does.
This would be ideal, although I may be able to work around it.
1. Did we break that at some point? Or do you mean you want the animation disabled?
Currently Keen is able to fire 'blanks'. I'd like him to only go into the shooting animation when he has ammo.
3. This is a tall order, as the doors are quite complicated. I do not think adding a new door is worth it. If you would settle for modifying an existing one, I will look in to it.
The thing is, I'm currently planning on using a level replayability patch and have Keen carry keys between levels. I'd strongly prefer to keep my options here as broad as possible; four keys/doors for broader inter-level puzzles, and this fifth door utilized solely as an objective in the context of single levels. If necessary, the the pizza, book, and Everclear can be used towards this end.
Dr. Kylstein
Posts: 120
Joined: Wed Dec 16, 2009 5:20 pm

Post by Dr. Kylstein »

Ceilick wrote:The thing is, I'm currently planning on using a level replayability patch and have Keen carry keys between levels. I'd strongly prefer to keep my options here as broad as possible; four keys/doors for broader inter-level puzzles, and this fifth door utilized solely as an objective in the context of single levels. If necessary, the the pizza, book, and Everclear can be used towards this end.
Well good news Captain! You've got a miracle worker on board! [/Scotty]

Image
However, it may be feasible to change the palette back temporarily while the menu is displayed, and perhaps to black out the level during that time. This could either be really simple or really difficult depending on what the renderer does.
Would you believe the game never clears the screen? Not ever! I've got the palette switching back and forth, but that's the best I can do right now.

I've got the pickup tweaks done as well. This patch has gotten rather lengthy for manually splitting up, so I'm waiting to see if levellass can update the patch converter soon. Of course, you could always just include a +120KB binary with your mod. ;P
User avatar
Fleexy
Site Admin
Posts: 490
Joined: Fri Dec 12, 2008 1:33 am
Location: Bloogton Tower

Post by Fleexy »

Well, it'd be better in binary form, because you need 3-5 bytes of text for every 1 byte of binaryness, not counting the %patch directives. Binary is certainly the way to go.
Dr. Kylstein
Posts: 120
Joined: Wed Dec 16, 2009 5:20 pm

Post by Dr. Kylstein »

Fleexy wrote:Well, it'd be better in binary form, because you need 3-5 bytes of text for every 1 byte of binaryness, not counting the %patch directives. Binary is certainly the way to go.
Most of the file is garbage. The actual patch is only a few hundred bytes at most.
User avatar
Fleexy
Site Admin
Posts: 490
Joined: Fri Dec 12, 2008 1:33 am
Location: Bloogton Tower

Post by Fleexy »

OK... I'd still go with binary just for the smallness. If it's ginormous simply because it has to include the in-between stuff, the extra parameters for %patchfile come in handy.
levellass
Posts: 3001
Joined: Wed Oct 11, 2006 12:03 pm
Location: Ngaruawahia New Zealand

Post by levellass »

Been meaning to do the patch converter, however (new) life has got in the way big time, I may even miss Keen day, but I'll see what I can do tomorrow.
Dr. Kylstein
Posts: 120
Joined: Wed Dec 16, 2009 5:20 pm

Post by Dr. Kylstein »

Don't overwork yourself. If need be, I can take care of it on my own.
Dr. Kylstein
Posts: 120
Joined: Wed Dec 16, 2009 5:20 pm

Post by Dr. Kylstein »

Here's the new patch:

Code: Select all

%ext ck1
%version 1.31
#
#--brightness palette--
#default colors
# %patch $21B50 $0 $1 $2 $2 $4 $5 $6 $7 $18 $19 $1A $1B $1C $1D $1E $1F $03
# makes all dark shades bright
%patch $21B50 $18 $19 $1A $1B $1C $1D $1E $1F $18 $19 $1A $1B $1C $1D
    $1E $1F $03
# makes all dark shades bright, and all bright shades white
#%patch $21B50 $18 $19 $1A $1B $1C $1D $1E $1F $1F $1F $1F $1F $1F $1F $1F $1F $03 
#
#--door cost--
%patch $21B61 $00000064L
#
#--subroutine hooks--
#wrap call to pause menu routine (only affects in-level)
%patch $1259 $E8 $15 $45
#patch into gravity routine
%patch $2C33 $E8 $C5 $2A $90 $90
#bypass ship part pickup code
%patch $4440 $E9 $C6 $12
#make lollipop a ship part (for convenience, since we bypassed the ship part code already)
%patch $459C $4440W
#make everclear the new door
%patch $45AA $9B $57
#change door code that takes away keys
%patch $28D0 $E9 $E6 $2E $90 $90 $90 $90 $90 $90 $90 $90
#        
# the above patches create calls into the following code:
%patch $56DB $55 $8B $EC $C7 $06 $1E $82 $02 $00 $B8 $01 $00 $50 $E8
    $F7 $69 $44 $44 $8C $D8 $8E $C0 $BA $00 $EB $B8 $02 $10 $CD $10
    $5D $C3 $83 $3E $96 $AA $00 $74 $01 $C3 $83 $06 $42 $82 $03 $C3
    $83 $7E $F6 $0B $75 $15 $C7 $06 $96 $AA $00 $00 $C7 $06 $94 $AA
    $01 $00 $C7 $06 $AA $5D $01 $00 $E8 $8E $DE $83 $7E $F6 $0C $75
    $15 $C7 $06 $94 $AA $00 $00 $C7 $06 $96 $AA $00 $00 $C7 $06 $AA
    $5D $00 $00 $E8 $53 $DE $83 $7E $F6 $0D $75 $15 $C7 $06 $94 $AA
    $00 $00 $C7 $06 $96 $AA $01 $00 $C7 $06 $AA $5D $00 $00 $E8 $81
    $FF $83 $7E $F6 $07 $0F $85 $17 $ED $C7 $06 $C8 $AA $00 $00 $C7
    $06 $9A $AA $00 $00 $E9 $08 $ED $BA $3B $25 $B8 $02 $10 $CD $10
    $E8 $BE $B6 $83 $3E $1E $82 $02 $75 $08 $BA $00 $EB $B8 $02 $10
    $CD $10 $83 $3E $1E $82 $00 $75 $08 $BA $19 $25 $B8 $02 $10 $CD
    $10 $C3 $A1 $CC $AA $8B $16 $CA $AA $2B $16 $11 $EB $1B $06 $13
    $EB $0F $8C $F6 $EB $56 $57 $E8 $45 $D0 $83 $C4 $04 $E9 $BF $ED
    $8B $5E $FE $83 $FB $0E $75 $15 $66 $C7 $06 $CA $AA $00 $00 $00
    $00 $66 $C7 $06 $CC $AA $00 $00 $00 $00 $E9 $05 $D1 $D1 $E3 $C7
    $87
%patch $57DA $9A $AA $00 $00 $E9 $FA $D0 $00 $00 $00 $00 $00 $00 $00
    $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
    $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
    $00 $00 $00 $00 $00 $00 $00 $00
%end
Since it appears levelass is still busy, I've started looking into the raygun patch. It's not as easy I thought.
levellass
Posts: 3001
Joined: Wed Oct 11, 2006 12:03 pm
Location: Ngaruawahia New Zealand

Post by levellass »

I'm busy, but I've also forgotten what the raygun patch is. (Having a kid will do that to you.) What was wanted again?
Dr. Kylstein
Posts: 120
Joined: Wed Dec 16, 2009 5:20 pm

Post by Dr. Kylstein »

Ceillick wrote:Currently Keen is able to fire 'blanks'. I'd like him to only go into the shooting animation when he has ammo.
The game basically "shoots first, asks questions later" on this one. Every one of Keen's states changes to the shooting state when the buttons are pressed. Then the shooting state checks for ammo, and changes to the stand/fall state if there's none available. So it looks like it will be necessary to change all of Keen's other AI states to do this properly.

Edit: Also, I've found a glitch in my patch when displaying the status box on the world map. I don't know why it's there, but it's not fatal.
levellass
Posts: 3001
Joined: Wed Oct 11, 2006 12:03 pm
Location: Ngaruawahia New Zealand

Post by levellass »

Couldn't you just make the shooting state use the standing animation then make that go to another state if he DOES have ammunition?
Dr. Kylstein
Posts: 120
Joined: Wed Dec 16, 2009 5:20 pm

Post by Dr. Kylstein »

He would still suddenly stop whatever he was doing, be it jumping, walking, pogoing, etc. I'm not sure what Ceillick wants, but I wouldn't consider just changing the animation without fixing that to be worthwhile.
User avatar
Ceilick
Deputy Administrator
Posts: 402
Joined: Wed Sep 03, 2003 2:35 am

Post by Ceilick »

Let's get back to this, shall we? Wouldn't want all this hard work going to waste :D

The Status Menu
1. A bug I've run into, presumably with Dr. Kylstein's patch which tweaks the palette, is that when the player activates the status menu on the world map, the palette changes!
2. It would be ideal for the world map/level to be 'blacked out' while the status menu is active.
3. I'll be needing a custom status menu. I have no idea how to do this, but have created an image file of what I want and will send it to anyone willing to make it for me.

Items
1. CTSpace cheat should activate when Keen collects the Teddy.

Cheats:
1. CTSpace should: remove shots, pogo, and points.
Dr. Kylstein
Posts: 120
Joined: Wed Dec 16, 2009 5:20 pm

Post by Dr. Kylstein »

I'm on the case. It may take a while for me to get back up to speed, but I still have the assembly source, it shouldn't be too hard.
Ceilick wrote: The Status Menu
1. A bug I've run into, presumably with Dr. Kylstein's patch which tweaks the palette, is that when the player activates the status menu on the world map, the palette changes!
I was aware of the bug on the world map shortly after my last post, but I wasn't able to figure it out at the time. I'll resume the quest.
Ceilick wrote: 2. It would be ideal for the world map/level to be 'blacked out' while the status menu is active.
I already explained above that blacking out the level (world or otherwise) is not possible. I have even tried displaying a bitmap behind it, but the preview loader trashes the level and the title drawer doesn't handle scrolling properly.
Ceilick wrote: 3. I'll be needing a custom status menu. I have no idea how to do this, but have created an image file of what I want and will send it to anyone willing to make it for me.
I seem to recall that one of Andy's classic patches was a configurable status menu. If that doesn't cover what you need (that's happened to me before), I will do a custom patch.
Ceilick wrote: Items
1. CTSpace cheat should activate when Keen collects the Teddy.

Cheats:
1. CTSpace should: remove shots, pogo, and points.
The items should be simple since I'm already in those code paths.

Edit:
I've implemented a work-around for the world map menu. I just made the routine skip the palette code on level 80. Interestingly, there is a separate call to show the menu on the world map, but it gets pre-empted by the handler used in levels! This is why the bug initially caught me by surprise. I still don't know why the screen turned white when opening the menu, but the darkening after closing means that the lights variable is set to zero when on the world map.

Edit 2:
I'm assuming you want the teddy bear to have the effects of C-T-Space without the message, that they should both do the same thing, and that keys should still be given.

Edit 3:
I think I have everything working. I'll just need that status screen mock-up. Or you can have the current patch now if you like.
User avatar
Ceilick
Deputy Administrator
Posts: 402
Joined: Wed Sep 03, 2003 2:35 am

Post by Ceilick »

I already explained above that blacking out the level (world or otherwise) is not possible. I have even tried displaying a bitmap behind it, but the preview loader trashes the level and the title drawer doesn't handle scrolling properly.
Hmm, could we possibly design the status menu to fill up the whole screen?
I'm assuming you want the teddy bear to have the effects of C-T-Space without the message, that they should both do the same thing, and that keys should still be given.
I've actually changed my mind (again) on this matter. I would like the teddy bear to activate CTSpace and have the only effect be: ctspace message followed by a game over.

One more additional patch: In Keenrush's latest mod, Extinction, he has a 'snowflake' item which, if collected and exited the level with, marks the level as done on the world map. I would like to have this with the Lollipop being the item to gain. It should award no points, just allow the level to be 'done' if completed with this in the inventory.

This would be used in combination with

Code: Select all

#Infinite replays of all levels:
%patch $8019 $00
Here is the status menu as I would like it to appear in game:

https://dl.dropbox.com/u/3654819/Keen/menu.bmp

The Energy Shield number should display how many points keen has (the liquor tile should be constantly displayed, similar to the Raygun and Pogo). The status menu should read 'umbral' when Keen has the Joystick (ideally, umbral will be displayed in the center of the pysical state area) and the Joystick will be displayed as being possessed in the inventory. Normal will be displayed when Keen does not have the Joystick or the Vacuum. Aethereal is displayed when Keen has the vacuum and the vacuum will be shown as possessed (agin, idealy taking the center space). Thusly, Keen's status will always read on the center line either Normal, Umbral, or Aethereal.

Thanks for the help!
Post Reply