From 21ebe4e43bd1f3b91bb273407c4c88a875fdd6a3 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Thu, 29 Apr 2021 01:19:31 -0500 Subject: [PATCH] Fix Camera Unlock issue --- Rom.py | 2 +- asm/owrando.asm | 20 +++++++++++++++++++- data/base2current.bps | Bin 136752 -> 136824 bytes 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index 00572619..ec5f72fc 100644 --- a/Rom.py +++ b/Rom.py @@ -27,7 +27,7 @@ from EntranceShuffle import door_addresses, exit_ids JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'e78243509664e63d4cd02047c80db209' +RANDOMIZERBASEHASH = '66ad331187e1874d56331f6cbe5b0d90' class JsonRom(object): diff --git a/asm/owrando.asm b/asm/owrando.asm index a56edf06..030f25d8 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -30,6 +30,11 @@ OWOppSlotOffset: ; Amount to offset OW Slot db 8, -8, 1, -1 ; OW Slot x2 $700 OWOppDirectionOffset: ; Amount to offset coord calc db $10, $f0, $02, $fe +OWCameraRangeIndex: +db 2, 2, 0, 0 ; For OWCameraRange +OWCameraRange: +dw $011E, $0100 ; Length of the range the camera can move on small screens + OWEdgeTransition: { php @@ -186,7 +191,7 @@ OWNewDestination: ldx OWCoordIndex,y : lda $20,x : and #$fe00 : pha : lda $20,x : and #$01ff : pha ;s1 = relative cur, s3 = ow cur lda $06 : and #$fe00 : !sub 3,s : pha ;set coord, s1 = ow diff, s3 = relative cur, s5 = ow cur lda $06 : and #$01ff : !sub 3,s : pha ;s1 = rel diff, s3 = ow diff, s5 = relative cur, s7 = ow cur - lda $06 : sta $20,x ;set coord + lda $06 : sta $20,x : and #$fe00 : sta $06 ;set coord ldx OWBGIndex,y : lda $e2,x : !add 1,s : !add 3,s : sta $e2,x ldx OWCameraIndex,y : lda $618,x : !add 1,s : !add 3,s : sta $618,x ldx OWCameraIndex,y : lda $61a,x : !add 1,s : !add 3,s : sta $61a,x @@ -195,7 +200,20 @@ OWNewDestination: pla : ldx OWBGIndex,y : lda $e0,x : !add 1,s : sta $e0,x pla : pla : pla + ;fix camera unlock + lda $e2,x : !sub $06 : bpl + + pha : lda $06 : sta $e2,x + ldx.w OWCameraIndex,y : lda $0618,x : !sub 1,s : sta $0618,x + lda $061a,x : !sub 1,s : sta $061a,x : pla + bra .adjustOppositeAxis + + lda $06 : ldx.w OWCameraRangeIndex,y : !add.w OWCameraRange,x : sta $06 + ldx.w OWBGIndex,y : !sub $e2,x : bcs .adjustOppositeAxis + pha : lda $06 : sta $e2,x + ldx.w OWCameraIndex,y : lda $0618,x : !add 1,s : sta $0618,x + lda $061a,x : !add 1,s : sta $061a,x : pla + ;opposite coord stuff + .adjustOppositeAxis rep #$30 : lda OWOppDirectionOffset,y : and #$00ff : bit #$0080 : beq + ora #$ff00 ;extend 8-bit negative to 16-bit negative + pha diff --git a/data/base2current.bps b/data/base2current.bps index 094bb81b18d3644ab5afb238de3d2d79784999df..b53e6c20ff2c9b0b9b271f45122d07c5217cd449 100644 GIT binary patch delta 373 zcmV-*0gC>xtO)q52(T{!1W0zbiL)~S-2nk8vk?P#^&$~~2>1d25by&20s;U49svLW z2wJZKfU58YB1WL9fCM5vlcD%30t{%A&G;MveUs|=FBi|Cum)&4(Dr}`XyP#XrHX(D z;xPImJ(Do`F%7DrtAH^&&@#WYzMEK+Zuu7hs*{HKN-_~IBY=fCV3I#;fQ_mcV3?ms zEhB)APy~R*X$Amo7DB4M004ys=;*xw0ELnf%byEIlLGoT3rbuZfPs~dtz@fR93emlcAOQytO&5I2(T{!1Xz}*X|po{-2nk0vk?P#^%?O9_yPYA@B;n_TCW0ts_+IP zKA@_A1R^z)s`x4&d}jxMfdY?^%>}6djTi(9!XQZEAf<{aKp1TR2b*n^^Y||p$DptV zXgbjLfCy;fF#4s6fCu6*`XV)xIr%XqqM@sRF*?vPzqG!aNMehDC6CUH#UhX$o5hR9 zpU27Cq5!xcqLYvLN)iDtBY=fCV3I#;fQ_mcV3?mclk52&0((W13;H)lI$Rup(Ul;+ z2%xp%7-In#V*{1qz7U|j7zUT1iJce*kA#65pMs$p251ThYA9+*kF}ZL7-IpI;ApGd znP_OjFu5F{s~ba;$oeZkOk*B^fe(*@ix+^+;t;CZq5#^$5NP`PNa7H_1faDbkF<#( zz6_TMfQyEK6q|yNhJh5Df{~pX2EGiRo|8F~GW#e5cjQ(cgI@c$Ui$$O8wjD;+nSQa FXV8x~pO63m