Merge branch 'main' into kara

This commit is contained in:
2021-07-07 10:27:58 -07:00
13 changed files with 225 additions and 54 deletions

View File

@@ -55,7 +55,7 @@ db #$20, #$19, #$08, #$31 ; year/month/day
!SRAM_SINK = "$7EF41E" ; <- change this (conflicts with Programmable item 3) !SRAM_SINK = "$7EF41E" ; <- change this (conflicts with Programmable item 3)
;$7EF418 - Goal Item Counter ;$7EF418 - Goal Item Counter
;$7EF419 - Service Sequence ;$7EF419 - Service Sequence
;$7EF420 - $7EF468 - Stat Tracking Bank 1 (overlaps with RNG Item Flags) ;$7EF420 - $7EF46D - Stat Tracking Bank 1 (overlaps with RNG Item Flags)
;$7EF450 - $7EF45F - RNG Item (Single) Flags ;$7EF450 - $7EF45F - RNG Item (Single) Flags
;$7EF4A0 - $7EF4A7 - Service Request Block ;$7EF4A0 - $7EF4A7 - Service Request Block
!PROGRESSIVE_BOMBS = "$7EF4A8" !PROGRESSIVE_BOMBS = "$7EF4A8"
@@ -516,6 +516,9 @@ Sprite_ShowMessageUnconditional:
org $05EC96 org $05EC96
Sprite_ZeldaLong: Sprite_ZeldaLong:
org $0680FA
Player_ApplyRumbleToSprites:
org $0683E6 org $0683E6
Utility_CheckIfHitBoxesOverlapLong: Utility_CheckIfHitBoxesOverlapLong:

View File

@@ -3,13 +3,75 @@
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!BOOTS_MODIFIER = "$7F50CE" !BOOTS_MODIFIER = "$7F50CE"
ModifyBoots: ModifyBoots:
PHA PHA
LDA !BOOTS_MODIFIER : CMP.b #$01 : BNE + LDA !BOOTS_MODIFIER : CMP.b #$01 : BNE +
PLA : AND $7EF379 : ORA.b #$04 : RTL ; yes boots PLA : AND $7EF379 : ORA.b #$04 : RTL ; yes boots
+ : CMP #$02 : BNE + + : CMP.b #$02 : BNE +
PLA : AND $7EF379 : AND.b #$FB : RTL ; no boots PLA : AND $7EF379 : AND.b #$FB : RTL ; no boots
+ + : LDA FakeBoots : CMP.b #$01 : BNE +
PLA LDA $5B : BEQ ++ : LDA $59 : BNE + ; hover check
AND $7EF379 ; regular boots ++ : PLA : AND $7EF379 : ORA.b #$04 : RTL ; yes boots, not hovering
+
PLA
AND $7EF379 ; regular boots
RTL
;--------------------------------------------------------------------------------
AddBonkTremors:
PHA
LDA $46 : BNE + ; Check for incapacitated Link
JSL.l IncrementBonkCounter
+
LDA !BOOTS_MODIFIER : CMP.b #$01 : BEQ +
LDA $7EF355 : BNE + ; Check for Boots
PLA : RTL
+
PLA
JSL.l AddDashTremor : JSL.l Player_ApplyRumbleToSprites ; things we wrote over
RTL
;--------------------------------------------------------------------------------
BonkBreakableWall:
PHX : PHP
SEP #$30 ; set 8-bit accumulator and index registers
LDA !BOOTS_MODIFIER : CMP.b #$01 : BEQ +
LDA $7EF355 : BNE + ; Check for Boots
PLP : PLX : LDA.w #$0000 : RTL
+
PLP : PLX
LDA $0372 : AND.w #$00FF ; things we wrote over
RTL
;--------------------------------------------------------------------------------
BonkRockPile:
LDA !BOOTS_MODIFIER : CMP.b #$01 : BEQ +
LDA $7EF355 : BNE + ; Check for Boots
LDA.b #$00 : RTL
+
LDA $02EF : AND.b #$70 ; things we wrote over
RTL
;--------------------------------------------------------------------------------
GravestoneHook:
LDA !BOOTS_MODIFIER : CMP.b #$01 : BEQ +
LDA $7EF355 : BEQ .done ; Check for Boots
+
LDA $0372 : BEQ .done ; things we wrote over
JML.l moveGravestone
.done
JML.l GravestoneHook_continue
;--------------------------------------------------------------------------------
JumpDownLedge:
LDA !BOOTS_MODIFIER : CMP.b #$01 : BEQ +
LDA $7EF355 : BNE + ; Check for Boots
; Disarm Waterwalk
LDA $5B : CMP.b #$01 : BNE +
STZ $5B
+
LDA $1B : BNE .done : LDA.b #$02 : STA $EE ; things we wrote over
.done
RTL
;--------------------------------------------------------------------------------
BonkRecoil:
LDA !BOOTS_MODIFIER : CMP.b #$01 : BEQ +
LDA $7EF355 : BNE + ; Check for Boots
LDA.b #$16 : STA $29 : RTL
+
LDA.b #$24 : STA $29 ; things we wrote over
RTL RTL
;--------------------------------------------------------------------------------

View File

@@ -17,7 +17,7 @@ DrawDungeonCompassCounts:
LDX $040C : CPX.b #$FF : BEQ .done ; Skip if not in a dungeon LDX $040C : CPX.b #$FF : BEQ .done ; Skip if not in a dungeon
CMP.w #$0002 : BEQ ++ ; if CompassMode==2, we don't check for the compass CMP.w #$0002 : BEQ ++ ; if CompassMode==2, we don't check for the compass
LDA $7EF364 : AND.l .item_masks, X ; Load compass values to A, mask with dungeon item masks LDA $7EF364 : AND.l DungeonItemMasks, X ; Load compass values to A, mask with dungeon item masks
BEQ .done ; skip if we don't have compass BEQ .done ; skip if we don't have compass
++ ++
@@ -35,7 +35,7 @@ DrawDungeonCompassCounts:
.done .done
RTL RTL
.item_masks ; these are dungeon correlations to $7EF364 - $7EF369 so it knows where to store compasses, etc DungeonItemMasks: ; these are dungeon correlations to $7EF364 - $7EF369 so it knows where to store compasses, etc
dw $8000, $4000, $2000, $1000, $0800, $0400, $0200, $0100 dw $8000, $4000, $2000, $1000, $0800, $0400, $0200, $0100
dw $0080, $0040, $0020, $0010, $0008, $0004 dw $0080, $0040, $0020, $0010, $0008, $0004

View File

@@ -107,15 +107,14 @@ DoDungeonMapBossIcon:
LDX.b #$02 LDX.b #$02
STX.w $420B STX.w $420B
STA.w $4315
LDA.w #$A260>>1 LDA.w #$A260>>1
STA.w $2116 STA.w $2116
LDA.w #$0040
STA.w $4315
STX.w $420B STX.w $420B
; done ; done
SEP #$32 SEP #$30
RTL RTL
.boss_id .boss_id

View File

@@ -33,7 +33,7 @@ CalculateByrnaUsage:
PLX PLX
++ ++
LDA $7EF36E ; thing we wrote over LDA $7EF36E ; thing we wrote over
RTL JML IncrementMagicUseCounterByrna
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
CalculateCapeUsage: CalculateCapeUsage:
LDA $1B : BEQ ++ LDA $1B : BEQ ++
@@ -51,8 +51,7 @@ CalculateCapeUsage:
LDA.l HardModeExclusionCapeUsage, X : STA $4C ; set cape decrement timer LDA.l HardModeExclusionCapeUsage, X : STA $4C ; set cape decrement timer
PLX PLX
++ ++
LDA $7EF36E ; thing we wrote over JML IncrementMagicUseCounterOne
RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
ActivateInvulnerabilityOrDont: ActivateInvulnerabilityOrDont:
LDA $1B : BEQ .nowhere_special LDA $1B : BEQ .nowhere_special

View File

@@ -62,6 +62,51 @@ org $079C22 ; <- 39222 - Bank07.asm : 4494 (AND $7EF379 : BEQ .cantDoAction)
JSL.l ModifyBoots JSL.l ModifyBoots
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;================================================================================
; Enable/Disable Bonk Tremors
;--------------------------------------------------------------------------------
org $079202 ; 39202 <- Bank07.asm : 2859 (JSL AddDashTremor : JSL Player_ApplyRumbleToSprites)
JSL.l AddBonkTremors : NOP #4
;--------------------------------------------------------------------------------
;================================================================================
; Bonk Breakable Walls
;--------------------------------------------------------------------------------
org $01CF8E ; CF8E <- Bank01.asm : 11641 (LDA $0372 : AND.w #$00FF)
JSL.l BonkBreakableWall : NOP #2
;--------------------------------------------------------------------------------
;================================================================================
; Bonk Rock Pile
;--------------------------------------------------------------------------------
org $07C196 ; 3C196 <- Bank07.asm : 10310 (LDA $02EF : AND.b #$70)
JSL.l BonkRockPile : NOP
;--------------------------------------------------------------------------------
;================================================================================
; Move Gravestone
;--------------------------------------------------------------------------------
org $07C0FD ; 3C0FD <- Bank07.asm : 10197 (LDA $0372 : BNE .moveGravestone)
JML.l GravestoneHook : NOP
GravestoneHook_continue:
org $07C106
moveGravestone:
;--------------------------------------------------------------------------------
;================================================================================
; Jump Down Ledge
;--------------------------------------------------------------------------------
org $078966 ; 38966 <- Bank07.asm : 1618 (LDA $1B : BNE .indoors : LDA.b #$02 : STA $EE)
JSL.l JumpDownLedge : NOP #4
;--------------------------------------------------------------------------------
;================================================================================
; Bonk Recoil
;--------------------------------------------------------------------------------
org $07922C ; 3922C <- Bank07.asm : 2869 (LDA.b #$24 : STA $29)
JSL.l BonkRecoil
;--------------------------------------------------------------------------------
;================================================================================ ;================================================================================
; Dungeon Exit Hook ; Dungeon Exit Hook
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -486,9 +531,6 @@ JSL.l CheckGanonHammerDamage : NOP
;================================================================================ ;================================================================================
; Stat Hooks ; Stat Hooks
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $079202 ; 39202 <- Bank07.asm : 2859 (JSL AddDashTremor)
JSL.l StatBonkCounter
;--------------------------------------------------------------------------------
org $02B797 ; <- 13797 - Bank02.asm : 8712 (LDA.b #$19 : STA $10) org $02B797 ; <- 13797 - Bank02.asm : 8712 (LDA.b #$19 : STA $10)
JSL.l StatsFinalPrep JSL.l StatsFinalPrep
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -131,9 +131,51 @@ SEP #$30
STA !KEY_ICON_ADDRESS STA !KEY_ICON_ADDRESS
.done_keys .done_keys
;--------------------------------------------------------------------------------
; Draw pendant/crystal icon
;--------------------------------------------------------------------------------
!PRIZE_ICON = $7EC742
!P_ICON = $296C
!C_ICON = $295F
SEP #$20
LDA.b $1B : BEQ .noprize
LDX.w $040C : BMI .noprize
REP #$20
LDA.l MapMode
BEQ .drawprize
LDA.l $7EF368
AND.l DungeonItemMasks,X
BEQ .doneprize
.drawprize
LDA.l CrystalPendantFlags_2, X
AND.w #$0040 : BNE .is_crystal
LDA.w #!P_ICON
BRA .doneprize
.is_crystal
LDA.w #!C_ICON
BRA .doneprize
.noprize
REP #$20
LDA.w #$207F
.doneprize
STA.l !PRIZE_ICON
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; Draw Magic Meter ; Draw Magic Meter
!INFINITE_MAGIC = "$7F50CA" !INFINITE_MAGIC = "$7F50CA"
@@ -261,4 +303,4 @@ HudHexToDec2Digit:
DEC : BNE - DEC : BNE -
+ +
STY $07 ; Store 1s digit STY $07 ; Store 1s digit
RTS RTS

View File

@@ -71,15 +71,15 @@ macro DrawBombosPlatform(roomX, roomY, quadX, quadY)
endMacro endMacro
IcePalaceBombosSE: IcePalaceBombosSE:
LDA AllowSwordlessMedallionUse : CMP #$01 : BEQ + : RTL : + LDA AllowSwordlessMedallionUse : CMP #$01 : BEQ + : RTL : +
%DrawBombosPlatform(14, 18, 1, 1) %DrawBombosPlatform(14, 18, 1, 1)
RTL RTL
IcePalaceBombosSW: IcePalaceBombosSW:
LDA AllowSwordlessMedallionUse : CMP #$01 : BEQ + : RTL : + LDA AllowSwordlessMedallionUse : CMP #$01 : BEQ + : RTL : +
%DrawBombosPlatform(14, 18, 0, 1) %DrawBombosPlatform(14, 18, 0, 1)
RTL RTL
IcePalaceBombosNE: IcePalaceBombosNE:
LDA AllowSwordlessMedallionUse : CMP #$01 : BEQ + : RTL : + LDA AllowSwordlessMedallionUse : CMP #$01 : BEQ + : RTL : +
%DrawBombosPlatform(14, 18, 1, 0) %DrawBombosPlatform(14, 18, 1, 0)
RTL RTL

View File

@@ -139,6 +139,10 @@
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF468 - chest turn counter ; $7EF468 - chest turn counter
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; $7EF46Aw[2] - damage counter
;--------------------------------------------------------------------------------
; $7EF46Cw[2] - magic counter
;--------------------------------------------------------------------------------
; $7EF46Ew[2] - bombs placed counter ; $7EF46Ew[2] - bombs placed counter
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -146,16 +150,12 @@
!LOCK_STATS = "$7EF443" !LOCK_STATS = "$7EF443"
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!BONK_COUNTER = "$7EF420" !BONK_COUNTER = "$7EF420"
StatBonkCounter: IncrementBonkCounter:
PHA LDA !LOCK_STATS : BNE +
JSL Ancilla_CheckIfAlreadyExistsLong : BCS + LDA !BONK_COUNTER : INC
LDA !LOCK_STATS : BNE + CMP.b #100 : BEQ + ; decimal 100
LDA !BONK_COUNTER : INC STA !BONK_COUNTER
CMP.b #100 : BEQ + ; decimal 100
STA !BONK_COUNTER
+ +
PLA
JSL.l AddDashTremor ; thing we wrote over
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!SAVE_COUNTER = "$7EF42D" !SAVE_COUNTER = "$7EF42D"
@@ -382,8 +382,8 @@ IncrementBigChestCounter:
PLA PLA
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!DAMAGE_COUNTER = "$FFFFFF" !DAMAGE_COUNTER = $7EF46A
!MAGIC_COUNTER = "$FFFFFF" !MAGIC_COUNTER = $7EF46C
IncrementDamageTakenCounter_Eight: IncrementDamageTakenCounter_Eight:
STA.l $7EF36D STA.l $7EF36D
PHA : PHP PHA : PHP
@@ -391,10 +391,12 @@ IncrementDamageTakenCounter_Eight:
REP #$21 REP #$21
LDA.l !DAMAGE_COUNTER LDA.l !DAMAGE_COUNTER
ADC.w #$0008 ADC.w #$0008
STA.l !DAMAGE_COUNTER BCC ++
LDA.w #$FFFF
++ STA.l !DAMAGE_COUNTER
+ PLP + PLP
PLA PLA
RTL RTL
IncrementDamageTakenCounter_Arb: IncrementDamageTakenCounter_Arb:
PHP PHP
@@ -403,24 +405,41 @@ IncrementDamageTakenCounter_Arb:
LDA.b $00 LDA.b $00
AND.w #$00FF AND.w #$00FF
ADC.l !DAMAGE_COUNTER ADC.l !DAMAGE_COUNTER
STA.l !DAMAGE_COUNTER BCC ++
LDA.w #$FFFF
++ STA.l !DAMAGE_COUNTER
+ PLP + PLP
LDA.l $7EF36D LDA.l $7EF36D
RTL RTL
IncrementMagicUseCounter: IncrementMagicUseCounter:
STA.l $7EF36E STA.l $7EF36E
IncrementMagicUseCounterByrna:
PHA : PHP PHA : PHP
LDA !LOCK_STATS : BNE + LDA !LOCK_STATS : BNE +
REP #$21 REP #$21
LDA.b $00 LDA.b $00
AND.w #$00FF AND.w #$00FF
ADC.l !MAGIC_COUNTER ADC.l !MAGIC_COUNTER
STA.l !MAGIC_COUNTER BCC ++
LDA.w #$FFFF
++ STA.l !MAGIC_COUNTER
+ PLP : PLA + PLP : PLA
RTL RTL
IncrementMagicUseCounterOne:
LDA !LOCK_STATS : BNE +
REP #$20
LDA.l !MAGIC_COUNTER
INC
BEQ ++
STA.l !MAGIC_COUNTER
++ SEP #$20
+ LDA.l $7EF36E
RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!OW_MIRROR_COUNTER = "$7EF43A" !OW_MIRROR_COUNTER = "$7EF43A"

View File

@@ -639,11 +639,11 @@ endif
%blankline() %blankline()
%blankline() %blankline()
%bigcreditsleft("GT BIG KEY /22") %bigcreditsleft("DAMAGE TAKEN")
%blankline() %blankline()
%bigcreditsleft("CHEST TURNS") %bigcreditsleft("MAGIC USED")
%blankline() %blankline()
@@ -723,10 +723,10 @@ endif
!TEMPERED_SWORD_Y = 336 !TEMPERED_SWORD_Y = 336
!GOLD_SWORD_X = 23 !GOLD_SWORD_X = 23
!GOLD_SWORD_Y = 339 !GOLD_SWORD_Y = 339
!GT_BIG_KEY_X = 23 !DAMAGETAKEN_X = 26
!GT_BIG_KEY_Y = 346 !DAMAGETAKEN_Y = 346
!CHEST_TURNS_X = 26 !MAGICUSED_X = 26
!CHEST_TURNS_Y = 349 !MAGICUSED_Y = 349
!BONKS_X = 26 !BONKS_X = 26
!BONKS_Y = 352 !BONKS_Y = 352
!BOMBS_X = 26 !BOMBS_X = 26

View File

@@ -60,6 +60,7 @@ ValueCaps:
dw 99 dw 99
dw 999 dw 999
dw 9999 dw 9999
dw 9999 ; TODO - 5 digits need to be fixed at a later date
BitMasks: BitMasks:
dw $FFFF dw $FFFF

View File

@@ -9,8 +9,8 @@
%AddStat($7EF425, 0, 0, 04, 2, !MASTER_SWORD_X, !MASTER_SWORD_Y) %AddStat($7EF425, 0, 0, 04, 2, !MASTER_SWORD_X, !MASTER_SWORD_Y)
%AddStat($7EF426, 0, 4, 04, 2, !TEMPERED_SWORD_X, !TEMPERED_SWORD_Y) %AddStat($7EF426, 0, 4, 04, 2, !TEMPERED_SWORD_X, !TEMPERED_SWORD_Y)
%AddStat($7EF426, 0, 0, 04, 2, !GOLD_SWORD_X, !GOLD_SWORD_Y) %AddStat($7EF426, 0, 0, 04, 2, !GOLD_SWORD_X, !GOLD_SWORD_Y)
%AddStat($7EF42A, 0, 0, 05, 2, !GT_BIG_KEY_X, !GT_BIG_KEY_Y) %AddStat($7EF46A, 0, 0, 16, 5, !DAMAGETAKEN_X, !DAMAGETAKEN_Y)
%AddStat($7EF468, 0, 0, 08, 3, !CHEST_TURNS_X, !CHEST_TURNS_Y) %AddStat($7EF46C, 0, 0, 16, 5, !MAGICUSED_X, !MAGICUSED_Y)
%AddStat($7EF420, 0, 0, 08, 3, !BONKS_X, !BONKS_Y) %AddStat($7EF420, 0, 0, 08, 3, !BONKS_X, !BONKS_Y)
%AddStat($7EF46E, 0, 0, 16, 4, !BOMBS_X, !BOMBS_Y) %AddStat($7EF46E, 0, 0, 16, 4, !BOMBS_X, !BOMBS_Y)
%AddStat($7EF42D, 0, 0, 08, 2, !SAVE_AND_QUITS_X, !SAVE_AND_QUITS_Y) %AddStat($7EF42D, 0, 0, 08, 2, !SAVE_AND_QUITS_X, !SAVE_AND_QUITS_Y)

View File

@@ -399,7 +399,11 @@ org $30808D ; PC 0x18008D
InstantPostAgaWorldState: InstantPostAgaWorldState:
db $00 ; #$00 = Off (default) - #$01 = On db $00 ; #$00 = Off (default) - #$01 = On
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; 0x18008E - 0x18008F (unused) org $30808E ; PC 0x18008E
FakeBoots:
db $00 ; #$00 = Off (default) - #$01 = On
;--------------------------------------------------------------------------------
; 0x18008F (unused)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $308090 ; PC 0x180090 - 0x180097 org $308090 ; PC 0x180090 - 0x180097
ProgressiveSwordLimit: ProgressiveSwordLimit: