@@ -267,35 +267,40 @@ begin |
| 267 |
end; |
267 |
end; |
| 268 |
snd[4].Freq := (8192 * 1024) div snd[4].Freq; |
268 |
snd[4].Freq := (8192 * 1024) div snd[4].Freq; |
| 269 |
snd[3].Enable := m_iram[$FF1a] and $80 > 0; |
269 |
snd[3].Enable := m_iram[$FF1a] and $80 > 0; |
| 270 |
snd[1].Vol := m_iram[$FF12] shr 4; |
270 |
|
| 271 |
if m_iram[$FF14] and $80 > 0 then |
271 |
if m_iram[$FF14] and $80 > 0 then |
| 272 |
begin |
272 |
begin |
|
|
273 |
snd[1].Vol := m_iram[$FF12] shr 4; |
| 273 |
snd[1].Len := 64 - (m_iram[$FF11] and 63); |
274 |
snd[1].Len := 64 - (m_iram[$FF11] and 63); |
| 274 |
snd[1].Cnt := 0; |
275 |
snd[1].Cnt := 0; |
| 275 |
m_iram[$FF14] := m_iram[$FF14] and $7f; |
276 |
m_iram[$FF14] := m_iram[$FF14] and $7f; |
| 276 |
snd[1].Enable := True; |
277 |
snd[1].Enable := True; |
| 277 |
end; |
278 |
end; |
| 278 |
snd[2].Vol := m_iram[$FF17] shr 4; |
279 |
|
| 279 |
if m_iram[$FF19] and $80 > 0 then |
280 |
if m_iram[$FF19] and $80 > 0 then |
| 280 |
begin |
281 |
begin |
|
|
282 |
snd[2].Vol := m_iram[$FF17] shr 4; |
| 281 |
snd[2].Len := 64 - (m_iram[$FF16] and 63); |
283 |
snd[2].Len := 64 - (m_iram[$FF16] and 63); |
| 282 |
snd[2].Cnt := 0; |
284 |
snd[2].Cnt := 0; |
| 283 |
m_iram[$FF19] := m_iram[$FF19] and $7f; |
285 |
m_iram[$FF19] := m_iram[$FF19] and $7f; |
| 284 |
snd[2].Enable := True; |
286 |
snd[2].Enable := True; |
| 285 |
end; |
287 |
end; |
|
|
288 |
|
| 286 |
if m_iram[$FF1e] and $80 > 0 then |
289 |
if m_iram[$FF1e] and $80 > 0 then |
| 287 |
begin |
290 |
begin |
| 288 |
snd[3].Len := (256 - byte(m_iram[$FF1b])) shl 7; |
291 |
snd[3].Len := (256 - byte(m_iram[$FF1b])) shl 7; |
| 289 |
snd[3].Cnt := 0; |
292 |
snd[3].Cnt := 0; |
| 290 |
m_iram[$FF1e] := m_iram[$FF1e] and $7f; |
293 |
m_iram[$FF1e] := m_iram[$FF1e] and $7f; |
| 291 |
end; |
294 |
end; |
| 292 |
snd[4].Vol := m_iram[$FF21] shr 4; |
295 |
|
| 293 |
if m_iram[$FF23] and $80 > 0 then |
296 |
if m_iram[$FF23] and $80 > 0 then |
| 294 |
begin |
297 |
begin |
|
|
298 |
snd[4].Vol := m_iram[$FF21] shr 4; |
| 295 |
snd[4].Len := 64 - (m_iram[$FF20] and 63); |
299 |
snd[4].Len := 64 - (m_iram[$FF20] and 63); |
| 296 |
m_iram[$FF23] := m_iram[$FF23] and $7f; |
300 |
m_iram[$FF23] := m_iram[$FF23] and $7f; |
| 297 |
snd[4].Enable := True; |
301 |
snd[4].Enable := True; |
| 298 |
end; |
302 |
end; |
|
|
303 |
|
| 299 |
sndRegChange := False; |
304 |
sndRegChange := False; |
| 300 |
end; |
305 |
end; |
| 301 |
if (snd[1].Enable) and (m_iram[$FF10] and $70 > 0) then |
306 |
if (snd[1].Enable) and (m_iram[$FF10] and $70 > 0) then |