Some fixes. Make HQXx assembly work on all x86 OSs.
git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@65 a31d4220-a93d-0410-bf67-fe4944624d44
This commit is contained in:
parent
06c0ee5eda
commit
b3b3720211
|
@ -824,10 +824,11 @@ void gbSoundReset()
|
|||
sound4EnvelopeATLReload = 0;
|
||||
|
||||
// don't translate
|
||||
#ifndef FINAL_VERSION
|
||||
if(soundDebug) {
|
||||
log("*** Sound Init ***\n");
|
||||
}
|
||||
|
||||
#endif
|
||||
gbSoundEvent(0xff10, 0x80);
|
||||
gbSoundEvent(0xff11, 0xbf);
|
||||
gbSoundEvent(0xff12, 0xf3);
|
||||
|
@ -854,10 +855,11 @@ void gbSoundReset()
|
|||
gbSoundEvent(0xff26, 0xf1);
|
||||
|
||||
// don't translate
|
||||
#ifndef FINAL_VERSION
|
||||
if(soundDebug) {
|
||||
log("*** Sound Init Complete ***\n");
|
||||
}
|
||||
|
||||
#endif
|
||||
sound1On = 0;
|
||||
sound2On = 0;
|
||||
sound3On = 0;
|
||||
|
|
|
@ -18,10 +18,9 @@
|
|||
;along with this program; if not, write to the Free Software
|
||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
GLOBAL _hq3x_16
|
||||
%include "macros.mac"
|
||||
|
||||
EXTERN _LUT16to32
|
||||
EXTERN _RGBtoYUV
|
||||
EXTSYM LUT16to32,RGBtoYUV
|
||||
|
||||
SECTION .bss
|
||||
linesleft resd 1
|
||||
|
@ -53,7 +52,7 @@ SECTION .text
|
|||
mov edx,[%1]
|
||||
cmp edx,[%2]
|
||||
je %%fin
|
||||
mov ecx,_RGBtoYUV
|
||||
mov ecx,RGBtoYUV
|
||||
movd mm1,[ecx+edx*4]
|
||||
movq mm5,mm1
|
||||
mov edx,[%2]
|
||||
|
@ -162,7 +161,7 @@ SECTION .text
|
|||
%endmacro
|
||||
|
||||
%macro Interp3 2
|
||||
mov ecx, _LUT16to32
|
||||
mov ecx, LUT16to32
|
||||
movd mm1, [ecx+eax*4]
|
||||
mov edx, %2
|
||||
movd mm2, [ecx+edx*4]
|
||||
|
@ -181,7 +180,7 @@ SECTION .text
|
|||
%endmacro
|
||||
|
||||
%macro Interp4 3
|
||||
mov ecx, _LUT16to32
|
||||
mov ecx, LUT16to32
|
||||
movd mm1, [ecx+eax*4]
|
||||
mov edx, %2
|
||||
movd mm2, [ecx+edx*4]
|
||||
|
@ -404,7 +403,7 @@ Yres equ 20
|
|||
pitch equ 24
|
||||
offset equ 28
|
||||
|
||||
_hq3x_16:
|
||||
NEWSYM hq3x_16
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
pushad
|
||||
|
@ -480,7 +479,7 @@ _hq3x_16:
|
|||
movzx edx,ax
|
||||
mov [w9],edx
|
||||
.flags
|
||||
mov ebx,_RGBtoYUV
|
||||
mov ebx,RGBtoYUV
|
||||
mov eax,[w5]
|
||||
xor ecx,ecx
|
||||
movd mm5,[ebx+eax*4]
|
||||
|
|
|
@ -18,10 +18,9 @@
|
|||
;along with this program; if not, write to the Free Software
|
||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
GLOBAL _hq3x_32
|
||||
%include "macros.mac"
|
||||
|
||||
EXTERN _LUT16to32
|
||||
EXTERN _RGBtoYUV
|
||||
EXTSYM LUT16to32,RGBtoYUV
|
||||
|
||||
SECTION .bss
|
||||
linesleft resd 1
|
||||
|
@ -61,7 +60,7 @@ SECTION .text
|
|||
mov edx,[%1]
|
||||
cmp edx,[%2]
|
||||
je %%fin
|
||||
mov ecx,_RGBtoYUV
|
||||
mov ecx,RGBtoYUV
|
||||
movd mm1,[ecx+edx*4]
|
||||
movq mm5,mm1
|
||||
mov edx,[%2]
|
||||
|
@ -370,7 +369,7 @@ Yres equ 20
|
|||
pitch equ 24
|
||||
offset equ 28
|
||||
|
||||
_hq3x_32:
|
||||
NEWSYM hq3x_32
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
pushad
|
||||
|
@ -446,7 +445,7 @@ _hq3x_32:
|
|||
movzx edx,ax
|
||||
mov [w9],edx
|
||||
.flags
|
||||
mov ebx,_RGBtoYUV
|
||||
mov ebx,RGBtoYUV
|
||||
mov eax,[w5]
|
||||
xor ecx,ecx
|
||||
movd mm5,[ebx+eax*4]
|
||||
|
@ -515,7 +514,7 @@ _hq3x_32:
|
|||
test ecx,ecx
|
||||
jnz .testflag1
|
||||
mov ecx,[cross]
|
||||
mov ebx,_LUT16to32
|
||||
mov ebx,LUT16to32
|
||||
mov eax,[ebx+eax*4]
|
||||
jmp [FuncTable2+ecx*4]
|
||||
.testflag1
|
||||
|
@ -575,7 +574,7 @@ _hq3x_32:
|
|||
jz .noflag9
|
||||
or ecx,128
|
||||
.noflag9
|
||||
mov ebx,_LUT16to32
|
||||
mov ebx,LUT16to32
|
||||
mov eax,[ebx+eax*4]
|
||||
mov edx,[w2]
|
||||
mov edx,[ebx+edx*4]
|
||||
|
|
|
@ -18,10 +18,9 @@
|
|||
;along with this program; if not, write to the Free Software
|
||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
GLOBAL _hq4x_16
|
||||
%include "macros.mac"
|
||||
|
||||
EXTERN _LUT16to32
|
||||
EXTERN _RGBtoYUV
|
||||
EXTSYM LUT16to32,RGBtoYUV
|
||||
|
||||
SECTION .bss
|
||||
linesleft resd 1
|
||||
|
@ -63,12 +62,12 @@ SECTION .text
|
|||
jz %%fin
|
||||
mov edx,[%1]
|
||||
shl edx,2
|
||||
add edx,_RGBtoYUV
|
||||
add edx,RGBtoYUV
|
||||
movd mm1,[edx]
|
||||
movq mm5,mm1
|
||||
mov edx,[%2]
|
||||
shl edx,2
|
||||
add edx,_RGBtoYUV
|
||||
add edx,RGBtoYUV
|
||||
movd mm2,[edx]
|
||||
psubusb mm1,mm2
|
||||
psubusb mm2,mm5
|
||||
|
@ -182,7 +181,7 @@ SECTION .text
|
|||
%endmacro
|
||||
|
||||
%macro Interp3 3
|
||||
mov eax, _LUT16to32
|
||||
mov eax, LUT16to32
|
||||
mov edx, %2
|
||||
movd mm1, [eax+edx*4]
|
||||
mov edx, %3
|
||||
|
@ -215,7 +214,7 @@ SECTION .text
|
|||
%endmacro
|
||||
|
||||
%macro Interp6 4
|
||||
mov eax, _LUT16to32
|
||||
mov eax, LUT16to32
|
||||
mov edx, %2
|
||||
movd mm1, [eax+edx*4]
|
||||
mov edx, %3
|
||||
|
@ -240,7 +239,7 @@ SECTION .text
|
|||
%endmacro
|
||||
|
||||
%macro Interp7 4
|
||||
mov eax, _LUT16to32
|
||||
mov eax, LUT16to32
|
||||
mov edx, %2
|
||||
movd mm1, [eax+edx*4]
|
||||
mov edx, %3
|
||||
|
@ -264,7 +263,7 @@ SECTION .text
|
|||
%endmacro
|
||||
|
||||
%macro Interp8 3
|
||||
mov eax, _LUT16to32
|
||||
mov eax, LUT16to32
|
||||
mov edx, %2
|
||||
movd mm1, [eax+edx*4]
|
||||
mov edx, %3
|
||||
|
@ -867,7 +866,7 @@ Yres equ 20
|
|||
pitch equ 24
|
||||
offset equ 28
|
||||
|
||||
_hq4x_16:
|
||||
NEWSYM hq4x_16
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
pushad
|
||||
|
@ -943,7 +942,7 @@ _hq4x_16:
|
|||
movzx edx,ax
|
||||
mov [w9],edx
|
||||
.flags
|
||||
mov ebx,_RGBtoYUV
|
||||
mov ebx,RGBtoYUV
|
||||
mov eax,[w5]
|
||||
xor ecx,ecx
|
||||
movd mm5,[ebx+eax*4]
|
||||
|
|
|
@ -18,10 +18,9 @@
|
|||
;along with this program; if not, write to the Free Software
|
||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
GLOBAL _hq4x_32
|
||||
%include "macros.mac"
|
||||
|
||||
EXTERN _LUT16to32
|
||||
EXTERN _RGBtoYUV
|
||||
EXTSYM LUT16to32,RGBtoYUV
|
||||
|
||||
SECTION .bss
|
||||
linesleft resd 1
|
||||
|
@ -71,12 +70,12 @@ SECTION .text
|
|||
jz %%fin
|
||||
mov edx,[%1]
|
||||
shl edx,2
|
||||
add edx,_RGBtoYUV
|
||||
add edx,RGBtoYUV
|
||||
movd mm1,[edx]
|
||||
movq mm5,mm1
|
||||
mov edx,[%2]
|
||||
shl edx,2
|
||||
add edx,_RGBtoYUV
|
||||
add edx,RGBtoYUV
|
||||
movd mm2,[edx]
|
||||
psubusb mm1,mm2
|
||||
psubusb mm2,mm5
|
||||
|
@ -798,7 +797,7 @@ Yres equ 20
|
|||
pitch equ 24
|
||||
offset equ 28
|
||||
|
||||
_hq4x_32:
|
||||
NEWSYM hq4x_32
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
pushad
|
||||
|
@ -874,7 +873,7 @@ _hq4x_32:
|
|||
movzx edx,ax
|
||||
mov [w9],edx
|
||||
.flags
|
||||
mov ebx,_RGBtoYUV
|
||||
mov ebx,RGBtoYUV
|
||||
mov eax,[w5]
|
||||
xor ecx,ecx
|
||||
movd mm5,[ebx+eax*4]
|
||||
|
@ -942,7 +941,7 @@ _hq4x_32:
|
|||
.noflag8
|
||||
cmp dword[cross],0
|
||||
jnz .testflag1
|
||||
mov ebx,_LUT16to32
|
||||
mov ebx,LUT16to32
|
||||
mov eax,[ebx+eax*4]
|
||||
mov ebx,[ebp+pitch]
|
||||
AUXADDRESS
|
||||
|
@ -1020,7 +1019,7 @@ _hq4x_32:
|
|||
jz .noflag9
|
||||
or ecx,128
|
||||
.noflag9
|
||||
mov ebx,_LUT16to32
|
||||
mov ebx,LUT16to32
|
||||
mov eax,[ebx+eax*4]
|
||||
mov edx,[w2]
|
||||
mov edx,[ebx+edx*4]
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
;Copyright (C) 1997-2007 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach )
|
||||
;
|
||||
;http://www.zsnes.com
|
||||
;http://sourceforge.net/projects/zsnes
|
||||
;https://zsnes.bountysource.com
|
||||
;
|
||||
;This program is free software; you can redistribute it and/or
|
||||
;modify it under the terms of the GNU General Public License
|
||||
;version 2 as published by the Free Software Foundation.
|
||||
;
|
||||
;This program is distributed in the hope that it will be useful,
|
||||
;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;GNU General Public License for more details.
|
||||
;
|
||||
;You should have received a copy of the GNU General Public License
|
||||
;along with this program; if not, write to the Free Software
|
||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
|
||||
%ifdef __AMD64__
|
||||
bits 64
|
||||
%else
|
||||
bits 32
|
||||
%endif
|
||||
|
||||
%ifdef MACHO
|
||||
section .text align=16
|
||||
section .data align=4
|
||||
section .bss align=4
|
||||
%endif
|
||||
|
||||
%ifdef ELF
|
||||
|
||||
%imacro newsym 1
|
||||
GLOBAL %1
|
||||
%1:
|
||||
%endmacro
|
||||
%imacro newsym 2+
|
||||
GLOBAL %1
|
||||
%1: %2
|
||||
%endmacro
|
||||
%define EXTSYM EXTERN
|
||||
|
||||
section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
|
||||
%else
|
||||
|
||||
%imacro newsym 1
|
||||
GLOBAL _%1
|
||||
_%1:
|
||||
%1:
|
||||
%endmacro
|
||||
%imacro newsym 2+
|
||||
GLOBAL _%1
|
||||
_%1:
|
||||
%1: %2
|
||||
%endmacro
|
||||
%imacro EXTSYM 1-*
|
||||
%rep %0
|
||||
EXTERN _%1
|
||||
%define %1 _%1
|
||||
%rotate 1
|
||||
%endrep
|
||||
%endmacro
|
||||
%endif
|
||||
|
||||
%macro ALIGN32 0
|
||||
times ($$-$) & 1Fh nop ; Long word alignment
|
||||
%endmacro
|
||||
%macro ALIGN16 0
|
||||
times ($$-$) & 1Fh nop ; Long word alignment
|
||||
%endmacro
|
Loading…
Reference in New Issue