diff --git a/hooks.asm b/hooks.asm index cadaa46..9bf1d6c 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2377,6 +2377,8 @@ MirrorBonk_NormalReturn: org $07A9D1 ; <- 3A9D1 - Bank07.asm:6649 (BRANCH_GAMMA:) MirrorBonk_BranchGamma: JML.l OWMirrorSpriteMove +org $02FBAB +JSL.l OWMirrorSpriteRestore : NOP ;================================================================================ ;================================================================================ diff --git a/inventory.asm b/inventory.asm index f170517..c188de1 100644 --- a/inventory.asm +++ b/inventory.asm @@ -1240,8 +1240,8 @@ RTL ;-------------------------------------------------------------------------------- ; A = item id being collected ItemGetAlternateSFX: -PEA $C567 ; PC to RTS to in bank 08 -CMP #$4A : BNE + +PEA $C567 ; SNES to RTS to in bank 08 +LDA.w $0C5E,X : CMP #$4A : BNE + ; collecting pre-activated flute LDA #$13 : JML $088007 + ; normal itemget sfx @@ -1250,7 +1250,7 @@ LDA #$0F : JML $08800E ; what we wrote over ; A = item id being collected ItemGetOverworldAlternateSFX: CMP.b #$4A : BNE + - LDA.b #$13 : STA.w $012E + JSL Sound_SetSfxPanWithPlayerCoords : ORA.b #$13 : STA.w $012E RTL + ; normal itemget sfx JSL Sound_SetSfxPanWithPlayerCoords : ORA.b #$0F : STA.w $012F ; what we wrote over diff --git a/itemtext_lower.asm b/itemtext_lower.asm index 35b197b..11abd13 100644 --- a/itemtext_lower.asm +++ b/itemtext_lower.asm @@ -1,38 +1,38 @@ org $328000 ; You have found -; the map of +; the Map of Notice_MapOf: db $74, $00, $C2, $00, $3E, $00, $44, $00, $FF, $00, $37, $00, $30, $00, $45, $00, $34, $00, $FF, $00, $35, $00, $3E, $00, $44, $00, $3D, $00, $33 - db $75, $00, $43, $00, $37, $00, $34, $00, $FF, $00, $3C, $00, $30, $00, $3F, $00, $FF, $00, $3E, $00, $35 + db $75, $00, $43, $00, $37, $00, $34, $00, $FF, $00, $B6, $00, $30, $00, $3F, $00, $FF, $00, $3E, $00, $35 dw #$7F7F ; You have found -; the compass of +; the Compass of Notice_CompassOf: db $74, $00, $C2, $00, $3E, $00, $44, $00, $FF, $00, $37, $00, $30, $00, $45, $00, $34, $00, $FF, $00, $35, $00, $3E, $00, $44, $00, $3D, $00, $33 - db $75, $00, $43, $00, $37, $00, $34, $00, $FF, $00, $32, $00, $3E, $00, $3C, $00, $3F, $00, $30, $00, $42, $00, $42, $00, $FF, $00, $3E, $00, $35 + db $75, $00, $43, $00, $37, $00, $34, $00, $FF, $00, $AC, $00, $3E, $00, $3C, $00, $3F, $00, $30, $00, $42, $00, $42, $00, $FF, $00, $3E, $00, $35 dw #$7F7F ; Oh look! it's -; the big key of +; the Big Key of Notice_BigKeyOf: db $74, $00, $B8, $00, $37, $00, $FF, $00, $3B, $00, $3E, $00, $3E, $00, $3A, $00, $C7, $00, $FF, $00, $38, $00, $43, $00, $D8, $00, $42 - db $75, $00, $43, $00, $37, $00, $34, $00, $FF, $00, $31, $00, $38, $00, $36, $00, $FF, $00, $3A, $00, $34, $00, $48, $00, $FF, $00, $3E, $00, $35 + db $75, $00, $43, $00, $37, $00, $34, $00, $FF, $00, $AB, $00, $38, $00, $36, $00, $FF, $00, $B4, $00, $34, $00, $48, $00, $FF, $00, $3E, $00, $35 dw #$7F7F -; this is a -; small key to +; This is a +; Small Key to Notice_SmallKeyOf: db $74, $00, $BD, $00, $37, $00, $38, $00, $42, $00, $FF, $00, $38, $00, $42, $00, $FF, $00, $30 - db $75, $00, $42, $00, $3C, $00, $30, $00, $3B, $00, $3B, $00, $FF, $00, $3A, $00, $34, $00, $48, $00, $FF, $00, $43, $00, $3e + db $75, $00, $BC, $00, $3C, $00, $30, $00, $3B, $00, $3B, $00, $FF, $00, $B4, $00, $34, $00, $48, $00, $FF, $00, $43, $00, $3E dw #$7F7F -; light world +; Light World Notice_LightWorld: db $76, $00, $B5, $00, $38, $00, $36, $00, $37, $00, $43, $00, $FF, $00, $C0, $00, $3E, $00, $41, $00, $3B, $00, $33 dw #$7F7F -; dark world +; Dark World Notice_DarkWorld: db $76, $00, $AD, $00, $30, $00, $41, $00, $3A, $00, $FF, $00, $C0, $00, $3E, $00, $41, $00, $3B, $00, $33 dw #$7F7F @@ -44,12 +44,12 @@ Notice_GTower: ; Turtle Rock Notice_TRock: - db $76, $00, $BD, $00, $44, $00, $41, $00, $43, $00, $3B, $00, $34, $00, $FF, $00, $BB, $00, $3E, $00, $32, $00, $3a + db $76, $00, $BD, $00, $44, $00, $41, $00, $43, $00, $3B, $00, $34, $00, $FF, $00, $BB, $00, $3E, $00, $32, $00, $3A dw #$7F7F ; Thieves Town Notice_Thieves: - db $76, $00, $BD, $00, $37, $00, $38, $00, $34, $00, $45, $00, $34, $00, $42, $00, $FF, $00, $BD, $00, $3E, $00, $46, $00, $3d + db $76, $00, $BD, $00, $37, $00, $38, $00, $34, $00, $45, $00, $34, $00, $42, $00, $FF, $00, $BD, $00, $3E, $00, $46, $00, $3D dw #$7F7F ; Tower of Hera @@ -107,7 +107,7 @@ Notice_Sewers: db $76, $00, $B1, $00, $48, $00, $41, $00, $44, $00, $3B, $00, $34, $00, $FF, $00, $AC, $00, $30, $00, $42, $00, $43, $00, $3B, $00, $34 dw #$7F7F -; This Dungeon +; this dungeon Notice_Self: - db $76, $00, $43, $00, $37, $00, $38, $00, $42, $00, $FF, $00, $33, $00, $44, $00, $3D, $00, $36, $00, $34, $00, $3E, $00, $3d + db $76, $00, $43, $00, $37, $00, $38, $00, $42, $00, $FF, $00, $33, $00, $44, $00, $3D, $00, $36, $00, $34, $00, $3E, $00, $3D dw #$7F7F diff --git a/owrando.asm b/owrando.asm index c192f76..606feac 100644 --- a/owrando.asm +++ b/owrando.asm @@ -46,11 +46,13 @@ jsl OWOldManSpeed ;org $09c957 ; <- 4c957 ;dw #$cb5f ; matches value on Central Bonk Rocks screen +; override world check when spawning mirror portal sprite in Crossed OWR +org $0283dc +jsl.l OWLightWorldOrCrossed + ;(replacing -> LDA $8A : AND.b #$40) org $00d8c4 ; < ? - Bank00.asm:4068 () jsl.l OWWorldCheck -org $0283dc ; < ? - Bank02.asm:816 () -jsl.l OWWorldCheck org $02aa36 ; < ? - Bank02.asm:6559 () jsl.l OWWorldCheck org $02aeca ; < ? - Bank02.asm:7257 () @@ -164,6 +166,27 @@ OWMirrorSpriteMove: lda $1acf : eor #$80 : sta $1acf + lda #$2c : jml.l $07A985 ; what we wrote over } +OWMirrorSpriteRestore: +{ + lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq .return + lda InvertedMode : beq + + lda $7ef3ca : beq .return + bra .restorePortal + + lda $7ef3ca : bne .return + + .restorePortal + lda $1acf : and #$0f : sta $1acf + + .return + rep #$30 : lda.w $04AC ; what we wrote over + rtl +} +OWLightWorldOrCrossed: +{ + lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq + + lda #$00 : rtl + + jsl OWWorldCheck : rtl +} OWFluteCancel: {