Merge branch 'main' into kara
This commit is contained in:
151
events.asm
151
events.asm
@@ -1,13 +1,6 @@
|
||||
;--------------------------------------------------------------------------------
|
||||
; OnLoadOW
|
||||
;--------------------------------------------------------------------------------
|
||||
;OnLoadMap:
|
||||
; LDA OverworldEventDataWRAM+$5B ; thing we wrote over
|
||||
;RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnPrepFileSelect:
|
||||
LDA $11 : CMP.b #$03 : BNE +
|
||||
LDA.b #$06 : STA $14 ; thing we wrote over
|
||||
LDA.b GameSubMode : CMP.b #$03 : BNE +
|
||||
LDA.b #$06 : STA.b NMISTRIPES ; thing we wrote over
|
||||
RTL
|
||||
+
|
||||
JSL.l LoadAlphabetTilemap
|
||||
@@ -22,8 +15,8 @@ OnDrawHud:
|
||||
JML.l ReturnFromOnDrawHud
|
||||
;--------------------------------------------------------------------------------
|
||||
OnDungeonEntrance:
|
||||
STA $7EC172 ; thing we wrote over
|
||||
JSL MaybeFlagCompassTotalEntrance
|
||||
STA.l PegColor ; thing we wrote over
|
||||
JSL MaybeFlagDungeonTotalsEntrance
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnPlayerDead:
|
||||
@@ -40,7 +33,7 @@ OnDungeonExit:
|
||||
JSL.l SQEGFix
|
||||
PLP : PLA
|
||||
|
||||
STA $040C : STZ $04AC ; thing we wrote over
|
||||
STA.w DungeonID : STZ.w Map16ChangeIndex ; thing we wrote over
|
||||
|
||||
PHA : PHP
|
||||
JSL.l HUD_RebuildLong
|
||||
@@ -51,17 +44,17 @@ RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnQuit:
|
||||
JSL.l SQEGFix
|
||||
LDA.b #$00 : STA $7F5035 ; bandaid patch bug with mirroring away from text
|
||||
LDA.b #$10 : STA $1C ; thing we wrote over
|
||||
LDA.b #$00 : STA.l AltTextFlag ; bandaid patch bug with mirroring away from text
|
||||
LDA.b #$10 : STA.b MAINDESQ ; thing we wrote over
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnUncleItemGet:
|
||||
PHA
|
||||
|
||||
LDA.l EscapeAssist
|
||||
BIT.b #$04 : BEQ + : STA InfiniteMagicModifier : +
|
||||
BIT.b #$02 : BEQ + : STA InfiniteBombsModifier : +
|
||||
BIT.b #$01 : BEQ + : STA InfiniteArrowsModifier : +
|
||||
BIT.b #$04 : BEQ + : STA.l InfiniteMagic : +
|
||||
BIT.b #$02 : BEQ + : STA.l InfiniteBombs : +
|
||||
BIT.b #$01 : BEQ + : STA.l InfiniteArrows : +
|
||||
|
||||
PLA
|
||||
JSL.l Link_ReceiveItem
|
||||
@@ -88,19 +81,19 @@ OnAga2Defeated:
|
||||
JML.l IncrementAgahnim2Sword
|
||||
;--------------------------------------------------------------------------------
|
||||
OnFileCreation:
|
||||
; Copy initial SRAM state from ROM to cart SRAM
|
||||
; If the inital SRAM table is move these addresses must be changed
|
||||
PHB
|
||||
LDA.w #$03D7 ; \
|
||||
LDX.w #$B000 ; | Copies from beginning of inital sram table up to file name
|
||||
LDY.w #$0000 ; | (exclusively)
|
||||
MVN SRAMBank, SRAMTableBank ; /
|
||||
; Skip file name and validity value
|
||||
LDA.w #$010C ; \
|
||||
LDX.w #$B3E3 ; | Rando-Specific Assignments & Game Stats block
|
||||
LDY.w #$03E3 ; |
|
||||
MVN SRAMBank, SRAMTableBank ; /
|
||||
PLB
|
||||
; Copy initial SRAM state from ROM to cart SRAM
|
||||
; If the inital SRAM table is move these addresses must be changed
|
||||
PHB
|
||||
LDA.w #$03D7 ; \
|
||||
LDX.w #$B000 ; | Copies from beginning of inital sram table up to file name
|
||||
LDY.w #$0000 ; | (exclusively)
|
||||
MVN !SRAMBank, !SRAMTableBank ; /
|
||||
; Skip file name and validity value
|
||||
LDA.w #$010C ; \
|
||||
LDX.w #$B3E3 ; | Rando-Specific Assignments & Game Stats block
|
||||
LDY.w #$03E3 ; |
|
||||
MVN !SRAMBank, !SRAMTableBank ; /
|
||||
PLB
|
||||
|
||||
; resolve instant post-aga if standard
|
||||
SEP #$20
|
||||
@@ -111,33 +104,29 @@ OnFileCreation:
|
||||
REP #$20
|
||||
|
||||
; Set validity value and do some cleanup. Jump to checksum.
|
||||
LDA.w #$55AA : STA.l $7003E1
|
||||
STZ $00
|
||||
STZ $01
|
||||
LDX.b $00
|
||||
LDY.w #$0000
|
||||
TYA
|
||||
LDA.w #$55AA : STA.l FileValiditySRAM
|
||||
JSL.l WriteNewFileChecksum
|
||||
STZ.b Scrap00
|
||||
STZ.b Scrap01
|
||||
|
||||
JML.l InitializeSaveFile_build_checksum
|
||||
JML.l InitializeSaveFile_done
|
||||
;--------------------------------------------------------------------------------
|
||||
!RNG_ITEM_LOCK_IN = "$7F5090"
|
||||
OnFileLoad:
|
||||
REP #$10 ; set 16 bit index registers
|
||||
JSL.l EnableForceBlank ; what we wrote over
|
||||
|
||||
LDA.b #$07 : STA $210C ; Restore screen 3 to normal tile area
|
||||
LDA.b #$07 : STA.w BG34NBA ; Restore screen 3 to normal tile area
|
||||
|
||||
LDA.l FileMarker : BNE +
|
||||
JSL.l OnNewFile
|
||||
LDA.b #$FF : STA.l FileMarker
|
||||
+
|
||||
LDA.w $010A : BNE + ; don't adjust the worlds for "continue" or "save-continue"
|
||||
LDA.l $7EC011 : BNE + ; don't adjust worlds if mosiac is enabled (Read: mirroring in dungeon)
|
||||
LDA.w DeathReloadFlag : BNE + ; don't adjust the worlds for "continue" or "save-continue"
|
||||
LDA.l MosaicLevel : BNE + ; don't adjust worlds if mosiac is enabled (Read: mirroring in dungeon)
|
||||
JSL.l DoWorldFix
|
||||
+
|
||||
JSL.l MasterSwordFollowerClear
|
||||
LDA.b #$FF : STA !RNG_ITEM_LOCK_IN ; reset rng item lock-in
|
||||
LDA.b #$00 : STA $7F5001 ; mark fake flipper softlock as impossible
|
||||
LDA.b #$FF : STA.l RNGLockIn ; reset rng item lock-in
|
||||
LDA.l GenericKeys : BEQ +
|
||||
LDA.l CurrentGenericKeys : STA.l CurrentSmallKeys ; copy generic keys to key counter
|
||||
+
|
||||
@@ -152,86 +141,78 @@ OnFileLoad:
|
||||
SEP #$10 ; restore 8 bit index registers
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
!RNG_ITEM_LOCK_IN = "$7F5090"
|
||||
OnNewFile:
|
||||
PHX : PHP
|
||||
; reset some values on new file that are otherwise only reset on hard reset
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
STZ $03C4 ; ancilla slot index
|
||||
STZ $047A ; EG
|
||||
STZ $0B08 : STZ $0B09 ; arc variable
|
||||
STZ $0CFB ; enemies killed (pull trees)
|
||||
STZ $0CFC ; times taken damage (pull trees)
|
||||
STZ $0FC7 : STZ $0FC8 : STZ $0FC9 : STZ $0FCA : STZ $0FCB : STZ $0FCC : STZ $0FCD ; prize packs
|
||||
LDA #$00 : STA $7EC011 ; mosaic
|
||||
JSL InitRNGPointerTable ; boss RNG
|
||||
STZ.w AncillaSearch
|
||||
STZ.w LayerAdjustment ; EG
|
||||
STZ.w ArcVariable : STZ.w ArcVariable+1
|
||||
STZ.w TreePullKills
|
||||
STZ.w TreePullHits
|
||||
STZ.w PrizePackIndexes
|
||||
STZ.w PrizePackIndexes+1
|
||||
STZ.w PrizePackIndexes+2
|
||||
STZ.w PrizePackIndexes+3
|
||||
STZ.w PrizePackIndexes+4
|
||||
STZ.w PrizePackIndexes+5
|
||||
STZ.w PrizePackIndexes+6
|
||||
LDA.b #$00 : STA.l MosaicLevel
|
||||
JSL InitRNGPointerTable
|
||||
PLP : PLX
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnInitFileSelect:
|
||||
; LDA.b #$10 : STA $BC ; init sprite pointer - does nothing unless spriteswap.asm is included
|
||||
; JSL.l SpriteSwap_SetSprite
|
||||
LDA.b #$51 : STA $0AA2 ;<-- Line missing from JP1.0, needed to ensure "extra" copy of naming screen graphics are loaded.
|
||||
LDA.b #$51 : STA.w $0AA2 ;<-- Line missing from JP1.0, needed to ensure "extra" copy of naming screen graphics are loaded.
|
||||
JSL.l EnableForceBlank
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnLinkDamaged:
|
||||
JSL.l IncrementDamageTakenCounter_Arb
|
||||
;JSL.l FlipperKill
|
||||
JML.l OHKOTimer
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
OnEnterWater:
|
||||
JSL.l RegisterWaterEntryScreen
|
||||
|
||||
JSL.l MysteryWaterFunction
|
||||
LDX.b #$04
|
||||
RTL
|
||||
;OnEnterWater:
|
||||
; JSL.l UnequipCapeQuiet ; what we wrote over
|
||||
;RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnLinkDamagedFromPit:
|
||||
JSL.l OHKOTimer
|
||||
|
||||
LDA.l AllowAccidentalMajorGlitch
|
||||
BEQ ++
|
||||
-- LDA.b #$14 : STA $11 ; thing we wrote over
|
||||
-- LDA.b #$14 : STA.b GameSubMode ; thing we wrote over
|
||||
|
||||
RTL
|
||||
|
||||
++ LDA.b $10 : CMP.b #$12 : BNE --
|
||||
++ LDA.b GameMode : CMP.b #$12 : BNE --
|
||||
|
||||
STZ.b $11
|
||||
STZ.b GameSubMode
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
OnLinkDamagedFromPitOutdoors:
|
||||
JML.l OHKOTimer ; make sure this is last
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
!RNG_ITEM_LOCK_IN = "$7F5090"
|
||||
OnOWTransition:
|
||||
JSL.l FloodGateReset
|
||||
JSL.l FlipperFlag
|
||||
JSL.l StatTransitionCounter
|
||||
PHP
|
||||
SEP #$20 ; set 8-bit accumulator
|
||||
LDA.b #$FF : STA !RNG_ITEM_LOCK_IN ; clear lock-in
|
||||
LDA.b #$FF : STA.l RNGLockIn ; clear lock-in
|
||||
PLP
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
!DARK_DUCK_TEMP = "$7F509C"
|
||||
OnLoadDuckMap:
|
||||
LDA !DARK_DUCK_TEMP
|
||||
LDA.l DuckMapFlag
|
||||
BNE +
|
||||
INC : STA !DARK_DUCK_TEMP
|
||||
JSL OverworldMap_InitGfx : DEC $0200
|
||||
|
||||
INC : STA.l DuckMapFlag
|
||||
JSL OverworldMap_InitGfx : DEC.w SubModuleInterface
|
||||
RTL
|
||||
+
|
||||
LDA.b #$00 : STA !DARK_DUCK_TEMP
|
||||
LDA.b #$00 : STA.l DuckMapFlag
|
||||
JML OverworldMap_DarkWorldTilemap
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
PreItemGet:
|
||||
LDA.b #$01 : STA !ITEM_BUSY ; mark item as busy
|
||||
LDA.b #$01 : STA.l BusyItem ; mark item as busy
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
PostItemGet:
|
||||
@@ -239,19 +220,19 @@ PostItemGet:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
PostItemAnimation:
|
||||
LDA.b #$00 : STA !ITEM_BUSY ; mark item as finished
|
||||
LDA.b #$00 : STA.l BusyItem ; mark item as finished
|
||||
|
||||
LDA $7F509F : BEQ +
|
||||
STZ $1CF0 : STZ $1CF1 ; reset decompression buffer
|
||||
LDA.l TextBoxDefer : BEQ +
|
||||
STZ.w TextID : STZ.w TextID+1 ; reset decompression buffer
|
||||
JSL.l Main_ShowTextMessage_Alt
|
||||
LDA.b #$00 : STA $7F509F
|
||||
LDA.b #$00 : STA.l TextBoxDefer
|
||||
+
|
||||
|
||||
LDA.w $02E9 : CMP.b #$01 : BNE +
|
||||
LDA.b $2F : BEQ +
|
||||
LDA.w ItemReceiptMethod : CMP.b #$01 : BNE +
|
||||
LDA.b LinkDirection : BEQ +
|
||||
JSL.l IncrementChestTurnCounter
|
||||
+
|
||||
|
||||
STZ $02E9 : LDA $0C5E, X ; thing we wrote over to get here
|
||||
STZ.w ItemReceiptMethod : LDA.w AncillaGet, X ; thing we wrote over to get here
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user