Chase H.Q. | Routines |
Prev: 88F2 | Up: Map | Next: 8960 |
Used by the routine at main_loop.
|
||||
drive_sfx | 8903 | LD A,($A23B) | Jump if tunnel_sfx | |
8906 | AND A | |||
8907 | JR NZ,drive_sfx_0 | |||
8909 | LD A,($A23C) | var_a23d |= var_a23c | ||
890C | LD HL,$A23D | |||
890F | OR (HL) | |||
8910 | LD BC,$0704 | Counters? | ||
8913 | CALL NZ,start_sfx | Call start_sfx if non-zero | ||
drive_sfx_0 | 8916 | CALL engine_sfx_setup_hook | Call engine_sfx_setup_hook | |
8919 | CALL engine_sfx_play_hook | Call engine_sfx_play_hook | ||
891C | CALL write_registers_hook | Call write_registers_hook | ||
891F | LD A,($A237) | If sfx_0 == 0 return | ||
8922 | AND A | |||
8923 | RET Z | |||
8924 | RLCA | E = sfx_0 * 4 -- stride of table | ||
8925 | RLCA | |||
8926 | LD E,A | |||
8927 | XOR A | sfx_0 = 0 | ||
8928 | LD ($A237),A | |||
892B | LD ($A238),A | sfx_1 = 0 | ||
892E | LD D,A | Make DE full offset | ||
892F | LD HL,$8938 | HL -> Base of table, but 4 bytes earlier | ||
8932 | ADD HL,DE | Point at array element | ||
8933 | LD D,(HL) | Load argument value into DE (note: big endian!) | ||
8934 | INC HL | |||
8935 | LD E,(HL) | |||
8936 | INC HL | |||
8937 | LD A,(HL) | Load address of routine into HL | ||
8938 | INC HL | |||
8939 | LD H,(HL) | |||
893A | LD L,A | |||
893B | JP (HL) | Exit via routine at HL | ||
Pairs of words: (argument [big endian], address of sound effect routine)
|
||||
sfx_table | 893C | DEFW $0164 | Argument in DE for sound effect routine | |
893E | DEFW sfx_cornering | Sound effect routine sfx_cornering | ||
8940 | DEFW $0008 | Argument in DE for sound effect routine: D = delay of 8 | ||
8942 | DEFW sfx_thud | Sound effect routine sfx_thud | ||
8944 | DEFW $0008 | Argument in DE for sound effect routine | ||
8946 | DEFW sfx_crash | Sound effect routine sfx_crash - crash | ||
8948 | DEFW $000C | Argument in DE for sound effect routine (low) | ||
894A | DEFW sfx_crash | Sound effect routine sfx_crash - crash | ||
894C | DEFW $0003 | Argument in DE for sound effect routine | ||
894E | DEFW sfx_thud | Sound effect routine sfx_thud | ||
8950 | DEFW $041A | Argument in DE for sound effect routine | ||
8952 | DEFW sfx_cornering_loop_outer | Sound effect routine sfx_cornering_loop_outer | ||
8954 | DEFW $7804 | Argument in DE for sound effect routine - "tit-tit" used when cornering | ||
8956 | DEFW sfx_cornering_loop_outer | Sound effect routine sfx_cornering_loop_outer | ||
8958 | DEFW $7878 | Argument in DE for sound effect routine - time running out high "bip" | ||
895A | DEFW sfx_bipbow | Sound effect routine sfx_bipbow - "bip-bow" | ||
895C | DEFW $C8C8 | Argument in DE for sound effect routine - time running out low "bow" | ||
895E | DEFW sfx_bipbow | Sound effect routine sfx_bipbow - "bip-bow" |
Prev: 88F2 | Up: Map | Next: 8960 |