Initial Prize Shuffle Implementation

This commit is contained in:
codemann8
2024-05-23 18:23:26 -05:00
parent b76d440958
commit f9da730caf
20 changed files with 684 additions and 373 deletions

View File

@@ -13,7 +13,8 @@ RequestStandingItemVRAMSlot:
PHX : PHY
PHA
LDA.b #$01 : STA.w SprRedrawFlag, X
JSL Sprite_IsOnscreen : BCC ++
LDA.l SpriteSkipEOR : BNE + ; skips on-screen check for special cases, like for prize ancilla
JSL Sprite_IsOnscreen : BCC ++ : +
; skip sending the request if busy with other things
LDA.b GameSubMode : CMP.b #$21 : BCS ++ ; skip if OW is loading Map16 GFX ; TODO: Figure out how to allow submodule 22, check DMA status instead
LDA.b LinkState : CMP.b #$14 : BEQ ++ ; skip if we're mid-mirror
@@ -357,6 +358,12 @@ PrepItemAnimation:
LDA.b FrameCounter : AND.b #$30 : LSR #4 : STA.w SpriteDirectionTable, X
RTS
PrepAncillaAnimation:
PHP : SEP #$20
LDA.b FrameCounter : AND.b #$30 : LSR #4 : STA.w AncillaDirection, X
PLP
RTL
WaitForNewVBlank:
LDA.b #$00 : STA.w NMITIMEN ; Disable interrupts
- LDA.w RDNMI : BMI - ; Wait until v-blank is over

View File

@@ -352,7 +352,7 @@ SetupEnemyDropIndicator:
; LDA.w DungeonID : AND.w #$00FF : CMP.w #$00FF : BEQ .skipCompassChecks
; compass checks
; does compass for dungeon exist?
; LSR : TAX : LDA.l ExistsTransfer, X : TAX : LDA.l CompassExists, X : BEQ .skipCompassChecks
; LSR : TAX : LDA.l CompassExists : AND.l DungeonItemMasks,X : BEQ .skipCompassChecks
; do we have the compass
; sewers? outstanding?
; LDA.l CompassField : LDX.w DungeonID : AND.l DungeonMask, X : BEQ .done