Cleanup todos and add comments to overworld entrances and overlays

This commit is contained in:
scawful
2024-12-02 19:57:41 -05:00
parent db4e6185d6
commit 36a78555fd
3 changed files with 257 additions and 256 deletions

View File

@@ -1,4 +1,8 @@
;Map16Definitions = $0F8000 ; =========================================================
; Custom Entrance Tile Types
; Can use eithe vanilla map16 @ $0F8000
; Or ZS Expanded @ $3D8000
Map16Definitions = $3D8000 Map16Definitions = $3D8000
Overworld_DrawMap16_Persist = $1BC97C Overworld_DrawMap16_Persist = $1BC97C
Overworld_DrawMap16_Anywhere = $1BC983 Overworld_DrawMap16_Anywhere = $1BC983
@@ -13,7 +17,6 @@ org $1BBBF4
RTL RTL
pullpc pullpc
Overworld_UseEntranceEntry: Overworld_UseEntranceEntry:
{ {
PHB : PHK : PLB PHB : PHK : PLB

View File

@@ -26,7 +26,7 @@ org $07866D
; 02 - Castle Bridge (OW 1B) ; 02 - Castle Bridge (OW 1B)
; 03 - Tail Palace (OW 2F) ; 03 - Tail Palace (OW 2F)
; 04 - Goron Mines Entrance (OW 36) ; 04 - Goron Mines Entrance (OW 36)
; 05 - TODO: Fortress of Secrets (OW 5E) ; 05 - Fortress of Secrets (OW 5E)
CameraCache = $0632 CameraCache = $0632
@@ -86,10 +86,6 @@ RTS
pullpc pullpc
; Zarby Notes
; don't forget to set $C8 to zero (STZ.b $C8)
; don't forget to set $B0 to zero (STZ.b $B0)
ShakeScreen: ShakeScreen:
{ {
REP #$20 REP #$20
@@ -665,258 +661,258 @@ Castle_EntranceAnimation:
dw Castle_Frame1 dw Castle_Frame1
dw Castle_Frame2 dw Castle_Frame2
dw Castle_RestoreCamera dw Castle_RestoreCamera
}
Castle_EndAnimation: Castle_EndAnimation:
{ {
INC.b $B0 ; increase frame INC.b $B0 ; increase frame
STZ.b $C8 ; reset timer for next frame STZ.b $C8 ; reset timer for next frame
STZ.w $04C6 STZ.w $04C6
STZ.b $B0 STZ.b $B0
STZ.w $0710 STZ.w $0710
STZ.w $02E4 STZ.w $02E4
STZ.w SprFreeze STZ.w SprFreeze
STZ.w $011A STZ.w $011A
STZ.w $011B STZ.w $011B
STZ.w $011C STZ.w $011C
STZ.w $011D STZ.w $011D
LDA.b #$1B ; SFX3.1B LDA.b #$1B ; SFX3.1B
STA.w $012F STA.w $012F
; set the overlay ; set the overlay
LDX.b $8A LDX.b $8A
LDA.l $7EF280,X LDA.l $7EF280,X
ORA.b #$20 ORA.b #$20
STA.l $7EF280,X STA.l $7EF280,X
RTS
}
Castle_RestoreCamera:
{
REP #$20
INC.w $061A : INC.w $061A
INC.w $0618 : INC.w $0618
INC.b $E8
LDA.w $0618 : CMP.w CameraCache : BNE +
SEP #$20
JSR Castle_EndAnimation
RTS RTS
+ }
SEP #$20
RTS
}
Castle_Frame0: Castle_RestoreCamera:
{ {
#_1BD017: LDA.b #$02 ; SFX3.07 REP #$20
#_1BD019: STA.w $012F
LDA.b $C8 : BEQ .doInit ; Load the timer
JMP .notfirstframe
.doInit
; Init code for the frame here
REP #$30 ; 16 bit mode
LDA.w #$0611
LDX.w #$031C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613
LDX.w #$031E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613
LDX.w #$0320
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0612
LDX.w #$0322
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0614
LDX.w #$039C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613
LDX.w #$039E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613
LDX.w #$03A0
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0615
LDX.w #$03A2
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0480
LDX.w #$029C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0479
LDX.w #$029E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0479
LDX.w #$02A0
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0481
LDX.w #$02A2
JSL $1BC97C ; Overworld_DrawMap16_Persist
SEP #$30 ; 8 bit mode
INC.b $14 ; Do tiles transfer
.notfirstframe
JSR ShakeScreen ; make the screen shake
INC.b $C8 : LDA.b $C8 : CMP.b #$2E ; Load and compare timer
BNE .wait
INC.b $B0 ; increase frame
STZ.b $C8 ; reset timer for next frame
.wait
RTS
}
Castle_Frame1: INC.w $061A : INC.w $061A
{ INC.w $0618 : INC.w $0618
LDA.b #$16 ; SFX3.16 INC.b $E8
STA.w $012F
LDA.b $C8 : BEQ .doInit ; Load the timer LDA.w $0618 : CMP.w CameraCache : BNE +
SEP #$20
JSR Castle_EndAnimation
RTS
+
SEP #$20
RTS
}
Castle_Frame0:
{
#_1BD017: LDA.b #$02 ; SFX3.07
#_1BD019: STA.w $012F
LDA.b $C8 : BEQ .doInit ; Load the timer
JMP .notfirstframe JMP .notfirstframe
.doInit .doInit
; Init code for the frame here ; Init code for the frame here
REP #$30 ; 16 bit mode REP #$30 ; 16 bit mode
LDA.w #$049E LDA.w #$0611
LDX.w #$039C LDX.w #$031C
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$049C LDA.w #$0613
LDX.w #$039E LDX.w #$031E
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0604 LDA.w #$0613
LDX.w #$03A0 LDX.w #$0320
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0608 LDA.w #$0612
LDX.w #$03A2 LDX.w #$0322
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$060A LDA.w #$0614
LDX.w #$041C LDX.w #$039C
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0495 LDA.w #$0613
LDX.w #$041E LDX.w #$039E
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0496 LDA.w #$0613
LDX.w #$0420 LDX.w #$03A0
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0499 LDA.w #$0615
LDX.w #$0422 LDX.w #$03A2
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0602 LDA.w #$0480
LDX.w #$049C LDX.w #$029C
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0606 LDA.w #$0479
LDX.w #$049E LDX.w #$029E
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0606 LDA.w #$0479
LDX.w #$04A0 LDX.w #$02A0
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$060E LDA.w #$0481
LDX.w #$04A2 LDX.w #$02A2
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0610 SEP #$30 ; 8 bit mode
LDX.w #$051C INC.b $14 ; Do tiles transfer
JSL $1BC97C ; Overworld_DrawMap16_Persist .notfirstframe
LDA.w #$0606 JSR ShakeScreen ; make the screen shake
LDX.w #$051E INC.b $C8 : LDA.b $C8 : CMP.b #$2E ; Load and compare timer
JSL $1BC97C ; Overworld_DrawMap16_Persist BNE .wait
LDA.w #$0606 INC.b $B0 ; increase frame
LDX.w #$0520 STZ.b $C8 ; reset timer for next frame
JSL $1BC97C ; Overworld_DrawMap16_Persist .wait
LDA.w #$046C RTS
LDX.w #$0522 }
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$046F
LDX.w #$059C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0469
LDX.w #$059E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$046A
LDX.w #$05A0
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$046E
LDX.w #$05A2
JSL $1BC97C ; Overworld_DrawMap16_Persist
SEP #$30 ; 8 bit mode
INC.b $14 ; Do tiles transfer
.notfirstframe
JSR ShakeScreen ; make the screen shake
INC.b $C8 : LDA.b $C8 : CMP.b #$1E ; Load and compare timer
BNE .wait
INC.b $B0 ; increase frame
STZ.b $C8 ; reset timer for next frame
.wait
RTS
}
Castle_Frame2: Castle_Frame1:
{ {
LDA.b $C8 : BEQ .doInit ; Load the timer LDA.b #$16 ; SFX3.16
JMP .notfirstframe STA.w $012F
.doInit LDA.b $C8 : BEQ .doInit ; Load the timer
; Init code for the frame here JMP .notfirstframe
REP #$30 ; 16 bit mode .doInit
LDA.w #$0108 ; Init code for the frame here
LDX.w #$061C REP #$30 ; 16 bit mode
JSL $1BC97C ; Overworld_DrawMap16_Persist LDA.w #$049E
LDA.w #$010A LDX.w #$039C
LDX.w #$0622 JSL $1BC97C ; Overworld_DrawMap16_Persist
JSL $1BC97C ; Overworld_DrawMap16_Persist LDA.w #$049C
LDA.w #$04E2 LDX.w #$039E
LDX.w #$0620 JSL $1BC97C ; Overworld_DrawMap16_Persist
JSL $1BC97C ; Overworld_DrawMap16_Persist LDA.w #$0604
LDA.w #$04E2 LDX.w #$03A0
LDX.w #$061E JSL $1BC97C ; Overworld_DrawMap16_Persist
JSL $1BC97C ; Overworld_DrawMap16_Persist LDA.w #$0608
SEP #$30 ; 8 bit mode LDX.w #$03A2
INC.b $14 ; Do tiles transfer JSL $1BC97C ; Overworld_DrawMap16_Persist
.notfirstframe LDA.w #$060A
JSR ShakeScreen ; make the screen shake LDX.w #$041C
INC.b $C8 : LDA.b $C8 : CMP.b #$1E ; Load and compare timer JSL $1BC97C ; Overworld_DrawMap16_Persist
BNE .wait LDA.w #$0495
INC.b $B0 ; increase frame LDX.w #$041E
STZ.b $C8 ; reset timer for next frame JSL $1BC97C ; Overworld_DrawMap16_Persist
.wait LDA.w #$0496
RTS LDX.w #$0420
} JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0499
LDX.w #$0422
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0602
LDX.w #$049C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0606
LDX.w #$049E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0606
LDX.w #$04A0
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$060E
LDX.w #$04A2
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0610
LDX.w #$051C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0606
LDX.w #$051E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0606
LDX.w #$0520
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$046C
LDX.w #$0522
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$046F
LDX.w #$059C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0469
LDX.w #$059E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$046A
LDX.w #$05A0
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$046E
LDX.w #$05A2
JSL $1BC97C ; Overworld_DrawMap16_Persist
SEP #$30 ; 8 bit mode
INC.b $14 ; Do tiles transfer
.notfirstframe
JSR ShakeScreen ; make the screen shake
INC.b $C8 : LDA.b $C8 : CMP.b #$1E ; Load and compare timer
BNE .wait
INC.b $B0 ; increase frame
STZ.b $C8 ; reset timer for next frame
.wait
RTS
}
Castle_Frame3: Castle_Frame2:
{ {
LDA.b $C8 : BEQ .doInit ; Load the timer LDA.b $C8 : BEQ .doInit ; Load the timer
JMP .notfirstframe JMP .notfirstframe
.doInit .doInit
; Init code for the frame here ; Init code for the frame here
REP #$30 ; 16 bit mode REP #$30 ; 16 bit mode
LDA.w #$0611 LDA.w #$0108
LDX.w #$039C LDX.w #$061C
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0612 LDA.w #$010A
LDX.w #$03A2 LDX.w #$0622
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613 LDA.w #$04E2
LDX.w #$039E LDX.w #$0620
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613 LDA.w #$04E2
LDX.w #$03A0 LDX.w #$061E
JSL $1BC97C ; Overworld_DrawMap16_Persist JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$048F SEP #$30 ; 8 bit mode
LDX.w #$031C INC.b $14 ; Do tiles transfer
JSL $1BC97C ; Overworld_DrawMap16_Persist .notfirstframe
LDA.w #$0474 JSR ShakeScreen ; make the screen shake
LDX.w #$031E INC.b $C8 : LDA.b $C8 : CMP.b #$1E ; Load and compare timer
JSL $1BC97C ; Overworld_DrawMap16_Persist BNE .wait
LDA.w #$061C INC.b $B0 ; increase frame
LDX.w #$0320 STZ.b $C8 ; reset timer for next frame
JSL $1BC97C ; Overworld_DrawMap16_Persist .wait
LDA.w #$061A RTS
LDX.w #$0322 }
JSL $1BC97C ; Overworld_DrawMap16_Persist
SEP #$30 ; 8 bit mode Castle_Frame3:
INC.b $14 ; Do tiles transfer {
.notfirstframe LDA.b $C8 : BEQ .doInit ; Load the timer
JSR ShakeScreen ; make the screen shake JMP .notfirstframe
INC.b $C8 : LDA.b $C8 : CMP.b #$1E ; Load and compare timer .doInit
BNE .wait ; Init code for the frame here
INC.b $B0 ; increase frame REP #$30 ; 16 bit mode
STZ.b $C8 ; reset timer for next frame LDA.w #$0611
.wait LDX.w #$039C
RTS JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0612
LDX.w #$03A2
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613
LDX.w #$039E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0613
LDX.w #$03A0
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$048F
LDX.w #$031C
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$0474
LDX.w #$031E
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$061C
LDX.w #$0320
JSL $1BC97C ; Overworld_DrawMap16_Persist
LDA.w #$061A
LDX.w #$0322
JSL $1BC97C ; Overworld_DrawMap16_Persist
SEP #$30 ; 8 bit mode
INC.b $14 ; Do tiles transfer
.notfirstframe
JSR ShakeScreen ; make the screen shake
INC.b $C8 : LDA.b $C8 : CMP.b #$1E ; Load and compare timer
BNE .wait
INC.b $B0 ; increase frame
STZ.b $C8 ; reset timer for next frame
.wait
RTS
}
} }
; ========================================================= ; =========================================================
@@ -1014,6 +1010,8 @@ TailPalace_EntranceAnimation:
} }
} }
; =========================================================
Goron_EntranceAnimation: Goron_EntranceAnimation:
{ {
LDA.b $B0 : ASL A : TAX ; x2 LDA.b $B0 : ASL A : TAX ; x2
@@ -1145,7 +1143,7 @@ Goron_EntranceAnimation:
RTS RTS
} }
; =========================================================
Fortress_EntranceAnimation: Fortress_EntranceAnimation:
{ {

View File

@@ -239,6 +239,9 @@ Located in the Mushroom Grotto west of the Maku Tree and Wayward Village
- [X] Eon Abyss Variant - [X] Eon Abyss Variant
- [X] Animate mines opening animation - [X] Animate mines opening animation
** DONE Fortress of Secrets Cutscene
Should use the Ganons Tower Crystal Cutscene as the base.
** ACTIVE Fix Minecart mechanics ** ACTIVE Fix Minecart mechanics
** ACTIVE Collectible Item Quests [2/6] ** ACTIVE Collectible Item Quests [2/6]
- [ ] Bananas - [ ] Bananas
@@ -269,9 +272,6 @@ Located in the Mushroom Grotto west of the Maku Tree and Wayward Village
- [ ] Improve fireball attack - [ ] Improve fireball attack
- [ ] Improve head/neck rotation - [ ] Improve head/neck rotation
** TODO Fortress of Secrets Cutscene
Should use the Ganons Tower Crystal Cutscene as the base.
** TODO End Credits ** TODO End Credits
* Timeline * Timeline