PATCH: Pogo on and off in Keen 2 using ammo and pogo tiles

Completed patches for Keen2.
Post Reply
KeenRush
Patch Maker
Posts: 1984
Joined: Sun Aug 31, 2003 2:52 pm
Location: Sand Yego
Contact:

PATCH: Pogo on and off in Keen 2 using ammo and pogo tiles

Post by KeenRush » Sun Jul 18, 2004 8:43 am

I'm experiementing a bit today..
Thanks to adurdin for that "pogo = zero ammo" patch he made for Xky.. This same is easy to do with Keen 1 and 3 as well.

Code: Select all

# Make pogo tile to take Keen's pogo (set pogo zero) in Keen 2 v. 1.31
%patch $7293 $C7 $06 $B0 $9A $00 $00
Last edited by KeenRush on Sun Jul 18, 2004 11:36 am, edited 1 time in total.

User avatar
levellord
Crazy pAtChEr
Posts: 1401
Joined: Thu Nov 20, 2003 11:35 pm
Location: NewZealand
Contact:

Post by levellord » Sun Jul 18, 2004 9:02 am

The antipogo!

[A bit pointless since adurdin has a 'ammo= nopogo' , 'CTSpace = nopogo' and 'Keen has no pogo' patch.

Still, it could be useful...

KeenRush
Patch Maker
Posts: 1984
Joined: Sun Aug 31, 2003 2:52 pm
Location: Sand Yego
Contact:

Post by KeenRush » Sun Jul 18, 2004 9:38 am

ammo= nopogo
Hmmm, I couldn't (and still can't) remember that.

But well, it could be used that ammo tile gives pogo and pogo tile takes it away. With that in some areas Keen could get pogo and on others it could be taken away. :) I might use that, just would need to change raygun to give pogo. I'll try that now.

Edit: Too bad, no success. Could you like the topic where is that "ammo= nopogo", I can't find it.. (It would be helpful.)

KeenRush
Patch Maker
Posts: 1984
Joined: Sun Aug 31, 2003 2:52 pm
Location: Sand Yego
Contact:

Post by KeenRush » Sun Jul 18, 2004 11:29 am

Ok, here's patch that changes ammo tile to increase pogo value by one instead of adding some amount of shots to ammo counter.

Correct me if I'm wrong, but I think this is the way those booleans there on Keen exe work. They consist of 2 bytes, so they're words. When they are false, the value is 00 00. When they are true, the value is 01 00. But it could be for example 8423, E7 20 too -- the game checks only that boolean is false if it's 00 00 and true when it's other than 00 00 (I guess). And 01 00 just happens to be simplest way to mark some other than 00 00. :)

So, this patch, used with the patch on the posts above, can allow pogo being toggled on and off. You can use pogo tile to set pogo off, and this ammo tile to give Keen the pogo. That could be used on some tricky mazes or something.

If Keen already has pogo and he gets ammo tile that gives him pogo, he can keep the pogo since the value 01 00 just changes to 02 00 which is 'true' also. (Again, correct me if I'm not right..)

Also, if I remember correct; when you're pogoing and get pogo tile while you're pogoing, and it changes pogo to zero, you can bounce until you toggle pogo off. After that you can't start pogoing.

And, as that pogo tile changes pogo value to zero, it always works (if it would only decrease pogo value by one, and pogo value would happen to be 03 00 for example, it wouldnt' work -- but since it goes to zero every time, it works).

I probably use this, unless I don't find any better use for pogo and ammo tiles.

Code: Select all

# Make raygun tile increase pogo counter by one in Keen 2 v. 1.31
%patch $728A $B0 $9A $01

Also, I still couldn't hit any other patch from the forum that changes pogo to go zero when getting ammo tile....

User avatar
adurdin
Site Founder
Posts: 546
Joined: Fri Aug 29, 2003 11:27 pm
Location: Edinburgh, Scotland
Contact:

Post by adurdin » Mon Jul 19, 2004 12:24 pm

KeenRush wrote:
Correct me if I'm wrong, but I think this is the way those booleans there on Keen exe work. They consist of 2 bytes, so they're words. When they are false, the value is 00 00. When they are true, the value is 01 00. But it could be for example 8423, E7 20 too -- the game checks only that boolean is false if it's 00 00 and true when it's other than 00 00 (I guess). And 01 00 just happens to be simplest way to mark some other than 00 00. :)
That's correct. Booleans don't exist per se in C; instead, all true/false comparisons are actually nonzero/zero comparisons.

Post Reply