Added MaxSt's HQ3X filter
This commit is contained in:
@@ -26,7 +26,7 @@ ZIPDIR=zip
|
|||||||
|
|
||||||
CHIPSOBJ=${CHIPDIR}/sfxproc.o ${CHIPDIR}/fxemu2.o ${CHIPDIR}/dsp1proc.o\
|
CHIPSOBJ=${CHIPDIR}/sfxproc.o ${CHIPDIR}/fxemu2.o ${CHIPDIR}/dsp1proc.o\
|
||||||
${CHIPDIR}/fxemu2b.o ${CHIPDIR}/fxemu2c.o ${CHIPDIR}/fxtable.o\
|
${CHIPDIR}/fxemu2b.o ${CHIPDIR}/fxemu2c.o ${CHIPDIR}/fxtable.o\
|
||||||
${CHIPDIR}/sa1proc.o ${CHIPDIR}/sa1regs.o ${CHIPDIR}/dsp1emu.o
|
${CHIPDIR}/sa1proc.o ${CHIPDIR}/sa1regs.o $CHIPDIR}/dsp1emu.o
|
||||||
|
|
||||||
CPUOBJ=${CPUDIR}/addrni.o ${CPUDIR}/dma.o ${CPUDIR}/dsp.o ${CPUDIR}/dspproc.o\
|
CPUOBJ=${CPUDIR}/addrni.o ${CPUDIR}/dma.o ${CPUDIR}/dsp.o ${CPUDIR}/dspproc.o\
|
||||||
${CPUDIR}/execute.o ${CPUDIR}/irq.o ${CPUDIR}/memory.o \
|
${CPUDIR}/execute.o ${CPUDIR}/irq.o ${CPUDIR}/memory.o \
|
||||||
@@ -41,9 +41,11 @@ VIDEOBJ=${VIDEODIR}/makev16b.o ${VIDEODIR}/makev16t.o ${VIDEODIR}/makevid.o\
|
|||||||
${VIDEODIR}/mode7ext.o ${VIDEODIR}/mv16tms.o ${VIDEODIR}/newg162.o\
|
${VIDEODIR}/mode7ext.o ${VIDEODIR}/mv16tms.o ${VIDEODIR}/newg162.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
|
||||||
|
|
||||||
WINOBJ=${WINDIR}/copyvwin.o ${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \
|
WINOBJ=${WINDIR}/copyvwin.o \
|
||||||
|
${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o \
|
||||||
@GL_DRAW@ ${WINDIR}/sw_draw.o \
|
@GL_DRAW@ ${WINDIR}/sw_draw.o \
|
||||||
${WINDIR}/zloaderw.o ${WINDIR}/ztcp.o ${WINDIR}/zipxw.o \
|
${WINDIR}/zloaderw.o ${WINDIR}/ztcp.o ${WINDIR}/zipxw.o \
|
||||||
${WINDIR}/zfilew.o ${WINDIR}/protect.o
|
${WINDIR}/zfilew.o ${WINDIR}/protect.o
|
||||||
@@ -80,6 +82,9 @@ water.o: water.c
|
|||||||
smoke.o: smoke.c
|
smoke.o: smoke.c
|
||||||
burn.o: burn.c
|
burn.o: 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}/hq3x16.obj: ${VIDEODIR}/hq3x16.asm macros.mac
|
||||||
|
${VIDEODIR}/hq3x32.obj: ${VIDEODIR}/hq3x32.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
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ EXTSYM soundon, StereoSound, SoundCompD, SoundQuality, MusicRelVol
|
|||||||
EXTSYM endprog, continueprog, spcBuffera, spcRamcmp, cbitmode, makepal
|
EXTSYM endprog, continueprog, spcBuffera, spcRamcmp, cbitmode, makepal
|
||||||
EXTSYM t1cc, LoadDir, SRAMDir, LoadDrive,SRAMDrive, initsnes, romloadskip
|
EXTSYM t1cc, LoadDir, SRAMDir, LoadDrive,SRAMDrive, initsnes, romloadskip
|
||||||
EXTSYM fname, makeextension, sram, clearmem2, loadfileGUI, GUIloadfailed
|
EXTSYM fname, makeextension, sram, clearmem2, loadfileGUI, GUIloadfailed
|
||||||
EXTSYM SetupROM, CheckROMType, romdata, ForcePal, ramsize, ramsizeand, curromsize
|
EXTSYM SetupROM,CheckROMType, romdata, ForcePal, ramsize, ramsizeand, curromsize
|
||||||
EXTSYM romispal, totlines, cfgloadsdir, init65816, procexecloop
|
EXTSYM romispal, totlines, cfgloadsdir, init65816, procexecloop
|
||||||
EXTSYM spcRam, spcPCRam, spcS, spcRamDP, spcA, spcX, spcY, spcP, spcNZ
|
EXTSYM spcRam, spcPCRam, spcS, spcRamDP, spcA, spcX, spcY, spcP, spcNZ
|
||||||
EXTSYM Voice0Status, Voice1Status, Voice2Status, Voice3Status, Voice4Status
|
EXTSYM Voice0Status, Voice1Status, Voice2Status, Voice3Status, Voice4Status
|
||||||
@@ -158,6 +158,7 @@ EXTSYM TCPIPSendPacket,TCPIPSendPacketUDP
|
|||||||
EXTSYM TCPIPDisconnect,TCPIPStatus
|
EXTSYM TCPIPDisconnect,TCPIPStatus
|
||||||
EXTSYM TCPIPStoreByte
|
EXTSYM TCPIPStoreByte
|
||||||
EXTSYM TCPIPGetByte,GUIBIFIL
|
EXTSYM TCPIPGetByte,GUIBIFIL
|
||||||
|
EXTSYM GUIHQ3X
|
||||||
EXTSYM firstsaveinc
|
EXTSYM firstsaveinc
|
||||||
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
@@ -585,7 +586,7 @@ NEWSYM SmallMsgText, db 0
|
|||||||
NEWSYM AllowMultipleInst, db 0
|
NEWSYM AllowMultipleInst, db 0
|
||||||
NEWSYM FilteredGUI, db 0
|
NEWSYM FilteredGUI, db 0
|
||||||
NEWSYM BilinearFilter, db 0
|
NEWSYM BilinearFilter, db 0
|
||||||
NEWSYM TripleBufferWin, db 0
|
NEWSYM hq3xFilter, db 0
|
||||||
|
|
||||||
NEWSYM ExclusiveSound, db 0
|
NEWSYM ExclusiveSound, db 0
|
||||||
NEWSYM DisableScreenSaver, db 0
|
NEWSYM DisableScreenSaver, db 0
|
||||||
@@ -1540,6 +1541,7 @@ NEWSYM StartGUI
|
|||||||
jmp .no2xSaIdis
|
jmp .no2xSaIdis
|
||||||
.2xSaIdis
|
.2xSaIdis
|
||||||
mov byte[En2xSaI],0
|
mov byte[En2xSaI],0
|
||||||
|
mov byte[hq3xFilter],0
|
||||||
.no2xSaIdis
|
.no2xSaIdis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaidis
|
je .no2xsaidis
|
||||||
@@ -1547,9 +1549,16 @@ NEWSYM StartGUI
|
|||||||
.no2xsaidis
|
.no2xsaidis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaien
|
je .no2xsaien
|
||||||
|
mov byte[hq3xFilter],0
|
||||||
mov byte[scanlines],0
|
mov byte[scanlines],0
|
||||||
mov byte[antienab],0
|
mov byte[antienab],0
|
||||||
.no2xsaien
|
.no2xsaien
|
||||||
|
cmp byte[hq3xFilter],0
|
||||||
|
je .nohq3x
|
||||||
|
mov byte[En2xSaI],0
|
||||||
|
mov byte[scanlines],0
|
||||||
|
mov byte[antienab],0
|
||||||
|
.nohq3x
|
||||||
|
|
||||||
;.dosport
|
;.dosport
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
|
|||||||
@@ -1019,6 +1019,8 @@ GUIVideoKeys:
|
|||||||
jne .nofullscanlines
|
jne .nofullscanlines
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .nofullscanlines
|
jne .nofullscanlines
|
||||||
|
cmp byte[hq3xFilter],0
|
||||||
|
jne .nofullscanlines
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
GUIkeystoggleoptn byte[scanlines],1
|
GUIkeystoggleoptn byte[scanlines],1
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
@@ -1043,6 +1045,8 @@ GUIVideoKeys:
|
|||||||
jne .nohalfscanlines
|
jne .nohalfscanlines
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .nohalfscanlines
|
jne .nohalfscanlines
|
||||||
|
cmp byte[hq3xFilter],0
|
||||||
|
jne .nohalfscanlines
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
GUIkeystoggleoptn byte[scanlines],3
|
GUIkeystoggleoptn byte[scanlines],3
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
@@ -1058,6 +1062,8 @@ GUIVideoKeys:
|
|||||||
jne .noquarterscanlines
|
jne .noquarterscanlines
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .noquarterscanlines
|
jne .noquarterscanlines
|
||||||
|
cmp byte[hq3xFilter],0
|
||||||
|
jne .noquarterscanlines
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
GUIkeystoggleoptn byte[scanlines],2
|
GUIkeystoggleoptn byte[scanlines],2
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
@@ -1069,6 +1075,20 @@ GUIVideoKeys:
|
|||||||
;call GUISetPal
|
;call GUISetPal
|
||||||
%endif
|
%endif
|
||||||
.noquarterscanlines
|
.noquarterscanlines
|
||||||
|
cmp dh,'Q'
|
||||||
|
jne .nohq3xfilter
|
||||||
|
xor ebx,ebx
|
||||||
|
mov bl,[cvidmode]
|
||||||
|
cmp byte[GUIHQ3X+ebx],0
|
||||||
|
je .nohq3xfilter
|
||||||
|
xor byte[hq3xFilter],1
|
||||||
|
jz .nohq3xfilter
|
||||||
|
mov byte[scanlines],0
|
||||||
|
mov byte[cfgscanline],0
|
||||||
|
mov byte[En2xSaI],0
|
||||||
|
mov byte[antienab],0
|
||||||
|
mov byte[cfginterp],0
|
||||||
|
.nohq3xfilter
|
||||||
cmp dh,'X'
|
cmp dh,'X'
|
||||||
jne .no2xsai
|
jne .no2xsai
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -1176,19 +1196,6 @@ GUIVideoKeys:
|
|||||||
je .nobilinearfilter
|
je .nobilinearfilter
|
||||||
xor byte[BilinearFilter],1
|
xor byte[BilinearFilter],1
|
||||||
.nobilinearfilter
|
.nobilinearfilter
|
||||||
%ifdef __WIN32__
|
|
||||||
cmp dh,'T'
|
|
||||||
jne .notriplebufferwin
|
|
||||||
xor eax,eax
|
|
||||||
mov al,[cvidmode]
|
|
||||||
cmp byte[GUITBWVID+eax],0
|
|
||||||
je near .notriplebufferwin
|
|
||||||
xor byte[TripleBufferWin],1
|
|
||||||
; mov byte[vsyncon],0
|
|
||||||
; mov byte[cfgvsync],0
|
|
||||||
call initDirectDraw
|
|
||||||
.notriplebufferwin
|
|
||||||
%endif
|
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
cmp dh,'T'
|
cmp dh,'T'
|
||||||
jne .notriplebuffer
|
jne .notriplebuffer
|
||||||
@@ -1212,7 +1219,6 @@ GUIVideoKeys:
|
|||||||
mov al,[vsyncon]
|
mov al,[vsyncon]
|
||||||
mov [cfgvsync],al
|
mov [cfgvsync],al
|
||||||
%ifdef __WIN32__
|
%ifdef __WIN32__
|
||||||
; mov byte[TripleBufferWin],0
|
|
||||||
call initDirectDraw
|
call initDirectDraw
|
||||||
%endif
|
%endif
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
|
|||||||
@@ -1380,6 +1380,21 @@ GUIWinClicked:
|
|||||||
%%noclick
|
%%noclick
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
|
%macro GUIClickCButtonHQ 3
|
||||||
|
cmp eax,%1+1
|
||||||
|
jl %%noclick
|
||||||
|
cmp edx,%2+3
|
||||||
|
jl %%noclick
|
||||||
|
cmp eax,%1+6
|
||||||
|
jg %%noclick
|
||||||
|
cmp edx,%2+8
|
||||||
|
jg %%noclick
|
||||||
|
xor %3,1
|
||||||
|
jz %%noclick
|
||||||
|
mov byte[En2xSaI],0
|
||||||
|
%%noclick
|
||||||
|
%endmacro
|
||||||
|
|
||||||
%macro GUIClickCButtonT 4
|
%macro GUIClickCButtonT 4
|
||||||
cmp eax,%1+1
|
cmp eax,%1+1
|
||||||
jl %%noclick
|
jl %%noclick
|
||||||
@@ -2301,8 +2316,8 @@ DisplayGUIVideoClick:
|
|||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUISLVID+ebx],0
|
cmp byte[GUISLVID+ebx],0
|
||||||
GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1
|
|
||||||
je near .nocheckboxb
|
je near .nocheckboxb
|
||||||
|
GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1
|
||||||
.nocheckboxb
|
.nocheckboxb
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
@@ -2330,14 +2345,12 @@ DisplayGUIVideoClick:
|
|||||||
GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3
|
GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3
|
||||||
GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2
|
GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2
|
||||||
.nohsline
|
.nohsline
|
||||||
%ifdef __WIN32__
|
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUITBWVID+ebx],0
|
cmp byte[GUIHQ3X+ebx],0
|
||||||
je near .notriplebufferwin
|
je .nocheckboxhq3x
|
||||||
GUIClickCButtonf 11,123,byte[TripleBufferWin],initDirectDraw
|
GUIClickCButtonHQ 11,123,byte[hq3xFilter]
|
||||||
.notriplebufferwin
|
.nocheckboxhq3x
|
||||||
%endif
|
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUI2xVID+ebx],0
|
cmp byte[GUI2xVID+ebx],0
|
||||||
|
|||||||
@@ -1643,6 +1643,7 @@ DisplayGUIVideo:
|
|||||||
jmp .no2xSaIdis
|
jmp .no2xSaIdis
|
||||||
.2xSaIdis
|
.2xSaIdis
|
||||||
mov byte[En2xSaI],0
|
mov byte[En2xSaI],0
|
||||||
|
mov byte[hq3xFilter],0
|
||||||
.no2xSaIdis
|
.no2xSaIdis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaidis
|
je .no2xsaidis
|
||||||
@@ -1650,9 +1651,16 @@ DisplayGUIVideo:
|
|||||||
.no2xsaidis
|
.no2xsaidis
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
je .no2xsaien
|
je .no2xsaien
|
||||||
|
mov byte[hq3xFilter],0
|
||||||
mov byte[scanlines],0
|
mov byte[scanlines],0
|
||||||
mov byte[antienab],0
|
mov byte[antienab],0
|
||||||
.no2xsaien
|
.no2xsaien
|
||||||
|
cmp byte[hq3xFilter],0
|
||||||
|
je .nohq3xen
|
||||||
|
mov byte[En2xSaI],0
|
||||||
|
mov byte[scanlines],0
|
||||||
|
mov byte[antienab],0
|
||||||
|
.nohq3xen
|
||||||
; Video Modes List/Scanlines/Interpolation/Full(Small) Screen
|
; Video Modes List/Scanlines/Interpolation/Full(Small) Screen
|
||||||
GUIDrawWindowBox 5,GUIVideoDisp
|
GUIDrawWindowBox 5,GUIVideoDisp
|
||||||
mov byte[GUItextcolor],217
|
mov byte[GUItextcolor],217
|
||||||
@@ -1687,12 +1695,6 @@ DisplayGUIVideo:
|
|||||||
GUIOuttextwin2u 5,76,119,GUIVideoTexta2,0
|
GUIOuttextwin2u 5,76,119,GUIVideoTexta2,0
|
||||||
GUIOuttextwin2u 5,116,119,GUIVideoTexta3,0
|
GUIOuttextwin2u 5,116,119,GUIVideoTexta3,0
|
||||||
.notexta
|
.notexta
|
||||||
xor eax,eax
|
|
||||||
mov al,[cvidmode]
|
|
||||||
cmp byte[GUITBWVID+eax],0
|
|
||||||
je near .nottbw
|
|
||||||
GUIOuttextwin2u 5,26,128,GUIVideoText7,0
|
|
||||||
.nottbw
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUI2xVID+eax],0
|
cmp byte[GUI2xVID+eax],0
|
||||||
@@ -1758,6 +1760,12 @@ DisplayGUIVideo:
|
|||||||
je .notext8
|
je .notext8
|
||||||
GUIOuttextwin2u 5,26,178,GUIVideoText8b,0
|
GUIOuttextwin2u 5,26,178,GUIVideoText8b,0
|
||||||
.notext8
|
.notext8
|
||||||
|
xor eax,eax
|
||||||
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ3X+eax],0
|
||||||
|
je near .notext11
|
||||||
|
GUIOuttextwin2u 5,26,128,GUIVideoTexthq3x,1
|
||||||
|
.notext11
|
||||||
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
|
||||||
@@ -1788,12 +1796,6 @@ DisplayGUIVideo:
|
|||||||
GUIOuttextwin2 5,75,118,GUIVideoTexta2
|
GUIOuttextwin2 5,75,118,GUIVideoTexta2
|
||||||
GUIOuttextwin2 5,115,118,GUIVideoTexta3
|
GUIOuttextwin2 5,115,118,GUIVideoTexta3
|
||||||
.notextab
|
.notextab
|
||||||
xor eax,eax
|
|
||||||
mov al,[cvidmode]
|
|
||||||
cmp byte[GUITBWVID+eax],0
|
|
||||||
je near .nottbwb
|
|
||||||
GUIOuttextwin2 5,25,127,GUIVideoText7
|
|
||||||
.nottbwb
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUI2xVID+eax],0
|
cmp byte[GUI2xVID+eax],0
|
||||||
@@ -1859,6 +1861,12 @@ DisplayGUIVideo:
|
|||||||
je .notext8b
|
je .notext8b
|
||||||
GUIOuttextwin2 5,25,177,GUIVideoText8b
|
GUIOuttextwin2 5,25,177,GUIVideoText8b
|
||||||
.notext8b
|
.notext8b
|
||||||
|
xor eax,eax
|
||||||
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ3X+eax],0
|
||||||
|
je near .notext11b
|
||||||
|
GUIOuttextwin2 5,25,127,GUIVideoTexthq3x
|
||||||
|
.notext11b
|
||||||
GUIOuttextwin2 5,25,187,GUIVideoText8c
|
GUIOuttextwin2 5,25,187,GUIVideoText8c
|
||||||
%ifndef __LINUX__
|
%ifndef __LINUX__
|
||||||
GUIOuttextwin2 5,129,187,GUIVideoText9
|
GUIOuttextwin2 5,129,187,GUIVideoText9
|
||||||
@@ -1901,17 +1909,6 @@ DisplayGUIVideo:
|
|||||||
.nocheckboxv2
|
.nocheckboxv2
|
||||||
GUIDisplayIconWin 5,101,114,[GUITemp]
|
GUIDisplayIconWin 5,101,114,[GUITemp]
|
||||||
.nocheckboxw
|
.nocheckboxw
|
||||||
xor eax,eax
|
|
||||||
mov al,[cvidmode]
|
|
||||||
cmp byte[GUITBWVID+eax],0
|
|
||||||
je near .nocheckboxslw2
|
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
|
||||||
cmp byte[TripleBufferWin],1
|
|
||||||
jne .nocheckboxslw
|
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxC
|
|
||||||
.nocheckboxslw
|
|
||||||
GUIDisplayIconWin 5,11,123,[GUITemp]
|
|
||||||
.nocheckboxslw2
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUI2xVID+eax],0
|
cmp byte[GUI2xVID+eax],0
|
||||||
@@ -2031,6 +2028,17 @@ DisplayGUIVideo:
|
|||||||
.nocheckbox3
|
.nocheckbox3
|
||||||
GUIDisplayIconWin 5,11,98,[GUITemp]
|
GUIDisplayIconWin 5,11,98,[GUITemp]
|
||||||
.nocheckbox3b
|
.nocheckbox3b
|
||||||
|
xor eax,eax
|
||||||
|
mov al,[cvidmode]
|
||||||
|
cmp byte[GUIHQ3X+eax],0
|
||||||
|
je near .nocheckbox2hq3x
|
||||||
|
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
||||||
|
cmp byte[hq3xFilter],0
|
||||||
|
je .nocheckbox1hq3x
|
||||||
|
mov dword[GUITemp],GUIIconDataCheckBoxC
|
||||||
|
.nocheckbox1hq3x
|
||||||
|
GUIDisplayIconWin 5,11,123,[GUITemp]
|
||||||
|
.nocheckbox2hq3x
|
||||||
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
|
||||||
@@ -2150,6 +2158,7 @@ GUIVideoTextd2 db 'SUPER 2XSAI ENGINE',0
|
|||||||
GUIVideoTextbf db 'BILINEAR FILTER',0
|
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
|
||||||
|
GUIVideoTexthq3x db 'HQ3X FILTER',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
|
||||||
@@ -5241,10 +5250,10 @@ GUIGUIAboutText3 db ' ZSKNIGHT',0
|
|||||||
GUIGUIAboutText4 db ' _DEMO_',0
|
GUIGUIAboutText4 db ' _DEMO_',0
|
||||||
GUIGUIAboutText6c db ' PAGEFAULT',0
|
GUIGUIAboutText6c db ' PAGEFAULT',0
|
||||||
GUIGUIAboutText5 db 'ASSISTANT CODERS : ',0
|
GUIGUIAboutText5 db 'ASSISTANT CODERS : ',0
|
||||||
GUIGUIAboutText6 db ' PHAROS NACH',0
|
GUIGUIAboutText6 db ' PHAROS',0
|
||||||
GUIGUIAboutText6b db ' TEUF HPSOLO',0
|
GUIGUIAboutText6b db ' TEUF',0
|
||||||
GUIGUIAboutText6d db ' THEODDONE33 STAINLESS',0
|
GUIGUIAboutText6d db ' THEODDONE33',0
|
||||||
GUIGUIAboutText6e db ' ',0
|
GUIGUIAboutText6e db ' STAINLESS',0
|
||||||
|
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
GUIGUIAboutText7 db 'DOS VERSION',0
|
GUIGUIAboutText7 db 'DOS VERSION',0
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
/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 fixsin.obj init.obj initc.obj ui.obj vcache.obj water.obj smoke.obj burn.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 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\zzip.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 fixsin.obj init.obj initc.obj ui.obj vcache.obj water.obj smoke.obj burn.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\zzip.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
|
||||||
|
|||||||
@@ -49,11 +49,12 @@ VIDEOBJ=${VIDEODIR}/makev16b.obj ${VIDEODIR}/makev16t.obj ${VIDEODIR}/makevid.ob
|
|||||||
${VIDEODIR}/mode7ext.obj ${VIDEODIR}/mv16tms.obj ${VIDEODIR}/newg162.obj\
|
${VIDEODIR}/mode7ext.obj ${VIDEODIR}/mv16tms.obj ${VIDEODIR}/newg162.obj\
|
||||||
${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
|
||||||
|
|
||||||
WINOBJ=${WINDIR}/copyvwin.obj ${WINDIR}/winintrf.obj ${WINDIR}/winlink.obj\
|
WINOBJ=${WINDIR}/copyvwin.obj \
|
||||||
${WINDIR}/zloaderw.obj ${WINDIR}/ztcp.obj ${WINDIR}/zipxw.obj\
|
${WINDIR}/winintrf.obj ${WINDIR}/winlink.obj ${WINDIR}/zloaderw.obj\
|
||||||
${WINDIR}/zfilew.obj
|
${WINDIR}/ztcp.obj ${WINDIR}/zipxw.obj ${WINDIR}/zfilew.obj
|
||||||
|
|
||||||
WINDOSOBJ=${DOSDIR}/debug.obj ${DOSDIR}/joy.obj ${DOSDIR}/modemrtn.obj ${DOSDIR}/vesa2.obj\
|
WINDOSOBJ=${DOSDIR}/debug.obj ${DOSDIR}/joy.obj ${DOSDIR}/modemrtn.obj ${DOSDIR}/vesa2.obj\
|
||||||
${DOSDIR}/initvid.obj ${DOSDIR}/sw.obj ${DOSDIR}/gppro.obj ${DOSDIR}/vesa12.obj\
|
${DOSDIR}/initvid.obj ${DOSDIR}/sw.obj ${DOSDIR}/gppro.obj ${DOSDIR}/vesa12.obj\
|
||||||
@@ -115,6 +116,9 @@ smoke.obj: smoke.c
|
|||||||
burn.obj: burn.c
|
burn.obj: 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}/hq3x16.obj: ${VIDEODIR}/hq3x16.asm macros.mac
|
||||||
|
${VIDEODIR}/hq3x32.obj: ${VIDEODIR}/hq3x32.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\
|
||||||
|
|||||||
@@ -212,6 +212,7 @@ NEWSYM romispal, resb 1 ; 0 = NTSC, 1 = PAL
|
|||||||
NEWSYM enterpress, resb 1 ; if enter is to be issued (0 = yes)
|
NEWSYM enterpress, resb 1 ; if enter is to be issued (0 = yes)
|
||||||
NEWSYM newgfx16b, resb 1
|
NEWSYM newgfx16b, resb 1
|
||||||
NEWSYM BitConv32Ptr, resd 1
|
NEWSYM BitConv32Ptr, resd 1
|
||||||
|
NEWSYM RGBtoYUVPtr, resd 1
|
||||||
|
|
||||||
NEWSYM previdmode, resb 1 ; previous video mode
|
NEWSYM previdmode, resb 1 ; previous video mode
|
||||||
NEWSYM cbitmode, resb 1 ; bit mode, 0=8bit, 1=16bit
|
NEWSYM cbitmode, resb 1 ; bit mode, 0=8bit, 1=16bit
|
||||||
@@ -681,6 +682,7 @@ NEWSYM allocptr
|
|||||||
AllocmemFail 65536*4*4+4096,vcache2bs,outofmemory
|
AllocmemFail 65536*4*4+4096,vcache2bs,outofmemory
|
||||||
AllocmemFail 65536*4*2+4096,vcache4bs,outofmemory
|
AllocmemFail 65536*4*2+4096,vcache4bs,outofmemory
|
||||||
AllocmemFail 65536*4+4096,vcache8bs,outofmemory
|
AllocmemFail 65536*4+4096,vcache8bs,outofmemory
|
||||||
|
AllocmemFail 65536*4+4096,RGBtoYUVPtr,outofmemory
|
||||||
mov byte[newgfx16b],1
|
mov byte[newgfx16b],1
|
||||||
AllocmemOkay 4096*1024+32768*2+2048*1024+4096,romaptr,.memoryokay
|
AllocmemOkay 4096*1024+32768*2+2048*1024+4096,romaptr,.memoryokay
|
||||||
mov byte[Sup48mbit],0
|
mov byte[Sup48mbit],0
|
||||||
|
|||||||
2612
zsnes/src/video/hq3x16.asm
Normal file
2612
zsnes/src/video/hq3x16.asm
Normal file
File diff suppressed because it is too large
Load Diff
2572
zsnes/src/video/hq3x32.asm
Normal file
2572
zsnes/src/video/hq3x32.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1250,27 +1250,29 @@ db '1280x1024 DS FULL',0 ;32
|
|||||||
|
|
||||||
; Video Mode Feature Availability (1 = Available, 0 = Not Available)
|
; Video Mode Feature Availability (1 = Available, 0 = Not Available)
|
||||||
; Left side starts with Video Mode 0
|
; Left side starts with Video Mode 0
|
||||||
NEWSYM GUI16VID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; 16-bit mode
|
; 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
|
||||||
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; New Graphics Mode Available
|
NEWSYM GUI16VID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; 16-bit mode
|
||||||
NEWSYM GUISLVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; Scanlines
|
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; New Graphics Mode Available
|
||||||
NEWSYM GUIINVID, 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,0,0,0 ; Interpolation
|
NEWSYM GUISLVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; Scanlines
|
||||||
NEWSYM GUII2VID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; Interpolation(w)
|
NEWSYM GUIINVID, 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,0,0,0 ; Interpolation
|
||||||
NEWSYM GUIEAVID, 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,0,0,0 ; Eagle
|
NEWSYM GUII2VID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; Interpolation(w)
|
||||||
NEWSYM GUIIEVID, 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,0,0,0 ; (Interp | Eagle)
|
NEWSYM GUIEAVID, 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,0,0,0 ; Eagle
|
||||||
NEWSYM GUIFSVID, 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,0,0,0 ; Full Screen
|
NEWSYM GUIIEVID, 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,0,0,0 ; (Interp | Eagle)
|
||||||
NEWSYM GUIWSVID, 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,0,0,0 ; (Full Scr. | Wide Scr.)
|
NEWSYM GUIFSVID, 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,0,0,0 ; Full Screen
|
||||||
NEWSYM GUISSVID, 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,0,0,0 ; Small Screen
|
NEWSYM GUIWSVID, 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,0,0,0 ; (Full Scr. | Wide Scr.)
|
||||||
NEWSYM GUITBVID, 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,0,0,0 ; Triple Buffering
|
NEWSYM GUISSVID, 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,0,0,0 ; Small Screen
|
||||||
NEWSYM GUIHSVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; Half/Quarter Scanlines
|
NEWSYM GUITBVID, 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,0,0,0 ; Triple Buffering
|
||||||
NEWSYM GUI2xVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; 2xSaI/Super Eagle Engines
|
NEWSYM GUIHSVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; Half/Quarter Scanlines
|
||||||
NEWSYM GUIM7VID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; ?Mode 7 video thing?
|
NEWSYM GUI2xVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; 2xSaI/Super Eagle Engines
|
||||||
NEWSYM GUIWFVID, 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 ; If Windows Full Screen
|
NEWSYM GUIM7VID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1 ; ?Mode 7 video thing?
|
||||||
NEWSYM GUIDSIZE, db 0,0,0,1,0,1,1,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1
|
NEWSYM GUIWFVID, 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 ; If Windows Full Screen
|
||||||
NEWSYM GUIRATIO, db 0,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,0,0,0,0,0,0
|
NEWSYM GUIDSIZE, db 0,0,0,1,0,1,1,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1
|
||||||
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,0,0,0
|
NEWSYM GUIRATIO, db 0,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,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 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,0,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 GUITBWVID, 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,0,0,0 ; 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 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,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter
|
||||||
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|||||||
@@ -268,40 +268,31 @@ void DDrawError(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
extern "C" BYTE vsyncon;
|
extern "C" BYTE vsyncon;
|
||||||
extern "C" BYTE TripleBufferWin;
|
|
||||||
|
|
||||||
void DrawScreen()
|
void DrawScreen()
|
||||||
{
|
{
|
||||||
if (FullScreen == 1)
|
if (FullScreen == 1)
|
||||||
{
|
{
|
||||||
if (TripleBufferWin == 1)
|
DDBLTFX ddbltfx;
|
||||||
|
|
||||||
|
ddbltfx.dwSize = sizeof(ddbltfx);
|
||||||
|
ddbltfx.dwFillColor = 0;
|
||||||
|
|
||||||
|
DD_BackBuffer->Blt( NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx );
|
||||||
|
DD_BackBuffer->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
|
||||||
|
DD_Primary->Flip(NULL, DDFLIP_WAIT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (vsyncon == 1)
|
||||||
|
{
|
||||||
|
if (lpDD->WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL) != DD_OK)
|
||||||
{
|
{
|
||||||
DD_BackBuffer->Blt(NULL, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
|
DDrawError();
|
||||||
DD_Primary->Flip(NULL, DDFLIP_WAIT);
|
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
DD_Primary->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
|
||||||
if (vsyncon == 1)
|
}
|
||||||
{
|
|
||||||
if (lpDD->WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL) != DD_OK)
|
|
||||||
{
|
|
||||||
DDrawError();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DD_Primary->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (vsyncon == 1)
|
|
||||||
{
|
|
||||||
if (lpDD->WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL) != DD_OK)
|
|
||||||
{
|
|
||||||
DDrawError();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DD_Primary->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD InputEn=0;
|
DWORD InputEn=0;
|
||||||
@@ -1260,6 +1251,7 @@ void TestJoy()
|
|||||||
|
|
||||||
extern "C" DWORD converta;
|
extern "C" DWORD converta;
|
||||||
extern "C" unsigned int BitConv32Ptr;
|
extern "C" unsigned int BitConv32Ptr;
|
||||||
|
extern "C" unsigned int RGBtoYUVPtr;
|
||||||
|
|
||||||
int InitDirectDraw()
|
int InitDirectDraw()
|
||||||
{
|
{
|
||||||
@@ -1268,7 +1260,7 @@ int InitDirectDraw()
|
|||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
char message1[256];
|
char message1[256];
|
||||||
unsigned int color32,ScreenPtr2;
|
unsigned int color32,ScreenPtr2;
|
||||||
int i;
|
int i, j, k, r, g, b, Y, u, v;
|
||||||
|
|
||||||
ScreenPtr2=BitConv32Ptr;
|
ScreenPtr2=BitConv32Ptr;
|
||||||
for(i=0;i<65536;i++)
|
for(i=0;i<65536;i++)
|
||||||
@@ -1280,17 +1272,46 @@ int InitDirectDraw()
|
|||||||
ScreenPtr2+=4;
|
ScreenPtr2+=4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i=0; i<32; i++)
|
||||||
|
for (j=0; j<64; j++)
|
||||||
|
for (k=0; k<32; k++)
|
||||||
|
{
|
||||||
|
r = i << 3;
|
||||||
|
g = j << 2;
|
||||||
|
b = k << 3;
|
||||||
|
Y = (r + g + b) >> 2;
|
||||||
|
u = 128 + ((r - b) >> 2);
|
||||||
|
v = 128 + ((-r + 2*g -b)>>3);
|
||||||
|
*(((unsigned int *)RGBtoYUVPtr) + (i << 11) + (j << 5) + k) = (Y<<16) + (u<<8) + v;
|
||||||
|
}
|
||||||
|
|
||||||
if (!hMainWindow)
|
if (!hMainWindow)
|
||||||
{
|
{
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ReleaseDirectDraw();
|
ReleaseDirectDraw();
|
||||||
|
|
||||||
GetClientRect(hMainWindow, &rcWindow);
|
GetClientRect(hMainWindow, &rcWindow);
|
||||||
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow);
|
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow);
|
||||||
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow + 1);
|
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow + 1);
|
||||||
|
|
||||||
|
if (SurfaceX == 768 && SurfaceY == 720)
|
||||||
|
{
|
||||||
|
int marginx = (rcWindow.right - rcWindow.left - BlitArea.right + BlitArea.left)/2;
|
||||||
|
int marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
||||||
|
if (marginx>0)
|
||||||
|
{
|
||||||
|
rcWindow.left += marginx;
|
||||||
|
rcWindow.right -= marginx;
|
||||||
|
}
|
||||||
|
if (marginy>0)
|
||||||
|
{
|
||||||
|
rcWindow.top += marginy;
|
||||||
|
rcWindow.bottom -= marginy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (pDirectDrawCreateEx(NULL, (void **)&lpDD, IID_IDirectDraw7, NULL) != DD_OK)
|
if (pDirectDrawCreateEx(NULL, (void **)&lpDD, IID_IDirectDraw7, NULL) != DD_OK)
|
||||||
{
|
{
|
||||||
MessageBox(NULL, "DirectDrawCreateEx failed.", "DirectDraw Error", MB_ICONERROR);
|
MessageBox(NULL, "DirectDrawCreateEx failed.", "DirectDraw Error", MB_ICONERROR);
|
||||||
@@ -1332,7 +1353,18 @@ int InitDirectDraw()
|
|||||||
ddsd2.ddsCaps.dwCaps |= DDSCAPS_FLIP | DDSCAPS_COMPLEX;
|
ddsd2.ddsCaps.dwCaps |= DDSCAPS_FLIP | DDSCAPS_COMPLEX;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lpDD->CreateSurface(&ddsd2, &DD_Primary, NULL) != DD_OK)
|
HRESULT hRes = lpDD->CreateSurface(&ddsd2, &DD_Primary, NULL);
|
||||||
|
|
||||||
|
if (FullScreen == 1)
|
||||||
|
{
|
||||||
|
if ((hRes == DDERR_OUTOFMEMORY) || (hRes == DDERR_OUTOFVIDEOMEMORY))
|
||||||
|
{
|
||||||
|
ddsd2.dwBackBufferCount = 1;
|
||||||
|
hRes = lpDD->CreateSurface(&ddsd2, &DD_Primary, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hRes != DD_OK)
|
||||||
{
|
{
|
||||||
MessageBox(NULL, "IDirectDraw7::CreateSurface failed.", "DirectDraw Error", MB_ICONERROR);
|
MessageBox(NULL, "IDirectDraw7::CreateSurface failed.", "DirectDraw Error", MB_ICONERROR);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -1545,13 +1577,16 @@ void Stop36HZ(void)
|
|||||||
|
|
||||||
char WinMessage[256];
|
char WinMessage[256];
|
||||||
extern unsigned char cvidmode;
|
extern unsigned char cvidmode;
|
||||||
|
extern unsigned char hq3xFilter;
|
||||||
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;
|
||||||
extern BYTE GUIWFVID[];
|
extern BYTE GUIWFVID[];
|
||||||
extern BYTE GUISMODE[];
|
extern BYTE GUISMODE[];
|
||||||
extern BYTE GUIDSMODE[];
|
extern BYTE GUIDSMODE[];
|
||||||
|
extern BYTE GUIHQ3X[];
|
||||||
extern unsigned short resolutn;
|
extern unsigned short resolutn;
|
||||||
void clearwin();
|
void clearwin();
|
||||||
|
|
||||||
@@ -1563,10 +1598,15 @@ void initwinvideo(void)
|
|||||||
WINDOWPLACEMENT wndpl;
|
WINDOWPLACEMENT wndpl;
|
||||||
RECT rc1, swrect;
|
RECT rc1, swrect;
|
||||||
DWORD newmode=0;
|
DWORD newmode=0;
|
||||||
|
DWORD HQ3XMode=0;
|
||||||
|
|
||||||
if (CurMode!=cvidmode)
|
if ((GUIHQ3X[cvidmode]!=0) && (hq3xFilter!=0))
|
||||||
|
HQ3XMode=1;
|
||||||
|
|
||||||
|
if ((CurMode!=cvidmode) || (prevHQ3XMode!=HQ3XMode))
|
||||||
{
|
{
|
||||||
CurMode=cvidmode;
|
CurMode=cvidmode;
|
||||||
|
prevHQ3XMode=HQ3XMode;
|
||||||
newmode=1;
|
newmode=1;
|
||||||
SurfaceX=256;
|
SurfaceX=256;
|
||||||
SurfaceY=240;
|
SurfaceY=240;
|
||||||
@@ -1631,8 +1671,16 @@ void initwinvideo(void)
|
|||||||
case 10:
|
case 10:
|
||||||
WindowWidth=768;
|
WindowWidth=768;
|
||||||
WindowHeight=672;
|
WindowHeight=672;
|
||||||
SurfaceX=512;
|
if (HQ3XMode!=0)
|
||||||
SurfaceY=480;
|
{
|
||||||
|
SurfaceX=768;
|
||||||
|
SurfaceY=720;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SurfaceX=512;
|
||||||
|
SurfaceY=480;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
WindowWidth=800;
|
WindowWidth=800;
|
||||||
@@ -1651,8 +1699,16 @@ void initwinvideo(void)
|
|||||||
case 14:
|
case 14:
|
||||||
WindowWidth=800;
|
WindowWidth=800;
|
||||||
WindowHeight=600;
|
WindowHeight=600;
|
||||||
SurfaceX=640;
|
if (HQ3XMode!=0)
|
||||||
SurfaceY=480;
|
{
|
||||||
|
SurfaceX=768;
|
||||||
|
SurfaceY=720;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SurfaceX=640;
|
||||||
|
SurfaceY=480;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
WindowWidth=800;
|
WindowWidth=800;
|
||||||
@@ -1677,8 +1733,16 @@ void initwinvideo(void)
|
|||||||
case 19:
|
case 19:
|
||||||
WindowWidth=1024;
|
WindowWidth=1024;
|
||||||
WindowHeight=768;
|
WindowHeight=768;
|
||||||
SurfaceX=640;
|
if (HQ3XMode!=0)
|
||||||
SurfaceY=480;
|
{
|
||||||
|
SurfaceX=768;
|
||||||
|
SurfaceY=720;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SurfaceX=640;
|
||||||
|
SurfaceY=480;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
WindowWidth=1024;
|
WindowWidth=1024;
|
||||||
@@ -1776,6 +1840,8 @@ void initwinvideo(void)
|
|||||||
BlitArea.bottom = SurfaceY;
|
BlitArea.bottom = SurfaceY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SurfaceX == 768) BlitArea.bottom = (SurfaceY/240)*resolutn;
|
||||||
|
|
||||||
if (PrevRes == 0) PrevRes = resolutn;
|
if (PrevRes == 0) PrevRes = resolutn;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1803,10 +1869,26 @@ void initwinvideo(void)
|
|||||||
|
|
||||||
AdjustWindowRectEx(&rc1,GetWindowLong(hMainWindow, GWL_STYLE),
|
AdjustWindowRectEx(&rc1,GetWindowLong(hMainWindow, GWL_STYLE),
|
||||||
GetMenu(hMainWindow) != NULL, GetWindowLong(hMainWindow, GWL_EXSTYLE));
|
GetMenu(hMainWindow) != NULL, GetWindowLong(hMainWindow, GWL_EXSTYLE));
|
||||||
|
|
||||||
GetClientRect(hMainWindow, &rcWindow);
|
GetClientRect(hMainWindow, &rcWindow);
|
||||||
ClientToScreen(hMainWindow, (LPPOINT) &rcWindow);
|
ClientToScreen(hMainWindow, (LPPOINT) &rcWindow);
|
||||||
ClientToScreen(hMainWindow, (LPPOINT) &rcWindow + 1);
|
ClientToScreen(hMainWindow, (LPPOINT) &rcWindow + 1);
|
||||||
|
|
||||||
|
if (SurfaceX == 768 && SurfaceY == 720)
|
||||||
|
{
|
||||||
|
int marginx = (rcWindow.right - rcWindow.left - BlitArea.right + BlitArea.left)/2;
|
||||||
|
int marginy = (rcWindow.bottom - rcWindow.top - BlitArea.bottom + BlitArea.top)/2;
|
||||||
|
if (marginx>0)
|
||||||
|
{
|
||||||
|
rcWindow.left += marginx;
|
||||||
|
rcWindow.right -= marginx;
|
||||||
|
}
|
||||||
|
if (marginy>0)
|
||||||
|
{
|
||||||
|
rcWindow.top += marginy;
|
||||||
|
rcWindow.bottom -= marginy;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -2057,6 +2139,8 @@ 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 copy768x720x32bwin(void);
|
||||||
extern unsigned char NGNoTransp;
|
extern unsigned char NGNoTransp;
|
||||||
extern unsigned char newengen;
|
extern unsigned char newengen;
|
||||||
extern void ClearWin16();
|
extern void ClearWin16();
|
||||||
@@ -2128,7 +2212,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) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/239)*224;
|
if ((SurfaceX == 256 || SurfaceX == 512 || SurfaceX == 768) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/239)*224;
|
||||||
initwinvideo();
|
initwinvideo();
|
||||||
PrevRes = resolutn;
|
PrevRes = resolutn;
|
||||||
}
|
}
|
||||||
@@ -2137,11 +2221,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) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/224)*239;
|
if ((SurfaceX == 256 || SurfaceX == 512 || SurfaceX == 768) && (SMode == 0 && DSMode == 0)) WindowHeight = (WindowHeight/224)*239;
|
||||||
initwinvideo();
|
initwinvideo();
|
||||||
PrevRes = resolutn;
|
PrevRes = resolutn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DWORD HQ3XMode=0;
|
||||||
|
|
||||||
|
if (MMXSupport == 0)
|
||||||
|
hq3xFilter=0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((GUIHQ3X[cvidmode]!=0) && (hq3xFilter!=0))
|
||||||
|
HQ3XMode=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prevHQ3XMode!=HQ3XMode)
|
||||||
|
initwinvideo();
|
||||||
|
|
||||||
SurfBufD=(DWORD) &SurfBuf[0];
|
SurfBufD=(DWORD) &SurfBuf[0];
|
||||||
SURFDW=(DWORD *) &SurfBuf[0];
|
SURFDW=(DWORD *) &SurfBuf[0];
|
||||||
|
|
||||||
@@ -2315,6 +2412,41 @@ void drawscreenwin(void)
|
|||||||
drawscreenwin();
|
drawscreenwin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (SurfaceX == 768 && SurfaceY == 720)
|
||||||
|
{
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UnlockSurface();
|
UnlockSurface();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user