From 5dd6cb243a76b96c51a07b11612e765c1b89a324 Mon Sep 17 00:00:00 2001 From: stainless <> Date: Sun, 4 Nov 2001 06:48:11 +0000 Subject: [PATCH] Added interpolation to 320x240x16B in the DOS port. --- zsnes/src/dos/dosintrf.asm | 4 ++-- zsnes/src/video/copyvid.inc | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/zsnes/src/dos/dosintrf.asm b/zsnes/src/dos/dosintrf.asm index d5f13ba2..dcb2f76a 100644 --- a/zsnes/src/dos/dosintrf.asm +++ b/zsnes/src/dos/dosintrf.asm @@ -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 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 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 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 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 diff --git a/zsnes/src/video/copyvid.inc b/zsnes/src/video/copyvid.inc index e61ca8fe..7e6f94b2 100644 --- a/zsnes/src/video/copyvid.inc +++ b/zsnes/src/video/copyvid.inc @@ -2590,6 +2590,14 @@ NEWSYM copyvesa2320x240x16b mov dl,[resolutn] 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 je near .fullscreen cmp byte[MMXSupport],1 @@ -2634,6 +2642,42 @@ NEWSYM copyvesa2320x240x16b jnz .fsloopb 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 pop es ret