-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsound.ref
More file actions
174 lines (147 loc) · 6.48 KB
/
sound.ref
File metadata and controls
174 lines (147 loc) · 6.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
[Audio:fire:Missile fire]
This sound effect is produced by the routine at #R$8A02 when the player fires
the missile. It plays 8 speaker pulses (~1.3 ms) per interrupt for 7
interrupts (~140 ms total), with ~18.7 ms gaps between calls.
The call count comes from missile physics: the missile spawns at Y=126 and
moves 6 pixels per animate pass, with the sound flag cleared when Y drops to
112 (after 3 passes: 126→120→114→108). At 50 Hz with 2 animate passes per
frame at ~12 FPS: 3 × 50 / (2 × 12) = 6.25, rounded to 7.
#AUDIO0(fire.wav)(#INCLUDE(FireDelays))
[Audio:engine-normal:Engine (normal speed)]
This sound effect is produced by the routine at #R$6C5D during normal speed
flight (player not pressing up or down). Called once per interrupt (~50 Hz);
each call plays 8 speaker pulses (~9.5 kHz).
Note: the period parameter is <code>sound_flags AND $0F</code>, which equals 2
during normal speed gameplay. With period = 2, the ON and OFF delays are 49T
and 63T respectively. At 44,100 Hz, 49T converts to 0.62 samples and 63T to
0.79 samples — both round to 1 sample, producing alternating single-sample
pulses at 22 kHz (the Nyquist limit), which are effectively inaudible as PCM.
The delays here use period = 10 (177/191 T-states, ~2.2/2.4 samples each) to
produce a representable, audible illustration.
#AUDIO0(engine-normal.wav)(43,[177,191]*7,177,[67092,[177,191]*7,177]*49)
[Audio:engine-fast:Engine (fast speed)]
This sound effect is produced by the routine at #R$6CB8 when the player holds
up to accelerate. Called once per interrupt (~50 Hz); each call plays 8
speaker pulses (~16.6 kHz).
#AUDIO0(engine-fast.wav)(43,[113,98]*7,113,[68255,[113,98]*7,113]*49)
[Audio:engine-slow:Engine (slow speed)]
This sound effect is produced by the routine at #R$6CD6 when the player holds
down to decelerate. Called once per interrupt (~50 Hz); each call plays 8
speaker pulses (~10.3 kHz).
#AUDIO0(engine-slow.wav)(43,[113,226]*7,113,[67359,[113,226]*7,113]*49)
[Audio:explosion:Explosion]
This sound effect is produced by the routine at #R$6C7B when the player's plane
is destroyed. The ON delay varies semi-randomly between frames because the DE
register is not intentionally set by the caller, giving the explosion its noisy
character. Each frame plays 4 cycles of waveform with a decreasing OFF delay,
making the sound more rapid and urgent as the explosion progresses.
#AUDIO0(explosion.wav)(#INCLUDE(ExplosionDelays))
[Audio:low-fuel:Low fuel warning]
This sound effect is produced by the routine at #R$6CF4 when the fuel level
drops below the warning threshold. The pitch warbles by decrementing the period
each frame, creating an urgent rising tone that resets after reaching zero.
#AUDIO0(low-fuel.wav)(#INCLUDE(LowFuelDelays),67000,#INCLUDE(LowFuelDelays))
[Audio:bonus-life:Bonus life]
This sound effect is produced by the routine at #R$6C31 when the player earns
an extra life. It generates a rising pitch over 63 frames by calling the ROM
BEEPER routine at <code>$03B5</code> with decreasing pitch values.
#AUDIO0(bonus-life.wav)(305,[8303]*3,[44908,[8303]*3]*7,[47980,[7279]*3]*8,[51052,[6255]*3]*8,[54124,[5231]*3]*8,[57196,[4207]*3]*8,[60268,[3183]*3]*8,[63340,[2159]*3]*8,[66412,[1135]*3]*7)
[Audio:fuel-full:Tank full]
This sound effect is produced by the routine at #R$6E92 when the fuel tank is
already full and cannot accept more fuel. Called once per game frame (~12 FPS);
plays a short beep (~1450 Hz, ~6 ms) via the ROM BEEPER routine.
#AUDIO0(fuel-full.wav)(218,[1207]*17,[270463,218,[1207]*17]*4)
[Audio:refuel:Refueling]
This sound effect is produced by the routine at #R$6E50 while the plane is
actively receiving fuel. Called once per game frame (~12 FPS); uses the ROM
BEEPER routine with <code>DE=$0007</code>, <code>HL=$0333</code> (8 cycles, ~516 Hz, ~14.6 ms per call).
#AUDIO0(refuel.wav)(218,[3391]*15,[240117,218,[3391]*15]*4)
[Audio:heli-missile-launch:Helicopter missile launch]
This sound effect is produced by the routine at #R$73EB when an advanced helicopter
fires a missile. Uses the ROM BEEPER routine with <code>DE=$0001</code>, <code>HL=$2800</code> (2 cycles,
~43 Hz, ~35 ms).
#AUDIO0(heli-missile-launch.wav)(218,[41075]*3)
[Audio:shell-whistle:Tank shell whistle]
This sound effect is produced by the routine at #R$7457 once per game frame while a
tank shell is in flight. The pitch parameter is HL = step × 256 (<code>DE=$0002</code>, 3 cycles
per step), producing a descending whistle over trajectory steps 1–7. Step 8 triggers
an explosion and plays no sound.
#AUDIO0(shell-whistle.wav)(#INCLUDE(ShellWhistleDelays))
[ExplosionDelays]
121,[657,412]*3,657,
67000,[1169,396]*3,1169,
67000,[401,380]*3,401,
67000,[913,364]*3,913,
67000,[657,348]*3,657,
67000,[1041,332]*3,1041,
67000,[785,316]*3,785,
67000,[785,300]*3,785,
67000,[785,284]*3,785,
67000,[1041,268]*3,1041,
67000,[1169,252]*3,1169,
67000,[657,236]*3,657,
67000,[657,220]*3,657,
67000,[1041,204]*3,1041,
67000,[529,188]*3,529,
67000,[657,172]*3,657,
67000,[401,156]*3,401,
67000,[1169,140]*3,1169,
67000,[273,124]*3,273,
67000,[1169,108]*3,1169,
67000,[913,92]*3,913,
67000,[529,76]*3,529,
67000,[657,60]*3,657
[LowFuelDelays]
66,
2033,2088,2017,2072,2001,
67000,1985,2040,1969,2024,1953,
67000,1937,1992,1921,1976,1905,
67000,1889,1944,1873,1928,1857,
67000,1841,1896,1825,1880,1809,
67000,1793,1848,1777,1832,1761,
67000,1745,1800,1729,1784,1713,
67000,1697,1752,1681,1736,1665,
67000,1649,1704,1633,1688,1617,
67000,1601,1656,1585,1640,1569,
67000,1553,1608,1537,1592,1521,
67000,1505,1560,1489,1544,1473,
67000,1457,1512,1441,1496,1425,
67000,1409,1464,1393,1448,1377,
67000,1361,1416,1345,1400,1329,
67000,1313,1368,1297,1352,1281,
67000,1265,1320,1249,1304,1233,
67000,1217,1272,1201,1256,1185,
67000,1169,1224,1153,1208,1137,
67000,1121,1176,1105,1160,1089,
67000,1073,1128,1057,1112,1041,
67000,1025,1080,1009,1064,993,
67000,977,1032,961,1016,945,
67000,929,984,913,968,897,
67000,881,936,865,920,849,
67000,833,888,817,872,801,
67000,785,840,769,824,753,
67000,737,792,721,776,705,
67000,689,744,673,728,657,
67000,641,696,625,680,609,
67000,593,648,577,632,561,
67000,545,600,529,584,513,
67000,497,552,481,536,465,
67000,449,504,433,488,417,
67000,401,456,385,440,369,
67000,353,408,337,392,321,
67000,305,360,289,344,273,
67000,257,312,241,296,225,
67000,209,264,193,248,177,
67000,161,216,145,200,129,
67000,113,168,97,152,81,
67000,65,120,49,104,33
[FireDelays]
25,[532,50]*7,532,[65257,25,[532,50]*7,532]*6
[ShellWhistleDelays]
219,[1139]*5,
270000,219,[2163]*5,
270000,219,[3187]*5,
270000,219,[4211]*5,
270000,219,[5235]*5,
270000,219,[6259]*5,
270000,219,[7283]*5