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}/m716text.o ${VIDEODIR}/2xsaiw.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 \
|
||||
${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \
|
||||
@@ -84,8 +86,12 @@ ${EFFECTSDIR}/smoke.o: ${EFFECTSDIR}/smoke.c
|
||||
${EFFECTSDIR}/burn.o: ${EFFECTSDIR}/burn.c
|
||||
${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}/hq2x16.obj: ${VIDEODIR}/hq2x16.asm macros.mac
|
||||
${VIDEODIR}/hq2x32.obj: ${VIDEODIR}/hq2x32.asm macros.mac
|
||||
${VIDEODIR}/hq3x16.obj: ${VIDEODIR}/hq3x16.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}/sa1regs.o: ${CHIPDIR}/sa1regs.asm macros.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
|
||||
|
||||
install:
|
||||
@INSTALL@ -D -m 0755 @ZSNESEXE@ @prefix@/bin
|
||||
@INSTALL@ -D -m 0644 linux/zsnes.1 @prefix@/man/man1
|
||||
@INSTALL@ -m 0755 @ZSNESEXE@ @prefix@/bin
|
||||
@INSTALL@ -m 0644 linux/zsnes.1 @prefix@/man/man1
|
||||
|
||||
uninstall:
|
||||
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 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 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 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
|
||||
|
||||
; ****************************
|
||||
|
||||
@@ -158,7 +158,9 @@ EXTSYM TCPIPSendPacket,TCPIPSendPacketUDP
|
||||
EXTSYM TCPIPDisconnect,TCPIPStatus
|
||||
EXTSYM TCPIPStoreByte
|
||||
EXTSYM TCPIPGetByte,GUIBIFIL
|
||||
EXTSYM GUIHQ2X
|
||||
EXTSYM GUIHQ3X
|
||||
EXTSYM GUIHQ4X
|
||||
EXTSYM firstsaveinc
|
||||
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
||||
%ifdef __LINUX__
|
||||
@@ -601,7 +603,7 @@ NEWSYM KeyDisplayFPS, dd 0
|
||||
NEWSYM KeyIncStateSlot, dd 0
|
||||
NEWSYM KeyDecStateSlot, dd 0
|
||||
NEWSYM KeyUsePlayer1234, dd 0
|
||||
NEWSYM hq3xFilter, db 0
|
||||
NEWSYM hqFilter, db 0
|
||||
NEWSYM reserved, db 0
|
||||
NEWSYM scale2xFilter, db 0
|
||||
|
||||
@@ -1542,7 +1544,7 @@ NEWSYM StartGUI
|
||||
jmp .no2xSaIdis
|
||||
.2xSaIdis
|
||||
mov byte[En2xSaI],0
|
||||
mov byte[hq3xFilter],0
|
||||
mov byte[hqFilter],0
|
||||
.no2xSaIdis
|
||||
cmp byte[En2xSaI],0
|
||||
je .no2xsaidis
|
||||
@@ -1550,16 +1552,16 @@ NEWSYM StartGUI
|
||||
.no2xsaidis
|
||||
cmp byte[En2xSaI],0
|
||||
je .no2xsaien
|
||||
mov byte[hq3xFilter],0
|
||||
mov byte[hqFilter],0
|
||||
mov byte[scanlines],0
|
||||
mov byte[antienab],0
|
||||
.no2xsaien
|
||||
cmp byte[hq3xFilter],0
|
||||
je .nohq3x
|
||||
cmp byte[hqFilter],0
|
||||
je .nohq
|
||||
mov byte[En2xSaI],0
|
||||
mov byte[scanlines],0
|
||||
mov byte[antienab],0
|
||||
.nohq3x
|
||||
.nohq
|
||||
mov ecx,64
|
||||
mov eax,SpecialLine
|
||||
.slloop
|
||||
|
||||
@@ -1019,7 +1019,7 @@ GUIVideoKeys:
|
||||
jne .nofullscanlines
|
||||
cmp byte[En2xSaI],0
|
||||
jne .nofullscanlines
|
||||
cmp byte[hq3xFilter],0
|
||||
cmp byte[hqFilter],0
|
||||
jne .nofullscanlines
|
||||
call ClearScreen
|
||||
GUIkeystoggleoptn byte[scanlines],1
|
||||
@@ -1045,7 +1045,7 @@ GUIVideoKeys:
|
||||
jne .nohalfscanlines
|
||||
cmp byte[En2xSaI],0
|
||||
jne .nohalfscanlines
|
||||
cmp byte[hq3xFilter],0
|
||||
cmp byte[hqFilter],0
|
||||
jne .nohalfscanlines
|
||||
call ClearScreen
|
||||
GUIkeystoggleoptn byte[scanlines],3
|
||||
@@ -1062,7 +1062,7 @@ GUIVideoKeys:
|
||||
jne .noquarterscanlines
|
||||
cmp byte[En2xSaI],0
|
||||
jne .noquarterscanlines
|
||||
cmp byte[hq3xFilter],0
|
||||
cmp byte[hqFilter],0
|
||||
jne .noquarterscanlines
|
||||
call ClearScreen
|
||||
GUIkeystoggleoptn byte[scanlines],2
|
||||
@@ -1076,19 +1076,25 @@ GUIVideoKeys:
|
||||
%endif
|
||||
.noquarterscanlines
|
||||
cmp dh,'Q'
|
||||
jne .nohq3xfilter
|
||||
jne .nohqfilter
|
||||
xor ebx,ebx
|
||||
mov bl,[cvidmode]
|
||||
cmp byte[GUIHQ2X+ebx],0
|
||||
jne .hqfilter
|
||||
cmp byte[GUIHQ3X+ebx],0
|
||||
je .nohq3xfilter
|
||||
xor byte[hq3xFilter],1
|
||||
jz .nohq3xfilter
|
||||
jne .hqfilter
|
||||
cmp byte[GUIHQ4X+ebx],0
|
||||
jne .hqfilter
|
||||
jmp .nohqfilter
|
||||
.hqfilter
|
||||
xor byte[hqFilter],1
|
||||
jz .nohqfilter
|
||||
mov byte[scanlines],0
|
||||
mov byte[cfgscanline],0
|
||||
mov byte[En2xSaI],0
|
||||
mov byte[antienab],0
|
||||
mov byte[cfginterp],0
|
||||
.nohq3xfilter
|
||||
.nohqfilter
|
||||
cmp dh,'X'
|
||||
jne .no2xsai
|
||||
xor ebx,ebx
|
||||
|
||||
@@ -2355,10 +2355,16 @@ DisplayGUIVideoClick:
|
||||
%endif
|
||||
xor ebx,ebx
|
||||
mov bl,[cvidmode]
|
||||
cmp byte[GUIHQ2X+ebx],0
|
||||
jne .checkboxhq
|
||||
cmp byte[GUIHQ3X+ebx],0
|
||||
je .nocheckboxhq3x
|
||||
GUIClickCButtonHQ 115,163,byte[hq3xFilter]
|
||||
.nocheckboxhq3x
|
||||
jne .checkboxhq
|
||||
cmp byte[GUIHQ4X+ebx],0
|
||||
jne .checkboxhq
|
||||
jmp .nocheckboxhq
|
||||
.checkboxhq
|
||||
GUIClickCButtonHQ 115,163,byte[hqFilter]
|
||||
.nocheckboxhq
|
||||
xor ebx,ebx
|
||||
mov bl,[cvidmode]
|
||||
cmp byte[GUI2xVID+ebx],0
|
||||
|
||||
@@ -1643,7 +1643,7 @@ DisplayGUIVideo:
|
||||
jmp .no2xSaIdis
|
||||
.2xSaIdis
|
||||
mov byte[En2xSaI],0
|
||||
mov byte[hq3xFilter],0
|
||||
mov byte[hqFilter],0
|
||||
.no2xSaIdis
|
||||
cmp byte[En2xSaI],0
|
||||
je .no2xsaidis
|
||||
@@ -1651,11 +1651,11 @@ DisplayGUIVideo:
|
||||
.no2xsaidis
|
||||
cmp byte[En2xSaI],0
|
||||
je .no2xsaien
|
||||
mov byte[hq3xFilter],0
|
||||
mov byte[hqFilter],0
|
||||
mov byte[scanlines],0
|
||||
mov byte[antienab],0
|
||||
.no2xsaien
|
||||
cmp byte[hq3xFilter],0
|
||||
cmp byte[hqFilter],0
|
||||
je .nohq3xen
|
||||
mov byte[En2xSaI],0
|
||||
mov byte[scanlines],0
|
||||
@@ -1772,12 +1772,24 @@ DisplayGUIVideo:
|
||||
je near .notext11a
|
||||
GUIOuttextwin2u 5,130,158,GUIVideoTextscale2x,1
|
||||
.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
|
||||
mov al,[cvidmode]
|
||||
cmp byte[GUIHQ3X+eax],0
|
||||
je near .notext11
|
||||
je near .notexthq3xa
|
||||
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
|
||||
%ifndef __LINUX__
|
||||
GUIOuttextwin2u 5,130,188,GUIVideoText9,0
|
||||
@@ -1885,12 +1897,24 @@ DisplayGUIVideo:
|
||||
je near .notext11b
|
||||
GUIOuttextwin2 5,129,157,GUIVideoTextscale2x
|
||||
.notext11b
|
||||
xor eax,eax
|
||||
mov al,[cvidmode]
|
||||
cmp byte[GUIHQ2X+eax],0
|
||||
je near .notexthq2xb
|
||||
GUIOuttextwin2 5,129,167,GUIVideoTexthq2x
|
||||
.notexthq2xb
|
||||
xor eax,eax
|
||||
mov al,[cvidmode]
|
||||
cmp byte[GUIHQ3X+eax],0
|
||||
je near .notext11c
|
||||
je near .notexthq3xb
|
||||
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
|
||||
%ifndef __LINUX__
|
||||
GUIOuttextwin2 5,129,187,GUIVideoText9
|
||||
@@ -2076,15 +2100,21 @@ DisplayGUIVideo:
|
||||
.nocheckbox2scale2x
|
||||
xor eax,eax
|
||||
mov al,[cvidmode]
|
||||
cmp byte[GUIHQ2X+eax],0
|
||||
jne near .checkboxhq
|
||||
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
|
||||
cmp byte[hq3xFilter],0
|
||||
je .nocheckbox1hq3x
|
||||
cmp byte[hqFilter],0
|
||||
je .uncheckedhq
|
||||
mov dword[GUITemp],GUIIconDataCheckBoxC
|
||||
.nocheckbox1hq3x
|
||||
.uncheckedhq
|
||||
GUIDisplayIconWin 5,115,163,[GUITemp]
|
||||
.nocheckbox2hq3x
|
||||
.nocheckboxhq
|
||||
DrawGUIWinBox 5,5,26,115,69,167
|
||||
DrawSlideBarWin 5,117,34,[GUIcurrentvideoviewloc],[NumVideoModes],5,28,GUIVStA
|
||||
cmp byte[GUICHold],5
|
||||
@@ -2205,7 +2235,9 @@ GUIVideoTextbf db 'BILINEAR FILTER',0
|
||||
GUIVideoText3 db 'INTERPOLATION',0 ; -y
|
||||
GUIVideoText4 db 'EAGLE ENGINE',0 ; -y
|
||||
GUIVideoTextscale2x db 'SCALE2X',0
|
||||
GUIVideoTexthq2x db 'HQ2X',0
|
||||
GUIVideoTexthq3x db 'HQ3X',0
|
||||
GUIVideoTexthq4x db 'HQ4X',0
|
||||
GUIVideoText5 db 'FULL SCREEN',0 ; -c
|
||||
GUIVideoText5b db 'WIDE SCREEN',0 ; -c
|
||||
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
||||
@@ -3764,8 +3796,8 @@ DisplayNetOptns:
|
||||
mov dword[GUINetDisp],'INTE'
|
||||
mov dword[GUINetDisp+4],'RNET'
|
||||
mov byte[GUINetDisp+8],0
|
||||
; cmp byte[NetPlayNoMore],1
|
||||
; jne .notcpip
|
||||
cmp byte[NetPlayNoMore],1
|
||||
jne .notcpip
|
||||
mov dword[GUIwinsizex+8*4],201
|
||||
mov dword[GUIwinsizey+8*4],48
|
||||
.notcpip
|
||||
@@ -3943,8 +3975,8 @@ DisplayNetOptnsTCPIP:
|
||||
.zero
|
||||
sub byte[GUItextcolor],15
|
||||
|
||||
; cmp byte[NetPlayNoMore],1
|
||||
; jne near .tcpip
|
||||
cmp byte[NetPlayNoMore],1
|
||||
jne near .tcpip
|
||||
GUIOuttextwin2 8,6,16,GUINetTextr1
|
||||
GUIOuttextwin2 8,6,36,GUINetTextr2
|
||||
GUIOuttextwin2 8,6,46,GUINetTextr3
|
||||
@@ -4541,12 +4573,9 @@ GUINetTextm2 db 0,0,0
|
||||
GUINetTextn2 db '_',0
|
||||
GUINetTexto2 db 'BACK BUFFER',0
|
||||
GUINetTextp2 db 'ALLOW UDP CONNECTION',0
|
||||
GUINetTextr1 db 'NETPLAY IS DISABLED IN',0
|
||||
GUINetTextr2 db 'WIP VERSIONS UNTIL',0
|
||||
GUINetTextr3 db 'FURTHER NOTICE',0
|
||||
;GUINetTextr1 db 'PLEASE RESTART ZSNESW',0
|
||||
;GUINetTextr2 db 'BEFORE STARTING A NEW',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__
|
||||
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 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 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 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
|
||||
|
||||
@@ -66,12 +66,14 @@ extern void SwitchFullScreen (void);
|
||||
extern unsigned char cvidmode;
|
||||
DWORD SMode=0;
|
||||
DWORD DSMode=0;
|
||||
DWORD prevHQ3XMode=-1;
|
||||
DWORD prevHQMode=-1;
|
||||
|
||||
extern BYTE GUIWFVID[];
|
||||
extern BYTE GUISMODE[];
|
||||
extern BYTE GUIDSMODE[];
|
||||
extern BYTE GUIHQ2X[];
|
||||
extern BYTE GUIHQ3X[];
|
||||
extern BYTE GUIHQ4X[];
|
||||
|
||||
/* JOYSTICK AND KEYBOARD INPUT */
|
||||
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}/m716text.obj ${VIDEODIR}/2xsaiw.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 \
|
||||
${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}/procvid.obj: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xSaImmx.inc
|
||||
${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}/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\
|
||||
${CPUDIR}/regs.mac ${CPUDIR}/regsw.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 FilteredGUI,resolutn,lineleft,cfield
|
||||
EXTSYM hirestiledat,newengen,SpecialLine,HalfTrans
|
||||
EXTSYM hq3xFilter
|
||||
EXTSYM hqFilter
|
||||
EXTSYM AddEndBytes
|
||||
EXTSYM NumBytesPerLine
|
||||
EXTSYM WinVidMemStart
|
||||
EXTSYM BitConv32Ptr
|
||||
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__
|
||||
NEWSYM CopyVWinAsmStart
|
||||
%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
|
||||
|
||||
%macro TestDiff 2
|
||||
@@ -409,12 +391,12 @@ SECTION .text
|
||||
mov [edi+ebx*2+4],ax
|
||||
%endmacro
|
||||
|
||||
NEWSYM copy768x720x16bwin
|
||||
NEWSYM hq3x_16b
|
||||
cmp byte[curblank],40h
|
||||
jne .startcopy
|
||||
ret
|
||||
.startcopy
|
||||
push es
|
||||
pushad
|
||||
mov ax,ds
|
||||
mov es,ax
|
||||
mov esi,[vidbuffer]
|
||||
@@ -429,7 +411,7 @@ NEWSYM copy768x720x16bwin
|
||||
.filtergui
|
||||
cmp byte[MMXSupport],0
|
||||
je nointerp
|
||||
cmp byte[hq3xFilter],0
|
||||
cmp byte[hqFilter],0
|
||||
jne hq3x
|
||||
|
||||
;----------------------------;
|
||||
@@ -458,7 +440,7 @@ nointerp:
|
||||
add esi,64
|
||||
dec dl
|
||||
jnz near .loopy
|
||||
pop es
|
||||
popad
|
||||
ret
|
||||
|
||||
;----------------------------;
|
||||
@@ -2607,7 +2589,7 @@ hq3x:
|
||||
jmp .loopy
|
||||
.fin
|
||||
emms
|
||||
pop es
|
||||
popad
|
||||
ret
|
||||
|
||||
HighResProc:
|
||||
|
||||
@@ -26,7 +26,7 @@ EXTSYM vidbuffer,curblank,MMXSupport,GUIOn,GUIOn2,
|
||||
EXTSYM vidbufferofsb
|
||||
EXTSYM FilteredGUI,resolutn,lineleft,cfield
|
||||
EXTSYM hirestiledat,newengen,SpecialLine
|
||||
EXTSYM hq3xFilter
|
||||
EXTSYM hqFilter
|
||||
EXTSYM AddEndBytes
|
||||
EXTSYM NumBytesPerLine
|
||||
EXTSYM WinVidMemStart
|
||||
@@ -34,23 +34,13 @@ EXTSYM BitConv32Ptr
|
||||
EXTSYM RGBtoYUVPtr
|
||||
EXTSYM prevline, nextline, deltaptr, xcounter
|
||||
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
|
||||
|
||||
%ifdef __MINGW__
|
||||
NEWSYM CopyVWinAsmStart
|
||||
%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
|
||||
|
||||
%macro TestDiff 2
|
||||
@@ -360,12 +350,12 @@ SECTION .text
|
||||
mov [edi+ebx*2+8],eax
|
||||
%endmacro
|
||||
|
||||
NEWSYM copy768x720x32bwin
|
||||
NEWSYM hq3x_32b
|
||||
cmp byte[curblank],40h
|
||||
jne .startcopy
|
||||
ret
|
||||
.startcopy
|
||||
push es
|
||||
pushad
|
||||
mov ax,ds
|
||||
mov es,ax
|
||||
mov esi,[vidbuffer]
|
||||
@@ -380,7 +370,7 @@ NEWSYM copy768x720x32bwin
|
||||
.filtergui
|
||||
cmp byte[MMXSupport],0
|
||||
je nointerp
|
||||
cmp byte[hq3xFilter],0
|
||||
cmp byte[hqFilter],0
|
||||
jne hq3x
|
||||
|
||||
;----------------------------;
|
||||
@@ -413,7 +403,7 @@ nointerp:
|
||||
add esi,64
|
||||
dec byte[lineleft]
|
||||
jnz near .loopy
|
||||
pop es
|
||||
popad
|
||||
ret
|
||||
|
||||
;----------------------------;
|
||||
@@ -2639,7 +2629,7 @@ hq3x:
|
||||
jmp .loopy
|
||||
.fin
|
||||
emms
|
||||
pop es
|
||||
popad
|
||||
ret
|
||||
|
||||
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 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 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
|
||||
|
||||
@@ -1286,17 +1286,19 @@ extern "C" DWORD converta;
|
||||
extern "C" unsigned int BitConv32Ptr;
|
||||
extern "C" unsigned int RGBtoYUVPtr;
|
||||
extern "C" unsigned char cvidmode;
|
||||
extern "C" unsigned char hq3xFilter;
|
||||
extern "C" unsigned char hqFilter;
|
||||
DWORD FirstVid=1;
|
||||
DWORD FirstFull=1;
|
||||
DWORD SMode=0;
|
||||
DWORD DSMode=0;
|
||||
DWORD prevHQ3XMode=-1;
|
||||
DWORD prevHQMode=-1;
|
||||
WORD Refresh = 0;
|
||||
extern "C" BYTE GUIWFVID[];
|
||||
extern "C" BYTE GUISMODE[];
|
||||
extern "C" BYTE GUIDSMODE[];
|
||||
extern "C" BYTE GUIHQ2X[];
|
||||
extern "C" BYTE GUIHQ3X[];
|
||||
extern "C" BYTE GUIHQ4X[];
|
||||
|
||||
int InitDirectDraw()
|
||||
{
|
||||
@@ -1345,9 +1347,18 @@ int InitDirectDraw()
|
||||
FullScreen=GUIWFVID[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 (SurfaceX == 768 && SurfaceY == 720)
|
||||
if ( HQMode != 0 )
|
||||
{
|
||||
int marginx = (rcWindow.right - rcWindow.left - BlitArea.right + BlitArea.left)/2;
|
||||
int marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
||||
@@ -1512,7 +1523,7 @@ int InitDirectDraw()
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ((SurfaceX==512) || (SurfaceX==640))
|
||||
if (((SurfaceX==512) || (SurfaceX==640)) && (HQMode==0))
|
||||
AltSurface = 1;
|
||||
}
|
||||
|
||||
@@ -1711,15 +1722,19 @@ void initwinvideo(void)
|
||||
//MK: unused 2003/08/31
|
||||
//RECT swrect;
|
||||
DWORD newmode=0;
|
||||
DWORD HQ3XMode=0;
|
||||
DWORD HQMode=0;
|
||||
|
||||
if ((GUIHQ3X[cvidmode]!=0) && (hq3xFilter!=0))
|
||||
HQ3XMode=1;
|
||||
if ( hqFilter != 0 )
|
||||
{
|
||||
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;
|
||||
prevHQ3XMode=HQ3XMode;
|
||||
prevHQMode=HQMode;
|
||||
newmode=1;
|
||||
SurfaceX=256;
|
||||
SurfaceY=240;
|
||||
@@ -1907,10 +1922,20 @@ void initwinvideo(void)
|
||||
break;
|
||||
}
|
||||
|
||||
if (HQ3XMode!=0)
|
||||
switch ( HQMode )
|
||||
{
|
||||
SurfaceX=768;
|
||||
SurfaceY=720;
|
||||
case 2:
|
||||
SurfaceX=512;
|
||||
SurfaceY=480;
|
||||
break;
|
||||
case 3:
|
||||
SurfaceX=768;
|
||||
SurfaceY=720;
|
||||
break;
|
||||
case 4:
|
||||
SurfaceX=1024;
|
||||
SurfaceY=960;
|
||||
break;
|
||||
}
|
||||
|
||||
BlitArea.top = 0;
|
||||
@@ -1935,7 +1960,8 @@ void initwinvideo(void)
|
||||
BlitArea.bottom = SurfaceY;
|
||||
}
|
||||
|
||||
if (SurfaceX == 768) BlitArea.bottom = (SurfaceY/240)*resolutn;
|
||||
if ( HQMode != 0 )
|
||||
BlitArea.bottom = (SurfaceY/240)*resolutn;
|
||||
|
||||
if (PrevRes == 0) PrevRes = resolutn;
|
||||
}
|
||||
@@ -1970,7 +1996,7 @@ void initwinvideo(void)
|
||||
|
||||
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 marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
||||
@@ -2250,8 +2276,12 @@ extern DWORD AddEndBytes;
|
||||
extern DWORD NumBytesPerLine;
|
||||
extern unsigned char * WinVidMemStart;
|
||||
extern void copy640x480x16bwin(void);
|
||||
extern void copy768x720x16bwin(void);
|
||||
extern void copy768x720x32bwin(void);
|
||||
extern void hq2x_16b(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 newengen;
|
||||
extern void ClearWin16();
|
||||
@@ -2338,7 +2368,7 @@ extern _int64 copymaskG = 0x0000FC000000FC00;
|
||||
extern _int64 copymagic = 0x0008010000080100;
|
||||
extern _int64 coef = 0x0066009a0066009a;
|
||||
|
||||
extern BYTE MotionBlur;
|
||||
//extern BYTE MotionBlur;
|
||||
extern WORD totlines;
|
||||
|
||||
void drawscreenwin(void)
|
||||
@@ -2367,7 +2397,7 @@ void drawscreenwin(void)
|
||||
{
|
||||
BlitArea.bottom = (SurfaceY/240)*224;
|
||||
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();
|
||||
PrevRes = resolutn;
|
||||
}
|
||||
@@ -2376,22 +2406,24 @@ void drawscreenwin(void)
|
||||
{
|
||||
BlitArea.bottom = (SurfaceY/240)*239;
|
||||
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();
|
||||
PrevRes = resolutn;
|
||||
}
|
||||
|
||||
DWORD HQ3XMode=0;
|
||||
DWORD HQMode=0;
|
||||
|
||||
if (MMXSupport == 0)
|
||||
hq3xFilter=0;
|
||||
else
|
||||
hqFilter=0;
|
||||
|
||||
if ( hqFilter != 0 )
|
||||
{
|
||||
if ((GUIHQ3X[cvidmode]!=0) && (hq3xFilter!=0))
|
||||
HQ3XMode=1;
|
||||
if ( GUIHQ2X[cvidmode] != 0 ) HQMode=2;
|
||||
if ( GUIHQ3X[cvidmode] != 0 ) HQMode=3;
|
||||
if ( GUIHQ4X[cvidmode] != 0 ) HQMode=4;
|
||||
}
|
||||
|
||||
if (prevHQ3XMode!=HQ3XMode)
|
||||
if (prevHQMode!=HQMode)
|
||||
initwinvideo();
|
||||
|
||||
SurfBufD=(DWORD) &SurfBuf[0];
|
||||
@@ -2415,45 +2447,47 @@ void drawscreenwin(void)
|
||||
InitDirectDraw();
|
||||
}
|
||||
|
||||
if (SurfaceX == 256 && SurfaceY == 240)
|
||||
if ( HQMode == 0 )
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
{
|
||||
DrawWin256x224x16();
|
||||
break;
|
||||
}
|
||||
case 32:
|
||||
{
|
||||
DrawWin256x224x32();
|
||||
break;
|
||||
}
|
||||
if (SurfaceX == 256 && SurfaceY == 240)
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
{
|
||||
DrawWin256x224x16();
|
||||
break;
|
||||
}
|
||||
case 32:
|
||||
{
|
||||
DrawWin256x224x32();
|
||||
break;
|
||||
}
|
||||
|
||||
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*pitch];
|
||||
color32=0x7F000000;
|
||||
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*pitch];
|
||||
color32=0x7F000000;
|
||||
|
||||
for(i=0;i<256;i++)
|
||||
{
|
||||
SURFDW[i]=color32;
|
||||
}
|
||||
for(i=0;i<256;i++)
|
||||
{
|
||||
SURFDW[i]=color32;
|
||||
}
|
||||
|
||||
SURFDW=(DWORD *) &SurfBuf[resolutn*pitch];
|
||||
color32=0x7F000000;
|
||||
SURFDW=(DWORD *) &SurfBuf[resolutn*pitch];
|
||||
color32=0x7F000000;
|
||||
|
||||
for(i=0;i<256;i++)
|
||||
{
|
||||
SURFDW[i]=color32;
|
||||
}
|
||||
break;
|
||||
case 24:
|
||||
for(i=0;i<256;i++)
|
||||
{
|
||||
SURFDW[i]=color32;
|
||||
}
|
||||
break;
|
||||
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 );
|
||||
cvidmode=3;
|
||||
initwinvideo();
|
||||
Sleep(1000);
|
||||
drawscreenwin();
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
UnlockSurface();
|
||||
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
||||
cvidmode=2;
|
||||
@@ -2461,28 +2495,28 @@ void drawscreenwin(void)
|
||||
Sleep(1000);
|
||||
drawscreenwin();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (SurfaceX == 320 && SurfaceY == 240)
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
{
|
||||
DrawWin320x240x16();
|
||||
break;
|
||||
}
|
||||
case 32:
|
||||
if (SurfaceX == 320 && SurfaceY == 240)
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
{
|
||||
DrawWin320x240x16();
|
||||
break;
|
||||
}
|
||||
case 32:
|
||||
for(j=0;j<8;j++)
|
||||
{
|
||||
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
||||
color32=0x7F000000;
|
||||
|
||||
for(i=0;i<320;i++)
|
||||
{
|
||||
SURFDW[i]=color32;
|
||||
}
|
||||
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
||||
color32=0x7F000000;
|
||||
|
||||
for(i=0;i<320;i++)
|
||||
{
|
||||
SURFDW[i]=color32;
|
||||
}
|
||||
}
|
||||
|
||||
for(j=8;(int)j<(resolutn-1)+8;j++)
|
||||
@@ -2523,7 +2557,7 @@ void drawscreenwin(void)
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
UnlockSurface();
|
||||
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
||||
cvidmode=2;
|
||||
@@ -2531,13 +2565,13 @@ void drawscreenwin(void)
|
||||
Sleep(1000);
|
||||
drawscreenwin();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (SurfaceX==512 && (SurfaceY==448 || SurfaceY==480))
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
if (SurfaceX==512 && (SurfaceY==448 || SurfaceY==480))
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
case 32: // using 16bpp AltSurface
|
||||
AddEndBytes=pitch-1024;
|
||||
@@ -2557,13 +2591,13 @@ void drawscreenwin(void)
|
||||
initwinvideo();
|
||||
Sleep(1000);
|
||||
drawscreenwin();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (SurfaceX == 640 && SurfaceY == 480)
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
if (SurfaceX == 640 && SurfaceY == 480)
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
case 32: // using 16bpp AltSurface
|
||||
AddEndBytes=pitch-1024;
|
||||
@@ -2583,44 +2617,48 @@ void drawscreenwin(void)
|
||||
initwinvideo();
|
||||
Sleep(1000);
|
||||
drawscreenwin();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SurfaceX == 768 && SurfaceY == 720)
|
||||
else
|
||||
{
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
AddEndBytes=pitch-768*2;
|
||||
NumBytesPerLine=pitch;
|
||||
WinVidMemStart=&SurfBuf[0];
|
||||
_asm
|
||||
{
|
||||
pushad
|
||||
call copy768x720x16bwin
|
||||
popad
|
||||
}
|
||||
break;
|
||||
case 32:
|
||||
AddEndBytes=pitch-768*4;
|
||||
NumBytesPerLine=pitch;
|
||||
WinVidMemStart=&SurfBuf[0];
|
||||
_asm
|
||||
{
|
||||
pushad
|
||||
call copy768x720x32bwin
|
||||
popad
|
||||
}
|
||||
break;
|
||||
default:
|
||||
UnlockSurface();
|
||||
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
||||
cvidmode=2;
|
||||
initwinvideo();
|
||||
Sleep(1000);
|
||||
drawscreenwin();
|
||||
}
|
||||
// HQMode != 0
|
||||
NumBytesPerLine = pitch;
|
||||
AddEndBytes = pitch - SurfaceX*(BitDepth/8);
|
||||
WinVidMemStart=&SurfBuf[0];
|
||||
switch (BitDepth)
|
||||
{
|
||||
case 16:
|
||||
{
|
||||
switch (HQMode)
|
||||
{
|
||||
case 2: hq2x_16b(); break;
|
||||
case 3: hq3x_16b(); break;
|
||||
case 4: hq4x_16b(); break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 32:
|
||||
{
|
||||
switch (HQMode)
|
||||
{
|
||||
case 2: hq2x_32b(); break;
|
||||
case 3: hq3x_32b(); break;
|
||||
case 4: hq4x_32b(); break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
UnlockSurface();
|
||||
MessageBox (NULL, "Mode only available in 16 and 32 bit color", "DDRAW Error" , MB_ICONERROR );
|
||||
cvidmode=2;
|
||||
initwinvideo();
|
||||
Sleep(1000);
|
||||
drawscreenwin();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UnlockSurface();
|
||||
DrawScreen();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user