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