Rename house_tag.asm to custom_tag.asm, move MinishTag
This commit is contained in:
130
Dungeons/custom_tag.asm
Normal file
130
Dungeons/custom_tag.asm
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
; =========================================================
|
||||||
|
; Custom Tag
|
||||||
|
; Provide custom room behavior based on room ID
|
||||||
|
|
||||||
|
StoryState = $7C
|
||||||
|
RoomTag_Return = $01CC5A
|
||||||
|
|
||||||
|
org $01CC18 ; override routine 0x39 "Holes(7)"
|
||||||
|
JML CustomTag
|
||||||
|
|
||||||
|
org $01CC10
|
||||||
|
RoomTag_Holes5:
|
||||||
|
JML RoomTag_MinishShutterDoor
|
||||||
|
|
||||||
|
pullpc
|
||||||
|
CustomTag:
|
||||||
|
{
|
||||||
|
PHX
|
||||||
|
|
||||||
|
LDA $7EF3C6 : BNE .game_has_begun
|
||||||
|
JSR HouseTag_Main
|
||||||
|
.game_has_begun
|
||||||
|
PLX
|
||||||
|
JML RoomTag_Return
|
||||||
|
}
|
||||||
|
|
||||||
|
; =========================================================
|
||||||
|
; Room tag to initialize the game without the Uncle sprite.
|
||||||
|
|
||||||
|
HouseTag_Main:
|
||||||
|
{
|
||||||
|
LDA.w StoryState
|
||||||
|
|
||||||
|
JSL $008781
|
||||||
|
|
||||||
|
dw HouseTag_TelepathicPlea
|
||||||
|
dw HouseTag_WakeUpPlayer
|
||||||
|
dw HouseTag_End
|
||||||
|
|
||||||
|
HouseTag_TelepathicPlea:
|
||||||
|
{
|
||||||
|
LDA #$08 : STA $7EE000 ; Set the time to 8:00am
|
||||||
|
LDA.b #$03 : STA.w $012C ; Play the deku tree music
|
||||||
|
|
||||||
|
; -------------------------------
|
||||||
|
; Set Link's coordinates to this specific position.
|
||||||
|
LDA.b #$40 : STA $0FC2
|
||||||
|
LDA.b #$09 : STA $0FC3
|
||||||
|
|
||||||
|
LDA.b #$5A : STA $0FC4
|
||||||
|
LDA.b #$21 : STA $0FC5
|
||||||
|
|
||||||
|
; "Accept our quest, Link!"
|
||||||
|
LDA.b #$1F : LDY.b #$00
|
||||||
|
JSL $05E219 ; Sprite_ShowMessageUnconditional
|
||||||
|
INC.b StoryState
|
||||||
|
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HouseTag_WakeUpPlayer:
|
||||||
|
{
|
||||||
|
; Lighten the screen gradually and then wake Link up partially
|
||||||
|
LDA $1A : AND.b #$03 : BNE .delay
|
||||||
|
LDA $9C : CMP.b #$00 : BEQ .colorTargetReached
|
||||||
|
|
||||||
|
DEC $9C : DEC $9D
|
||||||
|
|
||||||
|
.delay
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.colorTargetReached
|
||||||
|
|
||||||
|
INC $0D80, X
|
||||||
|
INC $037D
|
||||||
|
INC $037C
|
||||||
|
LDA.b #$57 : STA $20
|
||||||
|
LDA.b #$21 : STA $21
|
||||||
|
;LDA.b #$01 : STA $02E4
|
||||||
|
|
||||||
|
STZ $02E4 ; awake from slumber
|
||||||
|
INC.b StoryState
|
||||||
|
|
||||||
|
; Make it so Link's uncle never respawns in the house again.
|
||||||
|
LDA $7EF3C6 : ORA.b #$10 : STA $7EF3C6
|
||||||
|
|
||||||
|
; Set the game mode
|
||||||
|
LDA #$00 : STA $7EF3C5 ; (0 - intro, 1 - pendants, 2 - crystals)
|
||||||
|
LDA #$00 : STA $7EF3CC ; disable telepathic message
|
||||||
|
JSL Sprite_LoadGfxProperties
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HouseTag_End:
|
||||||
|
{
|
||||||
|
LDA $B6 : BNE .hasMetFarore
|
||||||
|
LDA #$00 : STA.w StoryState
|
||||||
|
|
||||||
|
.hasMetFarore
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print "End of house_tag.asm ", pc
|
||||||
|
|
||||||
|
; ========================================================
|
||||||
|
; Room tag to open shutter door when player is minish
|
||||||
|
|
||||||
|
RoomTag_MinishShutterDoor:
|
||||||
|
{
|
||||||
|
LDA.w $02B2 : CMP.b #$05 : BNE .no_minish
|
||||||
|
REP #$30
|
||||||
|
LDX.w #$0000 : CPX.w $0468 : BEQ .exit
|
||||||
|
STZ.w $0468
|
||||||
|
STZ.w $068E : STZ.w $0690
|
||||||
|
|
||||||
|
SEP #$30
|
||||||
|
|
||||||
|
LDA.b #$1B : STA.w $012F
|
||||||
|
LDA.b #$05 : STA.b $11
|
||||||
|
|
||||||
|
.exit
|
||||||
|
SEP #$30
|
||||||
|
.no_minish
|
||||||
|
JML RoomTag_Return
|
||||||
|
}
|
||||||
|
pushpc
|
||||||
|
|
||||||
@@ -39,8 +39,9 @@ print "End of object_handler.asm ", pc
|
|||||||
; Tag: Holes8
|
; Tag: Holes8
|
||||||
incsrc "Dungeons/together_warp_tag.asm"
|
incsrc "Dungeons/together_warp_tag.asm"
|
||||||
|
|
||||||
; Tag: Holes7
|
; Custom Tag: Holes7
|
||||||
incsrc "Dungeons/house_tag.asm"
|
; Minish Tag: Holes5
|
||||||
|
incsrc "Dungeons/custom_tag.asm"
|
||||||
|
|
||||||
; Tag: Holes0
|
; Tag: Holes0
|
||||||
incsrc "Dungeons/floor_puzzle.asm"
|
incsrc "Dungeons/floor_puzzle.asm"
|
||||||
@@ -56,26 +57,6 @@ incsrc "Collision/GlobalCollisionTables.asm"
|
|||||||
|
|
||||||
pullpc ; Bank 0x33
|
pullpc ; Bank 0x33
|
||||||
|
|
||||||
RoomTag_MinishShutterDoor:
|
|
||||||
{
|
|
||||||
LDA.w $02B2 : CMP.b #$05 : BNE .no_minish
|
|
||||||
REP #$30
|
|
||||||
|
|
||||||
LDX.w #$0000 : CPX.w $0468 : BEQ .exit
|
|
||||||
STZ.w $0468
|
|
||||||
STZ.w $068E : STZ.w $0690
|
|
||||||
|
|
||||||
SEP #$30
|
|
||||||
|
|
||||||
LDA.b #$1B : STA.w $012F
|
|
||||||
LDA.b #$05 : STA.b $11
|
|
||||||
|
|
||||||
.exit
|
|
||||||
SEP #$30
|
|
||||||
.no_minish
|
|
||||||
JML $01CC5A ; RoomTag_TriggerHoles return
|
|
||||||
}
|
|
||||||
|
|
||||||
NewWaterOverlayData:
|
NewWaterOverlayData:
|
||||||
; Horizontal
|
; Horizontal
|
||||||
db $1B, $A1, $C9 ; 0x0C9: Flood water (medium) ⇲ | { 06, 28 } | Size: 0D
|
db $1B, $A1, $C9 ; 0x0C9: Flood water (medium) ⇲ | { 06, 28 } | Size: 0D
|
||||||
@@ -94,10 +75,6 @@ print "End of dungeons.asm ", pc
|
|||||||
|
|
||||||
pushpc
|
pushpc
|
||||||
|
|
||||||
org $01CC10
|
|
||||||
RoomTag_Holes5:
|
|
||||||
JML RoomTag_MinishShutterDoor
|
|
||||||
|
|
||||||
; RoomTag_GetHeartForPrize
|
; RoomTag_GetHeartForPrize
|
||||||
; Swap LW/DW check on spawn falling prize
|
; Swap LW/DW check on spawn falling prize
|
||||||
org $01C71B
|
org $01C71B
|
||||||
|
|||||||
@@ -1,111 +0,0 @@
|
|||||||
; =========================================================
|
|
||||||
; Custom Tag
|
|
||||||
; Provide custom room behavior based on room ID
|
|
||||||
|
|
||||||
StoryState = $7C
|
|
||||||
|
|
||||||
org $01CC18 ; override routine 0x39 "Holes(7)"
|
|
||||||
JML CustomTag
|
|
||||||
|
|
||||||
org $01CC5A
|
|
||||||
CustomTag_Return:
|
|
||||||
|
|
||||||
pullpc
|
|
||||||
CustomTag:
|
|
||||||
{
|
|
||||||
PHX
|
|
||||||
|
|
||||||
LDA $7EF3C6 : BNE .game_has_begun
|
|
||||||
JSR HouseTag_Main
|
|
||||||
.game_has_begun
|
|
||||||
PLX
|
|
||||||
JML CustomTag_Return
|
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; Room tag to initialize the game without the Uncle sprite.
|
|
||||||
|
|
||||||
HouseTag_Main:
|
|
||||||
{
|
|
||||||
LDA.w StoryState
|
|
||||||
|
|
||||||
JSL $008781
|
|
||||||
|
|
||||||
dw HouseTag_TelepathicPlea
|
|
||||||
dw HouseTag_WakeUpPlayer
|
|
||||||
dw HouseTag_End
|
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
HouseTag_TelepathicPlea:
|
|
||||||
{
|
|
||||||
LDA #$08 : STA $7EE000 ; Set the time to 8:00am
|
|
||||||
LDA.b #$03 : STA.w $012C ; Play the deku tree music
|
|
||||||
|
|
||||||
; -------------------------------
|
|
||||||
; Set Link's coordinates to this specific position.
|
|
||||||
LDA.b #$40 : STA $0FC2
|
|
||||||
LDA.b #$09 : STA $0FC3
|
|
||||||
|
|
||||||
LDA.b #$5A : STA $0FC4
|
|
||||||
LDA.b #$21 : STA $0FC5
|
|
||||||
|
|
||||||
; "Accept our quest, Link!"
|
|
||||||
LDA.b #$1F : LDY.b #$00
|
|
||||||
JSL $05E219 ; Sprite_ShowMessageUnconditional
|
|
||||||
INC.b StoryState
|
|
||||||
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
HouseTag_WakeUpPlayer:
|
|
||||||
{
|
|
||||||
; Lighten the screen gradually and then wake Link up partially
|
|
||||||
LDA $1A : AND.b #$03 : BNE .delay
|
|
||||||
LDA $9C : CMP.b #$00 : BEQ .colorTargetReached
|
|
||||||
|
|
||||||
DEC $9C : DEC $9D
|
|
||||||
|
|
||||||
.delay
|
|
||||||
RTS
|
|
||||||
|
|
||||||
.colorTargetReached
|
|
||||||
|
|
||||||
INC $0D80, X
|
|
||||||
INC $037D
|
|
||||||
INC $037C
|
|
||||||
LDA.b #$57 : STA $20
|
|
||||||
LDA.b #$21 : STA $21
|
|
||||||
;LDA.b #$01 : STA $02E4
|
|
||||||
|
|
||||||
STZ $02E4 ; awake from slumber
|
|
||||||
INC.b StoryState
|
|
||||||
|
|
||||||
; Make it so Link's uncle never respawns in the house again.
|
|
||||||
LDA $7EF3C6 : ORA.b #$10 : STA $7EF3C6
|
|
||||||
|
|
||||||
; Set the game mode
|
|
||||||
LDA #$00 : STA $7EF3C5 ; (0 - intro, 1 - pendants, 2 - crystals)
|
|
||||||
LDA #$00 : STA $7EF3CC ; disable telepathic message
|
|
||||||
JSL Sprite_LoadGfxProperties
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
HouseTag_End:
|
|
||||||
{
|
|
||||||
LDA $B6 : BNE .hasMetFarore
|
|
||||||
LDA #$00 : STA.w StoryState
|
|
||||||
|
|
||||||
.hasMetFarore
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
print "End of house_tag.asm ", pc
|
|
||||||
|
|
||||||
pushpc
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user