Data |
Prev: 5FD6 | Up: Map | Next: 60F3 |
Initialised by the routine at 7541, and processed on every pass through the main loop by the routine at 7500. Each of the 14 entries in this table corresponds to a significant event in the game that requires changes to be made (such as making a key available, or Daisy having a new message for Sam). The bits in the first byte of each entry have the following meanings:
The first entry makes Sam's oil man disguise work with the gangsters at no. 19, and makes the policemen roam the entire city (instead of just the sidewalk near Sam's office) while on the beat. It is triggered at the start of a new game.
|
||||||||||||||
5FE0 | DEFB $00 | |||||||||||||
5FE1 | DEFB $0D | 13 bytes until the next entry | ||||||||||||
5FE2 | DEFB $01 | 1 condition follows | ||||||||||||
5FE3 | DEFW $7FEE | 7FEE holds the game mode indicator | ||||||||||||
5FE5 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
5FE6 | DEFB $01 | Game mode | ||||||||||||
5FE7 | DEFB $02 | 2 POKEs follow (to do if the game mode is 1) | ||||||||||||
5FE8 | DEFW $FD4C | FD4C holds the disguise ID in the region definition table at FD44 | ||||||||||||
5FEA | DEFB $07 | Disguise ID (oil man) | ||||||||||||
5FEB | DEFW $7364 | Set the operand of the 'OR' instruction at 7363 to 0 (to make the policemen roam the entire city) | ||||||||||||
5FED | DEFB $00 | |||||||||||||
The next entry makes Sam's oil man disguise known to the gangsters at no. 19. It is triggered when Sam passes the point on the rope above the roof of no. 19 where someone below says 'CRUISE WAS DRESSED AS THE OIL MAN. DONT LET ANYONE PAST'.
|
||||||||||||||
5FEE | DEFB $00 | |||||||||||||
5FEF | DEFB $0A | 10 bytes until the next entry | ||||||||||||
5FF0 | DEFB $01 | 1 condition follows | ||||||||||||
5FF1 | DEFW $7D40 | The object table entry at 7D40 is for where someone below says 'CRUISE WAS DRESSED AS THE OIL MAN...' | ||||||||||||
5FF3 | DEFB $20 | JR NZ (for the instruction at 7522) | ||||||||||||
5FF4 | DEFB $20 | |||||||||||||
5FF5 | DEFB $01 | 1 POKE follows | ||||||||||||
5FF6 | DEFW $FD4C | FD4C holds the disguise ID in the region definition table at FD44 | ||||||||||||
5FF8 | DEFB $FF | Disguise ID (matches none of Sam's) | ||||||||||||
5FF9 | DEFB $00 | |||||||||||||
5FFA | DEFB $10 | 16 bytes until the next entry | ||||||||||||
5FFB | DEFB $01 | 1 condition follows | ||||||||||||
5FFC | DEFW $7F9C | 7F9C holds the LSB of the score | ||||||||||||
5FFE | DEFB $30 | JR NC (for the instruction at 7522) | ||||||||||||
5FFF | DEFB $32 | Score LSB for comparison | ||||||||||||
6000 | DEFB $03 | 3 POKEs follow (to do when the score LSB is >= 50) | ||||||||||||
6001 | DEFW $6B75 | Initialise phone message 0x3A: 'DAISY SAID 'LANA RANG - HER NEW NUMBERS 7162. THE POLICE WERE HERE'' | ||||||||||||
6003 | DEFB $5C | |||||||||||||
6004 | DEFW $6B78 | Initialise phone message 0x3B: 'LANA ANSWERED 'OOH SAM! THEY KILLED MY FIANCE AND STOLE THE BUDGIE'' | ||||||||||||
6006 | DEFB $24 | |||||||||||||
6007 | DEFW $6B7B | Initialise phone message 0x3C: 'LANA ANSWERED 'OOH SAM! THAT CROOK THE FAT MAN'S JUST MOVED INTO NO 15'' | ||||||||||||
6009 | DEFB $24 | |||||||||||||
The next entry makes the required changes when Sam enters no. 15 using the key in game mode 1.
|
||||||||||||||
600A | DEFB $00 | |||||||||||||
600B | DEFB $27 | 39 bytes until the next entry | ||||||||||||
600C | DEFB $03 | 3 conditions follow | ||||||||||||
600D | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
600F | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6010 | DEFB $F9 | |||||||||||||
6011 | DEFW $E602 | This address holds Sam's y-coordinate | ||||||||||||
6013 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6014 | DEFB $1D | |||||||||||||
6015 | DEFW $7FEA | 7FEA holds the key inventory | ||||||||||||
6017 | DEFB $30 | JR NC (for the instruction at 7522) | ||||||||||||
6018 | DEFB $40 | Bit 6 set: Sam has the key to no. 15 | ||||||||||||
6019 | DEFB $08 | 8 POKEs follow | ||||||||||||
601A | DEFW $6B51 | Initialise phone message 0x3F: 'DAISY SAID 'SAM - A GANGSTER'S WATCHING FOR YOU OUTSIDE THE POLICE STATION'' | ||||||||||||
601C | DEFB $5E | |||||||||||||
601D | DEFW $6B54 | Initialise phone message 0x40: 'A VOICE SAID 'OK FATS THE HOOK'S AT NO 74 AND ALS GUARDING IT'' | ||||||||||||
601F | DEFB $5E | |||||||||||||
6020 | DEFW $6B7E | Initialise phone message 0x4C: 'DAISY SAID 'LANA RANG - THAT FAT MAN HAS TWO KEYS NOT JUST ONE '' | ||||||||||||
6022 | DEFB $5C | |||||||||||||
6023 | DEFW $6B81 | Initialise phone message 0x41: 'LANA ANSWERED 'OOH SAM! BUD SAID HE'D MEET ME ALONE IN THE HOTELS RIGHT HAND GREEN ROOM. I'M SCARED - WILL YOU GO INSTEAD?'' | ||||||||||||
6025 | DEFB $24 | |||||||||||||
6026 | DEFW $7D38 | Disable the object table entry at 7D38 (for where someone growls 'NO KEY EH!' in no. 15) | ||||||||||||
6028 | DEFB $21 | |||||||||||||
6029 | DEFW $750C | Change the operand of the JP instruction at 750B to 6152 (to display the cutscene before entering game mode 2) | ||||||||||||
602B | DEFB $52 | |||||||||||||
602C | DEFW $750D | |||||||||||||
602E | DEFB $61 | |||||||||||||
602F | DEFW $605A | Activate the entry at 605A (below) | ||||||||||||
6031 | DEFB $80 | |||||||||||||
6032 | DEFB $00 | |||||||||||||
6033 | DEFB $11 | 17 bytes until the next entry | ||||||||||||
6034 | DEFB $02 | 2 conditions follow | ||||||||||||
6035 | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
6037 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6038 | DEFB $40 | x-coordinate for comparison | ||||||||||||
6039 | DEFW $E602 | This address holds Sam's y-coordinate | ||||||||||||
603B | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
603C | DEFB $07 | y-coordinate for comparison | ||||||||||||
603D | DEFB $02 | 2 POKEs follow | ||||||||||||
603E | DEFW $750C | Change the operand of the JP instruction at 750B to 7A04 | ||||||||||||
6040 | DEFB $04 | |||||||||||||
6041 | DEFW $750D | |||||||||||||
6043 | DEFB $7A | |||||||||||||
The next entry restarts Al's command list when Sam calls 6124, thus giving Sam a chance to get past him and collect the hook.
|
||||||||||||||
6044 | DEFB $40 | Bit 6 set: always active | ||||||||||||
6045 | DEFB $15 | 21 bytes until the next entry | ||||||||||||
6046 | DEFB $03 | 3 conditions follow | ||||||||||||
6047 | DEFW $7F9A | 7F9A holds the ID of the telephone Sam is calling | ||||||||||||
6049 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
604A | DEFB $66 | Telephone ID: 6124 (no. 74, second floor) | ||||||||||||
604B | DEFW $7FFE | 7FFE holds X, the x-coordinate of the leftmost column of the play area on screen | ||||||||||||
604D | DEFB $38 | JR C (for the instruction at 7522) | ||||||||||||
604E | DEFB $38 | x-coordinate for comparison | ||||||||||||
604F | DEFW $DD16 | This is byte 0x16 of character 0xDD's buffer (used by Al at no. 74 when X<56) | ||||||||||||
6051 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6052 | DEFB $0C | Command list offset for comparison (points at the fourth command in the command list at FD30) | ||||||||||||
6053 | DEFB $02 | 2 POKEs follow | ||||||||||||
6054 | DEFW $DD16 | This is byte 0x16 of character 0xDD's buffer (used by Al at no. 74) | ||||||||||||
6056 | DEFB $00 | Set this to 0 to restart Al's command list | ||||||||||||
6057 | DEFW $DD09 | This is byte 0x09 of character 0xDD's buffer (used by Al at no. 74) | ||||||||||||
6059 | DEFB $00 | Remove the primary command routine address (7A6A) from bytes 0x08 and 0x09 of Al's buffer (so that the first command in the command list takes over immediately) | ||||||||||||
605A | DEFB $81 | |||||||||||||
605B | DEFB $1C | 28 bytes until the next entry | ||||||||||||
605C | DEFB $04 | 4 conditions follow | ||||||||||||
605D | DEFW $7FC9 | 7FC9 holds the ID of Sam's current disguise | ||||||||||||
605F | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6060 | DEFB $04 | Disguise ID (woman) | ||||||||||||
6061 | DEFW $E602 | This address holds Sam's y-coordinate | ||||||||||||
6063 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6064 | DEFB $0D | y-coordinate for comparison | ||||||||||||
6065 | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
6067 | DEFB $30 | JR NC (for the instruction at 7522) | ||||||||||||
6068 | DEFB $5E | x-coordinate for comparison | ||||||||||||
6069 | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
606B | DEFB $38 | JR C (for the instruction at 7522) | ||||||||||||
606C | DEFB $65 | x-coordinate for comparison | ||||||||||||
606D | DEFB $03 | 3 POKEs follow | ||||||||||||
606E | DEFW $6B57 | Line up phone message 0x42: 'A VOICE SAID 'OK LANA THE KEY TO 74'S IN THE ROOM PAST THE CATWALK BUT THERE'S A GUARD'' | ||||||||||||
6070 | DEFB $2C | |||||||||||||
6071 | DEFW $7D24 | Make the key to no. 74 available | ||||||||||||
6073 | DEFB $90 | |||||||||||||
6074 | DEFW $6077 | Activate the next entry at 6077 (below) | ||||||||||||
6076 | DEFB $80 | |||||||||||||
The next entry (activated by the one above at 605A) lines up phone message 0x44 ('DAISY SAID 'ALS NUMBER'S 6124''), and displays the cutscene before entering game mode 3. It is triggered when Sam reaches the location with coordinates (10,8) (on the stairs leading up to the roof of the apartment building next to no. 74).
|
||||||||||||||
6077 | DEFB $81 | |||||||||||||
6078 | DEFB $14 | 20 bytes until the next entry | ||||||||||||
6079 | DEFB $02 | 2 conditions follow | ||||||||||||
607A | DEFW $E602 | This address holds Sam's y-coordinate | ||||||||||||
607C | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
607D | DEFB $08 | y-coordinate for comparison | ||||||||||||
607E | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
6080 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6081 | DEFB $0A | x-coordinate for comparison | ||||||||||||
6082 | DEFB $03 | 3 POKEs follow | ||||||||||||
6083 | DEFW $6B84 | Line up phone message 0x44: 'DAISY SAID 'ALS NUMBER'S 6124'' | ||||||||||||
6085 | DEFB $5C | |||||||||||||
6086 | DEFW $750C | Change the operand of the JP instruction at 750B to 6152 (to display the cutscene before entering game mode 3) | ||||||||||||
6088 | DEFB $52 | |||||||||||||
6089 | DEFW $750D | |||||||||||||
608B | DEFB $61 | |||||||||||||
The next entry makes the key to no. 27 available when Sam knocks the Fat Man over.
|
||||||||||||||
608C | DEFB $00 | |||||||||||||
608D | DEFB $0A | 10 bytes until the next entry | ||||||||||||
608E | DEFB $01 | 1 condition follows | ||||||||||||
608F | DEFW $E102 | This address holds character 0xE1's y-coordinate (character 0xE1 is the Fat Man in game mode 2) | ||||||||||||
6091 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
6092 | DEFB $25 | y-coordinate for comparison (lying on the road) | ||||||||||||
6093 | DEFB $01 | 1 POKE follows | ||||||||||||
6094 | DEFW $7D2C | Make the key to no. 27 available | ||||||||||||
6096 | DEFB $90 | |||||||||||||
The next entry makes the required changes when Sam enters the room above his office while in possession of all four keys.
|
||||||||||||||
6097 | DEFB $00 | |||||||||||||
6098 | DEFB $18 | 24 bytes until the next entry | ||||||||||||
6099 | DEFB $03 | 3 conditions follow | ||||||||||||
609A | DEFW $E602 | This address holds Sam's y-coordinate | ||||||||||||
609C | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
609D | DEFB $0D | y-coordinate for comparison | ||||||||||||
609E | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
60A0 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
60A1 | DEFB $E8 | x-coordinate for comparison | ||||||||||||
60A2 | DEFW $7FEA | 7FEA holds the key inventory | ||||||||||||
60A4 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
60A5 | DEFB $78 | Bits 3-6 set: Sam has all four keys | ||||||||||||
60A6 | DEFB $03 | 3 POKEs follow | ||||||||||||
60A7 | DEFW $7D20 | Make the budgie available | ||||||||||||
60A9 | DEFB $C0 | |||||||||||||
60AA | DEFW $7FEB | Clear all flags at 7FEB so that Sam won't be chased by the police | ||||||||||||
60AC | DEFB $00 | |||||||||||||
60AD | DEFW $7364 | Set the operand of the 'OR' instruction at 7363 to 192 (to make the policemen stay close to Sam's office while on the beat) | ||||||||||||
60AF | DEFB $C0 | |||||||||||||
The next entry lines up phone message 0x48 ('LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE'') when Sam gets the budgie.
|
||||||||||||||
60B0 | DEFB $00 | |||||||||||||
60B1 | DEFB $0A | 10 bytes until the next entry | ||||||||||||
60B2 | DEFB $01 | 1 condition follows | ||||||||||||
60B3 | DEFW $7FE9 | 7FE9 holds the object inventory | ||||||||||||
60B5 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
60B6 | DEFB $80 | Bit 7 set: Sam has the budgie | ||||||||||||
60B7 | DEFB $01 | 1 POKE follows | ||||||||||||
60B8 | DEFW $6B87 | Line up phone message 0x48: 'LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE'' | ||||||||||||
60BA | DEFB $24 | |||||||||||||
The next entry disables phone message 0x48 ('LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE'') if Sam doesn't have the budgie (either because he hasn't found it yet, or it's been taken from him).
|
||||||||||||||
60BB | DEFB $40 | Bit 6 set: always active | ||||||||||||
60BC | DEFB $0A | 10 bytes until the next entry | ||||||||||||
60BD | DEFB $01 | 1 condition follows | ||||||||||||
60BE | DEFW $7FE9 | 7FE9 holds the object inventory | ||||||||||||
60C0 | DEFB $20 | JR NZ (for the instruction at 7522) | ||||||||||||
60C1 | DEFB $80 | Bit 7 set: Sam has the budgie (and only the budgie; this is a bug) | ||||||||||||
60C2 | DEFB $01 | 1 POKE follows | ||||||||||||
60C3 | DEFW $6B87 | Disable phone message 0x48: 'LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE'' | ||||||||||||
60C5 | DEFB $00 | |||||||||||||
The next entry sends Lana on her way to Sam's office when Sam phones her while in possession of the budgie.
|
||||||||||||||
60C6 | DEFB $00 | |||||||||||||
60C7 | DEFB $11 | 17 bytes until the next entry | ||||||||||||
60C8 | DEFB $02 | 2 conditions follow | ||||||||||||
60C9 | DEFW $7FE9 | 7FE9 holds the object inventory | ||||||||||||
60CB | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
60CC | DEFB $80 | Bit 7 set: Sam has the budgie (and only the budgie; this is a bug) | ||||||||||||
60CD | DEFW $6B87 | This is the entry for phone message 0x48 for Sam | ||||||||||||
60CF | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
60D0 | DEFB $00 | 0 means the phone message has been received by Sam | ||||||||||||
60D1 | DEFB $02 | 2 POKES follow | ||||||||||||
60D2 | DEFW $60D8 | Activate the entry at 60D8 (below) | ||||||||||||
60D4 | DEFB $80 | |||||||||||||
60D5 | DEFW $E109 | Set byte 0x09 of character 0xE1's buffer to 0 (character 0xE1 is Lana in game mode 3), triggering a move to the next instruction: go to Sam's office (see FDAC) | ||||||||||||
60D7 | DEFB $00 | |||||||||||||
The next entry (activated by the one above at 60C6) immobilises Sam until the end of the game when Lana meets him in his office.
|
||||||||||||||
60D8 | DEFB $81 | |||||||||||||
60D9 | DEFB $19 | 25 bytes until the next entry | ||||||||||||
60DA | DEFB $04 | 4 conditions follow | ||||||||||||
60DB | DEFW $E116 | This is byte 0x16 of character 0xE1's buffer (character 0xE1 is Lana in game mode 3) | ||||||||||||
60DD | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
60DE | DEFB $08 | This command list offset points past the end of the command list | ||||||||||||
60DF | DEFW $E602 | This address holds Sam's y-coordinate | ||||||||||||
60E1 | DEFB $28 | JR Z (for the instruction at 7522) | ||||||||||||
60E2 | DEFB $13 | y-coordinate for comparison | ||||||||||||
60E3 | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
60E5 | DEFB $30 | JR NC (for the instruction at 7522) | ||||||||||||
60E6 | DEFB $DE | x-coordinate for comparison | ||||||||||||
60E7 | DEFW $E601 | This address holds Sam's x-coordinate | ||||||||||||
60E9 | DEFB $38 | JR C (for the instruction at 7522) | ||||||||||||
60EA | DEFB $E7 | x-coordinate for comparison | ||||||||||||
60EB | DEFB $02 | 2 POKEs follow | ||||||||||||
60EC | DEFW $7FFC | Set bit 1 of Sam's status flags at 7FFC | ||||||||||||
60EE | DEFB $02 | |||||||||||||
60EF | DEFW $E60D | Set byte 0x0D of Sam's buffer to 0 (to indicate that Sam has just met Lana; see 6100) | ||||||||||||
60F1 | DEFB $00 | |||||||||||||
And finally the end marker.
|
||||||||||||||
60F2 | DEFB $FF |
Prev: 5FD6 | Up: Map | Next: 60F3 |