[Audio 8/?] Check-in handwritten sequences, build sequences, automate various sfx arrays (#2137)

* [Audio 8/?] Check-in handwritten sequences, build sequences, automate various sfx arrays

* Fix whitespace in aseq.h

* Fix sequence 0 sfx id generator

* Suggested changes, adjust some MML syntax and add more instruction descriptions

* Correct some formatting in aseq.h

* Add the dir of the input .seq file to the list of includes to sequence assembling so that assembler-level includes like .include or .incbin work intuitively

* aseq.h tweaks

* MM review suggestions, aseq.h adjustments
This commit is contained in:
Tharo 2024-09-15 23:26:27 +01:00 committed by GitHub
parent 03a1502706
commit dbbeb656f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
34 changed files with 22983 additions and 1657 deletions

4
.gitattributes vendored
View File

@ -1,2 +1,6 @@
# Auto detect text files and perform LF normalization
* text=auto
# Set browser syntax highlighting for certain files
*.inc linguist-language=gas
*.seq linguist-language=gas
include/audio/aseq.h linguist-language=gas

View File

@ -210,6 +210,9 @@ SBC := tools/audio/sbc
SFC := tools/audio/sfc
SFPATCH := tools/audio/sfpatch
ATBLGEN := tools/audio/atblgen
# We want linemarkers in sequence assembly files for better assembler error messages
SEQ_CPP := $(CPP) -x assembler-with-cpp -fno-dollars-in-identifiers
SEQ_CPPFLAGS := -D_LANGUAGE_ASEQ -DMML_VERSION=MML_VERSION_OOT -I include -I include/audio -I include/tables/sfx -I $(BUILD_DIR)/assets/audio/soundfonts
SBCFLAGS := --matching
SFCFLAGS := --matching
@ -282,10 +285,12 @@ ifneq ($(wildcard $(EXTRACTED_DIR)/assets/audio),)
SAMPLE_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/samples -type d)
SAMPLEBANK_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/samplebanks -type d)
SOUNDFONT_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/soundfonts -type d)
SEQUENCE_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/sequences -type d)
else
SAMPLE_EXTRACT_DIRS :=
SAMPLEBANK_EXTRACT_DIRS :=
SOUNDFONT_EXTRACT_DIRS :=
SEQUENCE_EXTRACT_DIRS :=
endif
ifneq ($(wildcard assets/audio/samples),)
@ -306,6 +311,12 @@ else
SOUNDFONT_DIRS :=
endif
ifneq ($(wildcard assets/audio/sequences),)
SEQUENCE_DIRS := $(shell find assets/audio/sequences -type d)
else
SEQUENCE_DIRS :=
endif
SAMPLE_FILES := $(foreach dir,$(SAMPLE_DIRS),$(wildcard $(dir)/*.wav))
SAMPLE_EXTRACT_FILES := $(foreach dir,$(SAMPLE_EXTRACT_DIRS),$(wildcard $(dir)/*.wav))
AIFC_FILES := $(foreach f,$(SAMPLE_FILES),$(BUILD_DIR)/$(f:.wav=.aifc)) $(foreach f,$(SAMPLE_EXTRACT_FILES:.wav=.aifc),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%))
@ -323,6 +334,13 @@ SOUNDFONT_O_FILES := $(foreach f,$(SOUNDFONT_BUILD_XMLS),$(f:.xml=.o))
SOUNDFONT_HEADERS := $(foreach f,$(SOUNDFONT_BUILD_XMLS),$(f:.xml=.h))
SOUNDFONT_DEP_FILES := $(foreach f,$(SOUNDFONT_O_FILES),$(f:.o=.d))
SEQUENCE_FILES := $(foreach dir,$(SEQUENCE_DIRS),$(wildcard $(dir)/*.seq))
SEQUENCE_EXTRACT_FILES := $(foreach dir,$(SEQUENCE_EXTRACT_DIRS),$(wildcard $(dir)/*.seq))
SEQUENCE_O_FILES := $(foreach f,$(SEQUENCE_FILES),$(BUILD_DIR)/$(f:.seq=.o)) $(foreach f,$(SEQUENCE_EXTRACT_FILES:.seq=.o),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%))
SEQUENCE_DEP_FILES := $(foreach f,$(SEQUENCE_O_FILES),$(f:.o=.d))
SEQUENCE_TABLE := include/tables/sequence_table.h
# create extracted directory
$(shell mkdir -p $(EXTRACTED_DIR))
@ -331,7 +349,7 @@ ifneq ($(wildcard $(EXTRACTED_DIR)/assets),)
else
ASSET_BIN_DIRS_EXTRACTED :=
endif
ASSET_BIN_DIRS_COMMITTED := $(shell find assets -type d -not -path "assets/xml*" -not -path assets/text)
ASSET_BIN_DIRS_COMMITTED := $(shell find assets -type d -not -path "assets/xml*" -not -path "assets/audio*" -not -path assets/text)
ASSET_BIN_DIRS := $(ASSET_BIN_DIRS_EXTRACTED) $(ASSET_BIN_DIRS_COMMITTED)
ASSET_FILES_BIN_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.bin))
@ -381,6 +399,7 @@ $(shell mkdir -p $(foreach dir, \
$(SAMPLE_DIRS) \
$(SAMPLEBANK_DIRS) \
$(SOUNDFONT_DIRS) \
$(SEQUENCE_DIRS) \
$(ASSET_BIN_DIRS_COMMITTED), \
$(BUILD_DIR)/$(dir)))
ifneq ($(wildcard $(EXTRACTED_DIR)/assets),)
@ -388,6 +407,7 @@ $(shell mkdir -p $(foreach dir, \
$(SAMPLE_EXTRACT_DIRS) \
$(SAMPLEBANK_EXTRACT_DIRS) \
$(SOUNDFONT_EXTRACT_DIRS) \
$(SEQUENCE_EXTRACT_DIRS) \
$(ASSET_BIN_DIRS_EXTRACTED), \
$(dir:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)))
endif
@ -594,8 +614,8 @@ $(ROMC): $(ROM) $(ELF) $(BUILD_DIR)/compress_ranges.txt
$(PYTHON) -m ipl3checksum sum --cic 6105 --update $@
$(ELF): $(TEXTURE_FILES_OUT) $(ASSET_FILES_OUT) $(O_FILES) $(OVL_RELOC_FILES) $(LDSCRIPT) $(BUILD_DIR)/undefined_syms.txt \
$(SAMPLEBANK_O_FILES) $(SOUNDFONT_O_FILES) \
$(BUILD_DIR)/assets/audio/audiobank_padding.o
$(SAMPLEBANK_O_FILES) $(SOUNDFONT_O_FILES) $(SEQUENCE_O_FILES) \
$(BUILD_DIR)/assets/audio/sequence_font_table.o $(BUILD_DIR)/assets/audio/audiobank_padding.o
$(LD) -T $(LDSCRIPT) -T $(BUILD_DIR)/undefined_syms.txt --no-check-sections --accept-unknown-input-arch --emit-relocs -Map $(MAP) -o $@
## Order-only prerequisites
@ -681,6 +701,8 @@ $(BUILD_DIR)/src/code/z_actor_dlftbls.o: include/tables/actor_table.h
$(BUILD_DIR)/src/code/z_effect_soft_sprite_dlftbls.o: include/tables/effect_ss_table.h
$(BUILD_DIR)/src/code/z_game_dlftbls.o: include/tables/gamestate_table.h
$(BUILD_DIR)/src/code/z_scene_table.o: include/tables/scene_table.h include/tables/entrance_table.h
$(BUILD_DIR)/src/audio/general.o: $(SEQUENCE_TABLE) include/tables/sfx/*.h
$(BUILD_DIR)/src/audio/sfx_params.o: include/tables/sfx/*.h
$(BUILD_DIR)/src/%.o: src/%.c
ifneq ($(RUN_CC_CHECK),0)
@ -814,6 +836,22 @@ ifeq ($(AUDIO_BUILD_DEBUG),1)
@(cmp $(@:.o=.bin) $(patsubst $(BUILD_DIR)/assets/audio/soundfonts/%,$(EXTRACTED_DIR)/baserom_audiotest/audiobank_files/%,$(@:.o=.bin)) && echo "$(<F) OK" || (mkdir -p NONMATCHINGS/soundfonts && cp $(@:.o=.bin) NONMATCHINGS/soundfonts/$(@F:.o=.bin)))
endif
# then assemble the sequences...
$(BUILD_DIR)/assets/audio/sequences/%.o: assets/audio/sequences/%.seq include/audio/aseq.h $(SEQUENCE_TABLE) | $(SOUNDFONT_HEADERS)
$(SEQ_CPP) $(SEQ_CPPFLAGS) $< -o $(@:.o=.s) -MMD -MT $@
$(AS) $(ASFLAGS) -I $(BUILD_DIR)/assets/audio/soundfonts -I include/audio -I $(dir $<) $(@:.o=.s) -o $@
$(BUILD_DIR)/assets/audio/sequences/%.o: $(EXTRACTED_DIR)/assets/audio/sequences/%.seq include/audio/aseq.h $(SEQUENCE_TABLE) | $(SOUNDFONT_HEADERS)
$(SEQ_CPP) $(SEQ_CPPFLAGS) $< -o $(@:.o=.s) -MMD -MT $@
$(AS) $(ASFLAGS) -I $(BUILD_DIR)/assets/audio/soundfonts -I include/audio -I $(dir $<) $(@:.o=.s) -o $@
ifeq ($(AUDIO_BUILD_DEBUG),1)
$(OBJCOPY) -O binary -j.data $@ $(@:.o=.aseq)
@(cmp $(@:.o=.aseq) $(patsubst $(BUILD_DIR)/assets/audio/sequences/%,$(EXTRACTED_DIR)/baserom_audiotest/audioseq_files/%,$(@:.o=.aseq)) && echo "$(<F) OK" || (mkdir -p NONMATCHINGS/sequences && cp $(@:.o=.aseq) NONMATCHINGS/sequences/$(@F:.o=.aseq)))
endif
-include $(SEQUENCE_DEP_FILES)
# put together the tables
$(BUILD_DIR)/assets/audio/samplebank_table.h: $(SAMPLEBANK_BUILD_XMLS)
@ -822,9 +860,23 @@ $(BUILD_DIR)/assets/audio/samplebank_table.h: $(SAMPLEBANK_BUILD_XMLS)
$(BUILD_DIR)/assets/audio/soundfont_table.h: $(SOUNDFONT_BUILD_XMLS) $(SAMPLEBANK_BUILD_XMLS)
$(ATBLGEN) --fonts $@ $(SOUNDFONT_BUILD_XMLS)
SEQ_ORDER_DEFS := -DDEFINE_SEQUENCE_PTR\(name,seqId,_2,_3,_4\)=*\(name,seqId\) \
-DDEFINE_SEQUENCE\(name,seqId,_2,_3,_4\)=\(name,seqId\)
$(BUILD_DIR)/assets/audio/sequence_order.in: $(SEQUENCE_TABLE)
$(CPP) $(CPPFLAGS) $< $(SEQ_ORDER_DEFS) -o $@
$(BUILD_DIR)/assets/audio/sequence_font_table.s: $(BUILD_DIR)/assets/audio/sequence_order.in $(SEQUENCE_O_FILES)
$(ATBLGEN) --sequences $@ $^
# build the tables into objects, move data -> rodata
$(BUILD_DIR)/src/audio/tables/samplebank_table.o: src/audio/tables/samplebank_table.c $(BUILD_DIR)/assets/audio/samplebank_table.h
$(BUILD_DIR)/src/audio/tables/soundfont_table.o: src/audio/tables/soundfont_table.c $(BUILD_DIR)/assets/audio/soundfont_table.h $(SOUNDFONT_HEADERS)
$(BUILD_DIR)/src/audio/tables/sequence_table.o: src/audio/tables/sequence_table.c $(SEQUENCE_TABLE)
$(BUILD_DIR)/src/audio/tables/sequence_table.o: CFLAGS += -I include/tables
$(BUILD_DIR)/src/audio/tables/%.o: src/audio/tables/%.c
ifneq ($(RUN_CC_CHECK),0)
$(CC_CHECK) $<
endif
@ -832,13 +884,8 @@ endif
$(LD) -r -T linker_scripts/data_with_rodata.ld $(@:.o=.tmp) -o $@
@$(RM) $(@:.o=.tmp)
$(BUILD_DIR)/src/audio/tables/soundfont_table.o: src/audio/tables/soundfont_table.c $(BUILD_DIR)/assets/audio/soundfont_table.h $(SOUNDFONT_HEADERS)
ifneq ($(RUN_CC_CHECK),0)
$(CC_CHECK) $<
endif
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $(@:.o=.tmp) $<
$(LD) -r -T linker_scripts/data_with_rodata.ld $(@:.o=.tmp) -o $@
@$(RM) $(@:.o=.tmp)
$(BUILD_DIR)/assets/audio/sequence_font_table.o: $(BUILD_DIR)/assets/audio/sequence_font_table.s
$(AS) $(ASFLAGS) $< -o $@
# Extra audiobank padding that doesn't belong to any soundfont file
$(BUILD_DIR)/assets/audio/audiobank_padding.o:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,208 @@
#include "aseq.h"
#include "Soundfont_3.h"
.startseq Sequence_2
.sequence SEQ_0000
/* 0x0000 [0xD3 0x20 ] */ mutebhv 0x20
/* 0x0002 [0xD5 0x46 ] */ mutescale 70
/* 0x0004 [0xD7 0xFF 0xFF ] */ initchan 0b1111111111111111
/* 0x0007 [0xCC 0x00 ] */ ldi 0
/* 0x0009 [0x73 ] */ stio IO_PORT_3
/* 0x000A [0x76 ] */ stio IO_PORT_6
/* 0x000B [0xCC 0xFF ] */ ldi 255
/* 0x000D [0x75 ] */ stio IO_PORT_5
/* 0x000E [0x80 ] */ ldio IO_PORT_0
/* 0x000F [0xC8 0x01 ] */ sub 1
/* 0x0011 [0xF3 0x07 ] */ rbeqz SEQ_001A
/* 0x0013 [0xCC 0x03 ] */ ldi 3
/* 0x0015 [0xFC 0x00 0xC4 ] */ call SEQ_00C4
/* 0x0018 [0xF4 0x05 ] */ rjump SEQ_001F
SEQ_001A:
/* 0x001A [0xCC 0x31 ] */ ldi 49
/* 0x001C [0xFC 0x00 0xC4 ] */ call SEQ_00C4
SEQ_001F:
/* 0x001F [0xCC 0x00 ] */ ldi 0
/* 0x0021 [0x74 ] */ stio IO_PORT_4
/* 0x0022 [0x82 ] */ ldio IO_PORT_2
/* 0x0023 [0xF2 0x0E ] */ rbltz SEQ_0033
/* 0x0025 [0x53 ] */ subio IO_PORT_3
/* 0x0026 [0xF3 0x0B ] */ rbeqz SEQ_0033
/* 0x0028 [0x82 ] */ ldio IO_PORT_2
/* 0x0029 [0x73 ] */ stio IO_PORT_3
/* 0x002A [0xC8 0x01 ] */ sub 1
/* 0x002C [0xF3 0x22 ] */ rbeqz SEQ_0050
/* 0x002E [0x82 ] */ ldio IO_PORT_2
/* 0x002F [0xC8 0x02 ] */ sub 2
/* 0x0031 [0xF3 0x53 ] */ rbeqz SEQ_0086
SEQ_0033:
/* 0x0033 [0xCE 0x0B ] */ rand 11
/* 0x0035 [0x55 ] */ subio IO_PORT_5
/* 0x0036 [0xF3 0x04 ] */ rbeqz SEQ_003C
/* 0x0038 [0xCE 0x0B ] */ rand 11
/* 0x003A [0xF4 0x0C ] */ rjump SEQ_0048
SEQ_003C:
/* 0x003C [0xCE 0x0B ] */ rand 11
/* 0x003E [0xF3 0x04 ] */ rbeqz SEQ_0044
/* 0x0040 [0xC8 0x01 ] */ sub 1
/* 0x0042 [0xF4 0x04 ] */ rjump SEQ_0048
SEQ_0044:
/* 0x0044 [0xCC 0x0B ] */ ldi 11
/* 0x0046 [0xC8 0x01 ] */ sub 1
SEQ_0048:
/* 0x0048 [0x75 ] */ stio IO_PORT_5
/* 0x0049 [0xC8 0xFC ] */ sub 252
/* 0x004B [0xFC 0x00 0xC4 ] */ call SEQ_00C4
/* 0x004E [0xF4 0xCF ] */ rjump SEQ_001F
SEQ_0050:
/* 0x0050 [0xCC 0x01 ] */ ldi 1
/* 0x0052 [0x74 ] */ stio IO_PORT_4
/* 0x0053 [0xCC 0xFF ] */ ldi 255
/* 0x0055 [0x75 ] */ stio IO_PORT_5
/* 0x0056 [0xCC 0x0F ] */ ldi 15
/* 0x0058 [0xFC 0x00 0xC4 ] */ call SEQ_00C4
SEQ_005B:
/* 0x005B [0x82 ] */ ldio IO_PORT_2
/* 0x005C [0xF2 0x0B ] */ rbltz SEQ_0069
/* 0x005E [0x53 ] */ subio IO_PORT_3
/* 0x005F [0xF3 0x08 ] */ rbeqz SEQ_0069
/* 0x0061 [0x82 ] */ ldio IO_PORT_2
/* 0x0062 [0x73 ] */ stio IO_PORT_3
/* 0x0063 [0xF3 0xBA ] */ rbeqz SEQ_001F
/* 0x0065 [0xC8 0x02 ] */ sub 2
/* 0x0067 [0xF3 0x1D ] */ rbeqz SEQ_0086
SEQ_0069:
/* 0x0069 [0xCE 0x04 ] */ rand 4
/* 0x006B [0x55 ] */ subio IO_PORT_5
/* 0x006C [0xF3 0x04 ] */ rbeqz SEQ_0072
/* 0x006E [0xCE 0x04 ] */ rand 4
/* 0x0070 [0xF4 0x0C ] */ rjump SEQ_007E
SEQ_0072:
/* 0x0072 [0xCE 0x04 ] */ rand 4
/* 0x0074 [0xF3 0x04 ] */ rbeqz SEQ_007A
/* 0x0076 [0xC8 0x01 ] */ sub 1
/* 0x0078 [0xF4 0x04 ] */ rjump SEQ_007E
SEQ_007A:
/* 0x007A [0xCC 0x04 ] */ ldi 4
/* 0x007C [0xC8 0x01 ] */ sub 1
SEQ_007E:
/* 0x007E [0x75 ] */ stio IO_PORT_5
/* 0x007F [0xC8 0xF0 ] */ sub 240
/* 0x0081 [0xFC 0x00 0xC4 ] */ call SEQ_00C4
/* 0x0084 [0xF4 0xD5 ] */ rjump SEQ_005B
SEQ_0086:
/* 0x0086 [0xCC 0x02 ] */ ldi 2
/* 0x0088 [0x74 ] */ stio IO_PORT_4
/* 0x0089 [0xCC 0xFF ] */ ldi 255
/* 0x008B [0x75 ] */ stio IO_PORT_5
/* 0x008C [0xCC 0x14 ] */ ldi 20
/* 0x008E [0xFC 0x00 0xC4 ] */ call SEQ_00C4
SEQ_0091:
/* 0x0091 [0x82 ] */ ldio IO_PORT_2
/* 0x0092 [0xF2 0x0B ] */ rbltz SEQ_009F
/* 0x0094 [0x53 ] */ subio IO_PORT_3
/* 0x0095 [0xF3 0x08 ] */ rbeqz SEQ_009F
/* 0x0097 [0x82 ] */ ldio IO_PORT_2
/* 0x0098 [0x73 ] */ stio IO_PORT_3
/* 0x0099 [0xF3 0x84 ] */ rbeqz SEQ_001F
/* 0x009B [0xC8 0x01 ] */ sub 1
/* 0x009D [0xF3 0xB1 ] */ rbeqz SEQ_0050
SEQ_009F:
/* 0x009F [0xCE 0x03 ] */ rand 3
/* 0x00A1 [0x55 ] */ subio IO_PORT_5
/* 0x00A2 [0xF3 0x04 ] */ rbeqz SEQ_00A8
/* 0x00A4 [0xCE 0x03 ] */ rand 3
/* 0x00A6 [0xF4 0x0C ] */ rjump SEQ_00B4
SEQ_00A8:
/* 0x00A8 [0xCE 0x03 ] */ rand 3
/* 0x00AA [0xF3 0x04 ] */ rbeqz SEQ_00B0
/* 0x00AC [0xC8 0x01 ] */ sub 1
/* 0x00AE [0xF4 0x04 ] */ rjump SEQ_00B4
SEQ_00B0:
/* 0x00B0 [0xCC 0x03 ] */ ldi 3
/* 0x00B2 [0xC8 0x01 ] */ sub 1
SEQ_00B4:
/* 0x00B4 [0x75 ] */ stio IO_PORT_5
/* 0x00B5 [0xC8 0xEB ] */ sub 235
/* 0x00B7 [0xFC 0x00 0xC4 ] */ call SEQ_00C4
/* 0x00BA [0xF4 0xD5 ] */ rjump SEQ_0091
.table TABLE_00BC
entry SEQ_00E8
entry SEQ_00F6
.table TABLE_00C0
entry ARRAY_0110
entry ARRAY_1308
.sequence SEQ_00C4
/* 0x00C4 [0x77 ] */ stio IO_PORT_7
/* 0x00C5 [0xCC 0x00 ] */ ldi 0
/* 0x00C7 [0x70 ] */ stio IO_PORT_0
/* 0x00C8 [0x86 ] */ ldio IO_PORT_6
/* 0x00C9 [0xCD 0x00 0xBC ] */ dyncall TABLE_00BC
SEQ_00CC:
/* 0x00CC [0xFE ] */ delay1
/* 0x00CD [0x00 ] */ testchan 0
/* 0x00CE [0xF3 0xFC ] */ rbeqz SEQ_00CC
/* 0x00D0 [0x06 ] */ testchan 6
/* 0x00D1 [0xF3 0xF9 ] */ rbeqz SEQ_00CC
/* 0x00D3 [0x09 ] */ testchan 9
/* 0x00D4 [0xF3 0xF6 ] */ rbeqz SEQ_00CC
/* 0x00D6 [0x0A ] */ testchan 10
/* 0x00D7 [0xF3 0xF3 ] */ rbeqz SEQ_00CC
/* 0x00D9 [0x0C ] */ testchan 12
/* 0x00DA [0xF3 0xF0 ] */ rbeqz SEQ_00CC
/* 0x00DC [0x0E ] */ testchan 14
/* 0x00DD [0xF3 0xED ] */ rbeqz SEQ_00CC
/* 0x00DF [0x86 ] */ ldio IO_PORT_6
/* 0x00E0 [0xCD 0x00 0xC0 ] */ dyncall TABLE_00C0
/* 0x00E3 [0xCC 0x01 ] */ ldi 1
/* 0x00E5 [0x56 ] */ subio IO_PORT_6
/* 0x00E6 [0x76 ] */ stio IO_PORT_6
/* 0x00E7 [0xFF ] */ end
.sequence SEQ_00E8
/* 0x00E8 [0x87 ] */ ldio IO_PORT_7
/* 0x00E9 [0xC7 0x00 0x00 0xF1 ] */ stseq 0, SEQ_00F0 + STSEQ_LDSEQ_SEQ_ID
/* 0x00ED [0xCC 0xFF ] */ ldi 255
/* 0x00EF [0x71 ] */ stio IO_PORT_1
SEQ_00F0:
/* 0x00F0 [0xB1 0x02 0x01 0x10 ] */ ldseq 1, NA_BGM_FIELD_LOGIC, ARRAY_0110
/* 0x00F4 [0xF4 0x0C ] */ rjump SEQ_0102
.sequence SEQ_00F6
/* 0x00F6 [0x87 ] */ ldio IO_PORT_7
/* 0x00F7 [0xC7 0x00 0x00 0xFF ] */ stseq 0, SEQ_00FE + STSEQ_LDSEQ_SEQ_ID
/* 0x00FB [0xCC 0xFF ] */ ldi 255
/* 0x00FD [0x71 ] */ stio IO_PORT_1
SEQ_00FE:
/* 0x00FE [0xB1 0x02 0x13 0x08 ] */ ldseq 1, NA_BGM_FIELD_LOGIC, ARRAY_1308
SEQ_0102:
/* 0x0102 [0xFE ] */ delay1
/* 0x0103 [0x81 ] */ ldio IO_PORT_1
/* 0x0104 [0xF3 0x03 ] */ rbeqz SEQ_0109
/* 0x0106 [0xF2 0xFA ] */ rbltz SEQ_0102
/* 0x0108 [0xFF ] */ end
SEQ_0109:
/* 0x0109 [0xFF ] */ end
.balign 16
.array ARRAY_0110
.fill 4600
.array ARRAY_1308
.fill 4600
.endseq Sequence_2

View File

@ -29,14 +29,6 @@ incbins:
segment: code
vram: 0x8012A7C0
size: 0x400
- name: gSequenceFontTable
segment: code
vram: 0x80155340
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x80155500
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80155C70

View File

@ -21,14 +21,6 @@ incbins:
segment: code
vram: 0x800E3A10
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x801106E0
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x801108A0
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80111010

View File

@ -21,14 +21,6 @@ incbins:
segment: code
vram: 0x800E3A30
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x80110700
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x801108C0
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80111030

View File

@ -21,14 +21,6 @@ incbins:
segment: code
vram: 0x800E60B0
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x80112EF0
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x801130B0
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80113820

View File

@ -21,14 +21,6 @@ incbins:
segment: code
vram: 0x800E60B0
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x80112EF0
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x801130B0
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80113820

View File

@ -21,14 +21,6 @@ incbins:
segment: code
vram: 0x800E60D0
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x80112F10
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x801130D0
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80113840

View File

@ -21,14 +21,6 @@ incbins:
segment: code
vram: 0x800E6090
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x80112ED0
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x80113090
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80113800

View File

@ -21,14 +21,6 @@ incbins:
segment: code
vram: 0x800E60B0
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x80112EF0
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x801130B0
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80113820

View File

@ -28,14 +28,6 @@ incbins:
segment: code
vram: 0x800E7200
size: 0xAF0
- name: gSequenceFontTable
segment: code
vram: 0x80114060
size: 0x1C0
- name: gSequenceTable
segment: code
vram: 0x80114220
size: 0x6F0
- name: aspMainData
segment: code
vram: 0x80114990

View File

@ -1,16 +0,0 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .rodata
.balign 16
glabel gSequenceFontTable
.incbin "incbin/gSequenceFontTable"
glabel gSequenceTable
.incbin "incbin/gSequenceTable"

2344
include/audio/aseq.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -3,121 +3,18 @@
#include "ultra64.h"
typedef enum SeqId {
/* 0x00 */ NA_BGM_GENERAL_SFX, // General Sound Effects
/* 0x01 */ NA_BGM_NATURE_AMBIENCE, // Environmental nature background sounds
/* 0x02 */ NA_BGM_FIELD_LOGIC, // Hyrule Field
/* 0x03 */ NA_BGM_FIELD_INIT, // Hyrule Field Initial Segment From Loading Area
/* 0x04 */ NA_BGM_FIELD_DEFAULT_1, // Hyrule Field Moving Segment 1
/* 0x05 */ NA_BGM_FIELD_DEFAULT_2, // Hyrule Field Moving Segment 2
/* 0x06 */ NA_BGM_FIELD_DEFAULT_3, // Hyrule Field Moving Segment 3
/* 0x07 */ NA_BGM_FIELD_DEFAULT_4, // Hyrule Field Moving Segment 4
/* 0x08 */ NA_BGM_FIELD_DEFAULT_5, // Hyrule Field Moving Segment 5
/* 0x09 */ NA_BGM_FIELD_DEFAULT_6, // Hyrule Field Moving Segment 6
/* 0x0A */ NA_BGM_FIELD_DEFAULT_7, // Hyrule Field Moving Segment 7
/* 0x0B */ NA_BGM_FIELD_DEFAULT_8, // Hyrule Field Moving Segment 8
/* 0x0C */ NA_BGM_FIELD_DEFAULT_9, // Hyrule Field Moving Segment 9
/* 0x0D */ NA_BGM_FIELD_DEFAULT_A, // Hyrule Field Moving Segment 10
/* 0x0E */ NA_BGM_FIELD_DEFAULT_B, // Hyrule Field Moving Segment 11
/* 0x0F */ NA_BGM_FIELD_ENEMY_INIT, // Hyrule Field Enemy Approaches
/* 0x10 */ NA_BGM_FIELD_ENEMY_1, // Hyrule Field Enemy Near Segment 1
/* 0x11 */ NA_BGM_FIELD_ENEMY_2, // Hyrule Field Enemy Near Segment 2
/* 0x12 */ NA_BGM_FIELD_ENEMY_3, // Hyrule Field Enemy Near Segment 3
/* 0x13 */ NA_BGM_FIELD_ENEMY_4, // Hyrule Field Enemy Near Segment 4
/* 0x14 */ NA_BGM_FIELD_STILL_1, // Hyrule Field Standing Still Segment 1
/* 0x15 */ NA_BGM_FIELD_STILL_2, // Hyrule Field Standing Still Segment 2
/* 0x16 */ NA_BGM_FIELD_STILL_3, // Hyrule Field Standing Still Segment 3
/* 0x17 */ NA_BGM_FIELD_STILL_4, // Hyrule Field Standing Still Segment 4
/* 0x18 */ NA_BGM_DUNGEON, // Dodongo's Cavern
/* 0x19 */ NA_BGM_KAKARIKO_ADULT, // Kakariko Village (Adult)
/* 0x1A */ NA_BGM_ENEMY, // Battle
/* 0x1B */ NA_BGM_BOSS, // Boss Battle "NA_BGM_BOSS00"
/* 0x1C */ NA_BGM_INSIDE_DEKU_TREE, // Inside the Deku Tree "NA_BGM_FAIRY_DUNGEON"
/* 0x1D */ NA_BGM_MARKET, // Market
/* 0x1E */ NA_BGM_TITLE, // Title Theme
/* 0x1F */ NA_BGM_LINK_HOUSE, // House
/* 0x20 */ NA_BGM_GAME_OVER, // Game Over
/* 0x21 */ NA_BGM_BOSS_CLEAR, // Boss Clear
/* 0x22 */ NA_BGM_ITEM_GET, // Obtain Item
/* 0x23 */ NA_BGM_OPENING_GANON, // Enter Ganondorf
/* 0x24 */ NA_BGM_HEART_GET, // Obtain Heart Container
/* 0x25 */ NA_BGM_OCA_LIGHT, // Prelude of Light
/* 0x26 */ NA_BGM_JABU_JABU, // Inside Jabu-Jabu's Belly "NA_BGM_BUYO_DUNGEON"
/* 0x27 */ NA_BGM_KAKARIKO_KID, // Kakariko Village (Child)
/* 0x28 */ NA_BGM_GREAT_FAIRY, // Great Fairy's Fountain "NA_BGM_GODESS"
/* 0x29 */ NA_BGM_ZELDA_THEME, // Zelda's Theme "NA_BGM_HIME"
/* 0x2A */ NA_BGM_FIRE_TEMPLE, // Fire Temple "NA_BGM_FIRE_DUNGEON"
/* 0x2B */ NA_BGM_OPEN_TRE_BOX, // Open Treasure Chest
/* 0x2C */ NA_BGM_FOREST_TEMPLE, // Forest Temple "NA_BGM_FORST_DUNGEON"
/* 0x2D */ NA_BGM_COURTYARD, // Hyrule Castle Courtyard "NA_BGM_HIRAL_GARDEN"
/* 0x2E */ NA_BGM_GANON_TOWER, // Ganondorf's Theme
/* 0x2F */ NA_BGM_LONLON, // Lon Lon Ranch "NA_BGM_RONRON"
/* 0x30 */ NA_BGM_GORON_CITY, // Goron City "NA_BGM_GORON"
/* 0x31 */ NA_BGM_FIELD_MORNING, // Hyrule Field Morning Theme
/* 0x32 */ NA_BGM_SPIRITUAL_STONE, // Spiritual Stone Get "NA_BGM_SPIRIT_STONE"
/* 0x33 */ NA_BGM_OCA_BOLERO, // Bolero of Fire "NA_BGM_OCA_FLAME"
/* 0x34 */ NA_BGM_OCA_MINUET, // Minuet of Forest "NA_BGM_OCA_WIND"
/* 0x35 */ NA_BGM_OCA_SERENADE, // Serenade of Water "NA_BGM_OCA_WATER"
/* 0x36 */ NA_BGM_OCA_REQUIEM, // Requiem of Spirit "NA_BGM_OCA_SOUL"
/* 0x37 */ NA_BGM_OCA_NOCTURNE, // Nocturne of Shadow "NA_BGM_OCA_DARKNESS"
/* 0x38 */ NA_BGM_MINI_BOSS, // Mini-Boss Battle "NA_BGM_MIDDLE_BOSS"
/* 0x39 */ NA_BGM_SMALL_ITEM_GET, // Obtain Small Item "NA_BGM_S_ITEM_GET"
/* 0x3A */ NA_BGM_TEMPLE_OF_TIME, // Temple of Time "NA_BGM_SHRINE_OF_TIME"
/* 0x3B */ NA_BGM_EVENT_CLEAR, // Escape from Lon Lon Ranch
/* 0x3C */ NA_BGM_KOKIRI, // Kokiri Forest
/* 0x3D */ NA_BGM_OCA_FAIRY_GET, // Obtain Fairy Ocarina "NA_BGM_OCA_YOUSEI"
/* 0x3E */ NA_BGM_SARIA_THEME, // Lost Woods "NA_BGM_MAYOIMORI"
/* 0x3F */ NA_BGM_SPIRIT_TEMPLE, // Spirit Temple "NA_BGM_SOUL_DUNGEON"
/* 0x40 */ NA_BGM_HORSE, // Horse Race
/* 0x41 */ NA_BGM_HORSE_GOAL, // Horse Race Goal
/* 0x42 */ NA_BGM_INGO, // Ingo's Theme
/* 0x43 */ NA_BGM_MEDALLION_GET, // Obtain Medallion "NA_BGM_MEDAL_GET"
/* 0x44 */ NA_BGM_OCA_SARIA, // Ocarina Saria's Song
/* 0x45 */ NA_BGM_OCA_EPONA, // Ocarina Epona's Song
/* 0x46 */ NA_BGM_OCA_ZELDA, // Ocarina Zelda's Lullaby
/* 0x47 */ NA_BGM_OCA_SUNS, // Ocarina Sun's Song "NA_BGM_OCA_SUNMOON"
/* 0x48 */ NA_BGM_OCA_TIME, // Ocarina Song of Time
/* 0x49 */ NA_BGM_OCA_STORM, // Ocarina Song of Storms
/* 0x4A */ NA_BGM_NAVI_OPENING, // Fairy Flying "NA_BGM_NAVI"
/* 0x4B */ NA_BGM_DEKU_TREE_CS, // Deku Tree "NA_BGM_DEKUNOKI"
/* 0x4C */ NA_BGM_WINDMILL, // Windmill Hut "NA_BGM_FUSHA"
/* 0x4D */ NA_BGM_HYRULE_CS, // Legend of Hyrule "NA_BGM_HIRAL_DEMO"
/* 0x4E */ NA_BGM_MINI_GAME, // Shooting Gallery
/* 0x4F */ NA_BGM_SHEIK, // Sheik's Theme "NA_BGM_SEAK"
/* 0x50 */ NA_BGM_ZORA_DOMAIN, // Zora's Domain "NA_BGM_ZORA"
/* 0x51 */ NA_BGM_APPEAR, // Enter Zelda
/* 0x52 */ NA_BGM_ADULT_LINK, // Goodbye to Zelda
/* 0x53 */ NA_BGM_MASTER_SWORD, // Master Sword
/* 0x54 */ NA_BGM_INTRO_GANON,
/* 0x55 */ NA_BGM_SHOP, // Shop
/* 0x56 */ NA_BGM_CHAMBER_OF_SAGES, // Chamber of the Sages "NA_BGM_KENJA"
/* 0x57 */ NA_BGM_FILE_SELECT, // File Select
/* 0x58 */ NA_BGM_ICE_CAVERN, // Ice Cavern "NA_BGM_ICE_DUNGEON"
/* 0x59 */ NA_BGM_DOOR_OF_TIME, // Open Door of Temple of Time "NA_BGM_GATE_OPEN"
/* 0x5A */ NA_BGM_OWL, // Kaepora Gaebora's Theme
/* 0x5B */ NA_BGM_SHADOW_TEMPLE, // Shadow Temple "NA_BGM_DARKNESS_DUNGEON"
/* 0x5C */ NA_BGM_WATER_TEMPLE, // Water Temple "NA_BGM_AQUA_DUNGEON"
/* 0x5D */ NA_BGM_BRIDGE_TO_GANONS, // Ganon's Castle Bridge "NA_BGM_BRIDGE"
/* 0x5E */ NA_BGM_OCARINA_OF_TIME, // Ocarina of Time "NA_BGM_SARIA"
/* 0x5F */ NA_BGM_GERUDO_VALLEY, // Gerudo Valley "NA_BGM_GERUDO"
/* 0x60 */ NA_BGM_POTION_SHOP, // Potion Shop "NA_BGM_DRUGSTORE"
/* 0x61 */ NA_BGM_KOTAKE_KOUME, // Kotake & Koume's Theme
/* 0x62 */ NA_BGM_ESCAPE, // Escape from Ganon's Castle
/* 0x63 */ NA_BGM_UNDERGROUND, // Ganon's Castle Under Ground
/* 0x64 */ NA_BGM_GANONDORF_BOSS, // Ganondorf Battle
/* 0x65 */ NA_BGM_GANON_BOSS, // Ganon Battle
/* 0x66 */ NA_BGM_END_DEMO, // Seal of Six Sages
/* 0x67 */ NA_BGM_STAFF_1, // End Credits I
/* 0x68 */ NA_BGM_STAFF_2, // End Credits II
/* 0x69 */ NA_BGM_STAFF_3, // End Credits III
/* 0x6A */ NA_BGM_STAFF_4, // End Credits IV
/* 0x6B */ NA_BGM_FIRE_BOSS, // King Dodongo & Volvagia Boss Battle "NA_BGM_BOSS01"
/* 0x6C */ NA_BGM_TIMED_MINI_GAME, // Mini-Game
/* 0x6D */ NA_BGM_CUTSCENE_EFFECTS, // A small collection of various cutscene sounds
/* 0x7F */ NA_BGM_NO_MUSIC = 0x7F, // No bgm music is played
/* 0x80 */ NA_BGM_NATURE_SFX_RAIN = 0x80, // Related to rain
/* 0xFFFF */ NA_BGM_DISABLED = 0xFFFF
} SeqId;
#define DEFINE_SEQUENCE(_0, seqId, _2, _3, _4) seqId,
#define DEFINE_SEQUENCE_PTR(_0, seqId, _2, _3, _4) seqId,
typedef enum {
#include "tables/sequence_table.h"
NA_BGM_MAX,
NA_BGM_NO_MUSIC = 0x7F,
NA_BGM_NATURE_SFX_RAIN = 0x80,
NA_BGM_DISABLED = 0xFFFF
} NA_BGM;
#undef DEFINE_SEQUENCE
#undef DEFINE_SEQUENCE_PTR
typedef enum SequencePlayerId {
/* 0 */ SEQ_PLAYER_BGM_MAIN,

View File

@ -55,7 +55,7 @@ typedef struct SfxBankEntry {
* bank 1111000000000000 observed in audio code
*/
#define DEFINE_SFX(enum, _1, _2, _3, _4) enum,
#define DEFINE_SFX(_0, enum, _2, _3, _4, _5) enum,
typedef enum SfxId {
NA_SE_NONE, // Requesting a sfx with this id will play no sound

View File

@ -0,0 +1,132 @@
/**
* Sequence Table
*
* DEFINE_SEQUENCE should be used to define sequences
* - Argument 0: The name of the sequence, as defined by .startseq in the .seq file
* - Argument 1: The sequence id enum name
* - Argument 2: Storage medium for the sequence (SampleMedium)
* - Argument 3: Cache load policy for the sequence (AudioCacheLoadType)
* - Argument 4: Sequence flags
*
* DEFINE_SEQUENCE_PTR should be used to define pointers to sequences
* - Argument 0: The sequence id enum name of the sequence this entry points to
* - Argument 1: The sequence id enum name for this pointer
* - Argument 2: Storage medium for the sequence (SampleMedium)
* - Argument 3: Cache load policy for the sequence (AudioCacheLoadType)
* - Argument 4: Sequence flags
*/
#if PLATFORM_N64
#define SEQ_0_FLAGS SEQ_FLAG_FANFARE | SEQ_FLAG_ENEMY
#else
#define SEQ_0_FLAGS SEQ_FLAG_FANFARE
#endif
DEFINE_SEQUENCE (Sequence_0, NA_BGM_GENERAL_SFX, MEDIUM_CART, CACHE_LOAD_PERMANENT, SEQ_0_FLAGS ) // general_sfx
DEFINE_SEQUENCE (Sequence_1, NA_BGM_NATURE_AMBIENCE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // nature_ambience
DEFINE_SEQUENCE (Sequence_2, NA_BGM_FIELD_LOGIC, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_logic
DEFINE_SEQUENCE (Sequence_3, NA_BGM_FIELD_INIT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_init
DEFINE_SEQUENCE (Sequence_4, NA_BGM_FIELD_DEFAULT_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_1
DEFINE_SEQUENCE (Sequence_5, NA_BGM_FIELD_DEFAULT_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_2
DEFINE_SEQUENCE (Sequence_6, NA_BGM_FIELD_DEFAULT_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_3
DEFINE_SEQUENCE (Sequence_7, NA_BGM_FIELD_DEFAULT_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_4
DEFINE_SEQUENCE (Sequence_8, NA_BGM_FIELD_DEFAULT_5, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_5
DEFINE_SEQUENCE (Sequence_9, NA_BGM_FIELD_DEFAULT_6, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_6
DEFINE_SEQUENCE (Sequence_10, NA_BGM_FIELD_DEFAULT_7, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_7
DEFINE_SEQUENCE (Sequence_11, NA_BGM_FIELD_DEFAULT_8, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_8
DEFINE_SEQUENCE (Sequence_12, NA_BGM_FIELD_DEFAULT_9, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_9
DEFINE_SEQUENCE (Sequence_13, NA_BGM_FIELD_DEFAULT_A, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_a
DEFINE_SEQUENCE (Sequence_14, NA_BGM_FIELD_DEFAULT_B, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_default_b
DEFINE_SEQUENCE (Sequence_15, NA_BGM_FIELD_ENEMY_INIT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_init
DEFINE_SEQUENCE (Sequence_16, NA_BGM_FIELD_ENEMY_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_1
DEFINE_SEQUENCE (Sequence_17, NA_BGM_FIELD_ENEMY_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_2
DEFINE_SEQUENCE (Sequence_18, NA_BGM_FIELD_ENEMY_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_3
DEFINE_SEQUENCE (Sequence_19, NA_BGM_FIELD_ENEMY_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_enemy_4
DEFINE_SEQUENCE (Sequence_20, NA_BGM_FIELD_STILL_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_1
DEFINE_SEQUENCE (Sequence_21, NA_BGM_FIELD_STILL_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_2
DEFINE_SEQUENCE (Sequence_22, NA_BGM_FIELD_STILL_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_3
DEFINE_SEQUENCE (Sequence_23, NA_BGM_FIELD_STILL_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_still_4
DEFINE_SEQUENCE (Sequence_24, NA_BGM_DUNGEON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV | SEQ_FLAG_ENEMY ) // dungeon
DEFINE_SEQUENCE (Sequence_25, NA_BGM_KAKARIKO_ADULT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME ) // kakariko_adult
DEFINE_SEQUENCE (Sequence_26, NA_BGM_ENEMY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // enemy
DEFINE_SEQUENCE (Sequence_27, NA_BGM_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE) // boss
DEFINE_SEQUENCE (Sequence_28, NA_BGM_INSIDE_DEKU_TREE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // inside_deku_tree
DEFINE_SEQUENCE (Sequence_29, NA_BGM_MARKET, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // market
DEFINE_SEQUENCE (Sequence_30, NA_BGM_TITLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // title
DEFINE_SEQUENCE (Sequence_31, NA_BGM_LINK_HOUSE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV ) // link_house
DEFINE_SEQUENCE (Sequence_32, NA_BGM_GAME_OVER, MEDIUM_CART, CACHE_LOAD_PERSISTENT, 0 ) // game_over
DEFINE_SEQUENCE (Sequence_33, NA_BGM_BOSS_CLEAR, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // boss_clear
DEFINE_SEQUENCE (Sequence_34, NA_BGM_ITEM_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // item_get
DEFINE_SEQUENCE (Sequence_35, NA_BGM_OPENING_GANON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_FANFARE_GANON ) // opening_ganon
DEFINE_SEQUENCE (Sequence_36, NA_BGM_HEART_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // heart_get
DEFINE_SEQUENCE (Sequence_37, NA_BGM_OCA_LIGHT, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_light
DEFINE_SEQUENCE (Sequence_38, NA_BGM_JABU_JABU, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // jabu_jabu
DEFINE_SEQUENCE (Sequence_39, NA_BGM_KAKARIKO_KID, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME ) // kakariko_kid
DEFINE_SEQUENCE (Sequence_40, NA_BGM_GREAT_FAIRY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // great_fairy
DEFINE_SEQUENCE (Sequence_41, NA_BGM_ZELDA_THEME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // zelda_theme
DEFINE_SEQUENCE (Sequence_42, NA_BGM_FIRE_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // fire_temple
DEFINE_SEQUENCE (Sequence_43, NA_BGM_OPEN_TRE_BOX, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // open_tre_box
DEFINE_SEQUENCE (Sequence_44, NA_BGM_FOREST_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // forest_temple
DEFINE_SEQUENCE (Sequence_45, NA_BGM_COURTYARD, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // courtyard
DEFINE_SEQUENCE (Sequence_46, NA_BGM_GANON_TOWER, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganon_tower
DEFINE_SEQUENCE (Sequence_47, NA_BGM_LONLON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // lonlon
DEFINE_SEQUENCE (Sequence_48, NA_BGM_GORON_CITY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // goron_city
DEFINE_SEQUENCE (Sequence_49, NA_BGM_FIELD_MORNING, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // field_morning
DEFINE_SEQUENCE (Sequence_50, NA_BGM_SPIRITUAL_STONE, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // spiritual_stone
DEFINE_SEQUENCE (Sequence_51, NA_BGM_OCA_BOLERO, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_bolero
DEFINE_SEQUENCE (Sequence_52, NA_BGM_OCA_MINUET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_minuet
DEFINE_SEQUENCE (Sequence_53, NA_BGM_OCA_SERENADE, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_serenade
DEFINE_SEQUENCE (Sequence_54, NA_BGM_OCA_REQUIEM, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_requiem
DEFINE_SEQUENCE (Sequence_55, NA_BGM_OCA_NOCTURNE, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_nocturne
DEFINE_SEQUENCE (Sequence_56, NA_BGM_MINI_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE) // mini_boss
DEFINE_SEQUENCE (Sequence_57, NA_BGM_SMALL_ITEM_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // small_item_get
DEFINE_SEQUENCE (Sequence_58, NA_BGM_TEMPLE_OF_TIME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // temple_of_time
DEFINE_SEQUENCE (Sequence_59, NA_BGM_EVENT_CLEAR, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // event_clear
DEFINE_SEQUENCE (Sequence_60, NA_BGM_KOKIRI, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY ) // kokiri
DEFINE_SEQUENCE (Sequence_61, NA_BGM_OCA_FAIRY_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_fairy_get
DEFINE_SEQUENCE (Sequence_62, NA_BGM_SARIA_THEME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // saria_theme
DEFINE_SEQUENCE (Sequence_63, NA_BGM_SPIRIT_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // spirit_temple
DEFINE_SEQUENCE (Sequence_64, NA_BGM_HORSE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // horse
DEFINE_SEQUENCE (Sequence_65, NA_BGM_HORSE_GOAL, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // horse_goal
DEFINE_SEQUENCE (Sequence_66, NA_BGM_INGO, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // ingo
DEFINE_SEQUENCE (Sequence_67, NA_BGM_MEDALLION_GET, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // medallion_get
DEFINE_SEQUENCE (Sequence_68, NA_BGM_OCA_SARIA, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_saria
DEFINE_SEQUENCE (Sequence_69, NA_BGM_OCA_EPONA, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_epona
DEFINE_SEQUENCE (Sequence_70, NA_BGM_OCA_ZELDA, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_zelda
DEFINE_SEQUENCE (Sequence_71, NA_BGM_OCA_SUNS, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_suns
DEFINE_SEQUENCE (Sequence_72, NA_BGM_OCA_TIME, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_time
DEFINE_SEQUENCE (Sequence_73, NA_BGM_OCA_STORM, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // oca_storm
DEFINE_SEQUENCE (Sequence_74, NA_BGM_NAVI_OPENING, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // navi_opening
DEFINE_SEQUENCE (Sequence_75, NA_BGM_DEKU_TREE_CS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // deku_tree_cs
DEFINE_SEQUENCE (Sequence_76, NA_BGM_WINDMILL, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // windmill
DEFINE_SEQUENCE (Sequence_77, NA_BGM_HYRULE_CS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // hyrule_cs
DEFINE_SEQUENCE (Sequence_78, NA_BGM_MINI_GAME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV ) // mini_game
DEFINE_SEQUENCE (Sequence_79, NA_BGM_SHEIK, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // sheik
DEFINE_SEQUENCE (Sequence_80, NA_BGM_ZORA_DOMAIN, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME ) // zora_domain
DEFINE_SEQUENCE (Sequence_81, NA_BGM_APPEAR, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // appear
DEFINE_SEQUENCE (Sequence_82, NA_BGM_ADULT_LINK, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // adult_link
DEFINE_SEQUENCE (Sequence_83, NA_BGM_MASTER_SWORD, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // master_sword
DEFINE_SEQUENCE (Sequence_84, NA_BGM_INTRO_GANON, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_FANFARE_GANON ) // intro_ganon
DEFINE_SEQUENCE (Sequence_85, NA_BGM_SHOP, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME_PREV ) // shop
DEFINE_SEQUENCE (Sequence_86, NA_BGM_CHAMBER_OF_SAGES, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_SKIP_HARP_INTRO ) // chamber_of_sages
DEFINE_SEQUENCE_PTR(NA_BGM_GREAT_FAIRY, NA_BGM_FILE_SELECT, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_SKIP_HARP_INTRO ) // file_select
DEFINE_SEQUENCE (Sequence_88, NA_BGM_ICE_CAVERN, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // ice_cavern
DEFINE_SEQUENCE (Sequence_89, NA_BGM_DOOR_OF_TIME, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // door_of_time
DEFINE_SEQUENCE (Sequence_90, NA_BGM_OWL, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // owl
DEFINE_SEQUENCE (Sequence_91, NA_BGM_SHADOW_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // shadow_temple
DEFINE_SEQUENCE (Sequence_92, NA_BGM_WATER_TEMPLE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_ENEMY ) // water_temple
DEFINE_SEQUENCE (Sequence_93, NA_BGM_BRIDGE_TO_GANONS, MEDIUM_CART, CACHE_LOAD_PERSISTENT, SEQ_FLAG_FANFARE ) // bridge_to_ganons
DEFINE_SEQUENCE (Sequence_94, NA_BGM_OCARINA_OF_TIME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // ocarina_of_time
DEFINE_SEQUENCE (Sequence_95, NA_BGM_GERUDO_VALLEY, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY ) // gerudo_valley
DEFINE_SEQUENCE (Sequence_96, NA_BGM_POTION_SHOP, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // potion_shop
DEFINE_SEQUENCE (Sequence_97, NA_BGM_KOTAKE_KOUME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // kotake_koume
DEFINE_SEQUENCE (Sequence_98, NA_BGM_ESCAPE, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // escape
DEFINE_SEQUENCE (Sequence_99, NA_BGM_UNDERGROUND, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // underground
DEFINE_SEQUENCE (Sequence_100, NA_BGM_GANONDORF_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganondorf_boss
DEFINE_SEQUENCE (Sequence_101, NA_BGM_GANON_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_NO_AMBIENCE ) // ganon_boss
DEFINE_SEQUENCE (Sequence_102, NA_BGM_END_DEMO, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // end_demo
DEFINE_SEQUENCE (Sequence_103, NA_BGM_STAFF_1, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_1
DEFINE_SEQUENCE (Sequence_104, NA_BGM_STAFF_2, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_2
DEFINE_SEQUENCE (Sequence_105, NA_BGM_STAFF_3, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_3
DEFINE_SEQUENCE (Sequence_106, NA_BGM_STAFF_4, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // staff_4
DEFINE_SEQUENCE (Sequence_107, NA_BGM_FIRE_BOSS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // fire_boss
DEFINE_SEQUENCE (Sequence_108, NA_BGM_TIMED_MINI_GAME, MEDIUM_CART, CACHE_LOAD_TEMPORARY, SEQ_FLAG_RESTORE ) // timed_mini_game
DEFINE_SEQUENCE (Sequence_109, NA_BGM_CUTSCENE_EFFECTS, MEDIUM_CART, CACHE_LOAD_TEMPORARY, 0 ) // cutscene_effects

File diff suppressed because it is too large Load Diff

View File

@ -2,267 +2,266 @@
* Sfx Environment Bank
*
* DEFINE_SFX should be used for all sfx define in the environment bank from sequence 0
* - Argument 0: Channel name for sequence 0
* - Argument 1: Enum value for this sfx
* - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance
* - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3)
* - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3)
* - Argument 5: Various flags to add properties to the sfx
*
* WARNING: entries must align with the table defined for the environment bank in sequence 0
*/
/* 0x2800 */ DEFINE_SFX(NA_SE_EV_DOOR_OPEN, 0x70, 0, 1, SFX_FLAG_10 | SFX_FLAG_9)
/* 0x2801 */ DEFINE_SFX(NA_SE_EV_DOOR_CLOSE, 0x80, 0, 1, 0)
/* 0x2802 */ DEFINE_SFX(NA_SE_EV_EXPLOSION, 0x30, 0, 0, 0)
/* 0x2803 */ DEFINE_SFX(NA_SE_EV_HORSE_WALK, 0x30, 0, 1, 0)
/* 0x2804 */ DEFINE_SFX(NA_SE_EV_HORSE_RUN, 0x30, 0, 1, 0)
/* 0x2805 */ DEFINE_SFX(NA_SE_EV_HORSE_NEIGH, 0x40, 0, 1, 0)
/* 0x2806 */ DEFINE_SFX(NA_SE_EV_RIVER_STREAM, 0x30, 0, 2, SFX_FLAG_10)
/* 0x2807 */ DEFINE_SFX(NA_SE_EV_WATER_WALL_BIG, 0x38, 2, 0, 0)
/* 0x2808 */ DEFINE_SFX(NA_SE_EV_OUT_OF_WATER, 0x30, 0, 1, 0)
/* 0x2809 */ DEFINE_SFX(NA_SE_EV_DIVE_WATER, 0x30, 0, 1, 0)
/* 0x280A */ DEFINE_SFX(NA_SE_EV_ROCK_SLIDE, 0x80, 2, 0, 0)
/* 0x280B */ DEFINE_SFX(NA_SE_EV_MAGMA_LEVEL, 0xA0, 3, 0, 0)
/* 0x280C */ DEFINE_SFX(NA_SE_EV_BRIDGE_OPEN, 0x30, 3, 0, 0)
/* 0x280D */ DEFINE_SFX(NA_SE_EV_BRIDGE_CLOSE, 0x30, 3, 0, 0)
/* 0x280E */ DEFINE_SFX(NA_SE_EV_BRIDGE_OPEN_STOP, 0x30, 3, 0, 0)
/* 0x280F */ DEFINE_SFX(NA_SE_EV_BRIDGE_CLOSE_STOP, 0x30, 3, 0, 0)
/* 0x2810 */ DEFINE_SFX(NA_SE_EV_WALL_BROKEN, 0x30, 2, 0, 0)
/* 0x2811 */ DEFINE_SFX(NA_SE_EV_CHICKEN_CRY_N, 0x30, 0, 1, 0)
/* 0x2812 */ DEFINE_SFX(NA_SE_EV_CHICKEN_CRY_A, 0x30, 0, 1, 0)
/* 0x2813 */ DEFINE_SFX(NA_SE_EV_CHICKEN_CRY_M, 0x30, 0, 0, 0)
/* 0x2814 */ DEFINE_SFX(NA_SE_EV_SLIDE_DOOR_OPEN, 0x60, 0, 0, 0)
/* 0x2815 */ DEFINE_SFX(NA_SE_EV_FOOT_SWITCH, 0x30, 3, 0, 0)
/* 0x2816 */ DEFINE_SFX(NA_SE_EV_HORSE_GROAN, 0x30, 0, 0, 0)
/* 0x2817 */ DEFINE_SFX(NA_SE_EV_BOMB_DROP_WATER, 0x30, 2, 2, 0)
/* 0x2818 */ DEFINE_SFX(NA_SE_EV_HORSE_JUMP, 0x30, 0, 0, 0)
/* 0x2819 */ DEFINE_SFX(NA_SE_EV_HORSE_LAND, 0x40, 0, 0, 0)
/* 0x281A */ DEFINE_SFX(NA_SE_EV_HORSE_SLIP, 0x38, 0, 0, 0)
/* 0x281B */ DEFINE_SFX(NA_SE_EV_FAIRY_DASH, 0x28, 0, 0, 0)
/* 0x281C */ DEFINE_SFX(NA_SE_EV_SLIDE_DOOR_CLOSE, 0x60, 0, 0, 0)
/* 0x281D */ DEFINE_SFX(NA_SE_EV_STONE_BOUND, 0x70, 3, 0, 0)
/* 0x281E */ DEFINE_SFX(NA_SE_EV_STONE_STATUE_OPEN, 0x30, 3, 0, 0)
/* 0x281F */ DEFINE_SFX(NA_SE_EV_TBOX_UNLOCK, 0x30, 0, 0, 0)
/* 0x2820 */ DEFINE_SFX(NA_SE_EV_TBOX_OPEN, 0x30, 0, 0, 0)
/* 0x2821 */ DEFINE_SFX(NA_SE_SY_TIMER, 0xA0, 0, 0, SFX_FLAG_13 | SFX_FLAG_3)
/* 0x2800 */ DEFINE_SFX(CHAN_18CA, NA_SE_EV_DOOR_OPEN, 0x70, 0, 1, SFX_FLAG_10 | SFX_FLAG_9)
/* 0x2801 */ DEFINE_SFX(CHAN_18D9, NA_SE_EV_DOOR_CLOSE, 0x80, 0, 1, 0)
/* 0x2802 */ DEFINE_SFX(CHAN_18E5, NA_SE_EV_EXPLOSION, 0x30, 0, 0, 0)
/* 0x2803 */ DEFINE_SFX(CHAN_18F6, NA_SE_EV_HORSE_WALK, 0x30, 0, 1, 0)
/* 0x2804 */ DEFINE_SFX(CHAN_1900, NA_SE_EV_HORSE_RUN, 0x30, 0, 1, 0)
/* 0x2805 */ DEFINE_SFX(CHAN_190A, NA_SE_EV_HORSE_NEIGH, 0x40, 0, 1, 0)
/* 0x2806 */ DEFINE_SFX(CHAN_1915, NA_SE_EV_RIVER_STREAM, 0x30, 0, 2, SFX_FLAG_10)
/* 0x2807 */ DEFINE_SFX(CHAN_1929, NA_SE_EV_WATER_WALL_BIG, 0x38, 2, 0, 0)
/* 0x2808 */ DEFINE_SFX(CHAN_1945, NA_SE_EV_OUT_OF_WATER, 0x30, 0, 1, 0)
/* 0x2809 */ DEFINE_SFX(CHAN_1959, NA_SE_EV_DIVE_WATER, 0x30, 0, 1, 0)
/* 0x280A */ DEFINE_SFX(CHAN_196B, NA_SE_EV_ROCK_SLIDE, 0x80, 2, 0, 0)
/* 0x280B */ DEFINE_SFX(CHAN_197E, NA_SE_EV_MAGMA_LEVEL, 0xA0, 3, 0, 0)
/* 0x280C */ DEFINE_SFX(CHAN_198F, NA_SE_EV_BRIDGE_OPEN, 0x30, 3, 0, 0)
/* 0x280D */ DEFINE_SFX(CHAN_19C3, NA_SE_EV_BRIDGE_CLOSE, 0x30, 3, 0, 0)
/* 0x280E */ DEFINE_SFX(CHAN_19F7, NA_SE_EV_BRIDGE_OPEN_STOP, 0x30, 3, 0, 0)
/* 0x280F */ DEFINE_SFX(CHAN_1A0E, NA_SE_EV_BRIDGE_CLOSE_STOP, 0x30, 3, 0, 0)
/* 0x2810 */ DEFINE_SFX(CHAN_1A25, NA_SE_EV_WALL_BROKEN, 0x30, 2, 0, 0)
/* 0x2811 */ DEFINE_SFX(CHAN_1A4C, NA_SE_EV_CHICKEN_CRY_N, 0x30, 0, 1, 0)
/* 0x2812 */ DEFINE_SFX(CHAN_1A5B, NA_SE_EV_CHICKEN_CRY_A, 0x30, 0, 1, 0)
/* 0x2813 */ DEFINE_SFX(CHAN_1A73, NA_SE_EV_CHICKEN_CRY_M, 0x30, 0, 0, 0)
/* 0x2814 */ DEFINE_SFX(CHAN_1A7E, NA_SE_EV_SLIDE_DOOR_OPEN, 0x60, 0, 0, 0)
/* 0x2815 */ DEFINE_SFX(CHAN_1A8F, NA_SE_EV_FOOT_SWITCH, 0x30, 3, 0, 0)
/* 0x2816 */ DEFINE_SFX(CHAN_1AB3, NA_SE_EV_HORSE_GROAN, 0x30, 0, 0, 0)
/* 0x2817 */ DEFINE_SFX(CHAN_1ACA, NA_SE_EV_BOMB_DROP_WATER, 0x30, 2, 2, 0)
/* 0x2818 */ DEFINE_SFX(CHAN_1AD6, NA_SE_EV_HORSE_JUMP, 0x30, 0, 0, 0)
/* 0x2819 */ DEFINE_SFX(CHAN_1AE3, NA_SE_EV_HORSE_LAND, 0x40, 0, 0, 0)
/* 0x281A */ DEFINE_SFX(CHAN_1AF0, NA_SE_EV_HORSE_SLIP, 0x38, 0, 0, 0)
/* 0x281B */ DEFINE_SFX(CHAN_1B01, NA_SE_EV_FAIRY_DASH, 0x28, 0, 0, 0)
/* 0x281C */ DEFINE_SFX(CHAN_1B14, NA_SE_EV_SLIDE_DOOR_CLOSE, 0x60, 0, 0, 0)
/* 0x281D */ DEFINE_SFX(CHAN_1B25, NA_SE_EV_STONE_BOUND, 0x70, 3, 0, 0)
/* 0x281E */ DEFINE_SFX(CHAN_1B47, NA_SE_EV_STONE_STATUE_OPEN, 0x30, 3, 0, 0)
/* 0x281F */ DEFINE_SFX(CHAN_1B61, NA_SE_EV_TBOX_UNLOCK, 0x30, 0, 0, 0)
/* 0x2820 */ DEFINE_SFX(CHAN_1B7D, NA_SE_EV_TBOX_OPEN, 0x30, 0, 0, 0)
/* 0x2821 */ DEFINE_SFX(CHAN_1B93, NA_SE_SY_TIMER, 0xA0, 0, 0, SFX_FLAG_13 | SFX_FLAG_3)
#if PLATFORM_N64
/* 0x2822 */ DEFINE_SFX(NA_SE_EV_FLAME_IGNITION, 0x2D, 2, 0, 0)
/* 0x2822 */ DEFINE_SFX(CHAN_1BE9, NA_SE_EV_FLAME_IGNITION, 0x2D, 2, 0, 0)
#else
/* 0x2822 */ DEFINE_SFX(NA_SE_EV_FLAME_IGNITION, 0x20, 2, 0, 0)
/* 0x2822 */ DEFINE_SFX(CHAN_1BE9, NA_SE_EV_FLAME_IGNITION, 0x20, 2, 0, 0)
#endif
/* 0x2823 */ DEFINE_SFX(NA_SE_EV_SPEAR_HIT, 0x30, 0, 0, 0)
/* 0x2824 */ DEFINE_SFX(NA_SE_EV_ELEVATOR_MOVE, 0x30, 0, 0, SFX_FLAG_11)
/* 0x2825 */ DEFINE_SFX(NA_SE_EV_WARP_HOLE, 0x30, 0, 0, SFX_FLAG_15 | SFX_FLAG_11)
/* 0x2826 */ DEFINE_SFX(NA_SE_EV_LINK_WARP, 0x30, 0, 0, SFX_FLAG_15)
/* 0x2827 */ DEFINE_SFX(NA_SE_EV_PILLAR_SINK, 0x30, 2, 0, 0)
/* 0x2828 */ DEFINE_SFX(NA_SE_EV_WATER_WALL, 0x30, 0, 0, 0)
/* 0x2829 */ DEFINE_SFX(NA_SE_EV_RIVER_STREAM_S, 0x30, 0, 0, 0)
/* 0x282A */ DEFINE_SFX(NA_SE_EV_RIVER_STREAM_F, 0x30, 0, 0, 0)
/* 0x282B */ DEFINE_SFX(NA_SE_EV_HORSE_LAND2, 0x30, 0, 0, 0)
/* 0x282C */ DEFINE_SFX(NA_SE_EV_HORSE_SANDDUST, 0x30, 0, 0, SFX_FLAG_10)
/* 0x282D */ DEFINE_SFX(NA_SE_EV_DUMMY45, 0x30, 0, 0, 0)
/* 0x282E */ DEFINE_SFX(NA_SE_EV_LIGHTNING, 0x30, 0, 0, 0)
/* 0x282F */ DEFINE_SFX(NA_SE_EV_BOMB_BOUND, 0x30, 0, 2, 0)
/* 0x2830 */ DEFINE_SFX(NA_SE_EV_WATERDROP, 0x60, 2, 1, 0)
/* 0x2831 */ DEFINE_SFX(NA_SE_EV_TORCH, 0x10, 0, 0, 0)
/* 0x2832 */ DEFINE_SFX(NA_SE_EV_MAGMA_LEVEL_M, 0xA0, 3, 0, 0)
/* 0x2833 */ DEFINE_SFX(NA_SE_EV_FIRE_PILLAR, 0x30, 0, 0, 0)
/* 0x2834 */ DEFINE_SFX(NA_SE_EV_FIRE_PLATE, 0x30, 0, 0, SFX_FLAG_4)
/* 0x2835 */ DEFINE_SFX(NA_SE_EV_BLOCK_BOUND, 0x30, 3, 0, 0)
/* 0x2836 */ DEFINE_SFX(NA_SE_EV_METALDOOR_SLIDE, 0x30, 0, 0, 0)
/* 0x2837 */ DEFINE_SFX(NA_SE_EV_METALDOOR_STOP, 0x30, 0, 0, 0)
/* 0x2838 */ DEFINE_SFX(NA_SE_EV_BLOCK_SHAKE, 0x30, 0, 0, 0)
/* 0x2839 */ DEFINE_SFX(NA_SE_EV_BOX_BREAK, 0x30, 2, 0, 0)
/* 0x283A */ DEFINE_SFX(NA_SE_EV_HAMMER_SWITCH, 0x30, 0, 0, 0)
/* 0x283B */ DEFINE_SFX(NA_SE_EV_MAGMA_LEVEL_L, 0xA0, 3, 0, 0)
/* 0x283C */ DEFINE_SFX(NA_SE_EV_SPEAR_FENCE, 0x30, 0, 0, 0)
/* 0x283D */ DEFINE_SFX(NA_SE_EV_GANON_HORSE_NEIGH, 0x30, 0, 0, SFX_FLAG_10)
/* 0x283E */ DEFINE_SFX(NA_SE_EV_GANON_HORSE_GROAN, 0x30, 0, 0, SFX_FLAG_10)
/* 0x283F */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_S, 0x70, 3, 0, SFX_FLAG_4)
/* 0x2840 */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_L, 0x60, 0, 0, SFX_FLAG_15)
/* 0x2841 */ DEFINE_SFX(NA_SE_EV_FOUNTAIN, 0x30, 0, 0, SFX_FLAG_15)
/* 0x2842 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_WALK, 0x30, 0, 0, 0)
/* 0x2843 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_RUN, 0x30, 0, 0, 0)
/* 0x2844 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_NEIGH, 0x30, 0, 0, 0)
/* 0x2845 */ DEFINE_SFX(NA_SE_EV_KID_HORSE_GROAN, 0x30, 0, 0, 0)
/* 0x2846 */ DEFINE_SFX(NA_SE_EV_WHITE_OUT, 0x30, 3, 0, SFX_FLAG_13)
/* 0x2847 */ DEFINE_SFX(NA_SE_EV_LIGHT_GATHER, 0x30, 0, 0, 0)
/* 0x2848 */ DEFINE_SFX(NA_SE_EV_TREE_CUT, 0x30, 0, 0, 0)
/* 0x2849 */ DEFINE_SFX(NA_SE_EV_VOLCANO, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_4)
/* 0x284A */ DEFINE_SFX(NA_SE_EV_GUILLOTINE_UP, 0x30, 0, 0, 0)
/* 0x284B */ DEFINE_SFX(NA_SE_EV_GUILLOTINE_BOUND, 0x30, 0, 0, 0)
/* 0x284C */ DEFINE_SFX(NA_SE_EV_ROLLCUTTER_MOTOR, 0x30, 0, 0, 0)
/* 0x284D */ DEFINE_SFX(NA_SE_EV_CHINETRAP_DOWN, 0x30, 0, 0, 0)
/* 0x284E */ DEFINE_SFX(NA_SE_EV_PLANT_BROKEN, 0x30, 1, 0, 0)
/* 0x284F */ DEFINE_SFX(NA_SE_EV_SHIP_BELL, 0x30, 0, 0, 0)
/* 0x2850 */ DEFINE_SFX(NA_SE_EV_FLUTTER_FLAG, 0x30, 0, 0, 0)
/* 0x2851 */ DEFINE_SFX(NA_SE_EV_TRAP_BOUND, 0x40, 0, 0, 0)
/* 0x2852 */ DEFINE_SFX(NA_SE_EV_ROCK_BROKEN, 0x30, 2, 3, 0)
/* 0x2853 */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_S2, 0x70, 2, 0, 0)
/* 0x2854 */ DEFINE_SFX(NA_SE_EV_FANTOM_WARP_L2, 0x60, 2, 0, 0)
/* 0x2855 */ DEFINE_SFX(NA_SE_EV_COFFIN_CAP_OPEN, 0x30, 0, 0, 0)
/* 0x2856 */ DEFINE_SFX(NA_SE_EV_COFFIN_CAP_BOUND, 0x60, 1, 0, 0)
/* 0x2857 */ DEFINE_SFX(NA_SE_EV_WIND_TRAP, 0x30, 2, 0, 0)
/* 0x2858 */ DEFINE_SFX(NA_SE_EV_TRAP_OBJ_SLIDE, 0x30, 0, 0, 0)
/* 0x2859 */ DEFINE_SFX(NA_SE_EV_METALDOOR_OPEN, 0x90, 3, 0, 0)
/* 0x285A */ DEFINE_SFX(NA_SE_EV_METALDOOR_CLOSE, 0x90, 3, 0, 0)
/* 0x285B */ DEFINE_SFX(NA_SE_EV_BURN_OUT, 0x30, 0, 0, 0)
/* 0x285C */ DEFINE_SFX(NA_SE_EV_BLOCKSINK, 0x30, 2, 0, 0)
/* 0x285D */ DEFINE_SFX(NA_SE_EV_CROWD, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_12 | SFX_FLAG_11)
/* 0x285E */ DEFINE_SFX(NA_SE_EV_WATER_LEVEL_DOWN, 0x30, 0, 0, 0)
/* 0x2823 */ DEFINE_SFX(CHAN_1BF9, NA_SE_EV_SPEAR_HIT, 0x30, 0, 0, 0)
/* 0x2824 */ DEFINE_SFX(CHAN_1C14, NA_SE_EV_ELEVATOR_MOVE, 0x30, 0, 0, SFX_FLAG_11)
/* 0x2825 */ DEFINE_SFX(CHAN_1C2E, NA_SE_EV_WARP_HOLE, 0x30, 0, 0, SFX_FLAG_15 | SFX_FLAG_11)
/* 0x2826 */ DEFINE_SFX(CHAN_1C9E, NA_SE_EV_LINK_WARP, 0x30, 0, 0, SFX_FLAG_15)
/* 0x2827 */ DEFINE_SFX(CHAN_1CFE, NA_SE_EV_PILLAR_SINK, 0x30, 2, 0, 0)
/* 0x2828 */ DEFINE_SFX(CHAN_1D77, NA_SE_EV_WATER_WALL, 0x30, 0, 0, 0)
/* 0x2829 */ DEFINE_SFX(CHAN_1D8D, NA_SE_EV_RIVER_STREAM_S, 0x30, 0, 0, 0)
/* 0x282A */ DEFINE_SFX(CHAN_1DA1, NA_SE_EV_RIVER_STREAM_F, 0x30, 0, 0, 0)
/* 0x282B */ DEFINE_SFX(CHAN_1DB5, NA_SE_EV_HORSE_LAND2, 0x30, 0, 0, 0)
/* 0x282C */ DEFINE_SFX(CHAN_1DBF, NA_SE_EV_HORSE_SANDDUST, 0x30, 0, 0, SFX_FLAG_10)
/* 0x282D */ DEFINE_SFX(CHAN_1DD0, NA_SE_EV_DUMMY45, 0x30, 0, 0, 0)
/* 0x282E */ DEFINE_SFX(CHAN_1DEE, NA_SE_EV_LIGHTNING, 0x30, 0, 0, 0)
/* 0x282F */ DEFINE_SFX(CHAN_1E10, NA_SE_EV_BOMB_BOUND, 0x30, 0, 2, 0)
/* 0x2830 */ DEFINE_SFX(CHAN_1E26, NA_SE_EV_WATERDROP, 0x60, 2, 1, 0)
/* 0x2831 */ DEFINE_SFX(CHAN_1EAB, NA_SE_EV_TORCH, 0x10, 0, 0, 0)
/* 0x2832 */ DEFINE_SFX(CHAN_1EBA, NA_SE_EV_MAGMA_LEVEL_M, 0xA0, 3, 0, 0)
/* 0x2833 */ DEFINE_SFX(CHAN_1EEC, NA_SE_EV_FIRE_PILLAR, 0x30, 0, 0, 0)
/* 0x2834 */ DEFINE_SFX(CHAN_1EFF, NA_SE_EV_FIRE_PLATE, 0x30, 0, 0, SFX_FLAG_4)
/* 0x2835 */ DEFINE_SFX(CHAN_1F16, NA_SE_EV_BLOCK_BOUND, 0x30, 3, 0, 0)
/* 0x2836 */ DEFINE_SFX(CHAN_1F27, NA_SE_EV_METALDOOR_SLIDE, 0x30, 0, 0, 0)
/* 0x2837 */ DEFINE_SFX(CHAN_1F3D, NA_SE_EV_METALDOOR_STOP, 0x30, 0, 0, 0)
/* 0x2838 */ DEFINE_SFX(CHAN_1F4B, NA_SE_EV_BLOCK_SHAKE, 0x30, 0, 0, 0)
/* 0x2839 */ DEFINE_SFX(CHAN_1F65, NA_SE_EV_BOX_BREAK, 0x30, 2, 0, 0)
/* 0x283A */ DEFINE_SFX(CHAN_1F91, NA_SE_EV_HAMMER_SWITCH, 0x30, 0, 0, 0)
/* 0x283B */ DEFINE_SFX(CHAN_1FAB, NA_SE_EV_MAGMA_LEVEL_L, 0xA0, 3, 0, 0)
/* 0x283C */ DEFINE_SFX(CHAN_1FDD, NA_SE_EV_SPEAR_FENCE, 0x30, 0, 0, 0)
/* 0x283D */ DEFINE_SFX(CHAN_1FFD, NA_SE_EV_GANON_HORSE_NEIGH, 0x30, 0, 0, SFX_FLAG_10)
/* 0x283E */ DEFINE_SFX(CHAN_200F, NA_SE_EV_GANON_HORSE_GROAN, 0x30, 0, 0, SFX_FLAG_10)
/* 0x283F */ DEFINE_SFX(CHAN_2026, NA_SE_EV_FANTOM_WARP_S, 0x70, 3, 0, SFX_FLAG_4)
/* 0x2840 */ DEFINE_SFX(CHAN_207E, NA_SE_EV_FANTOM_WARP_L, 0x60, 0, 0, SFX_FLAG_15)
/* 0x2841 */ DEFINE_SFX(CHAN_20B5, NA_SE_EV_FOUNTAIN, 0x30, 0, 0, SFX_FLAG_15)
/* 0x2842 */ DEFINE_SFX(CHAN_20CB, NA_SE_EV_KID_HORSE_WALK, 0x30, 0, 0, 0)
/* 0x2843 */ DEFINE_SFX(CHAN_20D7, NA_SE_EV_KID_HORSE_RUN, 0x30, 0, 0, 0)
/* 0x2844 */ DEFINE_SFX(CHAN_20E1, NA_SE_EV_KID_HORSE_NEIGH, 0x30, 0, 0, 0)
/* 0x2845 */ DEFINE_SFX(CHAN_20EC, NA_SE_EV_KID_HORSE_GROAN, 0x30, 0, 0, 0)
/* 0x2846 */ DEFINE_SFX(CHAN_20F5, NA_SE_EV_WHITE_OUT, 0x30, 3, 0, SFX_FLAG_13)
/* 0x2847 */ DEFINE_SFX(CHAN_2118, NA_SE_EV_LIGHT_GATHER, 0x30, 0, 0, 0)
/* 0x2848 */ DEFINE_SFX(CHAN_2156, NA_SE_EV_TREE_CUT, 0x30, 0, 0, 0)
/* 0x2849 */ DEFINE_SFX(CHAN_2177, NA_SE_EV_VOLCANO, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_4)
/* 0x284A */ DEFINE_SFX(CHAN_21C0, NA_SE_EV_GUILLOTINE_UP, 0x30, 0, 0, 0)
/* 0x284B */ DEFINE_SFX(CHAN_21D7, NA_SE_EV_GUILLOTINE_BOUND, 0x30, 0, 0, 0)
/* 0x284C */ DEFINE_SFX(CHAN_21FC, NA_SE_EV_ROLLCUTTER_MOTOR, 0x30, 0, 0, 0)
/* 0x284D */ DEFINE_SFX(CHAN_220D, NA_SE_EV_CHINETRAP_DOWN, 0x30, 0, 0, 0)
/* 0x284E */ DEFINE_SFX(CHAN_2225, NA_SE_EV_PLANT_BROKEN, 0x30, 1, 0, 0)
/* 0x284F */ DEFINE_SFX(CHAN_2240, NA_SE_EV_SHIP_BELL, 0x30, 0, 0, 0)
/* 0x2850 */ DEFINE_SFX(CHAN_2261, NA_SE_EV_FLUTTER_FLAG, 0x30, 0, 0, 0)
/* 0x2851 */ DEFINE_SFX(CHAN_229D, NA_SE_EV_TRAP_BOUND, 0x40, 0, 0, 0)
/* 0x2852 */ DEFINE_SFX(CHAN_22A4, NA_SE_EV_ROCK_BROKEN, 0x30, 2, 3, 0)
/* 0x2853 */ DEFINE_SFX(CHAN_22BC, NA_SE_EV_FANTOM_WARP_S2, 0x70, 2, 0, 0)
/* 0x2854 */ DEFINE_SFX(CHAN_22D0, NA_SE_EV_FANTOM_WARP_L2, 0x60, 2, 0, 0)
/* 0x2855 */ DEFINE_SFX(CHAN_22E6, NA_SE_EV_COFFIN_CAP_OPEN, 0x30, 0, 0, 0)
/* 0x2856 */ DEFINE_SFX(CHAN_22F5, NA_SE_EV_COFFIN_CAP_BOUND, 0x60, 1, 0, 0)
/* 0x2857 */ DEFINE_SFX(CHAN_2302, NA_SE_EV_WIND_TRAP, 0x30, 2, 0, 0)
/* 0x2858 */ DEFINE_SFX(CHAN_231C, NA_SE_EV_TRAP_OBJ_SLIDE, 0x30, 0, 0, 0)
/* 0x2859 */ DEFINE_SFX(CHAN_2332, NA_SE_EV_METALDOOR_OPEN, 0x90, 3, 0, 0)
/* 0x285A */ DEFINE_SFX(CHAN_2340, NA_SE_EV_METALDOOR_CLOSE, 0x90, 3, 0, 0)
/* 0x285B */ DEFINE_SFX(CHAN_234E, NA_SE_EV_BURN_OUT, 0x30, 0, 0, 0)
/* 0x285C */ DEFINE_SFX(CHAN_2374, NA_SE_EV_BLOCKSINK, 0x30, 2, 0, 0)
/* 0x285D */ DEFINE_SFX(CHAN_2389, NA_SE_EV_CROWD, 0x30, 0, 0, SFX_FLAG_13 | SFX_FLAG_12 | SFX_FLAG_11)
/* 0x285E */ DEFINE_SFX(CHAN_23A6, NA_SE_EV_WATER_LEVEL_DOWN, 0x30, 0, 0, 0)
#if PLATFORM_N64
/* 0x285F */ DEFINE_SFX(NA_SE_EV_NAVY_VANISH, 0x2C, 0, 0, 0)
/* 0x285F */ DEFINE_SFX(CHAN_23D5, NA_SE_EV_NAVY_VANISH, 0x2C, 0, 0, 0)
#else
/* 0x285F */ DEFINE_SFX(NA_SE_EV_NAVY_VANISH, 0x30, 0, 0, 0)
/* 0x285F */ DEFINE_SFX(CHAN_23D5, NA_SE_EV_NAVY_VANISH, 0x30, 0, 0, 0)
#endif
/* 0x2860 */ DEFINE_SFX(NA_SE_EV_LADDER_DOUND, 0x30, 3, 0, 0)
/* 0x2861 */ DEFINE_SFX(NA_SE_EV_WEB_VIBRATION, 0x30, 0, 0, 0)
/* 0x2862 */ DEFINE_SFX(NA_SE_EV_WEB_BROKEN, 0x30, 0, 0, 0)
/* 0x2863 */ DEFINE_SFX(NA_SE_EV_ROLL_STAND, 0x30, 3, 0, 0)
/* 0x2864 */ DEFINE_SFX(NA_SE_EV_BUYODOOR_OPEN, 0x30, 0, 0, 0)
/* 0x2865 */ DEFINE_SFX(NA_SE_EV_BUYODOOR_CLOSE, 0x30, 0, 0, 0)
/* 0x2866 */ DEFINE_SFX(NA_SE_EV_WOODDOOR_OPEN, 0x30, 0, 0, 0)
/* 0x2867 */ DEFINE_SFX(NA_SE_EV_METALGATE_OPEN, 0x30, 0, 0, 0)
/* 0x2868 */ DEFINE_SFX(NA_SE_IT_SCOOP_UP_WATER, 0x30, 0, 0, 0)
/* 0x2869 */ DEFINE_SFX(NA_SE_EV_FISH_LEAP, 0x30, 0, 0, 0)
/* 0x286A */ DEFINE_SFX(NA_SE_EV_KAKASHI_SWING, 0x30, 0, 0, 0)
/* 0x286B */ DEFINE_SFX(NA_SE_EV_KAKASHI_ROLL, 0x30, 0, 0, 0)
/* 0x286C */ DEFINE_SFX(NA_SE_EV_BOTTLE_CAP_OPEN, 0x30, 0, 0, 0)
/* 0x286D */ DEFINE_SFX(NA_SE_EV_JABJAB_BREATHE, 0x30, 3, 0, SFX_FLAG_11)
/* 0x286E */ DEFINE_SFX(NA_SE_EV_SPIRIT_STONE, 0x30, 0, 0, 0)
/* 0x286F */ DEFINE_SFX(NA_SE_EV_TRIFORCE_FLASH, 0x30, 3, 0, 0)
/* 0x2870 */ DEFINE_SFX(NA_SE_EV_FALL_DOWN_DIRT, 0x30, 0, 0, 0)
/* 0x2871 */ DEFINE_SFX(NA_SE_EV_NAVY_FLY, 0x30, 0, 0, 0)
/* 0x2872 */ DEFINE_SFX(NA_SE_EV_NAVY_CRASH, 0x30, 0, 0, 0)
/* 0x2873 */ DEFINE_SFX(NA_SE_EV_WOOD_HIT, 0x30, 0, 0, 0)
/* 0x2874 */ DEFINE_SFX(NA_SE_EV_SCOOPUP_WATER, 0x30, 0, 0, 0)
/* 0x2875 */ DEFINE_SFX(NA_SE_EV_DROP_FALL, 0x30, 0, 0, 0)
/* 0x2876 */ DEFINE_SFX(NA_SE_EV_WOOD_GEAR, 0x30, 2, 0, 0)
/* 0x2877 */ DEFINE_SFX(NA_SE_EV_TREE_SWING, 0x30, 0, 0, 0)
/* 0x2878 */ DEFINE_SFX(NA_SE_EV_HORSE_RUN_LEVEL, 0x30, 0, 0, 0)
/* 0x2879 */ DEFINE_SFX(NA_SE_EV_ELEVATOR_MOVE2, 0x30, 2, 0, 0)
/* 0x287A */ DEFINE_SFX(NA_SE_EV_ELEVATOR_STOP, 0x30, 2, 0, 0)
/* 0x287B */ DEFINE_SFX(NA_SE_EV_TRE_BOX_APPEAR, 0x30, 2, 0, 0)
/* 0x287C */ DEFINE_SFX(NA_SE_EV_CHAIN_KEY_UNLOCK, 0x40, 0, 0, 0)
/* 0x287D */ DEFINE_SFX(NA_SE_EV_SPINE_TRAP_MOVE, 0x1C, 0, 0, 0)
/* 0x287E */ DEFINE_SFX(NA_SE_EV_HEALING, 0x30, 0, 0, 0)
/* 0x287F */ DEFINE_SFX(NA_SE_EV_GREAT_FAIRY_APPEAR, 0x30, 0, 0, 0)
/* 0x2880 */ DEFINE_SFX(NA_SE_EV_GREAT_FAIRY_VANISH, 0x30, 0, 0, 0)
/* 0x2881 */ DEFINE_SFX(NA_SE_EV_RED_EYE, 0x30, 0, 0, 0)
/* 0x2882 */ DEFINE_SFX(NA_SE_EV_ROLL_STAND_2, 0x30, 0, 0, 0)
/* 0x2883 */ DEFINE_SFX(NA_SE_EV_WALL_SLIDE, 0x30, 0, 0, 0)
/* 0x2884 */ DEFINE_SFX(NA_SE_EV_TRE_BOX_FLASH, 0x30, 0, 0, 0)
/* 0x2885 */ DEFINE_SFX(NA_SE_EV_WINDMILL_LEVEL, 0x60, 0, 0, SFX_FLAG_9)
/* 0x2886 */ DEFINE_SFX(NA_SE_EV_GOTO_HEAVEN, 0x30, 0, 0, SFX_FLAG_11)
/* 0x2887 */ DEFINE_SFX(NA_SE_EV_POT_BROKEN, 0x30, 0, 0, 0)
/* 0x2888 */ DEFINE_SFX(NA_SE_PL_PUT_DOWN_POT, 0x30, 0, 0, 0)
/* 0x2889 */ DEFINE_SFX(NA_SE_EV_DIVE_INTO_WATER, 0x30, 0, 0, 0)
/* 0x288A */ DEFINE_SFX(NA_SE_EV_JUMP_OUT_WATER, 0x30, 0, 0, 0)
/* 0x288B */ DEFINE_SFX(NA_SE_EV_GOD_FLYING, 0x30, 3, 0, 0)
/* 0x288C */ DEFINE_SFX(NA_SE_EV_TRIFORCE, 0x30, 0, 0, 0)
/* 0x288D */ DEFINE_SFX(NA_SE_EV_AURORA, 0x30, 0, 0, 0)
/* 0x288E */ DEFINE_SFX(NA_SE_EV_DEKU_DEATH, 0x30, 0, 0, 0)
/* 0x288F */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_RISING, 0x30, 3, 0, 0)
/* 0x2890 */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_FALL, 0x30, 3, 0, 0)
/* 0x2891 */ DEFINE_SFX(NA_SE_EV_BUYOSHUTTER_OPEN, 0x30, 0, 0, SFX_FLAG_13)
/* 0x2892 */ DEFINE_SFX(NA_SE_EV_BUYOSHUTTER_CLOSE, 0x30, 0, 0, SFX_FLAG_13)
/* 0x2893 */ DEFINE_SFX(NA_SE_EV_STONEDOOR_STOP, 0x30, 3, 0, 0)
/* 0x2894 */ DEFINE_SFX(NA_SE_EV_S_STONE_REVIVAL, 0x30, 0, 0, 0)
/* 0x2895 */ DEFINE_SFX(NA_SE_EV_MEDAL_APPEAR_S, 0x30, 0, 0, 0)
/* 0x2896 */ DEFINE_SFX(NA_SE_EV_HUMAN_BOUND, 0x30, 0, 2, 0)
/* 0x2897 */ DEFINE_SFX(NA_SE_EV_MEDAL_APPEAR_L, 0x30, 0, 0, 0)
/* 0x2898 */ DEFINE_SFX(NA_SE_EV_EARTHQUAKE, 0x30, 0, 0, 0)
/* 0x2899 */ DEFINE_SFX(NA_SE_EV_SHUT_BY_CRYSTAL, 0x30, 0, 0, 0)
/* 0x289A */ DEFINE_SFX(NA_SE_EV_GOD_LIGHTBALL_2, 0x30, 0, 0, 0)
/* 0x289B */ DEFINE_SFX(NA_SE_EV_RUN_AROUND, 0x30, 0, 0, 0)
/* 0x289C */ DEFINE_SFX(NA_SE_EV_CONSENTRATION, 0x30, 0, 0, SFX_FLAG_11)
/* 0x289D */ DEFINE_SFX(NA_SE_EV_TIMETRIP_LIGHT, 0x30, 0, 0, SFX_FLAG_11)
/* 0x289E */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_STOP_A, 0x30, 2, 0, 0)
/* 0x289F */ DEFINE_SFX(NA_SE_EV_BUYOSTAND_STOP_U, 0x30, 3, 0, 0)
/* 0x28A0 */ DEFINE_SFX(NA_SE_EV_OBJECT_FALL, 0x30, 0, 0, 0)
/* 0x28A1 */ DEFINE_SFX(NA_SE_EV_JUMP_CONC, 0x30, 0, 0, 0)
/* 0x28A2 */ DEFINE_SFX(NA_SE_EV_ICE_MELT, 0x30, 0, 0, 0)
/* 0x28A3 */ DEFINE_SFX(NA_SE_EV_FIRE_PILLAR_S, 0x30, 0, 0, 0)
/* 0x28A4 */ DEFINE_SFX(NA_SE_EV_BLOCK_RISING, 0x20, 3, 0, 0)
/* 0x28A5 */ DEFINE_SFX(NA_SE_EV_NABALL_VANISH, 0x30, 0, 0, 0)
/* 0x28A6 */ DEFINE_SFX(NA_SE_EV_SARIA_MELODY, 0x30, 0, 0, SFX_FLAG_15)
/* 0x28A7 */ DEFINE_SFX(NA_SE_EV_LINK_WARP_OUT, 0x30, 0, 0, 0)
/* 0x28A8 */ DEFINE_SFX(NA_SE_EV_FIATY_HEAL, 0x30, 0, 0, 0)
/* 0x28A9 */ DEFINE_SFX(NA_SE_EV_CHAIN_KEY_UNLOCK_B, 0x30, 0, 0, 0)
/* 0x28AA */ DEFINE_SFX(NA_SE_EV_WOODBOX_BREAK, 0x30, 2, 0, 0)
/* 0x28AB */ DEFINE_SFX(NA_SE_EV_PUT_DOWN_WOODBOX, 0x30, 0, 0, 0)
/* 0x28AC */ DEFINE_SFX(NA_SE_EV_LAND_DIRT, 0x30, 0, 0, 0)
/* 0x28AD */ DEFINE_SFX(NA_SE_EV_FLOOR_ROLLING, 0x30, 0, 0, 0)
/* 0x28AE */ DEFINE_SFX(NA_SE_EV_DOG_CRY_EVENING, 0x30, 0, 0, 0)
/* 0x28AF */ DEFINE_SFX(NA_SE_EV_JABJAB_HICCUP, 0x30, 0, 0, 0)
/* 0x28B0 */ DEFINE_SFX(NA_SE_EV_NALE_MAGIC, 0x30, 0, 0, 0)
/* 0x28B1 */ DEFINE_SFX(NA_SE_EV_FROG_JUMP, 0x30, 0, 0, 0)
/* 0x28B2 */ DEFINE_SFX(NA_SE_EV_ICE_FREEZE, 0x30, 3, 0, 0)
/* 0x28B3 */ DEFINE_SFX(NA_SE_EV_BURNING, 0x60, 3, 0, 0)
/* 0x28B4 */ DEFINE_SFX(NA_SE_EV_WOODPLATE_BOUND, 0x30, 0, 2, 0)
/* 0x28B5 */ DEFINE_SFX(NA_SE_EV_GORON_WATER_DROP, 0x30, 0, 0, SFX_FLAG_13)
/* 0x28B6 */ DEFINE_SFX(NA_SE_EV_JABJAB_GROAN, 0x30, 0, 0, 0)
/* 0x28B7 */ DEFINE_SFX(NA_SE_EV_DARUMA_VANISH, 0x30, 1, 0, 0)
/* 0x28B8 */ DEFINE_SFX(NA_SE_EV_BIGBALL_ROLL, 0x30, 0, 0, 0)
/* 0x28B9 */ DEFINE_SFX(NA_SE_EV_ELEVATOR_MOVE3, 0x30, 0, 0, 0)
/* 0x28BA */ DEFINE_SFX(NA_SE_EV_DIAMOND_SWITCH, 0x30, 2, 0, 0)
/* 0x28BB */ DEFINE_SFX(NA_SE_EV_FLAME_OF_FIRE, 0x30, 3, 0, 0)
/* 0x28BC */ DEFINE_SFX(NA_SE_EV_RAINBOW_SHOWER, 0x30, 0, 0, 0)
/* 0x28BD */ DEFINE_SFX(NA_SE_EV_FLYING_AIR, 0x30, 0, 0, 0)
/* 0x28BE */ DEFINE_SFX(NA_SE_EV_PASS_AIR, 0x30, 0, 0, 0)
/* 0x28BF */ DEFINE_SFX(NA_SE_EV_COME_UP_DEKU_JR, 0x30, 0, 0, 0)
/* 0x28C0 */ DEFINE_SFX(NA_SE_EV_SAND_STORM, 0x30, 0, 0, 0)
/* 0x28C1 */ DEFINE_SFX(NA_SE_EV_TRIFORCE_MARK, 0x30, 0, 0, 0)
/* 0x28C2 */ DEFINE_SFX(NA_SE_EV_GRAVE_EXPLOSION, 0xA0, 3, 0, 0)
/* 0x28C3 */ DEFINE_SFX(NA_SE_EV_LURE_MOVE_W, 0x30, 0, 0, 0)
/* 0x28C4 */ DEFINE_SFX(NA_SE_EV_POT_MOVE_START, 0x30, 0, 0, 0)
/* 0x28C5 */ DEFINE_SFX(NA_SE_EV_DIVE_INTO_WATER_L, 0x30, 0, 0, 0)
/* 0x28C6 */ DEFINE_SFX(NA_SE_EV_OUT_OF_WATER_L, 0x30, 0, 0, 0)
/* 0x28C7 */ DEFINE_SFX(NA_SE_EV_GANON_MANTLE, 0x30, 0, 0, 0)
/* 0x28C8 */ DEFINE_SFX(NA_SE_EV_DIG_UP, 0x30, 0, 0, 0)
/* 0x28C9 */ DEFINE_SFX(NA_SE_EV_WOOD_BOUND, 0x30, 0, 0, 0)
/* 0x28CA */ DEFINE_SFX(NA_SE_EV_WATER_BUBBLE, 0x30, 0, 3, 0)
/* 0x28CB */ DEFINE_SFX(NA_SE_EV_ICE_BROKEN, 0x30, 2, 0, 0)
/* 0x28CC */ DEFINE_SFX(NA_SE_EV_FROG_GROW_UP, 0x30, 2, 0, 0)
/* 0x28CD */ DEFINE_SFX(NA_SE_EV_WATER_CONVECTION, 0x30, 0, 0, 0)
/* 0x28CE */ DEFINE_SFX(NA_SE_EV_GROUND_GATE_OPEN, 0x30, 3, 0, 0)
/* 0x28CF */ DEFINE_SFX(NA_SE_EV_FACE_BREAKDOWN, 0x30, 3, 0, 0)
/* 0x28D0 */ DEFINE_SFX(NA_SE_EV_FACE_EXPLOSION, 0x30, 0, 0, 0)
/* 0x28D1 */ DEFINE_SFX(NA_SE_EV_FACE_CRUMBLE_SLOW, 0x30, 3, 2, SFX_FLAG_14)
/* 0x28D2 */ DEFINE_SFX(NA_SE_EV_ROUND_TRAP_MOVE, 0x30, 0, 0, 0)
/* 0x28D3 */ DEFINE_SFX(NA_SE_EV_HIT_SOUND, 0x30, 0, 0, 0)
/* 0x28D4 */ DEFINE_SFX(NA_SE_EV_ICE_SWING, 0x30, 0, 0, 0)
/* 0x28D5 */ DEFINE_SFX(NA_SE_EV_DOWN_TO_GROUND, 0x30, 0, 0, 0)
/* 0x28D6 */ DEFINE_SFX(NA_SE_EV_KENJA_ENVIROMENT_0, 0x30, 0, 0, 0)
/* 0x28D7 */ DEFINE_SFX(NA_SE_EV_KENJA_ENVIROMENT_1, 0x30, 0, 0, 0)
/* 0x28D8 */ DEFINE_SFX(NA_SE_EV_SMALL_DOG_BARK, 0x80, 0, 0, 0)
/* 0x28D9 */ DEFINE_SFX(NA_SE_EV_ZELDA_POWER, 0x60, 0, 0, 0)
/* 0x28DA */ DEFINE_SFX(NA_SE_EV_RAIN, 0x90, 0, 0, 0)
/* 0x28DB */ DEFINE_SFX(NA_SE_EV_IRON_DOOR_OPEN, 0x30, 0, 0, 0)
/* 0x28DC */ DEFINE_SFX(NA_SE_EV_IRON_DOOR_CLOSE, 0x30, 0, 0, 0)
/* 0x28DD */ DEFINE_SFX(NA_SE_EV_WHIRLPOOL, 0x30, 0, 0, 0)
/* 0x28DE */ DEFINE_SFX(NA_SE_EV_TOWER_PARTS_BROKEN, 0x60, 3, 3, 0)
/* 0x28DF */ DEFINE_SFX(NA_SE_EV_COW_CRY, 0x30, 0, 0, 0)
/* 0x28E0 */ DEFINE_SFX(NA_SE_EV_METAL_BOX_BOUND, 0x30, 0, 0, 0)
/* 0x28E1 */ DEFINE_SFX(NA_SE_EV_ELECTRIC_EXPLOSION, 0x30, 3, 0, 0)
/* 0x28E2 */ DEFINE_SFX(NA_SE_EV_HEAVY_THROW, 0x30, 3, 0, 0)
/* 0x28E3 */ DEFINE_SFX(NA_SE_EV_FROG_CRY_0, 0x30, 0, 0, 0)
/* 0x28E4 */ DEFINE_SFX(NA_SE_EV_FROG_CRY_1, 0x30, 0, 0, 0)
/* 0x28E5 */ DEFINE_SFX(NA_SE_EV_COW_CRY_LV, 0x30, 0, 0, 0)
/* 0x28E6 */ DEFINE_SFX(NA_SE_EV_RONRON_DOOR_CLOSE, 0x30, 0, 0, 0)
/* 0x28E7 */ DEFINE_SFX(NA_SE_EV_BUTTERFRY_TO_FAIRY, 0x30, 0, 0, 0)
/* 0x28E8 */ DEFINE_SFX(NA_SE_EV_FIVE_COUNT_LUPY, 0xA0, 0, 0, SFX_FLAG_11)
/* 0x28E9 */ DEFINE_SFX(NA_SE_EV_STONE_GROW_UP, 0x30, 0, 0, 0)
/* 0x28EA */ DEFINE_SFX(NA_SE_EV_STONE_LAUNCH, 0x30, 0, 0, 0)
/* 0x28EB */ DEFINE_SFX(NA_SE_EV_STONE_ROLLING, 0x30, 0, 0, 0)
/* 0x28EC */ DEFINE_SFX(NA_SE_EV_TOGE_STICK_ROLLING, 0x30, 2, 0, 0)
/* 0x28ED */ DEFINE_SFX(NA_SE_EV_TOWER_ENERGY, 0x30, 0, 0, 0)
/* 0x28EE */ DEFINE_SFX(NA_SE_EV_TOWER_BARRIER, 0x30, 3, 0, 0)
/* 0x28EF */ DEFINE_SFX(NA_SE_EV_CHIBI_WALK, 0x20, 0, 0, 0)
/* 0x28F0 */ DEFINE_SFX(NA_SE_EV_KNIGHT_WALK, 0x30, 0, 0, 0)
/* 0x28F1 */ DEFINE_SFX(NA_SE_EV_PILLAR_MOVE_STOP, 0x30, 0, 0, 0)
/* 0x28F2 */ DEFINE_SFX(NA_SE_EV_ERUPTION_CLOUD, 0x30, 0, 0, 0)
/* 0x28F3 */ DEFINE_SFX(NA_SE_EV_LINK_WARP_OUT_LV, 0x30, 0, 0, 0)
/* 0x28F4 */ DEFINE_SFX(NA_SE_EV_LINK_WARP_IN, 0x30, 0, 0, 0)
/* 0x28F5 */ DEFINE_SFX(NA_SE_EV_OCARINA_BMELO_0, 0x30, 0, 0, 0)
/* 0x28F6 */ DEFINE_SFX(NA_SE_EV_OCARINA_BMELO_1, 0x30, 0, 0, 0)
/* 0x28F7 */ DEFINE_SFX(NA_SE_EV_EXPLOSION_FOR_RENZOKU, 0x30, 0, 0, 0)
/* 0x2860 */ DEFINE_SFX(CHAN_23EB, NA_SE_EV_LADDER_DOUND, 0x30, 3, 0, 0)
/* 0x2861 */ DEFINE_SFX(CHAN_2401, NA_SE_EV_WEB_VIBRATION, 0x30, 0, 0, 0)
/* 0x2862 */ DEFINE_SFX(CHAN_2416, NA_SE_EV_WEB_BROKEN, 0x30, 0, 0, 0)
/* 0x2863 */ DEFINE_SFX(CHAN_243A, NA_SE_EV_ROLL_STAND, 0x30, 3, 0, 0)
/* 0x2864 */ DEFINE_SFX(CHAN_245F, NA_SE_EV_BUYODOOR_OPEN, 0x30, 0, 0, 0)
/* 0x2865 */ DEFINE_SFX(CHAN_2480, NA_SE_EV_BUYODOOR_CLOSE, 0x30, 0, 0, 0)
/* 0x2866 */ DEFINE_SFX(CHAN_24A1, NA_SE_EV_WOODDOOR_OPEN, 0x30, 0, 0, 0)
/* 0x2867 */ DEFINE_SFX(CHAN_24AD, NA_SE_EV_METALGATE_OPEN, 0x30, 0, 0, 0)
/* 0x2868 */ DEFINE_SFX(CHAN_24BD, NA_SE_IT_SCOOP_UP_WATER, 0x30, 0, 0, 0)
/* 0x2869 */ DEFINE_SFX(CHAN_24CB, NA_SE_EV_FISH_LEAP, 0x30, 0, 0, 0)
/* 0x286A */ DEFINE_SFX(CHAN_24DF, NA_SE_EV_KAKASHI_SWING, 0x30, 0, 0, 0)
/* 0x286B */ DEFINE_SFX(CHAN_24F0, NA_SE_EV_KAKASHI_ROLL, 0x30, 0, 0, 0)
/* 0x286C */ DEFINE_SFX(CHAN_2502, NA_SE_EV_BOTTLE_CAP_OPEN, 0x30, 0, 0, 0)
/* 0x286D */ DEFINE_SFX(CHAN_250E, NA_SE_EV_JABJAB_BREATHE, 0x30, 3, 0, SFX_FLAG_11)
/* 0x286E */ DEFINE_SFX(CHAN_2531, NA_SE_EV_SPIRIT_STONE, 0x30, 0, 0, 0)
/* 0x286F */ DEFINE_SFX(CHAN_2554, NA_SE_EV_TRIFORCE_FLASH, 0x30, 3, 0, 0)
/* 0x2870 */ DEFINE_SFX(CHAN_256B, NA_SE_EV_FALL_DOWN_DIRT, 0x30, 0, 0, 0)
/* 0x2871 */ DEFINE_SFX(CHAN_2582, NA_SE_EV_NAVY_FLY, 0x30, 0, 0, 0)
/* 0x2872 */ DEFINE_SFX(CHAN_2597, NA_SE_EV_NAVY_CRASH, 0x30, 0, 0, 0)
/* 0x2873 */ DEFINE_SFX(CHAN_25C6, NA_SE_EV_WOOD_HIT, 0x30, 0, 0, 0)
/* 0x2874 */ DEFINE_SFX(CHAN_25D4, NA_SE_EV_SCOOPUP_WATER, 0x30, 0, 0, 0)
/* 0x2875 */ DEFINE_SFX(CHAN_25FF, NA_SE_EV_DROP_FALL, 0x30, 0, 0, 0)
/* 0x2876 */ DEFINE_SFX(CHAN_2619, NA_SE_EV_WOOD_GEAR, 0x30, 2, 0, 0)
/* 0x2877 */ DEFINE_SFX(CHAN_262A, NA_SE_EV_TREE_SWING, 0x30, 0, 0, 0)
/* 0x2878 */ DEFINE_SFX(CHAN_264B, NA_SE_EV_HORSE_RUN_LEVEL, 0x30, 0, 0, 0)
/* 0x2879 */ DEFINE_SFX(CHAN_2656, NA_SE_EV_ELEVATOR_MOVE2, 0x30, 2, 0, 0)
/* 0x287A */ DEFINE_SFX(CHAN_2667, NA_SE_EV_ELEVATOR_STOP, 0x30, 2, 0, 0)
/* 0x287B */ DEFINE_SFX(CHAN_2691, NA_SE_EV_TRE_BOX_APPEAR, 0x30, 2, 0, 0)
/* 0x287C */ DEFINE_SFX(CHAN_26CF, NA_SE_EV_CHAIN_KEY_UNLOCK, 0x40, 0, 0, 0)
/* 0x287D */ DEFINE_SFX(CHAN_26E9, NA_SE_EV_SPINE_TRAP_MOVE, 0x1C, 0, 0, 0)
/* 0x287E */ DEFINE_SFX(CHAN_2700, NA_SE_EV_HEALING, 0x30, 0, 0, 0)
/* 0x287F */ DEFINE_SFX(CHAN_272F, NA_SE_EV_GREAT_FAIRY_APPEAR, 0x30, 0, 0, 0)
/* 0x2880 */ DEFINE_SFX(CHAN_274E, NA_SE_EV_GREAT_FAIRY_VANISH, 0x30, 0, 0, 0)
/* 0x2881 */ DEFINE_SFX(CHAN_2752, NA_SE_EV_RED_EYE, 0x30, 0, 0, 0)
/* 0x2882 */ DEFINE_SFX(CHAN_2764, NA_SE_EV_ROLL_STAND_2, 0x30, 0, 0, 0)
/* 0x2883 */ DEFINE_SFX(CHAN_2776, NA_SE_EV_WALL_SLIDE, 0x30, 0, 0, 0)
/* 0x2884 */ DEFINE_SFX(CHAN_278C, NA_SE_EV_TRE_BOX_FLASH, 0x30, 0, 0, 0)
/* 0x2885 */ DEFINE_SFX(CHAN_279F, NA_SE_EV_WINDMILL_LEVEL, 0x60, 0, 0, SFX_FLAG_9)
/* 0x2886 */ DEFINE_SFX(CHAN_27B0, NA_SE_EV_GOTO_HEAVEN, 0x30, 0, 0, SFX_FLAG_11)
/* 0x2887 */ DEFINE_SFX(CHAN_27DD, NA_SE_EV_POT_BROKEN, 0x30, 0, 0, 0)
/* 0x2888 */ DEFINE_SFX(CHAN_27F0, NA_SE_PL_PUT_DOWN_POT, 0x30, 0, 0, 0)
/* 0x2889 */ DEFINE_SFX(CHAN_06CD, NA_SE_EV_DIVE_INTO_WATER, 0x30, 0, 0, 0)
/* 0x288A */ DEFINE_SFX(CHAN_06E1, NA_SE_EV_JUMP_OUT_WATER, 0x30, 0, 0, 0)
/* 0x288B */ DEFINE_SFX(CHAN_27FC, NA_SE_EV_GOD_FLYING, 0x30, 3, 0, 0)
/* 0x288C */ DEFINE_SFX(CHAN_2829, NA_SE_EV_TRIFORCE, 0x30, 0, 0, 0)
/* 0x288D */ DEFINE_SFX(CHAN_2848, NA_SE_EV_AURORA, 0x30, 0, 0, 0)
/* 0x288E */ DEFINE_SFX(CHAN_2862, NA_SE_EV_DEKU_DEATH, 0x30, 0, 0, 0)
/* 0x288F */ DEFINE_SFX(CHAN_288B, NA_SE_EV_BUYOSTAND_RISING, 0x30, 3, 0, 0)
/* 0x2890 */ DEFINE_SFX(CHAN_28B4, NA_SE_EV_BUYOSTAND_FALL, 0x30, 3, 0, 0)
/* 0x2891 */ DEFINE_SFX(CHAN_28BC, NA_SE_EV_BUYOSHUTTER_OPEN, 0x30, 0, 0, SFX_FLAG_13)
/* 0x2892 */ DEFINE_SFX(CHAN_28DC, NA_SE_EV_BUYOSHUTTER_CLOSE, 0x30, 0, 0, SFX_FLAG_13)
/* 0x2893 */ DEFINE_SFX(CHAN_28E0, NA_SE_EV_STONEDOOR_STOP, 0x30, 3, 0, 0)
/* 0x2894 */ DEFINE_SFX(CHAN_28E7, NA_SE_EV_S_STONE_REVIVAL, 0x30, 0, 0, 0)
/* 0x2895 */ DEFINE_SFX(CHAN_2933, NA_SE_EV_MEDAL_APPEAR_S, 0x30, 0, 0, 0)
/* 0x2896 */ DEFINE_SFX(CHAN_2951, NA_SE_EV_HUMAN_BOUND, 0x30, 0, 2, 0)
/* 0x2897 */ DEFINE_SFX(CHAN_296A, NA_SE_EV_MEDAL_APPEAR_L, 0x30, 0, 0, 0)
/* 0x2898 */ DEFINE_SFX(CHAN_298E, NA_SE_EV_EARTHQUAKE, 0x30, 0, 0, 0)
/* 0x2899 */ DEFINE_SFX(CHAN_29C5, NA_SE_EV_SHUT_BY_CRYSTAL, 0x30, 0, 0, 0)
/* 0x289A */ DEFINE_SFX(CHAN_29F0, NA_SE_EV_GOD_LIGHTBALL_2, 0x30, 0, 0, 0)
/* 0x289B */ DEFINE_SFX(CHAN_2A15, NA_SE_EV_RUN_AROUND, 0x30, 0, 0, 0)
/* 0x289C */ DEFINE_SFX(CHAN_2A15, NA_SE_EV_CONSENTRATION, 0x30, 0, 0, SFX_FLAG_11)
/* 0x289D */ DEFINE_SFX(CHAN_2A5C, NA_SE_EV_TIMETRIP_LIGHT, 0x30, 0, 0, SFX_FLAG_11)
/* 0x289E */ DEFINE_SFX(CHAN_2A97, NA_SE_EV_BUYOSTAND_STOP_A, 0x30, 2, 0, 0)
/* 0x289F */ DEFINE_SFX(CHAN_2AB2, NA_SE_EV_BUYOSTAND_STOP_U, 0x30, 3, 0, 0)
/* 0x28A0 */ DEFINE_SFX(CHAN_2ACC, NA_SE_EV_OBJECT_FALL, 0x30, 0, 0, 0)
/* 0x28A1 */ DEFINE_SFX(CHAN_2AE4, NA_SE_EV_JUMP_CONC, 0x30, 0, 0, 0)
/* 0x28A2 */ DEFINE_SFX(CHAN_2AEB, NA_SE_EV_ICE_MELT, 0x30, 0, 0, 0)
/* 0x28A3 */ DEFINE_SFX(CHAN_2B10, NA_SE_EV_FIRE_PILLAR_S, 0x30, 0, 0, 0)
/* 0x28A4 */ DEFINE_SFX(CHAN_2B14, NA_SE_EV_BLOCK_RISING, 0x20, 3, 0, 0)
/* 0x28A5 */ DEFINE_SFX(CHAN_2B2A, NA_SE_EV_NABALL_VANISH, 0x30, 0, 0, 0)
/* 0x28A6 */ DEFINE_SFX(CHAN_2B49, NA_SE_EV_SARIA_MELODY, 0x30, 0, 0, SFX_FLAG_15)
/* 0x28A7 */ DEFINE_SFX(CHAN_2B61, NA_SE_EV_LINK_WARP_OUT, 0x30, 0, 0, 0)
/* 0x28A8 */ DEFINE_SFX(CHAN_2B75, NA_SE_EV_FIATY_HEAL, 0x30, 0, 0, 0)
/* 0x28A9 */ DEFINE_SFX(CHAN_2BB0, NA_SE_EV_CHAIN_KEY_UNLOCK_B, 0x30, 0, 0, 0)
/* 0x28AA */ DEFINE_SFX(CHAN_2BD2, NA_SE_EV_WOODBOX_BREAK, 0x30, 2, 0, 0)
/* 0x28AB */ DEFINE_SFX(CHAN_2BE1, NA_SE_EV_PUT_DOWN_WOODBOX, 0x30, 0, 0, 0)
/* 0x28AC */ DEFINE_SFX(CHAN_2BEE, NA_SE_EV_LAND_DIRT, 0x30, 0, 0, 0)
/* 0x28AD */ DEFINE_SFX(CHAN_2BF5, NA_SE_EV_FLOOR_ROLLING, 0x30, 0, 0, 0)
/* 0x28AE */ DEFINE_SFX(CHAN_2BFE, NA_SE_EV_DOG_CRY_EVENING, 0x30, 0, 0, 0)
/* 0x28AF */ DEFINE_SFX(CHAN_2C0D, NA_SE_EV_JABJAB_HICCUP, 0x30, 0, 0, 0)
/* 0x28B0 */ DEFINE_SFX(CHAN_0F8D, NA_SE_EV_NALE_MAGIC, 0x30, 0, 0, 0)
/* 0x28B1 */ DEFINE_SFX(CHAN_2C19, NA_SE_EV_FROG_JUMP, 0x30, 0, 0, 0)
/* 0x28B2 */ DEFINE_SFX(CHAN_2C38, NA_SE_EV_ICE_FREEZE, 0x30, 3, 0, 0)
/* 0x28B3 */ DEFINE_SFX(CHAN_2C54, NA_SE_EV_BURNING, 0x60, 3, 0, 0)
/* 0x28B4 */ DEFINE_SFX(CHAN_2C75, NA_SE_EV_WOODPLATE_BOUND, 0x30, 0, 2, 0)
/* 0x28B5 */ DEFINE_SFX(CHAN_2C85, NA_SE_EV_GORON_WATER_DROP, 0x30, 0, 0, SFX_FLAG_13)
/* 0x28B6 */ DEFINE_SFX(CHAN_2C99, NA_SE_EV_JABJAB_GROAN, 0x30, 0, 0, 0)
/* 0x28B7 */ DEFINE_SFX(CHAN_2CAF, NA_SE_EV_DARUMA_VANISH, 0x30, 1, 0, 0)
/* 0x28B8 */ DEFINE_SFX(CHAN_2CBB, NA_SE_EV_BIGBALL_ROLL, 0x30, 0, 0, 0)
/* 0x28B9 */ DEFINE_SFX(CHAN_2CD6, NA_SE_EV_ELEVATOR_MOVE3, 0x30, 0, 0, 0)
/* 0x28BA */ DEFINE_SFX(CHAN_2CF0, NA_SE_EV_DIAMOND_SWITCH, 0x30, 2, 0, 0)
/* 0x28BB */ DEFINE_SFX(CHAN_2CF6, NA_SE_EV_FLAME_OF_FIRE, 0x30, 3, 0, 0)
/* 0x28BC */ DEFINE_SFX(CHAN_2CFE, NA_SE_EV_RAINBOW_SHOWER, 0x30, 0, 0, 0)
/* 0x28BD */ DEFINE_SFX(CHAN_2D13, NA_SE_EV_FLYING_AIR, 0x30, 0, 0, 0)
/* 0x28BE */ DEFINE_SFX(CHAN_2D36, NA_SE_EV_PASS_AIR, 0x30, 0, 0, 0)
/* 0x28BF */ DEFINE_SFX(CHAN_2D4E, NA_SE_EV_COME_UP_DEKU_JR, 0x30, 0, 0, 0)
/* 0x28C0 */ DEFINE_SFX(CHAN_2D63, NA_SE_EV_SAND_STORM, 0x30, 0, 0, 0)
/* 0x28C1 */ DEFINE_SFX(CHAN_2D85, NA_SE_EV_TRIFORCE_MARK, 0x30, 0, 0, 0)
/* 0x28C2 */ DEFINE_SFX(CHAN_2D9D, NA_SE_EV_GRAVE_EXPLOSION, 0xA0, 3, 0, 0)
/* 0x28C3 */ DEFINE_SFX(CHAN_06F2, NA_SE_EV_LURE_MOVE_W, 0x30, 0, 0, 0)
/* 0x28C4 */ DEFINE_SFX(CHAN_0989, NA_SE_EV_POT_MOVE_START, 0x30, 0, 0, 0)
/* 0x28C5 */ DEFINE_SFX(CHAN_2DA9, NA_SE_EV_DIVE_INTO_WATER_L, 0x30, 0, 0, 0)
/* 0x28C6 */ DEFINE_SFX(CHAN_2DAD, NA_SE_EV_OUT_OF_WATER_L, 0x30, 0, 0, 0)
/* 0x28C7 */ DEFINE_SFX(CHAN_2DC3, NA_SE_EV_GANON_MANTLE, 0x30, 0, 0, 0)
/* 0x28C8 */ DEFINE_SFX(CHAN_2DD1, NA_SE_EV_DIG_UP, 0x30, 0, 0, 0)
/* 0x28C9 */ DEFINE_SFX(CHAN_2BDE, NA_SE_EV_WOOD_BOUND, 0x30, 0, 0, 0)
/* 0x28CA */ DEFINE_SFX(CHAN_2DD8, NA_SE_EV_WATER_BUBBLE, 0x30, 0, 3, 0)
/* 0x28CB */ DEFINE_SFX(CHAN_2DE4, NA_SE_EV_ICE_BROKEN, 0x30, 2, 0, 0)
/* 0x28CC */ DEFINE_SFX(CHAN_2DFC, NA_SE_EV_FROG_GROW_UP, 0x30, 2, 0, 0)
/* 0x28CD */ DEFINE_SFX(CHAN_2E14, NA_SE_EV_WATER_CONVECTION, 0x30, 0, 0, 0)
/* 0x28CE */ DEFINE_SFX(CHAN_2E1D, NA_SE_EV_GROUND_GATE_OPEN, 0x30, 3, 0, 0)
/* 0x28CF */ DEFINE_SFX(CHAN_2E29, NA_SE_EV_FACE_BREAKDOWN, 0x30, 3, 0, 0)
/* 0x28D0 */ DEFINE_SFX(CHAN_2E30, NA_SE_EV_FACE_EXPLOSION, 0x30, 0, 0, 0)
/* 0x28D1 */ DEFINE_SFX(CHAN_2E37, NA_SE_EV_FACE_CRUMBLE_SLOW, 0x30, 3, 2, SFX_FLAG_14)
/* 0x28D2 */ DEFINE_SFX(CHAN_2E3E, NA_SE_EV_ROUND_TRAP_MOVE, 0x30, 0, 0, 0)
/* 0x28D3 */ DEFINE_SFX(CHAN_5C64, NA_SE_EV_HIT_SOUND, 0x30, 0, 0, 0)
/* 0x28D4 */ DEFINE_SFX(CHAN_2E4F, NA_SE_EV_ICE_SWING, 0x30, 0, 0, 0)
/* 0x28D5 */ DEFINE_SFX(CHAN_2E5B, NA_SE_EV_DOWN_TO_GROUND, 0x30, 0, 0, 0)
/* 0x28D6 */ DEFINE_SFX(CHAN_2E60, NA_SE_EV_KENJA_ENVIROMENT_0, 0x30, 0, 0, 0)
/* 0x28D7 */ DEFINE_SFX(CHAN_2E6E, NA_SE_EV_KENJA_ENVIROMENT_1, 0x30, 0, 0, 0)
/* 0x28D8 */ DEFINE_SFX(CHAN_2E86, NA_SE_EV_SMALL_DOG_BARK, 0x80, 0, 0, 0)
/* 0x28D9 */ DEFINE_SFX(CHAN_2E92, NA_SE_EV_ZELDA_POWER, 0x60, 0, 0, 0)
/* 0x28DA */ DEFINE_SFX(CHAN_2EB6, NA_SE_EV_RAIN, 0x90, 0, 0, 0)
/* 0x28DB */ DEFINE_SFX(CHAN_2ECF, NA_SE_EV_IRON_DOOR_OPEN, 0x30, 0, 0, 0)
/* 0x28DC */ DEFINE_SFX(CHAN_2EDB, NA_SE_EV_IRON_DOOR_CLOSE, 0x30, 0, 0, 0)
/* 0x28DD */ DEFINE_SFX(CHAN_2EE7, NA_SE_EV_WHIRLPOOL, 0x30, 0, 0, 0)
/* 0x28DE */ DEFINE_SFX(CHAN_2EEE, NA_SE_EV_TOWER_PARTS_BROKEN, 0x60, 3, 3, 0)
/* 0x28DF */ DEFINE_SFX(CHAN_2F1A, NA_SE_EV_COW_CRY, 0x30, 0, 0, 0)
/* 0x28E0 */ DEFINE_SFX(CHAN_2F26, NA_SE_EV_METAL_BOX_BOUND, 0x30, 0, 0, 0)
/* 0x28E1 */ DEFINE_SFX(CHAN_2F43, NA_SE_EV_ELECTRIC_EXPLOSION, 0x30, 3, 0, 0)
/* 0x28E2 */ DEFINE_SFX(CHAN_2D4E, NA_SE_EV_HEAVY_THROW, 0x30, 3, 0, 0)
/* 0x28E3 */ DEFINE_SFX(CHAN_2F4A, NA_SE_EV_FROG_CRY_0, 0x30, 0, 0, 0)
/* 0x28E4 */ DEFINE_SFX(CHAN_2F60, NA_SE_EV_FROG_CRY_1, 0x30, 0, 0, 0)
/* 0x28E5 */ DEFINE_SFX(CHAN_2F76, NA_SE_EV_COW_CRY_LV, 0x30, 0, 0, 0)
/* 0x28E6 */ DEFINE_SFX(CHAN_2FB8, NA_SE_EV_RONRON_DOOR_CLOSE, 0x30, 0, 0, 0)
/* 0x28E7 */ DEFINE_SFX(CHAN_2FC5, NA_SE_EV_BUTTERFRY_TO_FAIRY, 0x30, 0, 0, 0)
/* 0x28E8 */ DEFINE_SFX(CHAN_5E6B, NA_SE_EV_FIVE_COUNT_LUPY, 0xA0, 0, 0, SFX_FLAG_11)
/* 0x28E9 */ DEFINE_SFX(CHAN_2FEA, NA_SE_EV_STONE_GROW_UP, 0x30, 0, 0, 0)
/* 0x28EA */ DEFINE_SFX(CHAN_2FFC, NA_SE_EV_STONE_LAUNCH, 0x30, 0, 0, 0)
/* 0x28EB */ DEFINE_SFX(CHAN_1B14, NA_SE_EV_STONE_ROLLING, 0x30, 0, 0, 0)
/* 0x28EC */ DEFINE_SFX(CHAN_3002, NA_SE_EV_TOGE_STICK_ROLLING, 0x30, 2, 0, 0)
/* 0x28ED */ DEFINE_SFX(CHAN_300F, NA_SE_EV_TOWER_ENERGY, 0x30, 0, 0, 0)
/* 0x28EE */ DEFINE_SFX(CHAN_303C, NA_SE_EV_TOWER_BARRIER, 0x30, 3, 0, 0)
/* 0x28EF */ DEFINE_SFX(CHAN_3081, NA_SE_EV_CHIBI_WALK, 0x20, 0, 0, 0)
/* 0x28F0 */ DEFINE_SFX(CHAN_308F, NA_SE_EV_KNIGHT_WALK, 0x30, 0, 0, 0)
/* 0x28F1 */ DEFINE_SFX(CHAN_30AB, NA_SE_EV_PILLAR_MOVE_STOP, 0x30, 0, 0, 0)
/* 0x28F2 */ DEFINE_SFX(CHAN_2D4E, NA_SE_EV_ERUPTION_CLOUD, 0x30, 0, 0, 0)
/* 0x28F3 */ DEFINE_SFX(CHAN_2F4A, NA_SE_EV_LINK_WARP_OUT_LV, 0x30, 0, 0, 0)
/* 0x28F4 */ DEFINE_SFX(CHAN_2F60, NA_SE_EV_LINK_WARP_IN, 0x30, 0, 0, 0)
/* 0x28F5 */ DEFINE_SFX(CHAN_2F76, NA_SE_EV_OCARINA_BMELO_0, 0x30, 0, 0, 0)
/* 0x28F6 */ DEFINE_SFX(CHAN_2FB8, NA_SE_EV_OCARINA_BMELO_1, 0x30, 0, 0, 0)
/* 0x28F7 */ DEFINE_SFX(CHAN_2FC5, NA_SE_EV_EXPLOSION_FOR_RENZOKU, 0x30, 0, 0, 0)

View File

@ -2,95 +2,94 @@
* Sfx Item Bank
*
* DEFINE_SFX should be used for all sfx define in the item bank from sequence 0
* - Argument 0: Channel name for sequence 0
* - Argument 1: Enum value for this sfx
* - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance
* - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3)
* - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3)
* - Argument 5: Various flags to add properties to the sfx
*
* WARNING: entries must align with the table defined for the item bank in sequence 0
*/
/* 0x1800 */ DEFINE_SFX(NA_SE_IT_SWORD_IMPACT, 0x30, 0, 1, SFX_FLAG_15)
/* 0x1801 */ DEFINE_SFX(NA_SE_IT_SWORD_SWING, 0x30, 0, 1, 0)
/* 0x1802 */ DEFINE_SFX(NA_SE_IT_SWORD_PUTAWAY, 0x30, 0, 0, 0)
/* 0x1803 */ DEFINE_SFX(NA_SE_IT_SWORD_PICKOUT, 0x30, 0, 0, 0)
/* 0x1804 */ DEFINE_SFX(NA_SE_IT_ARROW_SHOT, 0x30, 0, 1, SFX_FLAG_10)
/* 0x1805 */ DEFINE_SFX(NA_SE_IT_BOOMERANG_THROW, 0x30, 0, 1, SFX_FLAG_10)
/* 0x1806 */ DEFINE_SFX(NA_SE_IT_SHIELD_BOUND, 0x60, 3, 2, 0)
/* 0x1807 */ DEFINE_SFX(NA_SE_IT_BOW_DRAW, 0x30, 0, 1, SFX_FLAG_10)
/* 0x1808 */ DEFINE_SFX(NA_SE_IT_SHIELD_REFLECT_SW, 0x80, 3, 1, 0)
/* 0x1809 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_HRAD, 0x30, 0, 0, 0)
/* 0x180A */ DEFINE_SFX(NA_SE_IT_HAMMER_HIT, 0x30, 0, 1, 0)
/* 0x180B */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_CHAIN, 0x30, 0, 0, SFX_FLAG_10)
/* 0x180C */ DEFINE_SFX(NA_SE_IT_SHIELD_REFLECT_MG, 0x30, 1, 0, SFX_FLAG_10)
/* 0x180D */ DEFINE_SFX(NA_SE_IT_BOMB_IGNIT, 0x50, 0, 0, 0)
/* 0x180E */ DEFINE_SFX(NA_SE_IT_BOMB_EXPLOSION, 0x90, 2, 0, 0)
/* 0x180F */ DEFINE_SFX(NA_SE_IT_BOMB_UNEXPLOSION, 0x50, 2, 0, 0)
/* 0x1810 */ DEFINE_SFX(NA_SE_IT_BOOMERANG_FLY, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1811 */ DEFINE_SFX(NA_SE_IT_SWORD_STRIKE, 0x40, 2, 0, 0)
/* 0x1812 */ DEFINE_SFX(NA_SE_IT_HAMMER_SWING, 0x30, 0, 1, 0)
/* 0x1800 */ DEFINE_SFX(CHAN_0F83, NA_SE_IT_SWORD_IMPACT, 0x30, 0, 1, SFX_FLAG_15)
/* 0x1801 */ DEFINE_SFX(CHAN_0F8D, NA_SE_IT_SWORD_SWING, 0x30, 0, 1, 0)
/* 0x1802 */ DEFINE_SFX(CHAN_0F9B, NA_SE_IT_SWORD_PUTAWAY, 0x30, 0, 0, 0)
/* 0x1803 */ DEFINE_SFX(CHAN_0FA5, NA_SE_IT_SWORD_PICKOUT, 0x30, 0, 0, 0)
/* 0x1804 */ DEFINE_SFX(CHAN_0FAF, NA_SE_IT_ARROW_SHOT, 0x30, 0, 1, SFX_FLAG_10)
/* 0x1805 */ DEFINE_SFX(CHAN_0FB9, NA_SE_IT_BOOMERANG_THROW, 0x30, 0, 1, SFX_FLAG_10)
/* 0x1806 */ DEFINE_SFX(CHAN_0FCB, NA_SE_IT_SHIELD_BOUND, 0x60, 3, 2, 0)
/* 0x1807 */ DEFINE_SFX(CHAN_0FDB, NA_SE_IT_BOW_DRAW, 0x30, 0, 1, SFX_FLAG_10)
/* 0x1808 */ DEFINE_SFX(CHAN_0FE9, NA_SE_IT_SHIELD_REFLECT_SW, 0x80, 3, 1, 0)
/* 0x1809 */ DEFINE_SFX(CHAN_1001, NA_SE_IT_ARROW_STICK_HRAD, 0x30, 0, 0, 0)
/* 0x180A */ DEFINE_SFX(CHAN_100B, NA_SE_IT_HAMMER_HIT, 0x30, 0, 1, 0)
/* 0x180B */ DEFINE_SFX(CHAN_1022, NA_SE_IT_HOOKSHOT_CHAIN, 0x30, 0, 0, SFX_FLAG_10)
/* 0x180C */ DEFINE_SFX(CHAN_103A, NA_SE_IT_SHIELD_REFLECT_MG, 0x30, 1, 0, SFX_FLAG_10)
/* 0x180D */ DEFINE_SFX(CHAN_106A, NA_SE_IT_BOMB_IGNIT, 0x50, 0, 0, 0)
/* 0x180E */ DEFINE_SFX(CHAN_1076, NA_SE_IT_BOMB_EXPLOSION, 0x90, 2, 0, 0)
/* 0x180F */ DEFINE_SFX(CHAN_1085, NA_SE_IT_BOMB_UNEXPLOSION, 0x50, 2, 0, 0)
/* 0x1810 */ DEFINE_SFX(CHAN_10A2, NA_SE_IT_BOOMERANG_FLY, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1811 */ DEFINE_SFX(CHAN_10D2, NA_SE_IT_SWORD_STRIKE, 0x40, 2, 0, 0)
/* 0x1812 */ DEFINE_SFX(CHAN_10E6, NA_SE_IT_HAMMER_SWING, 0x30, 0, 1, 0)
#if PLATFORM_N64
/* 0x1813 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_REFLECT, 0x20, 0, 0, 0)
/* 0x1813 */ DEFINE_SFX(CHAN_10F4, NA_SE_IT_HOOKSHOT_REFLECT, 0x20, 0, 0, 0)
#else
/* 0x1813 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_REFLECT, 0x30, 0, 0, 0)
/* 0x1813 */ DEFINE_SFX(CHAN_10F4, NA_SE_IT_HOOKSHOT_REFLECT, 0x30, 0, 0, 0)
#endif
/* 0x1814 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_CRE, 0x30, 0, 0, 0)
/* 0x1815 */ DEFINE_SFX(NA_SE_IT_ARROW_STICK_OBJ, 0x34, 0, 0, 0)
/* 0x1816 */ DEFINE_SFX(NA_SE_IT_DUMMY, 0x30, 0, 0, 0)
/* 0x1817 */ DEFINE_SFX(NA_SE_IT_DUMMY2, 0x30, 0, 0, 0)
/* 0x1818 */ DEFINE_SFX(NA_SE_IT_SWORD_SWING_HARD, 0x30, 0, 0, 0)
/* 0x1819 */ DEFINE_SFX(NA_SE_IT_DUMMY3, 0x30, 0, 0, 0)
/* 0x181A */ DEFINE_SFX(NA_SE_IT_WALL_HIT_HARD, 0x40, 0, 0, 0)
/* 0x181B */ DEFINE_SFX(NA_SE_IT_WALL_HIT_SOFT, 0x30, 0, 0, 0)
/* 0x181C */ DEFINE_SFX(NA_SE_IT_STONE_HIT, 0x30, 0, 0, 0)
/* 0x181D */ DEFINE_SFX(NA_SE_IT_WOODSTICK_BROKEN, 0x30, 0, 0, 0)
/* 0x181E */ DEFINE_SFX(NA_SE_IT_LASH, 0x30, 0, 2, 0)
/* 0x181F */ DEFINE_SFX(NA_SE_IT_SHIELD_POSTURE, 0x30, 0, 1, 0)
/* 0x1820 */ DEFINE_SFX(NA_SE_IT_SLING_SHOT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1821 */ DEFINE_SFX(NA_SE_IT_SLING_DRAW, 0x20, 0, 0, SFX_FLAG_10)
/* 0x1822 */ DEFINE_SFX(NA_SE_IT_SWORD_CHARGE, 0x30, 0, 0, 0)
/* 0x1823 */ DEFINE_SFX(NA_SE_IT_ROLLING_CUT, 0x30, 0, 0, 0)
/* 0x1824 */ DEFINE_SFX(NA_SE_IT_SWORD_STRIKE_HARD, 0x30, 0, 0, 0)
/* 0x1825 */ DEFINE_SFX(NA_SE_IT_SLING_REFLECT, 0x30, 0, 0, 0)
/* 0x1826 */ DEFINE_SFX(NA_SE_IT_SHIELD_REMOVE, 0x30, 0, 0, 0)
/* 0x1827 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_READY, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1828 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_RECEIVE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1829 */ DEFINE_SFX(NA_SE_IT_HOOKSHOT_STICK_OBJ, 0x60, 3, 1, 0)
/* 0x182A */ DEFINE_SFX(NA_SE_IT_SWORD_REFLECT_MG, 0x30, 1, 0, 0)
/* 0x182B */ DEFINE_SFX(NA_SE_IT_DEKU, 0x30, 1, 0, SFX_FLAG_10)
/* 0x182C */ DEFINE_SFX(NA_SE_IT_WALL_HIT_BUYO, 0x30, 0, 0, 0)
/* 0x182D */ DEFINE_SFX(NA_SE_IT_SWORD_PUTAWAY_STN, 0x30, 0, 0, 0)
/* 0x182E */ DEFINE_SFX(NA_SE_IT_ROLLING_CUT_LV1, 0xA0, 2, 0, 0)
/* 0x182F */ DEFINE_SFX(NA_SE_IT_ROLLING_CUT_LV2, 0xA0, 2, 0, 0)
/* 0x1830 */ DEFINE_SFX(NA_SE_IT_BOW_FLICK, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1831 */ DEFINE_SFX(NA_SE_IT_BOMBCHU_MOVE, 0x30, 0, 0, 0)
/* 0x1832 */ DEFINE_SFX(NA_SE_IT_SHIELD_CHARGE_LV1, 0x60, 0, 0, 0)
/* 0x1833 */ DEFINE_SFX(NA_SE_IT_SHIELD_CHARGE_LV2, 0x60, 0, 0, 0)
/* 0x1834 */ DEFINE_SFX(NA_SE_IT_SHIELD_CHARGE_LV3, 0x60, 0, 0, 0)
/* 0x1835 */ DEFINE_SFX(NA_SE_IT_SLING_FLICK, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1836 */ DEFINE_SFX(NA_SE_IT_SWORD_STICK_STN, 0x30, 0, 0, 0)
/* 0x1837 */ DEFINE_SFX(NA_SE_IT_REFLECTION_WOOD, 0x60, 1, 2, 0)
/* 0x1838 */ DEFINE_SFX(NA_SE_IT_SHIELD_REFLECT_MG2, 0x30, 0, 0, 0)
/* 0x1839 */ DEFINE_SFX(NA_SE_IT_MAGIC_ARROW_SHOT, 0x30, 0, 0, 0)
/* 0x183A */ DEFINE_SFX(NA_SE_IT_EXPLOSION_FRAME, 0x60, 3, 0, SFX_FLAG_15)
/* 0x183B */ DEFINE_SFX(NA_SE_IT_EXPLOSION_ICE, 0x60, 3, 0, SFX_FLAG_15)
/* 0x183C */ DEFINE_SFX(NA_SE_IT_EXPLOSION_LIGHT, 0x60, 3, 0, SFX_FLAG_15)
/* 0x183D */ DEFINE_SFX(NA_SE_IT_FISHING_REEL_SLOW, 0x30, 0, 0, SFX_FLAG_14)
/* 0x183E */ DEFINE_SFX(NA_SE_IT_FISHING_REEL_HIGH, 0x30, 0, 0, SFX_FLAG_14)
/* 0x183F */ DEFINE_SFX(NA_SE_IT_PULL_FISHING_ROD, 0x30, 0, 1, 0)
/* 0x1840 */ DEFINE_SFX(NA_SE_IT_DM_FLYING_GOD_PASS, 0x80, 3, 0, 0)
/* 0x1841 */ DEFINE_SFX(NA_SE_IT_DM_FLYING_GOD_DASH, 0x80, 3, 0, 0)
/* 0x1842 */ DEFINE_SFX(NA_SE_IT_DM_RING_EXPLOSION, 0x30, 3, 0, 0)
/* 0x1843 */ DEFINE_SFX(NA_SE_IT_DM_RING_GATHER, 0x30, 0, 0, 0)
/* 0x1844 */ DEFINE_SFX(NA_SE_IT_INGO_HORSE_NEIGH, 0x30, 0, 1, 0)
/* 0x1845 */ DEFINE_SFX(NA_SE_IT_EARTHQUAKE, 0x30, 0, 0, 0)
/* 0x1846 */ DEFINE_SFX(NA_SE_IT_DUMMY4, 0x30, 0, 0, 0)
/* 0x1847 */ DEFINE_SFX(NA_SE_IT_KAKASHI_JUMP, 0x30, 0, 0, 0)
/* 0x1848 */ DEFINE_SFX(NA_SE_IT_FLAME, 0x30, 0, 0, 0)
/* 0x1849 */ DEFINE_SFX(NA_SE_IT_SHIELD_BEAM, 0x30, 0, 0, 0)
/* 0x184A */ DEFINE_SFX(NA_SE_IT_FISHING_HIT, 0x30, 0, 0, 0)
/* 0x184B */ DEFINE_SFX(NA_SE_IT_GOODS_APPEAR, 0x30, 0, 0, 0)
/* 0x184C */ DEFINE_SFX(NA_SE_IT_MAJIN_SWORD_BROKEN, 0x80, 0, 0, 0)
/* 0x184D */ DEFINE_SFX(NA_SE_IT_HAND_CLAP, 0x30, 0, 0, 0)
/* 0x184E */ DEFINE_SFX(NA_SE_IT_MASTER_SWORD_SWING, 0x30, 0, 0, 0)
/* 0x184F */ DEFINE_SFX(NA_SE_IT_DUMMY5, 0x30, 0, 0, 0)
/* 0x1814 */ DEFINE_SFX(CHAN_110B, NA_SE_IT_ARROW_STICK_CRE, 0x30, 0, 0, 0)
/* 0x1815 */ DEFINE_SFX(CHAN_1120, NA_SE_IT_ARROW_STICK_OBJ, 0x34, 0, 0, 0)
/* 0x1816 */ DEFINE_SFX(CHAN_1123, NA_SE_IT_DUMMY, 0x30, 0, 0, 0)
/* 0x1817 */ DEFINE_SFX(CHAN_1146, NA_SE_IT_DUMMY2, 0x30, 0, 0, 0)
/* 0x1818 */ DEFINE_SFX(CHAN_1169, NA_SE_IT_SWORD_SWING_HARD, 0x30, 0, 0, 0)
/* 0x1819 */ DEFINE_SFX(CHAN_1E10, NA_SE_IT_DUMMY3, 0x30, 0, 0, 0)
/* 0x181A */ DEFINE_SFX(CHAN_1187, NA_SE_IT_WALL_HIT_HARD, 0x40, 0, 0, 0)
/* 0x181B */ DEFINE_SFX(CHAN_119A, NA_SE_IT_WALL_HIT_SOFT, 0x30, 0, 0, 0)
/* 0x181C */ DEFINE_SFX(CHAN_11B3, NA_SE_IT_STONE_HIT, 0x30, 0, 0, 0)
/* 0x181D */ DEFINE_SFX(CHAN_11C4, NA_SE_IT_WOODSTICK_BROKEN, 0x30, 0, 0, 0)
/* 0x181E */ DEFINE_SFX(CHAN_11D5, NA_SE_IT_LASH, 0x30, 0, 2, 0)
/* 0x181F */ DEFINE_SFX(CHAN_11E8, NA_SE_IT_SHIELD_POSTURE, 0x30, 0, 1, 0)
/* 0x1820 */ DEFINE_SFX(CHAN_1208, NA_SE_IT_SLING_SHOT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1821 */ DEFINE_SFX(CHAN_1216, NA_SE_IT_SLING_DRAW, 0x20, 0, 0, SFX_FLAG_10)
/* 0x1822 */ DEFINE_SFX(CHAN_1224, NA_SE_IT_SWORD_CHARGE, 0x30, 0, 0, 0)
/* 0x1823 */ DEFINE_SFX(CHAN_125A, NA_SE_IT_ROLLING_CUT, 0x30, 0, 0, 0)
/* 0x1824 */ DEFINE_SFX(CHAN_1271, NA_SE_IT_SWORD_STRIKE_HARD, 0x30, 0, 0, 0)
/* 0x1825 */ DEFINE_SFX(CHAN_128A, NA_SE_IT_SLING_REFLECT, 0x30, 0, 0, 0)
/* 0x1826 */ DEFINE_SFX(CHAN_12A0, NA_SE_IT_SHIELD_REMOVE, 0x30, 0, 0, 0)
/* 0x1827 */ DEFINE_SFX(CHAN_12C0, NA_SE_IT_HOOKSHOT_READY, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1828 */ DEFINE_SFX(CHAN_12DA, NA_SE_IT_HOOKSHOT_RECEIVE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1829 */ DEFINE_SFX(CHAN_12F4, NA_SE_IT_HOOKSHOT_STICK_OBJ, 0x60, 3, 1, 0)
/* 0x182A */ DEFINE_SFX(CHAN_1316, NA_SE_IT_SWORD_REFLECT_MG, 0x30, 1, 0, 0)
/* 0x182B */ DEFINE_SFX(CHAN_132D, NA_SE_IT_DEKU, 0x30, 1, 0, SFX_FLAG_10)
/* 0x182C */ DEFINE_SFX(CHAN_1350, NA_SE_IT_WALL_HIT_BUYO, 0x30, 0, 0, 0)
/* 0x182D */ DEFINE_SFX(CHAN_1396, NA_SE_IT_SWORD_PUTAWAY_STN, 0x30, 0, 0, 0)
/* 0x182E */ DEFINE_SFX(CHAN_13A7, NA_SE_IT_ROLLING_CUT_LV1, 0xA0, 2, 0, 0)
/* 0x182F */ DEFINE_SFX(CHAN_13CA, NA_SE_IT_ROLLING_CUT_LV2, 0xA0, 2, 0, 0)
/* 0x1830 */ DEFINE_SFX(CHAN_13E8, NA_SE_IT_BOW_FLICK, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1831 */ DEFINE_SFX(CHAN_13FE, NA_SE_IT_BOMBCHU_MOVE, 0x30, 0, 0, 0)
/* 0x1832 */ DEFINE_SFX(CHAN_1411, NA_SE_IT_SHIELD_CHARGE_LV1, 0x60, 0, 0, 0)
/* 0x1833 */ DEFINE_SFX(CHAN_145D, NA_SE_IT_SHIELD_CHARGE_LV2, 0x60, 0, 0, 0)
/* 0x1834 */ DEFINE_SFX(CHAN_1462, NA_SE_IT_SHIELD_CHARGE_LV3, 0x60, 0, 0, 0)
/* 0x1835 */ DEFINE_SFX(CHAN_1467, NA_SE_IT_SLING_FLICK, 0x30, 0, 0, SFX_FLAG_10)
/* 0x1836 */ DEFINE_SFX(CHAN_147C, NA_SE_IT_SWORD_STICK_STN, 0x30, 0, 0, 0)
/* 0x1837 */ DEFINE_SFX(CHAN_1493, NA_SE_IT_REFLECTION_WOOD, 0x60, 1, 2, 0)
/* 0x1838 */ DEFINE_SFX(CHAN_14B0, NA_SE_IT_SHIELD_REFLECT_MG2, 0x30, 0, 0, 0)
/* 0x1839 */ DEFINE_SFX(CHAN_14B9, NA_SE_IT_MAGIC_ARROW_SHOT, 0x30, 0, 0, 0)
/* 0x183A */ DEFINE_SFX(CHAN_14CA, NA_SE_IT_EXPLOSION_FRAME, 0x60, 3, 0, SFX_FLAG_15)
/* 0x183B */ DEFINE_SFX(CHAN_14E5, NA_SE_IT_EXPLOSION_ICE, 0x60, 3, 0, SFX_FLAG_15)
/* 0x183C */ DEFINE_SFX(CHAN_14F6, NA_SE_IT_EXPLOSION_LIGHT, 0x60, 3, 0, SFX_FLAG_15)
/* 0x183D */ DEFINE_SFX(CHAN_1505, NA_SE_IT_FISHING_REEL_SLOW, 0x30, 0, 0, SFX_FLAG_14)
/* 0x183E */ DEFINE_SFX(CHAN_1510, NA_SE_IT_FISHING_REEL_HIGH, 0x30, 0, 0, SFX_FLAG_14)
/* 0x183F */ DEFINE_SFX(CHAN_0FDB, NA_SE_IT_PULL_FISHING_ROD, 0x30, 0, 1, 0)
/* 0x1840 */ DEFINE_SFX(CHAN_151B, NA_SE_IT_DM_FLYING_GOD_PASS, 0x80, 3, 0, 0)
/* 0x1841 */ DEFINE_SFX(CHAN_154A, NA_SE_IT_DM_FLYING_GOD_DASH, 0x80, 3, 0, 0)
/* 0x1842 */ DEFINE_SFX(CHAN_157D, NA_SE_IT_DM_RING_EXPLOSION, 0x30, 3, 0, 0)
/* 0x1843 */ DEFINE_SFX(CHAN_15BB, NA_SE_IT_DM_RING_GATHER, 0x30, 0, 0, 0)
/* 0x1844 */ DEFINE_SFX(CHAN_190A, NA_SE_IT_INGO_HORSE_NEIGH, 0x30, 0, 1, 0)
/* 0x1845 */ DEFINE_SFX(CHAN_15BB, NA_SE_IT_EARTHQUAKE, 0x30, 0, 0, 0)
/* 0x1846 */ DEFINE_SFX(CHAN_15D0, NA_SE_IT_DUMMY4, 0x30, 0, 0, 0)
/* 0x1847 */ DEFINE_SFX(CHAN_15DF, NA_SE_IT_KAKASHI_JUMP, 0x30, 0, 0, 0)
/* 0x1848 */ DEFINE_SFX(CHAN_15F3, NA_SE_IT_FLAME, 0x30, 0, 0, 0)
/* 0x1849 */ DEFINE_SFX(CHAN_2848, NA_SE_IT_SHIELD_BEAM, 0x30, 0, 0, 0)
/* 0x184A */ DEFINE_SFX(CHAN_15FA, NA_SE_IT_FISHING_HIT, 0x30, 0, 0, 0)
/* 0x184B */ DEFINE_SFX(CHAN_1617, NA_SE_IT_GOODS_APPEAR, 0x30, 0, 0, 0)
/* 0x184C */ DEFINE_SFX(CHAN_1624, NA_SE_IT_MAJIN_SWORD_BROKEN, 0x80, 0, 0, 0)
/* 0x184D */ DEFINE_SFX(CHAN_163E, NA_SE_IT_HAND_CLAP, 0x30, 0, 0, 0)
/* 0x184E */ DEFINE_SFX(CHAN_1648, NA_SE_IT_MASTER_SWORD_SWING, 0x30, 0, 0, 0)
/* 0x184F */ DEFINE_SFX(CHAN_1085, NA_SE_IT_DUMMY5, 0x30, 0, 0, 0)

View File

@ -2,19 +2,18 @@
* Sfx Ocarina Bank
*
* DEFINE_SFX should be used for all sfx define in the ocarina bank from sequence 0
* - Argument 0: Channel name for sequence 0
* - Argument 1: Enum value for this sfx
* - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance
* - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3)
* - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3)
* - Argument 5: Various flags to add properties to the sfx
*
* WARNING: entries must align with the table defined for the ocarina bank in sequence 0
*/
/* 0x5800 */ DEFINE_SFX(NA_SE_OC_OCARINA, 0x30, 0, 0, 0)
/* 0x5801 */ DEFINE_SFX(NA_SE_OC_ABYSS, 0x30, 0, 0, SFX_FLAG_5)
/* 0x5802 */ DEFINE_SFX(NA_SE_OC_DOOR_OPEN, 0x30, 2, 1, SFX_FLAG_10 | SFX_FLAG_9)
/* 0x5803 */ DEFINE_SFX(NA_SE_OC_SECRET_WARP_IN, 0x30, 0, 0, 0)
/* 0x5804 */ DEFINE_SFX(NA_SE_OC_SECRET_WARP_OUT, 0x30, 0, 0, 0)
/* 0x5805 */ DEFINE_SFX(NA_SE_OC_SECRET_HOLE_OUT, 0x30, 0, 0, 0)
/* 0x5806 */ DEFINE_SFX(NA_SE_OC_REVENGE, 0x30, 0, 0, 0)
/* 0x5807 */ DEFINE_SFX(NA_SE_OC_HINT_MOVIE, 0x30, 0, 0, 0)
/* 0x5800 */ DEFINE_SFX(CHAN_5EF5, NA_SE_OC_OCARINA, 0x30, 0, 0, 0)
/* 0x5801 */ DEFINE_SFX(CHAN_5F69, NA_SE_OC_ABYSS, 0x30, 0, 0, SFX_FLAG_5)
/* 0x5802 */ DEFINE_SFX(CHAN_18C5, NA_SE_OC_DOOR_OPEN, 0x30, 2, 1, SFX_FLAG_10 | SFX_FLAG_9)
/* 0x5803 */ DEFINE_SFX(CHAN_5F65, NA_SE_OC_SECRET_WARP_IN, 0x30, 0, 0, 0)
/* 0x5804 */ DEFINE_SFX(CHAN_5F40, NA_SE_OC_SECRET_WARP_OUT, 0x30, 0, 0, 0)
/* 0x5805 */ DEFINE_SFX(CHAN_27AE, NA_SE_OC_SECRET_HOLE_OUT, 0x30, 0, 0, 0)
/* 0x5806 */ DEFINE_SFX(CHAN_5F96, NA_SE_OC_REVENGE, 0x30, 0, 0, 0)
/* 0x5807 */ DEFINE_SFX(CHAN_5EF5, NA_SE_OC_HINT_MOVIE, 0x30, 0, 0, 0)

View File

@ -2,235 +2,234 @@
* Sfx Player Bank
*
* DEFINE_SFX should be used for all sfx define in the player bank from sequence 0
* - Argument 0: Channel name for sequence 0
* - Argument 1: Enum value for this sfx
* - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance
* - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3)
* - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3)
* - Argument 5: Various flags to add properties to the sfx
*
* WARNING: entries must align with the table defined for the player bank in sequence 0
*/
/* 0x800 */ DEFINE_SFX(NA_SE_PL_WALK_GROUND, 0x20, 0, 2, SFX_FLAG_10)
/* 0x801 */ DEFINE_SFX(NA_SE_PL_WALK_SAND, 0x20, 0, 2, SFX_FLAG_10)
/* 0x802 */ DEFINE_SFX(NA_SE_PL_WALK_CONCRETE, 0x20, 0, 2, SFX_FLAG_10)
/* 0x803 */ DEFINE_SFX(NA_SE_PL_WALK_DIRT, 0x20, 0, 2, SFX_FLAG_10)
/* 0x804 */ DEFINE_SFX(NA_SE_PL_WALK_WATER0, 0x20, 0, 1, SFX_FLAG_10)
/* 0x805 */ DEFINE_SFX(NA_SE_PL_WALK_WATER1, 0x20, 0, 1, SFX_FLAG_10)
/* 0x806 */ DEFINE_SFX(NA_SE_PL_WALK_WATER2, 0x20, 0, 1, SFX_FLAG_10)
/* 0x807 */ DEFINE_SFX(NA_SE_PL_WALK_MAGMA, 0x20, 0, 1, SFX_FLAG_10)
/* 0x808 */ DEFINE_SFX(NA_SE_PL_WALK_GRASS, 0x20, 0, 2, SFX_FLAG_10)
/* 0x809 */ DEFINE_SFX(NA_SE_PL_WALK_IRON, 0x20, 0, 1, SFX_FLAG_10)
/* 0x80A */ DEFINE_SFX(NA_SE_PL_WALK_LADDER, 0x20, 0, 2, SFX_FLAG_10)
/* 0x80B */ DEFINE_SFX(NA_SE_PL_WALK_GLASS, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80C */ DEFINE_SFX(NA_SE_PL_WALK_WALL, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80D */ DEFINE_SFX(NA_SE_PL_WALK_HEAVYBOOTS, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80E */ DEFINE_SFX(NA_SE_PL_DUMMY_14, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80F */ DEFINE_SFX(NA_SE_PL_WALK_ICE, 0x20, 0, 0, SFX_FLAG_10)
/* 0x810 */ DEFINE_SFX(NA_SE_PL_JUMP, 0x30, 0, 0, SFX_FLAG_10)
/* 0x811 */ DEFINE_SFX(NA_SE_PL_JUMP_SAND, 0x30, 0, 0, SFX_FLAG_10)
/* 0x812 */ DEFINE_SFX(NA_SE_PL_JUMP_CONCRETE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x813 */ DEFINE_SFX(NA_SE_PL_JUMP_DIRT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x814 */ DEFINE_SFX(NA_SE_PL_JUMP_WATER0, 0x30, 0, 0, SFX_FLAG_10)
/* 0x815 */ DEFINE_SFX(NA_SE_PL_JUMP_WATER1, 0x30, 0, 0, SFX_FLAG_10)
/* 0x816 */ DEFINE_SFX(NA_SE_PL_JUMP_WATER2, 0x30, 0, 0, SFX_FLAG_10)
/* 0x817 */ DEFINE_SFX(NA_SE_PL_JUMP_MAGMA, 0x30, 0, 0, SFX_FLAG_10)
/* 0x818 */ DEFINE_SFX(NA_SE_PL_JUMP_GRASS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x819 */ DEFINE_SFX(NA_SE_PL_JUMP_IRON, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81A */ DEFINE_SFX(NA_SE_PL_JUMP_LADDER, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81B */ DEFINE_SFX(NA_SE_PL_JUMP_GLASS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81C */ DEFINE_SFX(NA_SE_PL_DUMMY28, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81D */ DEFINE_SFX(NA_SE_PL_JUMP_HEAVYBOOTS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81E */ DEFINE_SFX(NA_SE_PL_DUMMY30, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81F */ DEFINE_SFX(NA_SE_PL_JUMP_ICE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x820 */ DEFINE_SFX(NA_SE_PL_LAND, 0x40, 0, 1, SFX_FLAG_10)
/* 0x821 */ DEFINE_SFX(NA_SE_PL_LAND_SAND, 0x40, 0, 1, SFX_FLAG_10)
/* 0x822 */ DEFINE_SFX(NA_SE_PL_LAND_CONCRETE, 0x40, 0, 1, SFX_FLAG_10)
/* 0x823 */ DEFINE_SFX(NA_SE_PL_LAND_DIRT, 0x40, 0, 1, SFX_FLAG_10)
/* 0x824 */ DEFINE_SFX(NA_SE_PL_LAND_WATER0, 0x40, 0, 1, SFX_FLAG_10)
/* 0x825 */ DEFINE_SFX(NA_SE_PL_LAND_WATER1, 0x40, 0, 1, SFX_FLAG_10)
/* 0x826 */ DEFINE_SFX(NA_SE_PL_LAND_WATER2, 0x40, 0, 1, SFX_FLAG_10)
/* 0x827 */ DEFINE_SFX(NA_SE_PL_LAND_MAGMA, 0x40, 0, 1, SFX_FLAG_10)
/* 0x828 */ DEFINE_SFX(NA_SE_PL_LAND_GRASS, 0x40, 0, 1, SFX_FLAG_10)
/* 0x829 */ DEFINE_SFX(NA_SE_PL_LAND_IRON, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82A */ DEFINE_SFX(NA_SE_PL_LAND_LADDER, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82B */ DEFINE_SFX(NA_SE_PL_LAND_GLASS, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82C */ DEFINE_SFX(NA_SE_PL_DUMMY_44, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82D */ DEFINE_SFX(NA_SE_PL_LAND_HEAVYBOOTS, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82E */ DEFINE_SFX(NA_SE_PL_DUMMY_46, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82F */ DEFINE_SFX(NA_SE_PL_LAND_ICE, 0x40, 0, 1, SFX_FLAG_10)
/* 0x830 */ DEFINE_SFX(NA_SE_PL_SLIPDOWN, 0x30, 0, 2, 0)
/* 0x831 */ DEFINE_SFX(NA_SE_PL_CLIMB_CLIFF, 0x30, 0, 0, 0)
/* 0x832 */ DEFINE_SFX(NA_SE_PL_SIT_ON_HORSE, 0x30, 0, 0, 0)
/* 0x833 */ DEFINE_SFX(NA_SE_PL_GET_OFF_HORSE, 0x30, 0, 0, 0)
/* 0x834 */ DEFINE_SFX(NA_SE_PL_TAKE_OUT_SHIELD, 0x30, 0, 0, SFX_FLAG_10)
/* 0x835 */ DEFINE_SFX(NA_SE_PL_CHANGE_ARMS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x836 */ DEFINE_SFX(NA_SE_PL_CATCH_BOOMERANG, 0x30, 0, 0, SFX_FLAG_10)
/* 0x837 */ DEFINE_SFX(NA_SE_PL_DUMMY_55, 0x30, 0, 1, 0)
/* 0x838 */ DEFINE_SFX(NA_SE_PL_DUMMY_56, 0x30, 0, 1, 0)
/* 0x839 */ DEFINE_SFX(NA_SE_PL_SWIM, 0x30, 0, 2, 0)
/* 0x83A */ DEFINE_SFX(NA_SE_PL_THROW, 0x30, 0, 0, SFX_FLAG_10)
/* 0x83B */ DEFINE_SFX(NA_SE_PL_BODY_BOUND, 0x30, 0, 0, SFX_FLAG_10)
/* 0x83C */ DEFINE_SFX(NA_SE_PL_ROLL, 0x40, 0, 0, SFX_FLAG_10)
/* 0x83D */ DEFINE_SFX(NA_SE_PL_SKIP, 0x30, 0, 0, SFX_FLAG_10)
/* 0x83E */ DEFINE_SFX(NA_SE_PL_BODY_HIT, 0x30, 2, 0, SFX_FLAG_10)
/* 0x83F */ DEFINE_SFX(NA_SE_PL_DAMAGE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x840 */ DEFINE_SFX(NA_SE_PL_SLIP, 0x30, 0, 1, 0)
/* 0x841 */ DEFINE_SFX(NA_SE_PL_SLIP_SAND, 0x30, 0, 1, 0)
/* 0x842 */ DEFINE_SFX(NA_SE_PL_SLIP_CONCRETE, 0x30, 0, 1, 0)
/* 0x843 */ DEFINE_SFX(NA_SE_PL_SLIP_DIRT, 0x30, 0, 1, 0)
/* 0x844 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER0, 0x30, 0, 1, 0)
/* 0x845 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER1, 0x30, 0, 1, 0)
/* 0x846 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER2, 0x30, 0, 1, 0)
/* 0x847 */ DEFINE_SFX(NA_SE_PL_SLIP_MAGMA, 0x30, 0, 1, 0)
/* 0x848 */ DEFINE_SFX(NA_SE_PL_SLIP_GRASS, 0x30, 0, 1, 0)
/* 0x849 */ DEFINE_SFX(NA_SE_PL_SLIP_IRON, 0x30, 0, 1, 0)
/* 0x84A */ DEFINE_SFX(NA_SE_PL_SLIP_LADDER, 0x30, 0, 1, 0)
/* 0x84B */ DEFINE_SFX(NA_SE_PL_SLIP_GLASS, 0x30, 0, 1, 0)
/* 0x84C */ DEFINE_SFX(NA_SE_PL_DUMMY76, 0x30, 0, 0, 0)
/* 0x84D */ DEFINE_SFX(NA_SE_PL_SLIP_HEAVYBOOTS, 0x30, 0, 0, 0)
/* 0x84E */ DEFINE_SFX(NA_SE_PL_DUMMY78, 0x30, 0, 0, 0)
/* 0x84F */ DEFINE_SFX(NA_SE_PL_SLIP_ICE, 0x30, 0, 0, 0)
/* 0x850 */ DEFINE_SFX(NA_SE_PL_BOUND, 0x80, 0, 0, 0)
/* 0x851 */ DEFINE_SFX(NA_SE_PL_BOUND_SAND, 0x80, 0, 0, 0)
/* 0x852 */ DEFINE_SFX(NA_SE_PL_BOUND_CONCRETE, 0x80, 0, 0, 0)
/* 0x853 */ DEFINE_SFX(NA_SE_PL_BOUND_DIRT, 0x80, 0, 0, 0)
/* 0x854 */ DEFINE_SFX(NA_SE_PL_BOUND_WATER0, 0x80, 0, 0, 0)
/* 0x855 */ DEFINE_SFX(NA_SE_PL_BOUND_WATER1, 0x80, 0, 0, 0)
/* 0x856 */ DEFINE_SFX(NA_SE_PL_BOUND_WATER2, 0x80, 0, 0, 0)
/* 0x857 */ DEFINE_SFX(NA_SE_PL_BOUND_MAGMA, 0x80, 0, 0, 0)
/* 0x858 */ DEFINE_SFX(NA_SE_PL_BOUND_GRASS, 0x80, 0, 0, 0)
/* 0x859 */ DEFINE_SFX(NA_SE_PL_BOUND_IRON, 0x80, 0, 0, 0)
/* 0x85A */ DEFINE_SFX(NA_SE_PL_BOUND_LADDER, 0x80, 0, 0, 0)
/* 0x85B */ DEFINE_SFX(NA_SE_PL_BOUND_WOOD, 0x80, 0, 0, 0)
/* 0x85C */ DEFINE_SFX(NA_SE_PL_DUMMY_92, 0x80, 0, 0, 0)
/* 0x85D */ DEFINE_SFX(NA_SE_PL_BOUND_HEAVYBOOTS, 0x80, 0, 0, 0)
/* 0x85E */ DEFINE_SFX(NA_SE_PL_DUMMY_94, 0x80, 0, 0, 0)
/* 0x85F */ DEFINE_SFX(NA_SE_PL_BOUND_ICE, 0x80, 0, 0, 0)
/* 0x860 */ DEFINE_SFX(NA_SE_PL_DUMMY_96, 0x30, 0, 0, 0)
/* 0x861 */ DEFINE_SFX(NA_SE_PL_DUMMY_97, 0x30, 0, 0, 0)
/* 0x862 */ DEFINE_SFX(NA_SE_PL_DUMMY_98, 0x30, 0, 0, 0)
/* 0x863 */ DEFINE_SFX(NA_SE_PL_FACE_UP, 0x30, 0, 0, 0)
/* 0x864 */ DEFINE_SFX(NA_SE_PL_DIVE_BUBBLE, 0x30, 0, 0, 0)
/* 0x865 */ DEFINE_SFX(NA_SE_PL_MOVE_BUBBLE, 0x30, 0, 0, 0)
/* 0x866 */ DEFINE_SFX(NA_SE_PL_METALEFFECT_KID, 0x30, 0, 0, SFX_FLAG_10)
/* 0x867 */ DEFINE_SFX(NA_SE_PL_METALEFFECT_ADULT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x868 */ DEFINE_SFX(NA_SE_PL_SPARK, 0x30, 0, 0, 0)
/* 0x869 */ DEFINE_SFX(NA_SE_PL_PULL_UP_PLANT, 0x30, 0, 0, 0)
/* 0x86A */ DEFINE_SFX(NA_SE_PL_PULL_UP_ROCK, 0x30, 0, 0, 0)
/* 0x86B */ DEFINE_SFX(NA_SE_PL_IN_BUBBLE, 0x30, 0, 0, 0)
/* 0x86C */ DEFINE_SFX(NA_SE_PL_PULL_UP_BIGROCK, 0x30, 3, 0, 0)
/* 0x86D */ DEFINE_SFX(NA_SE_PL_SWORD_CHARGE, 0x30, 0, 0, 0)
/* 0x86E */ DEFINE_SFX(NA_SE_PL_FREEZE, 0x30, 0, 0, 0)
/* 0x86F */ DEFINE_SFX(NA_SE_PL_PULL_UP_POT, 0x30, 0, 0, 0)
/* 0x870 */ DEFINE_SFX(NA_SE_PL_KNOCK, 0x30, 0, 0, 0)
/* 0x871 */ DEFINE_SFX(NA_SE_PL_CALM_HIT, 0x30, 0, 2, 0)
/* 0x872 */ DEFINE_SFX(NA_SE_PL_CALM_PAT, 0x30, 0, 0, 0)
/* 0x873 */ DEFINE_SFX(NA_SE_PL_SUBMERGE, 0x30, 0, 0, 0)
/* 0x874 */ DEFINE_SFX(NA_SE_PL_FREEZE_S, 0x30, 3, 0, 0)
/* 0x875 */ DEFINE_SFX(NA_SE_PL_ICE_BROKEN, 0x30, 1, 0, 0)
/* 0x876 */ DEFINE_SFX(NA_SE_PL_SLIP_ICE_LELEL, 0x30, 0, 0, 0)
/* 0x877 */ DEFINE_SFX(NA_SE_PL_PUT_OUT_ITEM, 0x30, 0, 0, 0)
/* 0x878 */ DEFINE_SFX(NA_SE_PL_PULL_UP_WOODBOX, 0x30, 0, 0, 0)
/* 0x879 */ DEFINE_SFX(NA_SE_PL_MAGIC_FIRE, 0x30, 0, 0, 0)
/* 0x87A */ DEFINE_SFX(NA_SE_PL_MAGIC_WIND_NORMAL, 0x30, 0, 0, 0)
/* 0x87B */ DEFINE_SFX(NA_SE_PL_MAGIC_WIND_WARP, 0x30, 0, 0, SFX_FLAG_13)
/* 0x87C */ DEFINE_SFX(NA_SE_PL_MAGIC_SOUL_NORMAL, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10)
/* 0x87D */ DEFINE_SFX(NA_SE_PL_ARROW_CHARGE_FIRE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x87E */ DEFINE_SFX(NA_SE_PL_ARROW_CHARGE_ICE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x87F */ DEFINE_SFX(NA_SE_PL_ARROW_CHARGE_LIGHT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x880 */ DEFINE_SFX(NA_SE_PL_DUMMY_128, 0x20, 0, 2, 0)
/* 0x881 */ DEFINE_SFX(NA_SE_PL_DUMMY_129, 0x20, 0, 2, 0)
/* 0x882 */ DEFINE_SFX(NA_SE_PL_DUMMY_130, 0x20, 0, 2, 0)
/* 0x883 */ DEFINE_SFX(NA_SE_PL_PULL_UP_RUTO, 0x20, 0, 2, 0)
/* 0x884 */ DEFINE_SFX(NA_SE_PL_DUMMY_132, 0x20, 0, 1, 0)
/* 0x885 */ DEFINE_SFX(NA_SE_PL_DUMMY_133, 0x20, 0, 1, 0)
/* 0x886 */ DEFINE_SFX(NA_SE_PL_DUMMY_134, 0x20, 0, 1, 0)
/* 0x887 */ DEFINE_SFX(NA_SE_PL_DUMMY_135, 0x20, 0, 1, 0)
/* 0x888 */ DEFINE_SFX(NA_SE_PL_DUMMY_136, 0x20, 0, 2, 0)
/* 0x889 */ DEFINE_SFX(NA_SE_PL_DUMMY_137, 0x20, 0, 2, 0)
/* 0x88A */ DEFINE_SFX(NA_SE_PL_DUMMY_138, 0x20, 0, 2, 0)
/* 0x88B */ DEFINE_SFX(NA_SE_PL_DUMMY_139, 0x20, 0, 0, 0)
/* 0x88C */ DEFINE_SFX(NA_SE_PL_DUMMY_140, 0x20, 0, 0, 0)
/* 0x88D */ DEFINE_SFX(NA_SE_PL_DUMMY_141, 0x20, 0, 0, 0)
/* 0x88E */ DEFINE_SFX(NA_SE_PL_DUMMY_142, 0x20, 0, 0, 0)
/* 0x88F */ DEFINE_SFX(NA_SE_PL_DUMMY_143, 0x20, 0, 0, 0)
/* 0x890 */ DEFINE_SFX(NA_SE_PL_DUMMY_144, 0x30, 0, 0, 0)
/* 0x891 */ DEFINE_SFX(NA_SE_PL_DUMMY_145, 0x30, 0, 0, 0)
/* 0x892 */ DEFINE_SFX(NA_SE_PL_DUMMY_146, 0x30, 0, 0, 0)
/* 0x893 */ DEFINE_SFX(NA_SE_PL_DUMMY_147, 0x30, 0, 0, 0)
/* 0x894 */ DEFINE_SFX(NA_SE_PL_DUMMY_148, 0x30, 0, 0, 0)
/* 0x895 */ DEFINE_SFX(NA_SE_PL_DUMMY_149, 0x30, 0, 0, 0)
/* 0x896 */ DEFINE_SFX(NA_SE_PL_DUMMY_150, 0x30, 0, 0, 0)
/* 0x897 */ DEFINE_SFX(NA_SE_PL_DUMMY_151, 0x30, 0, 0, 0)
/* 0x898 */ DEFINE_SFX(NA_SE_PL_DUMMY_152, 0x30, 0, 0, 0)
/* 0x899 */ DEFINE_SFX(NA_SE_PL_DUMMY_153, 0x30, 0, 0, 0)
/* 0x89A */ DEFINE_SFX(NA_SE_PL_DUMMY_154, 0x30, 0, 0, 0)
/* 0x89B */ DEFINE_SFX(NA_SE_PL_DUMMY_155, 0x30, 0, 0, 0)
/* 0x89C */ DEFINE_SFX(NA_SE_PL_DUMMY_156, 0x30, 0, 0, 0)
/* 0x89D */ DEFINE_SFX(NA_SE_PL_DUMMY_157, 0x30, 0, 0, 0)
/* 0x89E */ DEFINE_SFX(NA_SE_PL_DUMMY_158, 0x30, 0, 0, 0)
/* 0x89F */ DEFINE_SFX(NA_SE_PL_DUMMY_159, 0x30, 0, 0, 0)
/* 0x8A0 */ DEFINE_SFX(NA_SE_PL_DUMMY_160, 0x40, 0, 0, 0)
/* 0x8A1 */ DEFINE_SFX(NA_SE_PL_DUMMY_161, 0x40, 0, 0, 0)
/* 0x8A2 */ DEFINE_SFX(NA_SE_PL_DUMMY_162, 0x40, 0, 0, 0)
/* 0x8A3 */ DEFINE_SFX(NA_SE_PL_DUMMY_163, 0x40, 0, 0, 0)
/* 0x8A4 */ DEFINE_SFX(NA_SE_PL_DUMMY_164, 0x40, 0, 0, 0)
/* 0x8A5 */ DEFINE_SFX(NA_SE_PL_DUMMY_165, 0x40, 0, 0, 0)
/* 0x8A6 */ DEFINE_SFX(NA_SE_PL_DUMMY_166, 0x40, 0, 0, 0)
/* 0x8A7 */ DEFINE_SFX(NA_SE_PL_DUMMY_167, 0x40, 0, 0, 0)
/* 0x8A8 */ DEFINE_SFX(NA_SE_PL_DUMMY_168, 0x40, 0, 0, 0)
/* 0x8A9 */ DEFINE_SFX(NA_SE_PL_DUMMY_169, 0x40, 0, 0, 0)
/* 0x8AA */ DEFINE_SFX(NA_SE_PL_DUMMY_170, 0x40, 0, 0, 0)
/* 0x8AB */ DEFINE_SFX(NA_SE_PL_DUMMY_171, 0x40, 0, 0, 0)
/* 0x8AC */ DEFINE_SFX(NA_SE_PL_DUMMY_172, 0x40, 0, 0, 0)
/* 0x8AD */ DEFINE_SFX(NA_SE_PL_DUMMY_173, 0x40, 0, 0, 0)
/* 0x8AE */ DEFINE_SFX(NA_SE_PL_DUMMY_174, 0x40, 0, 0, 0)
/* 0x8AF */ DEFINE_SFX(NA_SE_PL_DUMMY_175, 0x40, 0, 0, 0)
/* 0x8B0 */ DEFINE_SFX(NA_SE_PL_CRAWL, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B1 */ DEFINE_SFX(NA_SE_PL_CRAWL_SAND, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B2 */ DEFINE_SFX(NA_SE_PL_CRAWL_CONCRETE, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B3 */ DEFINE_SFX(NA_SE_PL_CRAWL_DIRT, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B4 */ DEFINE_SFX(NA_SE_PL_CRAWL_WATER0, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B5 */ DEFINE_SFX(NA_SE_PL_DUMMY_181, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B6 */ DEFINE_SFX(NA_SE_PL_DUMMY_182, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B7 */ DEFINE_SFX(NA_SE_PL_DUMMY_183, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B8 */ DEFINE_SFX(NA_SE_PL_DUMMY_184, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B9 */ DEFINE_SFX(NA_SE_PL_DUMMY_185, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BA */ DEFINE_SFX(NA_SE_PL_DUMMY_186, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BB */ DEFINE_SFX(NA_SE_PL_CRAWL_WOOD, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BC */ DEFINE_SFX(NA_SE_PL_CRAWL_ICE, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BD */ DEFINE_SFX(NA_SE_PL_DUMMY_189, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BE */ DEFINE_SFX(NA_SE_PL_DUMMY_190, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BF */ DEFINE_SFX(NA_SE_PL_DUMMY_191, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8C0 */ DEFINE_SFX(NA_SE_PL_MAGIC_SOUL_FLASH, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10)
/* 0x8C1 */ DEFINE_SFX(NA_SE_PL_ROLL_DUST, 0x30, 0, 2, 0)
/* 0x8C2 */ DEFINE_SFX(NA_SE_PL_DUMMY_192, 0x30, 0, 0, 0)
/* 0x8C3 */ DEFINE_SFX(NA_SE_PL_MAGIC_SOUL_BALL, 0x30, 0, 0, 0)
/* 0x8C4 */ DEFINE_SFX(NA_SE_PL_SPIRAL_HEAL_BEAM, 0x30, 0, 0, 0)
/* 0x8C5 */ DEFINE_SFX(NA_SE_PL_BOUND_NOWEAPON, 0x30, 0, 0, 0)
/* 0x8C6 */ DEFINE_SFX(NA_SE_PL_PLANT_GROW_UP, 0x30, 0, 0, 0)
/* 0x8C7 */ DEFINE_SFX(NA_SE_PL_PLANT_TALLER, 0x30, 0, 0, 0)
/* 0x8C8 */ DEFINE_SFX(NA_SE_PL_MAGIC_WIND_VANISH, 0x60, 2, 0, 0)
/* 0x8C9 */ DEFINE_SFX(NA_SE_PL_HOBBERBOOTS_LV, 0x30, 0, 0, 0)
/* 0x8CA */ DEFINE_SFX(NA_SE_PL_PLANT_MOVE, 0x30, 0, 0, 0)
/* 0x8CB */ DEFINE_SFX(NA_SE_EV_WALL_MOVE_SP, 0x30, 0, 0, SFX_FLAG_11)
/* 0x8CC */ DEFINE_SFX(NA_SE_PL_DUMMY_204, 0x30, 0, 0, 0)
/* 0x8CD */ DEFINE_SFX(NA_SE_PL_DUMMY_205, 0x30, 0, 0, 0)
/* 0x8CE */ DEFINE_SFX(NA_SE_PL_DUMMY_206, 0x30, 0, 0, 0)
/* 0x8CF */ DEFINE_SFX(NA_SE_PL_DUMMY_207, 0x30, 0, 0, 0)
/* 0x8D0 */ DEFINE_SFX(NA_SE_PL_SLIP_LEVEL, 0x30, 0, 0, 0)
/* 0x8D1 */ DEFINE_SFX(NA_SE_PL_SLIP_SAND_LEVEL, 0x30, 0, 0, 0)
/* 0x8D2 */ DEFINE_SFX(NA_SE_PL_SLIP_CONCRETE_LEVEL, 0x30, 0, 0, 0)
/* 0x8D3 */ DEFINE_SFX(NA_SE_PL_SLIP_DIRT_LEVEL, 0x30, 0, 0, 0)
/* 0x8D4 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER0_LEVEL, 0x30, 0, 0, 0)
/* 0x8D5 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER1_LEVEL, 0x30, 0, 0, 0)
/* 0x8D6 */ DEFINE_SFX(NA_SE_PL_SLIP_WATER2_LEVEL, 0x30, 0, 0, 0)
/* 0x8D7 */ DEFINE_SFX(NA_SE_PL_SLIP_MAGMA_LEVEL, 0x30, 0, 0, 0)
/* 0x8D8 */ DEFINE_SFX(NA_SE_PL_SLIP_GRASS_LEVEL, 0x30, 0, 0, 0)
/* 0x8D9 */ DEFINE_SFX(NA_SE_PL_SLIP_IRON_LEVEL, 0x30, 0, 0, 0)
/* 0x8DA */ DEFINE_SFX(NA_SE_PL_SLIP_GLASS_LEVEL, 0x30, 0, 0, 0)
/* 0x8DB */ DEFINE_SFX(NA_SE_PL_SLIP_WOOD_LEVEL, 0x30, 0, 0, 0)
/* 0x8DC */ DEFINE_SFX(NA_SE_PL_DUMMY_220, 0x30, 0, 0, 0)
/* 0x8DD */ DEFINE_SFX(NA_SE_PL_DUMMY_221, 0x30, 0, 0, 0)
/* 0x8DE */ DEFINE_SFX(NA_SE_PL_SLIP_HEAVYBOOTS_LEVEL, 0x30, 0, 0, 0)
/* 0x8DF */ DEFINE_SFX(NA_SE_PL_SLIP_ICE_LEVEL, 0x30, 0, 0, 0)
/* 0x800 */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_WALK_GROUND, 0x20, 0, 2, SFX_FLAG_10)
/* 0x801 */ DEFINE_SFX(CHAN_02BD, NA_SE_PL_WALK_SAND, 0x20, 0, 2, SFX_FLAG_10)
/* 0x802 */ DEFINE_SFX(CHAN_02C9, NA_SE_PL_WALK_CONCRETE, 0x20, 0, 2, SFX_FLAG_10)
/* 0x803 */ DEFINE_SFX(CHAN_02D8, NA_SE_PL_WALK_DIRT, 0x20, 0, 2, SFX_FLAG_10)
/* 0x804 */ DEFINE_SFX(CHAN_02E8, NA_SE_PL_WALK_WATER0, 0x20, 0, 1, SFX_FLAG_10)
/* 0x805 */ DEFINE_SFX(CHAN_02F4, NA_SE_PL_WALK_WATER1, 0x20, 0, 1, SFX_FLAG_10)
/* 0x806 */ DEFINE_SFX(CHAN_0300, NA_SE_PL_WALK_WATER2, 0x20, 0, 1, SFX_FLAG_10)
/* 0x807 */ DEFINE_SFX(CHAN_0313, NA_SE_PL_WALK_MAGMA, 0x20, 0, 1, SFX_FLAG_10)
/* 0x808 */ DEFINE_SFX(CHAN_032D, NA_SE_PL_WALK_GRASS, 0x20, 0, 2, SFX_FLAG_10)
/* 0x809 */ DEFINE_SFX(CHAN_033D, NA_SE_PL_WALK_IRON, 0x20, 0, 1, SFX_FLAG_10)
/* 0x80A */ DEFINE_SFX(CHAN_0349, NA_SE_PL_WALK_LADDER, 0x20, 0, 2, SFX_FLAG_10)
/* 0x80B */ DEFINE_SFX(CHAN_0355, NA_SE_PL_WALK_GLASS, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80C */ DEFINE_SFX(CHAN_0361, NA_SE_PL_WALK_WALL, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80D */ DEFINE_SFX(CHAN_0376, NA_SE_PL_WALK_HEAVYBOOTS, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80E */ DEFINE_SFX(CHAN_0380, NA_SE_PL_DUMMY_14, 0x20, 0, 0, SFX_FLAG_10)
/* 0x80F */ DEFINE_SFX(CHAN_038A, NA_SE_PL_WALK_ICE, 0x20, 0, 0, SFX_FLAG_10)
/* 0x810 */ DEFINE_SFX(CHAN_0396, NA_SE_PL_JUMP, 0x30, 0, 0, SFX_FLAG_10)
/* 0x811 */ DEFINE_SFX(CHAN_03C5, NA_SE_PL_JUMP_SAND, 0x30, 0, 0, SFX_FLAG_10)
/* 0x812 */ DEFINE_SFX(CHAN_03D9, NA_SE_PL_JUMP_CONCRETE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x813 */ DEFINE_SFX(CHAN_03F2, NA_SE_PL_JUMP_DIRT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x814 */ DEFINE_SFX(CHAN_0406, NA_SE_PL_JUMP_WATER0, 0x30, 0, 0, SFX_FLAG_10)
/* 0x815 */ DEFINE_SFX(CHAN_0418, NA_SE_PL_JUMP_WATER1, 0x30, 0, 0, SFX_FLAG_10)
/* 0x816 */ DEFINE_SFX(CHAN_042A, NA_SE_PL_JUMP_WATER2, 0x30, 0, 0, SFX_FLAG_10)
/* 0x817 */ DEFINE_SFX(CHAN_0443, NA_SE_PL_JUMP_MAGMA, 0x30, 0, 0, SFX_FLAG_10)
/* 0x818 */ DEFINE_SFX(CHAN_0465, NA_SE_PL_JUMP_GRASS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x819 */ DEFINE_SFX(CHAN_0479, NA_SE_PL_JUMP_IRON, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81A */ DEFINE_SFX(CHAN_048D, NA_SE_PL_JUMP_LADDER, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81B */ DEFINE_SFX(CHAN_049F, NA_SE_PL_JUMP_GLASS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY28, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81D */ DEFINE_SFX(CHAN_04B1, NA_SE_PL_JUMP_HEAVYBOOTS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81E */ DEFINE_SFX(CHAN_04D8, NA_SE_PL_DUMMY30, 0x30, 0, 0, SFX_FLAG_10)
/* 0x81F */ DEFINE_SFX(CHAN_04EA, NA_SE_PL_JUMP_ICE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x820 */ DEFINE_SFX(CHAN_04FE, NA_SE_PL_LAND, 0x40, 0, 1, SFX_FLAG_10)
/* 0x821 */ DEFINE_SFX(CHAN_052D, NA_SE_PL_LAND_SAND, 0x40, 0, 1, SFX_FLAG_10)
/* 0x822 */ DEFINE_SFX(CHAN_053F, NA_SE_PL_LAND_CONCRETE, 0x40, 0, 1, SFX_FLAG_10)
/* 0x823 */ DEFINE_SFX(CHAN_0558, NA_SE_PL_LAND_DIRT, 0x40, 0, 1, SFX_FLAG_10)
/* 0x824 */ DEFINE_SFX(CHAN_056C, NA_SE_PL_LAND_WATER0, 0x40, 0, 1, SFX_FLAG_10)
/* 0x825 */ DEFINE_SFX(CHAN_057E, NA_SE_PL_LAND_WATER1, 0x40, 0, 1, SFX_FLAG_10)
/* 0x826 */ DEFINE_SFX(CHAN_0590, NA_SE_PL_LAND_WATER2, 0x40, 0, 1, SFX_FLAG_10)
/* 0x827 */ DEFINE_SFX(CHAN_05A9, NA_SE_PL_LAND_MAGMA, 0x40, 0, 1, SFX_FLAG_10)
/* 0x828 */ DEFINE_SFX(CHAN_05C9, NA_SE_PL_LAND_GRASS, 0x40, 0, 1, SFX_FLAG_10)
/* 0x829 */ DEFINE_SFX(CHAN_05DD, NA_SE_PL_LAND_IRON, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82A */ DEFINE_SFX(CHAN_05F1, NA_SE_PL_LAND_LADDER, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82B */ DEFINE_SFX(CHAN_0603, NA_SE_PL_LAND_GLASS, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_44, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82D */ DEFINE_SFX(CHAN_0615, NA_SE_PL_LAND_HEAVYBOOTS, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82E */ DEFINE_SFX(CHAN_0622, NA_SE_PL_DUMMY_46, 0x40, 0, 1, SFX_FLAG_10)
/* 0x82F */ DEFINE_SFX(CHAN_0632, NA_SE_PL_LAND_ICE, 0x40, 0, 1, SFX_FLAG_10)
/* 0x830 */ DEFINE_SFX(CHAN_0644, NA_SE_PL_SLIPDOWN, 0x30, 0, 2, 0)
/* 0x831 */ DEFINE_SFX(CHAN_0655, NA_SE_PL_CLIMB_CLIFF, 0x30, 0, 0, 0)
/* 0x832 */ DEFINE_SFX(CHAN_0662, NA_SE_PL_SIT_ON_HORSE, 0x30, 0, 0, 0)
/* 0x833 */ DEFINE_SFX(CHAN_066F, NA_SE_PL_GET_OFF_HORSE, 0x30, 0, 0, 0)
/* 0x834 */ DEFINE_SFX(CHAN_0680, NA_SE_PL_TAKE_OUT_SHIELD, 0x30, 0, 0, SFX_FLAG_10)
/* 0x835 */ DEFINE_SFX(CHAN_069D, NA_SE_PL_CHANGE_ARMS, 0x30, 0, 0, SFX_FLAG_10)
/* 0x836 */ DEFINE_SFX(CHAN_06BF, NA_SE_PL_CATCH_BOOMERANG, 0x30, 0, 0, SFX_FLAG_10)
/* 0x837 */ DEFINE_SFX(CHAN_06CD, NA_SE_PL_DUMMY_55, 0x30, 0, 1, 0)
/* 0x838 */ DEFINE_SFX(CHAN_06E1, NA_SE_PL_DUMMY_56, 0x30, 0, 1, 0)
/* 0x839 */ DEFINE_SFX(CHAN_06F2, NA_SE_PL_SWIM, 0x30, 0, 2, 0)
/* 0x83A */ DEFINE_SFX(CHAN_0706, NA_SE_PL_THROW, 0x30, 0, 0, SFX_FLAG_10)
/* 0x83B */ DEFINE_SFX(CHAN_0714, NA_SE_PL_BODY_BOUND, 0x30, 0, 0, SFX_FLAG_10)
/* 0x83C */ DEFINE_SFX(CHAN_0731, NA_SE_PL_ROLL, 0x40, 0, 0, SFX_FLAG_10)
/* 0x83D */ DEFINE_SFX(CHAN_0743, NA_SE_PL_SKIP, 0x30, 0, 0, SFX_FLAG_10)
/* 0x83E */ DEFINE_SFX(CHAN_0753, NA_SE_PL_BODY_HIT, 0x30, 2, 0, SFX_FLAG_10)
/* 0x83F */ DEFINE_SFX(CHAN_076A, NA_SE_PL_DAMAGE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x840 */ DEFINE_SFX(CHAN_0796, NA_SE_PL_SLIP, 0x30, 0, 1, 0)
/* 0x841 */ DEFINE_SFX(CHAN_07A0, NA_SE_PL_SLIP_SAND, 0x30, 0, 1, 0)
/* 0x842 */ DEFINE_SFX(CHAN_07A7, NA_SE_PL_SLIP_CONCRETE, 0x30, 0, 1, 0)
/* 0x843 */ DEFINE_SFX(CHAN_07AE, NA_SE_PL_SLIP_DIRT, 0x30, 0, 1, 0)
/* 0x844 */ DEFINE_SFX(CHAN_07B5, NA_SE_PL_SLIP_WATER0, 0x30, 0, 1, 0)
/* 0x845 */ DEFINE_SFX(CHAN_07BC, NA_SE_PL_SLIP_WATER1, 0x30, 0, 1, 0)
/* 0x846 */ DEFINE_SFX(CHAN_07C3, NA_SE_PL_SLIP_WATER2, 0x30, 0, 1, 0)
/* 0x847 */ DEFINE_SFX(CHAN_07CA, NA_SE_PL_SLIP_MAGMA, 0x30, 0, 1, 0)
/* 0x848 */ DEFINE_SFX(CHAN_07D1, NA_SE_PL_SLIP_GRASS, 0x30, 0, 1, 0)
/* 0x849 */ DEFINE_SFX(CHAN_07D8, NA_SE_PL_SLIP_IRON, 0x30, 0, 1, 0)
/* 0x84A */ DEFINE_SFX(CHAN_07DF, NA_SE_PL_SLIP_LADDER, 0x30, 0, 1, 0)
/* 0x84B */ DEFINE_SFX(CHAN_07E6, NA_SE_PL_SLIP_GLASS, 0x30, 0, 1, 0)
/* 0x84C */ DEFINE_SFX(CHAN_02E8, NA_SE_PL_DUMMY76, 0x30, 0, 0, 0)
/* 0x84D */ DEFINE_SFX(CHAN_07DF, NA_SE_PL_SLIP_HEAVYBOOTS, 0x30, 0, 0, 0)
/* 0x84E */ DEFINE_SFX(CHAN_07ED, NA_SE_PL_DUMMY78, 0x30, 0, 0, 0)
/* 0x84F */ DEFINE_SFX(CHAN_07A7, NA_SE_PL_SLIP_ICE, 0x30, 0, 0, 0)
/* 0x850 */ DEFINE_SFX(CHAN_07F4, NA_SE_PL_BOUND, 0x80, 0, 0, 0)
/* 0x851 */ DEFINE_SFX(CHAN_0811, NA_SE_PL_BOUND_SAND, 0x80, 0, 0, 0)
/* 0x852 */ DEFINE_SFX(CHAN_081B, NA_SE_PL_BOUND_CONCRETE, 0x80, 0, 0, 0)
/* 0x853 */ DEFINE_SFX(CHAN_0825, NA_SE_PL_BOUND_DIRT, 0x80, 0, 0, 0)
/* 0x854 */ DEFINE_SFX(CHAN_082F, NA_SE_PL_BOUND_WATER0, 0x80, 0, 0, 0)
/* 0x855 */ DEFINE_SFX(CHAN_083B, NA_SE_PL_BOUND_WATER1, 0x80, 0, 0, 0)
/* 0x856 */ DEFINE_SFX(CHAN_0845, NA_SE_PL_BOUND_WATER2, 0x80, 0, 0, 0)
/* 0x857 */ DEFINE_SFX(CHAN_084F, NA_SE_PL_BOUND_MAGMA, 0x80, 0, 0, 0)
/* 0x858 */ DEFINE_SFX(CHAN_0859, NA_SE_PL_BOUND_GRASS, 0x80, 0, 0, 0)
/* 0x859 */ DEFINE_SFX(CHAN_0863, NA_SE_PL_BOUND_IRON, 0x80, 0, 0, 0)
/* 0x85A */ DEFINE_SFX(CHAN_086D, NA_SE_PL_BOUND_LADDER, 0x80, 0, 0, 0)
/* 0x85B */ DEFINE_SFX(CHAN_0877, NA_SE_PL_BOUND_WOOD, 0x80, 0, 0, 0)
/* 0x85C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_92, 0x80, 0, 0, 0)
/* 0x85D */ DEFINE_SFX(CHAN_086D, NA_SE_PL_BOUND_HEAVYBOOTS, 0x80, 0, 0, 0)
/* 0x85E */ DEFINE_SFX(CHAN_0882, NA_SE_PL_DUMMY_94, 0x80, 0, 0, 0)
/* 0x85F */ DEFINE_SFX(CHAN_088D, NA_SE_PL_BOUND_ICE, 0x80, 0, 0, 0)
/* 0x860 */ DEFINE_SFX(CHAN_0376, NA_SE_PL_DUMMY_96, 0x30, 0, 0, 0)
/* 0x861 */ DEFINE_SFX(CHAN_04B1, NA_SE_PL_DUMMY_97, 0x30, 0, 0, 0)
/* 0x862 */ DEFINE_SFX(CHAN_0615, NA_SE_PL_DUMMY_98, 0x30, 0, 0, 0)
/* 0x863 */ DEFINE_SFX(CHAN_0898, NA_SE_PL_FACE_UP, 0x30, 0, 0, 0)
/* 0x864 */ DEFINE_SFX(CHAN_08B7, NA_SE_PL_DIVE_BUBBLE, 0x30, 0, 0, 0)
/* 0x865 */ DEFINE_SFX(CHAN_08CA, NA_SE_PL_MOVE_BUBBLE, 0x30, 0, 0, 0)
/* 0x866 */ DEFINE_SFX(CHAN_08DC, NA_SE_PL_METALEFFECT_KID, 0x30, 0, 0, SFX_FLAG_10)
/* 0x867 */ DEFINE_SFX(CHAN_08E0, NA_SE_PL_METALEFFECT_ADULT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x868 */ DEFINE_SFX(CHAN_08E4, NA_SE_PL_SPARK, 0x30, 0, 0, 0)
/* 0x869 */ DEFINE_SFX(CHAN_090A, NA_SE_PL_PULL_UP_PLANT, 0x30, 0, 0, 0)
/* 0x86A */ DEFINE_SFX(CHAN_091C, NA_SE_PL_PULL_UP_ROCK, 0x30, 0, 0, 0)
/* 0x86B */ DEFINE_SFX(CHAN_0940, NA_SE_PL_IN_BUBBLE, 0x30, 0, 0, 0)
/* 0x86C */ DEFINE_SFX(CHAN_0950, NA_SE_PL_PULL_UP_BIGROCK, 0x30, 3, 0, 0)
/* 0x86D */ DEFINE_SFX(CHAN_0959, NA_SE_PL_SWORD_CHARGE, 0x30, 0, 0, 0)
/* 0x86E */ DEFINE_SFX(CHAN_096A, NA_SE_PL_FREEZE, 0x30, 0, 0, 0)
/* 0x86F */ DEFINE_SFX(CHAN_0989, NA_SE_PL_PULL_UP_POT, 0x30, 0, 0, 0)
/* 0x870 */ DEFINE_SFX(CHAN_09A0, NA_SE_PL_KNOCK, 0x30, 0, 0, 0)
/* 0x871 */ DEFINE_SFX(CHAN_09AE, NA_SE_PL_CALM_HIT, 0x30, 0, 2, 0)
/* 0x872 */ DEFINE_SFX(CHAN_09BC, NA_SE_PL_CALM_PAT, 0x30, 0, 0, 0)
/* 0x873 */ DEFINE_SFX(CHAN_09CA, NA_SE_PL_SUBMERGE, 0x30, 0, 0, 0)
/* 0x874 */ DEFINE_SFX(CHAN_09E9, NA_SE_PL_FREEZE_S, 0x30, 3, 0, 0)
/* 0x875 */ DEFINE_SFX(CHAN_0A06, NA_SE_PL_ICE_BROKEN, 0x30, 1, 0, 0)
/* 0x876 */ DEFINE_SFX(CHAN_0A15, NA_SE_PL_SLIP_ICE_LELEL, 0x30, 0, 0, 0)
/* 0x877 */ DEFINE_SFX(CHAN_0A23, NA_SE_PL_PUT_OUT_ITEM, 0x30, 0, 0, 0)
/* 0x878 */ DEFINE_SFX(CHAN_0A36, NA_SE_PL_PULL_UP_WOODBOX, 0x30, 0, 0, 0)
/* 0x879 */ DEFINE_SFX(CHAN_0A40, NA_SE_PL_MAGIC_FIRE, 0x30, 0, 0, 0)
/* 0x87A */ DEFINE_SFX(CHAN_0A7B, NA_SE_PL_MAGIC_WIND_NORMAL, 0x30, 0, 0, 0)
/* 0x87B */ DEFINE_SFX(CHAN_0ABC, NA_SE_PL_MAGIC_WIND_WARP, 0x30, 0, 0, SFX_FLAG_13)
/* 0x87C */ DEFINE_SFX(CHAN_0AD8, NA_SE_PL_MAGIC_SOUL_NORMAL, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10)
/* 0x87D */ DEFINE_SFX(CHAN_0B08, NA_SE_PL_ARROW_CHARGE_FIRE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x87E */ DEFINE_SFX(CHAN_0B37, NA_SE_PL_ARROW_CHARGE_ICE, 0x30, 0, 0, SFX_FLAG_10)
/* 0x87F */ DEFINE_SFX(CHAN_0B5D, NA_SE_PL_ARROW_CHARGE_LIGHT, 0x30, 0, 0, SFX_FLAG_10)
/* 0x880 */ DEFINE_SFX(CHAN_0B79, NA_SE_PL_DUMMY_128, 0x20, 0, 2, 0)
/* 0x881 */ DEFINE_SFX(CHAN_0B96, NA_SE_PL_DUMMY_129, 0x20, 0, 2, 0)
/* 0x882 */ DEFINE_SFX(CHAN_0B9A, NA_SE_PL_DUMMY_130, 0x20, 0, 2, 0)
/* 0x883 */ DEFINE_SFX(CHAN_0B9E, NA_SE_PL_PULL_UP_RUTO, 0x20, 0, 2, 0)
/* 0x884 */ DEFINE_SFX(CHAN_0BA2, NA_SE_PL_DUMMY_132, 0x20, 0, 1, 0)
/* 0x885 */ DEFINE_SFX(CHAN_0BA6, NA_SE_PL_DUMMY_133, 0x20, 0, 1, 0)
/* 0x886 */ DEFINE_SFX(CHAN_0BAA, NA_SE_PL_DUMMY_134, 0x20, 0, 1, 0)
/* 0x887 */ DEFINE_SFX(CHAN_0BAE, NA_SE_PL_DUMMY_135, 0x20, 0, 1, 0)
/* 0x888 */ DEFINE_SFX(CHAN_0BB2, NA_SE_PL_DUMMY_136, 0x20, 0, 2, 0)
/* 0x889 */ DEFINE_SFX(CHAN_0BB6, NA_SE_PL_DUMMY_137, 0x20, 0, 2, 0)
/* 0x88A */ DEFINE_SFX(CHAN_0BBA, NA_SE_PL_DUMMY_138, 0x20, 0, 2, 0)
/* 0x88B */ DEFINE_SFX(CHAN_0BBE, NA_SE_PL_DUMMY_139, 0x20, 0, 0, 0)
/* 0x88C */ DEFINE_SFX(CHAN_0BC2, NA_SE_PL_DUMMY_140, 0x20, 0, 0, 0)
/* 0x88D */ DEFINE_SFX(CHAN_0376, NA_SE_PL_DUMMY_141, 0x20, 0, 0, 0)
/* 0x88E */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_142, 0x20, 0, 0, 0)
/* 0x88F */ DEFINE_SFX(CHAN_0BC9, NA_SE_PL_DUMMY_143, 0x20, 0, 0, 0)
/* 0x890 */ DEFINE_SFX(CHAN_0BCD, NA_SE_PL_DUMMY_144, 0x30, 0, 0, 0)
/* 0x891 */ DEFINE_SFX(CHAN_0BED, NA_SE_PL_DUMMY_145, 0x30, 0, 0, 0)
/* 0x892 */ DEFINE_SFX(CHAN_0BF4, NA_SE_PL_DUMMY_146, 0x30, 0, 0, 0)
/* 0x893 */ DEFINE_SFX(CHAN_0BFB, NA_SE_PL_DUMMY_147, 0x30, 0, 0, 0)
/* 0x894 */ DEFINE_SFX(CHAN_0C02, NA_SE_PL_DUMMY_148, 0x30, 0, 0, 0)
/* 0x895 */ DEFINE_SFX(CHAN_0C09, NA_SE_PL_DUMMY_149, 0x30, 0, 0, 0)
/* 0x896 */ DEFINE_SFX(CHAN_0C0D, NA_SE_PL_DUMMY_150, 0x30, 0, 0, 0)
/* 0x897 */ DEFINE_SFX(CHAN_0C14, NA_SE_PL_DUMMY_151, 0x30, 0, 0, 0)
/* 0x898 */ DEFINE_SFX(CHAN_0C1B, NA_SE_PL_DUMMY_152, 0x30, 0, 0, 0)
/* 0x899 */ DEFINE_SFX(CHAN_0C22, NA_SE_PL_DUMMY_153, 0x30, 0, 0, 0)
/* 0x89A */ DEFINE_SFX(CHAN_0C29, NA_SE_PL_DUMMY_154, 0x30, 0, 0, 0)
/* 0x89B */ DEFINE_SFX(CHAN_0C30, NA_SE_PL_DUMMY_155, 0x30, 0, 0, 0)
/* 0x89C */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_156, 0x30, 0, 0, 0)
/* 0x89D */ DEFINE_SFX(CHAN_04B1, NA_SE_PL_DUMMY_157, 0x30, 0, 0, 0)
/* 0x89E */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_158, 0x30, 0, 0, 0)
/* 0x89F */ DEFINE_SFX(CHAN_0C37, NA_SE_PL_DUMMY_159, 0x30, 0, 0, 0)
/* 0x8A0 */ DEFINE_SFX(CHAN_0C3E, NA_SE_PL_DUMMY_160, 0x40, 0, 0, 0)
/* 0x8A1 */ DEFINE_SFX(CHAN_0C5C, NA_SE_PL_DUMMY_161, 0x40, 0, 0, 0)
/* 0x8A2 */ DEFINE_SFX(CHAN_0C63, NA_SE_PL_DUMMY_162, 0x40, 0, 0, 0)
/* 0x8A3 */ DEFINE_SFX(CHAN_0C6A, NA_SE_PL_DUMMY_163, 0x40, 0, 0, 0)
/* 0x8A4 */ DEFINE_SFX(CHAN_0C71, NA_SE_PL_DUMMY_164, 0x40, 0, 0, 0)
/* 0x8A5 */ DEFINE_SFX(CHAN_0C78, NA_SE_PL_DUMMY_165, 0x40, 0, 0, 0)
/* 0x8A6 */ DEFINE_SFX(CHAN_0C7C, NA_SE_PL_DUMMY_166, 0x40, 0, 0, 0)
/* 0x8A7 */ DEFINE_SFX(CHAN_0C83, NA_SE_PL_DUMMY_167, 0x40, 0, 0, 0)
/* 0x8A8 */ DEFINE_SFX(CHAN_0C8A, NA_SE_PL_DUMMY_168, 0x40, 0, 0, 0)
/* 0x8A9 */ DEFINE_SFX(CHAN_0C91, NA_SE_PL_DUMMY_169, 0x40, 0, 0, 0)
/* 0x8AA */ DEFINE_SFX(CHAN_0C98, NA_SE_PL_DUMMY_170, 0x40, 0, 0, 0)
/* 0x8AB */ DEFINE_SFX(CHAN_0C9F, NA_SE_PL_DUMMY_171, 0x40, 0, 0, 0)
/* 0x8AC */ DEFINE_SFX(CHAN_0B79, NA_SE_PL_DUMMY_172, 0x40, 0, 0, 0)
/* 0x8AD */ DEFINE_SFX(CHAN_0615, NA_SE_PL_DUMMY_173, 0x40, 0, 0, 0)
/* 0x8AE */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_174, 0x40, 0, 0, 0)
/* 0x8AF */ DEFINE_SFX(CHAN_0CA6, NA_SE_PL_DUMMY_175, 0x40, 0, 0, 0)
/* 0x8B0 */ DEFINE_SFX(CHAN_0CAD, NA_SE_PL_CRAWL, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B1 */ DEFINE_SFX(CHAN_0CB8, NA_SE_PL_CRAWL_SAND, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B2 */ DEFINE_SFX(CHAN_0CC3, NA_SE_PL_CRAWL_CONCRETE, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B3 */ DEFINE_SFX(CHAN_0CCE, NA_SE_PL_CRAWL_DIRT, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B4 */ DEFINE_SFX(CHAN_0CD9, NA_SE_PL_CRAWL_WATER0, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B5 */ DEFINE_SFX(CHAN_0CE4, NA_SE_PL_DUMMY_181, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B6 */ DEFINE_SFX(CHAN_0CEF, NA_SE_PL_DUMMY_182, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B7 */ DEFINE_SFX(CHAN_0CFA, NA_SE_PL_DUMMY_183, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B8 */ DEFINE_SFX(CHAN_0D05, NA_SE_PL_DUMMY_184, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8B9 */ DEFINE_SFX(CHAN_0D10, NA_SE_PL_DUMMY_185, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BA */ DEFINE_SFX(CHAN_0D1B, NA_SE_PL_DUMMY_186, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BB */ DEFINE_SFX(CHAN_0D26, NA_SE_PL_CRAWL_WOOD, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BC */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_CRAWL_ICE, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BD */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_189, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BE */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_190, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8BF */ DEFINE_SFX(CHAN_0D31, NA_SE_PL_DUMMY_191, 0x30, 0, 1, SFX_FLAG_10)
/* 0x8C0 */ DEFINE_SFX(CHAN_0D3C, NA_SE_PL_MAGIC_SOUL_FLASH, 0x30, 0, 0, SFX_FLAG_11 | SFX_FLAG_10)
/* 0x8C1 */ DEFINE_SFX(CHAN_0D43, NA_SE_PL_ROLL_DUST, 0x30, 0, 2, 0)
/* 0x8C2 */ DEFINE_SFX(CHAN_0D57, NA_SE_PL_DUMMY_192, 0x30, 0, 0, 0)
/* 0x8C3 */ DEFINE_SFX(CHAN_0D68, NA_SE_PL_MAGIC_SOUL_BALL, 0x30, 0, 0, 0)
/* 0x8C4 */ DEFINE_SFX(CHAN_0D7F, NA_SE_PL_SPIRAL_HEAL_BEAM, 0x30, 0, 0, 0)
/* 0x8C5 */ DEFINE_SFX(CHAN_07FC, NA_SE_PL_BOUND_NOWEAPON, 0x30, 0, 0, 0)
/* 0x8C6 */ DEFINE_SFX(CHAN_0DC9, NA_SE_PL_PLANT_GROW_UP, 0x30, 0, 0, 0)
/* 0x8C7 */ DEFINE_SFX(CHAN_0DA9, NA_SE_PL_PLANT_TALLER, 0x30, 0, 0, 0)
/* 0x8C8 */ DEFINE_SFX(CHAN_0DCE, NA_SE_PL_MAGIC_WIND_VANISH, 0x60, 2, 0, 0)
/* 0x8C9 */ DEFINE_SFX(CHAN_0DE3, NA_SE_PL_HOBBERBOOTS_LV, 0x30, 0, 0, 0)
/* 0x8CA */ DEFINE_SFX(CHAN_0DF9, NA_SE_PL_PLANT_MOVE, 0x30, 0, 0, 0)
/* 0x8CB */ DEFINE_SFX(CHAN_1C14, NA_SE_EV_WALL_MOVE_SP, 0x30, 0, 0, SFX_FLAG_11)
/* 0x8CC */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_204, 0x30, 0, 0, 0)
/* 0x8CD */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_205, 0x30, 0, 0, 0)
/* 0x8CE */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_206, 0x30, 0, 0, 0)
/* 0x8CF */ DEFINE_SFX(CHAN_02A1, NA_SE_PL_DUMMY_207, 0x30, 0, 0, 0)
/* 0x8D0 */ DEFINE_SFX(CHAN_0E08, NA_SE_PL_SLIP_LEVEL, 0x30, 0, 0, 0)
/* 0x8D1 */ DEFINE_SFX(CHAN_0E18, NA_SE_PL_SLIP_SAND_LEVEL, 0x30, 0, 0, 0)
/* 0x8D2 */ DEFINE_SFX(CHAN_0E20, NA_SE_PL_SLIP_CONCRETE_LEVEL, 0x30, 0, 0, 0)
/* 0x8D3 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_DIRT_LEVEL, 0x30, 0, 0, 0)
/* 0x8D4 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_WATER0_LEVEL, 0x30, 0, 0, 0)
/* 0x8D5 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_WATER1_LEVEL, 0x30, 0, 0, 0)
/* 0x8D6 */ DEFINE_SFX(CHAN_0E38, NA_SE_PL_SLIP_WATER2_LEVEL, 0x30, 0, 0, 0)
/* 0x8D7 */ DEFINE_SFX(CHAN_0E30, NA_SE_PL_SLIP_MAGMA_LEVEL, 0x30, 0, 0, 0)
/* 0x8D8 */ DEFINE_SFX(CHAN_0E48, NA_SE_PL_SLIP_GRASS_LEVEL, 0x30, 0, 0, 0)
/* 0x8D9 */ DEFINE_SFX(CHAN_0E08, NA_SE_PL_SLIP_IRON_LEVEL, 0x30, 0, 0, 0)
/* 0x8DA */ DEFINE_SFX(CHAN_0E50, NA_SE_PL_SLIP_GLASS_LEVEL, 0x30, 0, 0, 0)
/* 0x8DB */ DEFINE_SFX(CHAN_0E50, NA_SE_PL_SLIP_WOOD_LEVEL, 0x30, 0, 0, 0)
/* 0x8DC */ DEFINE_SFX(CHAN_02E8, NA_SE_PL_DUMMY_220, 0x30, 0, 0, 0)
/* 0x8DD */ DEFINE_SFX(CHAN_0E50, NA_SE_PL_DUMMY_221, 0x30, 0, 0, 0)
/* 0x8DE */ DEFINE_SFX(CHAN_0E60, NA_SE_PL_SLIP_HEAVYBOOTS_LEVEL, 0x30, 0, 0, 0)
/* 0x8DF */ DEFINE_SFX(CHAN_0E20, NA_SE_PL_SLIP_ICE_LEVEL, 0x30, 0, 0, 0)

View File

@ -2,83 +2,82 @@
* Sfx System Bank
*
* DEFINE_SFX should be used for all sfx define in the system bank from sequence 0
* - Argument 0: Channel name for sequence 0
* - Argument 1: Enum value for this sfx
* - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance
* - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3)
* - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3)
* - Argument 5: Various flags to add properties to the sfx
*
* WARNING: entries must align with the table defined for the system bank in sequence 0
*/
/* 0x4800 */ DEFINE_SFX(NA_SE_SY_WIN_OPEN, 0xC0, 0, 0, 0)
/* 0x4801 */ DEFINE_SFX(NA_SE_SY_WIN_CLOSE, 0xC0, 0, 0, 0)
/* 0x4802 */ DEFINE_SFX(NA_SE_SY_CORRECT_CHIME, 0xB0, 0, 0, SFX_FLAG_5)
/* 0x4803 */ DEFINE_SFX(NA_SE_SY_GET_RUPY, 0x30, 0, 0, 0)
/* 0x4804 */ DEFINE_SFX(NA_SE_SY_MESSAGE_WOMAN, 0x30, 0, 0, 0)
/* 0x4805 */ DEFINE_SFX(NA_SE_SY_MESSAGE_MAN, 0x30, 0, 0, 0)
/* 0x4806 */ DEFINE_SFX(NA_SE_SY_ERROR, 0x50, 0, 0, 0)
/* 0x4807 */ DEFINE_SFX(NA_SE_SY_TRE_BOX_APPEAR, 0x30, 0, 0, SFX_FLAG_5)
/* 0x4808 */ DEFINE_SFX(NA_SE_SY_DECIDE, 0x30, 0, 0, 0)
/* 0x4809 */ DEFINE_SFX(NA_SE_SY_CURSOR, 0x30, 0, 0, 0)
/* 0x480A */ DEFINE_SFX(NA_SE_SY_CANCEL, 0x30, 0, 0, 0)
/* 0x480B */ DEFINE_SFX(NA_SE_SY_HP_RECOVER, 0x30, 0, 0, 0)
/* 0x480C */ DEFINE_SFX(NA_SE_SY_ATTENTION_ON, 0x20, 0, 0, 0)
/* 0x480D */ DEFINE_SFX(NA_SE_SY_DUMMY_13, 0x30, 0, 0, 0)
/* 0x480E */ DEFINE_SFX(NA_SE_SY_DUMMY_14, 0x30, 0, 0, 0)
/* 0x480F */ DEFINE_SFX(NA_SE_SY_LOCK_OFF, 0x30, 0, 0, 0)
/* 0x4810 */ DEFINE_SFX(NA_SE_SY_LOCK_ON_HUMAN, 0x28, 0, 0, 0)
/* 0x4811 */ DEFINE_SFX(NA_SE_SY_DUMMY_17, 0x30, 0, 0, 0)
/* 0x4812 */ DEFINE_SFX(NA_SE_SY_DUMMY_18, 0x30, 0, 0, 0)
/* 0x4813 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_UP, 0x30, 0, 0, 0)
/* 0x4814 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_DOWN, 0x30, 0, 0, 0)
/* 0x4815 */ DEFINE_SFX(NA_SE_SY_DUMMY_21, 0x30, 0, 0, 0)
/* 0x4816 */ DEFINE_SFX(NA_SE_SY_DUMMY_22, 0x30, 0, 0, 0)
/* 0x4817 */ DEFINE_SFX(NA_SE_SY_ATTENTION_ON_OLD, 0x30, 0, 0, 0)
/* 0x4818 */ DEFINE_SFX(NA_SE_SY_MESSAGE_PASS, 0x18, 0, 0, 0)
/* 0x4819 */ DEFINE_SFX(NA_SE_SY_WARNING_COUNT_N, 0x2C, 0, 0, 0)
/* 0x481A */ DEFINE_SFX(NA_SE_SY_WARNING_COUNT_E, 0x2C, 0, 0, 0)
/* 0x481B */ DEFINE_SFX(NA_SE_SY_HITPOINT_ALARM, 0x20, 0, 0, 0)
/* 0x481C */ DEFINE_SFX(NA_SE_SY_DUMMY_28, 0x30, 0, 0, 0)
/* 0x481D */ DEFINE_SFX(NA_SE_SY_DEMO_CUT, 0x30, 0, 0, 0)
/* 0x481E */ DEFINE_SFX(NA_SE_SY_NAVY_CALL, 0x30, 0, 0, 0)
/* 0x481F */ DEFINE_SFX(NA_SE_SY_GAUGE_UP, 0x30, 0, 0, 0)
/* 0x4820 */ DEFINE_SFX(NA_SE_SY_DUMMY_32, 0x30, 0, 0, 0)
/* 0x4821 */ DEFINE_SFX(NA_SE_SY_DUMMY_33, 0x30, 0, 0, 0)
/* 0x4822 */ DEFINE_SFX(NA_SE_SY_DUMMY_34, 0x30, 0, 0, 0)
/* 0x4823 */ DEFINE_SFX(NA_SE_SY_PIECE_OF_HEART, 0x30, 0, 0, 0)
/* 0x4824 */ DEFINE_SFX(NA_SE_SY_GET_ITEM, 0x30, 0, 0, 0)
/* 0x4825 */ DEFINE_SFX(NA_SE_SY_WIN_SCROLL_LEFT, 0x30, 0, 0, 0)
/* 0x4826 */ DEFINE_SFX(NA_SE_SY_WIN_SCROLL_RIGHT, 0x30, 0, 0, 0)
/* 0x4827 */ DEFINE_SFX(NA_SE_SY_OCARINA_ERROR, 0x20, 0, 0, 0)
/* 0x4828 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_UP_2, 0x30, 0, 0, 0)
/* 0x4829 */ DEFINE_SFX(NA_SE_SY_CAMERA_ZOOM_DOWN_2, 0x30, 0, 0, 0)
/* 0x482A */ DEFINE_SFX(NA_SE_SY_GLASSMODE_ON, 0x30, 0, 0, 0)
/* 0x482B */ DEFINE_SFX(NA_SE_SY_GLASSMODE_OFF, 0x30, 0, 0, 0)
/* 0x482C */ DEFINE_SFX(NA_SE_SY_FOUND, 0x60, 0, 0, 0)
/* 0x482D */ DEFINE_SFX(NA_SE_SY_HIT_SOUND, 0x30, 0, 0, 0)
/* 0x482E */ DEFINE_SFX(NA_SE_SY_MESSAGE_END, 0x30, 0, 0, 0)
/* 0x482F */ DEFINE_SFX(NA_SE_SY_RUPY_COUNT, 0x30, 0, 0, 0)
/* 0x4830 */ DEFINE_SFX(NA_SE_SY_LOCK_ON, 0x30, 0, 0, 0)
/* 0x4831 */ DEFINE_SFX(NA_SE_SY_GET_BOXITEM, 0x30, 0, 0, 0)
/* 0x4832 */ DEFINE_SFX(NA_SE_SY_WHITE_OUT_L, 0x30, 0, 0, 0)
/* 0x4833 */ DEFINE_SFX(NA_SE_SY_WHITE_OUT_S, 0x30, 0, 0, 0)
/* 0x4834 */ DEFINE_SFX(NA_SE_SY_WHITE_OUT_T, 0x30, 0, 0, 0)
/* 0x4835 */ DEFINE_SFX(NA_SE_SY_START_SHOT, 0x30, 0, 0, 0)
/* 0x4836 */ DEFINE_SFX(NA_SE_SY_METRONOME, 0x30, 0, 0, 0)
/* 0x4837 */ DEFINE_SFX(NA_SE_SY_ATTENTION_URGENCY, 0x30, 0, 0, 0)
/* 0x4838 */ DEFINE_SFX(NA_SE_SY_METRONOME_LV, 0x30, 0, 0, 0)
/* 0x4839 */ DEFINE_SFX(NA_SE_SY_FSEL_CURSOR, 0x30, 0, 0, 0)
/* 0x483A */ DEFINE_SFX(NA_SE_SY_FSEL_DECIDE_S, 0x30, 0, 0, 0)
/* 0x483B */ DEFINE_SFX(NA_SE_SY_FSEL_DECIDE_L, 0x30, 0, 0, 0)
/* 0x483C */ DEFINE_SFX(NA_SE_SY_FSEL_CLOSE, 0x30, 0, 0, 0)
/* 0x483D */ DEFINE_SFX(NA_SE_SY_FSEL_ERROR, 0x30, 0, 0, 0)
/* 0x483E */ DEFINE_SFX(NA_SE_SY_SET_FIRE_ARROW, 0x30, 0, 0, 0)
/* 0x483F */ DEFINE_SFX(NA_SE_SY_SET_ICE_ARROW, 0x30, 0, 0, 0)
/* 0x4840 */ DEFINE_SFX(NA_SE_SY_SET_LIGHT_ARROW, 0x30, 0, 0, 0)
/* 0x4841 */ DEFINE_SFX(NA_SE_SY_SYNTH_MAGIC_ARROW, 0x30, 0, 0, 0)
/* 0x4842 */ DEFINE_SFX(NA_SE_SY_METRONOME_2, 0x30, 0, 0, 0)
/* 0x4843 */ DEFINE_SFX(NA_SE_SY_KINSTA_MARK_APPEAR, 0x30, 0, 0, 0)
/* 0x4844 */ DEFINE_SFX(NA_SE_SY_FIVE_COUNT_LUPY, 0x30, 0, 0, 0)
/* 0x4845 */ DEFINE_SFX(NA_SE_SY_CARROT_RECOVER, 0x30, 0, 0, 0)
/* 0x4846 */ DEFINE_SFX(NA_SE_EV_FAIVE_LUPY_COUNT, 0x30, 0, 0, 0)
/* 0x4847 */ DEFINE_SFX(NA_SE_SY_DUMMY_71, 0x30, 0, 0, 0)
/* 0x4800 */ DEFINE_SFX(CHAN_57B9, NA_SE_SY_WIN_OPEN, 0xC0, 0, 0, 0)
/* 0x4801 */ DEFINE_SFX(CHAN_57F6, NA_SE_SY_WIN_CLOSE, 0xC0, 0, 0, 0)
/* 0x4802 */ DEFINE_SFX(CHAN_5833, NA_SE_SY_CORRECT_CHIME, 0xB0, 0, 0, SFX_FLAG_5)
/* 0x4803 */ DEFINE_SFX(CHAN_5861, NA_SE_SY_GET_RUPY, 0x30, 0, 0, 0)
/* 0x4804 */ DEFINE_SFX(CHAN_5880, NA_SE_SY_MESSAGE_WOMAN, 0x30, 0, 0, 0)
/* 0x4805 */ DEFINE_SFX(CHAN_588E, NA_SE_SY_MESSAGE_MAN, 0x30, 0, 0, 0)
/* 0x4806 */ DEFINE_SFX(CHAN_588E, NA_SE_SY_ERROR, 0x50, 0, 0, 0)
/* 0x4807 */ DEFINE_SFX(CHAN_589F, NA_SE_SY_TRE_BOX_APPEAR, 0x30, 0, 0, SFX_FLAG_5)
/* 0x4808 */ DEFINE_SFX(CHAN_58E9, NA_SE_SY_DECIDE, 0x30, 0, 0, 0)
/* 0x4809 */ DEFINE_SFX(CHAN_5933, NA_SE_SY_CURSOR, 0x30, 0, 0, 0)
/* 0x480A */ DEFINE_SFX(CHAN_5948, NA_SE_SY_CANCEL, 0x30, 0, 0, 0)
/* 0x480B */ DEFINE_SFX(CHAN_596D, NA_SE_SY_HP_RECOVER, 0x30, 0, 0, 0)
/* 0x480C */ DEFINE_SFX(CHAN_598D, NA_SE_SY_ATTENTION_ON, 0x20, 0, 0, 0)
/* 0x480D */ DEFINE_SFX(CHAN_5A02, NA_SE_SY_DUMMY_13, 0x30, 0, 0, 0)
/* 0x480E */ DEFINE_SFX(CHAN_59A9, NA_SE_SY_DUMMY_14, 0x30, 0, 0, 0)
/* 0x480F */ DEFINE_SFX(CHAN_59CB, NA_SE_SY_LOCK_OFF, 0x30, 0, 0, 0)
/* 0x4810 */ DEFINE_SFX(CHAN_59E5, NA_SE_SY_LOCK_ON_HUMAN, 0x28, 0, 0, 0)
/* 0x4811 */ DEFINE_SFX(CHAN_5A02, NA_SE_SY_DUMMY_17, 0x30, 0, 0, 0)
/* 0x4812 */ DEFINE_SFX(CHAN_5A1B, NA_SE_SY_DUMMY_18, 0x30, 0, 0, 0)
/* 0x4813 */ DEFINE_SFX(CHAN_5A34, NA_SE_SY_CAMERA_ZOOM_UP, 0x30, 0, 0, 0)
/* 0x4814 */ DEFINE_SFX(CHAN_5A47, NA_SE_SY_CAMERA_ZOOM_DOWN, 0x30, 0, 0, 0)
/* 0x4815 */ DEFINE_SFX(CHAN_5A34, NA_SE_SY_DUMMY_21, 0x30, 0, 0, 0)
/* 0x4816 */ DEFINE_SFX(CHAN_5A34, NA_SE_SY_DUMMY_22, 0x30, 0, 0, 0)
/* 0x4817 */ DEFINE_SFX(CHAN_5A5A, NA_SE_SY_ATTENTION_ON_OLD, 0x30, 0, 0, 0)
/* 0x4818 */ DEFINE_SFX(CHAN_5A64, NA_SE_SY_MESSAGE_PASS, 0x18, 0, 0, 0)
/* 0x4819 */ DEFINE_SFX(CHAN_5A72, NA_SE_SY_WARNING_COUNT_N, 0x2C, 0, 0, 0)
/* 0x481A */ DEFINE_SFX(CHAN_5A86, NA_SE_SY_WARNING_COUNT_E, 0x2C, 0, 0, 0)
/* 0x481B */ DEFINE_SFX(CHAN_5AA5, NA_SE_SY_HITPOINT_ALARM, 0x20, 0, 0, 0)
/* 0x481C */ DEFINE_SFX(CHAN_5AB7, NA_SE_SY_DUMMY_28, 0x30, 0, 0, 0)
/* 0x481D */ DEFINE_SFX(CHAN_5AB7, NA_SE_SY_DEMO_CUT, 0x30, 0, 0, 0)
/* 0x481E */ DEFINE_SFX(CHAN_5AD8, NA_SE_SY_NAVY_CALL, 0x30, 0, 0, 0)
/* 0x481F */ DEFINE_SFX(CHAN_5AF7, NA_SE_SY_GAUGE_UP, 0x30, 0, 0, 0)
/* 0x4820 */ DEFINE_SFX(CHAN_5B22, NA_SE_SY_DUMMY_32, 0x30, 0, 0, 0)
/* 0x4821 */ DEFINE_SFX(CHAN_5B3C, NA_SE_SY_DUMMY_33, 0x30, 0, 0, 0)
/* 0x4822 */ DEFINE_SFX(CHAN_5B54, NA_SE_SY_DUMMY_34, 0x30, 0, 0, 0)
/* 0x4823 */ DEFINE_SFX(CHAN_5B5B, NA_SE_SY_PIECE_OF_HEART, 0x30, 0, 0, 0)
/* 0x4824 */ DEFINE_SFX(CHAN_5B9C, NA_SE_SY_GET_ITEM, 0x30, 0, 0, 0)
/* 0x4825 */ DEFINE_SFX(CHAN_5BBE, NA_SE_SY_WIN_SCROLL_LEFT, 0x30, 0, 0, 0)
/* 0x4826 */ DEFINE_SFX(CHAN_5BE8, NA_SE_SY_WIN_SCROLL_RIGHT, 0x30, 0, 0, 0)
/* 0x4827 */ DEFINE_SFX(CHAN_5BFA, NA_SE_SY_OCARINA_ERROR, 0x20, 0, 0, 0)
/* 0x4828 */ DEFINE_SFX(CHAN_5C07, NA_SE_SY_CAMERA_ZOOM_UP_2, 0x30, 0, 0, 0)
/* 0x4829 */ DEFINE_SFX(CHAN_5C1E, NA_SE_SY_CAMERA_ZOOM_DOWN_2, 0x30, 0, 0, 0)
/* 0x482A */ DEFINE_SFX(CHAN_5C35, NA_SE_SY_GLASSMODE_ON, 0x30, 0, 0, 0)
/* 0x482B */ DEFINE_SFX(CHAN_5C46, NA_SE_SY_GLASSMODE_OFF, 0x30, 0, 0, 0)
/* 0x482C */ DEFINE_SFX(CHAN_5C57, NA_SE_SY_FOUND, 0x60, 0, 0, 0)
/* 0x482D */ DEFINE_SFX(CHAN_5C64, NA_SE_SY_HIT_SOUND, 0x30, 0, 0, 0)
/* 0x482E */ DEFINE_SFX(CHAN_5C7A, NA_SE_SY_MESSAGE_END, 0x30, 0, 0, 0)
/* 0x482F */ DEFINE_SFX(CHAN_5C94, NA_SE_SY_RUPY_COUNT, 0x30, 0, 0, 0)
/* 0x4830 */ DEFINE_SFX(CHAN_5CAD, NA_SE_SY_LOCK_ON, 0x30, 0, 0, 0)
/* 0x4831 */ DEFINE_SFX(CHAN_5CB9, NA_SE_SY_GET_BOXITEM, 0x30, 0, 0, 0)
/* 0x4832 */ DEFINE_SFX(CHAN_5CD3, NA_SE_SY_WHITE_OUT_L, 0x30, 0, 0, 0)
/* 0x4833 */ DEFINE_SFX(CHAN_5CFC, NA_SE_SY_WHITE_OUT_S, 0x30, 0, 0, 0)
/* 0x4834 */ DEFINE_SFX(CHAN_5D1F, NA_SE_SY_WHITE_OUT_T, 0x30, 0, 0, 0)
/* 0x4835 */ DEFINE_SFX(CHAN_5D40, NA_SE_SY_START_SHOT, 0x30, 0, 0, 0)
/* 0x4836 */ DEFINE_SFX(CHAN_5D57, NA_SE_SY_METRONOME, 0x30, 0, 0, 0)
/* 0x4837 */ DEFINE_SFX(CHAN_5D61, NA_SE_SY_ATTENTION_URGENCY, 0x30, 0, 0, 0)
/* 0x4838 */ DEFINE_SFX(CHAN_5D6B, NA_SE_SY_METRONOME_LV, 0x30, 0, 0, 0)
/* 0x4839 */ DEFINE_SFX(CHAN_5D76, NA_SE_SY_FSEL_CURSOR, 0x30, 0, 0, 0)
/* 0x483A */ DEFINE_SFX(CHAN_5D9E, NA_SE_SY_FSEL_DECIDE_S, 0x30, 0, 0, 0)
/* 0x483B */ DEFINE_SFX(CHAN_5DBB, NA_SE_SY_FSEL_DECIDE_L, 0x30, 0, 0, 0)
/* 0x483C */ DEFINE_SFX(CHAN_5DDB, NA_SE_SY_FSEL_CLOSE, 0x30, 0, 0, 0)
/* 0x483D */ DEFINE_SFX(CHAN_5DF3, NA_SE_SY_FSEL_ERROR, 0x30, 0, 0, 0)
/* 0x483E */ DEFINE_SFX(CHAN_5E0A, NA_SE_SY_SET_FIRE_ARROW, 0x30, 0, 0, 0)
/* 0x483F */ DEFINE_SFX(CHAN_5E14, NA_SE_SY_SET_ICE_ARROW, 0x30, 0, 0, 0)
/* 0x4840 */ DEFINE_SFX(CHAN_5E1E, NA_SE_SY_SET_LIGHT_ARROW, 0x30, 0, 0, 0)
/* 0x4841 */ DEFINE_SFX(CHAN_5E28, NA_SE_SY_SYNTH_MAGIC_ARROW, 0x30, 0, 0, 0)
/* 0x4842 */ DEFINE_SFX(CHAN_5E31, NA_SE_SY_METRONOME_2, 0x30, 0, 0, 0)
/* 0x4843 */ DEFINE_SFX(CHAN_5E3D, NA_SE_SY_KINSTA_MARK_APPEAR, 0x30, 0, 0, 0)
/* 0x4844 */ DEFINE_SFX(CHAN_5E6B, NA_SE_SY_FIVE_COUNT_LUPY, 0x30, 0, 0, 0)
/* 0x4845 */ DEFINE_SFX(CHAN_5E88, NA_SE_SY_CARROT_RECOVER, 0x30, 0, 0, 0)
/* 0x4846 */ DEFINE_SFX(CHAN_5D57, NA_SE_EV_FAIVE_LUPY_COUNT, 0x30, 0, 0, 0)
/* 0x4847 */ DEFINE_SFX(CHAN_5D61, NA_SE_SY_DUMMY_71, 0x30, 0, 0, 0)

View File

@ -2,139 +2,141 @@
* Sfx Voice Bank
*
* DEFINE_SFX should be used for all sfx define in the voice bank from sequence 0
* - Argument 0: Channel name for sequence 0
* - Argument 1: Enum value for this sfx
* - Argument 2: Importance for deciding which sfx to prioritize. Higher values have greater importance
* - Argument 3: Slows the decay of volume with distance (a 2-bit number ranging from 0-3)
* - Argument 4: Applies increasingly random offsets to frequency (a 2-bit number ranging from 0-3)
* - Argument 5: Various flags to add properties to the sfx
*
* WARNING: entries must align with the table defined for the voice bank in sequence 0
*/
/* 0x6800 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_N, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6801 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_L, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6802 */ DEFINE_SFX(NA_SE_VO_LI_LASH, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6803 */ DEFINE_SFX(NA_SE_VO_LI_HANG, 0x20, 2, 0, SFX_FLAG_10)
/* 0x6804 */ DEFINE_SFX(NA_SE_VO_LI_CLIMB_END, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6805 */ DEFINE_SFX(NA_SE_VO_LI_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6806 */ DEFINE_SFX(NA_SE_VO_LI_FREEZE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6807 */ DEFINE_SFX(NA_SE_VO_LI_FALL_S, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6808 */ DEFINE_SFX(NA_SE_VO_LI_FALL_L, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6809 */ DEFINE_SFX(NA_SE_VO_LI_BREATH_REST, 0x30, 2, 1, SFX_FLAG_10)
/* 0x680A */ DEFINE_SFX(NA_SE_VO_LI_BREATH_DRINK, 0x30, 2, 1, SFX_FLAG_10)
/* 0x680B */ DEFINE_SFX(NA_SE_VO_LI_DOWN, 0x30, 2, 0, SFX_FLAG_10)
/* 0x680C */ DEFINE_SFX(NA_SE_VO_LI_TAKEN_AWAY, 0x30, 2, 0, SFX_FLAG_10)
/* 0x680D */ DEFINE_SFX(NA_SE_VO_LI_HELD, 0x50, 2, 0, SFX_FLAG_10)
/* 0x680E */ DEFINE_SFX(NA_SE_VO_LI_SNEEZE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x680F */ DEFINE_SFX(NA_SE_VO_LI_SWEAT, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6810 */ DEFINE_SFX(NA_SE_VO_LI_DRINK, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6811 */ DEFINE_SFX(NA_SE_VO_LI_RELAX, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6812 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_PUTAWAY, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6813 */ DEFINE_SFX(NA_SE_VO_LI_GROAN, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6814 */ DEFINE_SFX(NA_SE_VO_LI_AUTO_JUMP, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6815 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_NALE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6816 */ DEFINE_SFX(NA_SE_VO_LI_SURPRISE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6817 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_FROL, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6818 */ DEFINE_SFX(NA_SE_VO_LI_PUSH, 0x30, 2, 2, SFX_FLAG_10)
/* 0x6819 */ DEFINE_SFX(NA_SE_VO_LI_HOOKSHOT_HANG, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681A */ DEFINE_SFX(NA_SE_VO_LI_LAND_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681B */ DEFINE_SFX(NA_SE_VO_LI_NULL_0x1b, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681C */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_ATTACK, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681D */ DEFINE_SFX(NA_SE_VO_BL_DOWN, 0x80, 2, 0, SFX_FLAG_10)
/* 0x681E */ DEFINE_SFX(NA_SE_VO_LI_DEMO_DAMAGE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681F */ DEFINE_SFX(NA_SE_VO_LI_ELECTRIC_SHOCK_LV, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6820 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_N_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6821 */ DEFINE_SFX(NA_SE_VO_LI_ROLLING_CUT_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6822 */ DEFINE_SFX(NA_SE_VO_LI_LASH_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6823 */ DEFINE_SFX(NA_SE_VO_LI_HANG_KID, 0x20, 2, 0, SFX_FLAG_10)
/* 0x6824 */ DEFINE_SFX(NA_SE_VO_LI_CLIMB_END_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6825 */ DEFINE_SFX(NA_SE_VO_LI_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6826 */ DEFINE_SFX(NA_SE_VO_LI_FREEZE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6827 */ DEFINE_SFX(NA_SE_VO_LI_FALL_S_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6828 */ DEFINE_SFX(NA_SE_VO_LI_FALL_L_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6829 */ DEFINE_SFX(NA_SE_VO_LI_BREATH_REST_KID, 0x30, 2, 1, SFX_FLAG_10)
/* 0x682A */ DEFINE_SFX(NA_SE_VO_LI_BREATH_DRINK_KID, 0x30, 2, 1, SFX_FLAG_10)
/* 0x682B */ DEFINE_SFX(NA_SE_VO_LI_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x682C */ DEFINE_SFX(NA_SE_VO_LI_TAKEN_AWAY_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x682D */ DEFINE_SFX(NA_SE_VO_LI_HELD_KID, 0x50, 2, 0, SFX_FLAG_10)
/* 0x682E */ DEFINE_SFX(NA_SE_VO_LI_SNEEZE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x682F */ DEFINE_SFX(NA_SE_VO_LI_SWEAT_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6830 */ DEFINE_SFX(NA_SE_VO_LI_DRINK_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6831 */ DEFINE_SFX(NA_SE_VO_LI_RELAX_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6832 */ DEFINE_SFX(NA_SE_VO_LI_SWORD_PUTAWAY_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6833 */ DEFINE_SFX(NA_SE_VO_LI_GROAN_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6834 */ DEFINE_SFX(NA_SE_VO_LI_AUTO_JUMP_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6835 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_NALE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6836 */ DEFINE_SFX(NA_SE_VO_LI_SURPRISE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6837 */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_FROL_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6838 */ DEFINE_SFX(NA_SE_VO_LI_PUSH_KID, 0x30, 1, 2, SFX_FLAG_10)
/* 0x6839 */ DEFINE_SFX(NA_SE_VO_LI_HOOKSHOT_HANG_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683A */ DEFINE_SFX(NA_SE_VO_LI_LAND_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683B */ DEFINE_SFX(NA_SE_VO_LI_NULL_0x1b_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683C */ DEFINE_SFX(NA_SE_VO_LI_MAGIC_ATTACK_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683D */ DEFINE_SFX(NA_SE_VO_BL_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683E */ DEFINE_SFX(NA_SE_VO_LI_DEMO_DAMAGE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683F */ DEFINE_SFX(NA_SE_VO_LI_ELECTRIC_SHOCK_LV_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6840 */ DEFINE_SFX(NA_SE_VO_NAVY_ENEMY, 0x60, 0, 0, SFX_FLAG_5)
/* 0x6841 */ DEFINE_SFX(NA_SE_VO_NAVY_HELLO, 0x30, 0, 0, SFX_FLAG_5)
/* 0x6842 */ DEFINE_SFX(NA_SE_VO_NAVY_HEAR, 0x30, 0, 0, SFX_FLAG_5)
/* 0x6843 */ DEFINE_SFX(NA_SE_VO_NAVY_CALL, 0x60, 0, 0, 0)
/* 0x6844 */ DEFINE_SFX(NA_SE_VO_NA_HELLO_3, 0x30, 0, 0, 0)
/* 0x6845 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x45, 0x30, 0, 0, 0)
/* 0x6846 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x46, 0x30, 0, 0, 0)
/* 0x6847 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x47, 0x30, 0, 0, 0)
/* 0x6848 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x48, 0x30, 0, 0, 0)
/* 0x6849 */ DEFINE_SFX(NA_SE_VO_DUMMY_0x49, 0x30, 0, 0, 0)
/* 0x684A */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4a, 0x30, 0, 0, 0)
/* 0x684B */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4b, 0x30, 0, 0, 0)
/* 0x684C */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4c, 0x30, 0, 0, 0)
/* 0x684D */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4d, 0x30, 0, 0, 0)
/* 0x684E */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4e, 0x30, 0, 0, 0)
/* 0x684F */ DEFINE_SFX(NA_SE_VO_DUMMY_0x4f, 0x30, 0, 0, 0)
/* 0x6850 */ DEFINE_SFX(NA_SE_VO_TA_SLEEP, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6851 */ DEFINE_SFX(NA_SE_VO_TA_SURPRISE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6852 */ DEFINE_SFX(NA_SE_VO_TA_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6853 */ DEFINE_SFX(NA_SE_VO_TA_CRY_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6854 */ DEFINE_SFX(NA_SE_VO_IN_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6855 */ DEFINE_SFX(NA_SE_VO_IN_LOST, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6856 */ DEFINE_SFX(NA_SE_VO_IN_LASH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6857 */ DEFINE_SFX(NA_SE_VO_IN_LASH_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6858 */ DEFINE_SFX(NA_SE_VO_FR_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6859 */ DEFINE_SFX(NA_SE_VO_FR_SMILE_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685A */ DEFINE_SFX(NA_SE_VO_NB_AGONY, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685B */ DEFINE_SFX(NA_SE_VO_NB_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685C */ DEFINE_SFX(NA_SE_VO_NB_NOTICE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685D */ DEFINE_SFX(NA_SE_VO_NA_HELLO_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685E */ DEFINE_SFX(NA_SE_VO_NA_HELLO_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685F */ DEFINE_SFX(NA_SE_VO_NA_HELLO_2, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6860 */ DEFINE_SFX(NA_SE_VO_RT_CRASH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6861 */ DEFINE_SFX(NA_SE_VO_RT_DISCOVER, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6862 */ DEFINE_SFX(NA_SE_VO_RT_FALL, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6863 */ DEFINE_SFX(NA_SE_VO_RT_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6864 */ DEFINE_SFX(NA_SE_VO_RT_LIFT, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6865 */ DEFINE_SFX(NA_SE_VO_RT_THROW, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6866 */ DEFINE_SFX(NA_SE_VO_RT_UNBALLANCE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6867 */ DEFINE_SFX(NA_SE_VO_ST_DAMAGE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6868 */ DEFINE_SFX(NA_SE_VO_ST_ATTACK, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6869 */ DEFINE_SFX(NA_SE_VO_Z0_HURRY, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686A */ DEFINE_SFX(NA_SE_VO_Z0_MEET, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686B */ DEFINE_SFX(NA_SE_VO_Z0_QUESTION, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686C */ DEFINE_SFX(NA_SE_VO_Z0_SIGH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686D */ DEFINE_SFX(NA_SE_VO_Z0_SMILE_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686E */ DEFINE_SFX(NA_SE_VO_Z0_SURPRISE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686F */ DEFINE_SFX(NA_SE_VO_Z0_THROW, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6870 */ DEFINE_SFX(NA_SE_VO_SK_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6871 */ DEFINE_SFX(NA_SE_VO_SK_CRY_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6872 */ DEFINE_SFX(NA_SE_VO_SK_CRASH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6873 */ DEFINE_SFX(NA_SE_VO_SK_LAUGH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6874 */ DEFINE_SFX(NA_SE_VO_SK_SHOUT, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6875 */ DEFINE_SFX(NA_SE_VO_Z1_CRY_0, 0x30, 3, 1, SFX_FLAG_15)
/* 0x6876 */ DEFINE_SFX(NA_SE_VO_Z1_CRY_1, 0x30, 3, 1, SFX_FLAG_15)
/* 0x6877 */ DEFINE_SFX(NA_SE_VO_Z1_OPENDOOR, 0x30, 3, 1, SFX_FLAG_15)
/* 0x6878 */ DEFINE_SFX(NA_SE_VO_Z1_SURPRISE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6879 */ DEFINE_SFX(NA_SE_VO_Z1_PAIN, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687A */ DEFINE_SFX(NA_SE_VO_KZ_MOVE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687B */ DEFINE_SFX(NA_SE_VO_NB_LAUGH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687C */ DEFINE_SFX(NA_SE_VO_IN_LAUGH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687D */ DEFINE_SFX(NA_SE_VO_DUMMY_0x7d, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687E */ DEFINE_SFX(NA_SE_VO_DUMMY_0x7e, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687F */ DEFINE_SFX(NA_SE_VO_DUMMY_0x7f, 0x30, 1, 1, SFX_FLAG_15)
/* Player Voices: Adult Link */
/* 0x6800 */ DEFINE_SFX(CHAN_615D, NA_SE_VO_LI_SWORD_N, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6801 */ DEFINE_SFX(CHAN_6175, NA_SE_VO_LI_SWORD_L, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6802 */ DEFINE_SFX(CHAN_619B, NA_SE_VO_LI_LASH, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6803 */ DEFINE_SFX(CHAN_61C1, NA_SE_VO_LI_HANG, 0x20, 2, 0, SFX_FLAG_10)
/* 0x6804 */ DEFINE_SFX(CHAN_61D5, NA_SE_VO_LI_CLIMB_END, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6805 */ DEFINE_SFX(CHAN_61EA, NA_SE_VO_LI_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6806 */ DEFINE_SFX(CHAN_6201, NA_SE_VO_LI_FREEZE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6807 */ DEFINE_SFX(CHAN_6218, NA_SE_VO_LI_FALL_S, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6808 */ DEFINE_SFX(CHAN_622D, NA_SE_VO_LI_FALL_L, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6809 */ DEFINE_SFX(CHAN_6242, NA_SE_VO_LI_BREATH_REST, 0x30, 2, 1, SFX_FLAG_10)
/* 0x680A */ DEFINE_SFX(CHAN_6257, NA_SE_VO_LI_BREATH_DRINK, 0x30, 2, 1, SFX_FLAG_10)
/* 0x680B */ DEFINE_SFX(CHAN_625F, NA_SE_VO_LI_DOWN, 0x30, 2, 0, SFX_FLAG_10)
/* 0x680C */ DEFINE_SFX(CHAN_626F, NA_SE_VO_LI_TAKEN_AWAY, 0x30, 2, 0, SFX_FLAG_10)
/* 0x680D */ DEFINE_SFX(CHAN_6284, NA_SE_VO_LI_HELD, 0x50, 2, 0, SFX_FLAG_10)
/* 0x680E */ DEFINE_SFX(CHAN_6287, NA_SE_VO_LI_SNEEZE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x680F */ DEFINE_SFX(CHAN_6299, NA_SE_VO_LI_SWEAT, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6810 */ DEFINE_SFX(CHAN_62AB, NA_SE_VO_LI_DRINK, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6811 */ DEFINE_SFX(CHAN_62B4, NA_SE_VO_LI_RELAX, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6812 */ DEFINE_SFX(CHAN_62C6, NA_SE_VO_LI_SWORD_PUTAWAY, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6813 */ DEFINE_SFX(CHAN_649B, NA_SE_VO_LI_GROAN, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6814 */ DEFINE_SFX(CHAN_62CE, NA_SE_VO_LI_AUTO_JUMP, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6815 */ DEFINE_SFX(CHAN_62EC, NA_SE_VO_LI_MAGIC_NALE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6816 */ DEFINE_SFX(CHAN_62F4, NA_SE_VO_LI_SURPRISE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6817 */ DEFINE_SFX(CHAN_62FE, NA_SE_VO_LI_MAGIC_FROL, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6818 */ DEFINE_SFX(CHAN_6306, NA_SE_VO_LI_PUSH, 0x30, 2, 2, SFX_FLAG_10)
/* 0x6819 */ DEFINE_SFX(CHAN_630E, NA_SE_VO_LI_HOOKSHOT_HANG, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681A */ DEFINE_SFX(CHAN_6316, NA_SE_VO_LI_LAND_DAMAGE_S, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681B */ DEFINE_SFX(CHAN_631E, NA_SE_VO_LI_NULL_0x1b, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681C */ DEFINE_SFX(CHAN_6326, NA_SE_VO_LI_MAGIC_ATTACK, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681D */ DEFINE_SFX(CHAN_622D, NA_SE_VO_BL_DOWN, 0x80, 2, 0, SFX_FLAG_10)
/* 0x681E */ DEFINE_SFX(CHAN_632E, NA_SE_VO_LI_DEMO_DAMAGE, 0x30, 2, 0, SFX_FLAG_10)
/* 0x681F */ DEFINE_SFX(CHAN_615D, NA_SE_VO_LI_ELECTRIC_SHOCK_LV, 0x30, 2, 0, SFX_FLAG_10)
/* Player Voices: Child Link */
/* 0x6820 */ DEFINE_SFX(CHAN_6336, NA_SE_VO_LI_SWORD_N_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6821 */ DEFINE_SFX(CHAN_634F, NA_SE_VO_LI_ROLLING_CUT_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6822 */ DEFINE_SFX(CHAN_619B, NA_SE_VO_LI_LASH_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6823 */ DEFINE_SFX(CHAN_6376, NA_SE_VO_LI_HANG_KID, 0x20, 2, 0, SFX_FLAG_10)
/* 0x6824 */ DEFINE_SFX(CHAN_639A, NA_SE_VO_LI_CLIMB_END_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6825 */ DEFINE_SFX(CHAN_63AF, NA_SE_VO_LI_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6826 */ DEFINE_SFX(CHAN_63C6, NA_SE_VO_LI_FREEZE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6827 */ DEFINE_SFX(CHAN_63DD, NA_SE_VO_LI_FALL_S_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6828 */ DEFINE_SFX(CHAN_63F2, NA_SE_VO_LI_FALL_L_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6829 */ DEFINE_SFX(CHAN_6407, NA_SE_VO_LI_BREATH_REST_KID, 0x30, 2, 1, SFX_FLAG_10)
/* 0x682A */ DEFINE_SFX(CHAN_641C, NA_SE_VO_LI_BREATH_DRINK_KID, 0x30, 2, 1, SFX_FLAG_10)
/* 0x682B */ DEFINE_SFX(CHAN_6424, NA_SE_VO_LI_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x682C */ DEFINE_SFX(CHAN_6434, NA_SE_VO_LI_TAKEN_AWAY_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x682D */ DEFINE_SFX(CHAN_6449, NA_SE_VO_LI_HELD_KID, 0x50, 2, 0, SFX_FLAG_10)
/* 0x682E */ DEFINE_SFX(CHAN_6451, NA_SE_VO_LI_SNEEZE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x682F */ DEFINE_SFX(CHAN_6467, NA_SE_VO_LI_SWEAT_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6830 */ DEFINE_SFX(CHAN_6479, NA_SE_VO_LI_DRINK_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6831 */ DEFINE_SFX(CHAN_6482, NA_SE_VO_LI_RELAX_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6832 */ DEFINE_SFX(CHAN_6493, NA_SE_VO_LI_SWORD_PUTAWAY_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6833 */ DEFINE_SFX(CHAN_649B, NA_SE_VO_LI_GROAN_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6834 */ DEFINE_SFX(CHAN_64A5, NA_SE_VO_LI_AUTO_JUMP_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6835 */ DEFINE_SFX(CHAN_64C9, NA_SE_VO_LI_MAGIC_NALE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6836 */ DEFINE_SFX(CHAN_64D1, NA_SE_VO_LI_SURPRISE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6837 */ DEFINE_SFX(CHAN_64DB, NA_SE_VO_LI_MAGIC_FROL_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x6838 */ DEFINE_SFX(CHAN_64E3, NA_SE_VO_LI_PUSH_KID, 0x30, 1, 2, SFX_FLAG_10)
/* 0x6839 */ DEFINE_SFX(CHAN_64EB, NA_SE_VO_LI_HOOKSHOT_HANG_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683A */ DEFINE_SFX(CHAN_64F3, NA_SE_VO_LI_LAND_DAMAGE_S_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683B */ DEFINE_SFX(CHAN_64FB, NA_SE_VO_LI_NULL_0x1b_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683C */ DEFINE_SFX(CHAN_6503, NA_SE_VO_LI_MAGIC_ATTACK_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683D */ DEFINE_SFX(CHAN_63F2, NA_SE_VO_BL_DOWN_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683E */ DEFINE_SFX(CHAN_650B, NA_SE_VO_LI_DEMO_DAMAGE_KID, 0x30, 2, 0, SFX_FLAG_10)
/* 0x683F */ DEFINE_SFX(CHAN_615D, NA_SE_VO_LI_ELECTRIC_SHOCK_LV_KID, 0x30, 2, 0, SFX_FLAG_10)
/* */
/* 0x6840 */ DEFINE_SFX(CHAN_612C, NA_SE_VO_NAVY_ENEMY, 0x60, 0, 0, SFX_FLAG_5)
/* 0x6841 */ DEFINE_SFX(CHAN_612C, NA_SE_VO_NAVY_HELLO, 0x30, 0, 0, SFX_FLAG_5)
/* 0x6842 */ DEFINE_SFX(CHAN_612C, NA_SE_VO_NAVY_HEAR, 0x30, 0, 0, SFX_FLAG_5)
/* 0x6843 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_NAVY_CALL, 0x60, 0, 0, 0)
/* 0x6844 */ DEFINE_SFX(CHAN_6513, NA_SE_VO_NA_HELLO_3, 0x30, 0, 0, 0)
/* 0x6845 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x45, 0x30, 0, 0, 0)
/* 0x6846 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x46, 0x30, 0, 0, 0)
/* 0x6847 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x47, 0x30, 0, 0, 0)
/* 0x6848 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x48, 0x30, 0, 0, 0)
/* 0x6849 */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x49, 0x30, 0, 0, 0)
/* 0x684A */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4a, 0x30, 0, 0, 0)
/* 0x684B */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4b, 0x30, 0, 0, 0)
/* 0x684C */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4c, 0x30, 0, 0, 0)
/* 0x684D */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4d, 0x30, 0, 0, 0)
/* 0x684E */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4e, 0x30, 0, 0, 0)
/* 0x684F */ DEFINE_SFX(CHAN_6581, NA_SE_VO_DUMMY_0x4f, 0x30, 0, 0, 0)
/* 0x6850 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_SLEEP, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6851 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_SURPRISE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6852 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6853 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_TA_CRY_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6854 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6855 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_LOST, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6856 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_LASH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6857 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_IN_LASH_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6858 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_FR_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6859 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_FR_SMILE_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685A */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NB_AGONY, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685B */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NB_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685C */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NB_NOTICE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685D */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NA_HELLO_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685E */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NA_HELLO_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x685F */ DEFINE_SFX(CHAN_6520, NA_SE_VO_NA_HELLO_2, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6860 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_CRASH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6861 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_DISCOVER, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6862 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_FALL, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6863 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_LAUGH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6864 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_LIFT, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6865 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_THROW, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6866 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_RT_UNBALLANCE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6867 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_ST_DAMAGE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6868 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_ST_ATTACK, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6869 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_HURRY, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686A */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_MEET, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686B */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_QUESTION, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686C */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_SIGH_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686D */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_SMILE_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686E */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_SURPRISE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x686F */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z0_THROW, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6870 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_CRY_0, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6871 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_CRY_1, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6872 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_CRASH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6873 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_LAUGH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6874 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_SK_SHOUT, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6875 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z1_CRY_0, 0x30, 3, 1, SFX_FLAG_15)
/* 0x6876 */ DEFINE_SFX(CHAN_6520, NA_SE_VO_Z1_CRY_1, 0x30, 3, 1, SFX_FLAG_15)
/* 0x6877 */ DEFINE_SFX(CHAN_6562, NA_SE_VO_Z1_OPENDOOR, 0x30, 3, 1, SFX_FLAG_15)
/* 0x6878 */ DEFINE_SFX(CHAN_6562, NA_SE_VO_Z1_SURPRISE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x6879 */ DEFINE_SFX(CHAN_6562, NA_SE_VO_Z1_PAIN, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687A */ DEFINE_SFX(CHAN_6562, NA_SE_VO_KZ_MOVE, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687B */ DEFINE_SFX(CHAN_6562, NA_SE_VO_NB_LAUGH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687C */ DEFINE_SFX(CHAN_6562, NA_SE_VO_IN_LAUGH, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687D */ DEFINE_SFX(CHAN_6520, NA_SE_VO_DUMMY_0x7d, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687E */ DEFINE_SFX(CHAN_6520, NA_SE_VO_DUMMY_0x7e, 0x30, 1, 1, SFX_FLAG_15)
/* 0x687F */ DEFINE_SFX(CHAN_6520, NA_SE_VO_DUMMY_0x7f, 0x30, 1, 1, SFX_FLAG_15)

114
spec
View File

@ -205,7 +205,116 @@ endseg
beginseg
name "Audioseq"
include "$(BUILD_DIR)/baserom/Audioseq.o"
address 0
include "$(BUILD_DIR)/assets/audio/sequences/seq_0.prg.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_1.prg.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_2.prg.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_3.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_4.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_5.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_6.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_7.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_8.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_9.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_10.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_11.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_12.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_13.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_14.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_15.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_16.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_17.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_18.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_19.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_20.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_21.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_22.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_23.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_24.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_25.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_26.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_27.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_28.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_29.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_30.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_31.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_32.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_33.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_34.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_35.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_36.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_37.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_38.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_39.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_40.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_41.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_42.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_43.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_44.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_45.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_46.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_47.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_48.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_49.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_50.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_51.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_52.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_53.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_54.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_55.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_56.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_57.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_58.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_59.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_60.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_61.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_62.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_63.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_64.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_65.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_66.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_67.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_68.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_69.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_70.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_71.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_72.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_73.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_74.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_75.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_76.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_77.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_78.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_79.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_80.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_81.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_82.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_83.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_84.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_85.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_86.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_88.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_89.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_90.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_91.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_92.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_93.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_94.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_95.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_96.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_97.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_98.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_99.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_100.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_101.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_102.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_103.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_104.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_105.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_106.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_107.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_108.o"
include "$(BUILD_DIR)/assets/audio/sequences/seq_109.prg.o"
endseg
beginseg
@ -781,7 +890,8 @@ beginseg
include "$(BUILD_DIR)/src/code/z_message_z_game_over.o"
include "$(BUILD_DIR)/src/code/z_construct.o"
include "$(BUILD_DIR)/src/audio/tables/soundfont_table.o"
include "$(BUILD_DIR)/data/audio_tables.rodata.o"
include "$(BUILD_DIR)/assets/audio/sequence_font_table.o"
include "$(BUILD_DIR)/src/audio/tables/sequence_table.o"
include "$(BUILD_DIR)/src/audio/tables/samplebank_table.o"
include "$(BUILD_DIR)/data/rsp.text.o"
include "$(BUILD_DIR)/data/rsp.rodata.o"

View File

@ -79,7 +79,31 @@ typedef struct OcarinaStick {
s8 y;
} OcarinaStick;
u8 gIsLargeSfxBank[7] = { 0, 0, 0, 1, 0, 0, 0 };
#define DEFINE_SFX(_0, _1, _2, _3, _4, _5) 1 +
u8 gIsLargeSfxBank[7] = {
(
#include "tables/sfx/playerbank_table.h"
0) > UINT8_MAX,
(
#include "tables/sfx/itembank_table.h"
0) > UINT8_MAX,
(
#include "tables/sfx/environmentbank_table.h"
0) > UINT8_MAX,
(
#include "tables/sfx/enemybank_table.h"
0) > UINT8_MAX,
(
#include "tables/sfx/systembank_table.h"
0) > UINT8_MAX,
(
#include "tables/sfx/ocarinabank_table.h"
0) > UINT8_MAX,
(
#include "tables/sfx/voicebank_table.h"
0) > UINT8_MAX,
};
#undef DEFINE_SFX
// Only the first row of these is supported by sequence 0. (gSfxChannelLayout is always 0.)
u8 gChannelsPerBank[4][7] = {
@ -168,122 +192,13 @@ u8 sSeqModeInput = 0;
#define SEQ_FLAG_SKIP_HARP_INTRO (1 << 6)
#define SEQ_FLAG_NO_AMBIENCE (1 << 7)
#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) seqFlags,
#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) seqFlags,
u8 sSeqFlags[] = {
#if PLATFORM_N64
SEQ_FLAG_FANFARE | SEQ_FLAG_ENEMY, // NA_BGM_GENERAL_SFX
#else
SEQ_FLAG_FANFARE, // NA_BGM_GENERAL_SFX
#endif
SEQ_FLAG_ENEMY, // NA_BGM_NATURE_BACKGROUND
0, // NA_BGM_FIELD_LOGIC
0, // NA_BGM_FIELD_INIT
0, // NA_BGM_FIELD_DEFAULT_1
0, // NA_BGM_FIELD_DEFAULT_2
0, // NA_BGM_FIELD_DEFAULT_3
0, // NA_BGM_FIELD_DEFAULT_4
0, // NA_BGM_FIELD_DEFAULT_5
0, // NA_BGM_FIELD_DEFAULT_6
0, // NA_BGM_FIELD_DEFAULT_7
0, // NA_BGM_FIELD_DEFAULT_8
0, // NA_BGM_FIELD_DEFAULT_9
0, // NA_BGM_FIELD_DEFAULT_A
0, // NA_BGM_FIELD_DEFAULT_B
0, // NA_BGM_FIELD_ENEMY_INIT
0, // NA_BGM_FIELD_ENEMY_1
0, // NA_BGM_FIELD_ENEMY_2
0, // NA_BGM_FIELD_ENEMY_3
0, // NA_BGM_FIELD_ENEMY_4
0, // NA_BGM_FIELD_STILL_1
0, // NA_BGM_FIELD_STILL_2
0, // NA_BGM_FIELD_STILL_3
0, // NA_BGM_FIELD_STILL_4
SEQ_FLAG_RESUME_PREV | SEQ_FLAG_ENEMY, // NA_BGM_DUNGEON
SEQ_FLAG_RESUME, // NA_BGM_KAKARIKO_ADULT
0, // NA_BGM_ENEMY
SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE, // NA_BGM_BOSS
SEQ_FLAG_ENEMY, // NA_BGM_INSIDE_DEKU_TREE
0, // NA_BGM_MARKET
0, // NA_BGM_TITLE
SEQ_FLAG_RESUME_PREV, // NA_BGM_LINK_HOUSE
0, // NA_BGM_GAME_OVER
0, // NA_BGM_BOSS_CLEAR
SEQ_FLAG_FANFARE, // NA_BGM_ITEM_GET
SEQ_FLAG_FANFARE_GANON, // NA_BGM_OPENING_GANON
SEQ_FLAG_FANFARE, // NA_BGM_HEART_GET
SEQ_FLAG_FANFARE, // NA_BGM_OCA_LIGHT
SEQ_FLAG_ENEMY, // NA_BGM_JABU_JABU
SEQ_FLAG_RESUME, // NA_BGM_KAKARIKO_KID
0, // NA_BGM_GREAT_FAIRY
0, // NA_BGM_ZELDA_THEME
SEQ_FLAG_ENEMY, // NA_BGM_FIRE_TEMPLE
SEQ_FLAG_FANFARE, // NA_BGM_OPEN_TRE_BOX
SEQ_FLAG_ENEMY, // NA_BGM_FOREST_TEMPLE
0, // NA_BGM_COURTYARD
SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GANON_TOWER
0, // NA_BGM_LONLON
SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GORON_CITY
0, // NA_BGM_FIELD_MORNING
SEQ_FLAG_FANFARE, // NA_BGM_SPIRITUAL_STONE
SEQ_FLAG_FANFARE, // NA_BGM_OCA_BOLERO
SEQ_FLAG_FANFARE, // NA_BGM_OCA_MINUET
SEQ_FLAG_FANFARE, // NA_BGM_OCA_SERENADE
SEQ_FLAG_FANFARE, // NA_BGM_OCA_REQUIEM
SEQ_FLAG_FANFARE, // NA_BGM_OCA_NOCTURNE
SEQ_FLAG_NO_AMBIENCE | SEQ_FLAG_RESTORE, // NA_BGM_MINI_BOSS
SEQ_FLAG_FANFARE, // NA_BGM_SMALL_ITEM_GET
0, // NA_BGM_TEMPLE_OF_TIME
SEQ_FLAG_FANFARE, // NA_BGM_EVENT_CLEAR
SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY, // NA_BGM_KOKIRI
SEQ_FLAG_FANFARE, // NA_BGM_OCA_FAIRY_GET
SEQ_FLAG_ENEMY, // NA_BGM_SARIA_THEME
SEQ_FLAG_ENEMY, // NA_BGM_SPIRIT_TEMPLE
0, // NA_BGM_HORSE
0, // NA_BGM_HORSE_GOAL
0, // NA_BGM_INGO
SEQ_FLAG_FANFARE, // NA_BGM_MEDALLION_GET
SEQ_FLAG_FANFARE, // NA_BGM_OCA_SARIA
SEQ_FLAG_FANFARE, // NA_BGM_OCA_EPONA
SEQ_FLAG_FANFARE, // NA_BGM_OCA_ZELDA
SEQ_FLAG_FANFARE, // NA_BGM_OCA_SUNS
SEQ_FLAG_FANFARE, // NA_BGM_OCA_TIME
SEQ_FLAG_FANFARE, // NA_BGM_OCA_STORM
0, // NA_BGM_NAVI_OPENING
0, // NA_BGM_DEKU_TREE_CS
0, // NA_BGM_WINDMILL
0, // NA_BGM_HYRULE_CS
SEQ_FLAG_RESUME_PREV, // NA_BGM_MINI_GAME
0, // NA_BGM_SHEIK
SEQ_FLAG_RESUME, // NA_BGM_ZORA_DOMAIN
SEQ_FLAG_FANFARE, // NA_BGM_APPEAR
0, // NA_BGM_ADULT_LINK
0, // NA_BGM_MASTER_SWORD
SEQ_FLAG_FANFARE_GANON, // NA_BGM_INTRO_GANON
SEQ_FLAG_RESUME_PREV, // NA_BGM_SHOP
SEQ_FLAG_SKIP_HARP_INTRO, // NA_BGM_CHAMBER_OF_SAGES
SEQ_FLAG_SKIP_HARP_INTRO, // NA_BGM_FILE_SELECT
SEQ_FLAG_ENEMY, // NA_BGM_ICE_CAVERN
SEQ_FLAG_FANFARE, // NA_BGM_DOOR_OF_TIME
SEQ_FLAG_FANFARE, // NA_BGM_OWL
SEQ_FLAG_ENEMY, // NA_BGM_SHADOW_TEMPLE
SEQ_FLAG_ENEMY, // NA_BGM_WATER_TEMPLE
SEQ_FLAG_FANFARE, // NA_BGM_BRIDGE_TO_GANONS
0, // NA_BGM_OCARINA_OF_TIME
SEQ_FLAG_RESUME | SEQ_FLAG_ENEMY, // NA_BGM_GERUDO_VALLEY
0, // NA_BGM_POTION_SHOP
0, // NA_BGM_KOTAKE_KOUME
SEQ_FLAG_NO_AMBIENCE, // NA_BGM_ESCAPE
0, // NA_BGM_UNDERGROUND
SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GANON_BATTLE_1
SEQ_FLAG_NO_AMBIENCE, // NA_BGM_GANON_BATTLE_2
0, // NA_BGM_END_DEMO
0, // NA_BGM_STAFF_1
0, // NA_BGM_STAFF_2
0, // NA_BGM_STAFF_3
0, // NA_BGM_STAFF_4
0, // NA_BGM_FIRE_BOSS
SEQ_FLAG_RESTORE, // NA_BGM_TIMED_MINI_GAME
0, // NA_BGM_CUTSCENE_EFFECTS
#include "tables/sequence_table.h"
};
#undef DEFINE_SEQUENCE
#undef DEFINE_SEQUENCE_PTR
s8 sSpecReverbs[20] = { 0, 0, 0, 0, 0, 0, 0, 40, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

View File

@ -1,7 +1,7 @@
#include "ultra64.h"
#include "global.h"
#define DEFINE_SFX(_0, importance, distParam, randParam, flags) \
#define DEFINE_SFX(_0, _1, importance, distParam, randParam, flags) \
{ importance, ((((distParam) << SFX_PARAM_01_SHIFT) & SFX_PARAM_01_MASK) | \
(((randParam) << SFX_PARAM_67_SHIFT) & SFX_PARAM_67_MASK) | (flags)) },

View File

@ -0,0 +1,51 @@
#include "attributes.h"
#include "z64audio.h"
// Symbol definition
extern AudioTable gSequenceTable;
#pragma weak gSequenceTable = sSequenceTableHeader
// Externs for table
#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) \
extern u8 name##_Start[]; \
extern u8 name##_Size[];
#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) /*empty*/
#include "tables/sequence_table.h"
#undef DEFINE_SEQUENCE
#undef DEFINE_SEQUENCE_PTR
// Table header
NO_REORDER AudioTableHeader sSequenceTableHeader = {
// The table contains the number of sequences, count them with the preprocessor
#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) 1 +
#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) 1 +
#include "tables/sequence_table.h"
#undef DEFINE_SEQUENCE
#undef DEFINE_SEQUENCE_PTR
0,
0,
0x00000000,
{ 0, 0, 0, 0, 0, 0, 0, 0 },
};
// Table body
NO_REORDER AudioTableEntry sSequenceTableEntries[] = {
#define DEFINE_SEQUENCE(name, seqId, storageMedium, cachePolicy, seqFlags) \
{ (u32)name##_Start, (u32)name##_Size, (storageMedium), (cachePolicy), 0, 0, 0 },
#define DEFINE_SEQUENCE_PTR(seqIdReal, seqId, storageMediumReal, cachePolicyReal, seqFlags) \
{ (seqIdReal), 0, (storageMediumReal), (cachePolicyReal), 0, 0, 0 },
#include "tables/sequence_table.h"
#undef DEFINE_SEQUENCE
#undef DEFINE_SEQUENCE_PTR
};

View File

@ -8,6 +8,7 @@
*/
#include <assert.h>
#include <ctype.h>
#include <regex.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
@ -17,24 +18,9 @@
#include "samplebank.h"
#include "soundfont.h"
#include "xml.h"
#include "elf32.h"
#include "util.h"
/* Utility */
static bool
is_xml(const char *path)
{
size_t len = strlen(path);
if (len < 4)
return false;
if (path[len - 4] == '.' && tolower(path[len - 3]) == 'x' && tolower(path[len - 2]) == 'm' &&
tolower(path[len - 1]) == 'l')
return true;
return false;
}
/* Samplebanks */
static int
@ -46,8 +32,9 @@ tablegen_samplebanks(const char *sb_hdr_out, const char **samplebanks_paths, int
for (int i = 0; i < num_samplebank_files; i++) {
const char *path = samplebanks_paths[i];
size_t pathlen = strlen(path);
if (!is_xml(path))
if (!str_endswith(path, pathlen, ".xml"))
error("Not an xml file? (\"%s\")", path);
xmlDocPtr document = xmlReadFile(path, NULL, XML_PARSE_NONET);
@ -189,7 +176,7 @@ validate_samplebank_index(soundfont *sf, samplebank *sb, int ptr_idx)
}
}
int
static int
tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_soundfont_files)
{
soundfont *soundfonts = malloc(num_soundfont_files * sizeof(soundfont));
@ -197,8 +184,9 @@ tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_sou
for (int i = 0; i < num_soundfont_files; i++) {
char *path = soundfonts_paths[i];
size_t pathlen = strlen(path);
if (!is_xml(path))
if (!str_endswith(path, pathlen, ".xml"))
error("Not an xml file? (\"%s\")", path);
xmlDocPtr document = xmlReadFile(path, NULL, XML_PARSE_NONET);
@ -213,7 +201,6 @@ tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_sou
// Transform the xml path into a header include path
// Assumption: replacing .xml -> .h forms a valid header include path
size_t pathlen = strlen(path);
path[pathlen - 3] = 'h';
path[pathlen - 2] = '\0';
@ -290,6 +277,298 @@ tablegen_soundfonts(const char *sf_hdr_out, char **soundfonts_paths, int num_sou
return EXIT_SUCCESS;
}
/* Sequences */
struct seq_order_entry {
const char *name;
const char *enum_name;
bool isptr;
};
struct seq_order {
size_t num_sequences;
struct seq_order_entry *entries;
void *filedata;
};
static void
read_seq_order(struct seq_order *order, const char *path)
{
// Read from file, we assume the file has been preprocessed with cpp so that whitespace is collapsed and each line
// has the form:
// (name,enum_name) or *(name,enum_name)
UNUSED size_t data_size;
char *filedata = util_read_whole_file(path, &data_size);
// We expect one entry per line, gather the total length
size_t total_size = 0;
for (char *p = filedata; *p != '\0'; p++) {
if (*p == '\n') {
total_size++;
} else if (isspace(*p)) {
// There should be no whitespace in the input file besides newlines
goto malformed;
}
}
// Alloc entries
struct seq_order_entry *entries = malloc(total_size * sizeof(struct seq_order_entry));
enum matchno {
MATCH_ALL,
MATCH_PTR,
MATCH_NAME,
MATCH_ENUM,
MATCH_NUM
};
regmatch_t match[MATCH_NUM];
regex_t re;
// Matches either
// (<c_identifier>,<c_identifier>) for non-pointer entries
// or
// *(<c_identifier>,<c_identifier>) for pointer entries
const char *line_regexp = "^(\\*?)\\(([_a-zA-Z][_a-zA-Z0-9]*),([_a-zA-Z][_a-zA-Z0-9]*)\\)$";
int status = regcomp(&re, line_regexp, REG_EXTENDED);
assert(status == 0 && "Failed to compile sequence order regular expression?");
char *lstart = filedata;
for (size_t i = 0; i < total_size; i++) {
// find end of line
char *p = lstart;
while (*p != '\n') {
assert(*p != '\0');
p++;
}
char *lend = p;
// null-terminate the line (replaces the newline)
*lend = '\0';
// try to match the regular expression
status = regexec(&re, lstart, MATCH_NUM, match, 0);
if (status != 0) {
// failed to match, malformed input file
char ebuf[128];
regerror(status, &re, ebuf, sizeof(ebuf));
fprintf(stderr, "Failed to match line %lu: \"%s\"\nregexec error: \"%s\"\n", i, lstart, ebuf);
goto malformed;
}
// if the group is empty we're not a pointer, else we are
entries[i].isptr = match[MATCH_PTR].rm_so != match[MATCH_PTR].rm_eo;
// get the name
entries[i].name = &lstart[match[MATCH_NAME].rm_so];
lstart[match[MATCH_NAME].rm_eo] = '\0'; // replaces ,
// get the enum name
entries[i].enum_name = &lstart[match[MATCH_ENUM].rm_so];
lstart[match[MATCH_ENUM].rm_eo] = '\0'; // replaces )
// next line
lstart = lend + 1;
}
assert(*lstart == '\0');
// Write results
order->num_sequences = total_size;
order->entries = entries;
order->filedata = filedata;
return;
malformed:
error("Malformed %s?", path);
}
struct seqdata {
const char *elf_path;
const char *name;
uint32_t font_section_offset;
size_t font_section_size;
};
static int
tablegen_sequences(const char *seq_font_tbl_out, const char *seq_order_path, const char **sequences_paths,
int num_sequence_files)
{
struct seq_order order;
read_seq_order(&order, seq_order_path);
#ifdef SEQ_DEBUG
// Print the sequence order
printf("Sequence order:\n");
for (size_t i = 0; i < order.num_sequences; i++) {
printf(" name=\"%s\" enum=\"%s\" ptr=%d\n", order.entries[i].name, order.entries[i].enum_name,
order.entries[i].isptr);
}
#endif
struct seqdata *file_data = malloc(num_sequence_files * sizeof(struct seqdata));
// Read and validate the sequence object files
for (int i = 0; i < num_sequence_files; i++) {
const char *path = sequences_paths[i];
if (!str_endswith(path, strlen(path), ".o"))
error("Not a .o file? (\"%s\")", path);
// Open ELF file
size_t data_size;
void *data = elf32_read(path, &data_size);
Elf32_Shdr *symtab = elf32_get_symtab(data, data_size);
if (symtab == NULL)
error("ELF file \"%s\" has no symbol table?", path);
Elf32_Shdr *shstrtab = elf32_get_shstrtab(data, data_size);
if (shstrtab == NULL)
error("ELF file \"%s\" has no section header string table?", path);
// The .fonts and .name sections are written when assembling the sequence:
// The .fonts section contains a list of bytes for each soundfont the sequences uses
// The .name section contains the null-terminated name of the sequence as set by .startseq
Elf32_Shdr *font_section = elf32_section_forname(".fonts", shstrtab, data, data_size);
if (font_section == NULL)
error("Sequence file \"%s\" has no fonts section?", path);
uint32_t font_section_offset = elf32_read32(font_section->sh_offset);
uint32_t font_section_size = elf32_read32(font_section->sh_size);
validate_read(font_section_offset, font_section_size, data_size);
Elf32_Shdr *name_section = elf32_section_forname(".name", shstrtab, data, data_size);
if (name_section == NULL)
error("Sequence file \"%s\" has no name section?", path);
uint32_t name_section_offset = elf32_read32(name_section->sh_offset);
uint32_t name_section_size = elf32_read32(name_section->sh_size);
validate_read(name_section_offset, name_section_size, data_size);
const char *seq_name = GET_PTR(data, name_section_offset);
if (strnlen(seq_name, name_section_size + 1) >= name_section_size)
error("Sequence file \"%s\" name is not properly terminated?", path);
// Populate new data
struct seqdata *seqdata = &file_data[i];
seqdata->elf_path = strdup(path);
seqdata->name = strdup(seq_name);
seqdata->font_section_offset = font_section_offset;
seqdata->font_section_size = font_section_size;
free(data);
}
#ifdef SEQ_DEBUG
// Debugging: Print the findings for each sequence object
printf("\nNum files: %d\n\n", num_sequence_files);
for (int i = 0; i < num_sequence_files; i++) {
struct seqdata *seqdata = &file_data[i];
printf(
// clang-format off
" elf path : \"%s\"" "\n"
" name : \"%s\"" "\n"
" font offset : 0x%X" "\n"
" num fonts : %lu" "\n\n",
// clang-format on
seqdata->elf_path, seqdata->name, seqdata->font_section_offset, seqdata->font_section_size);
}
#endif
// Link against the sequence order coming from the sequence table header
struct seqdata **final_seqdata = calloc(order.num_sequences, sizeof(struct seqdata *));
for (size_t i = 0; i < order.num_sequences; i++) {
// Skip pointers for now
if (order.entries[i].isptr)
continue;
// If it's not a pointer, "name" is the name as it appears in a sequence file, find it in the list of sequences
const char *name = order.entries[i].name;
// Find the object file with this name
for (int j = 0; j < num_sequence_files; j++) {
struct seqdata *seqdata = &file_data[j];
if (strequ(name, seqdata->name)) {
// Found name, done
final_seqdata[i] = seqdata;
break;
}
}
}
for (size_t i = 0; i < order.num_sequences; i++) {
// Now we only care about pointers
if (!order.entries[i].isptr)
continue;
// If it's a pointer, "name" is the ENUM name of the sequence it points to
const char *name = order.entries[i].name;
for (size_t j = 0; j < order.num_sequences; j++) {
// Skip pointers, the system doesn't allow multiple indirection so this must point to a non-pointer entry.
if (order.entries[j].isptr)
continue;
if (strequ(name, order.entries[j].enum_name)) {
// For pointers, we just duplicate the fonts for the original into the pointer entry.
// TODO ideally we would allow fonts to be different when a sequence is accessed by pointer, but how
// to supply this info?
final_seqdata[i] = final_seqdata[j];
break;
}
}
}
// Make sure we found an object file for all declared sequences
for (size_t i = 0; i < order.num_sequences; i++) {
if (final_seqdata[i] == NULL)
error("Could not find object file for sequence %lu : %s", i, order.entries[i].name);
}
// Write the sequence font table out
FILE *out = fopen(seq_font_tbl_out, "w");
if (out == NULL)
error("Failed to open output file \"%s\" for writing", seq_font_tbl_out);
fprintf(out,
// clang-format off
"\n"
".section .rodata" "\n"
"\n"
".global gSequenceFontTable" "\n"
"gSequenceFontTable:" "\n"
// clang-format on
);
// Write the 16-bit offsets for each sequence
for (size_t i = 0; i < order.num_sequences; i++) {
fprintf(out, " .half Fonts_%lu - gSequenceFontTable\n", i);
}
fprintf(out, "\n");
// Write the fonts for each sequence: number of fonts followed by an incbin for the rest.
for (size_t i = 0; i < order.num_sequences; i++) {
fprintf(out,
// clang-format off
"Fonts_%lu:" "\n"
" .byte %ld" "\n"
" .incbin \"%s\", 0x%X, %lu" "\n"
"\n",
// clang-format on
i, final_seqdata[i]->font_section_size, final_seqdata[i]->elf_path,
final_seqdata[i]->font_section_offset, final_seqdata[i]->font_section_size);
}
fprintf(out, ".balign 16\n");
fclose(out);
return EXIT_SUCCESS;
}
/* Common */
static int
@ -297,12 +576,13 @@ usage(const char *progname)
{
fprintf(stderr,
// clang-format off
"%s: Generate code tables for audio data" "\n"
"Usage:" "\n"
" %s --banks <samplebank_table.h> <samplebank xml files...>" "\n"
" %s --fonts <soundfont_table.h> <soundfont xml files...>" "\n",
"%s: Generate code tables for audio data" "\n"
"Usage:" "\n"
" %s --banks <samplebank_table.h> <samplebank xml files...>" "\n"
" %s --fonts <soundfont_table.h> <soundfont xml files...>" "\n"
" %s --sequences <seq_font_table.s> <sequence_order.in> <sequence object files...>" "\n",
// clang-format on
progname, progname, progname);
progname, progname, progname, progname);
return EXIT_FAILURE;
}
@ -336,6 +616,16 @@ main(int argc, char **argv)
int num_soundfont_files = argc - 3;
ret = tablegen_soundfonts(sf_hdr_out, soundfonts_paths, num_soundfont_files);
} else if (strequ(mode, "--sequences")) {
if (argc < 5)
return usage(progname);
const char *seq_font_tbl_out = argv[2];
const char *seq_order_path = argv[3];
const char **sequences_paths = (const char **)&argv[4];
int num_sequence_files = argc - 4;
ret = tablegen_sequences(seq_font_tbl_out, seq_order_path, sequences_paths, num_sequence_files);
} else {
return usage(progname);
}

View File

@ -303,7 +303,7 @@ def extract_sequences(audioseq_seg : memoryview, extracted_dir : str, version_in
disassemble_one_sequence(extracted_dir, version_info, soundfonts, seq_enum_names, *job)
dt = time.time() - t
print(f"Sequences extraction took {dt:.3f}")
print(f"Sequences extraction took {dt:.3f}s")
def extract_audio_for_version(version_info : GameVersionInfo, extracted_dir : str, read_xml : bool, write_xml : bool):
print("Setting up...")

View File

@ -122,7 +122,7 @@ class MMLArg:
class MMLArgBits(MMLArg):
def read(self, disas):
return disas.read_bits(type(self).NBITS)
return disas.bits_val
class ArgU8(MMLArg):
def read(self, disas):
@ -226,6 +226,17 @@ class ArgStereoConfig(ArgU8):
strong_rvrb_left = (self.value >> 0) & 1
return f"{type}, {strong_right}, {strong_left}, {strong_rvrb_right}, {strong_rvrb_left}"
class ArgEffectsConfig(ArgU8):
def emit(self, disas):
assert (self.value & 0b01000000) == 0
headset = str(bool((self.value >> 7) & 1)).upper()
type = (self.value >> 4) & 0b11
strong_right = (self.value >> 3) & 1
strong_left = (self.value >> 2) & 1
strong_rvrb_right = (self.value >> 1) & 1
strong_rvrb_left = (self.value >> 0) & 1
return f"{headset}, {type}, {strong_right}, {strong_left}, {strong_rvrb_right}, {strong_rvrb_left}"
class ArgPortamentoTime(ArgVar):
def read(self, disas):
if disas.portamento_is_special:
@ -368,6 +379,20 @@ class ArgUnkPtr(ArgAddr):
def analyze(self, disas):
disas.add_ref(self.value, SqSection.UNKNOWN)
class ArgLdSampleInst(MMLArg):
def read(self, disas):
return None
def emit(self, disas):
return "LDSAMPLE_INST"
class ArgLdSampleSfx(MMLArg):
def read(self, disas):
return None
def emit(self, disas):
return "LDSAMPLE_SFX"
#
# COMMANDS
#
@ -474,7 +499,7 @@ CMD_SPEC = (
MMLCmd(0xEC, 'vibreset', sections=(SqSection.CHAN,)),
MMLCmd(0xEB, 'fontinstr', sections=(SqSection.CHAN,), args=(ArgFontId, ArgInstr)),
MMLCmd(0xEA, 'stop', sections=(SqSection.CHAN,)),
MMLCmd(0xE9, 'notepri', sections=(SqSection.CHAN,), args=(ArgU8,)),
MMLCmd(0xE9, 'notepri', sections=(SqSection.CHAN,), args=(ArgU4x2,)),
MMLCmd(0xE8, 'params', sections=(SqSection.CHAN,), args=(ArgU8, ArgU8, ArgU8, ArgS8, ArgS8, ArgU8, ArgU8, ArgU8,)),
MMLCmd(0xE7, 'ldparams', sections=(SqSection.CHAN,), args=(ArgAddr,)),
MMLCmd(0xE6, 'samplebook', sections=(SqSection.CHAN,), args=(ArgU8,)),
@ -497,7 +522,7 @@ CMD_SPEC = (
MMLCmd(0xD3, 'bend', sections=(SqSection.CHAN,), args=(ArgS8,)),
MMLCmd(0xD2, 'sustain', sections=(SqSection.CHAN,), args=(ArgU8,)),
MMLCmd(0xD1, 'notealloc', sections=(SqSection.CHAN,), args=(ArgU8,)),
MMLCmd(0xD0, 'effects', sections=(SqSection.CHAN,), args=(ArgU8,)),
MMLCmd(0xD0, 'effects', sections=(SqSection.CHAN,), args=(ArgEffectsConfig,)),
MMLCmd(0xCF, 'stptrtoseq', sections=(SqSection.CHAN,), args=(ArgAddr,)),
MMLCmd(0xCE, 'ldptr', sections=(SqSection.CHAN,), args=(ArgAddr,)),
MMLCmd(0xCD, 'stopchan', sections=(SqSection.CHAN,), args=(ArgU8,)),
@ -529,20 +554,19 @@ CMD_SPEC = (
MMLCmd(0xB2, 'ldseqtoptr', sections=(SqSection.CHAN,), args=(ArgTblPtr,)),
MMLCmd(0xB1, 'freefilter', sections=(SqSection.CHAN,)),
MMLCmd(0xB0, 'ldfilter', sections=(SqSection.CHAN,), args=(ArgFilterPtr,)),
MMLCmd(0xAA, 'unk_AA', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)),
MMLCmd(0xA8, 'randptr', sections=(SqSection.CHAN,), args=(ArgU16, ArgU16,), version=(MMLVersion.MM,)),
MMLCmd(0xA7, 'unk_A7', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)),
MMLCmd(0xA6, 'unk_A6', sections=(SqSection.CHAN,), args=(ArgVar, ArgVar,), version=(MMLVersion.MM,)),
MMLCmd(0xA7, 'unk_A7', sections=(SqSection.CHAN,), args=(ArgHex8,), version=(MMLVersion.MM,)),
MMLCmd(0xA6, 'unk_A6', sections=(SqSection.CHAN,), args=(ArgU8, ArgS16,), version=(MMLVersion.MM,)),
MMLCmd(0xA5, 'unk_A5', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)),
MMLCmd(0xA4, 'unk_A4', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)),
MMLCmd(0xA4, 'unk_A4', sections=(SqSection.CHAN,), args=(ArgU8,), version=(MMLVersion.MM,)),
MMLCmd(0xA3, 'unk_A3', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)),
MMLCmd(0xA2, 'unk_A2', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)),
MMLCmd(0xA2, 'unk_A2', sections=(SqSection.CHAN,), args=(ArgS16,), version=(MMLVersion.MM,)),
MMLCmd(0xA1, 'unk_A1', sections=(SqSection.CHAN,), args=(), version=(MMLVersion.MM,)),
MMLCmd(0xA0, 'unk_A0', sections=(SqSection.CHAN,), args=(ArgVar,), version=(MMLVersion.MM,)),
MMLCmd(0xA0, 'unk_A0', sections=(SqSection.CHAN,), args=(ArgS16,), version=(MMLVersion.MM,)),
# argbits commands
MMLCmd(0x00, 'cdelay', sections=(SqSection.CHAN,), args=(ArgBits4,)),
MMLCmd(0x10, 'sample', sections=(SqSection.CHAN,), args=(ArgBits3, ArgAddr,)),
MMLCmd(0x18, 'sampleptr', sections=(SqSection.CHAN,), args=(ArgBits3, ArgAddr,)),
MMLCmd(0x10, 'ldsample', sections=(SqSection.CHAN,), args=(ArgLdSampleInst, IOPort3,)),
MMLCmd(0x18, 'ldsample', sections=(SqSection.CHAN,), args=(ArgLdSampleSfx, IOPort3,)),
MMLCmd(0x20, 'ldchan', sections=(SqSection.CHAN,), args=(ArgBits4, ArgChanPtr,)),
MMLCmd(0x30, 'stcio', sections=(SqSection.CHAN,), args=(ArgBits4, IOPort8,)),
MMLCmd(0x40, 'ldcio', sections=(SqSection.CHAN,), args=(ArgBits4, IOPort8,)),
@ -688,10 +712,11 @@ class SequenceDisassembler:
continue
# find number of lsbits that don't contribute to the command id
if len(cmd.args) > 0 and issubclass(cmd.args[0], MMLArgBits):
nbits = cmd.args[0].NBITS
else:
nbits = 0
nbits = 0
for arg in cmd.args:
if issubclass(arg, MMLArgBits):
assert nbits == 0, f"Multiple argbits-type arguments: {cmd}"
nbits = arg.NBITS
id = cmd.cmd_id
@ -700,6 +725,7 @@ class SequenceDisassembler:
for i in range(1 << nbits):
new = cmd
new.mask = (1 << nbits) - 1
old = cmds_s.get(id + i, None)
if old is not None:
assert old.mnemonic in ("notedvg", "notedv", "notevg"), (old.mnemonic, cmd.mnemonic)
@ -732,9 +758,6 @@ class SequenceDisassembler:
# general helpers
def read_bits(self, nbits):
return self.bits_val
def read_u8(self):
if self.hit_eof:
raise Exception()
@ -763,10 +786,7 @@ class SequenceDisassembler:
cmd = cmd[int(not self.large_notes)]
# part of the command byte may be an arg, save the value
mask = 0
if len(cmd.args) > 0 and issubclass(cmd.args[0], MMLArgBits):
mask = (1 << cmd.args[0].NBITS) - 1
self.bits_val = id & mask
self.bits_val = id & cmd.mask
return cmd