Diff for /np2/win9x/x86/opngeng.x86 between versions 1.4 and 1.5

version 1.4, 2003/10/25 09:08:24 version 1.5, 2003/10/27 15:06:31
Line 29 Line 29
 .algorithm              resb    1  .algorithm              resb    1
 .feedback               resb    1  .feedback               resb    1
 .playing                resb    1  .playing                resb    1
                                 resb    1  .outslot                resb    1
 .op1fb                  resd    1  .op1fb                  resd    1
 .connect1               resd    1  .connect1               resd    1
 .connect3               resd    1  .connect3               resd    1
Line 138  section .text Line 138  section .text
                                 sub             edx, [_env_curve + eax*4]                                  sub             edx, [_env_curve + eax*4]
 %endmacro  %endmacro
   
 %macro  setenv          2  %macro  setenv          3
 %1:                             mov             dl, [edi + slot_t.env_mode]  %1:                             mov             dl, [edi + slot_t.env_mode]
                                 dec             dl                                  dec             dl
                                 je              short %%setrr                                  je              short %%setrr
Line 164  section .text Line 164  section .text
 %%setrr:                mov             byte [edi + slot_t.env_mode], EM_OFF  %%setrr:                mov             byte [edi + slot_t.env_mode], EM_OFF
 %%setd2:                mov             dword [edi + slot_t.env_end], EC_OFF + 1  %%setd2:                mov             dword [edi + slot_t.env_end], EC_OFF + 1
                                 and             dword [edi + slot_t.env_inc], byte 0                                  and             dword [edi + slot_t.env_inc], byte 0
                                   and             byte [esi + ch_t.playing], ~(%3)
                                 mov             eax, EC_OFF                                  mov             eax, EC_OFF
                                 jmp             near %2                                  jmp             near %2
 %endmacro  %endmacro
Line 173  section .text Line 174  section .text
 @opngen_getpcm@12:  @opngen_getpcm@12:
                                 cmp             dword [esp+4], byte 0                                  cmp             dword [esp+4], byte 0
                                 je              near og_noupdate                                  je              near og_noupdate
                                   cmp             dword [_opngen + opngen_t.playing], byte 0
                                   je              near og_noupdate
   
                                 push    ebx                                  push    ebx
                                 push    esi                                  push    esi
Line 193  og_fmout_st: mov  eax, ebx Line 196  og_fmout_st: mov  eax, ebx
                                 sub             ebx, eax                                  sub             ebx, eax
                                 imul    eax, [_opngen + opngen_t.outdr]                                  imul    eax, [_opngen + opngen_t.outdr]
                                 mov             [esp + OPN_SAMPR], eax                                  mov             [esp + OPN_SAMPR], eax
 og_fmout_lp:    xor             eax, eax  og_fmout_lp:    mov             [_opngen + opngen_t.calcremain], ebx
                                 mov             [_opngen + opngen_t.calcremain], ebx                                  and             dword [_opngen + opngen_t.playing], byte 0
                                 mov             [_opngen + opngen_t.outdl], eax                                  and             dword [_opngen + opngen_t.outdl], byte 0
                                 mov             [_opngen + opngen_t.outdc], eax                                  and             dword [_opngen + opngen_t.outdc], byte 0
                                 mov             [_opngen + opngen_t.outdr], eax                                  and             dword [_opngen + opngen_t.outdr], byte 0
                                 mov             ch, [_opngen + opngen_t.playchannels]                                  mov             ch, [_opngen + opngen_t.playchannels]
                                 mov             edi, _opnch                                  mov             esi, _opnch
 og_calcch_lp:   xor             eax, eax  og_calcch_lp:   mov             cl, [esi + ch_t.outslot]
                                 mov             [_opngen + opngen_t.feedback2], eax                                  test    cl, [esi + ch_t.playing]
                                 mov             [_opngen + opngen_t.feedback3], eax                                  je              near og_calcch_nt
                                 mov             [_opngen + opngen_t.feedback4], eax                                  and             dword [_opngen + opngen_t.feedback2], byte 0
                                 mov             esi, edi                                  and             dword [_opngen + opngen_t.feedback3], byte 0
                                   and             dword [_opngen + opngen_t.feedback4], byte 0
                                   mov             edi, esi
                                 calcenv envcalc1, envret1                       ; slot1 calculate                                  calcenv envcalc1, envret1                       ; slot1 calculate
                                 jl              near og_calcslot3                                  jl              near og_calcslot3
                                 mov             cl, [esi + ch_t.feedback]                                  mov             cl, [esi + ch_t.feedback]
Line 249  og_calcslot4: add  edi, byte slot_t.size Line 254  og_calcslot4: add  edi, byte slot_t.size
                                 op_out                                  op_out
                                 mov             ebx, [esi + ch_t.connect4]                                  mov             ebx, [esi + ch_t.connect4]
                                 add             [ebx], eax                                  add             [ebx], eax
 og_calcsloted:  add             edi, byte (ch_t.size - (slot_t.size * 3))  og_calcsloted:  inc             dword [_opngen + opngen_t.playing]
   og_calcch_nt:   add             esi, ch_t.size
                                 dec             ch                                  dec             ch
                                 jne             near og_calcch_lp                                  jne             near og_calcch_lp
                                 mov             eax, [_opngen + opngen_t.outdc]                                  mov             eax, [_opngen + opngen_t.outdc]
Line 291  og_nextsamp: neg  ebx Line 297  og_nextsamp: neg  ebx
                                 pop             ebx                                  pop             ebx
 og_noupdate:    ret             4  og_noupdate:    ret             4
   
                                 setenv  envcalc1, envret1                                  setenv  envcalc1, envret1, 1
                                 setenv  envcalc2, envret2                                  setenv  envcalc2, envret2, 2
                                 setenv  envcalc3, envret3                                  setenv  envcalc3, envret3, 4
                                 setenv  envcalc4, envret4                                  setenv  envcalc4, envret4, 8
   
   
                                 align   16                                  align   16
Line 435  ogv_nextsamp: neg  ebx Line 441  ogv_nextsamp: neg  ebx
                                 pop             ebx                                  pop             ebx
 ogv_noupdate:   ret             4  ogv_noupdate:   ret             4
   
                                 setenv  vrenvcalc1, vrenvret1                                  setenv  vrenvcalc1, vrenvret1, 1
                                 setenv  vrenvcalc2, vrenvret2                                  setenv  vrenvcalc2, vrenvret2, 2
                                 setenv  vrenvcalc3, vrenvret3                                  setenv  vrenvcalc3, vrenvret3, 4
                                 setenv  vrenvcalc4, vrenvret4                                  setenv  vrenvcalc4, vrenvret4, 8
   
         ends          ends
   

Removed from v.1.4  
changed lines
  Added in v.1.5


RetroPC.NET-CVS <cvs@retropc.net>