@@ -422,6 +422,7 @@ var |
| 422 |
ls: array[1..4] of Integer = (0, 0, 0, 0); |
422 |
ls: array[1..4] of Integer = (0, 0, 0, 0); |
| 423 |
rs: array[1..4] of Integer = (0, 0, 0, 0); |
423 |
rs: array[1..4] of Integer = (0, 0, 0, 0); |
| 424 |
chanLs, chanRs: array[0..4] of Integer; |
424 |
chanLs, chanRs: array[0..4] of Integer; |
|
|
425 |
masterL, masterR: Double; |
| 425 |
l, r: Integer; |
426 |
l, r: Integer; |
| 426 |
I: Integer; |
427 |
I: Integer; |
| 427 |
begin |
428 |
begin |
@@ -746,8 +747,11 @@ begin |
| 746 |
SampleBuffers[I].Cursor := (SampleBuffers[I].Cursor + 1) mod SAMPLE_BUFFER_SIZE; |
747 |
SampleBuffers[I].Cursor := (SampleBuffers[I].Cursor + 1) mod SAMPLE_BUFFER_SIZE; |
| 747 |
end; |
748 |
end; |
| 748 |
|
749 |
|
| 749 |
l := Trunc((ls[1] + ls[2] + ls[3] + ls[4]) * (((m_iram[$FF24] and 7)+1) / 8)); |
750 |
masterL := ((m_iram[$FF24] and 7) + 1) / 8; |
| 750 |
r := Trunc((rs[1] + rs[2] + rs[3] + rs[4]) * ((((m_iram[$FF24] shr 4) and 7)+1) / 8)); |
751 |
masterR := (((m_iram[$FF24] shr 4) and 7) + 1) / 8; |
|
|
752 |
|
|
|
753 |
l := Trunc((ls[1] + ls[2] + ls[3] + ls[4]) * masterL); |
|
|
754 |
r := Trunc((rs[1] + rs[2] + rs[3] + rs[4]) * masterR); |
| 751 |
|
755 |
|
| 752 |
SampleBuffers[0].BufferL[SampleBuffers[0].Cursor] := l; |
756 |
SampleBuffers[0].BufferL[SampleBuffers[0].Cursor] := l; |
| 753 |
SampleBuffers[0].BufferR[SampleBuffers[0].Cursor] := r; |
757 |
SampleBuffers[0].BufferR[SampleBuffers[0].Cursor] := r; |
@@ -756,8 +760,8 @@ begin |
| 756 |
chanLs[0] := l; |
760 |
chanLs[0] := l; |
| 757 |
chanRs[0] := r; |
761 |
chanRs[0] := r; |
| 758 |
for I := 1 to 4 do begin |
762 |
for I := 1 to 4 do begin |
| 759 |
chanLs[I] := ls[I]; |
763 |
chanLs[I] := Trunc(ls[I] * masterL); |
| 760 |
chanRs[I] := rs[I]; |
764 |
chanRs[I] := Trunc(rs[I] * masterR); |
| 761 |
end; |
765 |
end; |
| 762 |
SoundOutBits(chanLs, chanRs, cycles); |
766 |
SoundOutBits(chanLs, chanRs, cycles); |
| 763 |
end; |
767 |
end; |