Skip to content

Commit

Permalink
Identify CHANNEL_FIELD16 as CHANNEL_NOTE_DURATION_MODIFIER (#1162)
Browse files Browse the repository at this point in the history
  • Loading branch information
Rangi42 authored Dec 27, 2024
1 parent 85ddf0e commit 15187f5
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 48 deletions.
13 changes: 6 additions & 7 deletions audio/engine.asm
Original file line number Diff line number Diff line change
Expand Up @@ -2205,20 +2205,19 @@ SetNoteDuration:
ld e, [hl]
inc hl
ld d, [hl]
; add ??? to the next result
ld hl, CHANNEL_FIELD16
; add duration modifier to the next result
ld hl, CHANNEL_NOTE_DURATION_MODIFIER
add hl, bc
ld l, [hl]
; multiply Tempo by last result (NoteLength * LOW(delay))
call .Multiply
; copy result to de
ld e, l
ld d, h
; store result in ???
ld hl, CHANNEL_FIELD16
; store result in NoteDuration and NoteDurationModifier
ld hl, CHANNEL_NOTE_DURATION_MODIFIER
add hl, bc
ld [hl], e
; store result in NoteDuration
ld hl, CHANNEL_NOTE_DURATION
add hl, bc
ld [hl], d
Expand Down Expand Up @@ -2283,9 +2282,9 @@ Tempo:
ld [hl], e
inc hl
ld [hl], d
; clear ???
; clear duration modifier
xor a
ld hl, CHANNEL_FIELD16
ld hl, CHANNEL_NOTE_DURATION_MODIFIER
add hl, bc
ld [hl], a
ret
Expand Down
2 changes: 1 addition & 1 deletion constants/audio_constants.asm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ DEF CHANNEL_PITCH rb
DEF CHANNEL_OCTAVE rb
DEF CHANNEL_TRANSPOSITION rb
DEF CHANNEL_NOTE_DURATION rb
DEF CHANNEL_FIELD16 rb
DEF CHANNEL_NOTE_DURATION_MODIFIER rb
rb_skip
DEF CHANNEL_LOOP_COUNT rb
DEF CHANNEL_TEMPO rw
Expand Down
80 changes: 40 additions & 40 deletions macros/ram.asm
Original file line number Diff line number Diff line change
Expand Up @@ -135,47 +135,47 @@ MACRO map_connection_struct
ENDM

MACRO channel_struct
\1MusicID:: dw
\1MusicBank:: db
\1Flags1:: db ; 0:on/off 1:subroutine 2:looping 3:sfx 4:noise 5:rest
\1Flags2:: db ; 0:vibrato on/off 1:pitch slide 2:duty cycle pattern 4:pitch offset
\1Flags3:: db ; 0:vibrato up/down 1:pitch slide direction
\1MusicAddress:: dw
\1LastMusicAddress:: dw
dw
\1NoteFlags:: db ; 5:rest
\1Condition:: db ; conditional jumps
\1DutyCycle:: db ; bits 6-7 (0:12.5% 1:25% 2:50% 3:75%)
\1VolumeEnvelope:: db ; hi:volume lo:fade
\1Frequency:: dw ; 11 bits
\1Pitch:: db ; 0:rest 1-c:note
\1Octave:: db ; 7-0 (0 is highest)
\1Transposition:: db ; raises existing octaves (to repeat phrases)
\1NoteDuration:: db ; frames remaining for the current note
\1Field16:: ds 1
ds 1
\1LoopCount:: db
\1Tempo:: dw
\1Tracks:: db ; hi:left lo:right
\1DutyCyclePattern:: db
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
\1VibratoExtent:: db
\1VibratoRate:: db ; hi:frames for each alt lo:frames to the next alt
\1PitchSlideTarget:: dw ; frequency endpoint for pitch slide
\1PitchSlideAmount:: db
\1MusicID:: dw
\1MusicBank:: db
\1Flags1:: db ; 0:on/off 1:subroutine 2:looping 3:sfx 4:noise 5:rest
\1Flags2:: db ; 0:vibrato on/off 1:pitch slide 2:duty cycle pattern 4:pitch offset
\1Flags3:: db ; 0:vibrato up/down 1:pitch slide direction
\1MusicAddress:: dw
\1LastMusicAddress:: dw
ds 2
\1NoteFlags:: db ; 5:rest
\1Condition:: db ; conditional jumps
\1DutyCycle:: db ; bits 6-7 (0:12.5% 1:25% 2:50% 3:75%)
\1VolumeEnvelope:: db ; hi:volume lo:fade
\1Frequency:: dw ; 11 bits
\1Pitch:: db ; 0:rest 1-c:note
\1Octave:: db ; 7-0 (0 is highest)
\1Transposition:: db ; raises existing octaves (to repeat phrases)
\1NoteDuration:: db ; frames remaining for the current note
\1NoteDurationModifier:: db
ds 1
\1LoopCount:: db
\1Tempo:: dw
\1Tracks:: db ; hi:left lo:right
\1DutyCyclePattern:: db
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
\1VibratoExtent:: db
\1VibratoRate:: db ; hi:frames for each alt lo:frames to the next alt
\1PitchSlideTarget:: dw ; frequency endpoint for pitch slide
\1PitchSlideAmount:: db
\1PitchSlideAmountFraction:: db
\1Field25:: db
ds 1
\1PitchOffset:: dw
\1Field29:: ds 1
\1Field2a:: ds 2
\1Field2c:: ds 1
\1NoteLength:: db ; frames per 16th note
\1Field2e:: ds 1
\1Field2f:: ds 1
\1Field30:: ds 1
ds 1
\1Field25:: db
ds 1
\1PitchOffset:: dw
\1Field29:: ds 1
\1Field2a:: ds 2
\1Field2c:: ds 1
\1NoteLength:: db ; frames per 16th note
\1Field2e:: ds 1
\1Field2f:: ds 1
\1Field30:: ds 1
ds 1
ENDM

MACRO battle_tower_struct
Expand Down

0 comments on commit 15187f5

Please sign in to comment.