Added wide screen to 320x480 video modes in the DOS port.

This commit is contained in:
stainless
2001-10-09 05:35:42 +00:00
parent 38e5d91e11
commit 23f6e3324e
5 changed files with 89 additions and 124 deletions

View File

@@ -1067,21 +1067,21 @@ NEWSYM copyvesa2320x480x8b
mov dl,[resolutn]
dec dl
dec dl
cmp byte[smallscreenon],1
je near .smallscreen
cmp byte[ScreenScale],1
je near .widescreen
cmp byte[scanlines],1
je near .scanlines
;cmp byte[CurrentGUIOn],1
cmp byte[GUIOn],1
je .loopa1
cmp byte[f3menuen],1
je .loopa1
cmp byte[ForceNewGfxOff],1
je .loopa1
cmp byte[newengen],1
je near copyvesa2320x480x8ng
; cmp byte[CurrentGUIOn],1
; cmp byte[GUIOn],1
; je .loopa
; cmp byte[f3menuen],1
; je .loopa
; cmp byte[ForceNewGfxOff],1
; je .loopa
; cmp byte[newengen],1
; je near copyvesa2320x480x8ng
.loopa1
.loopa
cmp byte[MMXSupport],1
je .loopb
.loopa2
@@ -1131,45 +1131,37 @@ NEWSYM copyvesa2320x480x8b
emms
jmp .done
.smallscreen
.widescreen
add edi,60*320
cmp byte[MMXSupport],1
je near .ssloopb
.ssloopa
mov ecx,64
rep movsd
sub edi,16
.wsloopa
mov ecx,32
call .wsloopb
add esi,32
add edi,32*2
mov ecx,64
rep movsd
add edi,16*2
mov ecx,32
call .wsloopb
sub esi,256
add edi,32*2
mov ecx,64
rep movsd
add edi,16*2
mov ecx,32
call .wsloopb
add esi,32
add edi,32*2
add edi,16*2
dec dl
dec dl
jnz .ssloopa
jmp .done
.ssloopb
mov ecx,16
MMXStuff
add esi,32
add edi,32*2
mov ecx,16
MMXStuff
sub esi,256
add edi,32*2
mov ecx,16
MMXStuff
add esi,32
add edi,32*2
dec dl
dec dl
jnz near .ssloopb
emms
jnz .wsloopa
jmp .done
.wsloopb
movsd
movsd
dec esi
mov al,[esi]
mov [es:edi],al
inc esi
inc edi
dec ecx
jnz .wsloopb
ret
.done
pop es
@@ -1177,6 +1169,7 @@ NEWSYM copyvesa2320x480x8b
copyvesa2320x480x8ng:
jmp .mode7hires
mov ebx,1
.loopa
cmp dword[ignor512],0
@@ -1198,7 +1191,6 @@ copyvesa2320x480x8ng:
cmp byte[BGMA+ebx+1],7
je near .mode7hires
.nomode7hires
mov ecx,64
.a
mov eax,[esi]
@@ -2131,7 +2123,7 @@ NEWSYM copyvesa2512x384x8b
cmp byte[Triplebufen],1
je .ignorehr
cmp al,1
je .yeshires
je near .yeshires
.ignorehr
mov ecx,128
.a
@@ -2501,8 +2493,6 @@ NEWSYM copyvesa2320x480x16bgui
mov dl,[resolutn]
dec dl
dec dl
cmp byte[smallscreenon],1
je near .smallscreen
cmp byte[scanlines],3
je near .halfscanlines
cmp byte[scanlines],2
@@ -2633,36 +2623,6 @@ NEWSYM copyvesa2320x480x16bgui
jnz .loopabhq
pop es
ret
.smallscreen
add edi,60*320*2
.ssloopa
mov ecx,256
call .ssloopa2
add esi,32
add edi,64*2*2
mov ecx,256
call .ssloopa2
sub esi,256
add edi,64*2*2
mov ecx,256
call .ssloopa2
add esi,32
add edi,64*2*2
dec dl
dec dl
jnz .ssloopa
pop es
ret
.ssloopa2
mov al,[esi]
inc esi
mov bx,[GUICPC+eax*2]
mov [es:edi],bx
add edi,2
dec ecx
jnz .ssloopa2
ret
%endif
NEWSYM ConvertToAFormat
@@ -2778,8 +2738,8 @@ NEWSYM copyvesa2320x480x16b
mov dl,[resolutn]
dec dl
dec dl
cmp byte[smallscreenon],1
je near .smallscreen
cmp byte[ScreenScale],1
je near .widescreen
cmp byte[scanlines],1
je near .scanlines
cmp byte[scanlines],3
@@ -3020,48 +2980,40 @@ NEWSYM copyvesa2320x480x16b
jnz .mmxr2h2
jmp .returnbh2
.smallscreen
.widescreen
add edi,60*320*2
cmp byte[MMXSupport],1
je near .ssloopb
.ssloopa
mov ecx,64*2
rep movsd
sub edi,16*2
.wsloopa
mov ecx,32
call .wsloopb
add esi,32*2
add edi,32*2*2
mov ecx,64*2
rep movsd
add edi,16*2*2
mov ecx,32
call .wsloopb
sub esi,256*2
add edi,32*2*2
mov ecx,64*2
rep movsd
add edi,16*2*2
mov ecx,32
call .wsloopb
add esi,32*2
add edi,32*2*2
add edi,16*2*2
dec dl
dec dl
jnz .ssloopa
jmp .done
.ssloopb
mov ecx,16*2
MMXStuff
add esi,32*2
add edi,32*2*2
mov ecx,16*2
MMXStuff
sub esi,256*2
add edi,32*2*2
mov ecx,16*2
MMXStuff
add esi,32*2
add edi,32*2*2
dec dl
dec dl
jnz near .ssloopb
emms
jmp .done
.done
jnz .wsloopa
pop es
ret
.wsloopb
movsd
movsd
movsd
movsd
sub esi,2
mov ax,[esi]
mov [es:edi],ax
add esi,2
add edi,2
dec ecx
jnz .wsloopb
ret
;*******************************************************
; Copy VESA2 640x480x16b Copies buffer to 640x480x16bVB2
@@ -5501,7 +5453,7 @@ NEWSYM copyvesa2512x384x16b
cmp byte[Triplebufen],1
je .ignorehr
cmp al,1
je .yeshires
je near .yeshires
.ignorehr
mov ecx,256
.a