Merge remote-tracking branch 'codemann/OWMain' into overworld_kara
This commit is contained in:
@@ -114,8 +114,12 @@ function hexto555(h) = ((((h&$FF)/8)<<10)|(((h>>8&$FF)/8)<<5)|(((h>>16&$FF)/8)<<
|
||||
!MULTIWORLD_SPRITEITEM_PLAYER_ID = "$7EC099"
|
||||
!MULTIWORLD_HUD_TIMER = "$7EC09A"
|
||||
!MULTIWORLD_HUD_DELAY = "#120"
|
||||
!MULTIWORLD_ITEM_ID = "$7EC09B" ; for lua scripts?
|
||||
!Dungeon_ChestData = "$01E96C"
|
||||
|
||||
!FLAG_OW_MIXED = $04
|
||||
!FLAG_OW_CROSSED = $02
|
||||
|
||||
incsrc hooks.asm
|
||||
incsrc treekid.asm
|
||||
incsrc spriteswap.asm
|
||||
|
||||
@@ -582,6 +582,8 @@ dw $00bc, $00a2, $00a3, $00c2, $001a, $0049, $0014, $008c
|
||||
dw $009f, $0066, $005d, $00a8, $00a9, $00aa, $00b9, $0052
|
||||
; HC West Hall, TR Dash Bridge, TR Hub, Pod Arena, GT Petting Zoo, Ice Spike Cross
|
||||
dw $0050, $00c5, $00c6, $0009, $0003, $002a, $007d, $005e
|
||||
; Sewer Drop, Mire Cross, GT Crystal Circles
|
||||
dw $0011, $00b2, $003d
|
||||
dw $ffff
|
||||
|
||||
; dungeon tables
|
||||
|
||||
@@ -216,7 +216,7 @@ RTL
|
||||
AnimatedEntranceFix: ;when an entrance animation tries to start
|
||||
PHA : PHX
|
||||
LDA.l InvertedMode : BEQ + ;If we are in inverted mode
|
||||
LDA.l OWMode+1 : CMP #$01 : BEQ + ;If we are in Mixed OW shuffle mode
|
||||
LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BNE + ;If we are in Mixed OW shuffle mode
|
||||
LDA $8A : AND #$40 : BNE + ;and in the light world
|
||||
PLX : PLA
|
||||
STZ $04C6 ; skip it.
|
||||
|
||||
@@ -61,8 +61,8 @@ FluteBoy:
|
||||
JML.l FluteBoy_Continue
|
||||
;--------------------------------------------------------------------------------
|
||||
FreeDuckCheck:
|
||||
LDA.l OWMode+1 : CMP.b #$01 : BEQ .skipInvertedCheck
|
||||
LDA.l InvertedMode : BEQ .done
|
||||
LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BNE .skipInvertedCheck
|
||||
LDA.l InvertedMode : BEQ .done
|
||||
.skipInvertedCheck
|
||||
|
||||
LDA $7EF34C : CMP.b #$03 : BEQ .done ; flute is already active
|
||||
|
||||
@@ -2486,7 +2486,7 @@ JSL BirdTravel_LoadTargetAreaMusic
|
||||
BRA + : NOP #14 : +
|
||||
;--------------------------------------------------------------------------------
|
||||
org $02B027 ; <- Bank02.asm:7535-7541
|
||||
JSL Overworld_DetermineMusicSFX
|
||||
JSL Overworld_DetermineMusic
|
||||
BRA + : NOP #42 : +
|
||||
;================================================================================
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ HudAdditions:
|
||||
++
|
||||
|
||||
LDX $1B : BNE + ; if outdoors
|
||||
lda.l OWMode : and #$0300 : bne ++ : rts ; Skip if vanilla ow rando
|
||||
lda.l OWMode : and.w #((!FLAG_OW_CROSSED+!FLAG_OW_MIXED)<<8)+$ff : bne ++ : rts ; Skip if vanilla ow rando
|
||||
++ lda $7ef36d : and #$00ff : beq ++
|
||||
lda $7ef3ca : and #$00ff : beq +++
|
||||
lda #$2d60 : bra .owdisplay
|
||||
|
||||
@@ -93,8 +93,8 @@ LDA.l OWTileMapAlt+3 : AND #$0001 : BEQ .notInverted
|
||||
LDA #$0034 : STA $2BE0
|
||||
.notInverted
|
||||
LDA.l OWTileMapAlt+3 : AND #$0002 : BEQ .return
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ;adding convenient WDM portal in OW Shuffle
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ;adding convenient WDM portal in OW Shuffle
|
||||
.return
|
||||
RTS
|
||||
}
|
||||
@@ -969,8 +969,8 @@ LDA.l OWTileMapAlt+$43 : AND #$0001 : BEQ .owshuffle
|
||||
LDA #$0212 : STA $2BE0 ; portal
|
||||
.owshuffle
|
||||
LDA.l OWTileMapAlt+$43 : AND #$0002 : BEQ .return
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ; adding convenient WDM portal in OW Shuffle
|
||||
LDA.l OWMode : AND #$00FF : BEQ .return
|
||||
LDA $2BE0 : STA $38B4 ; adding convenient WDM portal in OW Shuffle
|
||||
.return
|
||||
RTS
|
||||
}
|
||||
|
||||
5
msu.asm
5
msu.asm
@@ -76,7 +76,7 @@
|
||||
;
|
||||
; Additional tracks
|
||||
;
|
||||
; 60 - Light World OW (after ped pull)
|
||||
; 60 - Light World OW (after aga kill)
|
||||
; 61 - Dark World OW (with all crystals)
|
||||
;
|
||||
;=======================================
|
||||
@@ -250,7 +250,8 @@ CheckMusicLoadRequest:
|
||||
BRA .check_fallback-3
|
||||
.lightworld
|
||||
PHA
|
||||
LDA $7EF300 : AND.b #$40 : BEQ +
|
||||
;LDA $7EF300 : AND.b #$40 : BEQ + ; ped pull
|
||||
LDA $7EF3C5 : CMP.b #03 : BNE + ; aga1 killed
|
||||
PLA
|
||||
LDA.b #60 : BRA .check_fallback-3
|
||||
+
|
||||
|
||||
51
music.asm
51
music.asm
@@ -16,7 +16,7 @@ PreOverworld_LoadProperties_ChooseMusic:
|
||||
|
||||
; if we are in the light world go ahead and set chosen selection
|
||||
;LDA $7EF3CA : BEQ .checkInverted+4
|
||||
+ JSL Overworld_DetermineMusicSFX
|
||||
+ JSL Overworld_DetermineMusic
|
||||
|
||||
.lastCheck
|
||||
LDA $0132 : CMP.b #$F2 : BNE +
|
||||
@@ -57,7 +57,8 @@ Overworld_FinishMirrorWarp:
|
||||
|
||||
LDA.b #$80 : STA $9B
|
||||
|
||||
JSL Overworld_DetermineMusicSFX
|
||||
JSL Overworld_DetermineAmbientSFX
|
||||
JSL Overworld_DetermineMusic
|
||||
|
||||
.done
|
||||
STX $012C
|
||||
@@ -74,14 +75,15 @@ Overworld_FinishMirrorWarp:
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
BirdTravel_LoadTargetAreaMusic:
|
||||
JSL Overworld_DetermineMusicSFX
|
||||
JSL Overworld_DetermineAmbientSFX
|
||||
JSL Overworld_DetermineMusic
|
||||
STZ $04C8 ; Clear peg puzzle count
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;X to be set to music track to load
|
||||
;$012D to be set to any ambient SFX for the area
|
||||
Overworld_DetermineMusicSFX:
|
||||
Overworld_DetermineMusic:
|
||||
LDA $7EF3C5 : CMP.b #$02 : !BGE +
|
||||
LDX.b #$03 ; If phase < 2, play the rain music
|
||||
BRA .done
|
||||
@@ -91,7 +93,6 @@ Overworld_DetermineMusicSFX:
|
||||
CMP.b #$47 : BEQ .darkMountain
|
||||
|
||||
LDX.b #$02 ; hyrule field theme
|
||||
LDA.b #$05 : STA $012D
|
||||
|
||||
LDA $7EF3CA : BEQ +
|
||||
LDX.b #$09 ; default dark world theme
|
||||
@@ -113,15 +114,7 @@ Overworld_DetermineMusicSFX:
|
||||
LDX #$0F ; dark woods theme
|
||||
BRA .bunny
|
||||
|
||||
; Misery Mire rain SFX
|
||||
+ CMP.b #$70 : BNE .bunny
|
||||
LDA $7EF2F0 : AND.b #$20 : BNE .bunny
|
||||
LDA.b #$01 : CMP $0131 : BEQ +
|
||||
STA $012D : BRA .bunny
|
||||
+ STZ $012D : BRA .bunny
|
||||
|
||||
.darkMountain
|
||||
LDA.b #$09 : STA $012D ; set storm ambient SFX
|
||||
LDX.b #$0D ; dark mountain theme
|
||||
|
||||
.bunny
|
||||
@@ -134,6 +127,36 @@ Overworld_DetermineMusicSFX:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;$012D to be set to any ambient SFX for the area
|
||||
Overworld_DetermineAmbientSFX:
|
||||
LDA $7EF3C5 : CMP.b #$02 : !BGE +
|
||||
BRA .done ; rain state sfx handled elsewhere
|
||||
|
||||
+ LDA $8A : CMP.b #$43 : BEQ .darkMountain
|
||||
CMP.b #$45 : BEQ .darkMountain
|
||||
CMP.b #$47 : BEQ .darkMountain
|
||||
|
||||
CMP.b #$70 : BEQ .mire
|
||||
|
||||
LDA.b #$05 : BRA .setSfx ; silence
|
||||
|
||||
.mire
|
||||
LDA $7EF2F0 : AND.b #$20 : BNE .done
|
||||
LDA.b #$01 : BRA .setSfx ; Misery Mire rain SFX
|
||||
|
||||
.darkMountain
|
||||
LDA.b #$09 : BRA .setSfx ; set storm ambient SFX
|
||||
|
||||
.setSfx
|
||||
CMP $0131 : BEQ +
|
||||
STA $012D
|
||||
+ STZ $012D
|
||||
|
||||
.done
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;0 = Is Kakariko Overworld
|
||||
;1 = Not Kakariko Overworld
|
||||
|
||||
@@ -468,6 +468,7 @@ AddReceivedItemExpanded:
|
||||
JSR IncrementItemCounters
|
||||
+
|
||||
LDA $02D8 ; Item Value
|
||||
STA !MULTIWORLD_ITEM_ID
|
||||
|
||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
||||
|
||||
@@ -35,11 +35,7 @@ rtl
|
||||
|
||||
OnFileLoadOverride:
|
||||
jsl OnFileLoad ; what I wrote over
|
||||
lda.l DRFlags : and #$80 : beq + ;flag is off
|
||||
lda $7ef086 : ora #$80 : sta $7ef086
|
||||
+ lda.l DRFlags : and #$40 : beq + ;flag is off
|
||||
lda $7ef036 : ora #$80 : sta $7ef036
|
||||
+ lda.l DRFlags : and #$02 : beq +
|
||||
+ lda.l DRFlags : and #$02 : beq + ; Mirror Scroll
|
||||
lda $7ef353 : bne +
|
||||
lda #$01 : sta $7ef353
|
||||
+ rtl
|
||||
|
||||
36
owrando.asm
36
owrando.asm
@@ -338,23 +338,27 @@ OWNewDestination:
|
||||
sep #$30 : lda OWOppSlotOffset,y : !add $04 : asl : and #$7f : sta $700
|
||||
|
||||
; crossed OW shuffle
|
||||
lda.l OWMode+1 : and #$ff : cmp #$02 : bne .return
|
||||
ldx $05 : lda.l OWTileWorldAssoc,x : sta.l $7ef3ca ; change world
|
||||
LDA.l OWMode+1 : AND.b #!FLAG_OW_CROSSED : beq .return
|
||||
ldx $05 : lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return
|
||||
sta.l $7ef3ca ; change world
|
||||
lda #$38 : sta $012f ; play sfx - #$3b is an alternative
|
||||
|
||||
; toggle bunny mode
|
||||
lda $7ef357 : bne .nobunny
|
||||
lda.l InvertedMode : bne .inverted
|
||||
lda $7ef3ca : and.b #$40 : bra +
|
||||
.inverted lda $7ef3ca : and.b #$40 : eor #$40
|
||||
+ cmp #$40 : bne .nobunny
|
||||
; turn into bunny
|
||||
lda $5d : cmp #$17 : beq .return
|
||||
lda #$17 : sta $5d
|
||||
lda #$01 : sta $02e0
|
||||
bra .return
|
||||
.nobunny
|
||||
lda $5d : cmp #$17 : bne .return
|
||||
stz $5d : stz $2e0
|
||||
; toggle bunny mode
|
||||
+ lda $7ef357 : bne .nobunny
|
||||
lda.l InvertedMode : bne .inverted
|
||||
lda $7ef3ca : and.b #$40 : bra +
|
||||
.inverted lda $7ef3ca : and.b #$40 : eor #$40
|
||||
+ cmp #$40 : bne .nobunny
|
||||
; turn into bunny
|
||||
lda $5d : cmp #$04 : beq + ; if swimming, continue
|
||||
lda #$17 : sta $5d
|
||||
+ lda #$01 : sta $02e0 : sta $56
|
||||
bra .return
|
||||
|
||||
.nobunny
|
||||
lda $5d : cmp #$17 : bne + ; retain current state unless bunny
|
||||
stz $5d
|
||||
+ stz $02e0 : stz $56
|
||||
|
||||
.return
|
||||
lda $05 : sta $8a
|
||||
|
||||
136
roomloading.asm
136
roomloading.asm
@@ -15,9 +15,6 @@ LoadRoomHook:
|
||||
dl IcePalaceBombosNE ; 03
|
||||
dl CastleEastEntrance ; 04
|
||||
dl CastleWestEntrance ; 05
|
||||
dl PoDFallingBridge ; 06
|
||||
dl PoDArena ; 07
|
||||
dl MireBKPond ; 08
|
||||
|
||||
NoCallback:
|
||||
RTL
|
||||
@@ -92,138 +89,11 @@ CastleEastEntrance: ; new solution (see Rain Prevention)
|
||||
CastleWestEntrance: ; new solution (see Rain Prevention)
|
||||
RTL
|
||||
|
||||
PoDFallingBridge:
|
||||
LDA.l DRFlags : AND #$10 : BNE + : RTL : +
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e1 ; square peg
|
||||
%writeTileAt(5,7,0,1)
|
||||
%writeTileAt(11,7,0,1)
|
||||
INC ;horizontal rail
|
||||
%writeTileAt(6,7,0,1)
|
||||
%writeTileAt(7,7,0,1)
|
||||
%writeTileAt(8,7,0,1)
|
||||
%writeTileAt(9,7,0,1)
|
||||
%writeTileAt(10,7,0,1)
|
||||
SEP #$20 ; 8 A
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e0 ; corner top left
|
||||
%writeTileAt(5,6,0,1)
|
||||
%writeTileAt(10,6,0,1)
|
||||
LDA.w #$48e0 ; corner top right
|
||||
%writeTileAt(6,6,0,1)
|
||||
%writeTileAt(11,6,0,1)
|
||||
LDA.w #$08f4 ; top mid
|
||||
%writeTileAt(7,6,0,1)
|
||||
%writeTileAt(8,6,0,1)
|
||||
%writeTileAt(9,6,0,1)
|
||||
|
||||
LDA.w #$08f1 ; corner mid left
|
||||
%writeTileAt(5,7,0,1)
|
||||
%writeTileAt(10,7,0,1)
|
||||
LDA.w #$48f1 ; corner mid right
|
||||
%writeTileAt(6,7,0,1)
|
||||
%writeTileAt(11,7,0,1)
|
||||
LDA.w #$08f2 ; mid mid
|
||||
%writeTileAt(7,7,0,1)
|
||||
%writeTileAt(8,7,0,1)
|
||||
%writeTileAt(9,7,0,1)
|
||||
|
||||
LDA.w #$08e4 ; corner lower left
|
||||
%writeTileAt(5,8,0,1)
|
||||
%writeTileAt(10,8,0,1)
|
||||
LDA.w #$48e4 ; corner lower right
|
||||
%writeTileAt(6,8,0,1)
|
||||
%writeTileAt(11,8,0,1)
|
||||
LDA.w #$08e5 ; lower mid
|
||||
%writeTileAt(7,8,0,1)
|
||||
%writeTileAt(8,8,0,1)
|
||||
%writeTileAt(9,8,0,1)
|
||||
SEP #$20 ; 8 A
|
||||
RTL
|
||||
|
||||
;08e0 48e0 08f4 08f4 08e0 48e0
|
||||
;08f1 48f1 08f2 08f2 08f1 48f1
|
||||
;08e4 48e4 08e5 08e5 08e4 48e4
|
||||
;
|
||||
;(54,42) 22,10,1,1 42 85 2720 2742 156C
|
||||
;(54,43) 22,11,1,1 43 87 2784 2806 15EC
|
||||
;(54,44) 22,12,1,1 44 89 2848 2870 166C
|
||||
PoDArena:
|
||||
LDA.l DRFlags : AND #$10 : BNE + : RTL : +
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e0 ; corner top left
|
||||
%writeTileAt(22,10,1,1)
|
||||
%writeTileAt(25,10,1,1)
|
||||
LDA.w #$48e0 ; corner top right
|
||||
%writeTileAt(23,10,1,1)
|
||||
%writeTileAt(26,10,1,1)
|
||||
LDA.w #$08f4 ; top mid
|
||||
%writeTileAt(24,10,1,1)
|
||||
|
||||
LDA.w #$08f1 ; corner mid left
|
||||
%writeTileAt(22,11,1,1)
|
||||
%writeTileAt(25,11,1,1)
|
||||
LDA.w #$48f1 ; corner mid right
|
||||
%writeTileAt(23,11,1,1)
|
||||
%writeTileAt(26,11,1,1)
|
||||
LDA.w #$08f2 ; mid mid
|
||||
%writeTileAt(24,11,1,1)
|
||||
|
||||
LDA.w #$08e4 ; corner lower left
|
||||
%writeTileAt(22,12,1,1)
|
||||
%writeTileAt(25,12,1,1)
|
||||
LDA.w #$48e4 ; corner lower right
|
||||
%writeTileAt(23,12,1,1)
|
||||
%writeTileAt(26,12,1,1)
|
||||
LDA.w #$08e5 ; lower mid
|
||||
%writeTileAt(24,12,1,1)
|
||||
SEP #$20 ; 8 A
|
||||
RTL
|
||||
|
||||
MireBKPond:
|
||||
LDA.l DRFlags : AND #$10 : BNE + : RTL : +
|
||||
|
||||
REP #$20 ; 16 A
|
||||
LDA.w #$08e0 ; corner top left
|
||||
%writeTileAt(13,11,1,1)
|
||||
%writeTileAt(17,11,1,1)
|
||||
LDA.w #$48e0 ; corner top right
|
||||
%writeTileAt(14,11,1,1)
|
||||
%writeTileAt(18,11,1,1)
|
||||
LDA.w #$08f4 ; top mid
|
||||
%writeTileAt(15,11,1,1)
|
||||
%writeTileAt(16,11,1,1)
|
||||
|
||||
LDA.w #$08f1 ; corner mid left
|
||||
%writeTileAt(13,12,1,1)
|
||||
%writeTileAt(17,12,1,1)
|
||||
LDA.w #$48f1 ; corner mid right
|
||||
%writeTileAt(14,12,1,1)
|
||||
%writeTileAt(18,12,1,1)
|
||||
LDA.w #$08f2 ; mid mid
|
||||
%writeTileAt(15,12,1,1)
|
||||
%writeTileAt(16,12,1,1)
|
||||
|
||||
LDA.w #$08e4 ; corner lower left
|
||||
%writeTileAt(13,13,1,1)
|
||||
%writeTileAt(17,13,1,1)
|
||||
LDA.w #$48e4 ; corner lower right
|
||||
%writeTileAt(14,13,1,1)
|
||||
%writeTileAt(18,13,1,1)
|
||||
LDA.w #$08e5 ; lower mid
|
||||
%writeTileAt(15,13,1,1)
|
||||
%writeTileAt(16,13,1,1)
|
||||
SEP #$20 ; 8 A
|
||||
RTL
|
||||
|
||||
RoomCallbackTable:
|
||||
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00 ; 00x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $06, $00, $00, $00, $00, $00 ; 01x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $07, $00, $00, $00, $00, $00 ; 02x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 01x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 02x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 03x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 04x
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 05x
|
||||
@@ -234,7 +104,7 @@ RoomCallbackTable:
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Ax
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Bx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Cx
|
||||
db $00, $08, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $00 ; 0Dx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $00 ; 0Dx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Ex
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Fx
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Fx
|
||||
|
||||
Reference in New Issue
Block a user