Some byte designation corrections + formatting
This commit is contained in:
@@ -74,7 +74,7 @@ DRHUD_DrawKeyCounter:
|
||||
LDA.w MapField : AND.l DungeonMask, X : BEQ DRHUD_Finished
|
||||
TXA : LSR : TAX
|
||||
LDA.l GenericKeys : AND.w #$00FF : BNE .total_only
|
||||
LDA.l DungeonCollectedKeys, X : JSR ConvertToDisplay : STA.w HUDKeysObtained
|
||||
LDA.w DungeonCollectedKeys, X : JSR ConvertToDisplay : STA.w HUDKeysObtained
|
||||
LDA.w #!SlashTile : STA.w HUDKeysSlash
|
||||
.total_only
|
||||
LDA.l ChestKeys, x : JSR ConvertToDisplay : STA.w HUDKeysTotal
|
||||
|
||||
@@ -433,7 +433,7 @@ HandleSpecialDoorLanding: {
|
||||
HandleIncomingDoorState:
|
||||
PHA
|
||||
LDA.l DRMode : BEQ .noDoor
|
||||
PLA : PHA : AND.b #$FA : CMP.b #$80 : bne .noDoor
|
||||
LDA.b 1,S : AND.b #$FA : CMP.b #$80 : bne .noDoor
|
||||
|
||||
.setDoorState
|
||||
LDA.w TransitionDirection : AND.b #$02 : BNE + : INC
|
||||
|
||||
@@ -202,7 +202,7 @@ InroomStairsWarp: {
|
||||
lda.w InroomStairsX,y : sta.b LinkPosX
|
||||
lda.w InroomStairsY,y
|
||||
ldy.b Scrap07 : beq +
|
||||
!ADD #$07
|
||||
!ADD.b #$07
|
||||
+
|
||||
sta.b LinkPosY
|
||||
inc.b Scrap07
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
org $9DD88E
|
||||
{
|
||||
; original: GiantMoldorm_Draw+5lines (sprite_giant_moldorm.asm)
|
||||
; lda.b $90 : add.w #$0008 : sta.b $90
|
||||
; INC.b $92 : INC.b $92
|
||||
; lda.b OAMPtr : add.w #$0008 : sta.b OAMPtr
|
||||
; INC.b OAMPtr+2 : INC.b OAMPtr+2
|
||||
|
||||
JSL Moldorm_UpdateOamPosition
|
||||
NOP #08
|
||||
|
||||
@@ -4,8 +4,8 @@ Moldorm_UpdateOamPosition:
|
||||
|
||||
LDA.l !MOLDORM_EYES_FLAG : TAX
|
||||
.more_eyes
|
||||
LDA.b $90 : CLC : ADC.w #$0004 : STA.b $90
|
||||
LDA.b $92 : CLC : ADC.w #$0001 : STA.b $92
|
||||
LDA.b OAMPtr : CLC : ADC.w #$0004 : STA.b OAMPtr
|
||||
LDA.b OAMPtr+2 : CLC : ADC.w #$0001 : STA.b OAMPtr+2
|
||||
DEX : BPL .more_eyes ; X >= 0
|
||||
|
||||
PLX
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
;================================================================================
|
||||
check_special_action:
|
||||
{
|
||||
LDA.l BossSpecialAction : BEQ .no_special_action
|
||||
LDA.w BossSpecialAction : BEQ .no_special_action
|
||||
LDA.b #$05 : STA.b GameSubMode
|
||||
STZ.w BossSpecialAction
|
||||
.no_special_action
|
||||
|
||||
@@ -353,7 +353,7 @@ IncrementBossSword:
|
||||
IncrementFinalSword:
|
||||
PHX
|
||||
REP #$20
|
||||
LDA.w RoomIndex : BNE .done
|
||||
LDA.b RoomIndex : BNE .done
|
||||
SEP #$20
|
||||
LDA.l SwordEquipment : CMP.b #$FF : BNE +
|
||||
BRA IncrementBossSword_none
|
||||
@@ -820,7 +820,7 @@ LDA.b #$0F : JML Ancilla_SFX3_Near ; what we wrote over
|
||||
|
||||
; A = item id being collected
|
||||
ItemGetOverworldAlternateSFX:
|
||||
CMP.b #$4A : BNE +
|
||||
CPY.b #$4A : BNE +
|
||||
JSL Sound_SetSfxPanWithPlayerCoords : ORA.b #$13 : STA.w SFX2
|
||||
RTL
|
||||
+ ; normal itemget sfx
|
||||
|
||||
54
inverted.asm
54
inverted.asm
@@ -201,35 +201,37 @@ MirrorBonk:
|
||||
; Goal: use $20 and $22 to decide to force a bonk
|
||||
; if we want to bonk branch to .forceBonk
|
||||
; otherwise fall through to .normal
|
||||
PHX : PHP
|
||||
PHB : PHK : PLB
|
||||
LDA.b OverworldIndex : AND.b #$40 : BEQ .endLoop ;World we're in? branch if we are in LW we don't want bonks
|
||||
REP #$30
|
||||
LDX.w #$0000
|
||||
.loop
|
||||
LDA.l .bonkRectanglesTable, X ;Load X1
|
||||
CMP.b LinkPosX : !BGE ++
|
||||
;IF X > X1
|
||||
LDA.l .bonkRectanglesTable+2, X ; Load X2
|
||||
CMP.b LinkPosX : !BLT ++
|
||||
;IF X < X2
|
||||
LDA.l .bonkRectanglesTable+4, X ;Load Y1
|
||||
CMP.b LinkPosY : !BGE ++
|
||||
;IF Y > Y1
|
||||
LDA.l .bonkRectanglesTable+6, X ; Load Y2
|
||||
CMP.b LinkPosY : !BLT ++
|
||||
;IF Y < Y2
|
||||
;Bonk Here
|
||||
PLB : PLP : PLX
|
||||
BRA .forceBonk
|
||||
++
|
||||
TXA : !ADD.w #$0008 : CMP.w #.tableEnd-.bonkRectanglesTable : BEQ .endLoop
|
||||
TAX
|
||||
BRA .loop
|
||||
.endbonkRectanglesTable
|
||||
PHX : PHP
|
||||
PHB : PHK : PLB
|
||||
LDA.b OverworldIndex : AND.b #$40 : BEQ .endLoop ;World we're in? branch if we are in LW we don't want bonks
|
||||
REP #$30
|
||||
LDX.w #$0000
|
||||
|
||||
.loop
|
||||
LDA.l .bonkRectanglesTable, X ;Load X1
|
||||
CMP.b LinkPosX : !BGE ++
|
||||
;IF X > X1
|
||||
LDA.l .bonkRectanglesTable+2, X ; Load X2
|
||||
CMP.b LinkPosX : !BLT ++
|
||||
;IF X < X2
|
||||
LDA.l .bonkRectanglesTable+4, X ;Load Y1
|
||||
CMP.b LinkPosY : !BGE ++
|
||||
;IF Y > Y1
|
||||
LDA.l .bonkRectanglesTable+6, X ; Load Y2
|
||||
CMP.b LinkPosY : !BLT ++
|
||||
;IF Y < Y2
|
||||
;Bonk Here
|
||||
PLB : PLP : PLX
|
||||
BRA .forceBonk
|
||||
++
|
||||
TXA : !ADD.w #$0008 : CMP.w #.tableEnd-.bonkRectanglesTable : BEQ .endLoop
|
||||
TAX
|
||||
BRA .loop
|
||||
.endbonkRectanglesTable
|
||||
|
||||
.endLoop
|
||||
PLB : PLP : PLX
|
||||
|
||||
.normal
|
||||
;Not forcing a bonk, so the vanilla bonk detection run.
|
||||
LDA.b Scrap0C : ORA.b Scrap0E
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
; Come in with
|
||||
; A = item receipt ID
|
||||
; X = slot
|
||||
; X = sprite slot
|
||||
RequestStandingItemVRAMSlot:
|
||||
PHA
|
||||
|
||||
@@ -83,21 +83,21 @@ DrawPotItem:
|
||||
.draw
|
||||
PHB : PHK : PLB
|
||||
|
||||
STA.b $08
|
||||
STA.b Scrap08
|
||||
LDA.w SprItemGFX,X
|
||||
AND.w #$00FF
|
||||
ASL : ASL : ASL : ASL
|
||||
ADC.b $08
|
||||
STA.b $08
|
||||
ADC.b Scrap08
|
||||
STA.b Scrap08
|
||||
SEP #$20
|
||||
STZ.b $07
|
||||
STZ.b Scrap07
|
||||
|
||||
LDA.b #$00 : STA.l SpriteSkipEOR
|
||||
JSL Sprite_DrawMultiple_quantity_preset
|
||||
|
||||
LDA.b $90 : CLC : ADC.b #$08 : STA.b $90
|
||||
INC.b $92
|
||||
INC.b $92
|
||||
LDA.b OAMPtr : CLC : ADC.b #$08 : STA.b OAMPtr
|
||||
INC.b OAMPtr+2
|
||||
INC.b OAMPtr+2
|
||||
|
||||
PLB
|
||||
PLA
|
||||
|
||||
@@ -327,8 +327,8 @@ ClearSpriteData:
|
||||
PHX
|
||||
LDA.b #$00 : LDX.b #$00
|
||||
.loop
|
||||
STA.l SprDropsItem, X : STA.l SprItemReceipt, X : STA.l SprItemIndex, X
|
||||
STA.l SprItemMWPlayer, X : STA.l SprItemFlags, X
|
||||
STA.w SprDropsItem, X : STA.w SprItemReceipt, X : STA.w SprItemIndex, X
|
||||
STA.w SprItemMWPlayer, X : STA.w SprItemFlags, X
|
||||
INX : CPX.b #$10 : BCC .loop
|
||||
JSR SetupEnemyDropIndicator
|
||||
PLX
|
||||
@@ -393,23 +393,23 @@ LoadSpriteData:
|
||||
DEC.b Scrap03 ; standing items shouldn't consume a sprite slot
|
||||
LDX.b Scrap03 ; these were changed to $03, for moved sprites
|
||||
CMP.b #$F9 : BNE .not_multiworld
|
||||
DEY : LDA.b [Scrap00], Y : STA.l SprItemMWPlayer, X
|
||||
LDA.b #$02 : STA.l SprDropsItem, X : BRA .common
|
||||
DEY : LDA.b [Scrap00], Y : STA.w SprItemMWPlayer, X
|
||||
LDA.b #$02 : STA.w SprDropsItem, X : BRA .common
|
||||
.not_multiworld
|
||||
LDA.b #$00 : STA.l SprItemMWPlayer, X
|
||||
LDA.b #$01 : STA.l SprDropsItem, X
|
||||
LDA.b #$00 : STA.w SprItemMWPlayer, X
|
||||
LDA.b #$01 : STA.w SprDropsItem, X
|
||||
DEY
|
||||
.common
|
||||
DEY : LDA.b [Scrap00], Y : STA.l SprItemReceipt, X
|
||||
DEY : LDA.b [Scrap00], Y : STA.w SprItemReceipt, X
|
||||
STA.b Scrap0E
|
||||
LDA.l SprItemMWPlayer, X : BNE + ; skip if multiworld
|
||||
LDA.w SprItemMWPlayer, X : BNE + ; skip if multiworld
|
||||
PHX
|
||||
LDX.b #$00 ; see if the item should be replaced by an absorbable
|
||||
- CPX.b #$1A : BCS .done
|
||||
LDA.l MinorForcedDrops, X
|
||||
CMP.b Scrap0E : BEQ ++
|
||||
INX #2 : BRA -
|
||||
++ PLX : LDA.l SprItemFlags, X : ORA.b #$80 : STA.l SprItemFlags, X : PHX
|
||||
++ PLX : LDA.w SprItemFlags, X : ORA.b #$80 : STA.w SprItemFlags, X : PHX
|
||||
.done PLX
|
||||
+
|
||||
INY : INY
|
||||
@@ -422,23 +422,23 @@ LoadSpriteData:
|
||||
|
||||
; Run when a sprite dies ... Sets Flag to #$02 and Index to sprite slot for
|
||||
RevealSpriteDrop:
|
||||
LDA.l SprDropsItem, X : BNE CheckIfDropValid
|
||||
LDA.w SprDropsItem, X : BNE CheckIfDropValid
|
||||
JMP DoNormalDrop
|
||||
|
||||
CheckIfDropValid:
|
||||
JSR CheckIfDropsInThisLocation : BCC DoNormalDrop
|
||||
;This section sets up the drop
|
||||
LDA.b #$02 : STA.l SpawnedItemFlag
|
||||
LDA.b #$02 : STA.w SpawnedItemFlag
|
||||
STX.w SpawnedItemIndex
|
||||
LDA.l SprItemReceipt, X : STA.l SpawnedItemID
|
||||
LDA.l SprItemMWPlayer, X : STA.l SpawnedItemMWPlayer
|
||||
LDA.w SprItemReceipt, X : STA.w SpawnedItemID
|
||||
LDA.w SprItemMWPlayer, X : STA.w SpawnedItemMWPlayer
|
||||
LDY.b #$01 ; trigger the small key routines
|
||||
LDA.w SpawnedItemID : STA.b Scrap00 : CMP.b #$32 : BNE +
|
||||
LDA.l StandingItemsOn : BNE +
|
||||
INY ; big key routine
|
||||
+
|
||||
PHX
|
||||
LDA.l SpawnedItemMWPlayer : BNE .done ; abort check for absorbables it belong to someone else
|
||||
LDA.w SpawnedItemMWPlayer : BNE .done ; abort check for absorbables it belong to someone else
|
||||
LDX.b #$00 ; see if the item should be replaced by an absorbable
|
||||
- CPX.b #$1A : BCS .done
|
||||
LDA.l MinorForcedDrops, X
|
||||
@@ -475,7 +475,7 @@ PikitOverride:
|
||||
CMP.b #$AA : BNE .no_pikit_drop
|
||||
LDY.w $0E90,X : BEQ .no_pikit_drop
|
||||
CPY.b #$04 : BEQ .normal_pikit
|
||||
LDA.l SprDropsItem, X : BEQ .normal_pikit
|
||||
LDA.w SprDropsItem, X : BEQ .normal_pikit
|
||||
JSR CheckIfDropsInThisLocation : BCC .normal_pikit
|
||||
.no_pikit_drop
|
||||
PLA : PLA : PEA.w Sprite_DoTheDeath_NotAPikitDrop-1
|
||||
@@ -597,7 +597,7 @@ MarkSRAMForItem:
|
||||
LDA.w RoomItemsTaken : ORA.w KeyRoomFlagMasks, Y : RTL
|
||||
+ PHX : PHY : REP #$30
|
||||
LDA.b RoomIndex : ASL : TAY
|
||||
LDA.l SpawnedItemIndex : ASL
|
||||
LDA.w SpawnedItemIndex : ASL
|
||||
TAX : LDA.l BitFieldMasks, X : STA.b Scrap00
|
||||
TYX
|
||||
LDA.w SpawnedItemFlag : CMP.w #$0001 : BEQ +
|
||||
@@ -616,20 +616,20 @@ SpriteKeyPrep:
|
||||
LDA.b RoomIndex : CMP.b #$87 : BNE .continue
|
||||
CPX.b #$0A : BNE .continue ; the hera basement key is always sprite 0x0A
|
||||
LDA.b LinkQuadrantH : ORA.b LinkQuadrantV : AND.b #$03 : CMP.b #$02 : BNE .continue
|
||||
LDA.b #$00 : STA.w SpawnedItemFlag : STA.l SprItemFlags, X
|
||||
LDA.b #$00 : STA.w SpawnedItemFlag : STA.w SprItemFlags, X
|
||||
LDA.b #$24 : STA.w $0E80, X
|
||||
BRA +
|
||||
.continue
|
||||
LDA.w SpawnedItemIndex : STA.l SprItemIndex, X
|
||||
LDA.w SpawnedItemMWPlayer : STA.l SprItemMWPlayer, X : STA.w !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.w SpawnedItemFlag : STA.l SprItemFlags, X : BEQ +
|
||||
LDA.l SpawnedItemID : STA.w $0E80, X
|
||||
LDA.w SpawnedItemIndex : STA.w SprItemIndex, X
|
||||
LDA.w SpawnedItemMWPlayer : STA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.w SpawnedItemFlag : STA.w SprItemFlags, X : BEQ +
|
||||
LDA.w SpawnedItemID : STA.w $0E80, X
|
||||
PHA : PHY : PHX
|
||||
JSL GetSpritePalette : PLX : STA.w SpriteOAMProp, X ; setup the palette
|
||||
PLY : PLA
|
||||
CMP.b #$24 : BNE ++ ;
|
||||
LDA.b RoomIndex : CMP.b #$80 : BNE +
|
||||
LDA.l SpawnedItemFlag : BNE +
|
||||
LDA.w SpawnedItemFlag : BNE +
|
||||
LDA.b #$24 ; it's the big key drop?
|
||||
++ JSL RequestStandingItemVRAMSlot
|
||||
+ PLA
|
||||
@@ -638,11 +638,11 @@ SpriteKeyPrep:
|
||||
SpriteKeyDrawGFX:
|
||||
JSL Sprite_DrawRippleIfInWater
|
||||
PHA
|
||||
LDA.l SprItemMWPlayer, X : STA.w !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.w $0E80, X
|
||||
CMP.b #$24 : BNE +
|
||||
LDA.b RoomIndex : CMP.b #$80 : BNE ++
|
||||
LDA.l SpawnedItemFlag : BNE ++
|
||||
LDA.w SpawnedItemFlag : BNE ++
|
||||
LDA.b #$24 : BRA +
|
||||
++ PLA
|
||||
PHK : PEA.w .jslrtsreturn-1
|
||||
@@ -659,38 +659,38 @@ SpriteKeyDrawGFX:
|
||||
KeyGet:
|
||||
LDA.l CurrentSmallKeys ; what we wrote over
|
||||
PHA
|
||||
LDA.l StandingItemsOn : BNE +
|
||||
PLA : RTL
|
||||
+ LDY.w $0E80, X
|
||||
LDA.l SprItemIndex, X : STA.l SpawnedItemIndex
|
||||
LDA.l SprItemFlags, X : STA.l SpawnedItemFlag
|
||||
LDA.b RoomIndex : CMP.b #$87 : BNE + ;check for hera cage
|
||||
LDA.l SpawnedItemFlag : BNE + ; if it came from a pot, it's fine
|
||||
JSR ShouldKeyBeCountedForDungeon : BCC ++
|
||||
JSL CountChestKeyLong
|
||||
++ PLA : RTL
|
||||
+ STY.b Scrap00
|
||||
LDA.l SprItemMWPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID
|
||||
STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .receive
|
||||
PHX
|
||||
LDA.w DungeonID : CMP.b #$FF : BNE +
|
||||
LDA.b Scrap00 : CMP.b #$AF : BNE .skip
|
||||
LDA.l CurrentGenericKeys : INC : STA.l CurrentGenericKeys
|
||||
LDA.b Scrap00 : BRA .countIt
|
||||
+ LSR : TAX
|
||||
LDA.b Scrap00 : CMP.l KeyTable, X : BNE +
|
||||
.countIt
|
||||
LDA.l StandingItemCounterMask : AND SpawnedItemFlag : BEQ ++
|
||||
JSL AddInventory
|
||||
++ PLX : PLA : RTL
|
||||
+ CMP.b #$AF : beq .countIt ; universal key
|
||||
CMP.b #$24 : beq .countIt ; small key for this dungeon
|
||||
.skip PLX
|
||||
.receive
|
||||
JSL Player_HaltDashAttackLong
|
||||
TYA : JSL AttemptItemSubstitution : JSL ResolveLootIDLong : TAY
|
||||
JSL Link_ReceiveItem
|
||||
PLA : DEC : RTL
|
||||
LDA.l StandingItemsOn : BNE +
|
||||
PLA : RTL
|
||||
+ LDY.w $0E80, X
|
||||
LDA.w SprItemIndex, X : STA.w SpawnedItemIndex
|
||||
LDA.w SprItemFlags, X : STA.w SpawnedItemFlag
|
||||
LDA.b RoomIndex : CMP.b #$87 : BNE + ;check for hera cage
|
||||
LDA.w SpawnedItemFlag : BNE + ; if it came from a pot, it's fine
|
||||
JSR ShouldKeyBeCountedForDungeon : BCC ++
|
||||
JSL CountChestKeyLong
|
||||
++ PLA : RTL
|
||||
+ STY.b Scrap00
|
||||
LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID
|
||||
STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .receive
|
||||
PHX
|
||||
LDA.w DungeonID : CMP.b #$FF : BNE +
|
||||
LDA.b Scrap00 : CMP.b #$AF : BNE .skip
|
||||
LDA.l CurrentGenericKeys : INC : STA.l CurrentGenericKeys
|
||||
LDA.b Scrap00 : BRA .countIt
|
||||
+ LSR : TAX
|
||||
LDA.b Scrap00 : CMP.l KeyTable, X : BNE +
|
||||
.countIt
|
||||
LDA.l StandingItemCounterMask : AND SpawnedItemFlag : BEQ ++
|
||||
JSL AddInventory
|
||||
++ PLX : PLA : RTL
|
||||
+ CMP.b #$AF : beq .countIt ; universal key
|
||||
CMP.b #$24 : beq .countIt ; small key for this dungeon
|
||||
.skip PLX
|
||||
.receive
|
||||
JSL Player_HaltDashAttackLong
|
||||
TYA : JSL AttemptItemSubstitution : JSL ResolveLootIDLong : TAY
|
||||
JSL Link_ReceiveItem
|
||||
PLA : DEC : RTL
|
||||
|
||||
KeyTable:
|
||||
db $A0, $A0, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
OnMenuLoad:
|
||||
LDA.b #UploadMenuOnlyIcons>>0 : STA.l NMIAux
|
||||
LDA.b #UploadMenuOnlyIcons>>8 : STA.l NMIAux+1
|
||||
LDA.b #UploadMenuOnlyIcons>>16 : STA.l NMIAux+2
|
||||
LDA.b #UploadMenuOnlyIcons>>0 : STA.w NMIAux
|
||||
LDA.b #UploadMenuOnlyIcons>>8 : STA.w NMIAux+1
|
||||
LDA.b #UploadMenuOnlyIcons>>16 : STA.w NMIAux+2
|
||||
LDA.b #$0E : STA.b GameMode ; what we overwrote
|
||||
RTL
|
||||
|
||||
|
||||
12
msu.asm
12
msu.asm
@@ -235,7 +235,7 @@ CheckMusicLoadRequest:
|
||||
.dungeon
|
||||
LDA.w DungeonID : CMP.b #$1A : BNE +
|
||||
PHA : LDA.l DRMode : BEQ ++
|
||||
LDA.w BigKeyField : AND.b #$04 : BEQ ++
|
||||
LDA.l BigKeyField : AND.b #$04 : BEQ ++
|
||||
; if door rando and entering GT with BK
|
||||
PLA : LDA.b #59 : BRA .check_fallback-3
|
||||
++ PLA
|
||||
@@ -497,8 +497,8 @@ PHA : XBA : PHA
|
||||
; dont save if we already saved recently
|
||||
REP #$20
|
||||
LDA.w MSUResumeTrack : AND.w #$00FF : BEQ ++
|
||||
LDA.l NMIFrames : !SUB.l MSUResumeTime : PHA
|
||||
LDA.l NMIFrames+2 : SBC.l MSUResumeTime+2 : BNE +++
|
||||
LDA.l NMIFrames : !SUB.w MSUResumeTime : PHA
|
||||
LDA.l NMIFrames+2 : SBC.w MSUResumeTime+2 : BNE +++
|
||||
PLA : CMP.l MSUResumeTimer : !BLT .too_early
|
||||
BRA ++
|
||||
+++
|
||||
@@ -663,8 +663,8 @@ MSUMain:
|
||||
PLX
|
||||
TXA : CMP.w MSUResumeTrack : BNE + ; dont resume if too late
|
||||
REP #$20
|
||||
LDA.l NMIFrames : !SUB.l MSUResumeTime : PHA
|
||||
LDA.l NMIFrames+2 : SBC.l MSUResumeTime+2 : BNE ++
|
||||
LDA.l NMIFrames : !SUB.w MSUResumeTime : PHA
|
||||
LDA.l NMIFrames+2 : SBC.w MSUResumeTime+2 : BNE ++
|
||||
PLA : CMP.l MSUResumeTimer : !BGE +++
|
||||
SEP #$20
|
||||
LDA.b #!FLAG_RESUME_FADEIN : BRA .done_resume
|
||||
@@ -677,7 +677,7 @@ MSUMain:
|
||||
STA.w MSUResumeControl
|
||||
LDA.b #$00 : STA.w MSUResumeTrack
|
||||
+
|
||||
CPX.b #07 : BNE + ; Kakariko Village
|
||||
CPX.b #$07 : BNE + ; Kakariko Village
|
||||
LDA.b GameMode : CMP.b #$07 : BNE +
|
||||
; we're in link's house -> ignore
|
||||
LDA.b #$00
|
||||
|
||||
@@ -289,7 +289,7 @@ LDA.l RoomDataWRAM[$07].high : AND.w #$00FF : BEQ +
|
||||
FallingMusicFadeOut:
|
||||
CMP.w #$0017 ; what we wrote over
|
||||
BNE .return
|
||||
LDA.w $0130 : AND.w #$00FF : CMP.w #$0015 ; if boss music is playing, then fade out
|
||||
LDA.w LastAPUCommand : AND.w #$00FF : CMP.w #$0015 ; if boss music is playing, then fade out
|
||||
.return
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
12
newhud.asm
12
newhud.asm
@@ -103,7 +103,7 @@ NewHUD_DrawGoal:
|
||||
|
||||
;================================================================================
|
||||
NewHUD_DrawKeys:
|
||||
LDA.l CurrentSmallKeys
|
||||
LDA.w CurrentSmallKeys
|
||||
CMP.b #$FF
|
||||
BNE .in_dungeon
|
||||
|
||||
@@ -172,7 +172,7 @@ NewHUD_DrawPrizeIcon:
|
||||
REP #$30
|
||||
BEQ .prize
|
||||
|
||||
LDA.l MapField
|
||||
LDA.w MapField
|
||||
AND.l DungeonItemMasks,X
|
||||
BEQ .no_prize
|
||||
|
||||
@@ -302,7 +302,7 @@ DrawCompassCounts:
|
||||
BIT.b #$02 : BNE .draw_compass_count
|
||||
TYX : LDA.l ExistsTransfer, X : TAX : LDA.l CompassExists, X : BEQ .draw_compass_count
|
||||
REP #$20
|
||||
LDX.w DungeonID : LDA.l CompassField : AND.l DungeonItemMasks,X : BEQ .early_exit
|
||||
LDX.w DungeonID : LDA.w CompassField : AND.l DungeonItemMasks,X : BEQ .early_exit
|
||||
|
||||
.draw_compass_count
|
||||
LDX.w DungeonID
|
||||
@@ -311,7 +311,7 @@ DrawCompassCounts:
|
||||
|
||||
.not_sewers
|
||||
REP #$20
|
||||
LDA.l DungeonLocationsChecked, X
|
||||
LDA.w DungeonLocationsChecked, X
|
||||
PHA
|
||||
|
||||
LDA.w #!SlashTile : STA.w HUDTileMapBuffer+$98 ; always slash
|
||||
@@ -361,7 +361,7 @@ DrawMapCounts:
|
||||
; no map needed if this bit is set
|
||||
BIT.b #$02 : BNE .draw_map_count
|
||||
REP #$20
|
||||
LDA.l MapField : AND.l DungeonItemMasks,X : BEQ .done
|
||||
LDA.w MapField : AND.l DungeonItemMasks,X : BEQ .done
|
||||
|
||||
.draw_map_count
|
||||
SEP #$20
|
||||
@@ -369,7 +369,7 @@ DrawMapCounts:
|
||||
INX
|
||||
|
||||
.not_sewers
|
||||
LDA.l DungeonCollectedKeys, X
|
||||
LDA.w DungeonCollectedKeys, X
|
||||
PHA
|
||||
|
||||
LDA.l MapTotalsWRAM,X
|
||||
|
||||
@@ -129,7 +129,7 @@ AddReceivedItemExpanded:
|
||||
STZ.w ItemReceiptID : STZ.w ItemReceiptID+1 : STZ.w ItemReceiptMethod
|
||||
PHY : LDY.b #$00 : JSL AddInventory : PLY
|
||||
PLX : PLA : RTL
|
||||
+ PLX : PLA
|
||||
+ PLX : PLA
|
||||
JSR ResolveReceipt
|
||||
PHB : PHK
|
||||
JML AddReceivedItem+2
|
||||
@@ -151,7 +151,7 @@ RTL
|
||||
|
||||
ItemBehavior:
|
||||
REP #$30
|
||||
AND.w #$00FF : ASL : TAX
|
||||
AND.w #$00FF : ASL : TAX
|
||||
SEP #$20
|
||||
JMP (ItemReceipts_behavior,X)
|
||||
|
||||
|
||||
@@ -240,8 +240,8 @@ PasswordToKey:
|
||||
RTS
|
||||
|
||||
LoadPasswordStripeTemplate:
|
||||
LDA.w DMAP0 : PHA : LDA.w BBAD0 : PHA : LDA.w A1T0L : PHA ; preserve DMA parameters
|
||||
LDA.w A1T0H : PHA : LDA.w A1B0 : PHA : LDA.w DAS0L : PHA ; preserve DMA parameters
|
||||
LDA.w DMAP0 : PHA : LDA.w BBAD0 : PHA : LDA.w A1T0L : PHA ; preserve DMA parameters
|
||||
LDA.w A1T0H : PHA : LDA.w A1B0 : PHA : LDA.w DAS0L : PHA ; preserve DMA parameters
|
||||
LDA.w DAS0H : PHA ; preserve DMA parameters
|
||||
|
||||
LDA.b #$00 : STA.w DMAP0 ; set DMA transfer direction A -> B, bus A auto increment, single-byte mode
|
||||
|
||||
@@ -628,6 +628,7 @@ VTIMEH = $00420A
|
||||
; f - DMA channel 5 (0: disabled | 1: enabled)
|
||||
; g - DMA channel 6 (0: disabled | 1: enabled)
|
||||
; h - DMA channel 7 (0: disabled | 1: enabled)
|
||||
MDMAEN = $00420B
|
||||
DMAENABLE = $00420B
|
||||
|
||||
; H-BLANK DIRECT MEMORY ACCESS CHANNEL DESIGNATION
|
||||
@@ -641,6 +642,7 @@ DMAENABLE = $00420B
|
||||
; f - HDMA channel 5 (0: disabled | 1: enabled)
|
||||
; g - HDMA channel 6 (0: disabled | 1: enabled)
|
||||
; h - HDMA channel 7 (0: disabled | 1: enabled)
|
||||
HDMAEN = $00420C
|
||||
HDMAENABLE = $00420C
|
||||
|
||||
; ACCESS CYCLE DESIGNATION
|
||||
|
||||
168
shopkeeper.asm
168
shopkeeper.asm
@@ -128,11 +128,11 @@ SpritePrep_ShopKeeper:
|
||||
LDA.l ShopContentsTable+2, X : PHX : TYX : STA.l ShopInventory+1, X : PLX
|
||||
LDA.l ShopContentsTable+3, X : PHX : TYX : STA.l ShopInventory+2, X : PLX
|
||||
LDA.l ShopContentsTable+8, X : PHX : PHA : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.b #0 : XBA : TYA : LSR #2 : TAX ; This will convert the value back to the slot number (in 8-bit accumulator mode)
|
||||
PLA : STA.l ShopInventoryPlayer, X : LDA.b #00 : STA.l ShopInventoryDisguise, X : PLX
|
||||
LDA.b #$00 : XBA : TYA : LSR #2 : TAX ; This will convert the value back to the slot number (in 8-bit accumulator mode)
|
||||
PLA : STA.l ShopInventoryPlayer, X : LDA.b #$00 : STA.l ShopInventoryDisguise, X : PLX
|
||||
PHY
|
||||
PHX
|
||||
LDA.b #0 : XBA : TYA : LSR #2 : !ADD.l ShopSRAMIndex : TAX
|
||||
LDA.b #$00 : XBA : TYA : LSR #2 : !ADD.l ShopSRAMIndex : TAX
|
||||
LDA.l PurchaseCounts, X : TYX : STA.l ShopInventory+3, X : TAY
|
||||
PLX
|
||||
|
||||
@@ -143,8 +143,8 @@ SpritePrep_ShopKeeper:
|
||||
LDA.l ShopContentsTable+6, X : PHX : TYX : STA.l ShopInventory+1, X : PLX
|
||||
LDA.l ShopContentsTable+7, X : PHX : TYX : STA.l ShopInventory+2, X : PLX
|
||||
LDA.b #$40 : PHX : TYX : STA.l ShopInventory+3, X : PLX
|
||||
PHX : LDA.b #0 : XBA : TYA : LSR #2 : TAX ; This will convert the value back to the slot number (in 8-bit accumulator mode)
|
||||
LDA.b #0 : STA.l ShopInventoryPlayer, X : PLX
|
||||
PHX : LDA.b #$00 : XBA : TYA : LSR #2 : TAX ; This will convert the value back to the slot number (in 8-bit accumulator mode)
|
||||
LDA.b #$00 : STA.l ShopInventoryPlayer, X : PLX
|
||||
BRA +++
|
||||
+ : PLY : LDA.b #$40 : PHX : TYX : STA.l ShopInventory+3, X : PLX : BRA +++
|
||||
++
|
||||
@@ -156,7 +156,7 @@ SpritePrep_ShopKeeper:
|
||||
JSL AttemptItemSubstitution
|
||||
JSL ResolveLootIDLong
|
||||
CMP.b #$D0 : BNE +
|
||||
PHX : LDA.b #0 : XBA : TYA : LSR #2 : TAX ; This will convert the value back to the slot number (in 8-bit accumulator mode)
|
||||
PHX : LDA.b #$00 : XBA : TYA : LSR #2 : TAX ; This will convert the value back to the slot number (in 8-bit accumulator mode)
|
||||
JSL GetRandomInt : AND.b #$3F
|
||||
BNE ++ : LDA.b #$49 : ++ : CMP.b #$26 : BNE ++ : LDA.b #$6A : ++ ; if 0 (fighter's sword + shield), set to just sword, if filled container (bugged palette), switch to triforce piece
|
||||
STA.l ShopInventoryDisguise, X : PLX
|
||||
@@ -425,80 +425,80 @@ Shopkeeper_SetupHitboxes:
|
||||
RTS
|
||||
|
||||
Shopkeeper_BuyItem:
|
||||
PHX : PHY
|
||||
TYX
|
||||
PHX : PHY
|
||||
TYX
|
||||
|
||||
LDA.l ShopInventory, X
|
||||
CMP.b #$0E : BEQ .refill ; Bee Refill
|
||||
CMP.b #$2E : BEQ .refill ; Red Potion Refill
|
||||
CMP.b #$2F : BEQ .refill ; Green Potion Refill
|
||||
CMP.b #$30 : BEQ .refill ; Blue Potion Refill
|
||||
BRA +
|
||||
.refill
|
||||
JSL Sprite_GetEmptyBottleIndex : BMI .full_bottles
|
||||
LDA.b #$1 : STA.l ShopkeeperRefill ; If this is on, don't toggle bit to remove from shop
|
||||
+
|
||||
LDA.l ShopInventory, X
|
||||
CMP.b #$0E : BEQ .refill ; Bee Refill
|
||||
CMP.b #$2E : BEQ .refill ; Red Potion Refill
|
||||
CMP.b #$2F : BEQ .refill ; Green Potion Refill
|
||||
CMP.b #$30 : BEQ .refill ; Blue Potion Refill
|
||||
BRA +
|
||||
.refill
|
||||
JSL Sprite_GetEmptyBottleIndex : BMI .full_bottles
|
||||
LDA.b #$1 : STA.l ShopkeeperRefill ; If this is on, don't toggle bit to remove from shop
|
||||
+
|
||||
|
||||
LDA.l ShopType : AND.b #$80 : BNE .buy ; don't charge if this is a take-any
|
||||
REP #$20 : LDA.l CurrentRupees : CMP.l ShopInventory+1, X : SEP #$20 : !BGE .buy
|
||||
LDA.l ShopType : AND.b #$80 : BNE .buy ; don't charge if this is a take-any
|
||||
REP #$20 : LDA.l CurrentRupees : CMP.l ShopInventory+1, X : SEP #$20 : !BGE .buy
|
||||
|
||||
.cant_afford
|
||||
LDA.b #$7A
|
||||
LDY.b #$01
|
||||
JSL Sprite_ShowMessageUnconditional
|
||||
LDA.b #$3C : STA.w SFX2 ; error sound
|
||||
JMP .done
|
||||
.full_bottles
|
||||
LDA.b #$6B : LDY.b #$01
|
||||
.cant_afford
|
||||
LDA.b #$7A
|
||||
LDY.b #$01
|
||||
JSL Sprite_ShowMessageUnconditional
|
||||
LDA.b #$3C : STA.w SFX2 ; error sound
|
||||
JMP .done
|
||||
.buy
|
||||
LDA.l ShopType : AND.b #$80 : BNE ++ ; don't charge if this is a take-any
|
||||
REP #$20 : LDA.l CurrentRupees : !SUB.l ShopInventory+1, X : STA.l CurrentRupees : SEP #$20 ; Take price away
|
||||
++
|
||||
.full_bottles
|
||||
LDA.b #$6B : LDY.b #$01
|
||||
JSL Sprite_ShowMessageUnconditional
|
||||
LDA.b #$3C : STA.w SFX2 ; error sound
|
||||
JMP .done
|
||||
.buy
|
||||
LDA.l ShopType : AND.b #$80 : BNE ++ ; don't charge if this is a take-any
|
||||
REP #$20 : LDA.l CurrentRupees : !SUB.l ShopInventory+1, X : STA.l CurrentRupees : SEP #$20 ; Take price away
|
||||
++
|
||||
PHX
|
||||
LDA.b #$00 : XBA : TXA : LSR #2 : TAX
|
||||
LDA.l ShopInventoryPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID
|
||||
TXA : !ADD.l ShopSRAMIndex : TAX
|
||||
LDA.l PurchaseCounts, X : BNE +++ ;Is this the first time buying this slot?
|
||||
LDA.l EnableShopItemCount, X : STA.l ShopEnableCount ; If so, store the permission to count the item here.
|
||||
+++
|
||||
PLX
|
||||
LDA.l ShopInventory, X
|
||||
JSL AttemptItemSubstitution
|
||||
JSL ResolveLootIDLong
|
||||
TAY : JSL Link_ReceiveItem
|
||||
LDA.l ShopInventory+3, X : INC : STA.l ShopInventory+3, X
|
||||
LDA.b #$00 : STA.l ShopEnableCount
|
||||
TXA : LSR #2 : TAX
|
||||
LDA.l ShopType : BIT.b #$80 : BNE +
|
||||
LDA.l ShopkeeperRefill : BNE +++
|
||||
LDA.l ShopState : ORA.w Shopkeeper_ItemMasks, X : STA.l ShopState
|
||||
+++ PHX
|
||||
TXA : !ADD.l ShopSRAMIndex : TAX
|
||||
LDA.l PurchaseCounts, X : INC : BEQ +++ : STA.l PurchaseCounts, X : +++
|
||||
PLX
|
||||
BRA ++
|
||||
+ ; Take-any
|
||||
BIT.b #$20 : BNE .takeAll
|
||||
.takeAny
|
||||
LDA.l ShopState : ORA.b #$07 : STA.l ShopState
|
||||
PHX
|
||||
LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID
|
||||
TXA : !ADD.l ShopSRAMIndex : TAX
|
||||
LDA.l PurchaseCounts, X : BNE +++ ;Is this the first time buying this slot?
|
||||
LDA.l EnableShopItemCount, X : STA.l ShopEnableCount ; If so, store the permission to count the item here.
|
||||
+++
|
||||
PLX
|
||||
LDA.l ShopInventory, X
|
||||
JSL AttemptItemSubstitution
|
||||
JSL ResolveLootIDLong
|
||||
TAY
|
||||
JSL Link_ReceiveItem
|
||||
LDA.l ShopInventory+3, X : INC : STA.l ShopInventory+3, X
|
||||
LDA.b #0 : STA.l ShopEnableCount
|
||||
TXA : LSR #2 : TAX
|
||||
LDA.l ShopType : BIT.b #$80 : BNE +
|
||||
LDA.l ShopkeeperRefill : BNE +++
|
||||
LDA.l ShopState : ORA.w Shopkeeper_ItemMasks, X : STA.l ShopState
|
||||
+++ PHX
|
||||
TXA : !ADD.l ShopSRAMIndex : TAX
|
||||
LDA.l PurchaseCounts, X : INC : BEQ +++ : STA.l PurchaseCounts, X : +++
|
||||
PLX
|
||||
BRA ++
|
||||
+ ; Take-any
|
||||
BIT.b #$20 : BNE .takeAll
|
||||
.takeAny
|
||||
LDA.l ShopState : ORA.b #$07 : STA.l ShopState
|
||||
PHX
|
||||
LDA.l ShopSRAMIndex : TAX : LDA.b #$01 : STA.l PurchaseCounts, X
|
||||
LDA.l EnableShopItemCount, X : STA.l ShopEnableCount
|
||||
PLX
|
||||
BRA ++
|
||||
.takeAll
|
||||
LDA.l ShopState : ORA.w Shopkeeper_ItemMasks, X : STA.l ShopState
|
||||
PHX
|
||||
LDA.l ShopSRAMIndex : TAX : LDA.l ShopState : STA.l PurchaseCounts, X
|
||||
LDA.l EnableShopItemCount, X : STA.l ShopEnableCount
|
||||
PLX
|
||||
++
|
||||
.done
|
||||
LDA.b #$00 : STA.l ShopkeeperRefill
|
||||
PLY : PLX
|
||||
LDA.l ShopSRAMIndex : TAX : LDA.b #$01 : STA.l PurchaseCounts, X
|
||||
LDA.l EnableShopItemCount, X : STA.l ShopEnableCount
|
||||
PLX
|
||||
BRA ++
|
||||
.takeAll
|
||||
LDA.l ShopState : ORA.w Shopkeeper_ItemMasks, X : STA.l ShopState
|
||||
PHX
|
||||
LDA.l ShopSRAMIndex : TAX : LDA.l ShopState : STA.l PurchaseCounts, X
|
||||
LDA.l EnableShopItemCount, X : STA.l ShopEnableCount
|
||||
PLX
|
||||
++
|
||||
.done
|
||||
LDA.b #$00 : STA.l ShopkeeperRefill
|
||||
PLY : PLX
|
||||
RTS
|
||||
Shopkeeper_ItemMasks:
|
||||
db #$01, #$02, #$04, #$08
|
||||
@@ -645,7 +645,7 @@ Shopkeeper_DrawNextItem:
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
PLY
|
||||
|
||||
PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$0 : BNE ++
|
||||
PHX : LDA.b #$00 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$00 : BNE ++
|
||||
CPX.b #$0C : BCC .not_powder
|
||||
LDA.l PowderFlag : BRA .resolve
|
||||
.not_powder LDA.l ShopInventory, X ; get item id
|
||||
@@ -671,10 +671,10 @@ Shopkeeper_DrawNextItem:
|
||||
|
||||
STA.l SpriteOAM+4
|
||||
|
||||
PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$0 : BNE ++
|
||||
PHX : LDA.b #$00 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$00 : BNE ++
|
||||
LDA.b Scrap0D
|
||||
++
|
||||
PHX
|
||||
PHX
|
||||
JSL GetSpritePalette_resolved
|
||||
PLX : CPX.b #$0C : BCC + ; if this is powder item
|
||||
ORA.b #$01
|
||||
@@ -682,20 +682,20 @@ Shopkeeper_DrawNextItem:
|
||||
|
||||
LDA.b #$00 : STA.l SpriteOAM+6
|
||||
|
||||
PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$0 : BNE ++
|
||||
PHX : LDA.b #$00 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$00 : BNE ++
|
||||
LDA.b Scrap0D
|
||||
++
|
||||
PHX
|
||||
TAX
|
||||
LDA.l SpriteProperties_standing_width,X : BEQ .narrow
|
||||
PHX
|
||||
TAX
|
||||
LDA.l SpriteProperties_standing_width,X : BEQ .narrow
|
||||
.full
|
||||
PLX
|
||||
PLX
|
||||
LDA.b #$02
|
||||
STA.l SpriteOAM+7
|
||||
LDA.b #$01
|
||||
BRA ++
|
||||
.narrow
|
||||
PLX
|
||||
PLX
|
||||
LDA.b #$00
|
||||
STA.l SpriteOAM+7
|
||||
JSR PrepNarrowLower
|
||||
@@ -774,9 +774,9 @@ Shopkeeper_DrawNextPrice:
|
||||
PHX : PHA : LDA.l ShopScratch : TAX : PLA : JSL Sprite_DrawMultiple_quantity_preset : PLX
|
||||
|
||||
LDA.b 1,s
|
||||
ASL #2 : !ADD.l OAMPtr : STA.b OAMPtr ; increment oam pointer
|
||||
ASL #2 : !ADD.b OAMPtr : STA.b OAMPtr ; increment oam pointer
|
||||
PLA
|
||||
!ADD.l OAMPtr+2 : STA.b OAMPtr+2
|
||||
!ADD.b OAMPtr+2 : STA.b OAMPtr+2
|
||||
.free
|
||||
PLP : PLY : PLX
|
||||
PLB
|
||||
|
||||
@@ -98,7 +98,7 @@ IncrementSmallKeysNoPrimary:
|
||||
PHP : REP #$20 ; set 16-bit accumulator
|
||||
LDA.b RoomIndex : CMP.w #$0087 : BNE ++ ; hera basement
|
||||
LDA.b $A8 : AND.w #$0003 : CMP.w #$0002 : BNE ++ ; must be quadrant 2
|
||||
LDA.l SprDropsItem, X : AND.w #$00FF : BNE ++ ; must not be a standing item
|
||||
LDA.w SprDropsItem, X : AND.w #$00FF : BNE ++ ; must not be a standing item
|
||||
PLP : PHY
|
||||
LDY.b #$24
|
||||
JSL AddInventory
|
||||
@@ -320,9 +320,9 @@ IndoorTileTransitionCounter:
|
||||
JMP StatTransitionCounter
|
||||
;--------------------------------------------------------------------------------
|
||||
IndoorSubtileTransitionCounter:
|
||||
LDA.b #$01 : STA.l RedrawFlag ; set redraw flag for items
|
||||
STZ.w SomariaSwitchFlag ; stuff we wrote over
|
||||
STZ.w SpriteRoomTag
|
||||
LDA.b #$01 : STA.l RedrawFlag ; set redraw flag for items
|
||||
STZ.w SomariaSwitchFlag ; stuff we wrote over
|
||||
STZ.w SpriteRoomTag
|
||||
JMP StatTransitionCounter
|
||||
;--------------------------------------------------------------------------------
|
||||
StatsFinalPrep:
|
||||
|
||||
@@ -49,7 +49,7 @@ LoadModifiedArmorLevel:
|
||||
CMP.b #$03 : !BLT + : LDA.b #$02 : +
|
||||
STA.l ScratchBufferV
|
||||
PLA
|
||||
!ADD.l ScratchBufferV
|
||||
!ADD.w ScratchBufferV
|
||||
RTL
|
||||
;================================================================================
|
||||
; MagicConsumption - Magic Inventory
|
||||
|
||||
@@ -75,7 +75,6 @@ org $B08028 ; PC 0x180028
|
||||
FairySword:
|
||||
db $03 ; #$03 = Golden Sword (default)
|
||||
|
||||
PedestalMusicCheck:
|
||||
;org $88C435 ; <- 44435 - ancilla_receive_item.asm : 125
|
||||
;db $01 ; #$01 = Master Sword (default)
|
||||
org $8589B0 ; PC 0x289B0 ; sprite_master_sword.asm : 179
|
||||
@@ -164,7 +163,7 @@ org $B08045 ; PC 0x180045
|
||||
HUDDungeonItems:
|
||||
db $00
|
||||
;--------------------------------------------------------------------------------
|
||||
; 0x180046 (unused)
|
||||
; 0x180046 - 0x180047 (unused)
|
||||
;--------------------------------------------------------------------------------
|
||||
org $B08048 ; PC 0x180048
|
||||
MenuSpeed:
|
||||
|
||||
44
tablets.asm
44
tablets.asm
@@ -29,24 +29,24 @@ SetTabletItemFlag:
|
||||
RTS
|
||||
;--------------------------------------------------------------------------------
|
||||
SpawnTabletItem:
|
||||
JSL HeartPieceGetPlayer : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
JSL LoadOutdoorValue
|
||||
JSL AttemptItemSubstitution
|
||||
JSL ResolveLootIDLong
|
||||
PHA
|
||||
LDA.b #$EB : STA.l MiniGameTime
|
||||
JSL Sprite_SpawnDynamically
|
||||
PLA
|
||||
STA.w SpriteID,Y
|
||||
TYX
|
||||
JSL PrepDynamicTile_loot_resolved
|
||||
JSL HeartPieceGetPlayer : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
JSL LoadOutdoorValue
|
||||
JSL AttemptItemSubstitution
|
||||
JSL ResolveLootIDLong
|
||||
PHA
|
||||
LDA.b #$EB : STA.l MiniGameTime
|
||||
JSL Sprite_SpawnDynamically
|
||||
PLA
|
||||
STA.w SpriteID,Y
|
||||
TYX
|
||||
JSL PrepDynamicTile_loot_resolved
|
||||
|
||||
LDA.b LinkPosX : STA.w SpritePosXLow, Y
|
||||
LDA.b LinkPosX+1 : STA.w SpritePosXHigh, Y
|
||||
LDA.b LinkPosY : STA.w SpritePosYLow, Y
|
||||
LDA.b LinkPosY+1 : STA.w SpritePosYHigh, Y
|
||||
LDA.b #$00 : STA.w SpriteLayer, Y
|
||||
LDA.b #$7F : STA.w SpriteZCoord, Y ; spawn WAY up high
|
||||
LDA.b LinkPosX : STA.w SpritePosXLow, Y
|
||||
LDA.b LinkPosX+1 : STA.w SpritePosXHigh, Y
|
||||
LDA.b LinkPosY : STA.w SpritePosYLow, Y
|
||||
LDA.b LinkPosY+1 : STA.w SpritePosYHigh, Y
|
||||
LDA.b #$00 : STA.w SpriteLayer, Y
|
||||
LDA.b #$7F : STA.w SpriteZCoord, Y ; spawn WAY up high
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
MaybeUnlockTabletAnimation:
|
||||
@@ -98,9 +98,9 @@ CheckTabletItem:
|
||||
; Zero flag set = Item not collected
|
||||
; Zero flag clear = Item collected
|
||||
;--------------------------------------------------------------------------------
|
||||
JSL IsMedallion : BCS .tablet
|
||||
LDA.l OverworldEventDataWRAM, X : AND.b #$40 ; What we wrote over
|
||||
RTL
|
||||
.tablet
|
||||
TDC
|
||||
JSL IsMedallion : BCS .tablet
|
||||
LDA.l OverworldEventDataWRAM, X : AND.b #$40 ; What we wrote over
|
||||
RTL
|
||||
.tablet
|
||||
TDC
|
||||
RTL
|
||||
|
||||
@@ -51,15 +51,15 @@ RTL
|
||||
PrepDynamicTile:
|
||||
PHX : PHY : PHB
|
||||
LDA.l RemoteItems : BEQ .notRemote
|
||||
LDA.l SpriteID, X : CMP.l !MULTIWORLD_SCOUTREPLY_LOCATION : BNE ++
|
||||
LDA.w SpriteID, X : CMP.l !MULTIWORLD_SCOUTREPLY_LOCATION : BNE ++
|
||||
LDA.l !MULTIWORLD_SCOUTREPLY_PLAYER : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.l !MULTIWORLD_SCOUTREPLY_ITEM
|
||||
STA.l SpriteID, X
|
||||
STA.w SpriteID, X
|
||||
BRA .notRemote
|
||||
++
|
||||
STA.l !MULTIWORLD_SCOUT_LOCATION
|
||||
LDA.b #$00 : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.b #$6B : STA.l SpriteID, X ; make it a power star, I guess
|
||||
LDA.b #$6B : STA.w SpriteID, X ; make it a power star, I guess
|
||||
.notRemote
|
||||
JSR ResolveLootID
|
||||
-
|
||||
@@ -219,7 +219,7 @@ PrepDrawRemoteItemSprite:
|
||||
CMP.l !MULTIWORLD_SCOUTREPLY_LOCATION : BNE ++
|
||||
LDA.l !MULTIWORLD_SCOUT_LOCATION : BEQ +++
|
||||
LDA.l !MULTIWORLD_SCOUTREPLY_LOCATION
|
||||
STA.l SpriteID, X
|
||||
STA.w SpriteID, X
|
||||
JSL PrepDynamicTile
|
||||
LDA.b #$00
|
||||
BRA ++
|
||||
@@ -229,7 +229,7 @@ PrepDrawRemoteItemSprite:
|
||||
RTS
|
||||
++
|
||||
STA.l !MULTIWORLD_SCOUT_LOCATION
|
||||
LDA.b #$00 : STA.b !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.b #$00 : STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||
LDA.b #$6B
|
||||
RTS
|
||||
+
|
||||
@@ -502,8 +502,8 @@ AuxPaletteCheck:
|
||||
PHX
|
||||
SEP #$30
|
||||
LDA.w ItemReceiptMethod : BNE .main_buffer ; Never use aux if we're actually receiving an item
|
||||
LDA.w RoomIndex : CMP.b #$8C : BEQ .aux_buffer ; GT torch/Hope room
|
||||
LDA.w RoomIndex : CMP.b #$87 : BEQ .aux_buffer ; Hera cage/basement
|
||||
LDA.b RoomIndex : CMP.b #$8C : BEQ .aux_buffer ; GT torch/Hope room
|
||||
CMP.b #$87 : BEQ .aux_buffer ; Hera cage/basement
|
||||
.main_buffer
|
||||
REP #$31
|
||||
PLX
|
||||
|
||||
@@ -190,6 +190,7 @@ MagicShopAssistant_SpawnPowder = $85F539
|
||||
MagicShopAssistant_SpawnObject = $85F61D
|
||||
Sprite_BagOfPowder = $85F644
|
||||
MagicShopAssistant_Main = $85F893
|
||||
Sprite_SpawnSecret_SetCoords = $8682A5
|
||||
Chicken_SpawnAvengerChicken = $86A7DB
|
||||
Link_PerformRead = $87B4DB
|
||||
Link_PerformOpenChest_no_replacement = $87B59F
|
||||
|
||||
Reference in New Issue
Block a user