From 9cf739bd9abc51355ea469f60be80733239f1ea2 Mon Sep 17 00:00:00 2001 From: Dave Bernazzani Date: Sun, 20 Oct 2024 17:29:03 -0400 Subject: [PATCH] Version 5.8 hotfix with tweak to collision detection at the top boarder. --- NINTV-DS.nds | Bin 725504 -> 725504 bytes arm9/source/emucore/AY38900.cpp | 9 ++++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/NINTV-DS.nds b/NINTV-DS.nds index 71f1c958e143916969bccbd0e0829d3c4d5a882e..a93fe0f27a1942f770ed05df10157abad39e556a 100644 GIT binary patch delta 2759 zcmaKue^gWF8OPt}CO44RP?G|+SUp66Vha|WL}Wk-YE4yiD5oM71y*`20|DzVR1^v* zv=)V3b{_3Eb745N>e)27TWdXK)4JNp#EBGLb-BTuwnnGu+3{Ch_FUVp>e=|?bHDHN z>wVwkeeaW0x5rku$2P@6UGw-f;i+rQrGs!go1)4FGl!So7%{Ic=zJL ze2p~Mb#8eafZ1hSNg01O{E%^s##+Xor1Vvv!@I7q)e`~Iq}dfqj8PQ&j6xC8kqRf= zlNPP{2OM>!u1y12F0Eg;#F!&?`LtECU02r?kA?G6&W?%DEj8|l4(po6VARVDG8_yN zG8pvCV8GZW!)>X1M+9_AgFBYMds2=QVTCm4bV7#IEIZ)G(m6R9Vx-X4WEdsQrDu@T zNY8&uC+K-i65Eo&?MiRU3x@@+)<5107Z<$5pv%>&`ooQxQ)x)cPF8jUYz_wzZDXJe zzQ&znpcwwDSjNII4t2`tSg6f|5~X!BtOjG|D-2R%{6d2=rV$b$=zF_lK7$73^(_!! zusq_+*8J;RKoTCy9gQIUP~WhS(Hcj#L5D%q#tll56QadO=X&68Z3l<$yPT^Xa1@|j z*}og=LDbf5z|=jo{dU~F2Y&OwQ=-h>3yBiQ%G+te){$@-!(J64K*dx|`msQhQ@Bx+ z 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 diff --git a/arm9/source/emucore/AY38900.cpp b/arm9/source/emucore/AY38900.cpp index 245b3df..3221e6c 100644 --- a/arm9/source/emucore/AY38900.cpp +++ b/arm9/source/emucore/AY38900.cpp @@ -1253,12 +1253,11 @@ ITCM_CODE BOOL AY38900::mobsCollide(int mobNum0, int mobNum1) { if (((mobBuffers[mobNum0][offsetYr0 + y] << offsetXr0) & (mobBuffers[mobNum1][offsetYr1 + y] << offsetXr1)) != 0) { - // --------------------------------------------------------------------------------------------------------- + // ------------------------------------------------------------------------------------------------- // Make sure the vertical area of this overlap is visible on screen ... otherwise no collision - // Since we've already determined a collision, we only need to check one of the MOB rectangles to see - // if it is off-screen as the other one would be likewise... In theory, we should check outside bottom too. - // --------------------------------------------------------------------------------------------------------- - if ((r0->y + ((offsetYr0/2) + (y/2) + verticalOffset)) >= 0) return TRUE; + // In theory, we should check outside the bottom of screen too but we're keeping in simple and fast. + // ------------------------------------------------------------------------------------------------- + if ((startingY + (y/2) + verticalOffset) >= 0) return TRUE; } }