diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index cc8d2477..e55cb4f0 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -3440,14 +3440,60 @@ LoadDuplicFound db 0 mov byte[GUItextcolor+4],44 %%nohighlight GUIBox %1,3,%2,3,[GUItextcolor] - GUIBox %1,4,%2,12,[GUItextcolor+1] - GUIBox %1,13,%2,13,[GUItextcolor+2] - GUIBox %1,3,%1,12,[GUItextcolor+3] - GUIBox %2,4,%2,13,[GUItextcolor+4] + GUIBox %1,4,%2,13,[GUItextcolor+1] + GUIBox %1,14,%2,14,[GUItextcolor+2] + GUIBox %1,3,%1,13,[GUItextcolor+3] + GUIBox %2,4,%2,14,[GUItextcolor+4] GUIOuttext %1+3,7,%3,44 GUIOuttext %1+2,6,%3,62 %endmacro +%macro GUIDMHelpB2 4 + mov byte[GUItextcolor],46 + mov byte[GUItextcolor+1],42 + mov byte[GUItextcolor+2],38 + mov byte[GUItextcolor+3],44 + mov byte[GUItextcolor+4],40 + cmp byte[GUIcwinpress],%4 + jne %%nohighlight + mov byte[GUItextcolor],38 + mov byte[GUItextcolor+1],40 + mov byte[GUItextcolor+2],46 + mov byte[GUItextcolor+3],40 + mov byte[GUItextcolor+4],44 +%%nohighlight + GUIBox %1,3,%2,3,[GUItextcolor] + GUIBox %1,4,%2,6,[GUItextcolor+1] + GUIBox %1,7,%2,7,[GUItextcolor+2] + GUIBox %1,3,%1,6,[GUItextcolor+3] + GUIBox %2,4,%2,7,[GUItextcolor+4] + GUIOuttext %1+3,5,%3,44 + GUIOuttext %1+2,4,%3,62 +%endmacro + +%macro GUIDMHelpB3 4 + mov byte[GUItextcolor],46 + mov byte[GUItextcolor+1],42 + mov byte[GUItextcolor+2],38 + mov byte[GUItextcolor+3],44 + mov byte[GUItextcolor+4],40 + cmp byte[GUIcwinpress],%4 + jne %%nohighlight + mov byte[GUItextcolor],38 + mov byte[GUItextcolor+1],40 + mov byte[GUItextcolor+2],46 + mov byte[GUItextcolor+3],40 + mov byte[GUItextcolor+4],44 +%%nohighlight + GUIBox %1,9,%2,9,[GUItextcolor] + GUIBox %1,10,%2,12,[GUItextcolor+1] + GUIBox %1,13,%2,13,[GUItextcolor+2] + GUIBox %1,9,%1,12,[GUItextcolor+3] + GUIBox %2,10,%2,13,[GUItextcolor+4] + GUIOuttext %1+3,11,%3,44 + GUIOuttext %1+2,10,%3,62 +%endmacro + %macro GUIDrawMenuM 10 GUIShadow %7,%8,%7+4+%3*6,%8+3+%4*10 GUIBox %1,%2,%1+4+%3*6,%2+3+%4*10,43 @@ -3518,14 +3564,17 @@ DisplayMenu: cmp byte[OSPort],3 jne near .notwinpressa - GUIShadow 238,9,247,19 - GUIShadow 249,9,256,19 + GUIShadow 238,9,247,14 + GUIShadow 238,16,247,20 + GUIShadow 249,9,257,20 .notwinpressa cmp byte[OSPort],3 jne near .notwinpressb mov byte[GUIMenuItem+36],249 - GUIDMHelpB 233,242,GUIMenuItem+36,1 + GUIDMHelpB2 233,242,GUIMenuItem+36,1 + mov byte[GUIMenuItem+36],248 + GUIDMHelpB3 233,242,GUIMenuItem+36,3 mov byte[GUIMenuItem+36],'x' GUIDMHelpB 244,253,GUIMenuItem+36,2 .notwinpressb @@ -4725,11 +4774,16 @@ NEWSYM GUIFontData db 00110000b db 00001000b db 10110000b; .5 - db 11111000b - db 10001000b - db 10001000b - db 10001000b - db 11111000b; Maximize + db 11111100b + db 10000100b + db 11111100b + db 00000000b + db 00000000b; Maximize + db 00000000b + db 11111100b + db 00000000b + db 00000000b + db 00000000b; Minimize ; 189 .. 220 GUIIconDataClose: diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index f4086eb4..53d83461 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -201,6 +201,37 @@ ProcessMouseButtons: call GUITryMenuItem jmp .noclick .nomenuitem + + cmp word[GUImouseposy],3 + jb near .noclickedw + cmp word[GUImouseposy],14 + ja near .noclickedw + cmp word[GUImouseposx],230 + jb near .noclickedw + cmp word[GUImouseposx],233 + jb near .noclickedw + cmp word[GUImouseposx],242 + ja .notfound7 + cmp word[GUImouseposy],8 + jb .clickawn + cmp word[GUImouseposy],8 + ja .clickawn2 +.clickawn + mov byte[GUIcwinpress],1 + jmp .noclick +.clickawn2 + mov byte[GUIcwinpress],3 + jmp .noclick +.notfound7 + cmp word[GUImouseposx],244 + jb near .noclickedw + cmp word[GUImouseposx],253 + ja .notfound8 + mov byte[GUIcwinpress],2 + jmp .noclick +.notfound8 +.noclickedw + cmp word[GUImouseposy],15 ja near .nomenu cmp word[GUImouseposy],3 @@ -261,24 +292,9 @@ ProcessMouseButtons: mov byte[GUIcrowpos],0 jmp .noclick .notfound6 - cmp word[GUImouseposx],230 - jb near .noclicked - cmp word[GUImouseposx],233 - jb near .noclick - cmp word[GUImouseposx],242 - ja .notfound7 - mov byte[GUIcwinpress],1 - jmp .noclick -.notfound7 - cmp word[GUImouseposx],244 - jb near .noclick - cmp word[GUImouseposx],253 - ja .notfound8 - mov byte[GUIcwinpress],2 - jmp .noclick -.notfound8 jmp .noclick .noclicked + cmp byte[OSPort],3 jne .noclick mov byte[GUIpclicked],1 @@ -440,7 +456,7 @@ ProcessMouseButtons: mov byte[GUIcwinpress],0 cmp word[GUImouseposy],3 jb .notwinpressa - cmp word[GUImouseposy],13 + cmp word[GUImouseposy],7 ja .notwinpressa cmp word[GUImouseposx],233 jb .notwinpressa @@ -467,6 +483,23 @@ ProcessMouseButtons: ret .notwinpressb + cmp byte[OSPort],3 + jne .notwinpressc + cmp byte[GUIcwinpress],3 + jne .notwinpressc + mov byte[GUIcwinpress],0 + cmp word[GUImouseposy],9 + jb .notwinpressc + cmp word[GUImouseposy],13 + ja .notwinpressc + cmp word[GUImouseposx],233 + jb .notwinpressc + cmp word[GUImouseposx],242 + ja .notwinpressc +; call MinimizeWindow + ret +.notwinpressc + ; ButtonProcess cmp byte[GUICBHold],1 je near GUILoadData diff --git a/zsnes/src/gui/guitools.inc b/zsnes/src/gui/guitools.inc index c705710b..3b86ff8b 100644 --- a/zsnes/src/gui/guitools.inc +++ b/zsnes/src/gui/guitools.inc @@ -119,20 +119,21 @@ GUIoutputchar: mov cl,5 .loopa mov ah,[edi] - mov ch,5 + mov ch,6 .loopb test ah,80h jz .nowrite mov al,[GUItextcolor] sub al,cl sub al,ch + inc al mov byte[esi],al .nowrite shl ah,1 inc esi dec ch jnz .loopb - add esi,283 + add esi,282 inc edi dec cl jnz .loopa