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 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 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 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
|
||||
|
||||
@@ -135,7 +135,7 @@ EXTSYM NumVideoModes
|
||||
EXTSYM cfgvolume, MusicVol, DSPMem
|
||||
EXTSYM NumInputDevices,GUIInputNames
|
||||
EXTSYM GUIVideoModeNames
|
||||
EXTSYM GUISLVID,GUIINVID,GUIEAVID,GUIIEVID,GUIFSVID,GUIWSVID,
|
||||
EXTSYM GUISLVID,GUIINVID,GUIEAVID,GUIIEVID,GUIFSVID
|
||||
EXTSYM GUISSVID,GUITBVID,GUIHSVID,GUI2xVID,GUII2VID,GUIM7VID
|
||||
EXTSYM cfgsoundon,cfgSoundQuality,cfgStereoSound
|
||||
EXTSYM convertnum,converthex
|
||||
|
||||
@@ -1714,12 +1714,7 @@ DisplayGUIVideo:
|
||||
xor eax,eax
|
||||
mov al,[cvidmode]
|
||||
cmp byte[GUIFSVID+eax],0
|
||||
je near .notext5
|
||||
cmp byte[GUIWSVID+eax],0
|
||||
je .fs
|
||||
GUIOuttextwin2u 5,26,93,GUIVideoText5b,1
|
||||
jmp .notext5
|
||||
.fs
|
||||
je .notext5
|
||||
GUIOuttextwin2u 5,26,93,GUIVideoText5,1
|
||||
.notext5
|
||||
xor eax,eax
|
||||
@@ -1815,12 +1810,7 @@ DisplayGUIVideo:
|
||||
xor eax,eax
|
||||
mov al,[cvidmode]
|
||||
cmp byte[GUIFSVID+eax],0
|
||||
je near .notext5b
|
||||
cmp byte[GUIWSVID+eax],0
|
||||
je .fs2
|
||||
GUIOuttextwin2 5,25,92,GUIVideoText5b
|
||||
jmp .notext5b
|
||||
.fs2
|
||||
je .notext5b
|
||||
GUIOuttextwin2 5,25,92,GUIVideoText5
|
||||
.notext5b
|
||||
xor eax,eax
|
||||
@@ -2136,7 +2126,6 @@ GUIVideoTextbf db 'BILINEAR FILTER',0
|
||||
GUIVideoText3 db 'INTERPOLATION',0 ; -y
|
||||
GUIVideoText4 db 'EAGLE ENGINE',0 ; -y
|
||||
GUIVideoText5 db 'FULL SCREEN',0 ; -c
|
||||
GUIVideoText5b db 'WIDE SCREEN',0 ; -c
|
||||
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
||||
GUIVideoText7 db 'TRIPLE BUFFERING',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 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 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 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
|
||||
|
||||
@@ -1076,7 +1076,7 @@ NEWSYM copyvesa2320x480x8b
|
||||
dec dl
|
||||
dec dl
|
||||
cmp byte[ScreenScale],1
|
||||
je near .widescreen
|
||||
je near .fullscreen
|
||||
cmp byte[scanlines],1
|
||||
je near .scanlines
|
||||
; cmp byte[CurrentGUIOn],1
|
||||
@@ -1139,28 +1139,29 @@ NEWSYM copyvesa2320x480x8b
|
||||
emms
|
||||
jmp .done
|
||||
|
||||
.widescreen
|
||||
add edi,60*320
|
||||
sub edi,16
|
||||
.wsloopa
|
||||
mov ecx,32
|
||||
call .wsloopb
|
||||
add esi,32
|
||||
add edi,16*2
|
||||
mov ecx,32
|
||||
call .wsloopb
|
||||
.fullscreen
|
||||
sub edi,32
|
||||
cmp byte[scanlines],1
|
||||
je .fsloopa2
|
||||
.fsloopa
|
||||
mov ecx,64
|
||||
call .fsloopb
|
||||
sub esi,256
|
||||
add edi,16*2
|
||||
mov ecx,32
|
||||
call .wsloopb
|
||||
mov ecx,64
|
||||
call .fsloopb
|
||||
add esi,32
|
||||
add edi,16*2
|
||||
dec dl
|
||||
dec dl
|
||||
jnz .wsloopa
|
||||
jnz .fsloopa
|
||||
jmp .done
|
||||
.wsloopb
|
||||
movsd
|
||||
.fsloopa2
|
||||
mov ecx,64
|
||||
call .fsloopb
|
||||
add esi,32
|
||||
add edi,320
|
||||
dec dl
|
||||
jnz .fsloopa2
|
||||
jmp .done
|
||||
.fsloopb
|
||||
movsd
|
||||
dec esi
|
||||
mov al,[esi]
|
||||
@@ -1168,7 +1169,7 @@ NEWSYM copyvesa2320x480x8b
|
||||
inc esi
|
||||
inc edi
|
||||
dec ecx
|
||||
jnz .wsloopb
|
||||
jnz .fsloopb
|
||||
ret
|
||||
|
||||
.done
|
||||
@@ -2565,86 +2566,75 @@ copyvesa2320x240x16bgui:
|
||||
ret
|
||||
|
||||
NEWSYM copyvesa2320x240x16b
|
||||
cmp byte[vesa2red10],1
|
||||
jne .notbr
|
||||
call ConvertToAFormat
|
||||
.notbr
|
||||
; cmp byte[vesa2red10],1
|
||||
; jne .notbr
|
||||
; call ConvertToAFormat
|
||||
;.notbr
|
||||
; je near copyvesa2320x240x16br
|
||||
cmp byte[curblank],40h
|
||||
jne .startcopy
|
||||
ret
|
||||
.startcopy
|
||||
cmp byte[ScreenScale],1
|
||||
je near .scalescreen
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
mov es,ax
|
||||
mov esi,[vidbuffer]
|
||||
mov ebp,[vidbufferm]
|
||||
mov edi,32*2 ; Draw @ Y from 9 to 247
|
||||
mov edi,32*2
|
||||
cmp word[resolutn],224
|
||||
jne .res239
|
||||
mov edi,8*320*2+32*2
|
||||
.res239
|
||||
add edi,[VidStartDraw]
|
||||
add esi,16*2+256*2+32*2
|
||||
add ebp,16*2+256*2+32*2
|
||||
xor eax,eax
|
||||
mov dl,[resolutn]
|
||||
dec dl
|
||||
dec dl
|
||||
cmp byte[ScreenScale],1
|
||||
je near .fullscreen
|
||||
cmp byte[MMXSupport],1
|
||||
je near .loopb
|
||||
.loopa
|
||||
mov ecx,128
|
||||
mov ecx,64*2
|
||||
rep movsd
|
||||
add esi,64
|
||||
add edi,128
|
||||
add esi,32*2
|
||||
add edi,64*2
|
||||
dec dl
|
||||
jnz .loopa
|
||||
pop es
|
||||
ret
|
||||
jmp .done
|
||||
.loopb
|
||||
mov ecx,32
|
||||
MMXStuff
|
||||
add esi,64
|
||||
add edi,128
|
||||
add esi,32*2
|
||||
add edi,64*2
|
||||
dec dl
|
||||
jnz .loopb
|
||||
emms
|
||||
pop es
|
||||
ret
|
||||
.scalescreen
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
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
|
||||
jmp .done
|
||||
|
||||
.fullscreen
|
||||
sub edi,32*2
|
||||
.fsloopa
|
||||
mov ecx,64
|
||||
.loopbb
|
||||
mov eax,[esi]
|
||||
mov [es:edi],ax
|
||||
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
|
||||
jmp .fsloopb
|
||||
.fsloopa2
|
||||
add esi,32*2
|
||||
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
|
||||
ret
|
||||
|
||||
@@ -2943,7 +2933,7 @@ NEWSYM copyvesa2320x480x16b
|
||||
dec dl
|
||||
dec dl
|
||||
cmp byte[ScreenScale],1
|
||||
je near .widescreen
|
||||
je near .fullscreen
|
||||
cmp byte[scanlines],1
|
||||
je near .scanlines
|
||||
cmp byte[scanlines],3
|
||||
@@ -3184,32 +3174,29 @@ NEWSYM copyvesa2320x480x16b
|
||||
jnz .mmxr2h2
|
||||
jmp .returnbh2
|
||||
|
||||
.widescreen
|
||||
add edi,60*320*2
|
||||
sub edi,16*2
|
||||
cmp byte[MMXSupport],1
|
||||
je near .wsloopb
|
||||
.wsloopa
|
||||
mov ecx,32
|
||||
call .wsloopa2
|
||||
add esi,32*2
|
||||
add edi,16*2*2
|
||||
mov ecx,32
|
||||
call .wsloopa2
|
||||
.fullscreen
|
||||
sub edi,32*2
|
||||
cmp byte[scanlines],1
|
||||
je .fsloopa2
|
||||
.fsloopa
|
||||
mov ecx,64
|
||||
call .fsloopb
|
||||
sub esi,256*2
|
||||
add edi,16*2*2
|
||||
mov ecx,32
|
||||
call .wsloopa2
|
||||
mov ecx,64
|
||||
call .fsloopb
|
||||
add esi,32*2
|
||||
add edi,16*2*2
|
||||
dec dl
|
||||
jnz .fsloopa
|
||||
jmp .done
|
||||
.fsloopa2
|
||||
mov ecx,64
|
||||
call .fsloopb
|
||||
add esi,32*2
|
||||
add edi,320*2
|
||||
dec dl
|
||||
jnz .wsloopa
|
||||
pop es
|
||||
ret
|
||||
.wsloopa2
|
||||
movsd
|
||||
movsd
|
||||
jnz .fsloopa2
|
||||
jmp .done
|
||||
.fsloopb
|
||||
movsd
|
||||
movsd
|
||||
sub esi,2
|
||||
@@ -3218,41 +3205,12 @@ NEWSYM copyvesa2320x480x16b
|
||||
add esi,2
|
||||
add edi,2
|
||||
dec ecx
|
||||
jnz .wsloopa2
|
||||
jnz .fsloopb
|
||||
ret
|
||||
.wsloopb
|
||||
mov ecx,32
|
||||
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
|
||||
|
||||
.done
|
||||
pop es
|
||||
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
|
||||
|
||||
@@ -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 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 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 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
|
||||
|
||||
Reference in New Issue
Block a user