From 0b9defee9dc0e13cd82833e84af9980b1025be25 Mon Sep 17 00:00:00 2001 From: pagefault <> Date: Fri, 25 Mar 2005 20:41:39 +0000 Subject: [PATCH] Reworked the way sprites are handled under subscreen conditions --- zsnes/src/video/newgfx16.asm | 47 +++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/zsnes/src/video/newgfx16.asm b/zsnes/src/video/newgfx16.asm index 03bb2f5c..7a5f6d34 100644 --- a/zsnes/src/video/newgfx16.asm +++ b/zsnes/src/video/newgfx16.asm @@ -2552,28 +2552,31 @@ NEWSYM drawbg4linepr116b ; FillSubScr bit 0 sets to 1 if there is no subscreen present ; ms,wms,wm,ws ; FillSubScr scadtng -NEWSYM drawsprng16b - test byte[BGMS1+ebx*2],10h - jz .nosubmain - test byte[FillSubScr+ebx],1 - jnz near drawsprng16bt -.nosubmain - mov ebp,[cpalval+ebx*4] - xor eax,eax - mov edi,[CMainWinScr] - test byte[FillSubScr+ebx],1 - jz .main2 - test byte[BGMS1+ebx*2],10h - jnz .main2 - mov edi,[CSubWinScr] -.main2 - test byte[FillSubScr+ebx],1 - jz .main - test byte[BGMS1+ebx*2],10h - jnz .main - cmp byte[edi+ebx+4*256],0 - jne near drawsprngw16b - add esi,75036*2 + NEWSYM drawsprng16b + test byte[BGMS1+ebx*2],10h + jz .nosubmain + mov edi,[CSubWinScr] + cmp byte[edi+ebx+4*256],0 + je .nosubmain + test byte[FillSubScr+ebx],1 + jnz near drawsprng16bt + .nosubmain + mov ebp,[cpalval+ebx*4] + xor eax,eax + mov edi,[CMainWinScr] + test byte[FillSubScr+ebx],1 + jz .main2 + test byte[BGMS1+ebx*2],10h + jnz .main2 + mov edi,[CSubWinScr] + cmp byte[edi+ebx+4*256],0 + jne near drawsprngw16b + .main2 + test byte[FillSubScr+ebx],1 + jz .main + test byte[BGMS1+ebx*2],10h + jnz .main + add esi,75036*2 .main xor edi,edi normalsprng16b sprdrawpra16bng,sprdrawprb16bng