Added full screen to 320x480 video modes in the DOS port.
This commit is contained in:
@@ -1047,7 +1047,6 @@ NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 ; Interpolation
|
|||||||
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 ; Eagle
|
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 ; Eagle
|
||||||
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0 ; (Interp | Eagle)
|
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0 ; (Interp | Eagle)
|
||||||
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0 ; Full Screen
|
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0 ; Full Screen
|
||||||
NEWSYM GUIWSVID, db 0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0 ; (Full Scr. | Wide Scr.)
|
|
||||||
NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0 ; Small Screen
|
NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0 ; Small Screen
|
||||||
NEWSYM GUITBVID, db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0 ; Triple Buffering
|
NEWSYM GUITBVID, db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0 ; Triple Buffering
|
||||||
NEWSYM GUIHSVID, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0 ; Half/Quarter Scanlines
|
NEWSYM GUIHSVID, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0 ; Half/Quarter Scanlines
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ EXTSYM NumVideoModes
|
|||||||
EXTSYM cfgvolume, MusicVol, DSPMem
|
EXTSYM cfgvolume, MusicVol, DSPMem
|
||||||
EXTSYM NumInputDevices,GUIInputNames
|
EXTSYM NumInputDevices,GUIInputNames
|
||||||
EXTSYM GUIVideoModeNames
|
EXTSYM GUIVideoModeNames
|
||||||
EXTSYM GUISLVID,GUIINVID,GUIEAVID,GUIIEVID,GUIFSVID,GUIWSVID,
|
EXTSYM GUISLVID,GUIINVID,GUIEAVID,GUIIEVID,GUIFSVID
|
||||||
EXTSYM GUISSVID,GUITBVID,GUIHSVID,GUI2xVID,GUII2VID,GUIM7VID
|
EXTSYM GUISSVID,GUITBVID,GUIHSVID,GUI2xVID,GUII2VID,GUIM7VID
|
||||||
EXTSYM cfgsoundon,cfgSoundQuality,cfgStereoSound
|
EXTSYM cfgsoundon,cfgSoundQuality,cfgStereoSound
|
||||||
EXTSYM convertnum,converthex
|
EXTSYM convertnum,converthex
|
||||||
|
|||||||
@@ -1714,12 +1714,7 @@ DisplayGUIVideo:
|
|||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUIFSVID+eax],0
|
cmp byte[GUIFSVID+eax],0
|
||||||
je near .notext5
|
je .notext5
|
||||||
cmp byte[GUIWSVID+eax],0
|
|
||||||
je .fs
|
|
||||||
GUIOuttextwin2u 5,26,93,GUIVideoText5b,1
|
|
||||||
jmp .notext5
|
|
||||||
.fs
|
|
||||||
GUIOuttextwin2u 5,26,93,GUIVideoText5,1
|
GUIOuttextwin2u 5,26,93,GUIVideoText5,1
|
||||||
.notext5
|
.notext5
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
@@ -1815,12 +1810,7 @@ DisplayGUIVideo:
|
|||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUIFSVID+eax],0
|
cmp byte[GUIFSVID+eax],0
|
||||||
je near .notext5b
|
je .notext5b
|
||||||
cmp byte[GUIWSVID+eax],0
|
|
||||||
je .fs2
|
|
||||||
GUIOuttextwin2 5,25,92,GUIVideoText5b
|
|
||||||
jmp .notext5b
|
|
||||||
.fs2
|
|
||||||
GUIOuttextwin2 5,25,92,GUIVideoText5
|
GUIOuttextwin2 5,25,92,GUIVideoText5
|
||||||
.notext5b
|
.notext5b
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
@@ -2136,7 +2126,6 @@ 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
|
||||||
GUIVideoText5 db 'FULL SCREEN',0 ; -c
|
GUIVideoText5 db 'FULL SCREEN',0 ; -c
|
||||||
GUIVideoText5b db 'WIDE SCREEN',0 ; -c
|
|
||||||
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
||||||
GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c
|
GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c
|
||||||
GUIVideoText8b db 'HI-RESOLUTION MODE7',0 ; -c
|
GUIVideoText8b db 'HI-RESOLUTION MODE7',0 ; -c
|
||||||
|
|||||||
@@ -947,7 +947,6 @@ NEWSYM GUII2VID, db 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Interpolation(w)
|
|||||||
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Eagle
|
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Eagle
|
||||||
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; (Interp | Eagle)
|
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; (Interp | Eagle)
|
||||||
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Full Screen
|
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Full Screen
|
||||||
NEWSYM GUIWSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; (Full Scr. | Wide Scr.)
|
|
||||||
NEWSYM GUISSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Small Screen
|
NEWSYM GUISSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Small Screen
|
||||||
NEWSYM GUITBVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering
|
NEWSYM GUITBVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering
|
||||||
NEWSYM GUIHSVID, db 0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1 ; Half/Quarter Scanlines
|
NEWSYM GUIHSVID, db 0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1 ; Half/Quarter Scanlines
|
||||||
|
|||||||
@@ -1076,7 +1076,7 @@ NEWSYM copyvesa2320x480x8b
|
|||||||
dec dl
|
dec dl
|
||||||
dec dl
|
dec dl
|
||||||
cmp byte[ScreenScale],1
|
cmp byte[ScreenScale],1
|
||||||
je near .widescreen
|
je near .fullscreen
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je near .scanlines
|
je near .scanlines
|
||||||
; cmp byte[CurrentGUIOn],1
|
; cmp byte[CurrentGUIOn],1
|
||||||
@@ -1139,28 +1139,29 @@ NEWSYM copyvesa2320x480x8b
|
|||||||
emms
|
emms
|
||||||
jmp .done
|
jmp .done
|
||||||
|
|
||||||
.widescreen
|
.fullscreen
|
||||||
add edi,60*320
|
sub edi,32
|
||||||
sub edi,16
|
cmp byte[scanlines],1
|
||||||
.wsloopa
|
je .fsloopa2
|
||||||
mov ecx,32
|
.fsloopa
|
||||||
call .wsloopb
|
mov ecx,64
|
||||||
add esi,32
|
call .fsloopb
|
||||||
add edi,16*2
|
|
||||||
mov ecx,32
|
|
||||||
call .wsloopb
|
|
||||||
sub esi,256
|
sub esi,256
|
||||||
add edi,16*2
|
mov ecx,64
|
||||||
mov ecx,32
|
call .fsloopb
|
||||||
call .wsloopb
|
|
||||||
add esi,32
|
add esi,32
|
||||||
add edi,16*2
|
|
||||||
dec dl
|
dec dl
|
||||||
dec dl
|
jnz .fsloopa
|
||||||
jnz .wsloopa
|
|
||||||
jmp .done
|
jmp .done
|
||||||
.wsloopb
|
.fsloopa2
|
||||||
movsd
|
mov ecx,64
|
||||||
|
call .fsloopb
|
||||||
|
add esi,32
|
||||||
|
add edi,320
|
||||||
|
dec dl
|
||||||
|
jnz .fsloopa2
|
||||||
|
jmp .done
|
||||||
|
.fsloopb
|
||||||
movsd
|
movsd
|
||||||
dec esi
|
dec esi
|
||||||
mov al,[esi]
|
mov al,[esi]
|
||||||
@@ -1168,7 +1169,7 @@ NEWSYM copyvesa2320x480x8b
|
|||||||
inc esi
|
inc esi
|
||||||
inc edi
|
inc edi
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .wsloopb
|
jnz .fsloopb
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.done
|
.done
|
||||||
@@ -2565,86 +2566,75 @@ copyvesa2320x240x16bgui:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM copyvesa2320x240x16b
|
NEWSYM copyvesa2320x240x16b
|
||||||
cmp byte[vesa2red10],1
|
; cmp byte[vesa2red10],1
|
||||||
jne .notbr
|
; jne .notbr
|
||||||
call ConvertToAFormat
|
; call ConvertToAFormat
|
||||||
.notbr
|
;.notbr
|
||||||
; je near copyvesa2320x240x16br
|
; je near copyvesa2320x240x16br
|
||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
.startcopy
|
.startcopy
|
||||||
cmp byte[ScreenScale],1
|
|
||||||
je near .scalescreen
|
|
||||||
push es
|
push es
|
||||||
mov ax,[vesa2selec]
|
mov ax,[vesa2selec]
|
||||||
mov es,ax
|
mov es,ax
|
||||||
mov esi,[vidbuffer]
|
mov esi,[vidbuffer]
|
||||||
mov ebp,[vidbufferm]
|
mov edi,32*2
|
||||||
mov edi,32*2 ; Draw @ Y from 9 to 247
|
|
||||||
cmp word[resolutn],224
|
cmp word[resolutn],224
|
||||||
jne .res239
|
jne .res239
|
||||||
mov edi,8*320*2+32*2
|
mov edi,8*320*2+32*2
|
||||||
.res239
|
.res239
|
||||||
add edi,[VidStartDraw]
|
add edi,[VidStartDraw]
|
||||||
add esi,16*2+256*2+32*2
|
add esi,16*2+256*2+32*2
|
||||||
add ebp,16*2+256*2+32*2
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov dl,[resolutn]
|
mov dl,[resolutn]
|
||||||
dec dl
|
dec dl
|
||||||
dec dl
|
dec dl
|
||||||
|
cmp byte[ScreenScale],1
|
||||||
|
je near .fullscreen
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je near .loopb
|
je near .loopb
|
||||||
.loopa
|
.loopa
|
||||||
mov ecx,128
|
mov ecx,64*2
|
||||||
rep movsd
|
rep movsd
|
||||||
add esi,64
|
add esi,32*2
|
||||||
add edi,128
|
add edi,64*2
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopa
|
jnz .loopa
|
||||||
pop es
|
jmp .done
|
||||||
ret
|
|
||||||
.loopb
|
.loopb
|
||||||
mov ecx,32
|
mov ecx,32
|
||||||
MMXStuff
|
MMXStuff
|
||||||
add esi,64
|
add esi,32*2
|
||||||
add edi,128
|
add edi,64*2
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopb
|
jnz .loopb
|
||||||
emms
|
emms
|
||||||
pop es
|
jmp .done
|
||||||
ret
|
|
||||||
.scalescreen
|
.fullscreen
|
||||||
push es
|
sub edi,32*2
|
||||||
mov ax,[vesa2selec]
|
.fsloopa
|
||||||
mov es,ax
|
|
||||||
mov esi,[vidbuffer]
|
|
||||||
xor edi,edi
|
|
||||||
cmp word[resolutn],224
|
|
||||||
jne .res239b
|
|
||||||
mov edi,8*320*2
|
|
||||||
.res239b
|
|
||||||
add edi,[VidStartDraw]
|
|
||||||
add esi,16*2+256*2+32*2
|
|
||||||
xor eax,eax
|
|
||||||
mov dl,[resolutn]
|
|
||||||
dec dl
|
|
||||||
dec dl
|
|
||||||
.loopab
|
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
.loopbb
|
jmp .fsloopb
|
||||||
mov eax,[esi]
|
.fsloopa2
|
||||||
mov [es:edi],ax
|
add esi,32*2
|
||||||
mov [es:edi+2],eax
|
|
||||||
mov eax,[esi+4]
|
|
||||||
mov [es:edi+6],eax
|
|
||||||
add esi,8
|
|
||||||
add edi,10
|
|
||||||
dec ecx
|
|
||||||
jnz .loopbb
|
|
||||||
add esi,64
|
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopab
|
jnz .fsloopa
|
||||||
|
jmp .done
|
||||||
|
.fsloopb
|
||||||
|
movsd
|
||||||
|
movsd
|
||||||
|
sub esi,2
|
||||||
|
mov ax,[esi]
|
||||||
|
mov [es:edi],ax
|
||||||
|
add esi,2
|
||||||
|
add edi,2
|
||||||
|
dec ecx
|
||||||
|
jnz .fsloopb
|
||||||
|
jmp .fsloopa2
|
||||||
|
|
||||||
|
.done
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -2943,7 +2933,7 @@ NEWSYM copyvesa2320x480x16b
|
|||||||
dec dl
|
dec dl
|
||||||
dec dl
|
dec dl
|
||||||
cmp byte[ScreenScale],1
|
cmp byte[ScreenScale],1
|
||||||
je near .widescreen
|
je near .fullscreen
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je near .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
@@ -3184,32 +3174,29 @@ NEWSYM copyvesa2320x480x16b
|
|||||||
jnz .mmxr2h2
|
jnz .mmxr2h2
|
||||||
jmp .returnbh2
|
jmp .returnbh2
|
||||||
|
|
||||||
.widescreen
|
.fullscreen
|
||||||
add edi,60*320*2
|
sub edi,32*2
|
||||||
sub edi,16*2
|
cmp byte[scanlines],1
|
||||||
cmp byte[MMXSupport],1
|
je .fsloopa2
|
||||||
je near .wsloopb
|
.fsloopa
|
||||||
.wsloopa
|
mov ecx,64
|
||||||
mov ecx,32
|
call .fsloopb
|
||||||
call .wsloopa2
|
|
||||||
add esi,32*2
|
|
||||||
add edi,16*2*2
|
|
||||||
mov ecx,32
|
|
||||||
call .wsloopa2
|
|
||||||
sub esi,256*2
|
sub esi,256*2
|
||||||
add edi,16*2*2
|
mov ecx,64
|
||||||
mov ecx,32
|
call .fsloopb
|
||||||
call .wsloopa2
|
|
||||||
add esi,32*2
|
add esi,32*2
|
||||||
add edi,16*2*2
|
|
||||||
dec dl
|
dec dl
|
||||||
|
jnz .fsloopa
|
||||||
|
jmp .done
|
||||||
|
.fsloopa2
|
||||||
|
mov ecx,64
|
||||||
|
call .fsloopb
|
||||||
|
add esi,32*2
|
||||||
|
add edi,320*2
|
||||||
dec dl
|
dec dl
|
||||||
jnz .wsloopa
|
jnz .fsloopa2
|
||||||
pop es
|
jmp .done
|
||||||
ret
|
.fsloopb
|
||||||
.wsloopa2
|
|
||||||
movsd
|
|
||||||
movsd
|
|
||||||
movsd
|
movsd
|
||||||
movsd
|
movsd
|
||||||
sub esi,2
|
sub esi,2
|
||||||
@@ -3218,41 +3205,12 @@ NEWSYM copyvesa2320x480x16b
|
|||||||
add esi,2
|
add esi,2
|
||||||
add edi,2
|
add edi,2
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .wsloopa2
|
jnz .fsloopb
|
||||||
ret
|
ret
|
||||||
.wsloopb
|
|
||||||
mov ecx,32
|
.done
|
||||||
call .wsloopb2
|
|
||||||
add esi,32*2
|
|
||||||
add edi,16*2*2
|
|
||||||
mov ecx,32
|
|
||||||
call .wsloopb2
|
|
||||||
sub esi,256*2
|
|
||||||
add edi,16*2*2
|
|
||||||
mov ecx,32
|
|
||||||
call .wsloopb2
|
|
||||||
add esi,32*2
|
|
||||||
add edi,16*2*2
|
|
||||||
dec dl
|
|
||||||
dec dl
|
|
||||||
jnz .wsloopb
|
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
.wsloopb2
|
|
||||||
movq mm0,[esi]
|
|
||||||
movq [es:edi],mm0
|
|
||||||
movq mm1,[esi+8]
|
|
||||||
movq [es:edi+8],mm1
|
|
||||||
add esi,14
|
|
||||||
add edi,16
|
|
||||||
mov ax,[esi]
|
|
||||||
mov [es:edi],ax
|
|
||||||
add esi,2
|
|
||||||
add edi,2
|
|
||||||
dec ecx
|
|
||||||
jnz .wsloopb2
|
|
||||||
emms
|
|
||||||
ret
|
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Copy VESA2 640x480x16b Copies buffer to 640x480x16bVB2
|
; Copy VESA2 640x480x16b Copies buffer to 640x480x16bVB2
|
||||||
|
|||||||
@@ -1246,7 +1246,6 @@ 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,
|
|||||||
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 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 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 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 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 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 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 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 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 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 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 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 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
|
||||||
|
|||||||
Reference in New Issue
Block a user