Page 1 of 1

Mangling Machine

Posted: Sat Jun 17, 2006 12:38 pm
by levellord
WARNING! Much patchness ahead!

To top off my Keen 3 patching frenzy

The following is a breakdown of the Mangling Machine patches into various subsections. I hope this will make it easier to understand. Anyway, lets begin!


*****************************************
1.) In general:
*****************************************

Code: Select all

#Level Keen will go to ending if he destroys the MM 
%patch $8DF2 $10 $00

#Keen enters MM level sound [do-do-DO!]
%patch $570F $2C $00

*****************************************
2.) A pleasant chat:
*****************************************

MM's textboxes are different to the ending textboxes; they 'center' themselves via a code at $1124; all they need to be told is their size and the height they should center on. This limits your control over the textboxes, but makes it simpler too.

Code: Select all

#Nearly all level 16 text boxes *center* around this height
%patch $55F4 $14 $00
#Mortimer's two replies box heights
%patch $5634 $12 $00

#Height of first box [in text lines]
%patch $5722 $01 $00
#Width of first box
%patch $5726 $05 $00
#First line of text read from
%patch $5732 $6D $28
#How long box stays [in 144ths of a second = 1 1/4s]
%patch $5744 $B4 $00

#Stop first textbox appearing
%patch $5722 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90


#Height of second box
%patch $575C $01 $00
#Width of second box
%patch $5760 $05 $00
#First line of text read from
%patch $5769 $73 $28
#How long box stays [in 144ths of a second = 1 1/4s]
%patch $577B $B4 $00

#Stop second textbox appearing
%patch $575C $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90


#Height of third box
%patch $5793 $01 $00
#Width of third box
%patch $5797 $12 $00
#First line of text read from
%patch $57A0 $80 $28
#How long box stays [in 144ths of a second = 1 2/3s]
%patch $57B2 $F0 $00


#Height of fourth box
%patch $57CA $05 $00
#Width of fourth box
%patch $57CE $26 $00
#First line of text read from
%patch $57D7 $93 $28
#Second line of text read from
%patch $57E9 $BB $28
#Third line of text read from
%patch $57FB $E3 $28
#Fourth line of text read from
%patch $580D $0A $29
#Fifth line of text read from
%patch $581F $2F $29
#How long box stays [in 144ths of a second = 1 2/3s]
%patch $5831 $F0 $00

#Stop 4th textbox appearing
%patch $57CA $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90


#Height of 5th box
%patch $5849 $05 $00
#Width of 5th box
%patch $584D $26 $00
#1st line of text read from
%patch $5856 $56 $29
#2nd line of text read from
%patch $5868 $78 $29
#3rd line of text read from
%patch $587A $9F $29
#4th line of text read from
%patch $588C $C7 $29
#5th line of text read from
%patch $589E $ED $29
#How long box stays [in 144ths of a second = 1 2/3s]
%patch $58B0 $F0 $00

#Stop 5th textbox appearing
%patch $5849 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90


#Height of 6th box
%patch $58C8 $02 $00
#Width of 6th box
%patch $58CC $1F $00
#1st line of text read from
%patch $58D5 $FA $29
#2nd line of text read from
%patch $58E7 $1B $2A
#How long box stays [in 144ths of a second = 1 1/4s]
%patch $58F9 $B4 $00

#Stop 6th textbox appearing
%patch $58C8 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90


#Height of 7th box
%patch $5911 $04 $00
#Width of 7th box
%patch $5915 $23 $00
#1st line of text read from
%patch $591E $3A $2A
#2nd line of text read from
%patch $5930 $5B $2A
#3rd line of text read from
%patch $5942 $7E $2A
#4th line of text read from
%patch $5954 $A0 $2A
#How long box stays [in 144ths of a second = 1 1/4s]
%patch $5966 $B4 $00

#Stop 7th textbox appearing
%patch $5911 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90


#Height of 8th box
%patch $597E $01 $00
#Width of 8th box
%patch $%982 $22 $00
#First line of text read from
%patch $598B $C2 $2A
#How long box stays [in 144ths of a second = 1 1/4s]
%patch $599C $B4 $00

#Stop 8th textbox appearing
%patch $597E $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90
             $90 $90 $90

#Height of 9th box
%patch $59B3 $03 $00
#Width of 9th box
%patch $59B7 $26 $00
#1st line of text read from
%patch $59C0 $E5 $2A
#2nd line of text read from
%patch $59D1 $0C $2B
#3rd line of text read from
%patch $59E2 $33 $2B
#How long box stays [in 144ths of a second = 1 2/3s]
%patch $59F3 $F0 $00
Now the text for each window; each line ends with $00

Code: Select all

#First box
%patch $1C08D "No..." $00

#Second box
%patch $1C093 "It can't be!" $00

#Third box
%patch $1C0A0 "MORTIMER McMIRE!!!" $00

#Forth box
%patch $1C0B3 "Mortimer has been a thorn in your side" $0A $00
%patch $1C0DB "for as long as you can remember.  Your" $0A $00
%patch $1C103 "IQ test score was 314--Mortimer's was" $0A $00
%patch $1C12A "315.  He always held that over you," $0A $00
%patch $1C14F "never letting you forget for one day." $0A $00

#Fifth box
%patch $1C176 "All the practical jokes, the mental" $0A $00
%patch $1C19B "cruelty, the swirlies--each memory" $0A $00
%patch $1C1BF "makes your teeth grit harder.  And now" $0A $00
%patch $1C1E7 "he's out to destroy earth!  You have" $0A $00
%patch $1C20D "had enough!" $0A $00

#Sixth box
%patch $1C21A "'ALL RIGHT MORTIMER, WHAT'S THE" $0A $00
%patch $1C23B "PROBLEM?  WHY DESTROY EARTH?'" $0A $00

#Seventh box
%patch $1C25A "'You and all those mental wimps" $0A $00
%patch $1C27B "deserve to die!  I'm the smartest" $0A $00
%patch $1C29E "person in the galaxy.  Aren't I," $0A $00
%patch $1C2C0 "mister THREE FOURTEEN! Ah ha ha!'" $00

#8th box
%patch $1C2E2 "'I'll get you for that, Mortimer!'" $00

#9th box
%patch $1C305 "'Come and try!  You'll never get past" $0A $00
%patch $1C32C "my hideous Mangling Machine!  Prepare" $0A $00
%patch $1C353 "to die, Commander Clown!'" $00


*****************************************
3.) Sprites:
*****************************************

Code: Select all

#Points you get for shooting a spark [$3E8 = 1'000]
%patch $4E44 $05 $00

#Points you get for shooting a heart [$3E8 = 1'000]
%patch $4EE9 $E8 $03

#How many sparks need to be shot to destroy the arms
%patch $4E53 $06 $00

*****************************************
4.) Tiles:
*****************************************


***
Arms:
***

Code: Select all

#The arm will move down until this tile is 2 tiles below its middle
#This is the 'floor'
%patch $5214 $D7 $01

#Arm will not rise after falling unless sprite is placed on the same tile as shown here
%patch $51E3 $55 $02

#Tile arm is made out of
%patch $5237 $55 $02 #
#Tile where arm meets hand, arm will not rise unless this is BIGGER or equal than arm tile above
%patch $5255 $55 $02

#Left finger top
%patch $526D $6A $02
#Left finger middle
%patch $5286 $6C $02
#Left fingertip
%patch $52A0 $6B $02

#Right finger top
%patch $52B8 $6A $02
#Left finger middle
%patch $52D1 $6C $02
#Right fingertip
%patch $52EB $6B $02

#Wallpaper tiles that appear when arm moves:
%patch $5149 $A9 $00 #Falling left finger
%patch $517C $A9 $00 #Rising left finger
%patch $5131 $A9 $00 #Lifting arm
%patch $5194 $A9 $00 #Falling right finger
%patch $51C7 $A9 $00 #Rising right finger
%patch $5162 $A9 $00 #Unknown
%patch $51AD $A9 $00 #Unknown

***
Legs:
***

Code: Select all

#Legs will move down until this tile is right under the sprite [L leg moves up first]
%patch $541B $AE $01

#Leg tile 1; Leg will lift as high as these tiles go  above the sprite
%patch $53F0 $55 $02
#Leg tile 2: Legs will grow with this tile when moving down
%patch $544C $55 $02
#Unused leg tile
%patch $57AF $55 $02

#Left foot heel
%patch $5471 $6D $02
#Left foot right middle
%patch $548A $6F $02
#Left foot left middle
%patch $54A5 $6F $02
#Left foot toe
%patch $54C0 $6C $02

#Right foot heel
%patch $54D8 $6C $02
#Right foot right middle
%patch $54F1 $6F $02
#Right foot leftt middle
%patch $550B $6F $02
#Right foot toe
%patch $5526 $6D $02

#Wallpaper tiles that appear when legs rise/fall
%patch $532E $A9 $00 #Heel of both legs, rising

%patch $534D $A9 $00 #Left foot right middle rising/falling
%patch $5368 $A9 $00 #Left foot left middle rising/falling
%patch $5383 $A9 $00 #Left foot toe rising/falling

%patch $539E $A9 $00 #Right foot left middle rising/falling
%patch $53B8 $A9 $00 #Right foot right middle rising/falling
%patch $53D3 $A9 $00 #Right foot toe rising/falling

*****************************************
5.) Rise and fall of the Mangling Machine:
*****************************************

Code: Select all

#Neither foot rises
%patch $5534 $00

#Pause after both feet touch ground before right foot rises
%patch $5542 $C8 $00


*****************************************
6.) Bang bang!:
*****************************************

Code: Select all

#Left arm replacement tile
%patch $5014 $A9 $00 #Zaps/zots don't appear on this tile [background wallpaper, not replaced]
%patch $5019 $A9 $00 #Stuff replaced with

#Right arm replacement tile
%patch $5045 $A9 $00 #Zaps/zots don't appear on this tile [background wallpaper, not replaced]
%patch $504A $A9 $00 #Stuff replaced with

#Body replacement tile
%patch $50D6 $A9 $00 #Zaps/zots don't appear on this tile [background wallpaper, not replaced]
%patch $50DB $A9 $00 #Stuff replaced with

#Left arm replacement area h-start
%patch $4FFC $05 $00 
#h-area end [5-7 = 3 tiles wide]
%patch $5029 $07 #no $00 on end!]

#Right arm replacement area h-start
%patch $502D $11 $00 
#h-area end [11-13 = 3 tiles wide]
%patch $505A $13 #no $00 on end!]

#Both arms v-start 
%patch $4E93 $06 $00
#Both arms v area stop
%patch $4FEA $13 $00

#Vertical tile space [One row is destroyed, then one 1 tile below... till the right number of
#rows is destroyed. For example normal is $13-$06 = 13 rows destroyed, usually the whole arn]
#Aww hell,try $02 in the patch and see what I mean.
%patch $4FDA $01

#The right arm is not destroyed [but stops moving]
%patch $5052 $F0 $FE
#The left arm is not destroyed [but stops moving]
%patch $5021 $21 $FF

#The arms don't stop moving when six sparks are shot.
%patch $40EC $01

#Both arms keep being destroyed down the level [Just try it out]
%patch $4FF0 $0A $00
#And this patch is the same, but better
%patch $4FDD $00

*****************************************
7.) Misc:
*****************************************

Code: Select all

#Hand keeps falling, except for l finger, which stops where it should
%patch $52F0 $90

#Neither foot rises
%patch $5534 $00

#Both feet spend nearly all the time on the ground; the rise/fall VERY fast!
%patch $5548 $01

#When 6 sparks are shot, MM body *below* arm sprites blows up, Keen goes to ending
%patch $5062 $90
The document is located here: http://levellord.toxicsheep.com/Index/K ... achine.txt

Enjoy!

Posted: Sat Jun 17, 2006 11:14 pm
by Freeyorp101
Is there any way to change the shape of the arms or legs?
%patch $5149 $A9 $00 #Falling left finger
%patch $517C $A8 $00 #Rising left finger
%patch $5131 $A9 $00 #Lifting arm
%patch $5194 $A9 $00 #Falling right finger
%patch $51C7 $A9 $00 #Rising right finger
Isn't $A8 the blue key card?
#The arm will move down until this tile is 2 tiles above its middle
#This is the 'floor'
err... shouldn't that be below if it's the floor?

Posted: Sun Jun 18, 2006 1:32 am
by levellord
Ooops! Right on both counts! ^^;

Currently there is no way to change the shape of the arms or legs; however I belive it will be easily possible to delete or move tiles in them, anything in particular you want done?