Contact Sam Cruise Bugs
The trouble with hiding
When Sam is wanted by the police, he is supposed to be able to hide inside buildings (but not on roofs or in stairwells that are visible from outside) in order to evade arrest. However, because of a bug in the routine that checks whether Sam can be spotted by the police in his current location (see 28886), Sam's attempts at hiding may be either futile or undeservedly successful. In particular, if Sam is on the roof of or inside a building other than the hotel (and not in a stairwell that is visible from outside), he will be invisible to the police if he's facing right, but visible if he's facing left.
POKE 28910,44
Hiding in plain sight
If Sam is wanted by the police, one place he can go and be certain that the cops will not get him is the far right edge of the roof of the apartment building next to no. 74. As soon as Sam reaches that spot - at coordinates (23,6), to be precise - any policemen who are chasing him will turn round and head for the top floor of the hotel instead.
hiding_in_plain_sight
The reason for this is that the region containing the roof of the apartment building next to no. 74 is defined such that it extends only to x-coordinate 22 instead of 23, and the region adjacent to it (beginning at x-coordinate 23) corresponds to the top floor of the hotel (see 61416).
In addition, when the cops reach the top floor of the hotel, they will proceed to the wall of the room on the far right and then freeze.
hiding_in_plain_sight2
When Sam feels that the time is right to turn himself in, he can unfreeze the policemen by approaching them. When he gets close enough, one of them will pick him up.
POKE 61416,24
Hiding in the ceiling
Another place Sam can go and be certain that the cops will not get him is the room above his office. First you'll need to get the hook (POKE 32745,64 while a game is in progress). Then go to the top-floor cyan room in the apartments next to no. 19, call the police, hang up, go to the right edge of the roof of the apartments, throw the hook over the roof of no. 19, make your way across the rope to the roof of no. 17, and go down into the room above Sam's office. Instead of following Sam there, the police will go to Sam's office instead and run up and down continuously.
hiding_in_the_ceiling
The reason for this is that the routine at 60812 assumes that every level of a building is reachable by climbing staircases going up from the ground floor. This is true for every building in the city except no. 17: there is no staircase leading up to the top floor from Sam's office below. So the police make their way to Sam's office only to find that there is no route up to their destination.
Inside and out
Go to the far left of the room above Sam's office (to do which you'll need the hook: POKE 32745,64) and turn round to face right; part of Sam's sprite will appear outside the room.
inside_and_out
Under the rope
After throwing the hook over the roof of no. 19, cross the rope to the extreme left edge of the roof of no. 17, turn round, and press 'A' ('down') or 'O' ('left') twice - Sam will step down below the level of the rope so that his feet are hidden. From here it's possible to walk below the level of the rope all the way back to the roof of the apartment building.
under_the_rope
(To give Sam the hook while a game is in progress, do POKE 32745,64.)
Lana doesn't answer
When Sam's score hits 50, the first phone message from Lana (message 59: LANA ANSWERED 'OOH SAM! THEY KILLED MY FIANCE AND STOLE THE BUDGIE') is activated (see 24569). However, if Sam calls Lana (on 7162) from the phone in the third-floor magenta room in the apartments next to no. 74 while the room past the catwalk is on-screen, no one answers.
lana_no_answer
The reason no one answers is that (a) a phone in a room that is currently on-screen will be answered only if a character is nearby (see 30511), and (b) Lana's phone is the one in the room past the catwalk (see 27392).
Hook v. bird
When Sam phones Lana while in possession of the budgie, he should receive the message 'LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE''. However, if Sam phones Lana while he has both the hook and the budgie, he will get no message; this is because the event table entry at 24763 checks that Sam has the budgie and only the budgie. (POKE 32745,192 gives Sam the hook and the budgie while a game is in progress.)
POKE 24768,56: POKE 24779,48
OK Cruise we're not coming
In game mode 4 - after Lana has been put in jail and the mob is after Sam - Sam can call 999 and hear the message 'OK CRUISE WE'RE COMING'. However, no policeman ever arrives, because there are no police on patrol duty in game mode 4.
Post-traumatic teleportation disorder
When Sam knocks a character over by landing on his head from above, that character is supposed to:
(1) drop to the the floor and remain there for a brief period
(2) stand up and stagger around for another brief period
(3) walk back to the spot where he was hit on the head
(4) resume whatever he was doing at the time he was struck
But because of a bug in the routine at 64131, if the character was midstride at the time of the collision, the walking back part of step (3) is replaced by an immediate teleportation to the character's pre-knockout, post-midstride coordinates. As a result, you might see the recovering character zip from A (the point where he stops staggering around) to B (the spot just to the left or right of where he was hit on the head) without passing through the intervening space.
POKE 64140,40
The persistent sniper
It's possible for part of the sniper's sprite to remain on screen after the screen has scrolled the sniper's body out of view. To see this, go to the first floor of the apartments next to no. 19, and position Sam so that the doorsteps of no. 19 are visible on the left side of the screen.
persistent_sniper1
When the sniper appears on the left side of the doorsteps, move Sam left so that the screen scrolls right. The brim of the sniper's hat and maybe also his gun will remain visible at the right edge of the screen until wiped away by other characters passing by on the sidewalk.
persistent_sniper2
The conspicuous sniper
One of the defining characteristics of a sniper is that he should remain concealed or inconspicuous when aiming at his target. However, because of a bug in the sniper-controlling routine at 25118, the sniper will, after emerging to take aim, remain brazenly out in the open for all to see until Sam gets too close. The apparent intention of the sniper-controlling routine is that the sniper should emerge, shoot once or twice, and then hide again when byte 16 of the sniper's buffer has been decremented to zero from its original value between 10 and 25 (see 25307).
POKE 25113,46
POKE 25114,16
POKE 25115,52
POKE 25116,24
POKE 25117,84
POKE 25192,176
No. 19 lockout
It's possible to lock the gangsters at no. 19 out of their house, leaving Sam free to enter via the roof and explore the mob stronghold with impunity. To achieve this feat, proceed to no. 19 and stand on the right edge of the front doorstep.
no_19_lockout1
When the door opens, the gangsters will walk out onto the doorstep and then freeze, as if uncertain where to go next to grab Sam.
no_19_lockout2
If Sam then goes back down to the sidewalk, the gangsters will unfreeze and start knocking on the front door - but because there's no one at home to answer it, they'll never get in.
If, on the other hand, Sam approaches the gangsters on the doorstep, one of them will pick him up with the intent of carrying him to the roof, but will instead get stuck at the front door, unable to get in.
The reason that the gangsters freeze on the doorstep of no. 19 is a combination of a quirk in the routine at 60812 (which determines the next move a character should make to reach his destination), the boundary of the inner region that is watched by the gangsters (as defined at 64836), and the logic in the routine at 31362 (which controls a gangster who is chasing Sam). When a gangster arrives at the front door his coordinates are (211,31,1) and Sam's are (212,31,2). The routine at 60812 then sends the gangster down a step to (210,32,2) instead of simply turning him round and changing his z-coordinate from 1 to 2. But (210,32,2) is outside the inner region watched by the gangster (which extends only to y-coordinate 31), which means the routine at 31362 will abort without moving the gangster anywhere while Sam remains inside the inner region.
POKE 62177,136: POKE 62178,144 (to give each gangster a key to no. 19)
POKE 64839,33: POKE 64843,33 (to extend the inner region and prevent the gangsters from freezing on the doorstep)
Frozen gangster
The gangsters at no. 19 are not the only ones who can become confused and freeze while chasing Sam: the gangster who watches for Sam outside the police station in game modes 2 and 3 is susceptible to the same trick as well.
To see this, Sam first needs to get to the right edge of the police station steps, just above the sidewalk:
frozen_gangster1
(Sam can get here without being caught by the gangster either by going via the roof of no. 27 - assuming he has the key to that house - or by calling the police and enduring a brief stint in jail first.) When the gangster is beyond the left edge of the police station steps, step down onto the sidewalk, and then quickly back up onto the police station steps. The gangster will follow Sam onto the first step above the sidewalk and then freeze:
frozen_gangster2
The gangster will remain frozen until Sam leaves the outer region (0<=x<255, 10<=y<36) by going to y=9 (between the 4th and 5th floors of a building). It's possible for Sam to run past the gangster (towards no. 31 on the left) while he's frozen without being picked up, but this manoeuvre requires perfect timing that's impossible to judge from just watching the screen, and will fail more often than not.
An urgent message delayed
The routine at 30160 is supposed to determine the amount of time for which the current message (or message portion) should remain on screen before the next one is displayed. This interval is normally 2.56s, but is reduced to 0.64s if an urgent message has been queued (see 30154). However, if the urgent message number is stored at a lower address in the 8-byte message queue at 32696 than the number of the message currently being displayed, the routine at 30160 will fail to find it, and so messages will continue to be displayed at normal speed. To demonstrate this:
1. When a new game starts, the message index (held in bits 0-2 at 32695) is 3; increase it to 7 by picking up a phone and hanging up twice.
2. Pick up a phone other than Sam's, dial 7337, and wait for Daisy to start relaying the message to Sam; now the message index is 7 (again).
3. While Daisy is relaying the message to Sam, quickly hang up and then press 'J'; this queues an urgent message (see 24951) with index 0, which is less than the index of the message currently being displayed (7).
4. Note how the game pauses, but the message from Daisy continues to display at normal speed, until finally 'JOYSTICK?' appears.
Blank tiles behaving badly
The knocked-out sprites for certain characters contain blank tiles that should be transparent:
Animatory state 39 Animatory state 55 Animatory state 79 Animatory state 87 Animatory state 95 Animatory state 103
The reason for this is that the routine at 63784, which prepares the tiles for a knocked-out sprite by making rotated copies of tiles 1-4 and 6-9 of the character's base sprite, needlessly makes rotated copies of blank tiles (those with a tile reference of 0) too. However, the blank tile (the graphic and mask data for which are located at addresses 50944 TO 54784 STEP 256) does not contain the correct mask data - it is all zeroes instead of 255s. This is not normally a problem because the sprite-tile-printing routine at 59635 is optimised to ignore sprite tiles with a tile reference of 0. But the rotated copies of the blank tile have non-zero tile references, and are therefore drawn.
This bug is noticeable if Sam knocks over one of the affected characters on the sidewalk: the blank tiles will obscure parts of the building (and possibly other characters) behind the stunned character, as shown here where Sam has just landed on Daisy after being dropped from the roof of no. 19:
daisy_ko
The simplest fix is to set the mask data for the blank tile to all 255s:
POKE 51200,255
POKE 51712,255
POKE 52224,255
POKE 52736,255
POKE 53248,255
POKE 53760,255
POKE 54272,255
POKE 54784,255
Another fix (which leaves the graphic and mask data for the blank tile completely unused) is to set the relevant tile references in the affected sprites to 0:
Animatory state 39 Animatory state 55 Animatory state 79 Animatory state 87 Animatory state 95 Animatory state 103
POKE 55463,0 POKE 55479,0
POKE 57783,0
POKE 55503,0 POKE 55511,0 POKE 55519,0
POKE 57823,0
POKE 55527,0
Extended earpiece
The icon for the ringing telephone is perhaps not as it should be. Note how the business end of the earpiece is 3 pixels long, compared with 2 pixels when the phone is not ringing:
phone extended_earpiece
However, this is probably not a bug in the graphic data itself. If the routine at 28660 is modified so that it copies the otherwise unused two bytes of graphic data (which correspond to the earpiece) from 28739 to the screen, the ringing telephone icon looks like this instead:
phone extended_earpiece2
POKE 28691,5
The missing blue line
When Sam hits the ground after being dropped from the roof of a building by a gangster, the portion of the screen containing the play area (that is, the top 20 rows) is scrolled up and down seven times, with an accompanying sound effect. On each upward scroll, the 20th row of the screen is supposed to be replaced by a solid blue line (attribute value 9). However, because of a bug in the scrolling routine (see 64618), instead of the 20th row of the attribute file being POKEd with 9s, the top pixel line of the 20th row of the display file is POKEd with 9s, which produces quite a different - and visually jarring - effect.
POKE 64668,90
z-coordinate confusion
When Sam moves up from the sidewalk onto the front steps of a building, his z-coordinate remains at 4 instead of changing to 2, which means that people walking past on the sidewalk below will be drawn behind him instead of in front of him:
z_confusion
The reason for this is that the location descriptors for z=4 (see 50176) that correspond to the front steps of buildings don't have bit 0 or bit 1 set to indicate that a z-coordinate transition should occur, and so the section of code at 60404 leaves Sam's z-coordinate unchanged upon climbing the step.
Conversely, the location descriptors for z=4 that correspond to the places where there is a step up from the road to the sidewalk (at x=7, 14, 164 and 198) do have bit 0 or bit 1 set. So when Sam moves up from the road to the sidewalk, his z-coordinate will change from 4 to 2, which means that other characters on the sidewalk will be drawn not behind him (as is the norm) but in front of him.
Frozen fiver
After Sam has collected the hook from no. 74, an immobilised banknote can be seen on the sidewalk outside that building or the hotel. The banknote can be somersaulted onto repeatedly (to gain extra cash) without disappearing.
The reason this happens is that the routine at 25420 brings the banknote out of service when Sam collects the hook - thus leaving character buffer 229 available for use by the hook when it's thrown - but doesn't remove the banknote from view.
Run, gangster, run
Approach the gangster on the catwalk from the left, and stop at the point where moving right once would make the gangster starting chasing Sam (who is shown outside here for clarity):
run_gangster_run
Now quickly take one step right, and then turn round and run up to the roof of the apartment building. After briefly chasing Sam, the gangster will return to the catwalk, but now he is running continuously instead of walking.
Tricks with light switches
Some light switches are accessible in places they're probably not supposed to be: when flipped, they affect lights in places other than where the light-switch-flipper is standing.
For example, go to the right-hand side of the shop underneath no. 17 and flip the light switch - it switches on the lights on the second and third floors on the right-hand side of no. 17.
Now go into the door of no. 17 and move as far right as you can; flip the light switch there and the light in the shop underneath no. 15 comes on.
This time, go into the door of no. 17 and move as far left as you can; flip the light switch there and the light in the shop underneath no. 17 comes on.
Displaced dame
When the screen scrolls left or right as Sam moves through the play area, certain members of character groups 215-221 are moved in and out of operation, depending on the portion of the play area that is visible. In particular, the lady in a hat who is a member of character group 215 is in operation only when the far left edge of the play area is on screen (see 65198). That is a rather small range of operation - so small, in fact, that it's possible to see her move out of operation (and become motionless) when the left edge of the play area scrolls out of view:
1. Go to the right-hand magenta room on the third floor of the apartment building at the far left of town.
2. Stand at the location such that moving right once will scroll the screen left (see the image below).
3. Wait until the lady in a hat in the room on the left on the same floor is at the rightmost extremity of her orbit, so that she is partially visible in the stairwell (see the image below).
4. Quickly move right so that the screen scrolls left before the lady turns round and heads back into the room.
5. Note that the portion of the sprite of the lady in a hat that is visible in the stairwell remains visible but motionless either until it's wiped away by another character moving past it, or until the screen scrolls right and the lady starts moving again.
displaced_dame
Displaced dude
Like the displaced dame described above, the man in a bowler hat who is a member of character group 221 and walks up and down on the second and third floors of the apartment building next to no. 19 can be seen becoming motionless when the screen scrolls too far to the right:
1. Go to the road outside the apartment building next to no. 19 and stand at the location shown in the image below such that no part of no. 27 is visible on the left.
2. Wait until the man in a bowler hat comes into the cyan room on the second floor of the apartment building and is visible through one of the windows.
3. Quickly move left so that the screen scrolls right (bringing the traffic lights and the left side of no. 27 into view).
4. Note that the man in a bowler hat remains visible but motionless through the window.
displaced_dude