diff --git a/elder.asm b/elder.asm new file mode 100644 index 0000000..e36d8fc --- /dev/null +++ b/elder.asm @@ -0,0 +1,63 @@ +NewElderCode: +{ +LDA $8A : CMP #$1B : BEQ .newCodeContinue +;Restore Jump we can keep the RTL so JML +JML $05F0CD +.newCodeContinue +PHB : PHK : PLB +LDA.b #$07 : STA $0F50, X ;Palette +JSR Elder_Draw +JSL Sprite_PlayerCantPassThrough +JSR Elder_Code + +PLB +RTL + + + Elder_Draw: + { + + LDA.b #$02 : STA $06 : STZ $07 ;Number of Tiles + + LDA $0DC0, X : ASL #04 + + ADC.b #.animation_states : STA $08 + LDA.b #.animation_states>>8 : ADC.b #$00 : STA $09 + + JSL Sprite_DrawMultiple_player_deferred + JSL Sprite_DrawShadowLong + + RTS + + .animation_states + ;Frame0 + dw 0, -9 : db $C6, $00, $00, $02 + dw 0, 0 : db $C8, $00, $00, $02 + ;Frame1 + dw 0, -8 : db $C6, $00, $00, $02 + dw 0, 0 : db $CA, $40, $00, $02 + } + + Elder_Code: + { + LDA GoalItemRequirement : BEQ .despawn + LDA TurnInGoalItems : BNE + + .despawn + STZ $0DD0, X ; despawn self + RTS + + + + LDA.b #$96 + LDY.b #$01 + + JSL Sprite_ShowSolicitedMessageIfPlayerFacing : BCC .dont_show + LDA !GOAL_COUNTER + CMP GoalItemRequirement : !BLT + + JSL.l ActivateGoal + + + .dont_show + + .done + LDA $1A : LSR #5 : AND.b #$01 : STA $0DC0, X + RTS + } \ No newline at end of file diff --git a/hooks.asm b/hooks.asm index 0d81f63..4ac0437 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2349,3 +2349,88 @@ Dungeon_OpenKeyedObject_bigChest: org $01EC38 ; <- 0EC38 - bank01.asm : 13809 (.smallChest) Dungeon_OpenKeyedObject_smallChest: ;================================================================================ + +;================================================================================ +; Murahdahla (The brother who re-assembles the triforce pieces) +;-------------------------------------------------------------------------------- +org $06C092 ; bank06.asm:1864 (JSL Sprite_ElderLong) [22 CD F0 05] +JSL NewElderCode +;-------------------------------------------------------------------------------- +; Add him to Castle Map post-rain, and post aga1 +;-------------------------------------------------------------------------------- +org $09D0AC +db #$18, #$0F, #$43, #$FF;remove heart from tree adjancent map [LW1] +db #$12, #$19, #$16 ;add sahasrala in castle Y, X, Sprite ID +org $09C937 +db #$B0, #$D0 ;change [LW1] map 01C pointers +org $09D421 +db #$18, #$0F, #$45, #$FF;remove heart from tree adjancent map [LW2] +db #$12, #$19, #$16 ;add sahasrala in castle Y, X, Sprite ID +org $09CA57 +db #$25, #$D4 ;change [LW2] map 01C pointers +;-------------------------------------------------------------------------------- +; Expanded trinexx sheet gfx. +;-------------------------------------------------------------------------------- +org $00CFC0+178 : db #$33 +org $00D09F+178 : db #$90 +org $00D17E+178 : db #$00 +; Use above sheet in Hyrule castle courtyard after rain state. +org $00DB9E ; Hyrule Castle GFX Sprite Sheet 4 on [LW1] +db #$3F +org $00DC0A ; Hyrule Castle GFX Sprite Sheet 4 on [LW2] +db #$3F +;-------------------------------------------------------------------------------- +; Updated evil barrier animation table +;-------------------------------------------------------------------------------- +org $1DF0E1;Evil Barrier new draw code + +dw 0, 0 : db $CC, $00, $00, $02 +dw -29, 3 : db $EA, $00, $00, $00 +dw -29, 11 : db $FA, $00, $00, $00 +dw 37, 3 : db $EA, $40, $00, $00 +dw 37, 11 : db $FA, $40, $00, $00 +dw -24, -2 : db $CE, $00, $00, $02 +dw -8, -2 : db $CE, $00, $00, $02 +dw 8, -2 : db $CE, $40, $00, $02 +dw 24, -2 : db $CE, $40, $00, $02 + +dw 0, 0 : db $EC, $00, $00, $02 +dw -29, 3 : db $EB, $00, $00, $00 +dw -29, 11 : db $FB, $00, $00, $00 +dw 37, 3 : db $EB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +dw 0, 0 : db $EC, $00, $00, $02 +dw 0, 0 : db $EC, $00, $00, $02 +dw 0, 0 : db $EC, $00, $00, $02 +dw 0, 0 : db $EC, $00, $00, $02 + +dw 0, 0 : db $EC, $00, $00, $02 +dw -29, 3 : db $EB, $00, $00, $00 +dw -29, 11 : db $FB, $00, $00, $00 +dw 37, 3 : db $EB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +dw -24, -2 : db $CE, $80, $00, $02 +dw -8, -2 : db $CE, $80, $00, $02 +dw 8, -2 : db $CE, $C0, $00, $02 +dw 24, -2 : db $CE, $C0, $00, $02 + +dw 0, 0 : db $CC, $00, $00, $02 +dw -29, 3 : db $EA, $00, $00, $00 +dw -29, 11 : db $FA, $00, $00, $00 +dw 37, 3 : db $EA, $40, $00, $00 +dw 37, 11 : db $FA, $40, $00, $00 +dw 0, 0 : db $CC, $00, $00, $02 +dw 0, 0 : db $CC, $00, $00, $02 +dw 0, 0 : db $CC, $00, $00, $02 +dw 0, 0 : db $CC, $00, $00, $02 + +dw -29, 3 : db $EB, $00, $00, $00 +dw -29, 11 : db $FB, $00, $00, $00 +dw 37, 3 : db $EB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +dw 37, 11 : db $FB, $40, $00, $00 +;================================================================================ \ No newline at end of file diff --git a/newitems.asm b/newitems.asm index 03ece80..ddf2f62 100755 --- a/newitems.asm +++ b/newitems.asm @@ -31,6 +31,7 @@ ; #$65 - Progressive Bow ; #$6A - Goal Item (Single/Triforce) ; #$6B - Goal Item (Multi/Power Star) +; #$6C - Goal Item (Multi/Triforce Piece) ; #$6D- Server Request ; #$6E - Server Request (Dungeon Drop) ; #$70 - Maps @@ -162,7 +163,10 @@ ProcessEventItems: LDA GoalItemRequirement : BEQ ++ LDA !GOAL_COUNTER : INC : STA !GOAL_COUNTER - CMP GoalItemRequirement : !BLT ++ : JSL.l ActivateGoal : ++ + CMP GoalItemRequirement : !BLT ++ + LDA TurnInGoalItems : BNE ++ + JSL.l ActivateGoal + ++ LDX.b #$01 : BRA .done + @@ -309,7 +313,10 @@ AddReceivedItemExpandedGetItem: .multi_collect LDA GoalItemRequirement : BEQ ++ LDA !GOAL_COUNTER : INC : STA !GOAL_COUNTER - CMP GoalItemRequirement : !BLT ++ : JSL.l ActivateGoal : ++ + CMP GoalItemRequirement : !BLT ++ : + LDA TurnInGoalItems : BNE ++ + JSL.l ActivateGoal + ++ BRL .done + CMP.b #$6D : BNE + ; Server Request JSL ItemGetServiceRequest diff --git a/sheet178.gfx b/sheet178.gfx new file mode 100644 index 0000000..353718b Binary files /dev/null and b/sheet178.gfx differ diff --git a/tables.asm b/tables.asm index 95130ab..9a8f8f1 100644 --- a/tables.asm +++ b/tables.asm @@ -911,8 +911,12 @@ db #$00 ; #$00 = Locked (Default) - #$01 = Restart org $308193 ; PC 0x180193 ServerRequestMode: db #$00 ; #$00 = Off (Default) - #$01 = Synchronous - #$02 = Asychronous +;--------------------------------------------------------------------------------- +org $308194 ; PC 0x180194 +TurnInGoalItems: +db #$01 ; #$00 = Instant win if last goal item collected. $01 must turn in goal items ;-------------------------------------------------------------------------------- -; 0x180194 - 0x1801FF (unused) +; 0x180195 - 0x1801FF (unused) ;================================================================================ org $308200 ; PC 0x180200 - 0x18020F RedClockAmount: