Added interpolation to 320x480x16B VESA2 in DOS port.
This commit is contained in:
@@ -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,1,0,0,0,0,0,0,0,1,0 ; Interpolation
|
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,1,0,1,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,1,0,0,0,0,0,0,1,1,0 ; (Interp | Eagle)
|
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,1,0,1,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,1,1,1,1,0 ; Full Screen
|
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,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
|
||||||
|
|||||||
@@ -2670,6 +2670,8 @@ NEWSYM copyvesa2320x240x16b
|
|||||||
mov dl,[resolutn]
|
mov dl,[resolutn]
|
||||||
dec dl
|
dec dl
|
||||||
dec dl
|
dec dl
|
||||||
|
cmp byte[ScreenScale],1
|
||||||
|
je near .fullscreen
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
jne .nogui
|
jne .nogui
|
||||||
cmp byte[FilteredGUI],1
|
cmp byte[FilteredGUI],1
|
||||||
@@ -2678,8 +2680,6 @@ NEWSYM copyvesa2320x240x16b
|
|||||||
cmp byte[antienab],1
|
cmp byte[antienab],1
|
||||||
je near .interpolate
|
je near .interpolate
|
||||||
.nointerp
|
.nointerp
|
||||||
cmp byte[ScreenScale],1
|
|
||||||
je near .fullscreen
|
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je near .loopb
|
je near .loopb
|
||||||
.loopa
|
.loopa
|
||||||
@@ -3061,6 +3061,14 @@ NEWSYM copyvesa2320x480x16b
|
|||||||
dec dl
|
dec dl
|
||||||
cmp byte[ScreenScale],1
|
cmp byte[ScreenScale],1
|
||||||
je near .fullscreen
|
je near .fullscreen
|
||||||
|
cmp byte[GUIOn],1
|
||||||
|
jne .nogui
|
||||||
|
cmp byte[FilteredGUI],1
|
||||||
|
jne .nointerp
|
||||||
|
.nogui
|
||||||
|
cmp byte[antienab],1
|
||||||
|
je near .interpolate
|
||||||
|
.nointerp
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je near .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
@@ -3333,6 +3341,60 @@ NEWSYM copyvesa2320x480x16b
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .fsloopb
|
jnz .fsloopb
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
.interpolate
|
||||||
|
cmp byte[scanlines],1
|
||||||
|
je .inloopb
|
||||||
|
.inloopa
|
||||||
|
call .inloopc
|
||||||
|
sub esi,256*2
|
||||||
|
add edi,64*2
|
||||||
|
call .inloopc
|
||||||
|
add esi,32*2
|
||||||
|
add edi,64*2
|
||||||
|
dec dl
|
||||||
|
jnz .inloopa
|
||||||
|
jmp .done
|
||||||
|
.inloopb
|
||||||
|
call .inloopc
|
||||||
|
add esi,32*2
|
||||||
|
add edi,32*2+320*2+32*2
|
||||||
|
dec dl
|
||||||
|
jnz .inloopb
|
||||||
|
jmp .done
|
||||||
|
.inloopc
|
||||||
|
mov bx,[esi]
|
||||||
|
mov ecx,254
|
||||||
|
mov ax,[esi+2]
|
||||||
|
add esi,byte 2
|
||||||
|
mov [es:edi],bx
|
||||||
|
add edi,byte 2
|
||||||
|
call .inloopc2
|
||||||
|
mov ax,[esi]
|
||||||
|
add esi,byte 2
|
||||||
|
mov [es:edi],ax
|
||||||
|
add edi,byte 2
|
||||||
|
ret
|
||||||
|
.inloopc2
|
||||||
|
push eax
|
||||||
|
mov ebp,[esi+2]
|
||||||
|
shr eax,byte 1
|
||||||
|
push ebp
|
||||||
|
shr ebx,byte 2
|
||||||
|
and eax,7befh
|
||||||
|
shr ebp,byte 2
|
||||||
|
and ebx,39e7h
|
||||||
|
add eax,ebx
|
||||||
|
and ebp,39e7h
|
||||||
|
add eax,ebp
|
||||||
|
mov [es:edi],ax
|
||||||
|
pop eax
|
||||||
|
pop ebx
|
||||||
|
add esi,byte 2
|
||||||
|
add edi,byte 2
|
||||||
|
dec ecx
|
||||||
|
jnz .inloopc2
|
||||||
|
ret
|
||||||
|
|
||||||
.done
|
.done
|
||||||
pop es
|
pop es
|
||||||
|
|||||||
Reference in New Issue
Block a user