Housekeeping

This commit is contained in:
scawful
2024-11-16 12:32:55 -05:00
parent c5374768c4
commit a2af6a176a
5 changed files with 104 additions and 118 deletions

View File

@@ -27,7 +27,7 @@
; When $xy < $80 ; When $xy < $80
; $x = Duration Rate (0-7) ; $x = Duration Rate (0-7)
; $y = Velocity Rate (0-15) ; $y = Velocity Rate (0-15)
; VByte itself means the length of the following note ; VByte itself means the length of the following note
; (48 = quarter note, usually). ; (48 = quarter note, usually).
macro SetDuration(v) macro SetDuration(v)
@@ -156,10 +156,10 @@ dw <addr>
db <repeat> db <repeat>
endmacro endmacro
; Set the left and right position of the sound. ; Set the left and right position of the sound.
; The range of values is as narrow as 0 to 20 ; The range of values is as narrow as 0 to 20
; (the actual setting ratio is defined in the internal table). ; (the actual setting ratio is defined in the internal table).
; Depending on the version, it depends on whether the large value is left or right. ; Depending on the version, it depends on whether the large value is left or right.
; The upper 2 bits are used for phase inversion. ; The upper 2 bits are used for phase inversion.
; Lower-5bit for pan value (0-20), higher-2bit is used for phase reverse switch. ; Lower-5bit for pan value (0-20), higher-2bit is used for phase reverse switch.
macro SetPan(v) macro SetPan(v)
@@ -171,7 +171,7 @@ macro PanFade(length, dest)
db $E2, <length>, <dest> db $E2, <length>, <dest>
endmacro endmacro
; Enables vibrato (pitch fluctuation / pitch swing). ; Enables vibrato (pitch fluctuation / pitch swing).
; Set zz-sized vibrato at yy speed after xx time. ; Set zz-sized vibrato at yy speed after xx time.
macro VibratoOn(delay, rate, depth) macro VibratoOn(delay, rate, depth)
db $E3, <delay>, <rate>, <depth> db $E3, <delay>, <rate>, <depth>
@@ -187,24 +187,24 @@ db $E6, <length>, <dest>
endmacro endmacro
; Specifies the playing speed of the song. ; Specifies the playing speed of the song.
; Value of about 24/60 is written. ; Value of about 24/60 is written.
macro TempoFade(length, dest) macro TempoFade(length, dest)
db $E8, <length>, <dest> db $E8, <length>, <dest>
endmacro endmacro
; Raises the playing pitch of all channels by xx ; Raises the playing pitch of all channels by xx
; (negative numbers can be specified). ; (negative numbers can be specified).
macro GlobalTranspose(tone) macro GlobalTranspose(tone)
db $E9, <tone> db $E9, <tone>
endmacro endmacro
; Raises the playing pitch of a single channel by xx ; Raises the playing pitch of a single channel by xx
; (negative numbers can also be specified). ; (negative numbers can also be specified).
macro ChannelTranspose(tone) macro ChannelTranspose(tone)
db $EA, <tone> db $EA, <tone>
endmacro endmacro
; Enable tremolo (volume fluctuation). ; Enable tremolo (volume fluctuation).
; Set the tremolo of the size of zz to be applied at the speed of yy after xx time. ; Set the tremolo of the size of zz to be applied at the speed of yy after xx time.
macro TremoloOn(delay, rate, depth) macro TremoloOn(delay, rate, depth)
db $EB, <delay>, <rate>, <depth> db $EB, <delay>, <rate>, <depth>
@@ -218,22 +218,22 @@ macro ChannelVolumeFade(length, dest)
db $EE, <length>, <dest> db $EE, <length>, <dest>
endmacro endmacro
; After temporarily setting the vibrato depth to 0, ; After temporarily setting the vibrato depth to 0,
; it will smoothly return to the original value over xx time. ; it will smoothly return to the original value over xx time.
macro VibratoFade(length) macro VibratoFade(length)
db $F0, <length> db $F0, <length>
endmacro endmacro
; Specifies that subsequent sounds will be ; Specifies that subsequent sounds will be
; "higher by zz over yy time after xx time." ; "higher by zz over yy time after xx time."
; zz is a semitone unit, and you can specify a negative number. ; zz is a semitone unit, and you can specify a negative number.
macro PitchEnvelopeTo(delay, length, key) macro PitchEnvelopeTo(delay, length, key)
db $F1, <delay>, <length>, <key> db $F1, <delay>, <length>, <key>
endmacro endmacro
; Specifies that subsequent notes will be ; Specifies that subsequent notes will be
; "played at a pitch that is zz higher than normal, ; "played at a pitch that is zz higher than normal,
; and will return to normal pitch over yy time after xx time." ; and will return to normal pitch over yy time after xx time."
; zz is a semitone unit, and you can specify a negative number. ; zz is a semitone unit, and you can specify a negative number.
macro PitchEnvelopeFrom(delay, length, key) macro PitchEnvelopeFrom(delay, length, key)
db $F2, <delay>, <length>, <key> db $F2, <delay>, <length>, <key>
@@ -243,14 +243,14 @@ macro PitchEnvelopeOff()
db $F3 db $F3
endmacro endmacro
; Change the pitch slightly. ; Change the pitch slightly.
; Only positive numbers can be specified, so the pitch cannot be lowered. ; Only positive numbers can be specified, so the pitch cannot be lowered.
; xx = Unsigned. Make the pitch xx/256 semitones higher. ; xx = Unsigned. Make the pitch xx/256 semitones higher.
macro Tuning(v) macro Tuning(v)
db $F4, <v> db $F4, <v>
endmacro endmacro
; Specifies the channel and volume at which echo is enabled. ; Specifies the channel and volume at which echo is enabled.
; The value set in the register remains the same. ; The value set in the register remains the same.
; xx = Echo Switch (EON) ; xx = Echo Switch (EON)
; yy = Echo Left Volume (EVOL (L)) ; yy = Echo Left Volume (EVOL (L))
@@ -284,15 +284,15 @@ endmacro
; (pitch slide vcmd appears but note $90 has been end), utter note $92. ; (pitch slide vcmd appears but note $90 has been end), utter note $92.
; $90, $e0 01, $f9 $00 $01 $91, $92 ; $90, $e0 01, $f9 $00 $01 $91, $92
; Smoothly changes the pitch of the sound being pronounced. ; Smoothly changes the pitch of the sound being pronounced.
; After xx time from play, it will be changed to the zz pitch ; After xx time from play, it will be changed to the zz pitch
; (absolute designation) over yy time. ; (absolute designation) over yy time.
; If you want to raise or lower the sound in the middle of one note, ; If you want to raise or lower the sound in the middle of one note,
; write this command continuously. ; write this command continuously.
; If the pronunciation time is long, you can write it with Thai. ; If the pronunciation time is long, you can write it with Thai.
; Normally, after one Note, it waits for the length of the note ; Normally, after one Note, it waits for the length of the note
; and then processes the next byte, but only this command ; and then processes the next byte, but only this command
; is read and processed immediately. ; is read and processed immediately.
macro PitchSlide(delay, length, note) macro PitchSlide(delay, length, note)
db $F9, <delay>, <length>, <note> db $F9, <delay>, <length>, <note>
@@ -343,23 +343,23 @@ Tie = $C8
Rest = $C9 Rest = $C9
; Percussion Note ($CA-DF) ; Percussion Note ($CA-DF)
; VByte itself means percussion note (#). ; VByte itself means percussion note (#).
; Relations between percussion note and SRCN depends on $FA. ; Relations between percussion note and SRCN depends on $FA.
; By default, percussion uses the same instrument set as the song, ; By default, percussion uses the same instrument set as the song,
; and all percussion is keyed on with a note of $A4. ; and all percussion is keyed on with a note of $A4.
; The starting ID to use for all channels can be redefined by VCMD $FA. ; The starting ID to use for all channels can be redefined by VCMD $FA.
; ========================================================= ; =========================================================
; Tone Map ; Tone Map
; ;
; C C+ D D+ E F F+ G G+ A A+ B ; C C+ D D+ E F F+ G G+ A A+ B
; Oc1 80 81 82 83 84 85 86 87 88 89 8A 8B ; Oc1 80 81 82 83 84 85 86 87 88 89 8A 8B
; Oc2 8C 8D 8E 8F 90 91 92 93 94 95 96 97 ; Oc2 8C 8D 8E 8F 90 91 92 93 94 95 96 97
; Oc3 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 ; Oc3 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3
; Oc4 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF ; Oc4 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
; Oc5 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB ; Oc5 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB
; Oc6 BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 ; Oc6 BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7
C1 = $80 C1 = $80
C1s = $81 C1s = $81
@@ -437,4 +437,4 @@ G6 = $C3
G6s = $C4 G6s = $C4
A6 = $C5 A6 = $C5
A6s = $C6 A6s = $C6
B6 = $C7 B6 = $C7

View File

@@ -101,7 +101,7 @@ Module09_Overworld:
Module09_MirrorWarp ; 0x2C Module09_MirrorWarp ; 0x2C
Module09_2D_WaitForBird ; 0x2D Module09_2D_WaitForBird ; 0x2D
Module09_2E_Whirlpool ; 0x2E Module09_2E_Whirlpool ; 0x2E
Module09_2F Module09_2F
Module07_Underworld: Module07_Underworld:
@@ -249,23 +249,23 @@ STA.w $0AAE ; PALSPR2
; PALBG ; PALBG
; 0x00 - Kalyxo Castle ; 0x00 - Kalyxo Castle
; 0x01 - Blue ; 0x01 - Blue
; 0x02 - House ; 0x02 - House
; 0x03 - Green ; 0x03 - Green
; 0x04 - Glacia Estate Ice ; 0x04 - Glacia Estate Ice
; 0x05 - Zora Temple ; 0x05 - Zora Temple
; 0x06 - Tail Palace Pink ; 0x06 - Tail Palace Pink
; 0x07 - Goron Mines Cave Red ; 0x07 - Goron Mines Cave Red
; 0x08 - Mushroom Grotto Gray ; 0x08 - Mushroom Grotto Gray
; 0x09 ; 0x09
; 0x0A (10) - Ranch Pink ; 0x0A (10) - Ranch Pink
; 0x0B (11) - Another green ; 0x0B (11) - Another green
; 0x0C - Goron Mines Cave Red ; 0x0C - Goron Mines Cave Red
; 0x0D ; 0x0D
; 0x0E ; 0x0E
; 0x0F ; 0x0F
; 0x10 - ; 0x10 -
; 0x (19) - ; 0x (19) -
UnderworldPaletteSets: UnderworldPaletteSets:
db $00, $00, $03, $01 ; 0x00 db $00, $00, $03, $01 ; 0x00
@@ -277,7 +277,7 @@ db $04, $04, $03, $0A ; 0x05 House
db $0C, $05, $08, $14 ; 0x06 Tail Palace db $0C, $05, $08, $14 ; 0x06 Tail Palace
db $0E, $00, $03, $0A ; 0x07 Goron Mines/Caves db $0E, $00, $03, $0A ; 0x07 Goron Mines/Caves
db $02, $00, $0F, $14 ; 0x08 Castle Basement db $02, $00, $0F, $14 ; 0x08 Castle Basement
db $0A, $02, $00, $07 ; 0x09 db $0A, $02, $00, $07 ; 0x09
db $02, $00, $0F, $0C ; 0x0A db $02, $00, $0F, $0C ; 0x0A
db $06, $00, $06, $07 ; 0x0B db $06, $00, $06, $07 ; 0x0B
db $00, $00, $0E, $12 ; 0x0C Kalyxo Castle db $00, $00, $0E, $12 ; 0x0C Kalyxo Castle
@@ -291,7 +291,7 @@ db $08, $00, $04, $0C ; 0x13 Glacia Estate
db $08, $00, $04, $09 ; 0x14 db $08, $00, $04, $09 ; 0x14
db $04, $00, $03, $01 ; 0x15 House db $04, $00, $03, $01 ; 0x15 House
db $14, $00, $04, $04 ; 0x16 db $14, $00, $04, $04 ; 0x16
db $14, $00, $14, $0C ; 0x17 db $14, $00, $14, $0C ; 0x17
db $18, $05, $07, $0B ; 0x18 Lava Lands Cave/Turtle Rock db $18, $05, $07, $0B ; 0x18 Lava Lands Cave/Turtle Rock
db $18, $06, $10, $0C ; 0x19 db $18, $06, $10, $0C ; 0x19
db $1A, $05, $08, $14 ; 0x1A Dragon Ship db $1A, $05, $08, $14 ; 0x1A Dragon Ship
@@ -300,7 +300,7 @@ db $06, $00, $03, $0A ; 0x1C
db $1C, $00, $03, $01 ; 0x1D db $1C, $00, $03, $01 ; 0x1D
db $1E, $00, $0B, $11 ; 0x1E Swordsmith db $1E, $00, $0B, $11 ; 0x1E Swordsmith
db $04, $00, $0B, $11 ; 0x1F db $04, $00, $0B, $11 ; 0x1F
db $0E, $00, $00, $02 ; 0x20 db $0E, $00, $00, $02 ; 0x20
db $20, $08, $13, $0D ; 0x21 Ganondorf Boss db $20, $08, $13, $0D ; 0x21 Ganondorf Boss
db $0A, $00, $03, $0A ; 0x22 Zora Temple db $0A, $00, $03, $0A ; 0x22 Zora Temple
db $14, $00, $04, $04 ; 0x23 db $14, $00, $04, $04 ; 0x23
@@ -309,4 +309,3 @@ db $1A, $0A, $00, $00 ; 0x25 Dragon Ship
db $00, $00, $03, $02 ; 0x26 db $00, $00, $03, $02 ; 0x26
db $0E, $00, $03, $07 ; 0x27 db $0E, $00, $03, $07 ; 0x27
db $1A, $05, $05, $0B ; 0x28 Dragon Ship db $1A, $05, $05, $0B ; 0x28 Dragon Ship

View File

@@ -11,7 +11,7 @@
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it !ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
!SmallShadow = 01 ; 01 = small shadow, 00 = no shadow !SmallShadow = 01 ; 01 = small shadow, 00 = no shadow
!Shadow = 01 ; 00 = don't draw shadow, 01 = draw a shadow !Shadow = 01 ; 00 = don't draw shadow, 01 = draw a shadow
!Palette = 0 ; Unused in this template (can be 0 to 7) !Palette = 0 ; Unused in this template (can be 0 to 7)
!Hitbox = 0 ; 00 to 31, can be viewed in sprite draw tool !Hitbox = 0 ; 00 to 31, can be viewed in sprite draw tool
!Persist = 00 ; 01 = your sprite continue to live offscreen !Persist = 00 ; 01 = your sprite continue to live offscreen
@@ -32,7 +32,7 @@
; ========================================================= ; =========================================================
%Set_Sprite_Properties(Sprite_Farore_Prep, Sprite_Farore_Long) %Set_Sprite_Properties(Sprite_Farore_Prep, Sprite_Farore_Long)
; ========================================================= ; =========================================================
@@ -56,13 +56,11 @@ Sprite_Farore_Long:
Sprite_Farore_Prep: Sprite_Farore_Prep:
{ {
PHB : PHK : PLB PHB : PHK : PLB
LDA.b #$80 : STA $0CAA, X ; Don't kill Farore when she goes off screen
LDA.l $7EF300 LDA.b #$80 : STA $0CAA, X ; Don't kill Farore when she goes off screen
BEQ .PlayIntro LDA.l $7EF300 : BEQ .PlayIntro
STZ.w $0DD0, X ; Kill the sprite STZ.w $0DD0, X ; Kill the sprite
.PlayIntro .PlayIntro
PLB PLB
RTL RTL
@@ -75,7 +73,6 @@ Sprite_Farore_Prep:
WALKSPEED = 14 WALKSPEED = 14
STORY_STATE = $B6 STORY_STATE = $B6
Sprite_Farore_Main: Sprite_Farore_Main:
{ {
LDA.w SprAction, X; Load the SprAction LDA.w SprAction, X; Load the SprAction
@@ -90,22 +87,19 @@ Sprite_Farore_Main:
dw MakuArea_FaroreFollowPlayer dw MakuArea_FaroreFollowPlayer
dw MakuArea_FaroreWaitForKydrog dw MakuArea_FaroreWaitForKydrog
; 00 ; 00
IntroStart: IntroStart:
{ {
LDA #$01 : STA InCutScene LDA #$01 : STA InCutScene
LDA $B6 : CMP.b #$01 : BEQ .maku_area LDA $B6 : CMP.b #$01 : BEQ .maku_area
CMP.b #$02 : BEQ .waiting CMP.b #$02 : BEQ .waiting
%GotoAction(1)
%GotoAction(1) RTS
RTS .maku_area
%GotoAction(6)
RTS
.maku_area .waiting
%GotoAction(6)
RTS
.waiting
%GotoAction(7) %GotoAction(7)
RTS RTS
} }
@@ -115,13 +109,11 @@ Sprite_Farore_Main:
{ {
LDA.w WALKSPEED : STA.b $57 ; Slow Link down for the cutscene LDA.w WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
LDA.b #$08 : STA.b $49 ; Auto-movement north LDA.b #$08 : STA.b $49 ; Auto-movement north
LDA.b $20 ; Link's Y Position
CMP.b #$9C ; Y = 6C
BCC .linkistoofar
%GotoAction(2)
.linkistoofar ; Link's Y Position - Y = 6C
LDA.b $20 : CMP.b #$9C : BCC .linkistoofar
%GotoAction(2)
.linkistoofar
%PlayAnimation(6, 6, 8) ; Farore look towards Link %PlayAnimation(6, 6, 8) ; Farore look towards Link
RTS RTS
} }
@@ -129,27 +121,24 @@ Sprite_Farore_Main:
; 02 ; 02
MoveLeftTowardsFarore: MoveLeftTowardsFarore:
{ {
; Move Link Left ; Move Link Left
LDA.w WALKSPEED : STA.b $57 ; Slow Link down for the cutscene LDA.w WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
LDA.b #$02 : STA.b $49 LDA.b #$02 : STA.b $49
LDA.b $22 ; Link's X position ; Link's X position
CMP.b #$1A LDA.b $22 : CMP.b #$1A : BCS .linkistoofar
BCS .linkistoofar STZ.b $49 ; kill automove
LDA.b #$20
STZ.b $49 ; kill automove STA.w SprTimerA, X ; set timer A to 0x10
LDA.b #$20 %PlayAnimation(0, 0, 8)
STA.w SprTimerA, X ; set timer A to 0x10 %GotoAction(3)
%PlayAnimation(0, 0, 8) .linkistoofar
%GotoAction(3)
.linkistoofar
RTS RTS
} }
; 03 ; 03
WaitAndMessage: WaitAndMessage:
{ {
%PlayAnimation(1, 2, 8) %PlayAnimation(1, 2, 8)
LDA.b #$15 LDA.b #$15
JSL Sprite_ApplySpeedTowardsPlayer JSL Sprite_ApplySpeedTowardsPlayer
@@ -159,7 +148,7 @@ Sprite_Farore_Main:
STZ $2F STZ $2F
LDA #$00 : STA InCutScene LDA #$00 : STA InCutScene
%ShowUnconditionalMessage($0E) ; "I am Farore, the Oracle of Secrets." %ShowUnconditionalMessage($0E) ; "I am Farore, the Oracle of Secrets."
%GotoAction(4) %GotoAction(4)
+ +
RTS RTS
@@ -189,7 +178,7 @@ Sprite_Farore_Main:
LDA #$02 : STA $7EF3C5 ; (0 - intro, 1 - pendants, 2 - crystals) LDA #$02 : STA $7EF3C5 ; (0 - intro, 1 - pendants, 2 - crystals)
LDA #$05 : STA $012D ; turn off rain sound LDA #$05 : STA $012D ; turn off rain sound
LDA #$01 : STA $B6 ; Set Story State LDA #$01 : STA $B6 ; Set Story State
JSL Sprite_LoadGfxProperties JSL Sprite_LoadGfxProperties
%GotoAction(6) %GotoAction(6)
@@ -213,7 +202,7 @@ Sprite_Farore_Main:
} }
; 07 ; 07
; Look at the RAM SprY to $0D60, the first few are the actual positions of the sprite ; Look at the RAM SprY to $0D60, the first few are the actual positions of the sprite
; that you can just set manually or $0D40 and $0D50 are the "speeds" of the sprites irrc ; that you can just set manually or $0D40 and $0D50 are the "speeds" of the sprites irrc
; You can set one of the speeds and then call the function called Sprite_Move ; You can set one of the speeds and then call the function called Sprite_Move
; And then that will handle it applying the speed for you ; And then that will handle it applying the speed for you
@@ -242,17 +231,17 @@ Sprite_Farore_Draw:
.nextTile .nextTile
PHX ; Save current Tile Index? PHX ; Save current Tile Index?
TXA : CLC : ADC $06 ; Add Animation Index Offset TXA : CLC : ADC $06 ; Add Animation Index Offset
PHA ; Keep the value with animation index offset? PHA ; Keep the value with animation index offset?
ASL A : TAX ASL A : TAX
REP #$20 REP #$20
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
AND.w #$0100 : STA $0E AND.w #$0100 : STA $0E
INY INY
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
CLC : ADC #$0010 : CMP.w #$0100 CLC : ADC #$0010 : CMP.w #$0100
@@ -269,14 +258,14 @@ Sprite_Farore_Draw:
INY INY
LDA .properties, X : STA ($90), Y LDA .properties, X : STA ($90), Y
PHY PHY
TYA : LSR #2 : TAY TYA : LSR #2 : TAY
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
PLY : INY PLY : INY
PLX : DEX : BPL .nextTile PLX : DEX : BPL .nextTile
PLX PLX

View File

@@ -9,7 +9,7 @@
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it !ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow !SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow !Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
!Palette = 00 ; Unused in this template (can be 0 to 7) !Palette = 00 ; Unused in this template (can be 0 to 7)
!Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool !Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool
!Persist = 00 ; 01 = your sprite continue to live offscreen !Persist = 00 ; 01 = your sprite continue to live offscreen
@@ -57,7 +57,7 @@ Sprite_Goron_Prep:
LDA.b #$03 : STA.w SprAction, X LDA.b #$03 : STA.w SprAction, X
JMP ++ JMP ++
+ +
PHX PHX
LDX $8A LDX $8A
LDA.l $7EF280,X : CMP.b #$20 : BEQ +++ LDA.l $7EF280,X : CMP.b #$20 : BEQ +++
PLX PLX
@@ -150,17 +150,17 @@ Sprite_KalyxoGoron_Draw:
.nextTile .nextTile
PHX ; Save current Tile Index? PHX ; Save current Tile Index?
TXA : CLC : ADC $06 ; Add Animation Index Offset TXA : CLC : ADC $06 ; Add Animation Index Offset
PHA ; Keep the value with animation index offset? PHA ; Keep the value with animation index offset?
ASL A : TAX ASL A : TAX
REP #$20 REP #$20
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
AND.w #$0100 : STA $0E AND.w #$0100 : STA $0E
INY INY
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
CLC : ADC #$0010 : CMP.w #$0100 CLC : ADC #$0010 : CMP.w #$0100
@@ -177,14 +177,14 @@ Sprite_KalyxoGoron_Draw:
INY INY
LDA .properties, X : STA ($90), Y LDA .properties, X : STA ($90), Y
PHY PHY
TYA : LSR #2 : TAY TYA : LSR #2 : TAY
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
PLY : INY PLY : INY
PLX : DEX : BPL .nextTile PLX : DEX : BPL .nextTile
PLX PLX
@@ -228,17 +228,17 @@ Sprite_EonGoron_Draw:
.nextTile .nextTile
PHX ; Save current Tile Index? PHX ; Save current Tile Index?
TXA : CLC : ADC $06 ; Add Animation Index Offset TXA : CLC : ADC $06 ; Add Animation Index Offset
PHA ; Keep the value with animation index offset? PHA ; Keep the value with animation index offset?
ASL A : TAX ASL A : TAX
REP #$20 REP #$20
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
AND.w #$0100 : STA $0E AND.w #$0100 : STA $0E
INY INY
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
CLC : ADC #$0010 : CMP.w #$0100 CLC : ADC #$0010 : CMP.w #$0100
@@ -255,14 +255,14 @@ Sprite_EonGoron_Draw:
INY INY
LDA .properties, X : STA ($90), Y LDA .properties, X : STA ($90), Y
PHY PHY
TYA : LSR #2 : TAY TYA : LSR #2 : TAY
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
PLY : INY PLY : INY
PLX : DEX : BPL .nextTile PLX : DEX : BPL .nextTile
PLX PLX

View File

@@ -71,8 +71,7 @@ DontTeleportWithoutFlippers:
LDA.l $7EF356 : BNE + LDA.l $7EF356 : BNE +
RTL RTL
+ +
#_1EEEE4: LDA.b #$2E LDA.b #$2E : STA.b $11
#_1EEEE6: STA.b $11
RTL RTL
} }
@@ -90,8 +89,7 @@ Graphics_Transfer:
JSR ApplyManhandlaGraphics JSR ApplyManhandlaGraphics
JSR ApplyManhandlaPalette JSR ApplyManhandlaPalette
+ +
#_02BE5E: LDA.b $11 LDA.b $11 : CMP.b #$02
#_02BE60: CMP.b #$02
RTL RTL
} }