diff --git a/zsnes/src/chips/dsp1proc.asm b/zsnes/src/chips/dsp1proc.asm index 358f63de..d258cf35 100644 --- a/zsnes/src/chips/dsp1proc.asm +++ b/zsnes/src/chips/dsp1proc.asm @@ -74,7 +74,6 @@ NEWSYM DSP1Read8b3F mov al,80h ret - NEWSYM DSP1Read16b3F test ecx,8000h jnz .dsp1area @@ -332,6 +331,7 @@ DSP1_00: ; 16-bit multiply EXTSYM Op10Exponent, Op10ExponentR EXTSYM Op10Coefficient, Op10CoefficientR + DSP1_10: ; Inverse push eax mov ax,[DSP1VARS] @@ -366,6 +366,7 @@ DSP1_04: ; Trigonometric mov byte[DSP1RLeft],2 pop eax ret + DSP1_08: ; Vector Size push eax mov ax,[DSP1VARS] @@ -384,6 +385,7 @@ DSP1_08: ; Vector Size mov byte[DSP1RLeft],2 pop eax ret + DSP1_18: ; Vector Size Comparison push eax mov ax,[DSP1VARS] @@ -421,7 +423,6 @@ DSP1_28: ; Vector Absolute Value pop eax ret - DSP1_0C: ; Coordinate Rotation or byte[DSPDet],08h push eax @@ -441,6 +442,7 @@ DSP1_0C: ; Coordinate Rotation mov byte[DSP1RLeft],2 pop eax ret + DSP1_1C: ; 3D Coordinate Rotation push eax mov ax,[DSP1VARS] @@ -468,7 +470,6 @@ DSP1_1C: ; 3D Coordinate Rotation pop eax ret - DSP1_02: ; Vector Size or byte[DSPDet],10h push eax @@ -559,6 +560,7 @@ DSP1_0A: ; Raster Data Calculation via DMA mov byte[DSP1RLeft],4 pop eax ret + DSP1_06: ; Object Projection Calculation or byte[DSPDet],40h push eax @@ -598,6 +600,7 @@ DSP1_06: ; Object Projection Calculation mov [eax+11],bx pop ebx add dword[dsp1ptr],13 + DSP1_0E: ; Coordinate Calculation of a point onscreen push eax mov ax,[DSP1VARS] @@ -614,6 +617,7 @@ DSP1_0E: ; Coordinate Calculation of a point onscreen mov byte[DSP1RLeft],2 pop eax ret + DSP1_01: ; Set Attitude Matrix A push eax mov ax,[DSP1VARS] @@ -629,6 +633,7 @@ DSP1_01: ; Set Attitude Matrix A popad pop eax ret + DSP1_11: ; Set Attitude Matrix B push eax mov ax,[DSP1VARS] @@ -644,6 +649,7 @@ DSP1_11: ; Set Attitude Matrix B popad pop eax ret + DSP1_21: ; Set Attitude Matrix C push eax mov ax,[DSP1VARS] @@ -659,6 +665,7 @@ DSP1_21: ; Set Attitude Matrix C popad pop eax ret + DSP1_0D: ; Convert from global to object coords Matrix A push eax mov ax,[DSP1VARS] @@ -679,6 +686,7 @@ DSP1_0D: ; Convert from global to object coords Matrix A mov byte[DSP1RLeft],3 pop eax ret + DSP1_1D: ; Convert from global to object coords Matrix B push eax mov ax,[DSP1VARS] @@ -699,6 +707,7 @@ DSP1_1D: ; Convert from global to object coords Matrix B mov byte[DSP1RLeft],3 pop eax ret + DSP1_2D: ; Convert from global to object coords Matrix C push eax mov ax,[DSP1VARS] @@ -719,6 +728,7 @@ DSP1_2D: ; Convert from global to object coords Matrix C mov byte[DSP1RLeft],3 pop eax ret + DSP1_03: ; Convert from object to global coords Matrix A push eax mov ax,[DSP1VARS] @@ -739,6 +749,7 @@ DSP1_03: ; Convert from object to global coords Matrix A mov byte[DSP1RLeft],3 pop eax ret + DSP1_13: ; Convert from object to global coords Matrix B push eax mov ax,[DSP1VARS] @@ -759,6 +770,7 @@ DSP1_13: ; Convert from object to global coords Matrix B mov byte[DSP1RLeft],3 pop eax ret + DSP1_23: ; Convert from object to global coords Matrix C push eax mov ax,[DSP1VARS] @@ -779,6 +791,7 @@ DSP1_23: ; Convert from object to global coords Matrix C mov byte[DSP1RLeft],3 pop eax ret + DSP1_0B: ; Calculation of inner product Matrix A push eax mov ax,[DSP1VARS] @@ -795,6 +808,7 @@ DSP1_0B: ; Calculation of inner product Matrix A mov byte[DSP1RLeft],1 pop eax ret + DSP1_1B: ; Calculation of inner product Matrix B push eax mov ax,[DSP1VARS] @@ -811,6 +825,7 @@ DSP1_1B: ; Calculation of inner product Matrix B mov byte[DSP1RLeft],1 pop eax ret + DSP1_2B: ; Calculation of inner product Matrix C push eax mov ax,[DSP1VARS] @@ -827,6 +842,7 @@ DSP1_2B: ; Calculation of inner product Matrix C mov byte[DSP1RLeft],1 pop eax ret + DSP1_14: ; 3D angle rotation push eax mov ax,[DSP1VARS]