From f127525cac37e48843d77300d81a81e94a9b4fb5 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sun, 8 Sep 2019 18:03:42 -0700 Subject: [PATCH] GB Video: Fix mode 0 window edge case (fixes #1519) --- CHANGES | 1 + cinema/gb/window/zin-head/baseline_0000.png | Bin 0 -> 4049 bytes cinema/gb/window/zin-head/baseline_0001.png | Bin 0 -> 4010 bytes cinema/gb/window/zin-head/baseline_0002.png | Bin 0 -> 4010 bytes cinema/gb/window/zin-head/baseline_0003.png | Bin 0 -> 4010 bytes cinema/gb/window/zin-head/baseline_0004.png | Bin 0 -> 4010 bytes cinema/gb/window/zin-head/baseline_0005.png | Bin 0 -> 4049 bytes cinema/gb/window/zin-head/test.mvl | Bin 0 -> 9144 bytes src/gb/renderers/software.c | 3 +++ 9 files changed, 4 insertions(+) create mode 100644 cinema/gb/window/zin-head/baseline_0000.png create mode 100644 cinema/gb/window/zin-head/baseline_0001.png create mode 100644 cinema/gb/window/zin-head/baseline_0002.png create mode 100644 cinema/gb/window/zin-head/baseline_0003.png create mode 100644 cinema/gb/window/zin-head/baseline_0004.png create mode 100644 cinema/gb/window/zin-head/baseline_0005.png create mode 100644 cinema/gb/window/zin-head/test.mvl diff --git a/CHANGES b/CHANGES index 6ea41ea02..06bae47db 100644 --- a/CHANGES +++ b/CHANGES @@ -39,6 +39,7 @@ Emulation fixes: - GB: Fix savedata initialization (fixes mgba.io/i/1473, mgba.io/i/1478) - GB Memory: Better emulate 0xFEA0 region on DMG, MGB and AGB - GB Printer: Reset printer buffer index after printing + - GB Video: Fix mode 0 window edge case (fixes mgba.io/i/1519) Other fixes: - Qt: Fix some Qt display driver race conditions - Core: Improved lockstep driver reliability (Le Hoang Quyen) diff --git a/cinema/gb/window/zin-head/baseline_0000.png b/cinema/gb/window/zin-head/baseline_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c2c0f9d552a8d7eb47eb00d52ba7bc8f895afd GIT binary patch literal 4049 zcmc&%c{tR6*ZwjYGMMZc`_dpgS;LGaOWBG-5uz+vBU{XjP_{<4h8j!BRw9~W7;E-j zVr=jg=-dc+>yK*z5DAPiu%vb zdY=hO__Jx_)b2&G4G{nKuYkr%*-`ASq-Acr0wULELZ6Ae`f%dQ;W26|(yVWq{L~F& zL%5fOT3Bp73@qwDmD_K*X$f2lHPO2UVwQ6Z_w0(j@oVRRg{5ydH<{GrN(@T=KsQyY zQ{|Hei*U5HZgoX##uDFeBluaDVCB;Zw)Z-i3 z+Am$zY62a>S9FoYANJGNzQsE9QZ>hG>vEvx4N(LjeE4l?Q}^aR9?K0}PSJN!G1ffR ztkD*BT>p5!_@^b)>;s~+Hnu0qEP>M33f(LU0e2KRUvdO7ARP?o&XA8zbEhdR@VeMm zKWPv>wZ*rV&G`UM%sO?)nKQ2X3B5>}C!Vp|u!DNno_T^e-`m%`mBDB5d$)8aust#G z6;TR{(~13Q6=u!qFO-aT}FgOL^LpU zG;eJ^Oxq6=Zb@9h<1?wH1ofyhk7G{r2H2+aicHMaiW#?|WGm6=Oxzgy`^GseUQ6b9 zVawlpWTo42^%1#W0w??}Z3%|F{aW|i+a$3el6P7&HO{5gk~j}p7EgKq>6@jHpRaHM z%7Kz)J$HnszmHL)s`BiL(<_#TSq>itJQA@GRV$s`DtKg4a`1N$eh6ECe&@jy<NJ6 zY2Sk#SqXB#P4Wb_luM{#CnF{k`QzA_`qyiAhx!Hc&E?2kW`+5`19`ZR{BrO0CFD#u zI(>d($s4jE5m*NcU7W6z)H_ldD1E*$6r(w-jXZ}xox_7Aj37@|WCgUSCNXC6w1K|= z&AOaqz3JKiO>Z#I$kGl+3#iYhBgPbH7v=XBc*Cv$6*^7xwpt@v{w+O6xS=S&PXhL8 z4i!|NiG`X<$3RE@aR&bvv`9P_GyJRj$*s+9zeE|4G7m1~H?IoWYNg9#$s--zLCs$e z9y+_Q2?lWFv{RYM=L|jAfuv5u_Jl1*dEN^qADyZUZWnUqxWeum?O4sqc8gt=j$P%T zXM-TC`aZju2Gq)gI4Io}6t+vlQg6lxSpV@Hyo!53!d`Mad`g<}&_-%>(sXfH&4M;h z-4$GU`668#h!CJ5sTg;{lD9m$etK9tQPS|aZSDb?}WBx73*FfBTDd2xW7=xAF z#&iof#=U6yas$o5L9b~8QSTd?16JNI?MHW@p-mDw+Bg>TiSazqhN%X7NU-f~Xmzpf zIpTpV+ZFlSbqIyttlF~9==z=4N3R@Oq3zl|PbiVol0TW1VABzBRl;{*kwT@w_5*B? zaXhc%>PAun7!;1F^Q+A|6I^W@3r=XLo@BiY-vD$2=TS`8wR+5Wmo+>ie2f#92v5=Z zghl!4P`4jaeA?P=mz-!`IY|~x4po}~g6>3~Y>+(C6s@eMFG5&4j7HpGX-Sr?5<>r~ z2|ppLL}|oY?6j}wv84eWA;1nGQno4US%%E&!bLA`88@JGP;2UgiZy$PblQUbmLS7$ z&Bc&)8cYhKc5{v{wJK)4`Y^Nh_d?(x?d8LrZWL{)M$~J9lw{elh#-q%{UqHZh)=`B zPLwIx0?ItD$ga~qS2aZHuAFYzSH)QvP-W&>|47L{PO|J~RPKnEFrX4E_sMy{f$JM8 zqu*CEu%qb7LNL_KzQ}gGMhyKj3)n9D<%d+ z3g&C?8Q$rU#`sJS@;x|0$JzUP;6P@5sQ4>A?)6RC{EhUez(Nj;9c?{0ZFqQ#m$Btb zy(~m^CaXlNsqMg^Yi=vehMl~cA#AhLqfI~1d#oQ{wiuNshq^|V`^|*pr71v-+>sV8 z=Vo4%901MT;JUI?XVlFilucRl5D@#o2#2d5xfjw*Pl-IsveL;u73gj|s+q=wEM5an z6>zFW;Z-t#o?`UAiFY8KaKG6(%mGY9`+U^IdfVkjl{BWA;M&g0oD5aqEj>=u0(|Jk zK^J2jKV=2#Xz*s*KS6nh<$eq+Fp&ZNF`1LH8sp5&qTUm2f0Etd?3l9^dk+)L6}rU? z4#Tl5kK7JX4fpwidJro{6T5Uq;#uy41}@1*_j#O;u2x^T!=LsYK%({GLeuG|T?IbM zLJsSvvhu-=m13PEq)7`+<)xp#V~w!9XQp0&XQxSg8M!ipReD>=jG#L@+&s9(__w=L ziz8pkWatHPca>hdXaT@u7lV$!AC+|bOY6a+lk23i%{wU5;5MNJdcqC}pXW9;IhVKk z^zhhMHfLS9sz)5S;B5%nbFd{Xh@euhOMLNh)gOQnd9VE-PZ zQj^`#`3v?EMi1QHA~a#ey@C+e3eZeeloyaykg66QD5m@_8r^zHKLnUL!+w?p`Glh} zeoCWIldGIQi0GgJTyC~9&*MyCtB~I)aO4t-yu-&dzMHLz32ftNe6=KH4x8T=q1~3} zmEPEr(VC1tWP6^hY{e;MD7Tj{0y8SCAq>4biqX+)1^F{|sN{bKB!dCxq0Y~P4Dt}; zm?T;^vy`BHCwsc%cl)_aOW0f~e8R?cgrMZq~!`#5W zUKCI8aEoyfz0bR9-9fL{mNB>L+U=sbz`fFd_0h;Mqzg#+p69e6yNB4P27uQZz zZLPxq7a1m3^>gyxj^z(BuCV^DhewtenRV+1R~bP?rTVQ#fcibEqDN?{{@t$g=}qtH z8G`Xxw!QJ|D`g4+&v@FtxzE;ACkQ<|ma_v9248a~J+Lh&=jjX&@EZY#IbLwnTH)Nt z_MWopgBTlo-y3m_F4cq`%Tduk28?tfLcA|t3T*SmE1<3STm-8_iCFCHcu6=t;xvyPL!Cr%2-zr(4tP;1J++gxG`KN_V+nA{W*LdP4a(!o> zsTHf_!tX`AnE1@&;X-BH&dxKXed%p9Ou#$;8fY}Y1vAA{!ZR$3Q6yZh=B zNsx~K-s66GF}QdR+x9ZMyXa!!+FoA|WlP%o=+Saez=ze*9kdGV#}FdcuSSc!xlyvx zAnLXoV)!(bfwF?r*JTHLHVc`By0sq(7x*_6y`_1E^MzxJ8rhFnMQaf=r9* zfrXHMXID$NU5lpKulBljOE^(wKLVaP^)9Sq`t4=lpa3R*TR2xVVO^Oo5(1klunU~c z$A-Uy@D0uWQH+eCc1R_ttv-l#*6(M#t4nkex+)v*V71)QB(ItT$9S7a+|HD*`6#*+ z3r$V1U#3jydkyAH0h zP=1Ig?ncUfbb=lqVXfsFWB`-n#@g>U$LYs#Nu#n#_XVweT;oo=7XMZa^g!}#9sX5N z`sl7;rDlqQQp$blSrZR{_6<@Tg{F@)M`+g?U0HemVcPDiv9Qk0jp_kPMX{8!aL&Y~ z!edSw`}eCn^ZbcHZVmWtQ9rTB`-RI*3E>_7p(v*SBuiLlLw{?mja6(s>lv98R%;IQ z%gE`^760T~flSK$lk6pBvI^O_8}*4+kJXg-Y|u7?WyJ& z>4%i4Yvh5Sh_Ul>APjxZ)RCmGg1E*Jl~Jt$iz8jC7~LtZqmQ5RUIZGd)o9pUfxnKb zT!F;ueUeYQ0dfQ78$HUCI!dLNBD5=VybIB9Tl(YlW%X@aoUOwVY@qSV5U&(QdCbKs zY2Ulw$@=J8{Wcd&v@>@uJ6sUcWo-oVlUy**{l0m})9}aQaH990Hy^ZB;BTJx8_S3| zy}_v$@D3f4Zu4^)O)2BNm3?UFD+YJ?$x{iyu7w#czVuCS(`mj-ZksFyHI`%qXk5D+Ov}o?qa) z31xqB2%NHA%X&4q=0k;Hp3`#y0j&RXBmFht|7EB$8S?n_KD?Cf|9Rj4V}<|Ia0#(v XeEnWQQjFW*i{12+g<+Y#^W%R3W;Ban literal 0 HcmV?d00001 diff --git a/cinema/gb/window/zin-head/baseline_0001.png b/cinema/gb/window/zin-head/baseline_0001.png new file mode 100644 index 0000000000000000000000000000000000000000..5d583d227d75f550291cd67cb4f75ea43a56755d GIT binary patch literal 4010 zcmc&%c{tQ<+x{{3$dm}lFtTNhhDX_zU5U_Q>_P}*8~a#C$R1&Yv0{U1z z_-N{rxC7^}J()bkA@T?8$_J-XQ#R3Hmqe)z)h}es!7{pOllp}$oBMo;N}sE37AV5+ z;}rT4_!;7E#(Yq7-$8pqOPG+N8BYU|);DS}*FWTTHwWB7i?q*KpoR+vLt@Fn2kD&Y zN#9b2(^^`PQR|e9Su&NK&aTbDEp7NvyX2LLf*FqRxzMgCdXP#dXQ(zQ?^rsSv8%n-3lh{xv3PciFRg2S-dp=JLT4m zq8{-f1DmUr9KWeNx=lYG@u!J7i)1<3EX}d*`3JJ}-hKZ98_g(!Eddfe>2XPYXGzKL zWo$cVz%hHAc7;5M3%EQcCkLLyri9}n4-9M5^lfL`Q^LB9c_%R*Bu&jYd z2Ue1=oj;iqGf?nu{Dg?jVZjU4keAaC`^&-MJ1kJ=%+WMst>6}E_kkcxqitj=RQ}Uo z`UJ9$O=KckSz)@4Vb13CIfF-*Qmi+%5ZI%vsC74uzPR3HtrzU?Y=} zFvKyP+gJO~7m4L&kw;jWuRje&plTre+=>zy*0MO|kDVPE-vp(AIYACoQ^FR|*?~j} z{>i2sXU#hfoN+NP{Hu(75LwYwEMSBgBtOZgJHo5Q^}S} zdsecZ8@y`+=T9RBx?Jgc)TUTt6LKJx^eKP&qh3tV;AfU;K#+RZL7xs9ybU654_A# z{C*n$n2T-W#_-d~BV1EV%uH1Hk4;T37t-CLqx2);7$fx%`Q`kEdL6yU)~H&()$$f$ z-&+yJi0!*VIkqjK5%&4Y!SF2Bh-Elc6_*4_4SB}3au9iAkoSdZ8`boo`&)+3E3_3D ziCBgL%jup9dnZohP@&O@D;*k>XS$2#?W4GLB-<_u5V$vT-OK(Iv$}GHJ`J7V$xW8X zfYqi(KGL9*0=K=pdu$f%j~+fxx$)7qaT6Fq!L-jcGn?COL|Hv>YfH;+IhqP)nKQ__ zpQaTIZ;i5AoJ>EOg7^3|rqd_P0q<2l?MJQQ5n&P;9RodY7rqTw*{4Ac%r2+M(}NeZ zLaf6Lbn4er;RkpYj^ZadNYuQXkAFas1Lw)9o}`@a9Yi>Z(XEpdti)$|^s zXhj84;bfwBM83qsc4fW5m?zul>`z3=x6t+7t6F8h^8A>J3l8E>!}~!x_YYrU?{}X< z$D$On7v~~m+*zRdNamzt`Hcy9X6RGZUcj&Vq zU=iI9mW+*1N(4G8uKAQP%-gHPg&!mH7vqgF0bJl;Vrx&2k6raGd0r%#sKVg9MElTDWFCr~DT!TuQ?Rh@!7F^a9->OdXeP-z)X?=u%;M%YdTC znX0!*^K}2^kT0B@~!7v0VP0AT7&NdH3=f2&vWc0azm$+he@1Z>AZ>JlZg zX%iq9d5sLki&xM~WDnWrYmmkiG2pV-HPD{zSAo~jg5)ipTIwjv%|#8-7YFJM6mz~ z{mpmG6Y`JpLE_z6w!4yevgN0NU5YgeTcR$ii- z0_?!Pnq~%RX&$8J!Tq+`-_}f3f}=ZqJ(i2!>#d?sFrkpPcOD{o?JGkf>S%C6@cAgZ)BlQjNM9o0u-@DUbhg?;DM&uS2a@zPU zR-DyXl;H9@(Y_LOO(2_^Ec_>FWhXHUt?4&BQT8P`XY|EKK9v*Im>-v1dxBlot8O|HXW(y=J%7ZT9dVPRLiW*{ zW;RQLbPX6yHExxDVz|UbCu09q`pr0<{P(Op!Xb|IU5lm}y%DW~3Qmol`?GBHg!CU# zq7vr{sAH#|E;el69ACt%W$ZZH1!~hBa5tCa9rV=#k-xF?No`@w2Go0 zkIGLmkg1t*38))cycxULqaPhqtu_ln=lLuo1{n1FB1fFQT&vj{NZOrW{P9_$xuQJ> z76sNQg^R8a2a~|Y))IEz&_PFp*1ATdQeR=;l5#u6dO(jZVZ}&L_{zU^xX*dZE4T00 zeZr>vr~DI;z%fgB@3WJQ=w&gAf&Q(!ySXwa@wHKOjry4vGO!WlCO(Tq})+jy?1=sui1KyK z>W75_;~o1UqT4K2$FyxO%<0ad%edw)`WTM^@jGc=4t}<{dIVQ-nkuu_s%+VUP{tDz zp>pvog7yR@zN2_ToMH`f0hNY^6-ymvGD_9;D4s44*6m*0QJoC5aPE?kkK}T97^N_C z6q^R|pK;dgKNvrQ&#qFB*Eb}+LB6qLEhc48w@k#uVHsq4V literal 0 HcmV?d00001 diff --git a/cinema/gb/window/zin-head/baseline_0002.png b/cinema/gb/window/zin-head/baseline_0002.png new file mode 100644 index 0000000000000000000000000000000000000000..5d583d227d75f550291cd67cb4f75ea43a56755d GIT binary patch literal 4010 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 literal 0 HcmV?d00001 diff --git a/cinema/gb/window/zin-head/baseline_0003.png b/cinema/gb/window/zin-head/baseline_0003.png new file mode 100644 index 0000000000000000000000000000000000000000..5d583d227d75f550291cd67cb4f75ea43a56755d GIT binary patch literal 4010 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 literal 0 HcmV?d00001 diff --git a/cinema/gb/window/zin-head/baseline_0004.png b/cinema/gb/window/zin-head/baseline_0004.png new file mode 100644 index 0000000000000000000000000000000000000000..5d583d227d75f550291cd67cb4f75ea43a56755d GIT binary patch literal 4010 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 literal 0 HcmV?d00001 diff --git a/cinema/gb/window/zin-head/baseline_0005.png b/cinema/gb/window/zin-head/baseline_0005.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c2c0f9d552a8d7eb47eb00d52ba7bc8f895afd GIT binary patch literal 4049 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 XeEnWQQjFW*i{12+g<+Y#^W%R3W;Ban literal 0 HcmV?d00001 diff --git a/cinema/gb/window/zin-head/test.mvl b/cinema/gb/window/zin-head/test.mvl new file mode 100644 index 0000000000000000000000000000000000000000..0093374115eacc3b0e906edfe832ca60bc943aad GIT binary patch literal 9144 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 >= GB_VIDEO_VERTICAL_PIXELS || !(after || before)) { return; } + if (!renderer->hasWindow && renderer->lastX == GB_VIDEO_HORIZONTAL_PIXELS) { + return; + } if (renderer->lastY >= oldWy) { if (!after) { renderer->currentWy -= renderer->lastY;