Add HQ2X and HQ4X, also add HQxX support to SDL port
This commit is contained in:
@@ -43,7 +43,9 @@ VIDEOBJ=${VIDEODIR}/makev16b.o ${VIDEODIR}/makev16t.o ${VIDEODIR}/makevid.o\
|
|||||||
${VIDEODIR}/newgfx16.o ${VIDEODIR}/newgfx2.o ${VIDEODIR}/newgfx.o\
|
${VIDEODIR}/newgfx16.o ${VIDEODIR}/newgfx2.o ${VIDEODIR}/newgfx.o\
|
||||||
${VIDEODIR}/m716text.o ${VIDEODIR}/2xsaiw.o\
|
${VIDEODIR}/m716text.o ${VIDEODIR}/2xsaiw.o\
|
||||||
${VIDEODIR}/procvid.o ${VIDEODIR}/sw_draw.o\
|
${VIDEODIR}/procvid.o ${VIDEODIR}/sw_draw.o\
|
||||||
${VIDEODIR}/hq3x16.o ${VIDEODIR}/hq3x32.o
|
${VIDEODIR}/hq2x16.o ${VIDEODIR}/hq2x32.o\
|
||||||
|
${VIDEODIR}/hq3x16.o ${VIDEODIR}/hq3x32.o\
|
||||||
|
${VIDEODIR}/hq4x16.o ${VIDEODIR}/hq4x32.o
|
||||||
|
|
||||||
WINOBJ=${WINDIR}/copyvwin.o \
|
WINOBJ=${WINDIR}/copyvwin.o \
|
||||||
${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \
|
${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \
|
||||||
@@ -84,8 +86,12 @@ ${EFFECTSDIR}/smoke.o: ${EFFECTSDIR}/smoke.c
|
|||||||
${EFFECTSDIR}/burn.o: ${EFFECTSDIR}/burn.c
|
${EFFECTSDIR}/burn.o: ${EFFECTSDIR}/burn.c
|
||||||
${VIDEODIR}/procvid.o: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xsaimmx.inc
|
${VIDEODIR}/procvid.o: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xsaimmx.inc
|
||||||
${VIDEODIR}/sw_draw.obj: ${VIDEODIR}/sw_draw.asm macros.mac
|
${VIDEODIR}/sw_draw.obj: ${VIDEODIR}/sw_draw.asm macros.mac
|
||||||
|
${VIDEODIR}/hq2x16.obj: ${VIDEODIR}/hq2x16.asm macros.mac
|
||||||
|
${VIDEODIR}/hq2x32.obj: ${VIDEODIR}/hq2x32.asm macros.mac
|
||||||
${VIDEODIR}/hq3x16.obj: ${VIDEODIR}/hq3x16.asm macros.mac
|
${VIDEODIR}/hq3x16.obj: ${VIDEODIR}/hq3x16.asm macros.mac
|
||||||
${VIDEODIR}/hq3x32.obj: ${VIDEODIR}/hq3x32.asm macros.mac
|
${VIDEODIR}/hq3x32.obj: ${VIDEODIR}/hq3x32.asm macros.mac
|
||||||
|
${VIDEODIR}/hq4x16.obj: ${VIDEODIR}/hq4x16.asm macros.mac
|
||||||
|
${VIDEODIR}/hq4x32.obj: ${VIDEODIR}/hq4x32.asm macros.mac
|
||||||
${CHIPDIR}/dsp1proc.o: ${CHIPDIR}/dsp1proc.asm macros.mac
|
${CHIPDIR}/dsp1proc.o: ${CHIPDIR}/dsp1proc.asm macros.mac
|
||||||
${CHIPDIR}/sa1regs.o: ${CHIPDIR}/sa1regs.asm macros.mac\
|
${CHIPDIR}/sa1regs.o: ${CHIPDIR}/sa1regs.asm macros.mac\
|
||||||
${CPUDIR}/regs.mac ${CPUDIR}/regsw.mac
|
${CPUDIR}/regs.mac ${CPUDIR}/regsw.mac
|
||||||
@@ -182,8 +188,8 @@ endmem.o: endmem.asm macros.mac
|
|||||||
${DOSDIR}/modemrtn.o: ${DOSDIR}/modemrtn.asm macros.mac
|
${DOSDIR}/modemrtn.o: ${DOSDIR}/modemrtn.asm macros.mac
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@INSTALL@ -D -m 0755 @ZSNESEXE@ @prefix@/bin
|
@INSTALL@ -m 0755 @ZSNESEXE@ @prefix@/bin
|
||||||
@INSTALL@ -D -m 0644 linux/zsnes.1 @prefix@/man/man1
|
@INSTALL@ -m 0644 linux/zsnes.1 @prefix@/man/man1
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
rm -f @prefix@/bin/$(notdir @ZSNESEXE@) @prefix@/man/man5/zsnes.5
|
rm -f @prefix@/bin/$(notdir @ZSNESEXE@) @prefix@/man/man5/zsnes.5
|
||||||
|
|||||||
@@ -1064,7 +1064,9 @@ NEWSYM GUII2VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Super 2xSAI En
|
|||||||
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 ; Hi-Resolution Mode 7
|
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 ; Hi-Resolution Mode 7
|
||||||
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Bilinear Filtering
|
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Bilinear Filtering
|
||||||
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
|
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
|
||||||
|
NEWSYM GUIHQ2X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; HQ2X Filter
|
||||||
NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; HQ3X Filter
|
NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; HQ3X Filter
|
||||||
|
NEWSYM GUIHQ4X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; HQ4X Filter
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
; ****************************
|
; ****************************
|
||||||
|
|||||||
@@ -158,7 +158,9 @@ EXTSYM TCPIPSendPacket,TCPIPSendPacketUDP
|
|||||||
EXTSYM TCPIPDisconnect,TCPIPStatus
|
EXTSYM TCPIPDisconnect,TCPIPStatus
|
||||||
EXTSYM TCPIPStoreByte
|
EXTSYM TCPIPStoreByte
|
||||||
EXTSYM TCPIPGetByte,GUIBIFIL
|
EXTSYM TCPIPGetByte,GUIBIFIL
|
||||||
|
EXTSYM GUIHQ2X
|
||||||
EXTSYM GUIHQ3X
|
EXTSYM GUIHQ3X
|
||||||
|
EXTSYM GUIHQ4X
|
||||||
EXTSYM firstsaveinc
|
EXTSYM firstsaveinc
|
||||||
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
@@ -601,7 +603,7 @@ NEWSYM KeyDisplayFPS, dd 0
|
|||||||
NEWSYM KeyIncStateSlot, dd 0
|
NEWSYM KeyIncStateSlot, dd 0
|
||||||
NEWSYM KeyDecStateSlot, dd 0
|
NEWSYM KeyDecStateSlot, dd 0
|
||||||
NEWSYM KeyUsePlayer1234, dd 0
|
NEWSYM KeyUsePlayer1234, dd 0
|
||||||
NEWSYM hq3xFilter, db 0
|
NEWSYM hqFilter, db 0
|
||||||
NEWSYM reserved, db 0
|
NEWSYM reserved, db 0
|
||||||
NEWSYM scale2xFilter, db 0
|
NEWSYM scale2xFilter, db 0
|
||||||
|
|
||||||
@@ -1542,7 +1544,7 @@ NEWSYM StartGUI
|
|||||||
jmp .no2xSaIdis
|
jmp .no2xSaIdis
|
||||||
.2xSaIdis
|
.2xSaIdis
|
||||||
mov byte[En2xSaI],0
|
mov byte[En2xSaI],0
|
||||||
mov byte[hq3xFilter],0
|
mov byte[hqFilter],0
|
||||||
.no2xSaIdis
|
.no2xSaIdis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaidis
|
je .no2xsaidis
|
||||||
@@ -1550,16 +1552,16 @@ NEWSYM StartGUI
|
|||||||
.no2xsaidis
|
.no2xsaidis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaien
|
je .no2xsaien
|
||||||
mov byte[hq3xFilter],0
|
mov byte[hqFilter],0
|
||||||
mov byte[scanlines],0
|
mov byte[scanlines],0
|
||||||
mov byte[antienab],0
|
mov byte[antienab],0
|
||||||
.no2xsaien
|
.no2xsaien
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
je .nohq3x
|
je .nohq
|
||||||
mov byte[En2xSaI],0
|
mov byte[En2xSaI],0
|
||||||
mov byte[scanlines],0
|
mov byte[scanlines],0
|
||||||
mov byte[antienab],0
|
mov byte[antienab],0
|
||||||
.nohq3x
|
.nohq
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
mov eax,SpecialLine
|
mov eax,SpecialLine
|
||||||
.slloop
|
.slloop
|
||||||
|
|||||||
@@ -1019,7 +1019,7 @@ GUIVideoKeys:
|
|||||||
jne .nofullscanlines
|
jne .nofullscanlines
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .nofullscanlines
|
jne .nofullscanlines
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
jne .nofullscanlines
|
jne .nofullscanlines
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
GUIkeystoggleoptn byte[scanlines],1
|
GUIkeystoggleoptn byte[scanlines],1
|
||||||
@@ -1045,7 +1045,7 @@ GUIVideoKeys:
|
|||||||
jne .nohalfscanlines
|
jne .nohalfscanlines
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .nohalfscanlines
|
jne .nohalfscanlines
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
jne .nohalfscanlines
|
jne .nohalfscanlines
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
GUIkeystoggleoptn byte[scanlines],3
|
GUIkeystoggleoptn byte[scanlines],3
|
||||||
@@ -1062,7 +1062,7 @@ GUIVideoKeys:
|
|||||||
jne .noquarterscanlines
|
jne .noquarterscanlines
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .noquarterscanlines
|
jne .noquarterscanlines
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
jne .noquarterscanlines
|
jne .noquarterscanlines
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
GUIkeystoggleoptn byte[scanlines],2
|
GUIkeystoggleoptn byte[scanlines],2
|
||||||
@@ -1076,19 +1076,25 @@ GUIVideoKeys:
|
|||||||
%endif
|
%endif
|
||||||
.noquarterscanlines
|
.noquarterscanlines
|
||||||
cmp dh,'Q'
|
cmp dh,'Q'
|
||||||
jne .nohq3xfilter
|
jne .nohqfilter
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
|
cmp byte[GUIHQ2X+ebx],0
|
||||||
|
jne .hqfilter
|
||||||
cmp byte[GUIHQ3X+ebx],0
|
cmp byte[GUIHQ3X+ebx],0
|
||||||
je .nohq3xfilter
|
jne .hqfilter
|
||||||
xor byte[hq3xFilter],1
|
cmp byte[GUIHQ4X+ebx],0
|
||||||
jz .nohq3xfilter
|
jne .hqfilter
|
||||||
|
jmp .nohqfilter
|
||||||
|
.hqfilter
|
||||||
|
xor byte[hqFilter],1
|
||||||
|
jz .nohqfilter
|
||||||
mov byte[scanlines],0
|
mov byte[scanlines],0
|
||||||
mov byte[cfgscanline],0
|
mov byte[cfgscanline],0
|
||||||
mov byte[En2xSaI],0
|
mov byte[En2xSaI],0
|
||||||
mov byte[antienab],0
|
mov byte[antienab],0
|
||||||
mov byte[cfginterp],0
|
mov byte[cfginterp],0
|
||||||
.nohq3xfilter
|
.nohqfilter
|
||||||
cmp dh,'X'
|
cmp dh,'X'
|
||||||
jne .no2xsai
|
jne .no2xsai
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
|
|||||||
@@ -2355,10 +2355,16 @@ DisplayGUIVideoClick:
|
|||||||
%endif
|
%endif
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
|
cmp byte[GUIHQ2X+ebx],0
|
||||||
|
jne .checkboxhq
|
||||||
cmp byte[GUIHQ3X+ebx],0
|
cmp byte[GUIHQ3X+ebx],0
|
||||||
je .nocheckboxhq3x
|
jne .checkboxhq
|
||||||
GUIClickCButtonHQ 115,163,byte[hq3xFilter]
|
cmp byte[GUIHQ4X+ebx],0
|
||||||
.nocheckboxhq3x
|
jne .checkboxhq
|
||||||
|
jmp .nocheckboxhq
|
||||||
|
.checkboxhq
|
||||||
|
GUIClickCButtonHQ 115,163,byte[hqFilter]
|
||||||
|
.nocheckboxhq
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUI2xVID+ebx],0
|
cmp byte[GUI2xVID+ebx],0
|
||||||
|
|||||||
@@ -1643,7 +1643,7 @@ DisplayGUIVideo:
|
|||||||
jmp .no2xSaIdis
|
jmp .no2xSaIdis
|
||||||
.2xSaIdis
|
.2xSaIdis
|
||||||
mov byte[En2xSaI],0
|
mov byte[En2xSaI],0
|
||||||
mov byte[hq3xFilter],0
|
mov byte[hqFilter],0
|
||||||
.no2xSaIdis
|
.no2xSaIdis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaidis
|
je .no2xsaidis
|
||||||
@@ -1651,11 +1651,11 @@ DisplayGUIVideo:
|
|||||||
.no2xsaidis
|
.no2xsaidis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaien
|
je .no2xsaien
|
||||||
mov byte[hq3xFilter],0
|
mov byte[hqFilter],0
|
||||||
mov byte[scanlines],0
|
mov byte[scanlines],0
|
||||||
mov byte[antienab],0
|
mov byte[antienab],0
|
||||||
.no2xsaien
|
.no2xsaien
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
je .nohq3xen
|
je .nohq3xen
|
||||||
mov byte[En2xSaI],0
|
mov byte[En2xSaI],0
|
||||||
mov byte[scanlines],0
|
mov byte[scanlines],0
|
||||||
@@ -1772,12 +1772,24 @@ DisplayGUIVideo:
|
|||||||
je near .notext11a
|
je near .notext11a
|
||||||
GUIOuttextwin2u 5,130,158,GUIVideoTextscale2x,1
|
GUIOuttextwin2u 5,130,158,GUIVideoTextscale2x,1
|
||||||
.notext11a
|
.notext11a
|
||||||
|
xor eax,eax
|
||||||
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ2X+eax],0
|
||||||
|
je near .notexthq2xa
|
||||||
|
GUIOuttextwin2u 5,130,168,GUIVideoTexthq2x,1
|
||||||
|
.notexthq2xa
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUIHQ3X+eax],0
|
cmp byte[GUIHQ3X+eax],0
|
||||||
je near .notext11
|
je near .notexthq3xa
|
||||||
GUIOuttextwin2u 5,130,168,GUIVideoTexthq3x,1
|
GUIOuttextwin2u 5,130,168,GUIVideoTexthq3x,1
|
||||||
.notext11
|
.notexthq3xa
|
||||||
|
xor eax,eax
|
||||||
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ4X+eax],0
|
||||||
|
je near .notexthq4xa
|
||||||
|
GUIOuttextwin2u 5,130,168,GUIVideoTexthq4x,1
|
||||||
|
.notexthq4xa
|
||||||
GUIOuttextwin2u 5,26,188,GUIVideoText8c,0
|
GUIOuttextwin2u 5,26,188,GUIVideoText8c,0
|
||||||
%ifndef __LINUX__
|
%ifndef __LINUX__
|
||||||
GUIOuttextwin2u 5,130,188,GUIVideoText9,0
|
GUIOuttextwin2u 5,130,188,GUIVideoText9,0
|
||||||
@@ -1885,12 +1897,24 @@ DisplayGUIVideo:
|
|||||||
je near .notext11b
|
je near .notext11b
|
||||||
GUIOuttextwin2 5,129,157,GUIVideoTextscale2x
|
GUIOuttextwin2 5,129,157,GUIVideoTextscale2x
|
||||||
.notext11b
|
.notext11b
|
||||||
|
xor eax,eax
|
||||||
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ2X+eax],0
|
||||||
|
je near .notexthq2xb
|
||||||
|
GUIOuttextwin2 5,129,167,GUIVideoTexthq2x
|
||||||
|
.notexthq2xb
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUIHQ3X+eax],0
|
cmp byte[GUIHQ3X+eax],0
|
||||||
je near .notext11c
|
je near .notexthq3xb
|
||||||
GUIOuttextwin2 5,129,167,GUIVideoTexthq3x
|
GUIOuttextwin2 5,129,167,GUIVideoTexthq3x
|
||||||
.notext11c
|
.notexthq3xb
|
||||||
|
xor eax,eax
|
||||||
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ4X+eax],0
|
||||||
|
je near .notexthq4xb
|
||||||
|
GUIOuttextwin2 5,129,167,GUIVideoTexthq4x
|
||||||
|
.notexthq4xb
|
||||||
GUIOuttextwin2 5,25,187,GUIVideoText8c
|
GUIOuttextwin2 5,25,187,GUIVideoText8c
|
||||||
%ifndef __LINUX__
|
%ifndef __LINUX__
|
||||||
GUIOuttextwin2 5,129,187,GUIVideoText9
|
GUIOuttextwin2 5,129,187,GUIVideoText9
|
||||||
@@ -2076,15 +2100,21 @@ DisplayGUIVideo:
|
|||||||
.nocheckbox2scale2x
|
.nocheckbox2scale2x
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ2X+eax],0
|
||||||
|
jne near .checkboxhq
|
||||||
cmp byte[GUIHQ3X+eax],0
|
cmp byte[GUIHQ3X+eax],0
|
||||||
je near .nocheckbox2hq3x
|
jne near .checkboxhq
|
||||||
|
cmp byte[GUIHQ4X+eax],0
|
||||||
|
jne near .checkboxhq
|
||||||
|
jmp .nocheckboxhq
|
||||||
|
.checkboxhq
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
je .nocheckbox1hq3x
|
je .uncheckedhq
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxC
|
mov dword[GUITemp],GUIIconDataCheckBoxC
|
||||||
.nocheckbox1hq3x
|
.uncheckedhq
|
||||||
GUIDisplayIconWin 5,115,163,[GUITemp]
|
GUIDisplayIconWin 5,115,163,[GUITemp]
|
||||||
.nocheckbox2hq3x
|
.nocheckboxhq
|
||||||
DrawGUIWinBox 5,5,26,115,69,167
|
DrawGUIWinBox 5,5,26,115,69,167
|
||||||
DrawSlideBarWin 5,117,34,[GUIcurrentvideoviewloc],[NumVideoModes],5,28,GUIVStA
|
DrawSlideBarWin 5,117,34,[GUIcurrentvideoviewloc],[NumVideoModes],5,28,GUIVStA
|
||||||
cmp byte[GUICHold],5
|
cmp byte[GUICHold],5
|
||||||
@@ -2205,7 +2235,9 @@ GUIVideoTextbf db 'BILINEAR FILTER',0
|
|||||||
GUIVideoText3 db 'INTERPOLATION',0 ; -y
|
GUIVideoText3 db 'INTERPOLATION',0 ; -y
|
||||||
GUIVideoText4 db 'EAGLE ENGINE',0 ; -y
|
GUIVideoText4 db 'EAGLE ENGINE',0 ; -y
|
||||||
GUIVideoTextscale2x db 'SCALE2X',0
|
GUIVideoTextscale2x db 'SCALE2X',0
|
||||||
|
GUIVideoTexthq2x db 'HQ2X',0
|
||||||
GUIVideoTexthq3x db 'HQ3X',0
|
GUIVideoTexthq3x db 'HQ3X',0
|
||||||
|
GUIVideoTexthq4x db 'HQ4X',0
|
||||||
GUIVideoText5 db 'FULL SCREEN',0 ; -c
|
GUIVideoText5 db 'FULL SCREEN',0 ; -c
|
||||||
GUIVideoText5b db 'WIDE SCREEN',0 ; -c
|
GUIVideoText5b db 'WIDE SCREEN',0 ; -c
|
||||||
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
||||||
@@ -3764,8 +3796,8 @@ DisplayNetOptns:
|
|||||||
mov dword[GUINetDisp],'INTE'
|
mov dword[GUINetDisp],'INTE'
|
||||||
mov dword[GUINetDisp+4],'RNET'
|
mov dword[GUINetDisp+4],'RNET'
|
||||||
mov byte[GUINetDisp+8],0
|
mov byte[GUINetDisp+8],0
|
||||||
; cmp byte[NetPlayNoMore],1
|
cmp byte[NetPlayNoMore],1
|
||||||
; jne .notcpip
|
jne .notcpip
|
||||||
mov dword[GUIwinsizex+8*4],201
|
mov dword[GUIwinsizex+8*4],201
|
||||||
mov dword[GUIwinsizey+8*4],48
|
mov dword[GUIwinsizey+8*4],48
|
||||||
.notcpip
|
.notcpip
|
||||||
@@ -3943,8 +3975,8 @@ DisplayNetOptnsTCPIP:
|
|||||||
.zero
|
.zero
|
||||||
sub byte[GUItextcolor],15
|
sub byte[GUItextcolor],15
|
||||||
|
|
||||||
; cmp byte[NetPlayNoMore],1
|
cmp byte[NetPlayNoMore],1
|
||||||
; jne near .tcpip
|
jne near .tcpip
|
||||||
GUIOuttextwin2 8,6,16,GUINetTextr1
|
GUIOuttextwin2 8,6,16,GUINetTextr1
|
||||||
GUIOuttextwin2 8,6,36,GUINetTextr2
|
GUIOuttextwin2 8,6,36,GUINetTextr2
|
||||||
GUIOuttextwin2 8,6,46,GUINetTextr3
|
GUIOuttextwin2 8,6,46,GUINetTextr3
|
||||||
@@ -4541,12 +4573,9 @@ GUINetTextm2 db 0,0,0
|
|||||||
GUINetTextn2 db '_',0
|
GUINetTextn2 db '_',0
|
||||||
GUINetTexto2 db 'BACK BUFFER',0
|
GUINetTexto2 db 'BACK BUFFER',0
|
||||||
GUINetTextp2 db 'ALLOW UDP CONNECTION',0
|
GUINetTextp2 db 'ALLOW UDP CONNECTION',0
|
||||||
GUINetTextr1 db 'NETPLAY IS DISABLED IN',0
|
GUINetTextr1 db 'PLEASE RESTART ZSNESW',0
|
||||||
GUINetTextr2 db 'WIP VERSIONS UNTIL',0
|
GUINetTextr2 db 'BEFORE STARTING A NEW',0
|
||||||
GUINetTextr3 db 'FURTHER NOTICE',0
|
GUINetTextr3 db 'NETPLAY SESSION',0
|
||||||
;GUINetTextr1 db 'PLEASE RESTART ZSNESW',0
|
|
||||||
;GUINetTextr2 db 'BEFORE STARTING A NEW',0
|
|
||||||
;GUINetTextr3 db 'NETPLAY SESSION',0
|
|
||||||
|
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
BaudVal dd 9600,14400,19200,28800,38400,57600,115200
|
BaudVal dd 9600,14400,19200,28800,38400,57600,115200
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
/Fezsnesw.exe chips\dsp1proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj init.obj initc.obj uic.obj patch.obj ui.obj vcache.obj effects\water.obj effects\smoke.obj effects\burn.obj version.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj video\sw_draw.obj video/hq3x16.obj video/hq3x32.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj zip\unzip.obj zip\zpng.obj zlib.lib libpng.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib ddraw.lib dsound.lib dinput8.lib d3dx.lib /link /section:.text,erw
|
/Fezsnesw.exe chips\dsp1proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj init.obj initc.obj uic.obj patch.obj ui.obj vcache.obj effects\water.obj effects\smoke.obj effects\burn.obj version.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj video\sw_draw.obj video\hq2x16.obj video\hq2x32.obj video\hq3x16.obj video\hq3x32.obj video\hq4x16.obj video\hq4x32.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj zip\unzip.obj zip\zpng.obj zlib.lib libpng.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib ddraw.lib dsound.lib dinput8.lib d3dx.lib /link /section:.text,erw
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -934,8 +934,9 @@ NEWSYM GUIRATIO, db 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
|
|||||||
NEWSYM GUIBIFIL, db 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1 ; binlinear = 1, nearest = 0
|
NEWSYM GUIBIFIL, db 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1 ; binlinear = 1, nearest = 0
|
||||||
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
|
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
|
||||||
NEWSYM GUIMBVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
NEWSYM GUIMBVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
NEWSYM GUIHQ2X, db 0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq2x filter
|
||||||
NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter
|
NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter
|
||||||
|
NEWSYM GUIHQ4X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1 ; hq4x filter
|
||||||
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|||||||
@@ -66,12 +66,14 @@ extern void SwitchFullScreen (void);
|
|||||||
extern unsigned char cvidmode;
|
extern unsigned char cvidmode;
|
||||||
DWORD SMode=0;
|
DWORD SMode=0;
|
||||||
DWORD DSMode=0;
|
DWORD DSMode=0;
|
||||||
DWORD prevHQ3XMode=-1;
|
DWORD prevHQMode=-1;
|
||||||
|
|
||||||
extern BYTE GUIWFVID[];
|
extern BYTE GUIWFVID[];
|
||||||
extern BYTE GUISMODE[];
|
extern BYTE GUISMODE[];
|
||||||
extern BYTE GUIDSMODE[];
|
extern BYTE GUIDSMODE[];
|
||||||
|
extern BYTE GUIHQ2X[];
|
||||||
extern BYTE GUIHQ3X[];
|
extern BYTE GUIHQ3X[];
|
||||||
|
extern BYTE GUIHQ4X[];
|
||||||
|
|
||||||
/* JOYSTICK AND KEYBOARD INPUT */
|
/* JOYSTICK AND KEYBOARD INPUT */
|
||||||
SDL_Joystick *JoystickInput[5];
|
SDL_Joystick *JoystickInput[5];
|
||||||
|
|||||||
@@ -51,7 +51,9 @@ VIDEOBJ=${VIDEODIR}/makev16b.obj ${VIDEODIR}/makev16t.obj ${VIDEODIR}/makevid.ob
|
|||||||
${VIDEODIR}/newgfx16.obj ${VIDEODIR}/newgfx2.obj ${VIDEODIR}/newgfx.obj\
|
${VIDEODIR}/newgfx16.obj ${VIDEODIR}/newgfx2.obj ${VIDEODIR}/newgfx.obj\
|
||||||
${VIDEODIR}/m716text.obj ${VIDEODIR}/2xsaiw.obj\
|
${VIDEODIR}/m716text.obj ${VIDEODIR}/2xsaiw.obj\
|
||||||
${VIDEODIR}/procvid.obj ${VIDEODIR}/sw_draw.obj\
|
${VIDEODIR}/procvid.obj ${VIDEODIR}/sw_draw.obj\
|
||||||
${VIDEODIR}/hq3x16.obj ${VIDEODIR}/hq3x32.obj
|
${VIDEODIR}/hq2x16.obj ${VIDEODIR}/hq2x32.obj\
|
||||||
|
${VIDEODIR}/hq3x16.obj ${VIDEODIR}/hq3x32.obj\
|
||||||
|
${VIDEODIR}/hq4x16.obj ${VIDEODIR}/hq4x32.obj
|
||||||
|
|
||||||
WINOBJ=${WINDIR}/copyvwin.obj \
|
WINOBJ=${WINDIR}/copyvwin.obj \
|
||||||
${WINDIR}/winintrf.obj ${WINDIR}/winlink.obj ${WINDIR}/zloaderw.obj\
|
${WINDIR}/winintrf.obj ${WINDIR}/winlink.obj ${WINDIR}/zloaderw.obj\
|
||||||
@@ -119,8 +121,12 @@ ${EFFECTSDIR}/burn.obj: ${EFFECTSDIR}/burn.c
|
|||||||
${VIDEODIR}/2xsaiw.obj: ${VIDEODIR}/2xsaiw.asm macros.mac
|
${VIDEODIR}/2xsaiw.obj: ${VIDEODIR}/2xsaiw.asm macros.mac
|
||||||
${VIDEODIR}/procvid.obj: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xSaImmx.inc
|
${VIDEODIR}/procvid.obj: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xSaImmx.inc
|
||||||
${VIDEODIR}/sw_draw.obj: ${VIDEODIR}/sw_draw.asm macros.mac
|
${VIDEODIR}/sw_draw.obj: ${VIDEODIR}/sw_draw.asm macros.mac
|
||||||
|
${VIDEODIR}/hq2x16.obj: ${VIDEODIR}/hq2x16.asm macros.mac
|
||||||
|
${VIDEODIR}/hq2x32.obj: ${VIDEODIR}/hq2x32.asm macros.mac
|
||||||
${VIDEODIR}/hq3x16.obj: ${VIDEODIR}/hq3x16.asm macros.mac
|
${VIDEODIR}/hq3x16.obj: ${VIDEODIR}/hq3x16.asm macros.mac
|
||||||
${VIDEODIR}/hq3x32.obj: ${VIDEODIR}/hq3x32.asm macros.mac
|
${VIDEODIR}/hq3x32.obj: ${VIDEODIR}/hq3x32.asm macros.mac
|
||||||
|
${VIDEODIR}/hq4x16.obj: ${VIDEODIR}/hq4x16.asm macros.mac
|
||||||
|
${VIDEODIR}/hq4x32.obj: ${VIDEODIR}/hq4x32.asm macros.mac
|
||||||
${CHIPDIR}/sa1regs.obj: ${CHIPDIR}/sa1regs.asm macros.mac\
|
${CHIPDIR}/sa1regs.obj: ${CHIPDIR}/sa1regs.asm macros.mac\
|
||||||
${CPUDIR}/regs.mac ${CPUDIR}/regsw.mac
|
${CPUDIR}/regs.mac ${CPUDIR}/regsw.mac
|
||||||
${CHIPDIR}/sfxproc.obj: ${CHIPDIR}/sfxproc.asm macros.mac\
|
${CHIPDIR}/sfxproc.obj: ${CHIPDIR}/sfxproc.asm macros.mac\
|
||||||
|
|||||||
2172
zsnes/src/video/hq2x16.asm
Normal file
2172
zsnes/src/video/hq2x16.asm
Normal file
File diff suppressed because it is too large
Load Diff
2145
zsnes/src/video/hq2x32.asm
Normal file
2145
zsnes/src/video/hq2x32.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -26,38 +26,20 @@ EXTSYM vidbuffer,curblank,MMXSupport,GUIOn,GUIOn2,
|
|||||||
EXTSYM vidbufferofsb
|
EXTSYM vidbufferofsb
|
||||||
EXTSYM FilteredGUI,resolutn,lineleft,cfield
|
EXTSYM FilteredGUI,resolutn,lineleft,cfield
|
||||||
EXTSYM hirestiledat,newengen,SpecialLine,HalfTrans
|
EXTSYM hirestiledat,newengen,SpecialLine,HalfTrans
|
||||||
EXTSYM hq3xFilter
|
EXTSYM hqFilter
|
||||||
EXTSYM AddEndBytes
|
EXTSYM AddEndBytes
|
||||||
EXTSYM NumBytesPerLine
|
EXTSYM NumBytesPerLine
|
||||||
EXTSYM WinVidMemStart
|
EXTSYM WinVidMemStart
|
||||||
EXTSYM BitConv32Ptr
|
EXTSYM BitConv32Ptr
|
||||||
EXTSYM RGBtoYUVPtr
|
EXTSYM RGBtoYUVPtr
|
||||||
|
EXTSYM prevline, nextline, deltaptr, xcounter
|
||||||
|
EXTSYM w1, w2, w3, w4, w5, w6, w7, w8, w9
|
||||||
|
EXTSYM reg_blank, const7, cross, threshold
|
||||||
|
|
||||||
%ifdef __MINGW__
|
%ifdef __MINGW__
|
||||||
NEWSYM CopyVWinAsmStart
|
NEWSYM CopyVWinAsmStart
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
NEWSYM prevline, resd 1
|
|
||||||
NEWSYM nextline, resd 1
|
|
||||||
NEWSYM deltaptr, resd 1
|
|
||||||
NEWSYM xcounter, resd 1
|
|
||||||
NEWSYM w1, resd 1
|
|
||||||
NEWSYM w2, resd 1
|
|
||||||
NEWSYM w3, resd 1
|
|
||||||
NEWSYM w4, resd 1
|
|
||||||
NEWSYM w5, resd 1
|
|
||||||
NEWSYM w6, resd 1
|
|
||||||
NEWSYM w7, resd 1
|
|
||||||
NEWSYM w8, resd 1
|
|
||||||
NEWSYM w9, resd 1
|
|
||||||
NEWSYM cross, resd 1
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
NEWSYM reg_blank, dd 0,0
|
|
||||||
NEWSYM const7, dd 0x00070007,0x00000007
|
|
||||||
NEWSYM threshold, dd 0x00300706,0x00000000
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
%macro TestDiff 2
|
%macro TestDiff 2
|
||||||
@@ -409,12 +391,12 @@ SECTION .text
|
|||||||
mov [edi+ebx*2+4],ax
|
mov [edi+ebx*2+4],ax
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
NEWSYM copy768x720x16bwin
|
NEWSYM hq3x_16b
|
||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
.startcopy
|
.startcopy
|
||||||
push es
|
pushad
|
||||||
mov ax,ds
|
mov ax,ds
|
||||||
mov es,ax
|
mov es,ax
|
||||||
mov esi,[vidbuffer]
|
mov esi,[vidbuffer]
|
||||||
@@ -429,7 +411,7 @@ NEWSYM copy768x720x16bwin
|
|||||||
.filtergui
|
.filtergui
|
||||||
cmp byte[MMXSupport],0
|
cmp byte[MMXSupport],0
|
||||||
je nointerp
|
je nointerp
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
jne hq3x
|
jne hq3x
|
||||||
|
|
||||||
;----------------------------;
|
;----------------------------;
|
||||||
@@ -458,7 +440,7 @@ nointerp:
|
|||||||
add esi,64
|
add esi,64
|
||||||
dec dl
|
dec dl
|
||||||
jnz near .loopy
|
jnz near .loopy
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;----------------------------;
|
;----------------------------;
|
||||||
@@ -2607,7 +2589,7 @@ hq3x:
|
|||||||
jmp .loopy
|
jmp .loopy
|
||||||
.fin
|
.fin
|
||||||
emms
|
emms
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
HighResProc:
|
HighResProc:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ EXTSYM vidbuffer,curblank,MMXSupport,GUIOn,GUIOn2,
|
|||||||
EXTSYM vidbufferofsb
|
EXTSYM vidbufferofsb
|
||||||
EXTSYM FilteredGUI,resolutn,lineleft,cfield
|
EXTSYM FilteredGUI,resolutn,lineleft,cfield
|
||||||
EXTSYM hirestiledat,newengen,SpecialLine
|
EXTSYM hirestiledat,newengen,SpecialLine
|
||||||
EXTSYM hq3xFilter
|
EXTSYM hqFilter
|
||||||
EXTSYM AddEndBytes
|
EXTSYM AddEndBytes
|
||||||
EXTSYM NumBytesPerLine
|
EXTSYM NumBytesPerLine
|
||||||
EXTSYM WinVidMemStart
|
EXTSYM WinVidMemStart
|
||||||
@@ -34,23 +34,13 @@ EXTSYM BitConv32Ptr
|
|||||||
EXTSYM RGBtoYUVPtr
|
EXTSYM RGBtoYUVPtr
|
||||||
EXTSYM prevline, nextline, deltaptr, xcounter
|
EXTSYM prevline, nextline, deltaptr, xcounter
|
||||||
EXTSYM w1, w2, w3, w4, w5, w6, w7, w8, w9
|
EXTSYM w1, w2, w3, w4, w5, w6, w7, w8, w9
|
||||||
|
EXTSYM c1, c2, c3, c4, c5, c6, c7, c8, c9
|
||||||
EXTSYM reg_blank, const7, cross, threshold
|
EXTSYM reg_blank, const7, cross, threshold
|
||||||
|
|
||||||
%ifdef __MINGW__
|
%ifdef __MINGW__
|
||||||
NEWSYM CopyVWinAsmStart
|
NEWSYM CopyVWinAsmStart
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
NEWSYM c1, resd 1
|
|
||||||
NEWSYM c2, resd 1
|
|
||||||
NEWSYM c3, resd 1
|
|
||||||
NEWSYM c4, resd 1
|
|
||||||
NEWSYM c5, resd 1
|
|
||||||
NEWSYM c6, resd 1
|
|
||||||
NEWSYM c7, resd 1
|
|
||||||
NEWSYM c8, resd 1
|
|
||||||
NEWSYM c9, resd 1
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
%macro TestDiff 2
|
%macro TestDiff 2
|
||||||
@@ -360,12 +350,12 @@ SECTION .text
|
|||||||
mov [edi+ebx*2+8],eax
|
mov [edi+ebx*2+8],eax
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
NEWSYM copy768x720x32bwin
|
NEWSYM hq3x_32b
|
||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
.startcopy
|
.startcopy
|
||||||
push es
|
pushad
|
||||||
mov ax,ds
|
mov ax,ds
|
||||||
mov es,ax
|
mov es,ax
|
||||||
mov esi,[vidbuffer]
|
mov esi,[vidbuffer]
|
||||||
@@ -380,7 +370,7 @@ NEWSYM copy768x720x32bwin
|
|||||||
.filtergui
|
.filtergui
|
||||||
cmp byte[MMXSupport],0
|
cmp byte[MMXSupport],0
|
||||||
je nointerp
|
je nointerp
|
||||||
cmp byte[hq3xFilter],0
|
cmp byte[hqFilter],0
|
||||||
jne hq3x
|
jne hq3x
|
||||||
|
|
||||||
;----------------------------;
|
;----------------------------;
|
||||||
@@ -413,7 +403,7 @@ nointerp:
|
|||||||
add esi,64
|
add esi,64
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz near .loopy
|
jnz near .loopy
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;----------------------------;
|
;----------------------------;
|
||||||
@@ -2639,7 +2629,7 @@ hq3x:
|
|||||||
jmp .loopy
|
jmp .loopy
|
||||||
.fin
|
.fin
|
||||||
emms
|
emms
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
HighResProc:
|
HighResProc:
|
||||||
|
|||||||
4288
zsnes/src/video/hq4x16.asm
Normal file
4288
zsnes/src/video/hq4x16.asm
Normal file
File diff suppressed because it is too large
Load Diff
4212
zsnes/src/video/hq4x32.asm
Normal file
4212
zsnes/src/video/hq4x32.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1272,7 +1272,9 @@ NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|||||||
NEWSYM GUITBWVID, db 0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1 ; Triple Buffering (Win)
|
NEWSYM GUITBWVID, db 0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1 ; Triple Buffering (Win)
|
||||||
NEWSYM GUISMODE, db 0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0
|
NEWSYM GUISMODE, db 0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0
|
||||||
NEWSYM GUIDSMODE, db 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1
|
NEWSYM GUIDSMODE, db 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1
|
||||||
NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter
|
NEWSYM GUIHQ2X, db 0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq2x filter
|
||||||
|
NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter
|
||||||
|
NEWSYM GUIHQ4X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1 ; hq4x filter
|
||||||
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|||||||
@@ -1286,17 +1286,19 @@ extern "C" DWORD converta;
|
|||||||
extern "C" unsigned int BitConv32Ptr;
|
extern "C" unsigned int BitConv32Ptr;
|
||||||
extern "C" unsigned int RGBtoYUVPtr;
|
extern "C" unsigned int RGBtoYUVPtr;
|
||||||
extern "C" unsigned char cvidmode;
|
extern "C" unsigned char cvidmode;
|
||||||
extern "C" unsigned char hq3xFilter;
|
extern "C" unsigned char hqFilter;
|
||||||
DWORD FirstVid=1;
|
DWORD FirstVid=1;
|
||||||
DWORD FirstFull=1;
|
DWORD FirstFull=1;
|
||||||
DWORD SMode=0;
|
DWORD SMode=0;
|
||||||
DWORD DSMode=0;
|
DWORD DSMode=0;
|
||||||
DWORD prevHQ3XMode=-1;
|
DWORD prevHQMode=-1;
|
||||||
WORD Refresh = 0;
|
WORD Refresh = 0;
|
||||||
extern "C" BYTE GUIWFVID[];
|
extern "C" BYTE GUIWFVID[];
|
||||||
extern "C" BYTE GUISMODE[];
|
extern "C" BYTE GUISMODE[];
|
||||||
extern "C" BYTE GUIDSMODE[];
|
extern "C" BYTE GUIDSMODE[];
|
||||||
|
extern "C" BYTE GUIHQ2X[];
|
||||||
extern "C" BYTE GUIHQ3X[];
|
extern "C" BYTE GUIHQ3X[];
|
||||||
|
extern "C" BYTE GUIHQ4X[];
|
||||||
|
|
||||||
int InitDirectDraw()
|
int InitDirectDraw()
|
||||||
{
|
{
|
||||||
@@ -1345,9 +1347,18 @@ int InitDirectDraw()
|
|||||||
FullScreen=GUIWFVID[cvidmode];
|
FullScreen=GUIWFVID[cvidmode];
|
||||||
DSMode=GUIDSMODE[cvidmode];
|
DSMode=GUIDSMODE[cvidmode];
|
||||||
|
|
||||||
|
DWORD HQMode=0;
|
||||||
|
|
||||||
|
if ( hqFilter != 0 )
|
||||||
|
{
|
||||||
|
if ( GUIHQ2X[cvidmode] != 0 ) HQMode=2;
|
||||||
|
if ( GUIHQ3X[cvidmode] != 0 ) HQMode=3;
|
||||||
|
if ( GUIHQ4X[cvidmode] != 0 ) HQMode=4;
|
||||||
|
}
|
||||||
|
|
||||||
if (FullScreen == 1 && DSMode == 0)
|
if (FullScreen == 1 && DSMode == 0)
|
||||||
{
|
{
|
||||||
if (SurfaceX == 768 && SurfaceY == 720)
|
if ( HQMode != 0 )
|
||||||
{
|
{
|
||||||
int marginx = (rcWindow.right - rcWindow.left - BlitArea.right + BlitArea.left)/2;
|
int marginx = (rcWindow.right - rcWindow.left - BlitArea.right + BlitArea.left)/2;
|
||||||
int marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
int marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
||||||
@@ -1512,7 +1523,7 @@ int InitDirectDraw()
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((SurfaceX==512) || (SurfaceX==640))
|
if (((SurfaceX==512) || (SurfaceX==640)) && (HQMode==0))
|
||||||
AltSurface = 1;
|
AltSurface = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1711,15 +1722,19 @@ void initwinvideo(void)
|
|||||||
//MK: unused 2003/08/31
|
//MK: unused 2003/08/31
|
||||||
//RECT swrect;
|
//RECT swrect;
|
||||||
DWORD newmode=0;
|
DWORD newmode=0;
|
||||||
DWORD HQ3XMode=0;
|
DWORD HQMode=0;
|
||||||
|
|
||||||
if ((GUIHQ3X[cvidmode]!=0) && (hq3xFilter!=0))
|
if ( hqFilter != 0 )
|
||||||
HQ3XMode=1;
|
{
|
||||||
|
if ( GUIHQ2X[cvidmode] != 0 ) HQMode=2;
|
||||||
|
if ( GUIHQ3X[cvidmode] != 0 ) HQMode=3;
|
||||||
|
if ( GUIHQ4X[cvidmode] != 0 ) HQMode=4;
|
||||||
|
}
|
||||||
|
|
||||||
if ((CurMode!=cvidmode) || (prevHQ3XMode!=HQ3XMode))
|
if ((CurMode!=cvidmode) || (prevHQMode!=HQMode))
|
||||||
{
|
{
|
||||||
CurMode=cvidmode;
|
CurMode=cvidmode;
|
||||||
prevHQ3XMode=HQ3XMode;
|
prevHQMode=HQMode;
|
||||||
newmode=1;
|
newmode=1;
|
||||||
SurfaceX=256;
|
SurfaceX=256;
|
||||||
SurfaceY=240;
|
SurfaceY=240;
|
||||||
@@ -1907,10 +1922,20 @@ void initwinvideo(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HQ3XMode!=0)
|
switch ( HQMode )
|
||||||
{
|
{
|
||||||
SurfaceX=768;
|
case 2:
|
||||||
SurfaceY=720;
|
SurfaceX=512;
|
||||||
|
SurfaceY=480;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
SurfaceX=768;
|
||||||
|
SurfaceY=720;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
SurfaceX=1024;
|
||||||
|
SurfaceY=960;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
BlitArea.top = 0;
|
BlitArea.top = 0;
|
||||||
@@ -1935,7 +1960,8 @@ void initwinvideo(void)
|
|||||||
BlitArea.bottom = SurfaceY;
|
BlitArea.bottom = SurfaceY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SurfaceX == 768) BlitArea.bottom = (SurfaceY/240)*resolutn;
|
if ( HQMode != 0 )
|
||||||
|
BlitArea.bottom = (SurfaceY/240)*resolutn;
|
||||||
|
|
||||||
if (PrevRes == 0) PrevRes = resolutn;
|
if (PrevRes == 0) PrevRes = resolutn;
|
||||||
}
|
}
|
||||||
@@ -1970,7 +1996,7 @@ void initwinvideo(void)
|
|||||||
|
|
||||||
if (FullScreen == 1 && DSMode == 0)
|
if (FullScreen == 1 && DSMode == 0)
|
||||||
{
|
{
|
||||||
if (SurfaceX == 768 && SurfaceY == 720)
|
if ( HQMode != 0 )
|
||||||
{
|
{
|
||||||
int marginx = (rcWindow.right - rcWindow.left - BlitArea.right + BlitArea.left)/2;
|
int marginx = (rcWindow.right - rcWindow.left - BlitArea.right + BlitArea.left)/2;
|
||||||
int marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
int marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
||||||
@@ -2250,8 +2276,12 @@ extern DWORD AddEndBytes;
|
|||||||
extern DWORD NumBytesPerLine;
|
extern DWORD NumBytesPerLine;
|
||||||
extern unsigned char * WinVidMemStart;
|
extern unsigned char * WinVidMemStart;
|
||||||
extern void copy640x480x16bwin(void);
|
extern void copy640x480x16bwin(void);
|
||||||
extern void copy768x720x16bwin(void);
|
extern void hq2x_16b(void);
|
||||||
extern void copy768x720x32bwin(void);
|
extern void hq2x_32b(void);
|
||||||
|
extern void hq3x_16b(void);
|
||||||
|
extern void hq3x_32b(void);
|
||||||
|
extern void hq4x_16b(void);
|
||||||
|
extern void hq4x_32b(void);
|
||||||
extern unsigned char NGNoTransp;
|
extern unsigned char NGNoTransp;
|
||||||
extern unsigned char newengen;
|
extern unsigned char newengen;
|
||||||
extern void ClearWin16();
|
extern void ClearWin16();
|
||||||
@@ -2338,7 +2368,7 @@ extern _int64 copymaskG = 0x0000FC000000FC00;
|
|||||||
extern _int64 copymagic = 0x0008010000080100;
|
extern _int64 copymagic = 0x0008010000080100;
|
||||||
extern _int64 coef = 0x0066009a0066009a;
|
extern _int64 coef = 0x0066009a0066009a;
|
||||||
|
|
||||||
extern BYTE MotionBlur;
|
//extern BYTE MotionBlur;
|
||||||
extern WORD totlines;
|
extern WORD totlines;
|
||||||
|
|
||||||
void drawscreenwin(void)
|
void drawscreenwin(void)
|
||||||
@@ -2367,7 +2397,7 @@ void drawscreenwin(void)
|
|||||||
{
|
{
|
||||||
BlitArea.bottom = (SurfaceY/240)*224;
|
BlitArea.bottom = (SurfaceY/240)*224;
|
||||||
if (SurfaceX == 512 && DSMode == 1) BlitArea.bottom = SurfaceY;
|
if (SurfaceX == 512 && DSMode == 1) BlitArea.bottom = SurfaceY;
|
||||||
if ((SurfaceX == 256 || SurfaceX == 512 || SurfaceX == 768) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/239)*224;
|
if ((SurfaceX == 256 || SurfaceX == 512 || SurfaceX == 768 || SurfaceX == 1024) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/239)*224;
|
||||||
initwinvideo();
|
initwinvideo();
|
||||||
PrevRes = resolutn;
|
PrevRes = resolutn;
|
||||||
}
|
}
|
||||||
@@ -2376,22 +2406,24 @@ void drawscreenwin(void)
|
|||||||
{
|
{
|
||||||
BlitArea.bottom = (SurfaceY/240)*239;
|
BlitArea.bottom = (SurfaceY/240)*239;
|
||||||
if (SurfaceX == 512 && DSMode == 1) BlitArea.bottom = SurfaceY;
|
if (SurfaceX == 512 && DSMode == 1) BlitArea.bottom = SurfaceY;
|
||||||
if ((SurfaceX == 256 || SurfaceX == 512 || SurfaceX == 768) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/224)*239;
|
if ((SurfaceX == 256 || SurfaceX == 512 || SurfaceX == 768 || SurfaceX == 1024) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/224)*239;
|
||||||
initwinvideo();
|
initwinvideo();
|
||||||
PrevRes = resolutn;
|
PrevRes = resolutn;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD HQ3XMode=0;
|
DWORD HQMode=0;
|
||||||
|
|
||||||
if (MMXSupport == 0)
|
if (MMXSupport == 0)
|
||||||
hq3xFilter=0;
|
hqFilter=0;
|
||||||
else
|
|
||||||
|
if ( hqFilter != 0 )
|
||||||
{
|
{
|
||||||
if ((GUIHQ3X[cvidmode]!=0) && (hq3xFilter!=0))
|
if ( GUIHQ2X[cvidmode] != 0 ) HQMode=2;
|
||||||
HQ3XMode=1;
|
if ( GUIHQ3X[cvidmode] != 0 ) HQMode=3;
|
||||||
|
if ( GUIHQ4X[cvidmode] != 0 ) HQMode=4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prevHQ3XMode!=HQ3XMode)
|
if (prevHQMode!=HQMode)
|
||||||
initwinvideo();
|
initwinvideo();
|
||||||
|
|
||||||
SurfBufD=(DWORD) &SurfBuf[0];
|
SurfBufD=(DWORD) &SurfBuf[0];
|
||||||
@@ -2415,45 +2447,47 @@ void drawscreenwin(void)
|
|||||||
InitDirectDraw();
|
InitDirectDraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SurfaceX == 256 && SurfaceY == 240)
|
if ( HQMode == 0 )
|
||||||
{
|
{
|
||||||
switch (BitDepth)
|
if (SurfaceX == 256 && SurfaceY == 240)
|
||||||
{
|
{
|
||||||
case 16:
|
switch (BitDepth)
|
||||||
{
|
{
|
||||||
DrawWin256x224x16();
|
case 16:
|
||||||
break;
|
{
|
||||||
}
|
DrawWin256x224x16();
|
||||||
case 32:
|
break;
|
||||||
{
|
}
|
||||||
DrawWin256x224x32();
|
case 32:
|
||||||
break;
|
{
|
||||||
}
|
DrawWin256x224x32();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*pitch];
|
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<256;i++)
|
for(i=0;i<256;i++)
|
||||||
{
|
{
|
||||||
SURFDW[i]=color32;
|
SURFDW[i]=color32;
|
||||||
}
|
}
|
||||||
|
|
||||||
SURFDW=(DWORD *) &SurfBuf[resolutn*pitch];
|
SURFDW=(DWORD *) &SurfBuf[resolutn*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<256;i++)
|
for(i=0;i<256;i++)
|
||||||
{
|
{
|
||||||
SURFDW[i]=color32;
|
SURFDW[i]=color32;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
MessageBox (NULL, "Sorry. ZSNESw does not work in windowed 24 bit color modes. \nClick 'OK' to switch to a full screen mode.", "DDRAW Error" , MB_ICONERROR );
|
MessageBox (NULL, "Sorry. ZSNESw does not work in windowed 24 bit color modes. \nClick 'OK' to switch to a full screen mode.", "DDRAW Error" , MB_ICONERROR );
|
||||||
cvidmode=3;
|
cvidmode=3;
|
||||||
initwinvideo();
|
initwinvideo();
|
||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
drawscreenwin();
|
drawscreenwin();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
UnlockSurface();
|
UnlockSurface();
|
||||||
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
||||||
cvidmode=2;
|
cvidmode=2;
|
||||||
@@ -2461,28 +2495,28 @@ void drawscreenwin(void)
|
|||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
drawscreenwin();
|
drawscreenwin();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SurfaceX == 320 && SurfaceY == 240)
|
if (SurfaceX == 320 && SurfaceY == 240)
|
||||||
{
|
{
|
||||||
switch (BitDepth)
|
switch (BitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
{
|
{
|
||||||
DrawWin320x240x16();
|
DrawWin320x240x16();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 32:
|
case 32:
|
||||||
for(j=0;j<8;j++)
|
for(j=0;j<8;j++)
|
||||||
{
|
{
|
||||||
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<320;i++)
|
for(i=0;i<320;i++)
|
||||||
{
|
{
|
||||||
SURFDW[i]=color32;
|
SURFDW[i]=color32;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(j=8;(int)j<(resolutn-1)+8;j++)
|
for(j=8;(int)j<(resolutn-1)+8;j++)
|
||||||
@@ -2523,7 +2557,7 @@ void drawscreenwin(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
UnlockSurface();
|
UnlockSurface();
|
||||||
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
||||||
cvidmode=2;
|
cvidmode=2;
|
||||||
@@ -2531,13 +2565,13 @@ void drawscreenwin(void)
|
|||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
drawscreenwin();
|
drawscreenwin();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SurfaceX==512 && (SurfaceY==448 || SurfaceY==480))
|
if (SurfaceX==512 && (SurfaceY==448 || SurfaceY==480))
|
||||||
{
|
{
|
||||||
switch (BitDepth)
|
switch (BitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
case 32: // using 16bpp AltSurface
|
case 32: // using 16bpp AltSurface
|
||||||
AddEndBytes=pitch-1024;
|
AddEndBytes=pitch-1024;
|
||||||
@@ -2557,13 +2591,13 @@ void drawscreenwin(void)
|
|||||||
initwinvideo();
|
initwinvideo();
|
||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
drawscreenwin();
|
drawscreenwin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SurfaceX == 640 && SurfaceY == 480)
|
if (SurfaceX == 640 && SurfaceY == 480)
|
||||||
{
|
{
|
||||||
switch (BitDepth)
|
switch (BitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
case 32: // using 16bpp AltSurface
|
case 32: // using 16bpp AltSurface
|
||||||
AddEndBytes=pitch-1024;
|
AddEndBytes=pitch-1024;
|
||||||
@@ -2583,44 +2617,48 @@ void drawscreenwin(void)
|
|||||||
initwinvideo();
|
initwinvideo();
|
||||||
Sleep(1000);
|
Sleep(1000);
|
||||||
drawscreenwin();
|
drawscreenwin();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (SurfaceX == 768 && SurfaceY == 720)
|
else
|
||||||
{
|
{
|
||||||
switch (BitDepth)
|
// HQMode != 0
|
||||||
{
|
NumBytesPerLine = pitch;
|
||||||
case 16:
|
AddEndBytes = pitch - SurfaceX*(BitDepth/8);
|
||||||
AddEndBytes=pitch-768*2;
|
WinVidMemStart=&SurfBuf[0];
|
||||||
NumBytesPerLine=pitch;
|
switch (BitDepth)
|
||||||
WinVidMemStart=&SurfBuf[0];
|
{
|
||||||
_asm
|
case 16:
|
||||||
{
|
{
|
||||||
pushad
|
switch (HQMode)
|
||||||
call copy768x720x16bwin
|
{
|
||||||
popad
|
case 2: hq2x_16b(); break;
|
||||||
}
|
case 3: hq3x_16b(); break;
|
||||||
break;
|
case 4: hq4x_16b(); break;
|
||||||
case 32:
|
}
|
||||||
AddEndBytes=pitch-768*4;
|
break;
|
||||||
NumBytesPerLine=pitch;
|
}
|
||||||
WinVidMemStart=&SurfBuf[0];
|
case 32:
|
||||||
_asm
|
{
|
||||||
{
|
switch (HQMode)
|
||||||
pushad
|
{
|
||||||
call copy768x720x32bwin
|
case 2: hq2x_32b(); break;
|
||||||
popad
|
case 3: hq3x_32b(); break;
|
||||||
}
|
case 4: hq4x_32b(); break;
|
||||||
break;
|
}
|
||||||
default:
|
break;
|
||||||
UnlockSurface();
|
}
|
||||||
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
default:
|
||||||
cvidmode=2;
|
{
|
||||||
initwinvideo();
|
UnlockSurface();
|
||||||
Sleep(1000);
|
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
||||||
drawscreenwin();
|
cvidmode=2;
|
||||||
}
|
initwinvideo();
|
||||||
|
Sleep(1000);
|
||||||
|
drawscreenwin();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UnlockSurface();
|
UnlockSurface();
|
||||||
DrawScreen();
|
DrawScreen();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user