From 84b8301fb4b5c60164247605dacf2f33807944e0 Mon Sep 17 00:00:00 2001 From: Karkat Date: Thu, 22 Feb 2018 00:12:45 -0500 Subject: [PATCH] let's dev 2/22/18 fixed problem with arrows sometimes not shooting updates for infinite ammo switches finished arrows finished bombs started magic --- LTTP_RND_GeneralBugfixes.asm | 2 +- c2e3e.bin | Bin 2048 -> 2048 bytes c2e3e.gfx | Bin 1492 -> 1558 bytes hooks.asm | 27 ++++++++++++- pendantcrystalhud.asm | 73 +++++++++++++++++++++++++++++++++++ retro.asm | 37 +++++++++++++++++- 6 files changed, 134 insertions(+), 5 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index d1eb1bc..b33e6c5 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF db #$00 ; expand file to 2mb org $1FFFF8 ; <- FFFF8 timestamp rom -db #$20, #$18, #$02, #$17 ; year/month/day +db #$20, #$18, #$02, #$22 ; year/month/day ;================================================================================ diff --git a/c2e3e.bin b/c2e3e.bin index 363b5174c19ff050d4ba8a8d0d88e17a4dabd308..4805fd95fc9857308a428b3cf9a454901bcbd750 100644 GIT binary patch delta 45 zcmZn=Xb{*Sz^uT)z#t=GCt$3Qu9VMOTTubzTNu?jookuna);x`hYy<#m@lvZ0Q~6= A6#xJL delta 32 gcmZn=Xb{*Sz|3#V0EGX65JFF`XA<3P!hD7W0FxmJYXATM diff --git a/c2e3e.gfx b/c2e3e.gfx index cd0a010815349f7f3c58c9f21859d71d03add167..f18b781a08a4453901871888f3eb4a6ad739ffe3 100644 GIT binary patch delta 618 zcmWNOOGs2v0EW*w_grVlnMMjKQ5l;TrHSGMy0N0$B&~+1=m8R~A|fgZGAPHo=X#Tp zQIAQGWiDzHw6QitG$ClVXdsmqCQL|7i_)vtXdXI$clm#OtM8vJANKS=QiMSU9=FwK zpcK%eM2o_-NC4!AhCdV^HH?M^?3lkDS&E4eHceq1HnK=V4}qDm^#Q6t9;cy7F-DCM z$|oT4uE(H3=yxg69V(NwiihCN%2)K*mLQB(YW|{w79ogXU4^V*HK#Om2jIDu(BVp$ zD2IaJ&=QG2$)Ny!58Dl`03RXL#WwS5cWcF!+Ds}HAfD(`q|1#z_fwv{{42kwFUjd*(^N{~_*QPTpAFnynOX z8BG<%VJ?=KN^x$~_G|E&FJ-r~t0@dJC3?B>fQCWubj3i#s$x!aMnLY*a`BmqHpXf7QLjQ3!g#Ju{dq&6mEdFE~B(0mL8Le8?VNkw>h4uO(Y} z?SXje8A-)K>LEVy29VOdi%MArCj3Y^wQ{gGvW4{8X#T1F#7HRa{n@kQ>6^)Xqkc=R zgYd~Duiq{Pnb$6+i^-yI!&Q<%Ukq<3WSZBg8eTi^S$tcSzE~E4y93iWfdzD!Nv7qY z*$~&M+^NkKIoJ3 Hx!U+2TD3Dn delta 507 zcmWlTO-NKx9L4|lzWZjZ8J!?1{9?kHkx<0Ks8zI>+aN(@M38}C>k5Mw?PjF+)t5Y{ z3lbFArXbRlxhiQwj3Pk@cM?rZ@miEK@{*{h@ATT71Lwy%oT=n$V)B6|$8zO|$J!+r zK@LzJ1NH`Wfxbxmq&E`Nneyg|jzM^|XkTSbbMWC|1x6O!fp3->SHmoOL}Jc*#Ka;L zUfLFOij0i^*$gvoGUF>F-+s;#QFRSZyoE?TD`ass&(5W8uQTU6yWb!}0b4?~@y>k` z<1N7Tl7V>1K>`{wQ$?Otr+GT&Hb{+g&`Vz3+r1Sjb^f!MUK=d(JD?hCX?#2*xxZ!c{~Ji7epT@ zj4sBiaF9mH8q;>DS<%K_p+1P-J=P&D8LR|uklK!i3YaKho>a5mDI{KS)vxbuH*2vR znnv&*=kW<6j?43ZkoO@ys8PMAOX7F}HEagq#*g4FTrb`XBEdW2QxYF6({ R6mXHAc7rC&CFSY;{{Wjo^6dZs diff --git a/hooks.asm b/hooks.asm index d71de68..bda75f1 100644 --- a/hooks.asm +++ b/hooks.asm @@ -44,6 +44,29 @@ org $02E21B ; <- 1621B - Bank02.asm : 11211 (STA $040C) JSL.l OnDungeonExit : NOP #2 ;-------------------------------------------------------------------------------- +;================================================================================ +; Infinite Bombs / Arrows / Magic +;-------------------------------------------------------------------------------- +org $08A17A ; <- 4217A - ancilla_arrow.asm : 42 (AND.b #$04 : BEQ .dont_spawn_sparkle) +CMP.b #$03 : db #$90 ; !BLT +org $08A40E ; <- 4240E - ancilla_arrow.asm : 331 (AND.b #$04 : BNE .use_silver_palette) +CMP.b #$03 : db #$B0 ; !BGE +;-------------------------------------------------------------------------------- +org $098127 ; <- 48127 - ancilla_init.asm : 202 (LDA $7EF343 : BNE .player_has_bombs) +JSL.l LoadBombCount +org $098133 ; <- 48133 - ancilla_init.asm : 211 (STA $7EF343 : BNE .bombs_left_over) +JSL.l StoreBombCount +;-------------------------------------------------------------------------------- +org $0DE4BF ; <- 6E4BF - equipment.asm : 1249 (LDA $7EF343 : AND.w #$00FF : BEQ .gotNoBombs) +JSL.l LoadBombCount16 +;-------------------------------------------------------------------------------- +org $0DDEB3 ; <- 6DEB3 - equipment.asm : 328 (LDA $7EF33F, X) +JSL.l IsItemAvailable +;-------------------------------------------------------------------------------- +org $0DFC5B ; <- 6FC5B - headsup_display.asm : 839 (LDA .mp_tilemap+0, X : STA $7EC746) +JSL.l DrawMagicMeter : JMP.w + : NOP #21 : + +;-------------------------------------------------------------------------------- + ;================================================================================ ; Inverted Mode ;-------------------------------------------------------------------------------- @@ -978,10 +1001,10 @@ JSL.l OnDrawHud BRA $27 org $0DFCB8 ; <- 6FCB8 -STA $7EC75A ; nudge bomb 10s digit right +JSL.l DrawBombTens ; nudge bomb 10s digit right org $0DFCC4 ; <- 6FCC4 -STA $7EC75C ; nudge bomb 1s digit right +JSL.l DrawBombOnes ; nudge bomb 1s digit right org $0DFCDC ; <- 6FCDC JSL.l DrawArrowTens diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index df43a1b..894c7bb 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -241,8 +241,13 @@ RTL ;$388 = Turtle Rock ;$389 = Ganon's Tower ;-------------------------------------------------------------------------------- +!INFINITE_ARROWS = "$7F50C8" DrawArrowTens: PHA : LDA.l ArrowMode : AND.w #$00FF : BNE + + LDA !INFINITE_ARROWS : AND.w #$00FF : BEQ .finite + .infinite + PLA : LDA.w #$2431 : STA $7EC760 : RTL + .finite PLA : STA $7EC760 : RTL + PLA @@ -250,11 +255,39 @@ RTL ;-------------------------------------------------------------------------------- DrawArrowOnes: PHA : LDA.l ArrowMode : AND.w #$00FF : BNE + + LDA !INFINITE_ARROWS : AND.w #$00FF : BEQ .finite + .infinite + PLA : LDA.w #$2432 : STA $7EC762 : RTL + .finite PLA : STA $7EC762 : RTL + PLA RTL ;-------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------- +!INFINITE_BOMBS = "$7F50C9" +DrawBombTens: + PHA ;;; LDA.l ArrowMode : AND.w #$00FF : BNE + + LDA !INFINITE_BOMBS : AND.w #$00FF : BEQ .finite + .infinite + PLA : LDA.w #$2431 : STA $7EC75A : RTL + .finite + PLA : STA $7EC75A : RTL + + + PLA +RTL +;-------------------------------------------------------------------------------- +DrawBombOnes: + PHA ;;; LDA.l ArrowMode : AND.w #$00FF : BNE + + LDA !INFINITE_BOMBS : AND.w #$00FF : BEQ .finite + .infinite + PLA : LDA.w #$2432 : STA $7EC75C : RTL + .finite + PLA : STA $7EC75C : RTL + + + PLA +RTL +;-------------------------------------------------------------------------------- DrawBootsInMenuLocation: LDA.l HUDDungeonItems : BNE + LDA.w #$1608 : STA $00 @@ -263,6 +296,46 @@ DrawBootsInMenuLocation: LDA.w #$1588 : STA $00 RTL ;-------------------------------------------------------------------------------- +!INFINITE_MAGIC = "$7F50CA" +!DrawMagicMeter_mp_tilemap = "$0DFE0F" +DrawMagicMeter: + LDA !INFINITE_MAGIC : BNE + : BRL .green : + + LDX.w #$0080 ; load full magic meter graphics + LDA $1A : AND.w #$000C : LSR #2 + BEQ .red + CMP.w #0001 : BEQ .yellow + CMP.w #0002 : BNE + : BRL .green : + + .blue + LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EFFF : STA $7EC746 + LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EFFF : STA $7EC786 + LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EFFF : STA $7EC7C6 + LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EFFF : STA $7EC806 + RTL + .red + LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E7FF : STA $7EC746 + LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E7FF : STA $7EC786 + LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E7FF : STA $7EC7C6 + LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E7FF : STA $7EC806 + RTL + .yellow + LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EBFF : STA $7EC746 + LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EBFF : STA $7EC786 + LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EBFF : STA $7EC7C6 + LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EBFF : STA $7EC806 + RTL + .orange + LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E3FF : STA $7EC746 + LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E3FF : STA $7EC786 + LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E3FF : STA $7EC7C6 + LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E3FF : STA $7EC806 + RTL + .green + LDA !DrawMagicMeter_mp_tilemap+0, X : STA $7EC746 + LDA !DrawMagicMeter_mp_tilemap+2, X : STA $7EC786 + LDA !DrawMagicMeter_mp_tilemap+4, X : STA $7EC7C6 + LDA !DrawMagicMeter_mp_tilemap+6, X : STA $7EC806 +RTL +;-------------------------------------------------------------------------------- DrawGlovesInMenuLocation: LDA.l HUDDungeonItems : BNE + LDA.w #$1610 : STA $00 diff --git a/retro.asm b/retro.asm index 96ccb67..b54d9ef 100644 --- a/retro.asm +++ b/retro.asm @@ -1,5 +1,38 @@ +!INFINITE_BOMBS = "$7F50C9" +IsItemAvailable: + LDA !INFINITE_BOMBS : BEQ .finite + .infinite + CPX.b #$04 : BNE .finite + LDA.b #$01 : RTL + .finite + LDA $7EF33F, X +RTL +LoadBombCount: + LDA !INFINITE_BOMBS : BNE .infinite + .finite + LDA $7EF343 + .infinite +RTL +LoadBombCount16: + LDA !INFINITE_BOMBS : AND.w #$00FF : BNE .infinite + .finite + LDA $7EF343 + .infinite +RTL +StoreBombCount: + PHA : LDA !INFINITE_BOMBS : BEQ .finite + .infinite + PLA : LDA.b #$01 : RTL + .finite + PLA : STA $7EF343 +RTL + +!INFINITE_ARROWS = "$7F50C8" DecrementArrows: - LDA.l ArrowMode : BNE .rupees + LDA !INFINITE_ARROWS : BNE .infinite + LDA.l ArrowMode : BNE .rupees : BRA .normal + .infinite + LDA.b #$01 : RTL .normal LDA $7EF377 : BEQ .done DEC : STA $7EF377 : INC @@ -14,7 +47,7 @@ DecrementArrows: PHA : LDA $7EF340 : DEC : AND #$0002 : TAX : PLA !SUB.l ArrowModeWoodArrowCost, X ; CMP.w #$0000 BMI .not_enough_money - STA $7EF360 : INC : BRA + + STA $7EF360 : LDA.w #$0001 : BRA + .not_enough_money LDA.w #$0000 +