mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-06 15:45:24 +13:00
Merge branch 'master' of https://github.com/pret/pokered
This commit is contained in:
commit
3f691fcb21
970 changed files with 15106 additions and 11361 deletions
|
|
@ -1,4 +1,4 @@
|
|||
mon_cry: MACRO
|
||||
MACRO mon_cry
|
||||
; index, pitch, length
|
||||
dw \1, \2, \3
|
||||
ENDM
|
||||
|
|
|
|||
|
|
@ -1,21 +1,15 @@
|
|||
bigdw: MACRO ; big-endian word
|
||||
dw ((\1)/$100) + (((\1)&$ff)*$100)
|
||||
MACRO bigdw ; big-endian word
|
||||
db HIGH(\1), LOW(\1)
|
||||
ENDM
|
||||
|
||||
dt: MACRO ; three-byte (big-endian)
|
||||
db (\1 >> 16) & $ff
|
||||
db (\1 >> 8) & $ff
|
||||
db \1 & $ff
|
||||
ENDM
|
||||
|
||||
inc_section: MACRO
|
||||
MACRO inc_section
|
||||
SECTION \1, ROMX
|
||||
include \1 ; "" ; trick scan_includes to ignore
|
||||
ENDM
|
||||
|
||||
maskbits: MACRO
|
||||
; masks just enough bits to cover the first argument
|
||||
; the second argument is an optional shift amount
|
||||
MACRO maskbits
|
||||
; masks just enough bits to cover values 0 to \1 - 1
|
||||
; \2 is an optional shift amount
|
||||
; e.g. "maskbits 26" becomes "and %00011111" (since 26 - 1 = %00011001)
|
||||
; and "maskbits 3, 2" becomes "and %00001100" (since "maskbits 3" becomes %00000011)
|
||||
; example usage in rejection sampling:
|
||||
|
|
@ -24,362 +18,346 @@ maskbits: MACRO
|
|||
; maskbits 26
|
||||
; cp 26
|
||||
; jr nc, .loop
|
||||
x = 1
|
||||
rept 8
|
||||
if x + 1 < (\1)
|
||||
x = x << 1 | 1
|
||||
endc
|
||||
endr
|
||||
if _NARG == 2
|
||||
and x << (\2)
|
||||
else
|
||||
and x
|
||||
endc
|
||||
assert 0 < (\1) && (\1) <= $100, "bitmask must be 8-bit"
|
||||
DEF x = 1
|
||||
rept 8
|
||||
if x + 1 < (\1)
|
||||
DEF x = (x << 1) | 1
|
||||
endc
|
||||
endr
|
||||
if _NARG == 2
|
||||
and x << (\2)
|
||||
else
|
||||
and x
|
||||
endc
|
||||
ENDM
|
||||
|
||||
audio_header: MACRO
|
||||
db (_NARG - 2) << 6 | \2
|
||||
dw \1_\2
|
||||
IF _NARG > 2
|
||||
db \3
|
||||
dw \1_\3
|
||||
ENDC
|
||||
IF _NARG > 3
|
||||
db \4
|
||||
dw \1_\4
|
||||
ENDC
|
||||
IF _NARG > 4
|
||||
db \5
|
||||
dw \1_\5
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
channel_count: MACRO
|
||||
MACRO channel_count
|
||||
assert 0 < (\1) && (\1) <= NUM_MUSIC_CHANS, \
|
||||
"channel_count must be 1-{d:NUM_MUSIC_CHANS}"
|
||||
_num_channels = \1 - 1
|
||||
DEF _num_channels = \1 - 1
|
||||
ENDM
|
||||
|
||||
channel: MACRO
|
||||
MACRO channel
|
||||
assert 0 < (\1) && (\1) <= NUM_CHANNELS, \
|
||||
"channel id must be 1-{d:NUM_CHANNELS}"
|
||||
dn (_num_channels << 2), \1 - 1 ; channel id
|
||||
dw \2 ; address
|
||||
_num_channels = 0
|
||||
DEF _num_channels = 0
|
||||
ENDM
|
||||
|
||||
note: MACRO
|
||||
MACRO note
|
||||
dn (\1), (\2) - 1 ; pitch, length
|
||||
ENDM
|
||||
|
||||
drum_note: MACRO
|
||||
MACRO drum_note
|
||||
note \1, \2 ; drum instrument, length
|
||||
ENDM
|
||||
|
||||
rest: MACRO
|
||||
MACRO rest
|
||||
note 0, \1 ; length
|
||||
ENDM
|
||||
|
||||
square_note: MACRO
|
||||
MACRO square_note
|
||||
db \1 ; length
|
||||
IF \3 < 0
|
||||
if \3 < 0
|
||||
dn \2, %1000 | (\3 * -1) ; volume envelope
|
||||
ELSE
|
||||
else
|
||||
dn \2, \3 ; volume envelope
|
||||
ENDC
|
||||
endc
|
||||
dw \4 ; frequency
|
||||
ENDM
|
||||
|
||||
noise_note: MACRO
|
||||
MACRO noise_note
|
||||
db \1 ; length
|
||||
IF \3 < 0
|
||||
if \3 < 0
|
||||
dn \2, %1000 | (\3 * -1) ; volume envelope
|
||||
ELSE
|
||||
else
|
||||
dn \2, \3 ; volume envelope
|
||||
ENDC
|
||||
endc
|
||||
db \4 ; frequency
|
||||
ENDM
|
||||
|
||||
; MusicCommands indexes (see audio/engine.asm)
|
||||
const_def $d0
|
||||
FIRST_MUSIC_CMD EQU const_value
|
||||
DEF FIRST_MUSIC_CMD EQU const_value
|
||||
|
||||
const octave_cmd ; $d0
|
||||
octave: MACRO
|
||||
MACRO octave
|
||||
assert 1 <= (\1) && (\1) <= 8, "octave must be 1-8"
|
||||
db octave_cmd | 8 - (\1) ; octave
|
||||
db octave_cmd + 8 - (\1) ; octave
|
||||
ENDM
|
||||
|
||||
const_skip 7 ; all octave values
|
||||
|
||||
const note_type_cmd ; $d8
|
||||
note_type: MACRO
|
||||
MACRO note_type
|
||||
db note_type_cmd
|
||||
db \1 ; note length
|
||||
IF _NARG >= 2
|
||||
IF \3 < 0
|
||||
if _NARG >= 2
|
||||
if \3 < 0
|
||||
dn \2, %1000 | (\3 * -1) ; volume envelope
|
||||
ELSE
|
||||
else
|
||||
dn \2, \3 ; volume envelope
|
||||
ENDC
|
||||
ENDC
|
||||
endc
|
||||
endc
|
||||
ENDM
|
||||
|
||||
; only valid on the noise channel
|
||||
drum_speed: MACRO
|
||||
MACRO drum_speed
|
||||
note_type \1 ; note length
|
||||
ENDM
|
||||
|
||||
const transpose_cmd ; $d9
|
||||
transpose: MACRO
|
||||
MACRO transpose
|
||||
db transpose_cmd
|
||||
dn \1, \2 ; num octaves, num pitches
|
||||
ENDM
|
||||
|
||||
const tempo_cmd ; $da
|
||||
tempo: MACRO
|
||||
MACRO tempo
|
||||
db tempo_cmd
|
||||
bigdw \1 ; tempo
|
||||
ENDM
|
||||
|
||||
const duty_cycle_cmd ; $db
|
||||
duty_cycle: MACRO
|
||||
MACRO duty_cycle
|
||||
db duty_cycle_cmd
|
||||
db \1 ; duty cycle
|
||||
ENDM
|
||||
|
||||
const volume_envelope_cmd ; $dc
|
||||
volume_envelope: MACRO
|
||||
MACRO volume_envelope
|
||||
db volume_envelope_cmd
|
||||
IF \2 < 0
|
||||
if \2 < 0
|
||||
dn \1, %1000 | (\2 * -1) ; volume envelope
|
||||
ELSE
|
||||
else
|
||||
dn \1, \2 ; volume envelope
|
||||
ENDC
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const pitch_sweep_cmd ; $dd
|
||||
pitch_sweep: MACRO
|
||||
MACRO pitch_sweep
|
||||
db pitch_sweep_cmd
|
||||
IF \2 < 0
|
||||
if \2 < 0
|
||||
dn \1, %1000 | (\2 * -1) ; pitch sweep
|
||||
ELSE
|
||||
else
|
||||
dn \1, \2 ; pitch sweep
|
||||
ENDC
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const duty_cycle_pattern_cmd ; $de
|
||||
duty_cycle_pattern: MACRO
|
||||
MACRO duty_cycle_pattern
|
||||
db duty_cycle_pattern_cmd
|
||||
db (\1 << 6) | (\2 << 4) | (\3 << 2) | (\4 << 0) ; duty cycle pattern
|
||||
ENDM
|
||||
|
||||
const toggle_sfx_cmd ; $df
|
||||
toggle_sfx: MACRO
|
||||
MACRO toggle_sfx
|
||||
db toggle_sfx_cmd
|
||||
ENDM
|
||||
execute_music EQUS "toggle_sfx"
|
||||
|
||||
const pitch_slide_cmd ; $e0
|
||||
pitch_slide: MACRO
|
||||
MACRO pitch_slide
|
||||
db pitch_slide_cmd
|
||||
db \1 - 1 ; duration
|
||||
dn 8 - \2, \3 % 12 ; octave, pitch
|
||||
ENDM
|
||||
|
||||
const vibrato_cmd ; $e1
|
||||
vibrato: MACRO
|
||||
MACRO vibrato
|
||||
db vibrato_cmd
|
||||
db \1 ; delay
|
||||
IF _NARG > 2
|
||||
if _NARG > 2
|
||||
dn \2, \3 ; extent, rate
|
||||
ELSE
|
||||
else
|
||||
db \2 ; LEGACY: Support for 1-arg extent
|
||||
ENDC
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const unknownmusic0xe2_cmd ; $e2
|
||||
unknownmusic0xe2: MACRO
|
||||
MACRO unknownmusic0xe2
|
||||
db unknownmusic0xe2_cmd
|
||||
db \1 ; unknown
|
||||
ENDM
|
||||
|
||||
const toggle_noise_cmd ; $e3
|
||||
toggle_noise: MACRO
|
||||
MACRO toggle_noise
|
||||
db toggle_noise_cmd
|
||||
IF _NARG > 0
|
||||
if _NARG > 0
|
||||
db \1 ; drum kit
|
||||
ENDC
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const force_stereo_panning_cmd ; $e4
|
||||
force_stereo_panning: MACRO
|
||||
MACRO force_stereo_panning
|
||||
db force_stereo_panning_cmd
|
||||
dn %1111 * (1 && \1), %1111 * (1 && \2) ; left enable, right enable
|
||||
ENDM
|
||||
|
||||
const volume_cmd ; $e5
|
||||
volume: MACRO
|
||||
MACRO volume
|
||||
db volume_cmd
|
||||
IF _NARG > 1
|
||||
if _NARG > 1
|
||||
dn \1, \2 ; left volume, right volume
|
||||
ELSE
|
||||
else
|
||||
db \1 ; LEGACY: Support for 1-arg volume
|
||||
ENDC
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const pitch_offset_cmd ; $e6
|
||||
pitch_offset: MACRO
|
||||
MACRO pitch_offset
|
||||
db pitch_offset_cmd
|
||||
bigdw \1 ; pitch offset
|
||||
ENDM
|
||||
toggle_perfect_pitch EQUS "pitch_offset 1"
|
||||
|
||||
const unknownmusic0xe7_cmd ; $e7
|
||||
unknownmusic0xe7: MACRO
|
||||
MACRO unknownmusic0xe7
|
||||
db unknownmusic0xe7_cmd
|
||||
db \1 ; unknown
|
||||
ENDM
|
||||
|
||||
const unknownmusic0xe8_cmd ; $e8
|
||||
unknownmusic0xe8: MACRO
|
||||
MACRO unknownmusic0xe8
|
||||
db unknownmusic0xe8_cmd
|
||||
db \1 ; unknown
|
||||
ENDM
|
||||
|
||||
const tempo_relative_cmd ; $e9
|
||||
tempo_relative: MACRO
|
||||
MACRO tempo_relative
|
||||
db tempo_relative_cmd
|
||||
bigdw \1 ; tempo adjustment
|
||||
ENDM
|
||||
|
||||
const restart_channel_cmd ; $ea
|
||||
restart_channel: MACRO
|
||||
MACRO restart_channel
|
||||
db restart_channel_cmd
|
||||
dw \1 ; address
|
||||
ENDM
|
||||
|
||||
const new_song_cmd ; $eb
|
||||
new_song: MACRO
|
||||
MACRO new_song
|
||||
db new_song_cmd
|
||||
bigdw \1 ; id
|
||||
ENDM
|
||||
|
||||
const sfx_priority_on_cmd ; $ec
|
||||
sfx_priority_on: MACRO
|
||||
MACRO sfx_priority_on
|
||||
db sfx_priority_on_cmd
|
||||
ENDM
|
||||
|
||||
const sfx_priority_off_cmd ; $ed
|
||||
sfx_priority_off: MACRO
|
||||
MACRO sfx_priority_off
|
||||
db sfx_priority_off_cmd
|
||||
ENDM
|
||||
|
||||
const unknownmusic0xee_cmd ; $ee
|
||||
unknownmusic0xee: MACRO
|
||||
MACRO unknownmusic0xee
|
||||
db unknownmusic0xee_cmd
|
||||
dw \1 ; address
|
||||
ENDM
|
||||
|
||||
const stereo_panning_cmd ; $ef
|
||||
stereo_panning: MACRO
|
||||
MACRO stereo_panning
|
||||
db stereo_panning_cmd
|
||||
dn %1111 * (1 && \1), %1111 * (1 && \2) ; left enable, right enable
|
||||
ENDM
|
||||
|
||||
const sfx_toggle_noise_cmd ; $f0
|
||||
sfx_toggle_noise: MACRO
|
||||
MACRO sfx_toggle_noise
|
||||
db sfx_toggle_noise_cmd
|
||||
IF _NARG > 0
|
||||
if _NARG > 0
|
||||
db \1 ; drum kit
|
||||
ENDC
|
||||
endc
|
||||
ENDM
|
||||
|
||||
const music0xf1_cmd ; $f1
|
||||
music0xf1: MACRO
|
||||
MACRO music0xf1
|
||||
db music0xf1_cmd
|
||||
ENDM
|
||||
|
||||
const music0xf2_cmd ; $f2
|
||||
music0xf2: MACRO
|
||||
MACRO music0xf2
|
||||
db music0xf2_cmd
|
||||
ENDM
|
||||
|
||||
const music0xf3_cmd ; $f3
|
||||
music0xf3: MACRO
|
||||
MACRO music0xf3
|
||||
db music0xf3_cmd
|
||||
ENDM
|
||||
|
||||
const music0xf4_cmd ; $f4
|
||||
music0xf4: MACRO
|
||||
MACRO music0xf4
|
||||
db music0xf4_cmd
|
||||
ENDM
|
||||
|
||||
const music0xf5_cmd ; $f5
|
||||
music0xf5: MACRO
|
||||
MACRO music0xf5
|
||||
db music0xf5_cmd
|
||||
ENDM
|
||||
|
||||
const music0xf6_cmd ; $f6
|
||||
music0xf6: MACRO
|
||||
MACRO music0xf6
|
||||
db music0xf6_cmd
|
||||
ENDM
|
||||
|
||||
const music0xf7_cmd ; $f7
|
||||
music0xf7: MACRO
|
||||
MACRO music0xf7
|
||||
db music0xf7_cmd
|
||||
ENDM
|
||||
|
||||
const music0xf8_cmd ; $f8
|
||||
music0xf8: MACRO
|
||||
MACRO music0xf8
|
||||
db music0xf8_cmd
|
||||
ENDM
|
||||
|
||||
const unknownmusic0xf9_cmd ; $f9
|
||||
unknownmusic0xf9: MACRO
|
||||
MACRO unknownmusic0xf9
|
||||
db unknownmusic0xf9_cmd
|
||||
ENDM
|
||||
|
||||
const set_condition_cmd ; $fa
|
||||
set_condition: MACRO
|
||||
MACRO set_condition
|
||||
db set_condition_cmd
|
||||
db \1 ; condition
|
||||
ENDM
|
||||
|
||||
const sound_jump_if_cmd ; $fb
|
||||
sound_jump_if: MACRO
|
||||
MACRO sound_jump_if
|
||||
db sound_jump_if_cmd
|
||||
db \1 ; condition
|
||||
dw \2 ; address
|
||||
ENDM
|
||||
|
||||
const sound_jump_cmd ; $fc
|
||||
sound_jump: MACRO
|
||||
MACRO sound_jump
|
||||
db sound_jump_cmd
|
||||
dw \1 ; address
|
||||
ENDM
|
||||
|
||||
const sound_loop_cmd ; $fd
|
||||
sound_loop: MACRO
|
||||
MACRO sound_loop
|
||||
db sound_loop_cmd
|
||||
db \1 ; count
|
||||
dw \2 ; address
|
||||
ENDM
|
||||
|
||||
const sound_call_cmd ; $fe
|
||||
sound_call: MACRO
|
||||
MACRO sound_call
|
||||
db sound_call_cmd
|
||||
dw \1 ; address
|
||||
ENDM
|
||||
|
||||
const sound_ret_cmd ; $ff
|
||||
sound_ret: MACRO
|
||||
MACRO sound_ret
|
||||
db sound_ret_cmd
|
||||
ENDM
|
||||
|
||||
; custom commands:
|
||||
|
||||
load_wave: MACRO
|
||||
MACRO load_wave
|
||||
db $f3
|
||||
IF _NARG > 16
|
||||
REPT 16
|
||||
|
|
@ -395,22 +373,22 @@ load_wave: MACRO
|
|||
ENDC
|
||||
ENDM
|
||||
|
||||
inc_octave: MACRO
|
||||
MACRO inc_octave
|
||||
db $f4
|
||||
ENDM
|
||||
|
||||
dec_octave: MACRO
|
||||
MACRO dec_octave
|
||||
db $f5
|
||||
ENDM
|
||||
|
||||
speed: MACRO
|
||||
MACRO speed
|
||||
db $f6, \1
|
||||
ENDM
|
||||
|
||||
channel_volume: MACRO
|
||||
MACRO channel_volume
|
||||
db $f7, \1
|
||||
ENDM
|
||||
|
||||
fade_wave: MACRO
|
||||
MACRO fade_wave
|
||||
db $f8, \1
|
||||
ENDM
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ Music_Cities1::
|
|||
channel 3, Music_Cities1_Ch3
|
||||
channel 4, Music_Cities1_Ch4
|
||||
|
||||
Music_Cities1_branch_aa6f::
|
||||
Music_Cities1_Ch1_AlternateTempo::
|
||||
tempo 232
|
||||
sound_loop 0, Music_Cities1_branch_aa79
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Music_MeetRival::
|
|||
channel 2, Music_MeetRival_Ch2
|
||||
channel 3, Music_MeetRival_Ch3
|
||||
|
||||
Music_MeetRival_branch_b119::
|
||||
Music_MeetRival_Ch1_AlternateTempo::
|
||||
tempo 100
|
||||
sound_loop 0, Music_MeetRival_branch_b123
|
||||
|
||||
|
|
@ -125,11 +125,11 @@ Music_MeetRival_branch_b140::
|
|||
note A_, 2
|
||||
sound_loop 0, Music_MeetRival_branch_b140
|
||||
|
||||
Music_MeetRival_branch_b19b::
|
||||
Music_MeetRival_Ch1_AlternateStartAndTempo::
|
||||
tempo 100
|
||||
sound_loop 0, Music_MeetRival_branch_b1a5
|
||||
|
||||
Music_MeetRival_branch_b1a2::
|
||||
Music_MeetRival_Ch1_AlternateStart::
|
||||
tempo 112
|
||||
|
||||
Music_MeetRival_branch_b1a5::
|
||||
|
|
@ -236,7 +236,7 @@ Music_MeetRival_branch_b1d8::
|
|||
note F#, 2
|
||||
sound_loop 0, Music_MeetRival_branch_b1d8
|
||||
|
||||
Music_MeetRival_branch_b21d::
|
||||
Music_MeetRival_Ch2_AlternateStart::
|
||||
duty_cycle 3
|
||||
vibrato 10, 2, 6
|
||||
note_type 12, 12, 7
|
||||
|
|
@ -384,7 +384,7 @@ Music_MeetRival_branch_b24b::
|
|||
note D_, 2
|
||||
sound_loop 0, Music_MeetRival_branch_b24b
|
||||
|
||||
Music_MeetRival_branch_b2b5::
|
||||
Music_MeetRival_Ch3_AlternateStart::
|
||||
note_type 12, 1, 4
|
||||
octave 4
|
||||
note G_, 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue