Fix for door overruns
Minor graphical fix for sanc door
This commit is contained in:
@@ -44,6 +44,8 @@ org $8293d1 ; <- 113d1 - Bank02.asm : 3683 (ADD $20 : STA $20 BRANCH_IOTA)
|
||||
jsl StraightStairsFix : nop
|
||||
org $829396 ; <- 11396 - Bank02.asm : 3641 (LDA $01C322, X)
|
||||
jsl StraightStairLayerFix
|
||||
org $82c06d ; <- Bank02.asm : 9874 (LDX $0418, CMP.b #$02)
|
||||
jsl DoorToStraight : nop
|
||||
org $82c092 ; STA $0020, Y : LDX #$00
|
||||
jsl DoorToInroom : nop
|
||||
org $82c0f8 ; CMP $02C034, X
|
||||
@@ -212,9 +214,5 @@ bcs .normal
|
||||
rts
|
||||
.normal
|
||||
|
||||
; fixes an issue with edges -> normal doors (bombable, dashable, keydoor)
|
||||
org $82C06A
|
||||
JSL TransitionCalculateLanding_Fix : NOP #2
|
||||
|
||||
org $82C157
|
||||
JSL AlwaysPushThroughFDoors
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
; defines
|
||||
; Ram usage
|
||||
EdgeToNormalFlag = $7E1200
|
||||
|
||||
HorzEdge:
|
||||
LDA.b #$00 : STA.l EdgeToNormalFlag
|
||||
cpy #$ff : beq +
|
||||
jsr DetectWestEdge : ldy #$02 : bra ++
|
||||
+ jsr DetectEastEdge
|
||||
@@ -18,7 +16,6 @@ HorzEdge:
|
||||
+ clc : rts
|
||||
|
||||
VertEdge:
|
||||
LDA.b #$00 : STA.l EdgeToNormalFlag
|
||||
cpy #$ff : beq +
|
||||
jsr DetectNorthEdge : bra ++
|
||||
+ jsr DetectSouthEdge
|
||||
@@ -62,7 +59,6 @@ LoadEdgeRoomVert:
|
||||
lda $04 : and #$80 : bne .edge
|
||||
lda $04 : sta $01 ; load up flags in $01
|
||||
and #$03 : cmp #$03 : beq .inroom
|
||||
LDA.b #$01 : STA.l EdgeToNormalFlag
|
||||
ldy #$01 : jsr ShiftVariablesMainDir
|
||||
jsr PrepScrollToNormal
|
||||
bra .scroll
|
||||
@@ -302,22 +298,6 @@ DetectEastEdge:
|
||||
ldx #$08
|
||||
.end txa : rts
|
||||
|
||||
|
||||
TransitionCalculateLanding_Fix:
|
||||
LDA.l EdgeToNormalFlag : BEQ +
|
||||
LDX.w $0418 : CPX.b #$01 : BNE +
|
||||
LDA.b $20 : SBC #$08 : STA.b $20
|
||||
+ PHK : PEA.w .jslrtsreturn-1
|
||||
PEA.w $02802C
|
||||
JML CalculateTransitionLanding
|
||||
.jslrtsreturn
|
||||
LDX.w $0418 : CPX.b #$01 : BNE .zero ; the LDX is vanilla and needs to always run
|
||||
LDA.l EdgeToNormalFlag : BEQ +
|
||||
LDA.b $20 : ADC #$08 : STA.b $20
|
||||
.zero LDA.b #$00 : STA.l EdgeToNormalFlag
|
||||
+ JSL DoorToStraight
|
||||
RTL
|
||||
|
||||
AlwaysPushThroughFDoors:
|
||||
PHA : AND.b #$F0 : CMP.b #$F0 : BNE +
|
||||
PLA : RTL
|
||||
|
||||
@@ -133,6 +133,7 @@ AdjustEscapeDoorGraphics:
|
||||
STA.l $7E2000+$102,X
|
||||
ORA.w #$4000 ; horizontally flip
|
||||
STA.l $7E2000+$104,X
|
||||
RTL
|
||||
|
||||
.fix_swamp_entrance
|
||||
LDY.w $0460 ; get door index
|
||||
|
||||
@@ -364,8 +364,7 @@ DoorToStraight:
|
||||
lda $a0 : cmp #$51 : bne .skip
|
||||
lda #$04 : sta $4e
|
||||
.skip pla
|
||||
; the ldx $0418 is now taken care of by TransitionCalculateLanding_Fix
|
||||
.end cmp #$02 ;what we wrote over
|
||||
.end LDX.w $0418 : CMP.b #$02 ; what we wrote over
|
||||
rtl
|
||||
}
|
||||
|
||||
@@ -434,8 +433,8 @@ HandleSpecialDoorLanding: {
|
||||
|
||||
.noDoor
|
||||
PLA
|
||||
CMP #$34 : bne + ; inroom stairs
|
||||
PHA : LDA #$26 : STA $045E : PLA
|
||||
CMP.b #$34 : BNE + ; inroom stairs
|
||||
PHA : LDA.b #$26 : STA.w $045E : PLA
|
||||
+
|
||||
RTL
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user