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

version 1.5, 2003/10/27 15:06:31 version 1.6, 2003/11/28 08:01:33
Line 1 Line 1
   
   FMDIV_BITS              equ             8
   FMDIV_ENT               equ             (1 << FMDIV_BITS)
   FMVOL_SFTBIT    equ             4
   
   SIN_BITS                equ             11
   EVC_BITS                equ             10
   ENV_BITS                equ             16
   KF_BITS                 equ             6
   FREQ_BITS               equ             20
   ENVTBL_BIT              equ             14
   SINTBL_BIT              equ             14
   
   TL_BITS                 equ             (FREQ_BITS+2)
   OPM_OUTSB               equ             (TL_BITS + 2 - 16)
   
   SIN_ENT                 equ             (1 << SIN_BITS)
   EVC_ENT                 equ             (1 << EVC_BITS)
   
   EC_ATTACK               equ             0
   EC_DECAY                equ             (EVC_ENT << ENV_BITS)
   EC_OFF                  equ             ((2 * EVC_ENT) << ENV_BITS)
   
   EM_ATTACK               equ             4
   EM_DECAY1               equ             3
   EM_DECAY2               equ             2
   EM_RELEASE              equ             1
   EM_OFF                  equ             0
   
   
                                 struc   slot_t                                  struc   slot_t
 .detune1                resd    1               ; 00  .detune1                resd    1               ; 00
 .totallevel             resd    1               ; 04  .totallevel             resd    1               ; 04
Line 66 Line 95
 .vr_en                  resd    1  .vr_en                  resd    1
 .vr_l                   resd    1  .vr_l                   resd    1
 .vr_r                   resd    1  .vr_r                   resd    1
                                 endstruc  
   
   .sintable               resd    SIN_ENT
 FMDIV_BITS              equ             8  .envtable               resd    EVC_ENT
 FMDIV_ENT               equ             (1 << FMDIV_BITS)  .envcurve               resd    (EVC_ENT*2 + 1)
 FMVOL_SFTBIT    equ             4                                  endstruc
   
 SIN_BITS                equ             11  
 EVC_BITS                equ             10  
 ENV_BITS                equ             16  
 KF_BITS                 equ             6  
 FREQ_BITS               equ             20  
 ENVTBL_BIT              equ             14  
 SINTBL_BIT              equ             14  
   
 TL_BITS                 equ             (FREQ_BITS+2)  
 OPM_OUTSB               equ             (TL_BITS + 2 - 16)  
   
 SIN_ENT                 equ             (1 << SIN_BITS)  
 EVC_ENT                 equ             (1 << EVC_BITS)  
   
 EC_ATTACK               equ             0  
 EC_DECAY                equ             (EVC_ENT << ENV_BITS)  
 EC_OFF                  equ             ((2 * EVC_ENT) << ENV_BITS)  
   
 EM_ATTACK               equ             4  
 EM_DECAY1               equ             3  
 EM_DECAY2               equ             2  
 EM_RELEASE              equ             1  
 EM_OFF                  equ             0  
   
   
 section .text  section .text
Line 105  section .text Line 109  section .text
         extern  _opncfg          extern  _opncfg
   
         extern  _sinshift          extern  _sinshift
         extern  _sintable  
         extern  _envshift          extern  _envshift
         extern  _envtable  
         extern  _env_curve  ENVCURVE        equ             (_opncfg + opncfg_t.envcurve)
   SINTABLE        equ             (_opncfg + opncfg_t.sintable)
   ENVTABLE        equ             (_opncfg + opncfg_t.envtable)
   
   
         global  @opngen_getpcm@12          global  @opngen_getpcm@12
Line 119  section .text Line 124  section .text
                                 shr             eax, (FREQ_BITS - SIN_BITS)                                  shr             eax, (FREQ_BITS - SIN_BITS)
                                 and             eax, (SIN_ENT - 1)                                  and             eax, (SIN_ENT - 1)
                                 mov             cl, [_sinshift + eax]                                  mov             cl, [_sinshift + eax]
                                 mov             eax, [_sintable + eax*4]                                  mov             eax, [SINTABLE + eax*4]
                                 add             cl, [_envshift + edx]                                  add             cl, [_envshift + edx]
                                 imul    eax, [_envtable + edx*4]                                  imul    eax, [ENVTABLE + edx*4]
                                 sar             eax, cl                                  sar             eax, cl
 %endmacro  %endmacro
   
Line 135  section .text Line 140  section .text
 %2:                             mov             [edi + slot_t.env_cnt], eax  %2:                             mov             [edi + slot_t.env_cnt], eax
                                 shr             eax, ENV_BITS                                  shr             eax, ENV_BITS
                                 mov             edx, [edi + slot_t.totallevel]                                  mov             edx, [edi + slot_t.totallevel]
                                 sub             edx, [_env_curve + eax*4]                                  sub             edx, [ENVCURVE + eax*4]
 %endmacro  %endmacro
   
 %macro  setenv          3  %macro  setenv          3

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


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