Added interpolation to 320x240x16B in the DOS port.

This commit is contained in:
stainless
2001-11-04 06:48:11 +00:00
parent d2b6c737e1
commit 5dd6cb243a
2 changed files with 46 additions and 2 deletions

View File

@@ -1043,9 +1043,9 @@ db ' ',0
NEWSYM GUI16VID, db 0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode NEWSYM GUI16VID, db 0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0 ; New Graphics Mode Available NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0 ; New Graphics Mode Available
NEWSYM GUISLVID, db 0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0 ; Scanlines NEWSYM GUISLVID, db 0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0 ; Scanlines
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 ; Interpolation NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,1,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,1,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 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

View File

@@ -2590,6 +2590,14 @@ NEWSYM copyvesa2320x240x16b
mov dl,[resolutn] mov dl,[resolutn]
dec dl dec dl
dec dl dec dl
cmp byte[GUIOn],1
jne .nogui
cmp byte[FilteredGUI],1
jne .nointerp
.nogui
cmp byte[antienab],1
je near .interpolate
.nointerp
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[MMXSupport],1 cmp byte[MMXSupport],1
@@ -2634,6 +2642,42 @@ NEWSYM copyvesa2320x240x16b
jnz .fsloopb jnz .fsloopb
jmp .fsloopa2 jmp .fsloopa2
.interpolate
;cmp byte[ScreenScale],1
;je .infsloopa
.inloopa
mov ecx,256
jmp .inloopb
.inloopa2
add esi,32*2
add edi,64*2
dec dl
jnz .inloopa
jmp .done
.inloopb
mov ax,[esi]
mov bx,[esi-2]
cmp ax,bx
jne .inloopb2
mov [es:edi],ax
mov [es:edi-2],bx
jmp .inloopb3
.inloopb2
shr ax,1
shr bx,1
and ax,7befh
and bx,7befh
add ax,bx
mov [es:edi],ax
mov [es:edi-2],ax
jmp .inloopb3
.inloopb3
add esi,2
add edi,2
dec ecx
jnz .inloopb
jmp .inloopa2
.done .done
pop es pop es
ret ret