From 8b5c5ce2547b8150afb52e1b686d294f0c4df535 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Tue, 10 Oct 2023 02:08:36 -0500 Subject: [PATCH] ROM Fixes - Fix standing item dupe respawns - Fix Hera boss room falling fade out --- Rom.py | 2 +- asm/owrando.asm | 16 ---------------- data/base2current.bps | Bin 107671 -> 107686 bytes 3 files changed, 1 insertion(+), 17 deletions(-) diff --git a/Rom.py b/Rom.py index a99e98c7..97edcdce 100644 --- a/Rom.py +++ b/Rom.py @@ -38,7 +38,7 @@ from source.dungeon.RoomList import Room0127 JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '52317b2dd4fb303887f26ecc40a4cae3' +RANDOMIZERBASEHASH = 'de030c9fec5157af4ad1cf1948428210' class JsonRom(object): diff --git a/asm/owrando.asm b/asm/owrando.asm index adc7635e..16c60aee 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -169,11 +169,6 @@ plb : rtl nop #3 + -; follower hooks -;org $8689D9 -;SpritePrep_BombShoppe: -;JML BombShoppe_ConditionalSpawn : NOP - ;Code org $aa8800 OWTransitionDirection: @@ -541,7 +536,6 @@ OWBonkDrops: INX : LDA.w OWBonkPrizeData,X : PHX : PHA ; S = FlagBitmask, X (row + 2) LDX.b $8A : LDA.l OverworldEventDataWRAM,X : AND 1,S : PHA : BNE + ; S = Collected, FlagBitmask, X (row + 2) LDA.b #$1B : STA $12F ; JSL Sound_SetSfx3PanLong ; seems that when you bonk, there is a pending bonk sfx, so we clear that out and replace with reveal secret sfx - ; JSLSpriteSFX_QueueSFX3WithPan + LDA 3,S : TAX : INX : LDA.w OWBonkPrizeData,X PHA : INX : LDA.w OWBonkPrizeData,X : BEQ + @@ -873,7 +867,6 @@ OWNewDestination: ++ lda $84 : !add 1,s : sta $84 : pla : pla .adjustMainAxis - ;LDA $84 : SEC : SBC #$0400 : AND #$0F80 : ASL : XBA : STA $88 ; vram LDA $84 : SEC : SBC #$0400 : AND #$0F00 : ASL : XBA : STA $88 ; vram LDA $84 : SEC : SBC #$0010 : AND #$003E : LSR : STA $86 @@ -936,7 +929,6 @@ OWNewDestination: sep #$30 : lda $04 : and #$3f : !add OWOppSlotOffset,y : asl : sta $700 ; crossed OW shuffle and terrain - ;lda $8a : JSR OWDetermineScreensPaletteSet : STX $04 ldx $05 : ldy $08 : jsr OWWorldTerrainUpdate ldx $8a : lda $05 : sta $8a : stx $05 ; $05 is prev screen id, $8a is dest screen @@ -1161,14 +1153,6 @@ OWEndScrollTransition: RTL } -; BombShoppe_ConditionalSpawn: -; { -; nop -; INC.w $0BA0,X : LDA.b #$B5 ; what we wrote over -; JML SpritePrep_BombShoppe+5 -; nop#20 -; } - ;Data org $aaa000 OWEdgeOffsets: diff --git a/data/base2current.bps b/data/base2current.bps index 3c56274a00f1b9d319f2082083e17de09264ec86..930280e65cf3437d9796b2f5d3dacd74d95a28b7 100644 GIT binary patch delta 6808 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 dP2h)MUVO=KXjJyZ4*V&gI1Bd?${|}+Z(;@%> delta 6668 zcmW+(30xCb6VFQmgge}qNLW$8i$nOSD2j@ThzcI9rD;LMibfQxRY8Q^NYoIPB|O3t zB4!DT7?6fGpT?UCwGwS>s`a9tRIQD+MzK}t!S`tLn>YWRotZap-n`k}!xl$majYid zldC!2#_dn3>rW|eI!Q~@$)*GK(ls{D)-g^*QsZ*>sih3rWXs>DAVJ0+TKbcE`B?to zk7_a~pzJqnq9*>KIa@-#nz(m>wN2MiC)Az!9ze<2Y%4#fB(Zxn(poqM#ECR_xj>R8 zQeh4V6F%HEvK-36T2KO?g84Dy?{OkhL-bW+tBsSf&(5Pqaw9ZqAo2%Jfi-IB*(T0* ziza@0$wgHtgW$*fF`_!iP5D(s%!QTw4Pjlw^WopuG@+~H9?(P&sXssyRfvr!*ANNN zPmmN=_LTcdO{`LIwhT)7se;?qsIl3IvsJBmduU?lDJ&Aa2NpxCAUOV`8ZLrT6E6{K z%VcQc-D7Sgj$C<0L&s;mI9Q}&hPZJ&|SaGF-2xA&jD?6kXsB+8(Kfx!CY2Z1GaoPlqm<~D3 z0HQm0I37;L2KY#{4$OiX&fCO8FS*ox3h!5FDW8%s$_4O>bCFk71($|2#G>Jxi>qkj zF8sh{sz?SoDb7+1Y;YlBCaCc}o6W6*COE`CRTEnwXN#>>n5z-Liig!Q)LecoO{CrB zj?zRaeC878RZ`7OVU@)5s?$+%^6GkmgcDrzfD5c~9q${1r<9wmc~wj!9k^T7*-I1q z;8oW--rjhkj6G`NFI+m)1-ORp!brFIARcaZ`(#|hbIx`|O=$5xK2j42OsnlcQ^+A! zdIJYzE7_wV{OVYntq_;}cQx*k1wwW3E?etz>WATt1Pai91#{*Q6lIv|;(0 zm6SpHjf%7B9i(yiJklTqD|K=JOxQCJ@P|7Ub@OI>>x#vn^ z)xl=3_mv5x(S32XFWE@^srxU^14<&4)$+o%x75;9mb0Be6Y}>K%4tFl)4bmUZcyhP z6lJaDY-cpH#ZRBwa79unN2ug&`>CvwJ<9DYK3X*4_9J(KCiL)u_sr3wo45qIn)n+# z8?KC-EIw^&sjP;x?ZmY^z;afcUQ?>iGCnSb1AZ~Vg;iV%MUl9wCY@k&zcz1D2uVta zkA4Dt==UMWg310pUbP^T1ojRc)wlT^Qxw7i`C|?|r{`e@~9_9D}EV9MB9gFDr$0q&`h?LGbbtrvHt<+SwR0Jl@F`&y&$kVd@bqExgr z6Z@-VfINbRbL2cHl1bIk#570*9s?)gtw5$WqQ}2#F~zXjT*m zfEBamPnv`atWv3NU?mj_q8d)T*sH8~!Dir^Y*cb?3TiLP=QB;xekxY{uNhq@KGKfbUHX^Yev7@&nEQ=wJCn-#yL1bA zIJYS>%Lc2E_~&QHEc_Upg}*P9fJBpL2H=C>X0OEpAcx*r5s{)KW>RLEfhX&0=C_@- zdf0`7_+qe&d{rtlCS;b`9g`T$;0IYF`8%z!DC>V9-86COGbeZYAxF9p-{Mh7xSGaf zTOGl5)0^CMcd)@Ud(#Sm|I2$^$JfFu;bg46f#B`=!s28PAq22vOCS)KzS)uq{1*CO zIXUaTd!Wqd|GLy!!r-wv7mnNd!h76DWR2H{9h7HV;g+LSyUUTUY5cZ45B|FfQ;oa; zfS@nSLmk0nII?05V4=JM;z|8g*F2oFe&vYJYb^1L=~exiD9HvL*DWUYHgb}q$EAYj zylycD-4eZrjM$^&h!>{sy9b5*RTR8*F>DMG_kbgk_JMBkVYX}DKCWL(9NfpNQ*cPZ zjoHf`+l%`vHy4iR4HA4Z$`wxOm4Y~^=}iE8;icXvJP!0O_x4Sws*$c#z@Rjmy2QAX zC7; zj)<3YL}YC%@$d>q@W?KLqB-Iv{P#)<_z2FlhNb#u&`Q4D5zU#&z_gi+64)bA494*n zsgTwgBC6q2pDM-XJv!f2l@P=`k(6Uy(MUNIZaeHp8UW+@x>QO-y>%0ahF(8R5HC-! z)DU@E*0@g_zP<8#99;ZED);;{W>j%NlD0Y#x2F9T4pb`StqA=46?()}KxfgNhgJ{C z>som6>SQ2>e)MD$)s8`O8-XpBNf`( zO5N8Tpq#a}nv7awrJxYa&8<9Xb=7+|un+!Ij5AiEjGRiPtKLcHPg0?w!MZaiZpKJG{bJ`^&C4z614eV2G6ooi#ON(GQ zkj>b{3%OEgHl@8!37IqMbq%c48&x1qRY2B9;tMb1Tv*kpk7;0Yy^QnFPO^S-1Doe% zoR6yNXEw0;UdA+x<~Oh#y^ISmTGGJY@iL~Ps;v6=ar9osg;u7&&O79g&aDTQ%iIcNqCcbUw5kv ztK?`q48}C!@MaQEkFmNOkzBK0Jd%Fvt&1x^HjD6;B~ z35+LU9*GDNO{>tRR5a>!Sj)@!9s-JbBfjr#d>>8NLv7Q=lIpGoc7zXdmQ!YJtO~X? z@rO6;q8LBRT5BMO1z=ck1%7i~;y10JQkPUvsUGVSOpiwu@Uy5&T`K(RdV<5&wfA)d zOt?`60PMN(Czt_G-CQaz^OVC2SoYx8ox>yO8yOXO$WEkvj1R7xHe7 zs6VzZn|OAED;|s*J`#%!n?mU-A2bi9+@6LHRLSipAQ`UdTMRb9FZ;%USo}yRQ(rfkaDcJ!R{PcOCd(*RaS%#^amLnA1{*8ViFDX^C#vk9W)#2V-6HYB|uPyuGngSYT zr&qwW=@s?4w0}4q5ROEfXv(51E1(qy5(V#R&RkE2kkw7Okh;5?zjY0KeD{-#TU>Xn zK1Fya^|O;rXM~0%58`Ndh;jS+J4*d@hn{-%IR`_vP*;m4Eo)L{__utcZ7p2d)O-}S zP-je!oX8bU`ue_>3Y^O}tp`N+!sm>BukvtWax0p!kWw@FnLT!J=dSBD{S{Vf%iIkML6nUydx#*tKz0exA5x*l)%*S+AF-Ej=n2Ca?4iUlcc z71qgUq6=BH_p>A11)?*wYsWCJ_UkIbT+->@wF{=+e*o6O(GMnqG`Rdhewm=Hy*svU z*Hn03CTJi23o(6w>4&4Jw6^u2qNf8XsY_ZpqoiMTh(0$O6h9b^oz!n8d53eSp#7#P z@3^2{c3k&|rX7O<6C)uNW6j8&YZvtrh%iV!&$ok`xMN#Z^B81;rpTTM7f~d zh~MdyVxBeEkSCz6aR$>h`w4f@4=ewT1g-FY|4s=Cja6T;3Nrq+8UtUKN?NZP*HW>} z*yiGi&|zq1_^!3pCxyh{SGj(Paq~c_WyntGd_SpHJg7F7&8yOGn+Mkp&ET(H3tNUF zleUF8lNv$B-mCqRx*dSD;9@0tEy2-ly!3Q?k_ESn)#wA6h&;LXYM1A~?$JXpn0XgV zyS&hBjU!kIMrm@uG~lSwf{^et*OYvoHB?)X-qv;d8rRlUcdo+jaatEvSRG2@aL;IN zg3%yK^ADKC-;sz?0B8oW=n()jKlUk8QLX``Z<(sTJzvk`Rmjj1zxyXu*SY5FT=#XZ z=LUEC26sI2pc20*qC>}IlKz`{y?K`5PGfb21(b#tTX;$Qt}TQyEWOq8XSCQZkQ};= zil%(=gQOkF`CwFv_l{p0g?677OW=Cvo@PqKbZBGdKX08l|9MU1PW1|M(P2xM?gl3w zXR%v_PrS&vmX}rsN&9Uw!SV`&L+CLdOcrL|mN+1Z0L=BRzj;ag`p~>>r#>UCnPrzQ ziQi(KA_3?J#YidyBmJ|&^v4=+ae?d0bDuGMFJ6lU(H&<|wGe245RGvF5wTk`Ue!#K zs=-XD`sBAWZXu8fCGuw_> z1(K=vib)XF`d$#p)H#qc$y7AQ8BCm1;LG%wS}YM($Lu4+I@;{%j9N%!-(huX+S6Dt zz-%I^1&o|t@VYc#yQruNMIp`^O!f=Ss8r|6h*c-F8-o~iSX!SkQacmbopJ2B$jt?e z7rBO4E0|5q^H7Qlm=>(Ln}(+4RG}%Wt5DGxTcf*i+VBddAvdIP0poxMop%AtKnU`4 z1#|t0Vya`xi`lPBnHia7QG@x19Px`?7%FrH6G1T2xnhHf=&~!QEh}*GAa4t$-`O2h z3)>A&jhUX3^*LS*>)+@^7Mm?l1Z*ekY&dfS{YYosrw z@c7zwC2FOgaRyqwnyHE$N9wXxGq)Z4C5No;x&4wBFY5?H9SevOQeW-e8WF;@RO6fY zTMi#R6IhGxxq)Y3HoD{vb_N`Ie55>9(tyV}SzkrqdI_(MGH?d1@&tiy&A)ukmpoWD0r#|*NZ|?Q10VFACkPsw>nKMJ8f(5G znT*yNG(F@?gJ&9=KV5CG3-ZYy^GQ>On~>Q_B1a?^gQCeLzZm}N79Zrz)&>-Nk;mR1 zObPEu3AesAP&98ga@+1jo=<5JEWz;el_&!0~M_5lO$nXw&zn!3YTHF2cVloxH8 zW#oVaYngmNYCxp33u)kypn~BoFRO9|$ZeN13FjjZUl0zapjclJ1SX?&UvM_s_jk_j zcuD-Gg6uVrba;4oEDCaWCf~KWxUA>Z(cW{iSqZOS(j`H$en1~r?EIbij~8DlyNF$v z=WcW&%`P%060O?YY<37ba^8?<*lFF};ybf!diJK(m$wf-n}-DcxOn2s@&4cnh##9= zt$D$Y;2E#M4_|4LEJM7`nP_u*-|era^E$n{{=OgIcUrgdtJ1-zPkVbw+vzS}G$|0o zxUO|mQ&A{w841Urf{Z-@UK7X#DmR zI(RSsv*UkAyZ`j)+K)aC0zv%J2vih=du2G%1%dtibrKXE3>5qlG3pEk6F?Ta7YsJw zT3-+X7JzjKhJaXyrE%)hv(3FB;2hrteU$A@!lj#?NmMlwgm|ydB@H85^p-5ExLaZf z)a?#Mr$z!l|~jK5f#Z*gHXs8+kHf~tmcEsG*h=6K+@;6qO(RgFHOP>GV7(kyREx>!n1 zCW7|swQd5XcA1A#JHtbXYU`(9xsSmCo@XkD|McMy>qHbXx@RzCg3vmK(Yy7EEr*~n*ja>(#LnXJ~X<>oBYBR zKPx+NuhZdSa5GtwDAG2gUz-XXka;F(5$_J7o9sjjYmoq} z5UrbO-k1X1`EHwc)zxJ=u@s4RePmY51|9%E7i#B#XfVxuZVuQj!~slC14$slydw<+ z0N1gFRq8Y{G};qoo9h>VM82?QM6?E7T?k^GKbz}AUU=e_*NL1nK)hh;`u*k^88{|y z|MmZB#_)I;9@;YNaH|G|pu$BU#No5JTDTEaF9Pep7W8%z7|Sn6K@p1q?KX8vtvVfB z%tBi?n9nW-TZ0`!k_<0O&57%QT_{dm*4~np$8#FuVVz~#?dHTy;CpWex6