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
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
Enjoy!