| Chase H.Q. | Routines |
| Prev: 89D9 | Up: Map | Next: 8A36 |
|
The game only ever uses a duty factor of 100 and a count of 1.
|
||||||||||||
| sfx_cornering | 8A0F | LD A,$00 | Toggle static flag | |||||||||
| 8A11 | XOR $01 | |||||||||||
| 8A13 | LD ($8A10),A | |||||||||||
| 8A16 | RET NZ | Return if flag became non-zero | ||||||||||
| sfx_cornering_loop_outer | 8A17 | LD C,E | Set inner loop counter | |||||||||
| sfx_cornering_loop_inner | 8A18 | CALL rng | Call rng | |||||||||
| 8A1B | AND $10 | Mask off bit 4 | ||||||||||
| 8A1D | JR Z,sfx_cornering_continue | If zero goto sfx_cornering_continue | ||||||||||
|
Delay for (24 - D) iterations.
|
||||||||||||
| 8A1F | LD A,$18 | |||||||||||
| 8A21 | SUB D | |||||||||||
| 8A22 | LD B,A | |||||||||||
| sfx_cornering_delay1 | 8A23 | DJNZ sfx_cornering_delay1 | ||||||||||
|
I'm unsure why they're setting both of the EAR and MIC bits here. Is it louder?
|
||||||||||||
| 8A25 | LD A,$18 | Set EAR and MIC bits | ||||||||||
| 8A27 | OUT ($FE),A | Set output | ||||||||||
|
Delay for D iterations.
|
||||||||||||
| 8A29 | LD B,D | |||||||||||
| sfx_cornering_delay2 | 8A2A | DJNZ sfx_cornering_delay2 | ||||||||||
| 8A2C | XOR A | Clear output | ||||||||||
| 8A2D | OUT ($FE),A | |||||||||||
| sfx_cornering_continue | 8A2F | DEC C | Loop while inner loop counter > 0 | |||||||||
| 8A30 | JR NZ,sfx_cornering_loop_inner | |||||||||||
| 8A32 | DEC D | Loop while duty factor > 0 | ||||||||||
| 8A33 | JR NZ,sfx_cornering_loop_outer | |||||||||||
| 8A35 | RET | Return | ||||||||||
| Prev: 89D9 | Up: Map | Next: 8A36 |