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
; $x = Duration Rate (0-7)
; $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).
macro SetDuration(v)
@@ -156,10 +156,10 @@ dw <addr>
db <repeat>
endmacro
; Set the left and right position of the sound.
; The range of values is as narrow as 0 to 20
; (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.
; Set the left and right position of the sound.
; The range of values is as narrow as 0 to 20
; (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.
; The upper 2 bits are used for phase inversion.
; Lower-5bit for pan value (0-20), higher-2bit is used for phase reverse switch.
macro SetPan(v)
@@ -171,7 +171,7 @@ macro PanFade(length, dest)
db $E2, <length>, <dest>
endmacro
; Enables vibrato (pitch fluctuation / pitch swing).
; Enables vibrato (pitch fluctuation / pitch swing).
; Set zz-sized vibrato at yy speed after xx time.
macro VibratoOn(delay, rate, depth)
db $E3, <delay>, <rate>, <depth>
@@ -187,24 +187,24 @@ db $E6, <length>, <dest>
endmacro
; 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)
db $E8, <length>, <dest>
endmacro
; Raises the playing pitch of all channels by xx
; Raises the playing pitch of all channels by xx
; (negative numbers can be specified).
macro GlobalTranspose(tone)
db $E9, <tone>
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).
macro ChannelTranspose(tone)
db $EA, <tone>
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.
macro TremoloOn(delay, rate, depth)
db $EB, <delay>, <rate>, <depth>
@@ -218,22 +218,22 @@ macro ChannelVolumeFade(length, dest)
db $EE, <length>, <dest>
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.
macro VibratoFade(length)
db $F0, <length>
endmacro
; Specifies that subsequent sounds will be
; "higher by zz over yy time after xx time."
; Specifies that subsequent sounds will be
; "higher by zz over yy time after xx time."
; zz is a semitone unit, and you can specify a negative number.
macro PitchEnvelopeTo(delay, length, key)
db $F1, <delay>, <length>, <key>
endmacro
; Specifies that subsequent notes will be
; "played at a pitch that is zz higher than normal,
; and will return to normal pitch over yy time after xx time."
; Specifies that subsequent notes will be
; "played at a pitch that is zz higher than normal,
; and will return to normal pitch over yy time after xx time."
; zz is a semitone unit, and you can specify a negative number.
macro PitchEnvelopeFrom(delay, length, key)
db $F2, <delay>, <length>, <key>
@@ -243,14 +243,14 @@ macro PitchEnvelopeOff()
db $F3
endmacro
; Change the pitch slightly.
; Change the pitch slightly.
; Only positive numbers can be specified, so the pitch cannot be lowered.
; xx = Unsigned. Make the pitch xx/256 semitones higher.
macro Tuning(v)
db $F4, <v>
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.
; xx = Echo Switch (EON)
; yy = Echo Left Volume (EVOL (L))
@@ -284,15 +284,15 @@ endmacro
; (pitch slide vcmd appears but note $90 has been end), utter note $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
; (absolute designation) over yy time.
; If you want to raise or lower the sound in the middle of one note,
; write this command continuously.
; (absolute designation) over yy time.
; If you want to raise or lower the sound in the middle of one note,
; write this command continuously.
; If the pronunciation time is long, you can write it with Thai.
; Normally, after one Note, it waits for the length of the note
; and then processes the next byte, but only this command
; Normally, after one Note, it waits for the length of the note
; and then processes the next byte, but only this command
; is read and processed immediately.
macro PitchSlide(delay, length, note)
db $F9, <delay>, <length>, <note>
@@ -343,23 +343,23 @@ Tie = $C8
Rest = $C9
; Percussion Note ($CA-DF)
; VByte itself means percussion note (#).
; VByte itself means percussion note (#).
; Relations between percussion note and SRCN depends on $FA.
; By default, percussion uses the same instrument set as the song,
; 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.
; By default, percussion uses the same instrument set as the song,
; 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.
; =========================================================
; Tone Map
;
; 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
; 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
; 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
; Oc6 BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7
;
; 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
; 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
; 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
; Oc6 BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7
C1 = $80
C1s = $81
@@ -437,4 +437,4 @@ G6 = $C3
G6s = $C4
A6 = $C5
A6s = $C6
B6 = $C7
B6 = $C7

View File

@@ -101,7 +101,7 @@ Module09_Overworld:
Module09_MirrorWarp ; 0x2C
Module09_2D_WaitForBird ; 0x2D
Module09_2E_Whirlpool ; 0x2E
Module09_2F
Module09_2F
Module07_Underworld:
@@ -249,23 +249,23 @@ STA.w $0AAE ; PALSPR2
; PALBG
; 0x00 - Kalyxo Castle
; 0x01 - Blue
; 0x01 - Blue
; 0x02 - House
; 0x03 - Green
; 0x03 - Green
; 0x04 - Glacia Estate Ice
; 0x05 - Zora Temple
; 0x06 - Tail Palace Pink
; 0x07 - Goron Mines Cave Red
; 0x08 - Mushroom Grotto Gray
; 0x09
; 0x09
; 0x0A (10) - Ranch Pink
; 0x0B (11) - Another green
; 0x0C - Goron Mines Cave Red
; 0x0D
; 0x0E
; 0x0F
; 0x10 -
; 0x (19) -
; 0x10 -
; 0x (19) -
UnderworldPaletteSets:
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 $0E, $00, $03, $0A ; 0x07 Goron Mines/Caves
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 $06, $00, $06, $07 ; 0x0B
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 $04, $00, $03, $01 ; 0x15 House
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, $06, $10, $0C ; 0x19
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 $1E, $00, $0B, $11 ; 0x1E Swordsmith
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 $0A, $00, $03, $0A ; 0x22 Zora Temple
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 $0E, $00, $03, $07 ; 0x27
db $1A, $05, $05, $0B ; 0x28 Dragon Ship

View File

@@ -11,7 +11,7 @@
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
!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)
!Hitbox = 0 ; 00 to 31, can be viewed in sprite draw tool
!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:
{
PHB : PHK : PLB
LDA.b #$80 : STA $0CAA, X ; Don't kill Farore when she goes off screen
LDA.l $7EF300
BEQ .PlayIntro
STZ.w $0DD0, X ; Kill the sprite
.PlayIntro
LDA.b #$80 : STA $0CAA, X ; Don't kill Farore when she goes off screen
LDA.l $7EF300 : BEQ .PlayIntro
STZ.w $0DD0, X ; Kill the sprite
.PlayIntro
PLB
RTL
@@ -75,7 +73,6 @@ Sprite_Farore_Prep:
WALKSPEED = 14
STORY_STATE = $B6
Sprite_Farore_Main:
{
LDA.w SprAction, X; Load the SprAction
@@ -90,22 +87,19 @@ Sprite_Farore_Main:
dw MakuArea_FaroreFollowPlayer
dw MakuArea_FaroreWaitForKydrog
; 00
IntroStart:
{
LDA #$01 : STA InCutScene
LDA $B6 : CMP.b #$01 : BEQ .maku_area
CMP.b #$02 : BEQ .waiting
%GotoAction(1)
RTS
%GotoAction(1)
RTS
.maku_area
%GotoAction(6)
RTS
.maku_area
%GotoAction(6)
RTS
.waiting
.waiting
%GotoAction(7)
RTS
}
@@ -115,13 +109,11 @@ Sprite_Farore_Main:
{
LDA.w WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
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
RTS
}
@@ -129,27 +121,24 @@ Sprite_Farore_Main:
; 02
MoveLeftTowardsFarore:
{
; Move Link Left
; Move Link Left
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
CMP.b #$1A
BCS .linkistoofar
STZ.b $49 ; kill automove
LDA.b #$20
STA.w SprTimerA, X ; set timer A to 0x10
%PlayAnimation(0, 0, 8)
%GotoAction(3)
.linkistoofar
; Link's X position
LDA.b $22 : CMP.b #$1A : BCS .linkistoofar
STZ.b $49 ; kill automove
LDA.b #$20
STA.w SprTimerA, X ; set timer A to 0x10
%PlayAnimation(0, 0, 8)
%GotoAction(3)
.linkistoofar
RTS
}
; 03
WaitAndMessage:
{
{
%PlayAnimation(1, 2, 8)
LDA.b #$15
JSL Sprite_ApplySpeedTowardsPlayer
@@ -159,7 +148,7 @@ Sprite_Farore_Main:
STZ $2F
LDA #$00 : STA InCutScene
%ShowUnconditionalMessage($0E) ; "I am Farore, the Oracle of Secrets."
%GotoAction(4)
+
RTS
@@ -189,7 +178,7 @@ Sprite_Farore_Main:
LDA #$02 : STA $7EF3C5 ; (0 - intro, 1 - pendants, 2 - crystals)
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
%GotoAction(6)
@@ -213,7 +202,7 @@ Sprite_Farore_Main:
}
; 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
; 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
@@ -242,17 +231,17 @@ Sprite_Farore_Draw:
.nextTile
PHX ; Save current Tile Index?
TXA : CLC : ADC $06 ; Add Animation Index Offset
PHA ; Keep the value with animation index offset?
ASL A : TAX
ASL A : TAX
REP #$20
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
AND.w #$0100 : STA $0E
AND.w #$0100 : STA $0E
INY
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
CLC : ADC #$0010 : CMP.w #$0100
@@ -269,14 +258,14 @@ Sprite_Farore_Draw:
INY
LDA .properties, X : STA ($90), Y
PHY
PHY
TYA : LSR #2 : TAY
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
PLY : INY
PLX : DEX : BPL .nextTile
PLX

View File

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

View File

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