106,7 → 106,6 |
ret |
endp |
|
|
align 4 |
proc update_stream |
locals |
141,7 → 140,6 |
inc [stream_index] |
dec [play_count] |
jnz .l1 |
|
ret |
.copy: |
mov ebx, esi |
158,10 → 156,15 |
|
mov [ebx+STREAM.work_write], edi |
|
cmp esi, [ebx+STREAM.limit] |
cmp esi, [ebx+STREAM.lim_0] |
jb @f |
|
mov esi, [ebx+STREAM.base] |
mov esi, [ebx+STREAM.seg_0] |
mov eax, [ebx+STREAM.lim_0] |
xchg esi, [ebx+STREAM.seg_1] |
xchg eax, [ebx+STREAM.lim_1] |
mov [ebx+STREAM.seg_0], esi |
mov [ebx+STREAM.lim_0], eax |
@@: |
mov [ebx+STREAM.curr_seg], esi |
|
176,7 → 179,6 |
inc [stream_index] |
dec [play_count] |
jnz .l1 |
|
ret |
@@: |
mov [ev_code], 0xFF000001 |
233,9 → 235,15 |
|
mov eax, [ebx+STREAM.curr_seg] |
add eax, [ebx+STREAM.r_size] |
cmp eax, [ebx+STREAM.limit] |
cmp eax, [ebx+STREAM.lim_0] |
jb @f |
mov eax, [ebx+STREAM.base] |
|
mov eax, [ebx+STREAM.seg_0] |
mov ecx, [ebx+STREAM.lim_0] |
xchg eax, [ebx+STREAM.seg_1] |
xchg ecx, [ebx+STREAM.lim_1] |
mov [ebx+STREAM.seg_0], eax |
mov [ebx+STREAM.lim_0], ecx |
@@: |
mov [ebx+STREAM.curr_seg], eax |
|
246,7 → 254,6 |
mov ecx,0x8000 |
cmp eax, [ebx+STREAM.notify_off1] |
je @f |
|
ret |
@@: |
mov [ev_code], 0xFF000001 |
603,7 → 610,6 |
proc s8_stereo stdcall, dest:dword,src:dword,r_buff:dword,\ |
r_dt:dword, r_size:dword,r_end:dword |
|
|
mov esi, [src] |
mov edi, [dest] |
mov ecx, [r_size] |
1016,31 → 1022,26 |
movq mm3, [eax+88] |
paddsw mm3, [ecx+88] |
; psraw mm3, 1 |
|
movq [edx+88], mm3 |
|
movq mm0, [eax+96] |
paddsw mm0, [ecx+96] |
; psraw mm0, 1 |
|
movq [edx+96], mm0 |
|
movq mm1, [eax+104] |
paddsw mm1, [ecx+104] |
; psraw mm1, 1 |
|
movq [edx+104], mm1 |
|
movq mm2, [eax+112] |
paddsw mm2, [ecx+112] |
; psraw mm2, 1 |
|
movq [edx+112], mm2 |
|
movq mm3, [eax+120] |
paddsw mm3, [ecx+120] |
; psraw mm3, 1 |
|
movq [edx+120], mm3 |
|
ret |