diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index adc4cf6cd..1c7cc6ad3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,9 @@ jobs: ref: 'symbols' - name: Install binutils - run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi libpng-dev + run: | + sudo apt update + sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi libpng-dev # build-essential and git are already installed # gcc-arm-none-eabi is only needed for the modern build # as an alternative to dkP @@ -53,6 +55,12 @@ jobs: run: | make -j${nproc} all syms + - name: Compare FireRed rev10 + env: + GAME_REVISION: 10 + run: | + make -j${nproc} all syms + - name: Compare LeafGreen env: GAME_VERSION: LEAFGREEN @@ -66,6 +74,13 @@ jobs: run: | make -j${nproc} all syms + - name: Compare LeafGreen rev10 + env: + GAME_VERSION: LEAFGREEN + GAME_REVISION: 10 + run: | + make -j${nproc} all syms + - name: Build Modern env: MODERN: 1 diff --git a/.gitignore b/.gitignore index fe1ba8224..c297f34d6 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,7 @@ prefabs.json .vscode/*.* *.js *.sym +build-cmake-*/ +.cache/ +CMakeLists.txt +compile_commands.json diff --git a/Makefile b/Makefile index 53353fc1b..8b454dbd1 100644 --- a/Makefile +++ b/Makefile @@ -108,7 +108,7 @@ AUTO_GEN_TARGETS := include make_tools.mk # Tool executables GFX := $(TOOLS_DIR)/gbagfx/gbagfx$(EXE) -AIF := $(TOOLS_DIR)/aif2pcm/aif2pcm$(EXE) +WAV2AGB := $(TOOLS_DIR)/wav2agb/wav2agb$(EXE) MID := $(TOOLS_DIR)/mid2agb/mid2agb$(EXE) SCANINC := $(TOOLS_DIR)/scaninc/scaninc$(EXE) PREPROC := $(TOOLS_DIR)/preproc/preproc$(EXE) @@ -129,7 +129,7 @@ MAKEFLAGS += --no-print-directory # Delete files that weren't built properly .DELETE_ON_ERROR: -ALL_BUILDS := firered firered_rev1 leafgreen leafgreen_rev1 +ALL_BUILDS := firered firered_rev1 firered_rev10 leafgreen leafgreen_rev1 leafgreen_rev10 ALL_BUILDS += $(ALL_BUILDS:%=%_modern) RULES_NO_SCAN += clean clean-assets tidy generated clean-generated @@ -224,13 +224,17 @@ tidy: # "friendly" target names for convenience sake firered: ; @$(MAKE) GAME_VERSION=FIRERED firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 +firered_switch: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=10 leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1 +leafgreen_switch: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=10 compare_firered: ; @$(MAKE) GAME_VERSION=FIRERED COMPARE=1 compare_firered_rev1: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 COMPARE=1 +compare_firered_switch: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=10 COMPARE=1 compare_leafgreen: ; @$(MAKE) GAME_VERSION=LEAFGREEN COMPARE=1 compare_leafgreen_rev1: ; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=1 COMPARE=1 +compare_leafgreen_switch:; @$(MAKE) GAME_VERSION=LEAFGREEN GAME_REVISION=10 COMPARE=1 firered_modern: ; @$(MAKE) GAME_VERSION=FIRERED MODERN=1 firered_rev1_modern: ; @$(MAKE) GAME_VERSION=FIRERED GAME_REVISION=1 MODERN=1 @@ -253,7 +257,7 @@ generated: $(AUTO_GEN_TARGETS) %.s: ; %.png: ; %.pal: ; -%.aif: ; +%.wav: ; %.1bpp: %.png ; $(GFX) $< $@ %.4bpp: %.png ; $(GFX) $< $@ @@ -348,16 +352,30 @@ endif $(OBJ_DIR)/sym_bss.ld: sym_bss.txt $(RAMSCRGEN) .bss $< ENGLISH > $@ +$(OBJ_DIR)/sym_bss_rev10.ld: sym_bss_rev10.txt + $(RAMSCRGEN) .bss $< ENGLISH > $@ + $(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@ +$(OBJ_DIR)/sym_common_rev10.ld: sym_common_rev10.txt $(C_OBJS) $(wildcard common_syms/*.txt) + $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@ + $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt $(RAMSCRGEN) ewram_data $< ENGLISH > $@ +$(OBJ_DIR)/sym_ewram_rev10.ld: sym_ewram_rev10.txt + $(RAMSCRGEN) ewram_data $< ENGLISH > $@ + # Linker script ifeq ($(MODERN),0) +ifeq ($(GAME_REVISION),10) +LD_SCRIPT := ld_script_rev10.ld +LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss_rev10.ld $(OBJ_DIR)/sym_common_rev10.ld $(OBJ_DIR)/sym_ewram_rev10.ld +else LD_SCRIPT := ld_script.ld LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld +endif else LD_SCRIPT := ld_script_modern.ld LD_SCRIPT_DEPS := diff --git a/README.md b/README.md index 0dc5dee72..819422657 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ It builds the following ROM images: * [**pokeleafgreen.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1617) `sha1: 574fa542ffebb14be69902d1d36f1ec0a4afd71e` * [**pokefirered_rev1.gba**](https://datomatic.no-intro.org/?page=show_record&s=23&n=1672) `sha1: dd5945db9b930750cb39d00c84da8571feebf417` * [**pokeleafgreen_rev1.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=1668) `sha1: 7862c67bdecbe21d1d69ce082ce34327e1c6ed5e` +* [**pokefirered_switch.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=x550) `sha1: baa452d0b24629dd7782cfc07a8984085dde1311` +* [**pokeleafgreen_switch.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=x551) `sha1: 62b9fc77549dbc67032eb6cbd0ea6ad3b825690f` To set up the repository, see [INSTALL.md](INSTALL.md). diff --git a/audio_rules.mk b/audio_rules.mk index 8eaed40b7..6b4e4afda 100644 --- a/audio_rules.mk +++ b/audio_rules.mk @@ -16,13 +16,13 @@ $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s $(MID_BUILDDIR)/%.o: $(MID_ASM_DIR)/%.s $(AS) $(ASFLAGS) -I sound -o $@ $< -# Compressed cries -$(CRY_BIN_DIR)/%.bin: $(CRY_SUBDIR)/%.aif - $(AIF) $< $@ --compress +$(CRY_BIN_DIR)/%.bin: $(CRY_SUBDIR)/%.wav +# NOTE: If using ipatix's High Quality Audio Mixer, remove "--no-pad" below. + $(WAV2AGB) -b -c -l 1 --no-pad $< $@ # Uncompressed sounds -$(SOUND_BIN_DIR)/%.bin: sound/%.aif - $(AIF) $< $@ +$(SOUND_BIN_DIR)/%.bin: sound/%.wav + $(WAV2AGB) -b $< $@ # For each line in midi.cfg, we do some trickery to convert it into a make rule for the `.mid` file described on the line # Data following the colon in said file corresponds to arguments passed into mid2agb diff --git a/config.mk b/config.mk index 48421930c..c07d31fc0 100644 --- a/config.mk +++ b/config.mk @@ -43,6 +43,10 @@ ifeq ($(GAME_REVISION),1) BUILD_NAME := $(BUILD_NAME)_rev1 endif +ifeq ($(GAME_REVISION),10) + BUILD_NAME := $(BUILD_NAME)_switch +endif + # Modern GCC ifeq ($(MODERN),1) BUILD_NAME := $(BUILD_NAME)_modern diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 3304833c7..9ae0ed9d1 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1664,7 +1664,11 @@ RisingWaterHitEffect: Move_EXPLOSION: loadspritegfx ANIM_TAG_EXPLOSION +.if REVISION >= 0xA + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 5 +.else createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 8 +.endif createvisualtask AnimTask_ShakeMon2, 5, 4, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 5, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 6, 8, 0, 40, 1 diff --git a/data/event_scripts.s b/data/event_scripts.s index 96bbd0349..88d75946a 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1030,7 +1030,7 @@ EventScript_ResetAllMapFlags:: setflag FLAG_HIDE_CINNABAR_SEAGALLOP setflag FLAG_HIDE_CINNABAR_POKECENTER_BILL setflag FLAG_HIDE_LORELEI_IN_HER_HOUSE - setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT + setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BLACK_BELT setflag FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER setflag FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY @@ -1038,7 +1038,7 @@ EventScript_ResetAllMapFlags:: setflag FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER setflag FLAG_HIDE_TWO_ISLAND_WOMAN setflag FLAG_HIDE_TWO_ISLAND_BEAUTY - setflag FLAG_HIDE_TWO_ISLAND_SUPER_NERD + setflag FLAG_HIDE_TWO_ISLAND_POKE_MANIAC setflag FLAG_HIDE_LOSTELLE_IN_HER_HOME setflag FLAG_HIDE_THREE_ISLAND_LONE_BIKER setflag FLAG_HIDE_FOUR_ISLAND_RIVAL @@ -1123,7 +1123,7 @@ EventScript_HandOverItem:: return .include "data/scripts/pokemon_league.inc" - .include "data/scripts/movement.inc" + .include "data/scripts/movement.inc" .include "data/scripts/flavor_text.inc" .include "data/scripts/questionnaire.inc" diff --git a/data/maps/CeladonCity_Condominiums_3F/map.json b/data/maps/CeladonCity_Condominiums_3F/map.json index 7b62fae53..cf128ed84 100644 --- a/data/maps/CeladonCity_Condominiums_3F/map.json +++ b/data/maps/CeladonCity_Condominiums_3F/map.json @@ -45,7 +45,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 4, "y": 10, "elevation": 3, diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json index 20405357b..f080da01d 100644 --- a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json +++ b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 3, "y": 5, "elevation": 3, diff --git a/data/maps/CinnabarIsland_Gym/map.json b/data/maps/CinnabarIsland_Gym/map.json index ba4ec7d86..21d6325e3 100644 --- a/data/maps/CinnabarIsland_Gym/map.json +++ b/data/maps/CinnabarIsland_Gym/map.json @@ -18,7 +18,7 @@ { "local_id": "LOCALID_QUINN", "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 25, "y": 11, "elevation": 3, @@ -62,7 +62,7 @@ { "local_id": "LOCALID_RAMON", "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 16, "y": 11, "elevation": 3, @@ -92,7 +92,7 @@ { "local_id": "LOCALID_DUSTY", "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 4, "y": 19, "elevation": 3, diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json index 415475d3c..462c7c7dd 100644 --- a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 5, "y": 4, "elevation": 3, diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json index 88f8487a9..de073e140 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json @@ -75,7 +75,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 23, "y": 13, "elevation": 3, diff --git a/data/maps/MtEmber_Exterior/map.json b/data/maps/MtEmber_Exterior/map.json index e92128251..ddf81679d 100644 --- a/data/maps/MtEmber_Exterior/map.json +++ b/data/maps/MtEmber_Exterior/map.json @@ -61,7 +61,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 22, "y": 35, "elevation": 3, diff --git a/data/maps/OneIsland_KindleRoad/map.json b/data/maps/OneIsland_KindleRoad/map.json index b23c862a1..88f6f2066 100644 --- a/data/maps/OneIsland_KindleRoad/map.json +++ b/data/maps/OneIsland_KindleRoad/map.json @@ -93,7 +93,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 9, "y": 53, "elevation": 3, @@ -107,7 +107,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 18, "y": 105, "elevation": 4, @@ -121,7 +121,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 16, "y": 64, "elevation": 3, @@ -135,7 +135,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 11, "y": 64, "elevation": 3, @@ -177,7 +177,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 8, "y": 68, "elevation": 3, @@ -191,7 +191,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 9, "y": 68, "elevation": 3, diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json index ea0c5a2e1..5eee49e52 100644 --- a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json +++ b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json @@ -45,7 +45,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 6, "y": 8, "elevation": 3, diff --git a/data/maps/OneIsland_PokemonCenter_1F/map.json b/data/maps/OneIsland_PokemonCenter_1F/map.json index d5a27329a..713c9cae1 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/map.json +++ b/data/maps/OneIsland_PokemonCenter_1F/map.json @@ -90,7 +90,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 7, "y": 4, "elevation": 3, @@ -99,7 +99,7 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "OneIsland_PokemonCenter_1F_EventScript_BattleGirl", + "script": "OneIsland_PokemonCenter_1F_EventScript_CrushGirl", "flag": "0" } ], diff --git a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc index 7ee71de1a..0907948f5 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc @@ -379,15 +379,15 @@ OneIsland_PokemonCenter_1F_EventScript_Hiker:: msgbox OneIsland_PokemonCenter_1F_Text_EnormousVolcanoOnIsland, MSGBOX_NPC end -OneIsland_PokemonCenter_1F_EventScript_BattleGirl:: +OneIsland_PokemonCenter_1F_EventScript_CrushGirl:: lock faceplayer - goto_if_set FLAG_SYS_CAN_LINK_WITH_RS, OneIsland_PokemonCenter_1F_EventScript_BattleGirlHoennLinked + goto_if_set FLAG_SYS_CAN_LINK_WITH_RS, OneIsland_PokemonCenter_1F_EventScript_CrushGirlHoennLinked msgbox OneIsland_PokemonCenter_1F_Text_WishICouldTradeWithBoyfriend release end -OneIsland_PokemonCenter_1F_EventScript_BattleGirlHoennLinked:: +OneIsland_PokemonCenter_1F_EventScript_CrushGirlHoennLinked:: msgbox OneIsland_PokemonCenter_1F_Text_TradedWithFarAwayBoyfriend release end diff --git a/data/maps/PokemonMansion_2F/map.json b/data/maps/PokemonMansion_2F/map.json index 89220add4..bf95cf290 100644 --- a/data/maps/PokemonMansion_2F/map.json +++ b/data/maps/PokemonMansion_2F/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 5, "y": 23, "elevation": 3, diff --git a/data/maps/PokemonMansion_3F/map.json b/data/maps/PokemonMansion_3F/map.json index 13c7ea294..259fe7df0 100644 --- a/data/maps/PokemonMansion_3F/map.json +++ b/data/maps/PokemonMansion_3F/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 7, "y": 13, "elevation": 3, diff --git a/data/maps/PokemonMansion_B1F/map.json b/data/maps/PokemonMansion_B1F/map.json index b68160cf6..57c0154d7 100644 --- a/data/maps/PokemonMansion_B1F/map.json +++ b/data/maps/PokemonMansion_B1F/map.json @@ -31,7 +31,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 20, "y": 25, "elevation": 3, diff --git a/data/maps/RockTunnel_1F/map.json b/data/maps/RockTunnel_1F/map.json index 8c56778c2..02fa844fb 100644 --- a/data/maps/RockTunnel_1F/map.json +++ b/data/maps/RockTunnel_1F/map.json @@ -101,7 +101,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 27, "y": 10, "elevation": 3, diff --git a/data/maps/RockTunnel_B1F/map.json b/data/maps/RockTunnel_B1F/map.json index b5dac6490..7aafaf7c3 100644 --- a/data/maps/RockTunnel_B1F/map.json +++ b/data/maps/RockTunnel_B1F/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 2, "y": 6, "elevation": 3, @@ -87,7 +87,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 23, "y": 23, "elevation": 3, @@ -115,7 +115,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 29, "y": 35, "elevation": 3, diff --git a/data/maps/Route10/map.json b/data/maps/Route10/map.json index 97d85418f..e15914dfe 100644 --- a/data/maps/Route10/map.json +++ b/data/maps/Route10/map.json @@ -56,7 +56,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 15, "y": 70, "elevation": 3, @@ -84,7 +84,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 13, "y": 44, "elevation": 3, diff --git a/data/maps/Route15/map.json b/data/maps/Route15/map.json index 2b33b5cc6..2380587e6 100644 --- a/data/maps/Route15/map.json +++ b/data/maps/Route15/map.json @@ -182,7 +182,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 39, "y": 7, "elevation": 3, @@ -196,7 +196,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 40, "y": 7, "elevation": 3, diff --git a/data/maps/Route4/map.json b/data/maps/Route4/map.json index ba9f45b37..9d00b28b6 100644 --- a/data/maps/Route4/map.json +++ b/data/maps/Route4/map.json @@ -84,7 +84,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 47, "y": 3, "elevation": 3, @@ -98,7 +98,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 50, "y": 3, "elevation": 3, diff --git a/data/maps/SaffronCity/map.json b/data/maps/SaffronCity/map.json index 77cba6c6d..97eeb4f22 100644 --- a/data/maps/SaffronCity/map.json +++ b/data/maps/SaffronCity/map.json @@ -236,7 +236,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 47, "y": 24, "elevation": 3, @@ -245,7 +245,7 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "SaffronCity_EventScript_BattleGirl", + "script": "SaffronCity_EventScript_CrushGirl", "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" } ], diff --git a/data/maps/SaffronCity_Dojo/map.json b/data/maps/SaffronCity_Dojo/map.json index 1575a3c0b..95cd83275 100644 --- a/data/maps/SaffronCity_Dojo/map.json +++ b/data/maps/SaffronCity_Dojo/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 11, "y": 10, "elevation": 3, @@ -31,7 +31,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 1, "y": 10, "elevation": 3, @@ -45,7 +45,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 11, "y": 8, "elevation": 3, @@ -59,7 +59,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 1, "y": 8, "elevation": 3, @@ -74,7 +74,7 @@ { "local_id": "LOCALID_KARATE_MASTER", "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 6, "y": 5, "elevation": 3, diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json index a1f3687f6..16f6334c9 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json @@ -18,7 +18,7 @@ { "local_id": "LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL", "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 7, "y": 13, "elevation": 3, @@ -27,7 +27,7 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirl", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirl", "flag": "0" }, { @@ -123,7 +123,7 @@ { "local_id": "LOCALID_TRAINER_FAN_CLUB_BLACK_BELT", "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 5, "y": 11, "elevation": 3, @@ -133,7 +133,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SaffronCity_PokemonTrainerFanClub_EventScript_BlackBelt", - "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT" + "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BLACK_BELT" }, { "type": "object", diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc index 76b0ace0f..f714cf2c5 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc @@ -155,38 +155,38 @@ SaffronCity_PokemonTrainerFanClub_EventScript_SetMemberPosForFirstMeeting:: call SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable end -SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirl:: +SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirl:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER1 special Script_BufferFanClubTrainerName - goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayerNotChampion + goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayerNotChampion specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer - goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayersFan + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayersFan specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub - goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyNonFan msgbox SaffronCity_PokemonTrainerFanClub_Text_WasYourFanNotAnymore release end -SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayersFan:: +SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayersFan:: specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub - goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyFan + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyFan msgbox SaffronCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou release end -SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyFan:: +SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyFan:: msgbox SaffronCity_PokemonTrainerFanClub_Text_IllAlwaysBelieveInYou release end -SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyNonFan:: +SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlOnlyNonFan:: msgbox SaffronCity_PokemonTrainerFanClub_Text_EveryonesYourFanButICantBe release end -SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayerNotChampion:: +SaffronCity_PokemonTrainerFanClub_EventScript_CrushGirlPlayerNotChampion:: msgbox SaffronCity_PokemonTrainerFanClub_Text_TrainersCoolWhenBattling release end diff --git a/data/maps/SevenIsland_SevaultCanyon/map.json b/data/maps/SevenIsland_SevaultCanyon/map.json index d0d1a0dca..5c4972e09 100644 --- a/data/maps/SevenIsland_SevaultCanyon/map.json +++ b/data/maps/SevenIsland_SevaultCanyon/map.json @@ -28,7 +28,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "graphics_id": "OBJ_EVENT_GFX_CRUSH_GIRL", "x": 13, "y": 43, "elevation": 3, @@ -294,7 +294,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 8, "y": 26, "elevation": 3, diff --git a/data/maps/SixIsland_RuinValley/map.json b/data/maps/SixIsland_RuinValley/map.json index 0f182a588..0f6c9d9bf 100644 --- a/data/maps/SixIsland_RuinValley/map.json +++ b/data/maps/SixIsland_RuinValley/map.json @@ -94,7 +94,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 21, "y": 29, "elevation": 5, diff --git a/data/maps/TwoIsland/map.json b/data/maps/TwoIsland/map.json index 41ae31f39..2f1f67ff0 100644 --- a/data/maps/TwoIsland/map.json +++ b/data/maps/TwoIsland/map.json @@ -79,7 +79,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 27, "y": 6, "elevation": 3, @@ -88,8 +88,8 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "TwoIsland_EventScript_SuperNerd", - "flag": "FLAG_HIDE_TWO_ISLAND_SUPER_NERD" + "script": "TwoIsland_EventScript_PokeManiac", + "flag": "FLAG_HIDE_TWO_ISLAND_POKE_MANIAC" }, { "type": "object", diff --git a/data/maps/TwoIsland/scripts.inc b/data/maps/TwoIsland/scripts.inc index 5e8a768d7..7d25acfe7 100644 --- a/data/maps/TwoIsland/scripts.inc +++ b/data/maps/TwoIsland/scripts.inc @@ -54,7 +54,7 @@ TwoIsland_EventScript_SetShopExpanded2:: TwoIsland_EventScript_SetShopExpanded3:: setvar VAR_MAP_SCENE_TWO_ISLAND, 4 - clearflag FLAG_HIDE_TWO_ISLAND_SUPER_NERD + clearflag FLAG_HIDE_TWO_ISLAND_POKE_MANIAC return TwoIsland_EventScript_Clerk:: @@ -192,7 +192,7 @@ TwoIsland_EventScript_Beauty:: release end -TwoIsland_EventScript_SuperNerd:: +TwoIsland_EventScript_PokeManiac:: msgbox TwoIsland_Text_BuyRareItemsHere, MSGBOX_NPC end diff --git a/data/maps/VictoryRoad_2F/map.json b/data/maps/VictoryRoad_2F/map.json index 968726ccc..753eb93bb 100644 --- a/data/maps/VictoryRoad_2F/map.json +++ b/data/maps/VictoryRoad_2F/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "graphics_id": "OBJ_EVENT_GFX_POKE_MANIAC", "x": 7, "y": 4, "elevation": 3, @@ -31,7 +31,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 20, "y": 11, "elevation": 4, diff --git a/data/maps/ViridianCity_Gym/map.json b/data/maps/ViridianCity_Gym/map.json index db4002398..916a821a0 100644 --- a/data/maps/ViridianCity_Gym/map.json +++ b/data/maps/ViridianCity_Gym/map.json @@ -17,7 +17,7 @@ "object_events": [ { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 10, "y": 2, "elevation": 3, @@ -45,7 +45,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 11, "y": 14, "elevation": 3, @@ -87,7 +87,7 @@ }, { "type": "object", - "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "graphics_id": "OBJ_EVENT_GFX_BLACK_BELT", "x": 3, "y": 11, "elevation": 3, diff --git a/data/scripts/fame_checker.inc b/data/scripts/fame_checker.inc index c15a88101..a84b23091 100644 --- a/data/scripts/fame_checker.inc +++ b/data/scripts/fame_checker.inc @@ -211,7 +211,7 @@ EventScript_LanceUnused:: release end -SaffronCity_EventScript_BattleGirlUnused:: +SaffronCity_EventScript_CrushGirlUnused:: lock faceplayer famechecker FAMECHECKER_LANCE, 1 @@ -219,7 +219,7 @@ SaffronCity_EventScript_BattleGirlUnused:: release end -SaffronCity_EventScript_BattleGirl:: +SaffronCity_EventScript_CrushGirl:: lock faceplayer famechecker FAMECHECKER_LANCE, 2 diff --git a/firered_switch.sha1 b/firered_switch.sha1 new file mode 100644 index 000000000..715fa7b9c --- /dev/null +++ b/firered_switch.sha1 @@ -0,0 +1 @@ +baa452d0b24629dd7782cfc07a8984085dde1311 pokefirered_switch.gba diff --git a/graphics/battle_anims/sprites/substitute.bin b/graphics/battle_anims/sprites/substitute.bin deleted file mode 100644 index d30c07d4e..000000000 Binary files a/graphics/battle_anims/sprites/substitute.bin and /dev/null differ diff --git a/graphics/battle_anims/sprites/substitute_back.png b/graphics/battle_anims/sprites/substitute_back.png new file mode 100644 index 000000000..8ea1f7ff8 Binary files /dev/null and b/graphics/battle_anims/sprites/substitute_back.png differ diff --git a/graphics/cave_transition/enter.pal b/graphics/cave_transition/enter.pal deleted file mode 100644 index fea15a176..000000000 --- a/graphics/cave_transition/enter.pal +++ /dev/null @@ -1,11 +0,0 @@ -JASC-PAL -0100 -8 -148 197 172 -16 16 16 -32 32 32 -49 49 49 -65 65 65 -82 82 82 -98 98 98 -115 115 115 diff --git a/graphics/cave_transition/exit.pal b/graphics/cave_transition/exit.pal deleted file mode 100644 index 09eb37624..000000000 --- a/graphics/cave_transition/exit.pal +++ /dev/null @@ -1,11 +0,0 @@ -JASC-PAL -0100 -8 -131 131 131 -148 148 148 -164 164 164 -180 180 180 -197 197 197 -213 213 213 -230 230 230 -255 255 255 diff --git a/graphics/object_events/pics/people/blackbelt.png b/graphics/object_events/pics/people/black_belt.png similarity index 100% rename from graphics/object_events/pics/people/blackbelt.png rename to graphics/object_events/pics/people/black_belt.png diff --git a/graphics/object_events/pics/people/battle_girl.png b/graphics/object_events/pics/people/crush_girl.png similarity index 100% rename from graphics/object_events/pics/people/battle_girl.png rename to graphics/object_events/pics/people/crush_girl.png diff --git a/graphics/object_events/pics/people/super_nerd.png b/graphics/object_events/pics/people/poke_maniac.png similarity index 100% rename from graphics/object_events/pics/people/super_nerd.png rename to graphics/object_events/pics/people/poke_maniac.png diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 2da92c4b4..39b952cd4 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -5,16 +5,10 @@ INTERFACEGFXDIR := graphics/interface PARTYMENUGFXDIR := graphics/party_menu BTLANMSPRGFXDIR := graphics/battle_anims/sprites UNUSEDGFXDIR := graphics/unused -UNKNOWNGFXDIR := graphics/unknown BATINTGFXDIR := graphics/battle_interface MASKSGFXDIR := graphics/battle_anims/masks BATTRANSGFXDIR := graphics/battle_transitions -TYPESGFXDIR := graphics/types -RAYQUAZAGFXDIR := graphics/rayquaza_scene -ROULETTEGFXDIR := graphics/roulette SLOTMACHINEGFXDIR := graphics/slot_machine -PSSGFXDIR := graphics/pokemon_storage -EVENTOBJGFXDIR := graphics/object_events FIELDEFFECTSGFXDIR := graphics/field_effects MISCGFXDIR := graphics/misc TEXTWINDOWGFXDIR := graphics/text_window @@ -22,7 +16,6 @@ TEACHYTVGFXDIR := graphics/teachy_tv SSANNEGFXDIR := graphics/ss_anne ITEMPCGFXDIR := graphics/item_pc TITLESCREENGFXDIR := graphics/title_screen -CREDITSGFXDIR := graphics/credits ITEMMENUGFXDIR := graphics/item_menu INTROGFXDIR := graphics/intro BATTLETERRAINGFXDIR := graphics/battle_terrain @@ -33,9 +26,6 @@ NAMINGGFXDIR := graphics/naming_screen WALLPAPERGFXDIR := graphics/pokemon_storage/wallpapers JPCONTESTGFXDIR := graphics/contest/japanese -types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark -contest_types := cool beauty cute smart tough - CASTFORMGFXDIR := graphics/pokemon/castform $(CASTFORMGFXDIR)/front.4bpp: $(CASTFORMGFXDIR)/normal/front.4bpp \ $(CASTFORMGFXDIR)/sunny/front.4bpp \ @@ -94,22 +84,12 @@ $(FONTGFXDIR)/braille.fwjpnfont: $(FONTGFXDIR)/braille.png $(FONTGFXDIR)/japanese_bold.fwjpnfont: $(FONTGFXDIR)/japanese_bold.png $(GFX) $< $@ -graphics/title_screen/pokemon_logo.gbapal: %.gbapal: %.pal - $(GFX) $< $@ -num_colors 224 - graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 63 -Wnum_tiles -$(MISCGFXDIR)/japanese_hof.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 29 -Wnum_tiles - $(MISCGFXDIR)/markings2.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 25 -Wnum_tiles -$(INTERFACEGFXDIR)/menu.gbapal: $(INTERFACEGFXDIR)/menu_0.gbapal \ - $(INTERFACEGFXDIR)/menu_1.gbapal - @cat $^ >$@ - $(BTLANMSPRGFXDIR)/ice_cube.4bpp: $(BTLANMSPRGFXDIR)/ice_cube_0.4bpp \ $(BTLANMSPRGFXDIR)/ice_cube_1.4bpp \ $(BTLANMSPRGFXDIR)/ice_cube_2.4bpp \ @@ -203,208 +183,6 @@ $(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png $(PARTYMENUGFXDIR)/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 62 -Wnum_tiles -$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp) - @cat $^ >$@ - -$(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \ - $(TYPESGFXDIR)/move_types_2.gbapal \ - $(TYPESGFXDIR)/move_types_3.gbapal - @cat $^ >$@ - -$(INTERFACEGFXDIR)/bag_screen.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 53 -Wnum_tiles - -$(RAYQUAZAGFXDIR)/rayquaza.8bpp: %.8bpp: %.png - $(GFX) $< $@ -num_tiles 227 -Wnum_tiles - -$(RAYQUAZAGFXDIR)/overcast.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 313 -Wnum_tiles - -$(RAYQUAZAGFXDIR)/rayquaza_fly1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 124 -Wnum_tiles - -$(RAYQUAZAGFXDIR)/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/rayquaza_tail.4bpp - cp $< $@ - head -c 12 /dev/zero >> $@ - -$(RAYQUAZAGFXDIR)/chase_streaks.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 19 -Wnum_tiles - -$(RAYQUAZAGFXDIR)/rayquaza_chase.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 155 -Wnum_tiles - -graphics/picture_frame/frame5.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 86 -Wnum_tiles - -$(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \ - $(ROULETTEGFXDIR)/tailow.4bpp - @cat $^ >$@ - -$(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ - $(ROULETTEGFXDIR)/azurill.4bpp \ - $(ROULETTEGFXDIR)/skitty.4bpp \ - $(ROULETTEGFXDIR)/makuhita.4bpp - @cat $^ >$@ - -$(UNUSEDGFXDIR)/intro_birch_beauty.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 822 -Wnum_tiles - -$(PSSGFXDIR)/forest_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 55 -Wnum_tiles - -$(PSSGFXDIR)/forest.4bpp: $(PSSGFXDIR)/forest_frame.4bpp $(PSSGFXDIR)/forest_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/city_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 52 -Wnum_tiles - -$(PSSGFXDIR)/city.4bpp: $(PSSGFXDIR)/city_frame.4bpp $(PSSGFXDIR)/city_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/desert.4bpp: $(PSSGFXDIR)/desert_frame.4bpp $(PSSGFXDIR)/desert_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/savanna_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 45 -Wnum_tiles - -$(PSSGFXDIR)/savanna_bg.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 23 -Wnum_tiles - -$(PSSGFXDIR)/savanna.4bpp: $(PSSGFXDIR)/savanna_frame.4bpp $(PSSGFXDIR)/savanna_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/crag_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 49 -Wnum_tiles - -$(PSSGFXDIR)/crag.4bpp: $(PSSGFXDIR)/crag_frame.4bpp $(PSSGFXDIR)/crag_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/volcano_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 56 -Wnum_tiles - -$(PSSGFXDIR)/volcano.4bpp: $(PSSGFXDIR)/volcano_frame.4bpp $(PSSGFXDIR)/volcano_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/snow_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 57 -Wnum_tiles - -$(PSSGFXDIR)/snow.4bpp: $(PSSGFXDIR)/snow_frame.4bpp $(PSSGFXDIR)/snow_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/cave_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 55 -Wnum_tiles - -$(PSSGFXDIR)/cave.4bpp: $(PSSGFXDIR)/cave_frame.4bpp $(PSSGFXDIR)/cave_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/beach_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 46 -Wnum_tiles - -$(PSSGFXDIR)/beach_bg.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 23 -Wnum_tiles - -$(PSSGFXDIR)/beach.4bpp: $(PSSGFXDIR)/beach_frame.4bpp $(PSSGFXDIR)/beach_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/seafloor_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 54 -Wnum_tiles - -$(PSSGFXDIR)/seafloor.4bpp: $(PSSGFXDIR)/seafloor_frame.4bpp $(PSSGFXDIR)/seafloor_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/river_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 51 -Wnum_tiles - -$(PSSGFXDIR)/river_bg.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 11 -Wnum_tiles - -$(PSSGFXDIR)/river.4bpp: $(PSSGFXDIR)/river_frame.4bpp $(PSSGFXDIR)/river_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/sky_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 45 -Wnum_tiles - -$(PSSGFXDIR)/sky.4bpp: $(PSSGFXDIR)/sky_frame.4bpp $(PSSGFXDIR)/sky_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/polkadot_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 54 -Wnum_tiles - -$(PSSGFXDIR)/polkadot.4bpp: $(PSSGFXDIR)/polkadot_frame.4bpp $(PSSGFXDIR)/polkadot_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/pokecenter_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 35 -Wnum_tiles - -$(PSSGFXDIR)/pokecenter.4bpp: $(PSSGFXDIR)/pokecenter_frame.4bpp $(PSSGFXDIR)/pokecenter_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/machine_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 33 -Wnum_tiles - -$(PSSGFXDIR)/machine.4bpp: $(PSSGFXDIR)/machine_frame.4bpp $(PSSGFXDIR)/machine_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/plain_frame.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 18 -Wnum_tiles - -$(PSSGFXDIR)/plain.4bpp: $(PSSGFXDIR)/plain_frame.4bpp $(PSSGFXDIR)/plain_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 57 -Wnum_tiles - -$(PSSGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 57 -Wnum_tiles - -$(PSSGFXDIR)/zigzagoon.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/zigzagoon_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/screen.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/screen_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/horizontal.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/horizontal_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/diagonal.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/diagonal_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/block.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/block_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/ribbon.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/ribbon_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/pokecenter2.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/pokecenter2_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/frame.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/frame_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/blank.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/blank_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/circles.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/circles_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/azumarill.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/azumarill_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/pikachu.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/pikachu_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/legendary.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/legendary_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/dusclops.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/dusclops_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/ludicolo.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/ludicolo_bg.4bpp - @cat $^ >$@ - -$(PSSGFXDIR)/whiscash.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/whiscash_bg.4bpp - @cat $^ >$@ - $(FIELDEFFECTSGFXDIR)/pics/underwater_bubbles.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 @@ -425,24 +203,6 @@ $(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png graphics/tm_case/tm_case.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 91 -Wnum_tiles - -$(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 53 -Wnum_tiles - -$(PKNAVGFXDIR)/outline.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 53 -Wnum_tiles - -$(PKNAVGFXDIR)/ui_matchcall.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 13 -Wnum_tiles - -$(INTERFACEGFXDIR)/region_map.8bpp: %.8bpp: %.png - $(GFX) $< $@ -num_tiles 232 -Wnum_tiles - -$(INTERFACEGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png - $(GFX) $< $@ -num_tiles 233 -Wnum_tiles - -$(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp - @cat $^ >$@ $(FAMECHECKERGFXDIR)/spinning_pokeball.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 15 -Wnum_tiles diff --git a/include/AgbRfu_LinkManager.h b/include/AgbRfu_LinkManager.h index 53c623e5a..6cf18d6c7 100644 --- a/include/AgbRfu_LinkManager.h +++ b/include/AgbRfu_LinkManager.h @@ -23,8 +23,13 @@ #define PCSWITCH_FORCE_SP_START 0x09 // Period for which parent-child switching search specified +#if REVISION >= 0xA +#define PCSWITCH_ALL_PERIOD 180 // Entire cycle 180 frames +#define PCSWITCH_SP_PERIOD 65 // Child period 40 frames +#else #define PCSWITCH_ALL_PERIOD 180 // Entire cycle 180 frames #define PCSWITCH_SP_PERIOD 40 // Child period 40 frames +#endif // Error code returned by Link Manager API (rfu_LMAN_...return value of function) #define LMAN_ERROR_MANAGER_BUSY 1 // Link Manager is already running. @@ -165,6 +170,9 @@ typedef struct linkManagerTag /* 0x014 */ u16 param[2]; /* 0x018 */ u16 NI_failCounter_limit; /* 0x01a */ u16 connect_period; +#if REVISION >= 0xA + /* 0x01c */ u16 connect_period_initial; // pushes next offsets up by 2 +#endif /* 0x01c */ u16 pcswitch_period_bak; /* 0x01e */ u16 work; /* 0x020 */ u16 *acceptable_serialNo_list; @@ -190,6 +198,10 @@ u8 rfu_LMAN_setLinkRecovery(u8 enable_flag, u16 recovery_period); void rfu_LMAN_manager_entity(u32 rand); void rfu_LMAN_syncVBlank(void); u8 rfu_LMAN_initializeManager(void (*LMAN_callback_p)(u8, u8), void (*MSC_callback_p)(u16)); +#if REVISION >= 0xA +void rfu_LMAN_forceChangeSP(bool8 child); +#else void rfu_LMAN_forceChangeSP(void); +#endif #endif //GUARD_LINKMANAGER_H diff --git a/include/config.h b/include/config.h index 956858e2d..db131b271 100644 --- a/include/config.h +++ b/include/config.h @@ -8,12 +8,17 @@ // still has them in the ROM. This is because the developers forgot // to define NDEBUG before release, however this has been changed as // Ruby's actual debug build does not use the AGBPrint features. -// #define NDEBUG + +// Revision 10 disabled asserts in some other way, comment out NDEBUG there to bring them back. +#if REVISION >= 0xA +#define NDEBUG +#endif // Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading // to the inclusion of asserts in the retail ROM. +// Revision 10 disabled asserts in some other way, but isagbprint/etc is still present there. -#ifndef NDEBUG +#if !defined(NDEBUG) || REVISION >= 0xA #define PRETTY_PRINT_OFF (0) #define PRETTY_PRINT_MINI_PRINTF (1) #define PRETTY_PRINT_LIBC (2) diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 31e2272d6..9d8c514f9 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -27,7 +27,7 @@ #define OBJ_EVENT_GFX_SITTING_BOY 21 #define OBJ_EVENT_GFX_LASS 22 #define OBJ_EVENT_GFX_WOMAN_1 23 -#define OBJ_EVENT_GFX_BATTLE_GIRL 24 +#define OBJ_EVENT_GFX_CRUSH_GIRL 24 #define OBJ_EVENT_GFX_MAN 25 #define OBJ_EVENT_GFX_ROCKER 26 #define OBJ_EVENT_GFX_FAT_MAN 27 @@ -55,9 +55,9 @@ #define OBJ_EVENT_GFX_ROCKET_M 49 #define OBJ_EVENT_GFX_ROCKET_F 50 #define OBJ_EVENT_GFX_GBA_KID 51 -#define OBJ_EVENT_GFX_SUPER_NERD 52 +#define OBJ_EVENT_GFX_POKE_MANIAC 52 #define OBJ_EVENT_GFX_BIKER 53 -#define OBJ_EVENT_GFX_BLACKBELT 54 +#define OBJ_EVENT_GFX_BLACK_BELT 54 #define OBJ_EVENT_GFX_SCIENTIST 55 #define OBJ_EVENT_GFX_HIKER 56 #define OBJ_EVENT_GFX_FISHER 57 diff --git a/include/constants/flags.h b/include/constants/flags.h index 24e44dd9e..d800adf1e 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -121,7 +121,7 @@ #define FLAG_HIDE_UNION_ROOM_PLAYER_7 0x069 #define FLAG_HIDE_UNION_ROOM_PLAYER_8 0x06A #define FLAG_HIDE_CINNABAR_SEAGALLOP 0x06B -#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT 0x06C +#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACK_BELT 0x06C #define FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER 0x06D #define FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN 0x06E #define FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY 0x06F @@ -138,7 +138,7 @@ #define FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST 0x07A #define FLAG_HIDE_TWO_ISLAND_WOMAN 0x07B #define FLAG_HIDE_TWO_ISLAND_BEAUTY 0x07C -#define FLAG_HIDE_TWO_ISLAND_SUPER_NERD 0x07D +#define FLAG_HIDE_TWO_ISLAND_POKE_MANIAC 0x07D #define FLAG_HIDE_THREE_ISLAND_ANTIBIKERS 0x07E #define FLAG_0x07F 0x07F #define FLAG_HIDE_ROUTE_16_SNORLAX 0x080 diff --git a/include/constants/menu.h b/include/constants/menu.h index f6ac73efb..7c36f3605 100644 --- a/include/constants/menu.h +++ b/include/constants/menu.h @@ -111,4 +111,14 @@ #define STDSTRING_TM_CASE 27 #define STDSTRING_BERRY_POUCH 28 +enum +{ + PSA_MON_ATTR_TMHM_X_POS, + PSA_MON_ATTR_TMHM_Y_POS, + PSA_MON_ATTR_Y_OFFSET, + PSA_MON_ATTR_ITEM_X_POS, + PSA_MON_ATTR_ITEM_Y_POS, + PSA_MON_ATTR_COUNT +}; + #endif //GUARD_CONSTANTS_MENU_H diff --git a/include/constants/pokemon_special_anim.h b/include/constants/pokemon_special_anim.h new file mode 100644 index 000000000..ef86ed638 --- /dev/null +++ b/include/constants/pokemon_special_anim.h @@ -0,0 +1,27 @@ +#ifndef GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H +#define GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H + +enum +{ + PSA_TEXT_ITEM_USED, + PSA_TEXT_LEVEL_ELEVATED, + PSA_TEXT_FORGET_1, + PSA_TEXT_FORGET_2_AND, + PSA_TEXT_FORGET_POOF, + PSA_TEXT_FORGET_FORGOT, + PSA_TEXT_FORGET_AND, + PSA_TEXT_MACHINE_SET, + PSA_TEXT_HUH, + PSA_TEXT_LEARNED_MOVE +}; + +enum +{ + PSA_ITEM_ANIM_TYPE_DEFAULT, + PSA_ITEM_ANIM_TYPE_POTION, + PSA_ITEM_ANIM_TYPE_UNUSED1, + PSA_ITEM_ANIM_TYPE_UNUSED2, + PSA_ITEM_ANIM_TYPE_TMHM +}; + +#endif // GUARD_CONSTANTS_POKEMON_SPECIAL_ANIM_H diff --git a/include/constants/union_room.h b/include/constants/union_room.h index 4016150f0..c3f719dbd 100644 --- a/include/constants/union_room.h +++ b/include/constants/union_room.h @@ -7,9 +7,10 @@ // exceed RFU_CHILD_MAX (4), for a total of 5 including the player. #define MAX_UNION_ROOM_LEADERS 8 -#define UNION_ROOM_SPAWN_NONE 0 -#define UNION_ROOM_SPAWN_IN 1 -#define UNION_ROOM_SPAWN_OUT 2 +#define UNION_ROOM_SPAWN_NONE 0 +#define UNION_ROOM_SPAWN_IN 1 +#define UNION_ROOM_SPAWN_OUT 2 +#define UNION_ROOM_SPAWN_OUT_SOON 3 // Equivalent to SPAWN_OUT in revision 10 - probably SPAWN_OUT means disconnected in a "connection reset" way? #define UNION_ROOM_MAX_LEVEL 30 diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h index de14b289e..9c79e03e8 100644 --- a/include/gba/isagbprint.h +++ b/include/gba/isagbprint.h @@ -9,7 +9,7 @@ #define MGBA_LOG_INFO (3) #define MGBA_LOG_DEBUG (4) -#ifdef NDEBUG +#if defined(NDEBUG) && !(REVISION >= 0xA) #define DebugPrintf(pBuf, ...) #define DebugPrintfLevel(level, pBuf, ...) #define MgbaOpen() diff --git a/include/graphics.h b/include/graphics.h index 4a4d86250..069924f78 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3936,8 +3936,8 @@ extern const u32 gBlankGfxCompressed[]; extern const u32 gInterfaceGfx_HPNumbers[]; extern const u32 gGhostFrontPic[]; extern const u32 gGhostPalette[]; -extern const u32 gSubstituteDollGfx[]; -extern const u32 gSubstituteDollTilemap[]; +extern const u32 gSubstituteDollFrontGfx[]; +extern const u32 gSubstituteDollBackGfx[]; extern const u32 gSubstituteDollPal[]; // ice diff --git a/include/librfu.h b/include/librfu.h index 6981ba2bc..fa57ac4a2 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -4,7 +4,11 @@ #include "global.h" #include "main.h" +#if REVISION >= 0xA +#define LIBRFU_VERSION 1028 +#else #define LIBRFU_VERSION 1024 +#endif /* TODOs: * - documentation diff --git a/include/link_rfu.h b/include/link_rfu.h index affbebe3d..12412fb97 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -294,6 +294,7 @@ bool32 WaitRfuState(bool32 force); bool32 HasTrainerLeftPartnersList(u16 trainerId, const u8 *trainerName); void SendRfuStatusToPartner(u8 status, u16 trainerId, const u8 *name); u32 WaitSendRfuStatusToPartner(u16 trainerId, const u8 *name); +s32 GetJoinGroupStatus(void); void SetHostRfuGameData(u8 activity, u32 partnerInfo, bool32 startedActivity); void InitializeRfuLinkManager_LinkLeader(u32 availSlots); void RequestDisconnectSlotByTrainerNameAndId(const u8 *trainerName, u16 trainerId); @@ -322,6 +323,17 @@ void RfuSetNormalDisconnectMode(void); void SetUnionRoomChatPlayerData(u32 numPlayers); void ClearRecvCommands(void); +void PkmnStrToASCII(u8 *dest, const u8 *src); +void ASCIIToPkmnStr(u8 *dest, const u8 *src); + +#if REVISION >= 0xA +u16 RfuGetErrorInfo(void); +void LinkRfu_ForceChangeSpParent(void); +void DestroyTask_RfuReconnectWithParent(void); +void RfuReloadSave(void); +void RfuSoftReset(void); +#endif + #include "mystery_gift_server.h" extern const struct MysteryGiftServerCmd gServerScript_ClientCanceledCard[]; diff --git a/include/menu.h b/include/menu.h index b0dc232fb..e176b6244 100644 --- a/include/menu.h +++ b/include/menu.h @@ -31,8 +31,8 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); bool8 IsBlendTaskActive(void); -u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2); -s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2); +u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId); +s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId); // list_menu void ListMenu_LoadMonIconPalette(u8 palOffset, u16 speciesId); diff --git a/include/overworld.h b/include/overworld.h index 56e656f07..b4f56bee6 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -180,6 +180,10 @@ void UpdateEscapeWarp(s16 x, s16 y); bool8 SetDiveWarpEmerge(u16 x, u16 y); bool8 SetDiveWarpDive(u16 x, u16 y); +#if REVISION >= 0xA +void ClearFieldCallback(void); +#endif + extern u16 *gBGTilemapBuffers1; extern u16 *gBGTilemapBuffers2; extern u16 *gBGTilemapBuffers3; diff --git a/include/pokemon_special_anim_internal.h b/include/pokemon_special_anim_internal.h index 707c40002..40ae79e6e 100644 --- a/include/pokemon_special_anim_internal.h +++ b/include/pokemon_special_anim_internal.h @@ -3,19 +3,6 @@ #include "pokemon_special_anim.h" -enum -{ - PSA_TEXT_ITEM_USED, - PSA_TEXT_LEVEL_ELEVATED, - PSA_TEXT_FORGET_1, - PSA_TEXT_FORGET_2_AND, - PSA_TEXT_FORGET_POOF, - PSA_TEXT_FORGET_FORGOT, - PSA_TEXT_FORGET_AND, - PSA_TEXT_MACHINE_SET, - PSA_TEXT_HUH, - PSA_TEXT_LEARNED_MOVE -}; struct PokemonSpecialAnimScene { diff --git a/include/sloopsvc.h b/include/sloopsvc.h new file mode 100644 index 000000000..1ba777853 --- /dev/null +++ b/include/sloopsvc.h @@ -0,0 +1,36 @@ +#ifndef GUARD_SLOOPSVC_H +#define GUARD_SLOOPSVC_H + +#if REVISION >= 0xA + +#define SVC4B_EXIT_EARLY (1 << 0) +#define SVC4B_RESEED_RNG (1 << 1) + +void svc_40(void); +void svc_41(void); + +void svc_47(void); +void svc_42(void); +u32 svc_49(void); +void svc_45_rfu_link_status(void); +u32 svc_4a(void); +void svc_43(u16 pid); +void svc_44(void); +u32 svc_53(void); +u32 svc_51(void); +u32 svc_4b(void); +void svc_WriteSector(u8 sector, u8* data); +void svc_ReplaceSector(u8 sector, u8* data); +void svc_FinishSave(void); +u32 svc_CommsAllowedByParentalControls(void); +u32 svc_BadWordCheck(u8* str); +void svc_4f(u32 arg); +u32 svc_50(void); +void svc_SetSaveBlock2(struct SaveBlock2* saveBlock2); +void svc_stubbed(void); +void svc_SetStarter(u32 species); +void svc_SetActivity(u32 activity); +void svc_IncrementLinkError(void); + +#endif +#endif \ No newline at end of file diff --git a/ld_script.ld b/ld_script.ld index 3bbcfc8fa..9a4b45031 100644 --- a/ld_script.ld +++ b/ld_script.ld @@ -64,6 +64,7 @@ SECTIONS { src/window_8bpp.o(.text); src/text.o(.text); src/sprite.o(.text); + src/sloopsvc.o(.text); src/string_util.o(.text); src/link.o(.text); src/multiboot.o(.text); @@ -405,6 +406,7 @@ SECTIONS { src/text.o(.rodata); src/sprite.o(.rodata); src/bg_regs.o(.rodata); + src/sloopsvc.o(.rodata); src/string_util.o(.rodata); src/link.o(.rodata); src/main_menu.o(.rodata); @@ -622,8 +624,8 @@ SECTIONS { sound/songs/midi/se_pc_off.o(.rodata); sound/songs/midi/se_pc_on.o(.rodata); sound/songs/midi/se_select.o(.rodata); - sound/songs/se_win_open.o(.rodata); - sound/songs/se_wall_hit.o(.rodata); + sound/songs/midi/se_win_open.o(.rodata); + sound/songs/midi/se_wall_hit.o(.rodata); sound/songs/midi/se_rs_door.o(.rodata); sound/songs/midi/se_exit.o(.rodata); sound/songs/midi/se_ledge.o(.rodata); @@ -717,8 +719,8 @@ SECTIONS { sound/songs/midi/se_applause.o(.rodata); sound/songs/midi/se_vend.o(.rodata); sound/songs/midi/se_orb.o(.rodata); - sound/songs/se_dex_scroll.o(.rodata); - sound/songs/se_dex_page.o(.rodata); + sound/songs/midi/se_dex_scroll.o(.rodata); + sound/songs/midi/se_dex_page.o(.rodata); sound/songs/midi/se_pokenav_on.o(.rodata); sound/songs/midi/se_pokenav_off.o(.rodata); sound/songs/midi/se_dex_search.o(.rodata); @@ -727,151 +729,151 @@ SECTIONS { sound/songs/midi/se_ball_tray_ball.o(.rodata); sound/songs/midi/se_ball_tray_exit.o(.rodata); sound/songs/midi/se_glass_flute.o(.rodata); - sound/songs/se_m_thunderbolt.o(.rodata); - sound/songs/se_m_thunderbolt2.o(.rodata); - sound/songs/se_m_harden.o(.rodata); - sound/songs/se_m_nightmare.o(.rodata); - sound/songs/se_m_vital_throw.o(.rodata); - sound/songs/se_m_vital_throw2.o(.rodata); - sound/songs/se_m_bubble.o(.rodata); - sound/songs/se_m_bubble2.o(.rodata); - sound/songs/se_m_bubble3.o(.rodata); - sound/songs/se_m_rain_dance.o(.rodata); + sound/songs/midi/se_m_thunderbolt.o(.rodata); + sound/songs/midi/se_m_thunderbolt2.o(.rodata); + sound/songs/midi/se_m_harden.o(.rodata); + sound/songs/midi/se_m_nightmare.o(.rodata); + sound/songs/midi/se_m_vital_throw.o(.rodata); + sound/songs/midi/se_m_vital_throw2.o(.rodata); + sound/songs/midi/se_m_bubble.o(.rodata); + sound/songs/midi/se_m_bubble2.o(.rodata); + sound/songs/midi/se_m_bubble3.o(.rodata); + sound/songs/midi/se_m_rain_dance.o(.rodata); sound/songs/midi/se_m_cut.o(.rodata); - sound/songs/se_m_string_shot.o(.rodata); - sound/songs/se_m_string_shot2.o(.rodata); - sound/songs/se_m_rock_throw.o(.rodata); + sound/songs/midi/se_m_string_shot.o(.rodata); + sound/songs/midi/se_m_string_shot2.o(.rodata); + sound/songs/midi/se_m_rock_throw.o(.rodata); sound/songs/midi/se_m_gust.o(.rodata); sound/songs/midi/se_m_gust2.o(.rodata); sound/songs/midi/se_m_double_slap.o(.rodata); - sound/songs/se_m_double_team.o(.rodata); + sound/songs/midi/se_m_double_team.o(.rodata); sound/songs/midi/se_m_razor_wind.o(.rodata); - sound/songs/se_m_icy_wind.o(.rodata); - sound/songs/se_m_thunder_wave.o(.rodata); + sound/songs/midi/se_m_icy_wind.o(.rodata); + sound/songs/midi/se_m_thunder_wave.o(.rodata); sound/songs/midi/se_m_comet_punch.o(.rodata); sound/songs/midi/se_m_mega_kick.o(.rodata); sound/songs/midi/se_m_mega_kick2.o(.rodata); - sound/songs/se_m_crabhammer.o(.rodata); + sound/songs/midi/se_m_crabhammer.o(.rodata); sound/songs/midi/se_m_jump_kick.o(.rodata); - sound/songs/se_m_flame_wheel.o(.rodata); - sound/songs/se_m_flame_wheel2.o(.rodata); - sound/songs/se_m_flamethrower.o(.rodata); + sound/songs/midi/se_m_flame_wheel.o(.rodata); + sound/songs/midi/se_m_flame_wheel2.o(.rodata); + sound/songs/midi/se_m_flamethrower.o(.rodata); sound/songs/midi/se_m_fire_punch.o(.rodata); - sound/songs/se_m_toxic.o(.rodata); - sound/songs/se_m_sacred_fire.o(.rodata); - sound/songs/se_m_sacred_fire2.o(.rodata); - sound/songs/se_m_ember.o(.rodata); + sound/songs/midi/se_m_toxic.o(.rodata); + sound/songs/midi/se_m_sacred_fire.o(.rodata); + sound/songs/midi/se_m_sacred_fire2.o(.rodata); + sound/songs/midi/se_m_ember.o(.rodata); sound/songs/midi/se_m_take_down.o(.rodata); - sound/songs/se_m_blizzard.o(.rodata); - sound/songs/se_m_blizzard2.o(.rodata); + sound/songs/midi/se_m_blizzard.o(.rodata); + sound/songs/midi/se_m_blizzard2.o(.rodata); sound/songs/midi/se_m_scratch.o(.rodata); sound/songs/midi/se_m_vicegrip.o(.rodata); sound/songs/midi/se_m_wing_attack.o(.rodata); sound/songs/midi/se_m_fly.o(.rodata); sound/songs/midi/se_m_sand_attack.o(.rodata); sound/songs/midi/se_m_razor_wind2.o(.rodata); - sound/songs/se_m_bite.o(.rodata); + sound/songs/midi/se_m_bite.o(.rodata); sound/songs/midi/se_m_headbutt.o(.rodata); - sound/songs/se_m_surf.o(.rodata); - sound/songs/se_m_hydro_pump.o(.rodata); - sound/songs/se_m_whirlpool.o(.rodata); + sound/songs/midi/se_m_surf.o(.rodata); + sound/songs/midi/se_m_hydro_pump.o(.rodata); + sound/songs/midi/se_m_whirlpool.o(.rodata); sound/songs/midi/se_m_horn_attack.o(.rodata); sound/songs/midi/se_m_tail_whip.o(.rodata); - sound/songs/se_m_mist.o(.rodata); - sound/songs/se_m_poison_powder.o(.rodata); + sound/songs/midi/se_m_mist.o(.rodata); + sound/songs/midi/se_m_poison_powder.o(.rodata); sound/songs/midi/se_m_bind.o(.rodata); - sound/songs/se_m_dragon_rage.o(.rodata); - sound/songs/se_m_sing.o(.rodata); - sound/songs/se_m_perish_song.o(.rodata); + sound/songs/midi/se_m_dragon_rage.o(.rodata); + sound/songs/midi/se_m_sing.o(.rodata); + sound/songs/midi/se_m_perish_song.o(.rodata); sound/songs/midi/se_m_pay_day.o(.rodata); - sound/songs/se_m_dig.o(.rodata); - sound/songs/se_m_dizzy_punch.o(.rodata); - sound/songs/se_m_self_destruct.o(.rodata); - sound/songs/se_m_explosion.o(.rodata); - sound/songs/se_m_absorb_2.o(.rodata); - sound/songs/se_m_absorb.o(.rodata); - sound/songs/se_m_screech.o(.rodata); - sound/songs/se_m_bubble_beam.o(.rodata); - sound/songs/se_m_bubble_beam2.o(.rodata); - sound/songs/se_m_supersonic.o(.rodata); - sound/songs/se_m_belly_drum.o(.rodata); - sound/songs/se_m_metronome.o(.rodata); - sound/songs/se_m_bonemerang.o(.rodata); - sound/songs/se_m_lick.o(.rodata); - sound/songs/se_m_psybeam.o(.rodata); - sound/songs/se_m_faint_attack.o(.rodata); + sound/songs/midi/se_m_dig.o(.rodata); + sound/songs/midi/se_m_dizzy_punch.o(.rodata); + sound/songs/midi/se_m_self_destruct.o(.rodata); + sound/songs/midi/se_m_explosion.o(.rodata); + sound/songs/midi/se_m_absorb_2.o(.rodata); + sound/songs/midi/se_m_absorb.o(.rodata); + sound/songs/midi/se_m_screech.o(.rodata); + sound/songs/midi/se_m_bubble_beam.o(.rodata); + sound/songs/midi/se_m_bubble_beam2.o(.rodata); + sound/songs/midi/se_m_supersonic.o(.rodata); + sound/songs/midi/se_m_belly_drum.o(.rodata); + sound/songs/midi/se_m_metronome.o(.rodata); + sound/songs/midi/se_m_bonemerang.o(.rodata); + sound/songs/midi/se_m_lick.o(.rodata); + sound/songs/midi/se_m_psybeam.o(.rodata); + sound/songs/midi/se_m_faint_attack.o(.rodata); sound/songs/midi/se_m_swords_dance.o(.rodata); sound/songs/midi/se_m_leer.o(.rodata); - sound/songs/se_m_swagger.o(.rodata); - sound/songs/se_m_swagger2.o(.rodata); - sound/songs/se_m_heal_bell.o(.rodata); - sound/songs/se_m_confuse_ray.o(.rodata); - sound/songs/se_m_snore.o(.rodata); - sound/songs/se_m_brick_break.o(.rodata); - sound/songs/se_m_giga_drain.o(.rodata); - sound/songs/se_m_psybeam2.o(.rodata); - sound/songs/se_m_solar_beam.o(.rodata); - sound/songs/se_m_petal_dance.o(.rodata); - sound/songs/se_m_teleport.o(.rodata); - sound/songs/se_m_minimize.o(.rodata); - sound/songs/se_m_sketch.o(.rodata); - sound/songs/se_m_swift.o(.rodata); - sound/songs/se_m_reflect.o(.rodata); - sound/songs/se_m_barrier.o(.rodata); - sound/songs/se_m_detect.o(.rodata); - sound/songs/se_m_lock_on.o(.rodata); - sound/songs/se_m_moonlight.o(.rodata); - sound/songs/se_m_charm.o(.rodata); - sound/songs/se_m_charge.o(.rodata); - sound/songs/se_m_strength.o(.rodata); - sound/songs/se_m_hyper_beam.o(.rodata); - sound/songs/se_m_waterfall.o(.rodata); - sound/songs/se_m_reversal.o(.rodata); - sound/songs/se_m_acid_armor.o(.rodata); - sound/songs/se_m_sandstorm.o(.rodata); - sound/songs/se_m_tri_attack.o(.rodata); - sound/songs/se_m_tri_attack2.o(.rodata); - sound/songs/se_m_encore.o(.rodata); - sound/songs/se_m_encore2.o(.rodata); - sound/songs/se_m_baton_pass.o(.rodata); - sound/songs/se_m_milk_drink.o(.rodata); - sound/songs/se_m_attract.o(.rodata); - sound/songs/se_m_attract2.o(.rodata); - sound/songs/se_m_morning_sun.o(.rodata); - sound/songs/se_m_flatter.o(.rodata); - sound/songs/se_m_sand_tomb.o(.rodata); - sound/songs/se_m_grasswhistle.o(.rodata); - sound/songs/se_m_spit_up.o(.rodata); - sound/songs/se_m_dive.o(.rodata); - sound/songs/se_m_earthquake.o(.rodata); - sound/songs/se_m_twister.o(.rodata); - sound/songs/se_m_sweet_scent.o(.rodata); - sound/songs/se_m_yawn.o(.rodata); - sound/songs/se_m_sky_uppercut.o(.rodata); - sound/songs/se_m_stat_increase.o(.rodata); - sound/songs/se_m_heat_wave.o(.rodata); - sound/songs/se_m_uproar.o(.rodata); - sound/songs/se_m_hail.o(.rodata); - sound/songs/se_m_cosmic_power.o(.rodata); - sound/songs/se_m_teeter_dance.o(.rodata); - sound/songs/se_m_stat_decrease.o(.rodata); - sound/songs/se_m_haze.o(.rodata); - sound/songs/se_m_hyper_beam2.o(.rodata); + sound/songs/midi/se_m_swagger.o(.rodata); + sound/songs/midi/se_m_swagger2.o(.rodata); + sound/songs/midi/se_m_heal_bell.o(.rodata); + sound/songs/midi/se_m_confuse_ray.o(.rodata); + sound/songs/midi/se_m_snore.o(.rodata); + sound/songs/midi/se_m_brick_break.o(.rodata); + sound/songs/midi/se_m_giga_drain.o(.rodata); + sound/songs/midi/se_m_psybeam2.o(.rodata); + sound/songs/midi/se_m_solar_beam.o(.rodata); + sound/songs/midi/se_m_petal_dance.o(.rodata); + sound/songs/midi/se_m_teleport.o(.rodata); + sound/songs/midi/se_m_minimize.o(.rodata); + sound/songs/midi/se_m_sketch.o(.rodata); + sound/songs/midi/se_m_swift.o(.rodata); + sound/songs/midi/se_m_reflect.o(.rodata); + sound/songs/midi/se_m_barrier.o(.rodata); + sound/songs/midi/se_m_detect.o(.rodata); + sound/songs/midi/se_m_lock_on.o(.rodata); + sound/songs/midi/se_m_moonlight.o(.rodata); + sound/songs/midi/se_m_charm.o(.rodata); + sound/songs/midi/se_m_charge.o(.rodata); + sound/songs/midi/se_m_strength.o(.rodata); + sound/songs/midi/se_m_hyper_beam.o(.rodata); + sound/songs/midi/se_m_waterfall.o(.rodata); + sound/songs/midi/se_m_reversal.o(.rodata); + sound/songs/midi/se_m_acid_armor.o(.rodata); + sound/songs/midi/se_m_sandstorm.o(.rodata); + sound/songs/midi/se_m_tri_attack.o(.rodata); + sound/songs/midi/se_m_tri_attack2.o(.rodata); + sound/songs/midi/se_m_encore.o(.rodata); + sound/songs/midi/se_m_encore2.o(.rodata); + sound/songs/midi/se_m_baton_pass.o(.rodata); + sound/songs/midi/se_m_milk_drink.o(.rodata); + sound/songs/midi/se_m_attract.o(.rodata); + sound/songs/midi/se_m_attract2.o(.rodata); + sound/songs/midi/se_m_morning_sun.o(.rodata); + sound/songs/midi/se_m_flatter.o(.rodata); + sound/songs/midi/se_m_sand_tomb.o(.rodata); + sound/songs/midi/se_m_grasswhistle.o(.rodata); + sound/songs/midi/se_m_spit_up.o(.rodata); + sound/songs/midi/se_m_dive.o(.rodata); + sound/songs/midi/se_m_earthquake.o(.rodata); + sound/songs/midi/se_m_twister.o(.rodata); + sound/songs/midi/se_m_sweet_scent.o(.rodata); + sound/songs/midi/se_m_yawn.o(.rodata); + sound/songs/midi/se_m_sky_uppercut.o(.rodata); + sound/songs/midi/se_m_stat_increase.o(.rodata); + sound/songs/midi/se_m_heat_wave.o(.rodata); + sound/songs/midi/se_m_uproar.o(.rodata); + sound/songs/midi/se_m_hail.o(.rodata); + sound/songs/midi/se_m_cosmic_power.o(.rodata); + sound/songs/midi/se_m_teeter_dance.o(.rodata); + sound/songs/midi/se_m_stat_decrease.o(.rodata); + sound/songs/midi/se_m_haze.o(.rodata); + sound/songs/midi/se_m_hyper_beam2.o(.rodata); sound/songs/midi/se_door.o(.rodata); - sound/songs/se_card_flip.o(.rodata); - sound/songs/se_card_flipping.o(.rodata); - sound/songs/se_card_open.o(.rodata); - sound/songs/se_bag_cursor.o(.rodata); - sound/songs/se_bag_pocket.o(.rodata); - sound/songs/se_ball_click.o(.rodata); - sound/songs/se_shop.o(.rodata); - sound/songs/se_ss_anne_horn.o(.rodata); - sound/songs/se_help_open.o(.rodata); - sound/songs/se_help_close.o(.rodata); - sound/songs/se_help_error.o(.rodata); - sound/songs/se_deoxys_move.o(.rodata); - sound/songs/se_poke_jump_success.o(.rodata); - sound/songs/se_poke_jump_failure.o(.rodata); + sound/songs/midi/se_card_flip.o(.rodata); + sound/songs/midi/se_card_flipping.o(.rodata); + sound/songs/midi/se_card_open.o(.rodata); + sound/songs/midi/se_bag_cursor.o(.rodata); + sound/songs/midi/se_bag_pocket.o(.rodata); + sound/songs/midi/se_ball_click.o(.rodata); + sound/songs/midi/se_shop.o(.rodata); + sound/songs/midi/se_ss_anne_horn.o(.rodata); + sound/songs/midi/se_help_open.o(.rodata); + sound/songs/midi/se_help_close.o(.rodata); + sound/songs/midi/se_help_error.o(.rodata); + sound/songs/midi/se_deoxys_move.o(.rodata); + sound/songs/midi/se_poke_jump_success.o(.rodata); + sound/songs/midi/se_poke_jump_failure.o(.rodata); sound/songs/midi/mus_heal.o(.rodata); sound/songs/midi/mus_level_up.o(.rodata); sound/songs/midi/mus_obtain_item.o(.rodata); @@ -1040,11 +1042,24 @@ SECTIONS { data/*.o(.rodata); } > ROM =0 + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ - /* DWARF 2 sections */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + + /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info) } + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } diff --git a/ld_script_modern.ld b/ld_script_modern.ld index 2b5eb546d..e93024352 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -65,10 +65,24 @@ SECTIONS { *(.rodata*); } > ROM =0 - /* DWARF 2 sections */ + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + + /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info) } + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } @@ -76,6 +90,9 @@ SECTIONS { .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } + /* DWARF 5*/ + .debug_line_str 0 : { *(.debug_line_str) } + /* Discard everything not specifically mentioned above. */ /DISCARD/ : { diff --git a/ld_script_rev10.ld b/ld_script_rev10.ld new file mode 100644 index 000000000..4eb3bc2ee --- /dev/null +++ b/ld_script_rev10.ld @@ -0,0 +1,1062 @@ +gNumMusicPlayers = 4; +gMaxLines = 0; + +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} + +SECTIONS { + + ewram 0x2000000 (NOLOAD) : + ALIGN(4) + { + gHeap = .; + + . = 0x1C000; + + INCLUDE "sym_ewram_rev10.ld" + src/*.o(ewram_data); + + *libc.a:impure.o(.data); + *libc.a:locale.o(.data); + *libc.a:mallocr.o(.data); + } > EWRAM + + iwram 0x3000000 (NOLOAD) : + ALIGN(4) + { + /* .bss starts at 0x3000000 */ + INCLUDE "sym_bss_rev10.ld" + src/*.o(.bss); + data/*.o(.bss); + + /* .bss.code starts at 0x30028E0 */ + src/m4a.o(.bss.code); + + /* COMMON starts at 0x30030E0 */ + INCLUDE "sym_common_rev10.ld" + src/*.o(COMMON); + + *libc.a:sbrkr.o(COMMON); + end = .; + } > IWRAM + + /* BEGIN ROM DATA */ + . = 0x8000000; + + .text : + ALIGN(4) + { + src/rom_header.o(.text); + src/rom_header_gf.o(.text*); + src/crt0.o(.text); + src/main.o(.text); + src/gpu_regs.o(.text); + src/dma3_manager.o(.text); + src/bg.o(.text); + src/malloc.o(.text); + src/text_printer.o(.text); + src/window.o(.text); + src/blit.o(.text); + src/window_8bpp.o(.text); + src/librfu_stwi.o(.text); + src/librfu_rfu.o(.text); + src/text.o(.text); + src/sprite.o(.text); + src/sloopsvc.o(.text); + src/string_util.o(.text); + src/link.o(.text); + src/multiboot.o(.text); + src/main_menu.o(.text); + src/battle_controllers.o(.text); + src/decompress.o(.text); + src/battle_bg.o(.text); + src/battle_main.o(.text); + src/battle_util.o(.text); + src/battle_script_commands.o(.text); + src/battle_util2.o(.text); + src/battle_controller_player.o(.text); + src/battle_gfx_sfx_util.o(.text); + src/battle_controller_opponent.o(.text); + src/battle_ai_switch_items.o(.text); + src/battle_controller_link_opponent.o(.text); + src/pokemon.o(.text); + src/trig.o(.text); + src/random.o(.text); + src/util.o(.text); + src/blend_palette.o(.text); + src/daycare.o(.text); + src/battle_interface.o(.text); + src/battle_anim_smokescreen.o(.text); + src/pokeball.o(.text); + src/load_save.o(.text); + src/trade.o(.text); + src/trade_scene.o(.text); + src/play_time.o(.text); + src/new_game.o(.text); + src/overworld.o(.text); + src/fieldmap.o(.text); + src/metatile_behavior.o(.text); + src/field_camera.o(.text); + src/field_door.o(.text); + src/field_player_avatar.o(.text); + src/event_object_movement.o(.text); + src/field_message_box.o(.text); + src/event_object_lock.o(.text); + src/text_window_graphics.o(.text); + src/script.o(.text); + src/scrcmd.o(.text); + src/field_control_avatar.o(.text); + src/event_data.o(.text); + src/coord_event_weather.o(.text); + src/field_tasks.o(.text); + src/start_menu.o(.text); + src/tileset_anims.o(.text); + src/palette.o(.text); + src/sound.o(.text); + src/battle_anim.o(.text); + src/battle_anim_mons.o(.text); + src/task.o(.text); + src/reshow_battle_screen.o(.text); + src/battle_anim_status_effects.o(.text); + src/title_screen.o(.text); + src/reset_save_heap.o(.text); + src/field_weather.o(.text); + src/field_weather_util.o(.text); + src/field_weather_effects.o(.text); + src/field_fadetransition.o(.text); + src/field_screen_effect.o(.text); + src/battle_setup.o(.text); + src/cable_club.o(.text); + src/trainer_see.o(.text); + src/wild_encounter.o(.text); + src/field_effect.o(.text); + src/scanline_effect.o(.text); + src/option_menu.o(.text); + src/pokedex.o(.text); + src/trainer_card.o(.text); + src/pokemon_storage_system.o(.text); + src/pokemon_storage_system_menu.o(.text); + src/pokemon_storage_system_tasks.o(.text); + src/pokemon_storage_system_graphics.o(.text); + src/pokemon_storage_system_data.o(.text); + src/pokemon_storage_system_misc.o(.text); + src/pokemon_icon.o(.text); + src/script_movement.o(.text); + src/fldeff_cut.o(.text); + src/mail_data.o(.text); + src/map_name_popup.o(.text); + src/item_menu_icons.o(.text); + src/battle_anim_mon_movement.o(.text); + src/item.o(.text); + src/shop.o(.text); + src/special_field_anim.o(.text); + src/berry.o(.text); + src/script_menu.o(.text); + src/naming_screen.o(.text); + src/money.o(.text); + src/script_pokemon_util.o(.text); + src/field_poison.o(.text); + src/pokemon_size_record.o(.text); + src/pc_screen_effect.o(.text); + src/fldeff_poison.o(.text); + src/fldeff_berrytree.o(.text); + src/field_special_scene.o(.text); + src/safari_zone.o(.text); + src/item_use.o(.text); + src/battle_anim_effects_1.o(.text); + src/battle_anim_effects_2.o(.text); + src/battle_anim_water.o(.text); + src/battle_anim_fire.o(.text); + src/battle_anim_electric.o(.text); + src/battle_anim_ice.o(.text); + src/battle_anim_fight.o(.text); + src/battle_anim_poison.o(.text); + src/battle_anim_flying.o(.text); + src/battle_anim_psychic.o(.text); + src/battle_anim_bug.o(.text); + src/battle_anim_rock.o(.text); + src/battle_anim_ghost.o(.text); + src/battle_anim_dragon.o(.text); + src/battle_anim_dark.o(.text); + src/battle_anim_ground.o(.text); + src/battle_anim_normal.o(.text); + src/battle_anim_utility_funcs.o(.text); + src/battle_intro.o(.text); + src/bike.o(.text); + src/easy_chat.o(.text); + src/mon_markings.o(.text); + src/mail.o(.text); + src/menu_helpers.o(.text); + src/party_menu_specials.o(.text); + src/heal_location.o(.text); + src/region_map.o(.text); + src/image_processing_effects.o(.text); + src/battle_ai_script_commands.o(.text); + src/fldeff_rocksmash.o(.text); + src/fldeff_dig.o(.text); + src/fldeff_flash.o(.text); + src/post_battle_event_funcs.o(.text); + src/prof_pc.o(.text); + src/hof_pc.o(.text); + src/field_specials.o(.text); + src/battle_records.o(.text); + src/evolution_scene.o(.text); + src/coins.o(.text); + src/fldeff_strength.o(.text); + src/battle_transition.o(.text); + src/battle_controller_link_partner.o(.text); + src/battle_message.o(.text); + src/math_util.o(.text); + src/palette_util.o(.text); + src/cable_car_util.o(.text); + src/save.o(.text); + src/mystery_event_script.o(.text); + src/field_effect_helpers.o(.text); + src/battle_anim_sound_tasks.o(.text); + src/battle_controller_safari.o(.text); + src/fldeff_sweetscent.o(.text); + src/battle_anim_effects_3.o(.text); + src/learn_move.o(.text); + src/fldeff_softboiled.o(.text); + src/battle_tower.o(.text); + src/battle_controller_oak_old_man.o(.text); + src/player_pc.o(.text); + src/intro.o(.text); + src/battle_anim_special.o(.text); + src/hall_of_fame.o(.text); + src/credits.o(.text); + src/diploma.o(.text); + src/save_failed_screen.o(.text); + src/clear_save_data_screen.o(.text); + src/evolution_graphics.o(.text); + src/fldeff_teleport.o(.text); + src/new_menu_helpers.o(.text); + src/tilemap_util.o(.text); + src/save_menu_util.o(.text); + src/map_preview_screen.o(.text); + src/link_rfu_2.o(.text); + src/link_rfu_3.o(.text); + src/AgbRfu_LinkManager.o(.text); + src/easy_chat_2.o(.text); + src/easy_chat_3.o(.text); + src/pokedex_screen.o(.text); + src/list_menu.o(.text); + src/item_menu.o(.text); + src/save_location.o(.text); + src/bag.o(.text); + src/trainer_pokemon_sprites.o(.text); + src/vs_seeker.o(.text); + src/item_pc.o(.text); + src/mailbox_pc.o(.text); + src/menu.o(.text); + src/quest_log.o(.text); + src/help_message.o(.text); + src/trainer_fan_club.o(.text); + src/quest_log_events.o(.text); + src/union_room.o(.text); + src/union_room_player_avatar.o(.text); + src/union_room_battle.o(.text); + src/pokemon_special_anim.o(.text); + src/pokemon_special_anim_scene.o(.text); + src/party_menu.o(.text); + src/union_room_chat.o(.text); + src/union_room_chat_display.o(.text); + src/union_room_chat_objects.o(.text); + src/help_system.o(.text); + src/quest_log_battle.o(.text); + src/fame_checker.o(.text); + src/menu2.o(.text); + src/oak_speech.o(.text); + src/tm_case.o(.text); + src/menu_indicators.o(.text); + src/pokedex_area_markers.o(.text); + src/pokemon_summary_screen.o(.text); + src/help_system_util.o(.text); + src/wild_pokemon_area.o(.text); + src/dynamic_placeholder_text_util.o(.text); + src/berry_pouch.o(.text); + src/itemfinder.o(.text); + src/buy_menu_helpers.o(.text); + src/slot_machine.o(.text); + src/roamer.o(.text); + src/mystery_gift_menu.o(.text); + src/ereader_screen.o(.text); + src/mystery_gift.o(.text); + src/mystery_gift_link.o(.text); + src/mystery_gift_client.o(.text); + src/mystery_gift_server.o(.text); + src/mystery_gift_show_card.o(.text); + src/mystery_gift_show_news.o(.text); + src/wonder_news.o(.text); + src/seagallop.o(.text); + src/pokemon_jump.o(.text); + src/berry_crush.o(.text); + src/wireless_communication_status_screen.o(.text); + src/braille_text.o(.text); + src/text_window.o(.text); + src/quest_log_player.o(.text); + src/dodrio_berry_picking.o(.text); + src/battle_controller_pokedude.o(.text); + src/quest_log_objects.o(.text); + src/dodrio_berry_picking_comm.o(.text); + src/teachy_tv.o(.text); + src/ereader_helpers.o(.text); + src/digit_obj_util.o(.text); + src/ss_anne.o(.text); + src/cereader_tool.o(.text); + src/renewable_hidden_items.o(.text); + src/trainer_tower.o(.text); + src/berry_powder.o(.text); + src/minigame_countdown.o(.text); + src/berry_fix_program.o(.text); + } > ROM =0 + + script_data : + ALIGN(4) + { + data/event_scripts.o(script_data); + data/battle_anim_scripts.o(script_data); + data/battle_scripts_1.o(script_data); + data/field_effect_scripts.o(script_data); + data/battle_scripts_2.o(script_data); + data/battle_ai_scripts.o(script_data); + data/mystery_event_script_cmd_table.o(script_data); + } > ROM =0 + + lib_text : + ALIGN(4) + { + src/libgcnmultiboot.o(.text); + src/m4a_1.o(.text); + src/m4a.o(.text); + src/agb_flash.o(.text); + src/agb_flash_1m.o(.text); + src/agb_flash_mx.o(.text); + src/agb_flash_le.o(.text); + src/librfu_sio32id.o(.text); + src/librfu_intr.o(.text); + src/isagbprn.o(.text); + src/libagbsyscall.o(.text); + *libgcc.a:_call_via_rX.o(.text); + *libgcc.a:_divdi3.o(.text); + *libgcc.a:_divsi3.o(.text); + *libgcc.a:_dvmd_tls.o(.text); + *libgcc.a:_fixunsdfsi.o(.text); + *libgcc.a:_modsi3.o(.text); + *libgcc.a:_muldi3.o(.text); + *libgcc.a:_udivdi3.o(.text); + *libgcc.a:_udivsi3.o(.text); + *libgcc.a:_umodsi3.o(.text); + *libgcc.a:dp-bit.o(.text); + *libgcc.a:fp-bit.o(.text); + *libgcc.a:_lshrdi3.o(.text); + *libgcc.a:_negdi2.o(.text); + *libc.a:memcpy.o(.text); + *libc.a:memset.o(.text); + *libc.a:strcmp.o(.text); + *libc.a:strcpy.o(.text); + *libc.a:impure.o(.text); + *libc.a:vsprintf.o(.text); + *libc.a:vfprintf.o(.text); + *libc.a:wsetup.o(.text); + *libc.a:dtoa.o(.text); + *libc.a:fflush.o(.text); + *libc.a:findfp.o(.text); + *libc.a:freer.o(.text); + *libc.a:mtrim.o(.text); + *libc.a:fvwrite.o(.text); + *libc.a:fwalk.o(.text); + *libc.a:locale.o(.text); + *libc.a:makebuf.o(.text); + *libc.a:mallocr.o(.text); + *libc.a:mbtowc_r.o(.text); + *libc.a:memchr.o(.text); + *libc.a:memmove.o(.text); + *libc.a:mlock.o(.text); + *libc.a:mprec.o(.text); + *libc.a:s_isinf.o(.text); + *libc.a:s_isnan.o(.text); + *libc.a:sbrkr.o(.text); + *libc.a:stdio.o(.text); + *libc.a:strlen.o(.text); + *libc.a:syscalls.o(.text); + *libc.a:writer.o(.text); + *libc.a:callocr.o(.text); + *libc.a:closer.o(.text); + *libc.a:errno.o(.text); + *libc.a:fstatr.o(.text); + *libc.a:libcfunc.o(.text); + *libc.a:lseekr.o(.text); + *libc.a:readr.o(.text); + } > ROM =0 + + .rodata : + SUBALIGN(4) + { + src/main.o(.rodata); + src/bg.o(.rodata); + src/malloc.o(.rodata); + src/malloc.o(.rodata.str1.4); + src/text_printer.o(.rodata); + src/window.o(.rodata); + src/librfu_rfu.o(.rodata); + src/text.o(.rodata); + src/sprite.o(.rodata); + src/bg_regs.o(.rodata); + src/sloopsvc.o(.rodata); + src/string_util.o(.rodata); + src/link.o(.rodata); + src/main_menu.o(.rodata); + src/data.o(.rodata); + src/battle_bg.o(.rodata); + src/battle_main.o(.rodata); + src/battle_util.o(.rodata); + src/battle_script_commands.o(.rodata); + src/battle_controller_player.o(.rodata); + src/battle_anim_smokescreen.o(.rodata); + src/battle_controller_opponent.o(.rodata); + src/battle_controller_link_opponent.o(.rodata); + src/pokemon.o(.rodata); + src/trig.o(.rodata); + src/util.o(.rodata); + src/daycare.o(.rodata); + src/battle_gfx_sfx_util.o(.rodata); + src/battle_interface.o(.rodata); + src/pokeball.o(.rodata); + src/trade.o(.rodata); + src/trade_scene.o(.rodata); + src/overworld.o(.rodata); + src/tilesets.o(.rodata); + data/maps.o(.rodata); + src/fieldmap.o(.rodata); + src/metatile_behavior.o(.rodata); + src/field_door.o(.rodata); + src/field_player_avatar.o(.rodata); + src/event_object_movement.o(.rodata); + src/scrcmd.o(.rodata); + src/coord_event_weather.o(.rodata); + src/field_tasks.o(.rodata); + src/start_menu.o(.rodata); + src/tileset_anims.o(.rodata); + src/palette.o(.rodata); + src/sound.o(.rodata); + src/battle_anim.o(.rodata); + src/battle_anim_mons.o(.rodata); + data/map_events.o(.rodata); + src/battle_anim_status_effects.o(.rodata); + src/title_screen.o(.rodata); + src/field_weather.o(.rodata); + src/field_weather_util.o(.rodata); + src/field_weather_effects.o(.rodata); + src/field_screen_effect.o(.rodata); + src/battle_setup.o(.rodata); + src/cable_club.o(.rodata); + src/trainer_see.o(.rodata); + src/wild_encounter.o(.rodata); + src/field_effect.o(.rodata); + src/option_menu.o(.rodata); + src/trainer_card.o(.rodata); + src/pokemon_storage_system_menu.o(.rodata); + src/pokemon_storage_system_tasks.o(.rodata); + src/pokemon_storage_system_graphics.o(.rodata); + src/pokemon_storage_system_data.o(.rodata); + src/pokemon_storage_system_misc.o(.rodata); + src/pokemon_icon.o(.rodata); + src/fldeff_cut.o(.rodata); + src/map_name_popup.o(.rodata); + src/item_menu_icons.o(.rodata); + src/battle_anim_mon_movement.o(.rodata); + src/item.o(.rodata); + src/shop.o(.rodata); + src/special_field_anim.o(.rodata); + src/berry.o(.rodata); + src/script_menu.o(.rodata); + src/naming_screen.o(.rodata); + src/pokemon_size_record.o(.rodata); + src/item_use.o(.rodata); + src/battle_anim_effects_1.o(.rodata); + src/battle_anim_effects_2.o(.rodata); + src/battle_anim_water.o(.rodata); + src/battle_anim_fire.o(.rodata); + src/battle_anim_electric.o(.rodata); + src/battle_anim_ice.o(.rodata); + src/battle_anim_fight.o(.rodata); + src/battle_anim_poison.o(.rodata); + src/battle_anim_flying.o(.rodata); + src/battle_anim_psychic.o(.rodata); + src/battle_anim_bug.o(.rodata); + src/battle_anim_rock.o(.rodata); + src/battle_anim_ghost.o(.rodata); + src/battle_anim_dragon.o(.rodata); + src/battle_anim_dark.o(.rodata); + src/battle_anim_ground.o(.rodata); + src/battle_anim_normal.o(.rodata); + src/battle_anim_utility_funcs.o(.rodata); + src/battle_intro.o(.rodata); + src/bike.o(.rodata); + src/easy_chat.o(.rodata); + src/mon_markings.o(.rodata); + src/mail.o(.rodata); + src/heal_location.o(.rodata); + src/region_map.o(.rodata); + src/image_processing_effects.o(.rodata); + src/battle_ai_script_commands.o(.rodata); + src/fldeff_flash.o(.rodata); + src/field_specials.o(.rodata); + src/battle_records.o(.rodata); + src/evolution_scene.o(.rodata); + src/battle_transition.o(.rodata); + src/battle_controller_link_partner.o(.rodata); + src/battle_message.o(.rodata); + src/save.o(.rodata); + src/field_effect_helpers.o(.rodata); + src/battle_controller_safari.o(.rodata); + src/battle_anim_effects_3.o(.rodata); + src/learn_move.o(.rodata); + src/battle_tower.o(.rodata); + src/battle_controller_oak_old_man.o(.rodata); + src/player_pc.o(.rodata); + src/intro.o(.rodata); + src/battle_anim_special.o(.rodata); + src/hall_of_fame.o(.rodata); + src/credits.o(.rodata); + src/diploma.o(.rodata); + src/strings.o(.rodata); + src/save_failed_screen.o(.rodata); + src/clear_save_data_screen.o(.rodata); + src/evolution_graphics.o(.rodata); + src/new_menu_helpers.o(.rodata); + src/tilemap_util.o(.rodata); + src/map_preview_screen.o(.rodata); + src/link_rfu_2.o(.rodata); + src/link_rfu_3.o(.rodata); + src/easy_chat_2.o(.rodata); + src/easy_chat_3.o(.rodata); + src/pokedex_screen.o(.rodata); + src/list_menu.o(.rodata); + src/item_menu.o(.rodata); + src/save_location.o(.rodata); + src/bag.o(.rodata); + src/trainer_pokemon_sprites.o(.rodata); + src/vs_seeker.o(.rodata); + src/item_pc.o(.rodata); + src/mailbox_pc.o(.rodata); + src/decoration.o(.rodata); + src/menu.o(.rodata); + src/quest_log.o(.rodata); + src/help_message.o(.rodata); + src/trainer_fan_club.o(.rodata); + src/quest_log_events.o(.rodata); + src/union_room.o(.rodata); + src/union_room_player_avatar.o(.rodata); + src/union_room_battle.o(.rodata); + src/union_room_message.o(.rodata); + src/pokemon_special_anim.o(.rodata); + src/pokemon_special_anim_scene.o(.rodata); + src/party_menu.o(.rodata); + src/union_room_chat.o(.rodata); + src/union_room_chat_display.o(.rodata); + src/union_room_chat_objects.o(.rodata); + src/help_system.o(.rodata); + src/fame_checker.o(.rodata); + src/menu2.o(.rodata); + src/oak_speech.o(.rodata); + src/tm_case.o(.rodata); + src/menu_indicators.o(.rodata); + src/pokedex_area_markers.o(.rodata); + src/pokemon_summary_screen.o(.rodata); + src/help_system_util.o(.rodata); + src/wild_pokemon_area.o(.rodata); + src/dynamic_placeholder_text_util.o(.rodata); + src/berry_pouch.o(.rodata); + src/itemfinder.o(.rodata); + src/buy_menu_helpers.o(.rodata); + src/slot_machine.o(.rodata); + src/roamer.o(.rodata); + src/mystery_gift_menu.o(.rodata); + src/ereader_screen.o(.rodata); + src/mystery_gift.o(.rodata); + src/mystery_gift_link.o(.rodata); + src/mystery_gift_client.o(.rodata); + src/mystery_gift_server.o(.rodata); + src/mystery_gift_show_card.o(.rodata); + src/mystery_gift_show_news.o(.rodata); + src/mystery_gift_scripts.o(.rodata); + src/wonder_news.o(.rodata); + src/wonder_news.o(.rodata.str1.4); + src/seagallop.o(.rodata); + src/pokemon_jump.o(.rodata); + src/berry_crush.o(.rodata); + src/wireless_communication_status_screen.o(.rodata); + src/braille_text.o(.rodata); + src/text_window_graphics.o(.rodata); + src/quest_log_player.o(.rodata); + src/dodrio_berry_picking.o(.rodata); + src/battle_controller_pokedude.o(.rodata); + src/teachy_tv.o(.rodata); + src/digit_obj_util.o(.rodata); + src/ss_anne.o(.rodata); + src/cereader_tool.o(.rodata); + src/renewable_hidden_items.o(.rodata); + src/trainer_tower.o(.rodata); + src/minigame_countdown.o(.rodata); + src/berry_fix_program.o(.rodata); + src/keyboard_text.o(.rodata); + src/trainer_tower_sets.o(.rodata); + src/move_descriptions.o(.rodata); + + /* These should not be moved to C files */ + src/mystery_event_msg.o(.rodata); + data/mystery_event_msg.o(.rodata); + src/m4a_tables.o(.rodata); + data/sound_data.o(.rodata); + } > ROM =0 + + song_data : + ALIGN(4) + { + sound/songs/midi/mus_dummy.o(.rodata); + sound/songs/midi/se_use_item.o(.rodata); + sound/songs/midi/se_pc_login.o(.rodata); + sound/songs/midi/se_pc_off.o(.rodata); + sound/songs/midi/se_pc_on.o(.rodata); + sound/songs/midi/se_select.o(.rodata); + sound/songs/midi/se_win_open.o(.rodata); + sound/songs/midi/se_wall_hit.o(.rodata); + sound/songs/midi/se_rs_door.o(.rodata); + sound/songs/midi/se_exit.o(.rodata); + sound/songs/midi/se_ledge.o(.rodata); + sound/songs/midi/se_bike_bell.o(.rodata); + sound/songs/midi/se_not_effective.o(.rodata); + sound/songs/midi/se_effective.o(.rodata); + sound/songs/midi/se_super_effective.o(.rodata); + sound/songs/midi/se_ball_open.o(.rodata); + sound/songs/midi/se_faint.o(.rodata); + sound/songs/midi/se_flee.o(.rodata); + sound/songs/midi/se_sliding_door.o(.rodata); + sound/songs/midi/se_ship.o(.rodata); + sound/songs/midi/se_bang.o(.rodata); + sound/songs/midi/se_pin.o(.rodata); + sound/songs/midi/se_boo.o(.rodata); + sound/songs/midi/se_ball.o(.rodata); + sound/songs/midi/se_contest_place.o(.rodata); + sound/songs/midi/se_success.o(.rodata); + sound/songs/midi/se_failure.o(.rodata); + sound/songs/midi/se_exp.o(.rodata); + sound/songs/midi/se_bike_hop.o(.rodata); + sound/songs/midi/se_switch.o(.rodata); + sound/songs/midi/se_click.o(.rodata); + sound/songs/midi/se_fu_zaku.o(.rodata); + sound/songs/midi/se_contest_condition_lose.o(.rodata); + sound/songs/midi/se_lavaridge_fall_warp.o(.rodata); + sound/songs/midi/se_ice_stairs.o(.rodata); + sound/songs/midi/se_ice_break.o(.rodata); + sound/songs/midi/se_ice_crack.o(.rodata); + sound/songs/midi/se_fall.o(.rodata); + sound/songs/midi/se_unlock.o(.rodata); + sound/songs/midi/se_warp_in.o(.rodata); + sound/songs/midi/se_warp_out.o(.rodata); + sound/songs/midi/se_repel.o(.rodata); + sound/songs/midi/se_rotating_gate.o(.rodata); + sound/songs/midi/se_truck_move.o(.rodata); + sound/songs/midi/se_truck_stop.o(.rodata); + sound/songs/midi/se_truck_unload.o(.rodata); + sound/songs/midi/se_truck_door.o(.rodata); + sound/songs/midi/se_berry_blender.o(.rodata); + sound/songs/midi/se_save.o(.rodata); + sound/songs/midi/se_ball_bounce_1.o(.rodata); + sound/songs/midi/se_ball_bounce_2.o(.rodata); + sound/songs/midi/se_ball_bounce_3.o(.rodata); + sound/songs/midi/se_ball_bounce_4.o(.rodata); + sound/songs/midi/se_ball_trade.o(.rodata); + sound/songs/midi/se_ball_throw.o(.rodata); + sound/songs/midi/se_note_c.o(.rodata); + sound/songs/midi/se_note_d.o(.rodata); + sound/songs/midi/se_note_e.o(.rodata); + sound/songs/midi/se_note_f.o(.rodata); + sound/songs/midi/se_note_g.o(.rodata); + sound/songs/midi/se_note_a.o(.rodata); + sound/songs/midi/se_note_b.o(.rodata); + sound/songs/midi/se_note_c_high.o(.rodata); + sound/songs/midi/se_puddle.o(.rodata); + sound/songs/midi/se_bridge_walk.o(.rodata); + sound/songs/midi/se_itemfinder.o(.rodata); + sound/songs/midi/se_ding_dong.o(.rodata); + sound/songs/midi/se_balloon_red.o(.rodata); + sound/songs/midi/se_balloon_blue.o(.rodata); + sound/songs/midi/se_balloon_yellow.o(.rodata); + sound/songs/midi/se_breakable_door.o(.rodata); + sound/songs/midi/se_mud_ball.o(.rodata); + sound/songs/midi/se_field_poison.o(.rodata); + sound/songs/midi/se_escalator.o(.rodata); + sound/songs/midi/se_thunderstorm.o(.rodata); + sound/songs/midi/se_thunderstorm_stop.o(.rodata); + sound/songs/midi/se_downpour.o(.rodata); + sound/songs/midi/se_downpour_stop.o(.rodata); + sound/songs/midi/se_rain.o(.rodata); + sound/songs/midi/se_rain_stop.o(.rodata); + sound/songs/midi/se_thunder.o(.rodata); + sound/songs/midi/se_thunder2.o(.rodata); + sound/songs/midi/se_elevator.o(.rodata); + sound/songs/midi/se_low_health.o(.rodata); + sound/songs/midi/se_exp_max.o(.rodata); + sound/songs/midi/se_roulette_ball.o(.rodata); + sound/songs/midi/se_roulette_ball2.o(.rodata); + sound/songs/midi/se_taillow_wing_flap.o(.rodata); + sound/songs/midi/se_rs_shop.o(.rodata); + sound/songs/midi/se_contest_heart.o(.rodata); + sound/songs/midi/se_contest_curtain_rise.o(.rodata); + sound/songs/midi/se_contest_curtain_fall.o(.rodata); + sound/songs/midi/se_contest_icon_change.o(.rodata); + sound/songs/midi/se_contest_icon_clear.o(.rodata); + sound/songs/midi/se_contest_mons_turn.o(.rodata); + sound/songs/midi/se_shiny.o(.rodata); + sound/songs/midi/se_intro_blast.o(.rodata); + sound/songs/midi/se_mugshot.o(.rodata); + sound/songs/midi/se_applause.o(.rodata); + sound/songs/midi/se_vend.o(.rodata); + sound/songs/midi/se_orb.o(.rodata); + sound/songs/midi/se_dex_scroll.o(.rodata); + sound/songs/midi/se_dex_page.o(.rodata); + sound/songs/midi/se_pokenav_on.o(.rodata); + sound/songs/midi/se_pokenav_off.o(.rodata); + sound/songs/midi/se_dex_search.o(.rodata); + sound/songs/midi/se_egg_hatch.o(.rodata); + sound/songs/midi/se_ball_tray_enter.o(.rodata); + sound/songs/midi/se_ball_tray_ball.o(.rodata); + sound/songs/midi/se_ball_tray_exit.o(.rodata); + sound/songs/midi/se_glass_flute.o(.rodata); + sound/songs/midi/se_m_thunderbolt.o(.rodata); + sound/songs/midi/se_m_thunderbolt2.o(.rodata); + sound/songs/midi/se_m_harden.o(.rodata); + sound/songs/midi/se_m_nightmare.o(.rodata); + sound/songs/midi/se_m_vital_throw.o(.rodata); + sound/songs/midi/se_m_vital_throw2.o(.rodata); + sound/songs/midi/se_m_bubble.o(.rodata); + sound/songs/midi/se_m_bubble2.o(.rodata); + sound/songs/midi/se_m_bubble3.o(.rodata); + sound/songs/midi/se_m_rain_dance.o(.rodata); + sound/songs/midi/se_m_cut.o(.rodata); + sound/songs/midi/se_m_string_shot.o(.rodata); + sound/songs/midi/se_m_string_shot2.o(.rodata); + sound/songs/midi/se_m_rock_throw.o(.rodata); + sound/songs/midi/se_m_gust.o(.rodata); + sound/songs/midi/se_m_gust2.o(.rodata); + sound/songs/midi/se_m_double_slap.o(.rodata); + sound/songs/midi/se_m_double_team.o(.rodata); + sound/songs/midi/se_m_razor_wind.o(.rodata); + sound/songs/midi/se_m_icy_wind.o(.rodata); + sound/songs/midi/se_m_thunder_wave.o(.rodata); + sound/songs/midi/se_m_comet_punch.o(.rodata); + sound/songs/midi/se_m_mega_kick.o(.rodata); + sound/songs/midi/se_m_mega_kick2.o(.rodata); + sound/songs/midi/se_m_crabhammer.o(.rodata); + sound/songs/midi/se_m_jump_kick.o(.rodata); + sound/songs/midi/se_m_flame_wheel.o(.rodata); + sound/songs/midi/se_m_flame_wheel2.o(.rodata); + sound/songs/midi/se_m_flamethrower.o(.rodata); + sound/songs/midi/se_m_fire_punch.o(.rodata); + sound/songs/midi/se_m_toxic.o(.rodata); + sound/songs/midi/se_m_sacred_fire.o(.rodata); + sound/songs/midi/se_m_sacred_fire2.o(.rodata); + sound/songs/midi/se_m_ember.o(.rodata); + sound/songs/midi/se_m_take_down.o(.rodata); + sound/songs/midi/se_m_blizzard.o(.rodata); + sound/songs/midi/se_m_blizzard2.o(.rodata); + sound/songs/midi/se_m_scratch.o(.rodata); + sound/songs/midi/se_m_vicegrip.o(.rodata); + sound/songs/midi/se_m_wing_attack.o(.rodata); + sound/songs/midi/se_m_fly.o(.rodata); + sound/songs/midi/se_m_sand_attack.o(.rodata); + sound/songs/midi/se_m_razor_wind2.o(.rodata); + sound/songs/midi/se_m_bite.o(.rodata); + sound/songs/midi/se_m_headbutt.o(.rodata); + sound/songs/midi/se_m_surf.o(.rodata); + sound/songs/midi/se_m_hydro_pump.o(.rodata); + sound/songs/midi/se_m_whirlpool.o(.rodata); + sound/songs/midi/se_m_horn_attack.o(.rodata); + sound/songs/midi/se_m_tail_whip.o(.rodata); + sound/songs/midi/se_m_mist.o(.rodata); + sound/songs/midi/se_m_poison_powder.o(.rodata); + sound/songs/midi/se_m_bind.o(.rodata); + sound/songs/midi/se_m_dragon_rage.o(.rodata); + sound/songs/midi/se_m_sing.o(.rodata); + sound/songs/midi/se_m_perish_song.o(.rodata); + sound/songs/midi/se_m_pay_day.o(.rodata); + sound/songs/midi/se_m_dig.o(.rodata); + sound/songs/midi/se_m_dizzy_punch.o(.rodata); + sound/songs/midi/se_m_self_destruct.o(.rodata); + sound/songs/midi/se_m_explosion.o(.rodata); + sound/songs/midi/se_m_absorb_2.o(.rodata); + sound/songs/midi/se_m_absorb.o(.rodata); + sound/songs/midi/se_m_screech.o(.rodata); + sound/songs/midi/se_m_bubble_beam.o(.rodata); + sound/songs/midi/se_m_bubble_beam2.o(.rodata); + sound/songs/midi/se_m_supersonic.o(.rodata); + sound/songs/midi/se_m_belly_drum.o(.rodata); + sound/songs/midi/se_m_metronome.o(.rodata); + sound/songs/midi/se_m_bonemerang.o(.rodata); + sound/songs/midi/se_m_lick.o(.rodata); + sound/songs/midi/se_m_psybeam.o(.rodata); + sound/songs/midi/se_m_faint_attack.o(.rodata); + sound/songs/midi/se_m_swords_dance.o(.rodata); + sound/songs/midi/se_m_leer.o(.rodata); + sound/songs/midi/se_m_swagger.o(.rodata); + sound/songs/midi/se_m_swagger2.o(.rodata); + sound/songs/midi/se_m_heal_bell.o(.rodata); + sound/songs/midi/se_m_confuse_ray.o(.rodata); + sound/songs/midi/se_m_snore.o(.rodata); + sound/songs/midi/se_m_brick_break.o(.rodata); + sound/songs/midi/se_m_giga_drain.o(.rodata); + sound/songs/midi/se_m_psybeam2.o(.rodata); + sound/songs/midi/se_m_solar_beam.o(.rodata); + sound/songs/midi/se_m_petal_dance.o(.rodata); + sound/songs/midi/se_m_teleport.o(.rodata); + sound/songs/midi/se_m_minimize.o(.rodata); + sound/songs/midi/se_m_sketch.o(.rodata); + sound/songs/midi/se_m_swift.o(.rodata); + sound/songs/midi/se_m_reflect.o(.rodata); + sound/songs/midi/se_m_barrier.o(.rodata); + sound/songs/midi/se_m_detect.o(.rodata); + sound/songs/midi/se_m_lock_on.o(.rodata); + sound/songs/midi/se_m_moonlight.o(.rodata); + sound/songs/midi/se_m_charm.o(.rodata); + sound/songs/midi/se_m_charge.o(.rodata); + sound/songs/midi/se_m_strength.o(.rodata); + sound/songs/midi/se_m_hyper_beam.o(.rodata); + sound/songs/midi/se_m_waterfall.o(.rodata); + sound/songs/midi/se_m_reversal.o(.rodata); + sound/songs/midi/se_m_acid_armor.o(.rodata); + sound/songs/midi/se_m_sandstorm.o(.rodata); + sound/songs/midi/se_m_tri_attack.o(.rodata); + sound/songs/midi/se_m_tri_attack2.o(.rodata); + sound/songs/midi/se_m_encore.o(.rodata); + sound/songs/midi/se_m_encore2.o(.rodata); + sound/songs/midi/se_m_baton_pass.o(.rodata); + sound/songs/midi/se_m_milk_drink.o(.rodata); + sound/songs/midi/se_m_attract.o(.rodata); + sound/songs/midi/se_m_attract2.o(.rodata); + sound/songs/midi/se_m_morning_sun.o(.rodata); + sound/songs/midi/se_m_flatter.o(.rodata); + sound/songs/midi/se_m_sand_tomb.o(.rodata); + sound/songs/midi/se_m_grasswhistle.o(.rodata); + sound/songs/midi/se_m_spit_up.o(.rodata); + sound/songs/midi/se_m_dive.o(.rodata); + sound/songs/midi/se_m_earthquake.o(.rodata); + sound/songs/midi/se_m_twister.o(.rodata); + sound/songs/midi/se_m_sweet_scent.o(.rodata); + sound/songs/midi/se_m_yawn.o(.rodata); + sound/songs/midi/se_m_sky_uppercut.o(.rodata); + sound/songs/midi/se_m_stat_increase.o(.rodata); + sound/songs/midi/se_m_heat_wave.o(.rodata); + sound/songs/midi/se_m_uproar.o(.rodata); + sound/songs/midi/se_m_hail.o(.rodata); + sound/songs/midi/se_m_cosmic_power.o(.rodata); + sound/songs/midi/se_m_teeter_dance.o(.rodata); + sound/songs/midi/se_m_stat_decrease.o(.rodata); + sound/songs/midi/se_m_haze.o(.rodata); + sound/songs/midi/se_m_hyper_beam2.o(.rodata); + sound/songs/midi/se_door.o(.rodata); + sound/songs/midi/se_card_flip.o(.rodata); + sound/songs/midi/se_card_flipping.o(.rodata); + sound/songs/midi/se_card_open.o(.rodata); + sound/songs/midi/se_bag_cursor.o(.rodata); + sound/songs/midi/se_bag_pocket.o(.rodata); + sound/songs/midi/se_ball_click.o(.rodata); + sound/songs/midi/se_shop.o(.rodata); + sound/songs/midi/se_ss_anne_horn.o(.rodata); + sound/songs/midi/se_help_open.o(.rodata); + sound/songs/midi/se_help_close.o(.rodata); + sound/songs/midi/se_help_error.o(.rodata); + sound/songs/midi/se_deoxys_move.o(.rodata); + sound/songs/midi/se_poke_jump_success.o(.rodata); + sound/songs/midi/se_poke_jump_failure.o(.rodata); + sound/songs/midi/mus_heal.o(.rodata); + sound/songs/midi/mus_level_up.o(.rodata); + sound/songs/midi/mus_obtain_item.o(.rodata); + sound/songs/midi/mus_evolved.o(.rodata); + sound/songs/midi/mus_obtain_badge.o(.rodata); + sound/songs/midi/mus_obtain_tmhm.o(.rodata); + sound/songs/midi/mus_obtain_berry.o(.rodata); + sound/songs/midi/mus_evolution_intro.o(.rodata); + sound/songs/midi/mus_evolution.o(.rodata); + sound/songs/midi/mus_rs_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_rs_vs_trainer.o(.rodata); + sound/songs/midi/mus_school.o(.rodata); + sound/songs/midi/mus_slots_jackpot.o(.rodata); + sound/songs/midi/mus_slots_win.o(.rodata); + sound/songs/midi/mus_move_deleted.o(.rodata); + sound/songs/midi/mus_too_bad.o(.rodata); + sound/songs/midi/mus_follow_me.o(.rodata); + sound/songs/midi/mus_game_corner.o(.rodata); + sound/songs/midi/mus_rocket_hideout.o(.rodata); + sound/songs/midi/mus_gym.o(.rodata); + sound/songs/midi/mus_jigglypuff.o(.rodata); + sound/songs/midi/mus_intro_fight.o(.rodata); + sound/songs/midi/mus_title.o(.rodata); + sound/songs/midi/mus_cinnabar.o(.rodata); + sound/songs/midi/mus_lavender.o(.rodata); + sound/songs/midi/mus_heal_unused.o(.rodata); + sound/songs/midi/mus_cycling.o(.rodata); + sound/songs/midi/mus_encounter_rocket.o(.rodata); + sound/songs/midi/mus_encounter_girl.o(.rodata); + sound/songs/midi/mus_encounter_boy.o(.rodata); + sound/songs/midi/mus_hall_of_fame.o(.rodata); + sound/songs/midi/mus_viridian_forest.o(.rodata); + sound/songs/midi/mus_mt_moon.o(.rodata); + sound/songs/midi/mus_poke_mansion.o(.rodata); + sound/songs/midi/mus_credits.o(.rodata); + sound/songs/midi/mus_route1.o(.rodata); + sound/songs/midi/mus_route24.o(.rodata); + sound/songs/midi/mus_route3.o(.rodata); + sound/songs/midi/mus_route11.o(.rodata); + sound/songs/midi/mus_victory_road.o(.rodata); + sound/songs/midi/mus_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_vs_trainer.o(.rodata); + sound/songs/midi/mus_vs_wild.o(.rodata); + sound/songs/midi/mus_vs_champion.o(.rodata); + sound/songs/midi/mus_pallet.o(.rodata); + sound/songs/midi/mus_oak_lab.o(.rodata); + sound/songs/midi/mus_oak.o(.rodata); + sound/songs/midi/mus_poke_center.o(.rodata); + sound/songs/midi/mus_ss_anne.o(.rodata); + sound/songs/midi/mus_surf.o(.rodata); + sound/songs/midi/mus_poke_tower.o(.rodata); + sound/songs/midi/mus_silph.o(.rodata); + sound/songs/midi/mus_fuchsia.o(.rodata); + sound/songs/midi/mus_celadon.o(.rodata); + sound/songs/midi/mus_victory_trainer.o(.rodata); + sound/songs/midi/mus_victory_wild.o(.rodata); + sound/songs/midi/mus_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_vermillion.o(.rodata); + sound/songs/midi/mus_pewter.o(.rodata); + sound/songs/midi/mus_encounter_rival.o(.rodata); + sound/songs/midi/mus_rival_exit.o(.rodata); + sound/songs/midi/mus_dex_rating.o(.rodata); + sound/songs/midi/mus_obtain_key_item.o(.rodata); + sound/songs/midi/mus_caught_intro.o(.rodata); + sound/songs/midi/mus_photo.o(.rodata); + sound/songs/midi/mus_game_freak.o(.rodata); + sound/songs/midi/mus_caught.o(.rodata); + sound/songs/midi/mus_new_game_instruct.o(.rodata); + sound/songs/midi/mus_new_game_intro.o(.rodata); + sound/songs/midi/mus_new_game_exit.o(.rodata); + sound/songs/midi/mus_poke_jump.o(.rodata); + sound/songs/midi/mus_union_room.o(.rodata); + sound/songs/midi/mus_net_center.o(.rodata); + sound/songs/midi/mus_mystery_gift.o(.rodata); + sound/songs/midi/mus_berry_pick.o(.rodata); + sound/songs/midi/mus_sevii_cave.o(.rodata); + sound/songs/midi/mus_teachy_tv_show.o(.rodata); + sound/songs/midi/mus_sevii_route.o(.rodata); + sound/songs/midi/mus_sevii_dungeon.o(.rodata); + sound/songs/midi/mus_sevii_123.o(.rodata); + sound/songs/midi/mus_sevii_45.o(.rodata); + sound/songs/midi/mus_sevii_67.o(.rodata); + sound/songs/midi/mus_poke_flute.o(.rodata); + sound/songs/midi/mus_vs_deoxys.o(.rodata); + sound/songs/midi/mus_vs_mewtwo.o(.rodata); + sound/songs/midi/mus_vs_legend.o(.rodata); + sound/songs/midi/mus_encounter_gym_leader.o(.rodata); + sound/songs/midi/mus_encounter_deoxys.o(.rodata); + sound/songs/midi/mus_trainer_tower.o(.rodata); + sound/songs/midi/mus_slow_pallet.o(.rodata); + sound/songs/midi/mus_teachy_tv_menu.o(.rodata); + } > ROM =0 + + lib_rodata : + SUBALIGN(4) + { + src/agb_flash.o(.rodata); + src/agb_flash_1m.o(.rodata); + src/agb_flash_mx.o(.rodata); + src/agb_flash_le.o(.rodata); + src/librfu_sio32id.o(.rodata); + src/isagbprn.o(.rodata); + *libgcc.a:_divdi3.o(.rodata); + *libgcc.a:_udivdi3.o(.rodata); + *libc.a:memcpy.o(.rodata); + *libc.a:memset.o(.rodata); + *libc.a:strcmp.o(.rodata); + *libc.a:strcpy.o(.rodata); + *libc.a:impure.o(.rodata); + *libc.a:vsprintf.o(.rodata); + *libc.a:vfprintf.o(.rodata); + *libc.a:wsetup.o(.rodata); + *libc.a:dtoa.o(.rodata); + *libc.a:fflush.o(.rodata); + *libc.a:findfp.o(.rodata); + *libc.a:freer.o(.rodata); + *libc.a:mtrim.o(.rodata); + *libc.a:fvwrite.o(.rodata); + *libc.a:fwalk.o(.rodata); + *libc.a:locale.o(.rodata); + *libc.a:makebuf.o(.rodata); + *libc.a:mallocr.o(.rodata); + *libc.a:mbtowc_r.o(.rodata); + *libc.a:memchr.o(.rodata); + *libc.a:memmove.o(.rodata); + *libc.a:mlock.o(.rodata); + *libc.a:mprec.o(.rodata); + *libc.a:s_isinf.o(.rodata); + *libc.a:s_isnan.o(.rodata); + *libc.a:sbrkr.o(.rodata); + *libc.a:stdio.o(.rodata); + *libc.a:strlen.o(.rodata); + *libc.a:syscalls.o(.rodata); + *libc.a:writer.o(.rodata); + *libc.a:callocr.o(.rodata); + *libc.a:closer.o(.rodata); + *libc.a:errno.o(.rodata); + *libc.a:fstatr.o(.rodata); + *libc.a:libcfunc.o(.rodata); + *libc.a:lseekr.o(.rodata); + *libc.a:readr.o(.rodata); + + . = ALIGN(4); + } > ROM =0 + + multiboot_data : + ALIGN(4) + { + data/multiboot_ereader.o(.rodata); + data/multiboot_berry_glitch_fix.o(.rodata); + data/multiboot_pokemon_colosseum.o(.rodata); + } > ROM =0 + + gfx_data 0x08D00000 : + ALIGN(4) + { + src/graphics.o(.rodata); + } > ROM =0 + + extra : + ALIGN(4) + { + src/*.o(.text); + src/*.o(.rodata); + data/*.o(.rodata); + } > ROM =0 + + + /* DWARF 2 sections */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_info 0 : { *(.debug_info) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + /* Discard everything not specifically mentioned above. */ + /DISCARD/ : + { + *(*); + } +} diff --git a/leafgreen_switch.sha1 b/leafgreen_switch.sha1 new file mode 100644 index 000000000..2a857a694 --- /dev/null +++ b/leafgreen_switch.sha1 @@ -0,0 +1 @@ +62b9fc77549dbc67032eb6cbd0ea6ad3b825690f pokeleafgreen_switch.gba diff --git a/make_tools.mk b/make_tools.mk index ca8e9c863..d7b9315ad 100644 --- a/make_tools.mk +++ b/make_tools.mk @@ -5,7 +5,7 @@ MAKEFLAGS += --no-print-directory # Inclusive list. If you don't want a tool to be built, don't add it here. TOOLS_DIR := tools -TOOL_NAMES := aif2pcm bin2c gbafix gbagfx jsonproc mapjson mid2agb preproc ramscrgen rsfont scaninc +TOOL_NAMES := bin2c gbafix gbagfx jsonproc mapjson mid2agb preproc ramscrgen rsfont scaninc wav2agb TOOLDIRS := $(TOOL_NAMES:%=$(TOOLS_DIR)/%) diff --git a/sound/direct_sound_samples/bicycle_bell.aif b/sound/direct_sound_samples/bicycle_bell.aif deleted file mode 100644 index 52191fa16..000000000 Binary files a/sound/direct_sound_samples/bicycle_bell.aif and /dev/null differ diff --git a/sound/direct_sound_samples/bicycle_bell.wav b/sound/direct_sound_samples/bicycle_bell.wav new file mode 100644 index 000000000..d07fcceec Binary files /dev/null and b/sound/direct_sound_samples/bicycle_bell.wav differ diff --git a/sound/direct_sound_samples/classical_choir_voice_ahhs.aif b/sound/direct_sound_samples/classical_choir_voice_ahhs.aif deleted file mode 100644 index 25d766a6b..000000000 Binary files a/sound/direct_sound_samples/classical_choir_voice_ahhs.aif and /dev/null differ diff --git a/sound/direct_sound_samples/classical_choir_voice_ahhs.wav b/sound/direct_sound_samples/classical_choir_voice_ahhs.wav new file mode 100644 index 000000000..51f5656cc Binary files /dev/null and b/sound/direct_sound_samples/classical_choir_voice_ahhs.wav differ diff --git a/sound/direct_sound_samples/cries/abra.aif b/sound/direct_sound_samples/cries/abra.aif deleted file mode 100644 index 7df4446db..000000000 Binary files a/sound/direct_sound_samples/cries/abra.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/abra.wav b/sound/direct_sound_samples/cries/abra.wav new file mode 100644 index 000000000..34d645d9d Binary files /dev/null and b/sound/direct_sound_samples/cries/abra.wav differ diff --git a/sound/direct_sound_samples/cries/absol.aif b/sound/direct_sound_samples/cries/absol.aif deleted file mode 100644 index 884ab22b3..000000000 Binary files a/sound/direct_sound_samples/cries/absol.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/absol.wav b/sound/direct_sound_samples/cries/absol.wav new file mode 100644 index 000000000..2da72c44a Binary files /dev/null and b/sound/direct_sound_samples/cries/absol.wav differ diff --git a/sound/direct_sound_samples/cries/aerodactyl.aif b/sound/direct_sound_samples/cries/aerodactyl.aif deleted file mode 100644 index c0e40f6d1..000000000 Binary files a/sound/direct_sound_samples/cries/aerodactyl.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/aerodactyl.wav b/sound/direct_sound_samples/cries/aerodactyl.wav new file mode 100644 index 000000000..23479e744 Binary files /dev/null and b/sound/direct_sound_samples/cries/aerodactyl.wav differ diff --git a/sound/direct_sound_samples/cries/aggron.aif b/sound/direct_sound_samples/cries/aggron.aif deleted file mode 100644 index b89ea1222..000000000 Binary files a/sound/direct_sound_samples/cries/aggron.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/aggron.wav b/sound/direct_sound_samples/cries/aggron.wav new file mode 100644 index 000000000..1d2247036 Binary files /dev/null and b/sound/direct_sound_samples/cries/aggron.wav differ diff --git a/sound/direct_sound_samples/cries/aipom.aif b/sound/direct_sound_samples/cries/aipom.aif deleted file mode 100644 index 5ca276de2..000000000 Binary files a/sound/direct_sound_samples/cries/aipom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/aipom.wav b/sound/direct_sound_samples/cries/aipom.wav new file mode 100644 index 000000000..2fe15f875 Binary files /dev/null and b/sound/direct_sound_samples/cries/aipom.wav differ diff --git a/sound/direct_sound_samples/cries/alakazam.aif b/sound/direct_sound_samples/cries/alakazam.aif deleted file mode 100644 index 920e2ff94..000000000 Binary files a/sound/direct_sound_samples/cries/alakazam.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/alakazam.wav b/sound/direct_sound_samples/cries/alakazam.wav new file mode 100644 index 000000000..911472dec Binary files /dev/null and b/sound/direct_sound_samples/cries/alakazam.wav differ diff --git a/sound/direct_sound_samples/cries/altaria.aif b/sound/direct_sound_samples/cries/altaria.aif deleted file mode 100644 index 3e8e35e8e..000000000 Binary files a/sound/direct_sound_samples/cries/altaria.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/altaria.wav b/sound/direct_sound_samples/cries/altaria.wav new file mode 100644 index 000000000..08395d0d6 Binary files /dev/null and b/sound/direct_sound_samples/cries/altaria.wav differ diff --git a/sound/direct_sound_samples/cries/ampharos.aif b/sound/direct_sound_samples/cries/ampharos.aif deleted file mode 100644 index 4f6e255a0..000000000 Binary files a/sound/direct_sound_samples/cries/ampharos.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ampharos.wav b/sound/direct_sound_samples/cries/ampharos.wav new file mode 100644 index 000000000..da0bd761c Binary files /dev/null and b/sound/direct_sound_samples/cries/ampharos.wav differ diff --git a/sound/direct_sound_samples/cries/anorith.aif b/sound/direct_sound_samples/cries/anorith.aif deleted file mode 100644 index 96e87e919..000000000 Binary files a/sound/direct_sound_samples/cries/anorith.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/anorith.wav b/sound/direct_sound_samples/cries/anorith.wav new file mode 100644 index 000000000..5840c5769 Binary files /dev/null and b/sound/direct_sound_samples/cries/anorith.wav differ diff --git a/sound/direct_sound_samples/cries/arbok.aif b/sound/direct_sound_samples/cries/arbok.aif deleted file mode 100644 index 6ccace9f9..000000000 Binary files a/sound/direct_sound_samples/cries/arbok.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/arbok.wav b/sound/direct_sound_samples/cries/arbok.wav new file mode 100644 index 000000000..a7b9de89e Binary files /dev/null and b/sound/direct_sound_samples/cries/arbok.wav differ diff --git a/sound/direct_sound_samples/cries/arcanine.aif b/sound/direct_sound_samples/cries/arcanine.aif deleted file mode 100644 index 61d802153..000000000 Binary files a/sound/direct_sound_samples/cries/arcanine.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/arcanine.wav b/sound/direct_sound_samples/cries/arcanine.wav new file mode 100644 index 000000000..65aa4e21f Binary files /dev/null and b/sound/direct_sound_samples/cries/arcanine.wav differ diff --git a/sound/direct_sound_samples/cries/ariados.aif b/sound/direct_sound_samples/cries/ariados.aif deleted file mode 100644 index 1748624fb..000000000 Binary files a/sound/direct_sound_samples/cries/ariados.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ariados.wav b/sound/direct_sound_samples/cries/ariados.wav new file mode 100644 index 000000000..168f97552 Binary files /dev/null and b/sound/direct_sound_samples/cries/ariados.wav differ diff --git a/sound/direct_sound_samples/cries/armaldo.aif b/sound/direct_sound_samples/cries/armaldo.aif deleted file mode 100644 index 756bf0842..000000000 Binary files a/sound/direct_sound_samples/cries/armaldo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/armaldo.wav b/sound/direct_sound_samples/cries/armaldo.wav new file mode 100644 index 000000000..aecebd18e Binary files /dev/null and b/sound/direct_sound_samples/cries/armaldo.wav differ diff --git a/sound/direct_sound_samples/cries/aron.aif b/sound/direct_sound_samples/cries/aron.aif deleted file mode 100644 index cce70b73b..000000000 Binary files a/sound/direct_sound_samples/cries/aron.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/aron.wav b/sound/direct_sound_samples/cries/aron.wav new file mode 100644 index 000000000..42860d46b Binary files /dev/null and b/sound/direct_sound_samples/cries/aron.wav differ diff --git a/sound/direct_sound_samples/cries/articuno.aif b/sound/direct_sound_samples/cries/articuno.aif deleted file mode 100644 index 4f237dd0f..000000000 Binary files a/sound/direct_sound_samples/cries/articuno.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/articuno.wav b/sound/direct_sound_samples/cries/articuno.wav new file mode 100644 index 000000000..7ad8dfcd0 Binary files /dev/null and b/sound/direct_sound_samples/cries/articuno.wav differ diff --git a/sound/direct_sound_samples/cries/azumarill.aif b/sound/direct_sound_samples/cries/azumarill.aif deleted file mode 100644 index 18411f93c..000000000 Binary files a/sound/direct_sound_samples/cries/azumarill.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/azumarill.wav b/sound/direct_sound_samples/cries/azumarill.wav new file mode 100644 index 000000000..331da9d90 Binary files /dev/null and b/sound/direct_sound_samples/cries/azumarill.wav differ diff --git a/sound/direct_sound_samples/cries/azurill.aif b/sound/direct_sound_samples/cries/azurill.aif deleted file mode 100644 index 7f651c3d3..000000000 Binary files a/sound/direct_sound_samples/cries/azurill.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/azurill.wav b/sound/direct_sound_samples/cries/azurill.wav new file mode 100644 index 000000000..b3eda262b Binary files /dev/null and b/sound/direct_sound_samples/cries/azurill.wav differ diff --git a/sound/direct_sound_samples/cries/bagon.aif b/sound/direct_sound_samples/cries/bagon.aif deleted file mode 100644 index 3843fb9f4..000000000 Binary files a/sound/direct_sound_samples/cries/bagon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/bagon.wav b/sound/direct_sound_samples/cries/bagon.wav new file mode 100644 index 000000000..2f36926ee Binary files /dev/null and b/sound/direct_sound_samples/cries/bagon.wav differ diff --git a/sound/direct_sound_samples/cries/baltoy.aif b/sound/direct_sound_samples/cries/baltoy.aif deleted file mode 100644 index 25e1a708a..000000000 Binary files a/sound/direct_sound_samples/cries/baltoy.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/baltoy.wav b/sound/direct_sound_samples/cries/baltoy.wav new file mode 100644 index 000000000..59867a0ed Binary files /dev/null and b/sound/direct_sound_samples/cries/baltoy.wav differ diff --git a/sound/direct_sound_samples/cries/banette.aif b/sound/direct_sound_samples/cries/banette.aif deleted file mode 100644 index 23713f1b5..000000000 Binary files a/sound/direct_sound_samples/cries/banette.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/banette.wav b/sound/direct_sound_samples/cries/banette.wav new file mode 100644 index 000000000..b2af33b68 Binary files /dev/null and b/sound/direct_sound_samples/cries/banette.wav differ diff --git a/sound/direct_sound_samples/cries/barboach.aif b/sound/direct_sound_samples/cries/barboach.aif deleted file mode 100644 index 4b9228259..000000000 Binary files a/sound/direct_sound_samples/cries/barboach.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/barboach.wav b/sound/direct_sound_samples/cries/barboach.wav new file mode 100644 index 000000000..a955c76c2 Binary files /dev/null and b/sound/direct_sound_samples/cries/barboach.wav differ diff --git a/sound/direct_sound_samples/cries/bayleef.aif b/sound/direct_sound_samples/cries/bayleef.aif deleted file mode 100644 index 8cef22df3..000000000 Binary files a/sound/direct_sound_samples/cries/bayleef.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/bayleef.wav b/sound/direct_sound_samples/cries/bayleef.wav new file mode 100644 index 000000000..6dbcaf918 Binary files /dev/null and b/sound/direct_sound_samples/cries/bayleef.wav differ diff --git a/sound/direct_sound_samples/cries/beautifly.aif b/sound/direct_sound_samples/cries/beautifly.aif deleted file mode 100644 index 0924b6c55..000000000 Binary files a/sound/direct_sound_samples/cries/beautifly.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/beautifly.wav b/sound/direct_sound_samples/cries/beautifly.wav new file mode 100644 index 000000000..248428abc Binary files /dev/null and b/sound/direct_sound_samples/cries/beautifly.wav differ diff --git a/sound/direct_sound_samples/cries/beedrill.aif b/sound/direct_sound_samples/cries/beedrill.aif deleted file mode 100644 index 00d0bc96c..000000000 Binary files a/sound/direct_sound_samples/cries/beedrill.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/beedrill.wav b/sound/direct_sound_samples/cries/beedrill.wav new file mode 100644 index 000000000..a3fa107ac Binary files /dev/null and b/sound/direct_sound_samples/cries/beedrill.wav differ diff --git a/sound/direct_sound_samples/cries/beldum.aif b/sound/direct_sound_samples/cries/beldum.aif deleted file mode 100644 index 76435a6a8..000000000 Binary files a/sound/direct_sound_samples/cries/beldum.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/beldum.wav b/sound/direct_sound_samples/cries/beldum.wav new file mode 100644 index 000000000..427bb2477 Binary files /dev/null and b/sound/direct_sound_samples/cries/beldum.wav differ diff --git a/sound/direct_sound_samples/cries/bellossom.aif b/sound/direct_sound_samples/cries/bellossom.aif deleted file mode 100644 index 86580df65..000000000 Binary files a/sound/direct_sound_samples/cries/bellossom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/bellossom.wav b/sound/direct_sound_samples/cries/bellossom.wav new file mode 100644 index 000000000..7d47d8a78 Binary files /dev/null and b/sound/direct_sound_samples/cries/bellossom.wav differ diff --git a/sound/direct_sound_samples/cries/bellsprout.aif b/sound/direct_sound_samples/cries/bellsprout.aif deleted file mode 100644 index cfdd7aed2..000000000 Binary files a/sound/direct_sound_samples/cries/bellsprout.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/bellsprout.wav b/sound/direct_sound_samples/cries/bellsprout.wav new file mode 100644 index 000000000..0f7a8ed63 Binary files /dev/null and b/sound/direct_sound_samples/cries/bellsprout.wav differ diff --git a/sound/direct_sound_samples/cries/blastoise.aif b/sound/direct_sound_samples/cries/blastoise.aif deleted file mode 100644 index 76dac2bcc..000000000 Binary files a/sound/direct_sound_samples/cries/blastoise.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/blastoise.wav b/sound/direct_sound_samples/cries/blastoise.wav new file mode 100644 index 000000000..bcd068dd8 Binary files /dev/null and b/sound/direct_sound_samples/cries/blastoise.wav differ diff --git a/sound/direct_sound_samples/cries/blaziken.aif b/sound/direct_sound_samples/cries/blaziken.aif deleted file mode 100644 index 83e5ccf23..000000000 Binary files a/sound/direct_sound_samples/cries/blaziken.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/blaziken.wav b/sound/direct_sound_samples/cries/blaziken.wav new file mode 100644 index 000000000..dd570e0bb Binary files /dev/null and b/sound/direct_sound_samples/cries/blaziken.wav differ diff --git a/sound/direct_sound_samples/cries/blissey.aif b/sound/direct_sound_samples/cries/blissey.aif deleted file mode 100644 index 897eb3d69..000000000 Binary files a/sound/direct_sound_samples/cries/blissey.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/blissey.wav b/sound/direct_sound_samples/cries/blissey.wav new file mode 100644 index 000000000..5cd44825d Binary files /dev/null and b/sound/direct_sound_samples/cries/blissey.wav differ diff --git a/sound/direct_sound_samples/cries/breloom.aif b/sound/direct_sound_samples/cries/breloom.aif deleted file mode 100644 index ea3f1bb66..000000000 Binary files a/sound/direct_sound_samples/cries/breloom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/breloom.wav b/sound/direct_sound_samples/cries/breloom.wav new file mode 100644 index 000000000..226a65193 Binary files /dev/null and b/sound/direct_sound_samples/cries/breloom.wav differ diff --git a/sound/direct_sound_samples/cries/bulbasaur.aif b/sound/direct_sound_samples/cries/bulbasaur.aif deleted file mode 100644 index 040fb1df7..000000000 Binary files a/sound/direct_sound_samples/cries/bulbasaur.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/bulbasaur.wav b/sound/direct_sound_samples/cries/bulbasaur.wav new file mode 100644 index 000000000..d081218ba Binary files /dev/null and b/sound/direct_sound_samples/cries/bulbasaur.wav differ diff --git a/sound/direct_sound_samples/cries/butterfree.aif b/sound/direct_sound_samples/cries/butterfree.aif deleted file mode 100644 index f27616395..000000000 Binary files a/sound/direct_sound_samples/cries/butterfree.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/butterfree.wav b/sound/direct_sound_samples/cries/butterfree.wav new file mode 100644 index 000000000..19e781569 Binary files /dev/null and b/sound/direct_sound_samples/cries/butterfree.wav differ diff --git a/sound/direct_sound_samples/cries/cacnea.aif b/sound/direct_sound_samples/cries/cacnea.aif deleted file mode 100644 index 4fd5acd36..000000000 Binary files a/sound/direct_sound_samples/cries/cacnea.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cacnea.wav b/sound/direct_sound_samples/cries/cacnea.wav new file mode 100644 index 000000000..dcf4323c4 Binary files /dev/null and b/sound/direct_sound_samples/cries/cacnea.wav differ diff --git a/sound/direct_sound_samples/cries/cacturne.aif b/sound/direct_sound_samples/cries/cacturne.aif deleted file mode 100644 index d9fb8fda8..000000000 Binary files a/sound/direct_sound_samples/cries/cacturne.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cacturne.wav b/sound/direct_sound_samples/cries/cacturne.wav new file mode 100644 index 000000000..bc5446317 Binary files /dev/null and b/sound/direct_sound_samples/cries/cacturne.wav differ diff --git a/sound/direct_sound_samples/cries/camerupt.aif b/sound/direct_sound_samples/cries/camerupt.aif deleted file mode 100644 index 325df1220..000000000 Binary files a/sound/direct_sound_samples/cries/camerupt.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/camerupt.wav b/sound/direct_sound_samples/cries/camerupt.wav new file mode 100644 index 000000000..bef89f41d Binary files /dev/null and b/sound/direct_sound_samples/cries/camerupt.wav differ diff --git a/sound/direct_sound_samples/cries/carvanha.aif b/sound/direct_sound_samples/cries/carvanha.aif deleted file mode 100644 index c7cdedf91..000000000 Binary files a/sound/direct_sound_samples/cries/carvanha.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/carvanha.wav b/sound/direct_sound_samples/cries/carvanha.wav new file mode 100644 index 000000000..07a2f9d45 Binary files /dev/null and b/sound/direct_sound_samples/cries/carvanha.wav differ diff --git a/sound/direct_sound_samples/cries/cascoon.aif b/sound/direct_sound_samples/cries/cascoon.aif deleted file mode 100644 index 17eef0ee9..000000000 Binary files a/sound/direct_sound_samples/cries/cascoon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cascoon.wav b/sound/direct_sound_samples/cries/cascoon.wav new file mode 100644 index 000000000..3e3daf626 Binary files /dev/null and b/sound/direct_sound_samples/cries/cascoon.wav differ diff --git a/sound/direct_sound_samples/cries/castform.aif b/sound/direct_sound_samples/cries/castform.aif deleted file mode 100644 index c10745640..000000000 Binary files a/sound/direct_sound_samples/cries/castform.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/castform.wav b/sound/direct_sound_samples/cries/castform.wav new file mode 100644 index 000000000..8b50b35d9 Binary files /dev/null and b/sound/direct_sound_samples/cries/castform.wav differ diff --git a/sound/direct_sound_samples/cries/caterpie.aif b/sound/direct_sound_samples/cries/caterpie.aif deleted file mode 100644 index b0b246b4f..000000000 Binary files a/sound/direct_sound_samples/cries/caterpie.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/caterpie.wav b/sound/direct_sound_samples/cries/caterpie.wav new file mode 100644 index 000000000..c50736446 Binary files /dev/null and b/sound/direct_sound_samples/cries/caterpie.wav differ diff --git a/sound/direct_sound_samples/cries/celebi.aif b/sound/direct_sound_samples/cries/celebi.aif deleted file mode 100644 index 9f9f3ea39..000000000 Binary files a/sound/direct_sound_samples/cries/celebi.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/celebi.wav b/sound/direct_sound_samples/cries/celebi.wav new file mode 100644 index 000000000..c5a560e4b Binary files /dev/null and b/sound/direct_sound_samples/cries/celebi.wav differ diff --git a/sound/direct_sound_samples/cries/chansey.aif b/sound/direct_sound_samples/cries/chansey.aif deleted file mode 100644 index d764c86ce..000000000 Binary files a/sound/direct_sound_samples/cries/chansey.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/chansey.wav b/sound/direct_sound_samples/cries/chansey.wav new file mode 100644 index 000000000..418acc387 Binary files /dev/null and b/sound/direct_sound_samples/cries/chansey.wav differ diff --git a/sound/direct_sound_samples/cries/charizard.aif b/sound/direct_sound_samples/cries/charizard.aif deleted file mode 100644 index 48321b792..000000000 Binary files a/sound/direct_sound_samples/cries/charizard.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/charizard.wav b/sound/direct_sound_samples/cries/charizard.wav new file mode 100644 index 000000000..fd748e8ee Binary files /dev/null and b/sound/direct_sound_samples/cries/charizard.wav differ diff --git a/sound/direct_sound_samples/cries/charmander.aif b/sound/direct_sound_samples/cries/charmander.aif deleted file mode 100644 index d72c0f9e0..000000000 Binary files a/sound/direct_sound_samples/cries/charmander.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/charmander.wav b/sound/direct_sound_samples/cries/charmander.wav new file mode 100644 index 000000000..09762f210 Binary files /dev/null and b/sound/direct_sound_samples/cries/charmander.wav differ diff --git a/sound/direct_sound_samples/cries/charmeleon.aif b/sound/direct_sound_samples/cries/charmeleon.aif deleted file mode 100644 index 8e84af0d8..000000000 Binary files a/sound/direct_sound_samples/cries/charmeleon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/charmeleon.wav b/sound/direct_sound_samples/cries/charmeleon.wav new file mode 100644 index 000000000..a5289e2b0 Binary files /dev/null and b/sound/direct_sound_samples/cries/charmeleon.wav differ diff --git a/sound/direct_sound_samples/cries/chikorita.aif b/sound/direct_sound_samples/cries/chikorita.aif deleted file mode 100644 index 67ceafdc3..000000000 Binary files a/sound/direct_sound_samples/cries/chikorita.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/chikorita.wav b/sound/direct_sound_samples/cries/chikorita.wav new file mode 100644 index 000000000..485f364e7 Binary files /dev/null and b/sound/direct_sound_samples/cries/chikorita.wav differ diff --git a/sound/direct_sound_samples/cries/chimecho.aif b/sound/direct_sound_samples/cries/chimecho.aif deleted file mode 100644 index 87ee2faee..000000000 Binary files a/sound/direct_sound_samples/cries/chimecho.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/chimecho.wav b/sound/direct_sound_samples/cries/chimecho.wav new file mode 100644 index 000000000..2ffa59350 Binary files /dev/null and b/sound/direct_sound_samples/cries/chimecho.wav differ diff --git a/sound/direct_sound_samples/cries/chinchou.aif b/sound/direct_sound_samples/cries/chinchou.aif deleted file mode 100644 index 356475678..000000000 Binary files a/sound/direct_sound_samples/cries/chinchou.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/chinchou.wav b/sound/direct_sound_samples/cries/chinchou.wav new file mode 100644 index 000000000..4fe6c6a77 Binary files /dev/null and b/sound/direct_sound_samples/cries/chinchou.wav differ diff --git a/sound/direct_sound_samples/cries/clamperl.aif b/sound/direct_sound_samples/cries/clamperl.aif deleted file mode 100644 index 7250bd703..000000000 Binary files a/sound/direct_sound_samples/cries/clamperl.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/clamperl.wav b/sound/direct_sound_samples/cries/clamperl.wav new file mode 100644 index 000000000..5e80ebab6 Binary files /dev/null and b/sound/direct_sound_samples/cries/clamperl.wav differ diff --git a/sound/direct_sound_samples/cries/claydol.aif b/sound/direct_sound_samples/cries/claydol.aif deleted file mode 100644 index b89772021..000000000 Binary files a/sound/direct_sound_samples/cries/claydol.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/claydol.wav b/sound/direct_sound_samples/cries/claydol.wav new file mode 100644 index 000000000..27b7ed576 Binary files /dev/null and b/sound/direct_sound_samples/cries/claydol.wav differ diff --git a/sound/direct_sound_samples/cries/clefable.aif b/sound/direct_sound_samples/cries/clefable.aif deleted file mode 100644 index 9c2d8c664..000000000 Binary files a/sound/direct_sound_samples/cries/clefable.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/clefable.wav b/sound/direct_sound_samples/cries/clefable.wav new file mode 100644 index 000000000..602577cab Binary files /dev/null and b/sound/direct_sound_samples/cries/clefable.wav differ diff --git a/sound/direct_sound_samples/cries/clefairy.aif b/sound/direct_sound_samples/cries/clefairy.aif deleted file mode 100644 index c370c4a9b..000000000 Binary files a/sound/direct_sound_samples/cries/clefairy.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/clefairy.wav b/sound/direct_sound_samples/cries/clefairy.wav new file mode 100644 index 000000000..2214cb445 Binary files /dev/null and b/sound/direct_sound_samples/cries/clefairy.wav differ diff --git a/sound/direct_sound_samples/cries/cleffa.aif b/sound/direct_sound_samples/cries/cleffa.aif deleted file mode 100644 index b27cdeca9..000000000 Binary files a/sound/direct_sound_samples/cries/cleffa.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cleffa.wav b/sound/direct_sound_samples/cries/cleffa.wav new file mode 100644 index 000000000..946a75959 Binary files /dev/null and b/sound/direct_sound_samples/cries/cleffa.wav differ diff --git a/sound/direct_sound_samples/cries/cloyster.aif b/sound/direct_sound_samples/cries/cloyster.aif deleted file mode 100644 index b406deab0..000000000 Binary files a/sound/direct_sound_samples/cries/cloyster.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cloyster.wav b/sound/direct_sound_samples/cries/cloyster.wav new file mode 100644 index 000000000..acd5f7fc3 Binary files /dev/null and b/sound/direct_sound_samples/cries/cloyster.wav differ diff --git a/sound/direct_sound_samples/cries/combusken.aif b/sound/direct_sound_samples/cries/combusken.aif deleted file mode 100644 index 7d4b0d4cc..000000000 Binary files a/sound/direct_sound_samples/cries/combusken.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/combusken.wav b/sound/direct_sound_samples/cries/combusken.wav new file mode 100644 index 000000000..6c23eb499 Binary files /dev/null and b/sound/direct_sound_samples/cries/combusken.wav differ diff --git a/sound/direct_sound_samples/cries/corphish.aif b/sound/direct_sound_samples/cries/corphish.aif deleted file mode 100644 index f0f5ca01e..000000000 Binary files a/sound/direct_sound_samples/cries/corphish.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/corphish.wav b/sound/direct_sound_samples/cries/corphish.wav new file mode 100644 index 000000000..72af4a9e0 Binary files /dev/null and b/sound/direct_sound_samples/cries/corphish.wav differ diff --git a/sound/direct_sound_samples/cries/corsola.aif b/sound/direct_sound_samples/cries/corsola.aif deleted file mode 100644 index 68e743bfd..000000000 Binary files a/sound/direct_sound_samples/cries/corsola.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/corsola.wav b/sound/direct_sound_samples/cries/corsola.wav new file mode 100644 index 000000000..c40b570a1 Binary files /dev/null and b/sound/direct_sound_samples/cries/corsola.wav differ diff --git a/sound/direct_sound_samples/cries/cradily.aif b/sound/direct_sound_samples/cries/cradily.aif deleted file mode 100644 index 197dc8d92..000000000 Binary files a/sound/direct_sound_samples/cries/cradily.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cradily.wav b/sound/direct_sound_samples/cries/cradily.wav new file mode 100644 index 000000000..ba4f755c7 Binary files /dev/null and b/sound/direct_sound_samples/cries/cradily.wav differ diff --git a/sound/direct_sound_samples/cries/crawdaunt.aif b/sound/direct_sound_samples/cries/crawdaunt.aif deleted file mode 100644 index a203ce2fb..000000000 Binary files a/sound/direct_sound_samples/cries/crawdaunt.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/crawdaunt.wav b/sound/direct_sound_samples/cries/crawdaunt.wav new file mode 100644 index 000000000..2ce6659a3 Binary files /dev/null and b/sound/direct_sound_samples/cries/crawdaunt.wav differ diff --git a/sound/direct_sound_samples/cries/crobat.aif b/sound/direct_sound_samples/cries/crobat.aif deleted file mode 100644 index 75d039bd8..000000000 Binary files a/sound/direct_sound_samples/cries/crobat.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/crobat.wav b/sound/direct_sound_samples/cries/crobat.wav new file mode 100644 index 000000000..9000b8c29 Binary files /dev/null and b/sound/direct_sound_samples/cries/crobat.wav differ diff --git a/sound/direct_sound_samples/cries/croconaw.aif b/sound/direct_sound_samples/cries/croconaw.aif deleted file mode 100644 index afb7f3fdc..000000000 Binary files a/sound/direct_sound_samples/cries/croconaw.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/croconaw.wav b/sound/direct_sound_samples/cries/croconaw.wav new file mode 100644 index 000000000..9fd775fc0 Binary files /dev/null and b/sound/direct_sound_samples/cries/croconaw.wav differ diff --git a/sound/direct_sound_samples/cries/cubone.aif b/sound/direct_sound_samples/cries/cubone.aif deleted file mode 100644 index 170745da1..000000000 Binary files a/sound/direct_sound_samples/cries/cubone.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cubone.wav b/sound/direct_sound_samples/cries/cubone.wav new file mode 100644 index 000000000..44b97c4bb Binary files /dev/null and b/sound/direct_sound_samples/cries/cubone.wav differ diff --git a/sound/direct_sound_samples/cries/cyndaquil.aif b/sound/direct_sound_samples/cries/cyndaquil.aif deleted file mode 100644 index 4aa580199..000000000 Binary files a/sound/direct_sound_samples/cries/cyndaquil.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/cyndaquil.wav b/sound/direct_sound_samples/cries/cyndaquil.wav new file mode 100644 index 000000000..23e9b3273 Binary files /dev/null and b/sound/direct_sound_samples/cries/cyndaquil.wav differ diff --git a/sound/direct_sound_samples/cries/delcatty.aif b/sound/direct_sound_samples/cries/delcatty.aif deleted file mode 100644 index dd665b110..000000000 Binary files a/sound/direct_sound_samples/cries/delcatty.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/delcatty.wav b/sound/direct_sound_samples/cries/delcatty.wav new file mode 100644 index 000000000..780705266 Binary files /dev/null and b/sound/direct_sound_samples/cries/delcatty.wav differ diff --git a/sound/direct_sound_samples/cries/delibird.aif b/sound/direct_sound_samples/cries/delibird.aif deleted file mode 100644 index dbedc42d4..000000000 Binary files a/sound/direct_sound_samples/cries/delibird.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/delibird.wav b/sound/direct_sound_samples/cries/delibird.wav new file mode 100644 index 000000000..f4b27e732 Binary files /dev/null and b/sound/direct_sound_samples/cries/delibird.wav differ diff --git a/sound/direct_sound_samples/cries/deoxys.aif b/sound/direct_sound_samples/cries/deoxys.aif deleted file mode 100644 index b9623b337..000000000 Binary files a/sound/direct_sound_samples/cries/deoxys.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/deoxys.wav b/sound/direct_sound_samples/cries/deoxys.wav new file mode 100644 index 000000000..c5943318d Binary files /dev/null and b/sound/direct_sound_samples/cries/deoxys.wav differ diff --git a/sound/direct_sound_samples/cries/dewgong.aif b/sound/direct_sound_samples/cries/dewgong.aif deleted file mode 100644 index 72d69b773..000000000 Binary files a/sound/direct_sound_samples/cries/dewgong.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dewgong.wav b/sound/direct_sound_samples/cries/dewgong.wav new file mode 100644 index 000000000..c99284027 Binary files /dev/null and b/sound/direct_sound_samples/cries/dewgong.wav differ diff --git a/sound/direct_sound_samples/cries/diglett.aif b/sound/direct_sound_samples/cries/diglett.aif deleted file mode 100644 index b116af7f2..000000000 Binary files a/sound/direct_sound_samples/cries/diglett.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/diglett.wav b/sound/direct_sound_samples/cries/diglett.wav new file mode 100644 index 000000000..ba098f64a Binary files /dev/null and b/sound/direct_sound_samples/cries/diglett.wav differ diff --git a/sound/direct_sound_samples/cries/ditto.aif b/sound/direct_sound_samples/cries/ditto.aif deleted file mode 100644 index 2c797f4c4..000000000 Binary files a/sound/direct_sound_samples/cries/ditto.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ditto.wav b/sound/direct_sound_samples/cries/ditto.wav new file mode 100644 index 000000000..b26b2d56c Binary files /dev/null and b/sound/direct_sound_samples/cries/ditto.wav differ diff --git a/sound/direct_sound_samples/cries/dodrio.aif b/sound/direct_sound_samples/cries/dodrio.aif deleted file mode 100644 index 111d8bf3e..000000000 Binary files a/sound/direct_sound_samples/cries/dodrio.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dodrio.wav b/sound/direct_sound_samples/cries/dodrio.wav new file mode 100644 index 000000000..c23d097d8 Binary files /dev/null and b/sound/direct_sound_samples/cries/dodrio.wav differ diff --git a/sound/direct_sound_samples/cries/doduo.aif b/sound/direct_sound_samples/cries/doduo.aif deleted file mode 100644 index 5700b91d9..000000000 Binary files a/sound/direct_sound_samples/cries/doduo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/doduo.wav b/sound/direct_sound_samples/cries/doduo.wav new file mode 100644 index 000000000..3d7bad39e Binary files /dev/null and b/sound/direct_sound_samples/cries/doduo.wav differ diff --git a/sound/direct_sound_samples/cries/donphan.aif b/sound/direct_sound_samples/cries/donphan.aif deleted file mode 100644 index a41c124b1..000000000 Binary files a/sound/direct_sound_samples/cries/donphan.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/donphan.wav b/sound/direct_sound_samples/cries/donphan.wav new file mode 100644 index 000000000..64a69a34f Binary files /dev/null and b/sound/direct_sound_samples/cries/donphan.wav differ diff --git a/sound/direct_sound_samples/cries/dragonair.aif b/sound/direct_sound_samples/cries/dragonair.aif deleted file mode 100644 index 38c3955ef..000000000 Binary files a/sound/direct_sound_samples/cries/dragonair.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dragonair.wav b/sound/direct_sound_samples/cries/dragonair.wav new file mode 100644 index 000000000..ab902f69d Binary files /dev/null and b/sound/direct_sound_samples/cries/dragonair.wav differ diff --git a/sound/direct_sound_samples/cries/dragonite.aif b/sound/direct_sound_samples/cries/dragonite.aif deleted file mode 100644 index d1e7b11cf..000000000 Binary files a/sound/direct_sound_samples/cries/dragonite.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dragonite.wav b/sound/direct_sound_samples/cries/dragonite.wav new file mode 100644 index 000000000..98f044cc3 Binary files /dev/null and b/sound/direct_sound_samples/cries/dragonite.wav differ diff --git a/sound/direct_sound_samples/cries/dratini.aif b/sound/direct_sound_samples/cries/dratini.aif deleted file mode 100644 index 298497480..000000000 Binary files a/sound/direct_sound_samples/cries/dratini.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dratini.wav b/sound/direct_sound_samples/cries/dratini.wav new file mode 100644 index 000000000..ab59d4c18 Binary files /dev/null and b/sound/direct_sound_samples/cries/dratini.wav differ diff --git a/sound/direct_sound_samples/cries/drowzee.aif b/sound/direct_sound_samples/cries/drowzee.aif deleted file mode 100644 index 0d53eb2ff..000000000 Binary files a/sound/direct_sound_samples/cries/drowzee.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/drowzee.wav b/sound/direct_sound_samples/cries/drowzee.wav new file mode 100644 index 000000000..3294d5f83 Binary files /dev/null and b/sound/direct_sound_samples/cries/drowzee.wav differ diff --git a/sound/direct_sound_samples/cries/dugtrio.aif b/sound/direct_sound_samples/cries/dugtrio.aif deleted file mode 100644 index dff573dfe..000000000 Binary files a/sound/direct_sound_samples/cries/dugtrio.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dugtrio.wav b/sound/direct_sound_samples/cries/dugtrio.wav new file mode 100644 index 000000000..59be4c5a7 Binary files /dev/null and b/sound/direct_sound_samples/cries/dugtrio.wav differ diff --git a/sound/direct_sound_samples/cries/dunsparce.aif b/sound/direct_sound_samples/cries/dunsparce.aif deleted file mode 100644 index 454617c05..000000000 Binary files a/sound/direct_sound_samples/cries/dunsparce.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dunsparce.wav b/sound/direct_sound_samples/cries/dunsparce.wav new file mode 100644 index 000000000..b3bc21a04 Binary files /dev/null and b/sound/direct_sound_samples/cries/dunsparce.wav differ diff --git a/sound/direct_sound_samples/cries/dusclops.aif b/sound/direct_sound_samples/cries/dusclops.aif deleted file mode 100644 index de9657e4f..000000000 Binary files a/sound/direct_sound_samples/cries/dusclops.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dusclops.wav b/sound/direct_sound_samples/cries/dusclops.wav new file mode 100644 index 000000000..0ae486972 Binary files /dev/null and b/sound/direct_sound_samples/cries/dusclops.wav differ diff --git a/sound/direct_sound_samples/cries/duskull.aif b/sound/direct_sound_samples/cries/duskull.aif deleted file mode 100644 index d84ea274e..000000000 Binary files a/sound/direct_sound_samples/cries/duskull.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/duskull.wav b/sound/direct_sound_samples/cries/duskull.wav new file mode 100644 index 000000000..7ef72a397 Binary files /dev/null and b/sound/direct_sound_samples/cries/duskull.wav differ diff --git a/sound/direct_sound_samples/cries/dustox.aif b/sound/direct_sound_samples/cries/dustox.aif deleted file mode 100644 index 56d8eb336..000000000 Binary files a/sound/direct_sound_samples/cries/dustox.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/dustox.wav b/sound/direct_sound_samples/cries/dustox.wav new file mode 100644 index 000000000..764758562 Binary files /dev/null and b/sound/direct_sound_samples/cries/dustox.wav differ diff --git a/sound/direct_sound_samples/cries/eevee.aif b/sound/direct_sound_samples/cries/eevee.aif deleted file mode 100644 index 8711a1470..000000000 Binary files a/sound/direct_sound_samples/cries/eevee.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/eevee.wav b/sound/direct_sound_samples/cries/eevee.wav new file mode 100644 index 000000000..833528278 Binary files /dev/null and b/sound/direct_sound_samples/cries/eevee.wav differ diff --git a/sound/direct_sound_samples/cries/ekans.aif b/sound/direct_sound_samples/cries/ekans.aif deleted file mode 100644 index 9eb396735..000000000 Binary files a/sound/direct_sound_samples/cries/ekans.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ekans.wav b/sound/direct_sound_samples/cries/ekans.wav new file mode 100644 index 000000000..5a7515847 Binary files /dev/null and b/sound/direct_sound_samples/cries/ekans.wav differ diff --git a/sound/direct_sound_samples/cries/electabuzz.aif b/sound/direct_sound_samples/cries/electabuzz.aif deleted file mode 100644 index 5abdb49b7..000000000 Binary files a/sound/direct_sound_samples/cries/electabuzz.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/electabuzz.wav b/sound/direct_sound_samples/cries/electabuzz.wav new file mode 100644 index 000000000..8443823fb Binary files /dev/null and b/sound/direct_sound_samples/cries/electabuzz.wav differ diff --git a/sound/direct_sound_samples/cries/electrike.aif b/sound/direct_sound_samples/cries/electrike.aif deleted file mode 100644 index 56c9666df..000000000 Binary files a/sound/direct_sound_samples/cries/electrike.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/electrike.wav b/sound/direct_sound_samples/cries/electrike.wav new file mode 100644 index 000000000..9b09301ff Binary files /dev/null and b/sound/direct_sound_samples/cries/electrike.wav differ diff --git a/sound/direct_sound_samples/cries/electrode.aif b/sound/direct_sound_samples/cries/electrode.aif deleted file mode 100644 index cbd7f0971..000000000 Binary files a/sound/direct_sound_samples/cries/electrode.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/electrode.wav b/sound/direct_sound_samples/cries/electrode.wav new file mode 100644 index 000000000..4ad346759 Binary files /dev/null and b/sound/direct_sound_samples/cries/electrode.wav differ diff --git a/sound/direct_sound_samples/cries/elekid.aif b/sound/direct_sound_samples/cries/elekid.aif deleted file mode 100644 index 839bdee17..000000000 Binary files a/sound/direct_sound_samples/cries/elekid.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/elekid.wav b/sound/direct_sound_samples/cries/elekid.wav new file mode 100644 index 000000000..249111386 Binary files /dev/null and b/sound/direct_sound_samples/cries/elekid.wav differ diff --git a/sound/direct_sound_samples/cries/entei.aif b/sound/direct_sound_samples/cries/entei.aif deleted file mode 100644 index 56a740207..000000000 Binary files a/sound/direct_sound_samples/cries/entei.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/entei.wav b/sound/direct_sound_samples/cries/entei.wav new file mode 100644 index 000000000..cce2db4b0 Binary files /dev/null and b/sound/direct_sound_samples/cries/entei.wav differ diff --git a/sound/direct_sound_samples/cries/espeon.aif b/sound/direct_sound_samples/cries/espeon.aif deleted file mode 100644 index 53dc62f4d..000000000 Binary files a/sound/direct_sound_samples/cries/espeon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/espeon.wav b/sound/direct_sound_samples/cries/espeon.wav new file mode 100644 index 000000000..8456a350d Binary files /dev/null and b/sound/direct_sound_samples/cries/espeon.wav differ diff --git a/sound/direct_sound_samples/cries/exeggcute.aif b/sound/direct_sound_samples/cries/exeggcute.aif deleted file mode 100644 index 147912c2f..000000000 Binary files a/sound/direct_sound_samples/cries/exeggcute.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/exeggcute.wav b/sound/direct_sound_samples/cries/exeggcute.wav new file mode 100644 index 000000000..865aedc1f Binary files /dev/null and b/sound/direct_sound_samples/cries/exeggcute.wav differ diff --git a/sound/direct_sound_samples/cries/exeggutor.aif b/sound/direct_sound_samples/cries/exeggutor.aif deleted file mode 100644 index c0b9177bf..000000000 Binary files a/sound/direct_sound_samples/cries/exeggutor.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/exeggutor.wav b/sound/direct_sound_samples/cries/exeggutor.wav new file mode 100644 index 000000000..831eb36cd Binary files /dev/null and b/sound/direct_sound_samples/cries/exeggutor.wav differ diff --git a/sound/direct_sound_samples/cries/exploud.aif b/sound/direct_sound_samples/cries/exploud.aif deleted file mode 100644 index 5b80870cc..000000000 Binary files a/sound/direct_sound_samples/cries/exploud.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/exploud.wav b/sound/direct_sound_samples/cries/exploud.wav new file mode 100644 index 000000000..1b81512ce Binary files /dev/null and b/sound/direct_sound_samples/cries/exploud.wav differ diff --git a/sound/direct_sound_samples/cries/farfetchd.aif b/sound/direct_sound_samples/cries/farfetchd.aif deleted file mode 100644 index f1db556dc..000000000 Binary files a/sound/direct_sound_samples/cries/farfetchd.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/farfetchd.wav b/sound/direct_sound_samples/cries/farfetchd.wav new file mode 100644 index 000000000..294322e04 Binary files /dev/null and b/sound/direct_sound_samples/cries/farfetchd.wav differ diff --git a/sound/direct_sound_samples/cries/fearow.aif b/sound/direct_sound_samples/cries/fearow.aif deleted file mode 100644 index 74a76f6d4..000000000 Binary files a/sound/direct_sound_samples/cries/fearow.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/fearow.wav b/sound/direct_sound_samples/cries/fearow.wav new file mode 100644 index 000000000..d2ab288dd Binary files /dev/null and b/sound/direct_sound_samples/cries/fearow.wav differ diff --git a/sound/direct_sound_samples/cries/feebas.aif b/sound/direct_sound_samples/cries/feebas.aif deleted file mode 100644 index c386522f1..000000000 Binary files a/sound/direct_sound_samples/cries/feebas.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/feebas.wav b/sound/direct_sound_samples/cries/feebas.wav new file mode 100644 index 000000000..1e9037b7e Binary files /dev/null and b/sound/direct_sound_samples/cries/feebas.wav differ diff --git a/sound/direct_sound_samples/cries/feraligatr.aif b/sound/direct_sound_samples/cries/feraligatr.aif deleted file mode 100644 index 9fcd93cff..000000000 Binary files a/sound/direct_sound_samples/cries/feraligatr.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/feraligatr.wav b/sound/direct_sound_samples/cries/feraligatr.wav new file mode 100644 index 000000000..f17eec474 Binary files /dev/null and b/sound/direct_sound_samples/cries/feraligatr.wav differ diff --git a/sound/direct_sound_samples/cries/flaaffy.aif b/sound/direct_sound_samples/cries/flaaffy.aif deleted file mode 100644 index 93dfacfaf..000000000 Binary files a/sound/direct_sound_samples/cries/flaaffy.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/flaaffy.wav b/sound/direct_sound_samples/cries/flaaffy.wav new file mode 100644 index 000000000..9459c8e06 Binary files /dev/null and b/sound/direct_sound_samples/cries/flaaffy.wav differ diff --git a/sound/direct_sound_samples/cries/flareon.aif b/sound/direct_sound_samples/cries/flareon.aif deleted file mode 100644 index 58d28e60a..000000000 Binary files a/sound/direct_sound_samples/cries/flareon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/flareon.wav b/sound/direct_sound_samples/cries/flareon.wav new file mode 100644 index 000000000..d138a75e0 Binary files /dev/null and b/sound/direct_sound_samples/cries/flareon.wav differ diff --git a/sound/direct_sound_samples/cries/flygon.aif b/sound/direct_sound_samples/cries/flygon.aif deleted file mode 100644 index c8c377016..000000000 Binary files a/sound/direct_sound_samples/cries/flygon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/flygon.wav b/sound/direct_sound_samples/cries/flygon.wav new file mode 100644 index 000000000..2d64627ee Binary files /dev/null and b/sound/direct_sound_samples/cries/flygon.wav differ diff --git a/sound/direct_sound_samples/cries/forretress.aif b/sound/direct_sound_samples/cries/forretress.aif deleted file mode 100644 index 288dacbea..000000000 Binary files a/sound/direct_sound_samples/cries/forretress.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/forretress.wav b/sound/direct_sound_samples/cries/forretress.wav new file mode 100644 index 000000000..008140c1e Binary files /dev/null and b/sound/direct_sound_samples/cries/forretress.wav differ diff --git a/sound/direct_sound_samples/cries/furret.aif b/sound/direct_sound_samples/cries/furret.aif deleted file mode 100644 index 6b4e9ce11..000000000 Binary files a/sound/direct_sound_samples/cries/furret.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/furret.wav b/sound/direct_sound_samples/cries/furret.wav new file mode 100644 index 000000000..605eeec17 Binary files /dev/null and b/sound/direct_sound_samples/cries/furret.wav differ diff --git a/sound/direct_sound_samples/cries/gardevoir.aif b/sound/direct_sound_samples/cries/gardevoir.aif deleted file mode 100644 index a14780990..000000000 Binary files a/sound/direct_sound_samples/cries/gardevoir.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gardevoir.wav b/sound/direct_sound_samples/cries/gardevoir.wav new file mode 100644 index 000000000..a40ef1262 Binary files /dev/null and b/sound/direct_sound_samples/cries/gardevoir.wav differ diff --git a/sound/direct_sound_samples/cries/gastly.aif b/sound/direct_sound_samples/cries/gastly.aif deleted file mode 100644 index 93cef851d..000000000 Binary files a/sound/direct_sound_samples/cries/gastly.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gastly.wav b/sound/direct_sound_samples/cries/gastly.wav new file mode 100644 index 000000000..7d9c25de3 Binary files /dev/null and b/sound/direct_sound_samples/cries/gastly.wav differ diff --git a/sound/direct_sound_samples/cries/gengar.aif b/sound/direct_sound_samples/cries/gengar.aif deleted file mode 100644 index 379b5d37e..000000000 Binary files a/sound/direct_sound_samples/cries/gengar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gengar.wav b/sound/direct_sound_samples/cries/gengar.wav new file mode 100644 index 000000000..74ec623df Binary files /dev/null and b/sound/direct_sound_samples/cries/gengar.wav differ diff --git a/sound/direct_sound_samples/cries/geodude.aif b/sound/direct_sound_samples/cries/geodude.aif deleted file mode 100644 index 143b9031c..000000000 Binary files a/sound/direct_sound_samples/cries/geodude.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/geodude.wav b/sound/direct_sound_samples/cries/geodude.wav new file mode 100644 index 000000000..0c1336a8e Binary files /dev/null and b/sound/direct_sound_samples/cries/geodude.wav differ diff --git a/sound/direct_sound_samples/cries/girafarig.aif b/sound/direct_sound_samples/cries/girafarig.aif deleted file mode 100644 index 1dd5f93e2..000000000 Binary files a/sound/direct_sound_samples/cries/girafarig.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/girafarig.wav b/sound/direct_sound_samples/cries/girafarig.wav new file mode 100644 index 000000000..089b8bb04 Binary files /dev/null and b/sound/direct_sound_samples/cries/girafarig.wav differ diff --git a/sound/direct_sound_samples/cries/glalie.aif b/sound/direct_sound_samples/cries/glalie.aif deleted file mode 100644 index e4e896547..000000000 Binary files a/sound/direct_sound_samples/cries/glalie.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/glalie.wav b/sound/direct_sound_samples/cries/glalie.wav new file mode 100644 index 000000000..6f81e7a2a Binary files /dev/null and b/sound/direct_sound_samples/cries/glalie.wav differ diff --git a/sound/direct_sound_samples/cries/gligar.aif b/sound/direct_sound_samples/cries/gligar.aif deleted file mode 100644 index 4050f08b0..000000000 Binary files a/sound/direct_sound_samples/cries/gligar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gligar.wav b/sound/direct_sound_samples/cries/gligar.wav new file mode 100644 index 000000000..fa49131d8 Binary files /dev/null and b/sound/direct_sound_samples/cries/gligar.wav differ diff --git a/sound/direct_sound_samples/cries/gloom.aif b/sound/direct_sound_samples/cries/gloom.aif deleted file mode 100644 index e930328ac..000000000 Binary files a/sound/direct_sound_samples/cries/gloom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gloom.wav b/sound/direct_sound_samples/cries/gloom.wav new file mode 100644 index 000000000..ce3da9708 Binary files /dev/null and b/sound/direct_sound_samples/cries/gloom.wav differ diff --git a/sound/direct_sound_samples/cries/golbat.aif b/sound/direct_sound_samples/cries/golbat.aif deleted file mode 100644 index 11413df3a..000000000 Binary files a/sound/direct_sound_samples/cries/golbat.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/golbat.wav b/sound/direct_sound_samples/cries/golbat.wav new file mode 100644 index 000000000..4f098e5f2 Binary files /dev/null and b/sound/direct_sound_samples/cries/golbat.wav differ diff --git a/sound/direct_sound_samples/cries/goldeen.aif b/sound/direct_sound_samples/cries/goldeen.aif deleted file mode 100644 index 81fd1ecdf..000000000 Binary files a/sound/direct_sound_samples/cries/goldeen.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/goldeen.wav b/sound/direct_sound_samples/cries/goldeen.wav new file mode 100644 index 000000000..ec3b48ad4 Binary files /dev/null and b/sound/direct_sound_samples/cries/goldeen.wav differ diff --git a/sound/direct_sound_samples/cries/golduck.aif b/sound/direct_sound_samples/cries/golduck.aif deleted file mode 100644 index b6b71a7a4..000000000 Binary files a/sound/direct_sound_samples/cries/golduck.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/golduck.wav b/sound/direct_sound_samples/cries/golduck.wav new file mode 100644 index 000000000..bc6cc95af Binary files /dev/null and b/sound/direct_sound_samples/cries/golduck.wav differ diff --git a/sound/direct_sound_samples/cries/golem.aif b/sound/direct_sound_samples/cries/golem.aif deleted file mode 100644 index 0d2c4515e..000000000 Binary files a/sound/direct_sound_samples/cries/golem.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/golem.wav b/sound/direct_sound_samples/cries/golem.wav new file mode 100644 index 000000000..9a26adcc9 Binary files /dev/null and b/sound/direct_sound_samples/cries/golem.wav differ diff --git a/sound/direct_sound_samples/cries/gorebyss.aif b/sound/direct_sound_samples/cries/gorebyss.aif deleted file mode 100644 index b7605062c..000000000 Binary files a/sound/direct_sound_samples/cries/gorebyss.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gorebyss.wav b/sound/direct_sound_samples/cries/gorebyss.wav new file mode 100644 index 000000000..cd14f26dd Binary files /dev/null and b/sound/direct_sound_samples/cries/gorebyss.wav differ diff --git a/sound/direct_sound_samples/cries/granbull.aif b/sound/direct_sound_samples/cries/granbull.aif deleted file mode 100644 index 146b3bd0c..000000000 Binary files a/sound/direct_sound_samples/cries/granbull.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/granbull.wav b/sound/direct_sound_samples/cries/granbull.wav new file mode 100644 index 000000000..faffbc562 Binary files /dev/null and b/sound/direct_sound_samples/cries/granbull.wav differ diff --git a/sound/direct_sound_samples/cries/graveler.aif b/sound/direct_sound_samples/cries/graveler.aif deleted file mode 100644 index 773994228..000000000 Binary files a/sound/direct_sound_samples/cries/graveler.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/graveler.wav b/sound/direct_sound_samples/cries/graveler.wav new file mode 100644 index 000000000..e5a2e9d19 Binary files /dev/null and b/sound/direct_sound_samples/cries/graveler.wav differ diff --git a/sound/direct_sound_samples/cries/grimer.aif b/sound/direct_sound_samples/cries/grimer.aif deleted file mode 100644 index 95eed1061..000000000 Binary files a/sound/direct_sound_samples/cries/grimer.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/grimer.wav b/sound/direct_sound_samples/cries/grimer.wav new file mode 100644 index 000000000..8ae15f406 Binary files /dev/null and b/sound/direct_sound_samples/cries/grimer.wav differ diff --git a/sound/direct_sound_samples/cries/groudon.aif b/sound/direct_sound_samples/cries/groudon.aif deleted file mode 100644 index 62452b4d9..000000000 Binary files a/sound/direct_sound_samples/cries/groudon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/groudon.wav b/sound/direct_sound_samples/cries/groudon.wav new file mode 100644 index 000000000..057120579 Binary files /dev/null and b/sound/direct_sound_samples/cries/groudon.wav differ diff --git a/sound/direct_sound_samples/cries/grovyle.aif b/sound/direct_sound_samples/cries/grovyle.aif deleted file mode 100644 index 983bcfff3..000000000 Binary files a/sound/direct_sound_samples/cries/grovyle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/grovyle.wav b/sound/direct_sound_samples/cries/grovyle.wav new file mode 100644 index 000000000..6ae949e00 Binary files /dev/null and b/sound/direct_sound_samples/cries/grovyle.wav differ diff --git a/sound/direct_sound_samples/cries/growlithe.aif b/sound/direct_sound_samples/cries/growlithe.aif deleted file mode 100644 index 134e29834..000000000 Binary files a/sound/direct_sound_samples/cries/growlithe.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/growlithe.wav b/sound/direct_sound_samples/cries/growlithe.wav new file mode 100644 index 000000000..96ea21385 Binary files /dev/null and b/sound/direct_sound_samples/cries/growlithe.wav differ diff --git a/sound/direct_sound_samples/cries/grumpig.aif b/sound/direct_sound_samples/cries/grumpig.aif deleted file mode 100644 index 97c372076..000000000 Binary files a/sound/direct_sound_samples/cries/grumpig.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/grumpig.wav b/sound/direct_sound_samples/cries/grumpig.wav new file mode 100644 index 000000000..99f7684d1 Binary files /dev/null and b/sound/direct_sound_samples/cries/grumpig.wav differ diff --git a/sound/direct_sound_samples/cries/gulpin.aif b/sound/direct_sound_samples/cries/gulpin.aif deleted file mode 100644 index f3043b422..000000000 Binary files a/sound/direct_sound_samples/cries/gulpin.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gulpin.wav b/sound/direct_sound_samples/cries/gulpin.wav new file mode 100644 index 000000000..af1c2dd99 Binary files /dev/null and b/sound/direct_sound_samples/cries/gulpin.wav differ diff --git a/sound/direct_sound_samples/cries/gyarados.aif b/sound/direct_sound_samples/cries/gyarados.aif deleted file mode 100644 index 238b6d721..000000000 Binary files a/sound/direct_sound_samples/cries/gyarados.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/gyarados.wav b/sound/direct_sound_samples/cries/gyarados.wav new file mode 100644 index 000000000..b76327da2 Binary files /dev/null and b/sound/direct_sound_samples/cries/gyarados.wav differ diff --git a/sound/direct_sound_samples/cries/hariyama.aif b/sound/direct_sound_samples/cries/hariyama.aif deleted file mode 100644 index 1ac1f3f7e..000000000 Binary files a/sound/direct_sound_samples/cries/hariyama.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/hariyama.wav b/sound/direct_sound_samples/cries/hariyama.wav new file mode 100644 index 000000000..879f7d1e1 Binary files /dev/null and b/sound/direct_sound_samples/cries/hariyama.wav differ diff --git a/sound/direct_sound_samples/cries/haunter.aif b/sound/direct_sound_samples/cries/haunter.aif deleted file mode 100644 index 60ec72171..000000000 Binary files a/sound/direct_sound_samples/cries/haunter.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/haunter.wav b/sound/direct_sound_samples/cries/haunter.wav new file mode 100644 index 000000000..999a0d02d Binary files /dev/null and b/sound/direct_sound_samples/cries/haunter.wav differ diff --git a/sound/direct_sound_samples/cries/heracross.aif b/sound/direct_sound_samples/cries/heracross.aif deleted file mode 100644 index a0734748f..000000000 Binary files a/sound/direct_sound_samples/cries/heracross.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/heracross.wav b/sound/direct_sound_samples/cries/heracross.wav new file mode 100644 index 000000000..148249908 Binary files /dev/null and b/sound/direct_sound_samples/cries/heracross.wav differ diff --git a/sound/direct_sound_samples/cries/hitmonchan.aif b/sound/direct_sound_samples/cries/hitmonchan.aif deleted file mode 100644 index 40479452c..000000000 Binary files a/sound/direct_sound_samples/cries/hitmonchan.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/hitmonchan.wav b/sound/direct_sound_samples/cries/hitmonchan.wav new file mode 100644 index 000000000..130169e6e Binary files /dev/null and b/sound/direct_sound_samples/cries/hitmonchan.wav differ diff --git a/sound/direct_sound_samples/cries/hitmonlee.aif b/sound/direct_sound_samples/cries/hitmonlee.aif deleted file mode 100644 index 3a4bcddca..000000000 Binary files a/sound/direct_sound_samples/cries/hitmonlee.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/hitmonlee.wav b/sound/direct_sound_samples/cries/hitmonlee.wav new file mode 100644 index 000000000..9ec63520a Binary files /dev/null and b/sound/direct_sound_samples/cries/hitmonlee.wav differ diff --git a/sound/direct_sound_samples/cries/hitmontop.aif b/sound/direct_sound_samples/cries/hitmontop.aif deleted file mode 100644 index 3fbee8041..000000000 Binary files a/sound/direct_sound_samples/cries/hitmontop.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/hitmontop.wav b/sound/direct_sound_samples/cries/hitmontop.wav new file mode 100644 index 000000000..fa26c699b Binary files /dev/null and b/sound/direct_sound_samples/cries/hitmontop.wav differ diff --git a/sound/direct_sound_samples/cries/ho_oh.aif b/sound/direct_sound_samples/cries/ho_oh.aif deleted file mode 100644 index 52f8dd307..000000000 Binary files a/sound/direct_sound_samples/cries/ho_oh.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ho_oh.wav b/sound/direct_sound_samples/cries/ho_oh.wav new file mode 100644 index 000000000..e098f9806 Binary files /dev/null and b/sound/direct_sound_samples/cries/ho_oh.wav differ diff --git a/sound/direct_sound_samples/cries/hoothoot.aif b/sound/direct_sound_samples/cries/hoothoot.aif deleted file mode 100644 index 59e685dcc..000000000 Binary files a/sound/direct_sound_samples/cries/hoothoot.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/hoothoot.wav b/sound/direct_sound_samples/cries/hoothoot.wav new file mode 100644 index 000000000..303fddb12 Binary files /dev/null and b/sound/direct_sound_samples/cries/hoothoot.wav differ diff --git a/sound/direct_sound_samples/cries/hoppip.aif b/sound/direct_sound_samples/cries/hoppip.aif deleted file mode 100644 index ea47877d0..000000000 Binary files a/sound/direct_sound_samples/cries/hoppip.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/hoppip.wav b/sound/direct_sound_samples/cries/hoppip.wav new file mode 100644 index 000000000..525c720e9 Binary files /dev/null and b/sound/direct_sound_samples/cries/hoppip.wav differ diff --git a/sound/direct_sound_samples/cries/horsea.aif b/sound/direct_sound_samples/cries/horsea.aif deleted file mode 100644 index e41eff4b1..000000000 Binary files a/sound/direct_sound_samples/cries/horsea.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/horsea.wav b/sound/direct_sound_samples/cries/horsea.wav new file mode 100644 index 000000000..26efb0ca7 Binary files /dev/null and b/sound/direct_sound_samples/cries/horsea.wav differ diff --git a/sound/direct_sound_samples/cries/houndoom.aif b/sound/direct_sound_samples/cries/houndoom.aif deleted file mode 100644 index 6fec16d39..000000000 Binary files a/sound/direct_sound_samples/cries/houndoom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/houndoom.wav b/sound/direct_sound_samples/cries/houndoom.wav new file mode 100644 index 000000000..1add97cb8 Binary files /dev/null and b/sound/direct_sound_samples/cries/houndoom.wav differ diff --git a/sound/direct_sound_samples/cries/houndour.aif b/sound/direct_sound_samples/cries/houndour.aif deleted file mode 100644 index 7431bbf29..000000000 Binary files a/sound/direct_sound_samples/cries/houndour.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/houndour.wav b/sound/direct_sound_samples/cries/houndour.wav new file mode 100644 index 000000000..ef683e68f Binary files /dev/null and b/sound/direct_sound_samples/cries/houndour.wav differ diff --git a/sound/direct_sound_samples/cries/huntail.aif b/sound/direct_sound_samples/cries/huntail.aif deleted file mode 100644 index f1d3b29d9..000000000 Binary files a/sound/direct_sound_samples/cries/huntail.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/huntail.wav b/sound/direct_sound_samples/cries/huntail.wav new file mode 100644 index 000000000..9c4e7af02 Binary files /dev/null and b/sound/direct_sound_samples/cries/huntail.wav differ diff --git a/sound/direct_sound_samples/cries/hypno.aif b/sound/direct_sound_samples/cries/hypno.aif deleted file mode 100644 index 32672a3c3..000000000 Binary files a/sound/direct_sound_samples/cries/hypno.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/hypno.wav b/sound/direct_sound_samples/cries/hypno.wav new file mode 100644 index 000000000..3b1e2dab6 Binary files /dev/null and b/sound/direct_sound_samples/cries/hypno.wav differ diff --git a/sound/direct_sound_samples/cries/igglybuff.aif b/sound/direct_sound_samples/cries/igglybuff.aif deleted file mode 100644 index 8de8394d5..000000000 Binary files a/sound/direct_sound_samples/cries/igglybuff.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/igglybuff.wav b/sound/direct_sound_samples/cries/igglybuff.wav new file mode 100644 index 000000000..0b8a7dfca Binary files /dev/null and b/sound/direct_sound_samples/cries/igglybuff.wav differ diff --git a/sound/direct_sound_samples/cries/illumise.aif b/sound/direct_sound_samples/cries/illumise.aif deleted file mode 100644 index 75e03efc8..000000000 Binary files a/sound/direct_sound_samples/cries/illumise.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/illumise.wav b/sound/direct_sound_samples/cries/illumise.wav new file mode 100644 index 000000000..f0234b92e Binary files /dev/null and b/sound/direct_sound_samples/cries/illumise.wav differ diff --git a/sound/direct_sound_samples/cries/ivysaur.aif b/sound/direct_sound_samples/cries/ivysaur.aif deleted file mode 100644 index ea474ff88..000000000 Binary files a/sound/direct_sound_samples/cries/ivysaur.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ivysaur.wav b/sound/direct_sound_samples/cries/ivysaur.wav new file mode 100644 index 000000000..1110a6338 Binary files /dev/null and b/sound/direct_sound_samples/cries/ivysaur.wav differ diff --git a/sound/direct_sound_samples/cries/jigglypuff.aif b/sound/direct_sound_samples/cries/jigglypuff.aif deleted file mode 100644 index 780424b4f..000000000 Binary files a/sound/direct_sound_samples/cries/jigglypuff.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/jigglypuff.wav b/sound/direct_sound_samples/cries/jigglypuff.wav new file mode 100644 index 000000000..4b8d4ccc8 Binary files /dev/null and b/sound/direct_sound_samples/cries/jigglypuff.wav differ diff --git a/sound/direct_sound_samples/cries/jirachi.aif b/sound/direct_sound_samples/cries/jirachi.aif deleted file mode 100644 index ea8a5c8ad..000000000 Binary files a/sound/direct_sound_samples/cries/jirachi.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/jirachi.wav b/sound/direct_sound_samples/cries/jirachi.wav new file mode 100644 index 000000000..f548e50bf Binary files /dev/null and b/sound/direct_sound_samples/cries/jirachi.wav differ diff --git a/sound/direct_sound_samples/cries/jolteon.aif b/sound/direct_sound_samples/cries/jolteon.aif deleted file mode 100644 index 013369158..000000000 Binary files a/sound/direct_sound_samples/cries/jolteon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/jolteon.wav b/sound/direct_sound_samples/cries/jolteon.wav new file mode 100644 index 000000000..61b5cb160 Binary files /dev/null and b/sound/direct_sound_samples/cries/jolteon.wav differ diff --git a/sound/direct_sound_samples/cries/jumpluff.aif b/sound/direct_sound_samples/cries/jumpluff.aif deleted file mode 100644 index 13b0fd315..000000000 Binary files a/sound/direct_sound_samples/cries/jumpluff.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/jumpluff.wav b/sound/direct_sound_samples/cries/jumpluff.wav new file mode 100644 index 000000000..d58b0b11f Binary files /dev/null and b/sound/direct_sound_samples/cries/jumpluff.wav differ diff --git a/sound/direct_sound_samples/cries/jynx.aif b/sound/direct_sound_samples/cries/jynx.aif deleted file mode 100644 index 7394a48a2..000000000 Binary files a/sound/direct_sound_samples/cries/jynx.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/jynx.wav b/sound/direct_sound_samples/cries/jynx.wav new file mode 100644 index 000000000..bb833749e Binary files /dev/null and b/sound/direct_sound_samples/cries/jynx.wav differ diff --git a/sound/direct_sound_samples/cries/kabuto.aif b/sound/direct_sound_samples/cries/kabuto.aif deleted file mode 100644 index 6ae9801b5..000000000 Binary files a/sound/direct_sound_samples/cries/kabuto.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kabuto.wav b/sound/direct_sound_samples/cries/kabuto.wav new file mode 100644 index 000000000..598845740 Binary files /dev/null and b/sound/direct_sound_samples/cries/kabuto.wav differ diff --git a/sound/direct_sound_samples/cries/kabutops.aif b/sound/direct_sound_samples/cries/kabutops.aif deleted file mode 100644 index f23778e57..000000000 Binary files a/sound/direct_sound_samples/cries/kabutops.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kabutops.wav b/sound/direct_sound_samples/cries/kabutops.wav new file mode 100644 index 000000000..a9ccbfe09 Binary files /dev/null and b/sound/direct_sound_samples/cries/kabutops.wav differ diff --git a/sound/direct_sound_samples/cries/kadabra.aif b/sound/direct_sound_samples/cries/kadabra.aif deleted file mode 100644 index bfcc18031..000000000 Binary files a/sound/direct_sound_samples/cries/kadabra.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kadabra.wav b/sound/direct_sound_samples/cries/kadabra.wav new file mode 100644 index 000000000..f2e3788e4 Binary files /dev/null and b/sound/direct_sound_samples/cries/kadabra.wav differ diff --git a/sound/direct_sound_samples/cries/kakuna.aif b/sound/direct_sound_samples/cries/kakuna.aif deleted file mode 100644 index 7c4e9d7a8..000000000 Binary files a/sound/direct_sound_samples/cries/kakuna.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kakuna.wav b/sound/direct_sound_samples/cries/kakuna.wav new file mode 100644 index 000000000..0a7b43f94 Binary files /dev/null and b/sound/direct_sound_samples/cries/kakuna.wav differ diff --git a/sound/direct_sound_samples/cries/kangaskhan.aif b/sound/direct_sound_samples/cries/kangaskhan.aif deleted file mode 100644 index 643e81eb7..000000000 Binary files a/sound/direct_sound_samples/cries/kangaskhan.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kangaskhan.wav b/sound/direct_sound_samples/cries/kangaskhan.wav new file mode 100644 index 000000000..32a12fcbc Binary files /dev/null and b/sound/direct_sound_samples/cries/kangaskhan.wav differ diff --git a/sound/direct_sound_samples/cries/kecleon.aif b/sound/direct_sound_samples/cries/kecleon.aif deleted file mode 100644 index f27ae1832..000000000 Binary files a/sound/direct_sound_samples/cries/kecleon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kecleon.wav b/sound/direct_sound_samples/cries/kecleon.wav new file mode 100644 index 000000000..5d16ee144 Binary files /dev/null and b/sound/direct_sound_samples/cries/kecleon.wav differ diff --git a/sound/direct_sound_samples/cries/kingdra.aif b/sound/direct_sound_samples/cries/kingdra.aif deleted file mode 100644 index ade230c82..000000000 Binary files a/sound/direct_sound_samples/cries/kingdra.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kingdra.wav b/sound/direct_sound_samples/cries/kingdra.wav new file mode 100644 index 000000000..2263e72cb Binary files /dev/null and b/sound/direct_sound_samples/cries/kingdra.wav differ diff --git a/sound/direct_sound_samples/cries/kingler.aif b/sound/direct_sound_samples/cries/kingler.aif deleted file mode 100644 index a1d845f45..000000000 Binary files a/sound/direct_sound_samples/cries/kingler.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kingler.wav b/sound/direct_sound_samples/cries/kingler.wav new file mode 100644 index 000000000..6d3f58e8c Binary files /dev/null and b/sound/direct_sound_samples/cries/kingler.wav differ diff --git a/sound/direct_sound_samples/cries/kirlia.aif b/sound/direct_sound_samples/cries/kirlia.aif deleted file mode 100644 index 692e03e5f..000000000 Binary files a/sound/direct_sound_samples/cries/kirlia.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kirlia.wav b/sound/direct_sound_samples/cries/kirlia.wav new file mode 100644 index 000000000..36706ca6f Binary files /dev/null and b/sound/direct_sound_samples/cries/kirlia.wav differ diff --git a/sound/direct_sound_samples/cries/koffing.aif b/sound/direct_sound_samples/cries/koffing.aif deleted file mode 100644 index 7ca9de088..000000000 Binary files a/sound/direct_sound_samples/cries/koffing.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/koffing.wav b/sound/direct_sound_samples/cries/koffing.wav new file mode 100644 index 000000000..5fd7b7d4a Binary files /dev/null and b/sound/direct_sound_samples/cries/koffing.wav differ diff --git a/sound/direct_sound_samples/cries/krabby.aif b/sound/direct_sound_samples/cries/krabby.aif deleted file mode 100644 index 6b7692f21..000000000 Binary files a/sound/direct_sound_samples/cries/krabby.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/krabby.wav b/sound/direct_sound_samples/cries/krabby.wav new file mode 100644 index 000000000..31644bacc Binary files /dev/null and b/sound/direct_sound_samples/cries/krabby.wav differ diff --git a/sound/direct_sound_samples/cries/kyogre.aif b/sound/direct_sound_samples/cries/kyogre.aif deleted file mode 100644 index 290948319..000000000 Binary files a/sound/direct_sound_samples/cries/kyogre.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/kyogre.wav b/sound/direct_sound_samples/cries/kyogre.wav new file mode 100644 index 000000000..d73951bb6 Binary files /dev/null and b/sound/direct_sound_samples/cries/kyogre.wav differ diff --git a/sound/direct_sound_samples/cries/lairon.aif b/sound/direct_sound_samples/cries/lairon.aif deleted file mode 100644 index b487165bf..000000000 Binary files a/sound/direct_sound_samples/cries/lairon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lairon.wav b/sound/direct_sound_samples/cries/lairon.wav new file mode 100644 index 000000000..1d82d0654 Binary files /dev/null and b/sound/direct_sound_samples/cries/lairon.wav differ diff --git a/sound/direct_sound_samples/cries/lanturn.aif b/sound/direct_sound_samples/cries/lanturn.aif deleted file mode 100644 index dfeac1fbd..000000000 Binary files a/sound/direct_sound_samples/cries/lanturn.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lanturn.wav b/sound/direct_sound_samples/cries/lanturn.wav new file mode 100644 index 000000000..3b68f58ad Binary files /dev/null and b/sound/direct_sound_samples/cries/lanturn.wav differ diff --git a/sound/direct_sound_samples/cries/lapras.aif b/sound/direct_sound_samples/cries/lapras.aif deleted file mode 100644 index 61de32408..000000000 Binary files a/sound/direct_sound_samples/cries/lapras.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lapras.wav b/sound/direct_sound_samples/cries/lapras.wav new file mode 100644 index 000000000..2c0714995 Binary files /dev/null and b/sound/direct_sound_samples/cries/lapras.wav differ diff --git a/sound/direct_sound_samples/cries/larvitar.aif b/sound/direct_sound_samples/cries/larvitar.aif deleted file mode 100644 index 1ab0e1d5f..000000000 Binary files a/sound/direct_sound_samples/cries/larvitar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/larvitar.wav b/sound/direct_sound_samples/cries/larvitar.wav new file mode 100644 index 000000000..6ef5d4566 Binary files /dev/null and b/sound/direct_sound_samples/cries/larvitar.wav differ diff --git a/sound/direct_sound_samples/cries/latias.aif b/sound/direct_sound_samples/cries/latias.aif deleted file mode 100644 index 46f7235f3..000000000 Binary files a/sound/direct_sound_samples/cries/latias.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/latias.wav b/sound/direct_sound_samples/cries/latias.wav new file mode 100644 index 000000000..dac6c463f Binary files /dev/null and b/sound/direct_sound_samples/cries/latias.wav differ diff --git a/sound/direct_sound_samples/cries/latios.aif b/sound/direct_sound_samples/cries/latios.aif deleted file mode 100644 index b8ace2a30..000000000 Binary files a/sound/direct_sound_samples/cries/latios.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/latios.wav b/sound/direct_sound_samples/cries/latios.wav new file mode 100644 index 000000000..f07efb29f Binary files /dev/null and b/sound/direct_sound_samples/cries/latios.wav differ diff --git a/sound/direct_sound_samples/cries/ledian.aif b/sound/direct_sound_samples/cries/ledian.aif deleted file mode 100644 index baefb5fa3..000000000 Binary files a/sound/direct_sound_samples/cries/ledian.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ledian.wav b/sound/direct_sound_samples/cries/ledian.wav new file mode 100644 index 000000000..075bb15f0 Binary files /dev/null and b/sound/direct_sound_samples/cries/ledian.wav differ diff --git a/sound/direct_sound_samples/cries/ledyba.aif b/sound/direct_sound_samples/cries/ledyba.aif deleted file mode 100644 index 4f26859a7..000000000 Binary files a/sound/direct_sound_samples/cries/ledyba.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ledyba.wav b/sound/direct_sound_samples/cries/ledyba.wav new file mode 100644 index 000000000..95d9dff2e Binary files /dev/null and b/sound/direct_sound_samples/cries/ledyba.wav differ diff --git a/sound/direct_sound_samples/cries/lickitung.aif b/sound/direct_sound_samples/cries/lickitung.aif deleted file mode 100644 index ef889a275..000000000 Binary files a/sound/direct_sound_samples/cries/lickitung.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lickitung.wav b/sound/direct_sound_samples/cries/lickitung.wav new file mode 100644 index 000000000..a55baecbd Binary files /dev/null and b/sound/direct_sound_samples/cries/lickitung.wav differ diff --git a/sound/direct_sound_samples/cries/lileep.aif b/sound/direct_sound_samples/cries/lileep.aif deleted file mode 100644 index ed8258eb7..000000000 Binary files a/sound/direct_sound_samples/cries/lileep.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lileep.wav b/sound/direct_sound_samples/cries/lileep.wav new file mode 100644 index 000000000..5fd0ba803 Binary files /dev/null and b/sound/direct_sound_samples/cries/lileep.wav differ diff --git a/sound/direct_sound_samples/cries/linoone.aif b/sound/direct_sound_samples/cries/linoone.aif deleted file mode 100644 index 4e5e7d3b5..000000000 Binary files a/sound/direct_sound_samples/cries/linoone.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/linoone.wav b/sound/direct_sound_samples/cries/linoone.wav new file mode 100644 index 000000000..a182b4f32 Binary files /dev/null and b/sound/direct_sound_samples/cries/linoone.wav differ diff --git a/sound/direct_sound_samples/cries/lombre.aif b/sound/direct_sound_samples/cries/lombre.aif deleted file mode 100644 index abafe4321..000000000 Binary files a/sound/direct_sound_samples/cries/lombre.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lombre.wav b/sound/direct_sound_samples/cries/lombre.wav new file mode 100644 index 000000000..f7c36acdd Binary files /dev/null and b/sound/direct_sound_samples/cries/lombre.wav differ diff --git a/sound/direct_sound_samples/cries/lotad.aif b/sound/direct_sound_samples/cries/lotad.aif deleted file mode 100644 index 2596f4390..000000000 Binary files a/sound/direct_sound_samples/cries/lotad.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lotad.wav b/sound/direct_sound_samples/cries/lotad.wav new file mode 100644 index 000000000..ee0cb6f69 Binary files /dev/null and b/sound/direct_sound_samples/cries/lotad.wav differ diff --git a/sound/direct_sound_samples/cries/loudred.aif b/sound/direct_sound_samples/cries/loudred.aif deleted file mode 100644 index fed7ebec8..000000000 Binary files a/sound/direct_sound_samples/cries/loudred.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/loudred.wav b/sound/direct_sound_samples/cries/loudred.wav new file mode 100644 index 000000000..06495bf49 Binary files /dev/null and b/sound/direct_sound_samples/cries/loudred.wav differ diff --git a/sound/direct_sound_samples/cries/ludicolo.aif b/sound/direct_sound_samples/cries/ludicolo.aif deleted file mode 100644 index 7cf670f38..000000000 Binary files a/sound/direct_sound_samples/cries/ludicolo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ludicolo.wav b/sound/direct_sound_samples/cries/ludicolo.wav new file mode 100644 index 000000000..fa300674f Binary files /dev/null and b/sound/direct_sound_samples/cries/ludicolo.wav differ diff --git a/sound/direct_sound_samples/cries/lugia.aif b/sound/direct_sound_samples/cries/lugia.aif deleted file mode 100644 index 45890a2fc..000000000 Binary files a/sound/direct_sound_samples/cries/lugia.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lugia.wav b/sound/direct_sound_samples/cries/lugia.wav new file mode 100644 index 000000000..1a1c46ef4 Binary files /dev/null and b/sound/direct_sound_samples/cries/lugia.wav differ diff --git a/sound/direct_sound_samples/cries/lunatone.aif b/sound/direct_sound_samples/cries/lunatone.aif deleted file mode 100644 index 42cbc5e3c..000000000 Binary files a/sound/direct_sound_samples/cries/lunatone.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/lunatone.wav b/sound/direct_sound_samples/cries/lunatone.wav new file mode 100644 index 000000000..afd9473b8 Binary files /dev/null and b/sound/direct_sound_samples/cries/lunatone.wav differ diff --git a/sound/direct_sound_samples/cries/luvdisc.aif b/sound/direct_sound_samples/cries/luvdisc.aif deleted file mode 100644 index 3cc0cc744..000000000 Binary files a/sound/direct_sound_samples/cries/luvdisc.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/luvdisc.wav b/sound/direct_sound_samples/cries/luvdisc.wav new file mode 100644 index 000000000..c4261d76e Binary files /dev/null and b/sound/direct_sound_samples/cries/luvdisc.wav differ diff --git a/sound/direct_sound_samples/cries/machamp.aif b/sound/direct_sound_samples/cries/machamp.aif deleted file mode 100644 index ddeaf22c8..000000000 Binary files a/sound/direct_sound_samples/cries/machamp.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/machamp.wav b/sound/direct_sound_samples/cries/machamp.wav new file mode 100644 index 000000000..9535dcbab Binary files /dev/null and b/sound/direct_sound_samples/cries/machamp.wav differ diff --git a/sound/direct_sound_samples/cries/machoke.aif b/sound/direct_sound_samples/cries/machoke.aif deleted file mode 100644 index 97065ee09..000000000 Binary files a/sound/direct_sound_samples/cries/machoke.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/machoke.wav b/sound/direct_sound_samples/cries/machoke.wav new file mode 100644 index 000000000..de76612e3 Binary files /dev/null and b/sound/direct_sound_samples/cries/machoke.wav differ diff --git a/sound/direct_sound_samples/cries/machop.aif b/sound/direct_sound_samples/cries/machop.aif deleted file mode 100644 index d92419e84..000000000 Binary files a/sound/direct_sound_samples/cries/machop.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/machop.wav b/sound/direct_sound_samples/cries/machop.wav new file mode 100644 index 000000000..2e5af3e55 Binary files /dev/null and b/sound/direct_sound_samples/cries/machop.wav differ diff --git a/sound/direct_sound_samples/cries/magby.aif b/sound/direct_sound_samples/cries/magby.aif deleted file mode 100644 index 12f3dc889..000000000 Binary files a/sound/direct_sound_samples/cries/magby.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/magby.wav b/sound/direct_sound_samples/cries/magby.wav new file mode 100644 index 000000000..c8129db69 Binary files /dev/null and b/sound/direct_sound_samples/cries/magby.wav differ diff --git a/sound/direct_sound_samples/cries/magcargo.aif b/sound/direct_sound_samples/cries/magcargo.aif deleted file mode 100644 index bef0351c0..000000000 Binary files a/sound/direct_sound_samples/cries/magcargo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/magcargo.wav b/sound/direct_sound_samples/cries/magcargo.wav new file mode 100644 index 000000000..1bdd97d3b Binary files /dev/null and b/sound/direct_sound_samples/cries/magcargo.wav differ diff --git a/sound/direct_sound_samples/cries/magikarp.aif b/sound/direct_sound_samples/cries/magikarp.aif deleted file mode 100644 index f4f9219c5..000000000 Binary files a/sound/direct_sound_samples/cries/magikarp.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/magikarp.wav b/sound/direct_sound_samples/cries/magikarp.wav new file mode 100644 index 000000000..115fa23f2 Binary files /dev/null and b/sound/direct_sound_samples/cries/magikarp.wav differ diff --git a/sound/direct_sound_samples/cries/magmar.aif b/sound/direct_sound_samples/cries/magmar.aif deleted file mode 100644 index b79c8b9a1..000000000 Binary files a/sound/direct_sound_samples/cries/magmar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/magmar.wav b/sound/direct_sound_samples/cries/magmar.wav new file mode 100644 index 000000000..6a3621c3c Binary files /dev/null and b/sound/direct_sound_samples/cries/magmar.wav differ diff --git a/sound/direct_sound_samples/cries/magnemite.aif b/sound/direct_sound_samples/cries/magnemite.aif deleted file mode 100644 index ebb9103d9..000000000 Binary files a/sound/direct_sound_samples/cries/magnemite.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/magnemite.wav b/sound/direct_sound_samples/cries/magnemite.wav new file mode 100644 index 000000000..7dd1d550b Binary files /dev/null and b/sound/direct_sound_samples/cries/magnemite.wav differ diff --git a/sound/direct_sound_samples/cries/magneton.aif b/sound/direct_sound_samples/cries/magneton.aif deleted file mode 100644 index 53083ac62..000000000 Binary files a/sound/direct_sound_samples/cries/magneton.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/magneton.wav b/sound/direct_sound_samples/cries/magneton.wav new file mode 100644 index 000000000..12513343d Binary files /dev/null and b/sound/direct_sound_samples/cries/magneton.wav differ diff --git a/sound/direct_sound_samples/cries/makuhita.aif b/sound/direct_sound_samples/cries/makuhita.aif deleted file mode 100644 index 38d7f4b44..000000000 Binary files a/sound/direct_sound_samples/cries/makuhita.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/makuhita.wav b/sound/direct_sound_samples/cries/makuhita.wav new file mode 100644 index 000000000..6df74f2c1 Binary files /dev/null and b/sound/direct_sound_samples/cries/makuhita.wav differ diff --git a/sound/direct_sound_samples/cries/manectric.aif b/sound/direct_sound_samples/cries/manectric.aif deleted file mode 100644 index 18a8f4666..000000000 Binary files a/sound/direct_sound_samples/cries/manectric.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/manectric.wav b/sound/direct_sound_samples/cries/manectric.wav new file mode 100644 index 000000000..db806c46a Binary files /dev/null and b/sound/direct_sound_samples/cries/manectric.wav differ diff --git a/sound/direct_sound_samples/cries/mankey.aif b/sound/direct_sound_samples/cries/mankey.aif deleted file mode 100644 index dda929d4c..000000000 Binary files a/sound/direct_sound_samples/cries/mankey.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mankey.wav b/sound/direct_sound_samples/cries/mankey.wav new file mode 100644 index 000000000..9cf9f4866 Binary files /dev/null and b/sound/direct_sound_samples/cries/mankey.wav differ diff --git a/sound/direct_sound_samples/cries/mantine.aif b/sound/direct_sound_samples/cries/mantine.aif deleted file mode 100644 index d1840aafa..000000000 Binary files a/sound/direct_sound_samples/cries/mantine.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mantine.wav b/sound/direct_sound_samples/cries/mantine.wav new file mode 100644 index 000000000..bc6f17e5e Binary files /dev/null and b/sound/direct_sound_samples/cries/mantine.wav differ diff --git a/sound/direct_sound_samples/cries/mareep.aif b/sound/direct_sound_samples/cries/mareep.aif deleted file mode 100644 index 2615b9def..000000000 Binary files a/sound/direct_sound_samples/cries/mareep.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mareep.wav b/sound/direct_sound_samples/cries/mareep.wav new file mode 100644 index 000000000..b0a523d7d Binary files /dev/null and b/sound/direct_sound_samples/cries/mareep.wav differ diff --git a/sound/direct_sound_samples/cries/marill.aif b/sound/direct_sound_samples/cries/marill.aif deleted file mode 100644 index 48d936e7d..000000000 Binary files a/sound/direct_sound_samples/cries/marill.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/marill.wav b/sound/direct_sound_samples/cries/marill.wav new file mode 100644 index 000000000..8842fb018 Binary files /dev/null and b/sound/direct_sound_samples/cries/marill.wav differ diff --git a/sound/direct_sound_samples/cries/marowak.aif b/sound/direct_sound_samples/cries/marowak.aif deleted file mode 100644 index 279381bb5..000000000 Binary files a/sound/direct_sound_samples/cries/marowak.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/marowak.wav b/sound/direct_sound_samples/cries/marowak.wav new file mode 100644 index 000000000..6701514d2 Binary files /dev/null and b/sound/direct_sound_samples/cries/marowak.wav differ diff --git a/sound/direct_sound_samples/cries/marshtomp.aif b/sound/direct_sound_samples/cries/marshtomp.aif deleted file mode 100644 index c0106ff6c..000000000 Binary files a/sound/direct_sound_samples/cries/marshtomp.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/marshtomp.wav b/sound/direct_sound_samples/cries/marshtomp.wav new file mode 100644 index 000000000..ed906f7d1 Binary files /dev/null and b/sound/direct_sound_samples/cries/marshtomp.wav differ diff --git a/sound/direct_sound_samples/cries/masquerain.aif b/sound/direct_sound_samples/cries/masquerain.aif deleted file mode 100644 index 107bed2f7..000000000 Binary files a/sound/direct_sound_samples/cries/masquerain.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/masquerain.wav b/sound/direct_sound_samples/cries/masquerain.wav new file mode 100644 index 000000000..d7f5c700a Binary files /dev/null and b/sound/direct_sound_samples/cries/masquerain.wav differ diff --git a/sound/direct_sound_samples/cries/mawile.aif b/sound/direct_sound_samples/cries/mawile.aif deleted file mode 100644 index 81b252b57..000000000 Binary files a/sound/direct_sound_samples/cries/mawile.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mawile.wav b/sound/direct_sound_samples/cries/mawile.wav new file mode 100644 index 000000000..bf0eb2e0a Binary files /dev/null and b/sound/direct_sound_samples/cries/mawile.wav differ diff --git a/sound/direct_sound_samples/cries/medicham.aif b/sound/direct_sound_samples/cries/medicham.aif deleted file mode 100644 index dc85dd3b5..000000000 Binary files a/sound/direct_sound_samples/cries/medicham.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/medicham.wav b/sound/direct_sound_samples/cries/medicham.wav new file mode 100644 index 000000000..e0853bfa7 Binary files /dev/null and b/sound/direct_sound_samples/cries/medicham.wav differ diff --git a/sound/direct_sound_samples/cries/meditite.aif b/sound/direct_sound_samples/cries/meditite.aif deleted file mode 100644 index 8ac680f79..000000000 Binary files a/sound/direct_sound_samples/cries/meditite.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/meditite.wav b/sound/direct_sound_samples/cries/meditite.wav new file mode 100644 index 000000000..08675830b Binary files /dev/null and b/sound/direct_sound_samples/cries/meditite.wav differ diff --git a/sound/direct_sound_samples/cries/meganium.aif b/sound/direct_sound_samples/cries/meganium.aif deleted file mode 100644 index ea1e1aa51..000000000 Binary files a/sound/direct_sound_samples/cries/meganium.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/meganium.wav b/sound/direct_sound_samples/cries/meganium.wav new file mode 100644 index 000000000..2aaf87034 Binary files /dev/null and b/sound/direct_sound_samples/cries/meganium.wav differ diff --git a/sound/direct_sound_samples/cries/meowth.aif b/sound/direct_sound_samples/cries/meowth.aif deleted file mode 100644 index aaf3825d5..000000000 Binary files a/sound/direct_sound_samples/cries/meowth.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/meowth.wav b/sound/direct_sound_samples/cries/meowth.wav new file mode 100644 index 000000000..a3b97ff95 Binary files /dev/null and b/sound/direct_sound_samples/cries/meowth.wav differ diff --git a/sound/direct_sound_samples/cries/metagross.aif b/sound/direct_sound_samples/cries/metagross.aif deleted file mode 100644 index b96e6647c..000000000 Binary files a/sound/direct_sound_samples/cries/metagross.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/metagross.wav b/sound/direct_sound_samples/cries/metagross.wav new file mode 100644 index 000000000..35aa032c4 Binary files /dev/null and b/sound/direct_sound_samples/cries/metagross.wav differ diff --git a/sound/direct_sound_samples/cries/metang.aif b/sound/direct_sound_samples/cries/metang.aif deleted file mode 100644 index da544ce4d..000000000 Binary files a/sound/direct_sound_samples/cries/metang.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/metang.wav b/sound/direct_sound_samples/cries/metang.wav new file mode 100644 index 000000000..d9203a330 Binary files /dev/null and b/sound/direct_sound_samples/cries/metang.wav differ diff --git a/sound/direct_sound_samples/cries/metapod.aif b/sound/direct_sound_samples/cries/metapod.aif deleted file mode 100644 index ddba3ed44..000000000 Binary files a/sound/direct_sound_samples/cries/metapod.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/metapod.wav b/sound/direct_sound_samples/cries/metapod.wav new file mode 100644 index 000000000..1ef8849fc Binary files /dev/null and b/sound/direct_sound_samples/cries/metapod.wav differ diff --git a/sound/direct_sound_samples/cries/mew.aif b/sound/direct_sound_samples/cries/mew.aif deleted file mode 100644 index 2651b96ca..000000000 Binary files a/sound/direct_sound_samples/cries/mew.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mew.wav b/sound/direct_sound_samples/cries/mew.wav new file mode 100644 index 000000000..067c71b85 Binary files /dev/null and b/sound/direct_sound_samples/cries/mew.wav differ diff --git a/sound/direct_sound_samples/cries/mewtwo.aif b/sound/direct_sound_samples/cries/mewtwo.aif deleted file mode 100644 index 8e1e6c7f1..000000000 Binary files a/sound/direct_sound_samples/cries/mewtwo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mewtwo.wav b/sound/direct_sound_samples/cries/mewtwo.wav new file mode 100644 index 000000000..554564c04 Binary files /dev/null and b/sound/direct_sound_samples/cries/mewtwo.wav differ diff --git a/sound/direct_sound_samples/cries/mightyena.aif b/sound/direct_sound_samples/cries/mightyena.aif deleted file mode 100644 index 53a645edc..000000000 Binary files a/sound/direct_sound_samples/cries/mightyena.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mightyena.wav b/sound/direct_sound_samples/cries/mightyena.wav new file mode 100644 index 000000000..4c818b12b Binary files /dev/null and b/sound/direct_sound_samples/cries/mightyena.wav differ diff --git a/sound/direct_sound_samples/cries/milotic.aif b/sound/direct_sound_samples/cries/milotic.aif deleted file mode 100644 index 93a14161b..000000000 Binary files a/sound/direct_sound_samples/cries/milotic.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/milotic.wav b/sound/direct_sound_samples/cries/milotic.wav new file mode 100644 index 000000000..016657130 Binary files /dev/null and b/sound/direct_sound_samples/cries/milotic.wav differ diff --git a/sound/direct_sound_samples/cries/miltank.aif b/sound/direct_sound_samples/cries/miltank.aif deleted file mode 100644 index ad8a41a45..000000000 Binary files a/sound/direct_sound_samples/cries/miltank.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/miltank.wav b/sound/direct_sound_samples/cries/miltank.wav new file mode 100644 index 000000000..949fd2812 Binary files /dev/null and b/sound/direct_sound_samples/cries/miltank.wav differ diff --git a/sound/direct_sound_samples/cries/minun.aif b/sound/direct_sound_samples/cries/minun.aif deleted file mode 100644 index a55aa5631..000000000 Binary files a/sound/direct_sound_samples/cries/minun.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/minun.wav b/sound/direct_sound_samples/cries/minun.wav new file mode 100644 index 000000000..80d608c67 Binary files /dev/null and b/sound/direct_sound_samples/cries/minun.wav differ diff --git a/sound/direct_sound_samples/cries/misdreavus.aif b/sound/direct_sound_samples/cries/misdreavus.aif deleted file mode 100644 index 39a09f4d0..000000000 Binary files a/sound/direct_sound_samples/cries/misdreavus.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/misdreavus.wav b/sound/direct_sound_samples/cries/misdreavus.wav new file mode 100644 index 000000000..cce18c27b Binary files /dev/null and b/sound/direct_sound_samples/cries/misdreavus.wav differ diff --git a/sound/direct_sound_samples/cries/moltres.aif b/sound/direct_sound_samples/cries/moltres.aif deleted file mode 100644 index 2e038a3d7..000000000 Binary files a/sound/direct_sound_samples/cries/moltres.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/moltres.wav b/sound/direct_sound_samples/cries/moltres.wav new file mode 100644 index 000000000..c9c65b334 Binary files /dev/null and b/sound/direct_sound_samples/cries/moltres.wav differ diff --git a/sound/direct_sound_samples/cries/mr_mime.aif b/sound/direct_sound_samples/cries/mr_mime.aif deleted file mode 100644 index ff870dbc4..000000000 Binary files a/sound/direct_sound_samples/cries/mr_mime.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mr_mime.wav b/sound/direct_sound_samples/cries/mr_mime.wav new file mode 100644 index 000000000..a8121159b Binary files /dev/null and b/sound/direct_sound_samples/cries/mr_mime.wav differ diff --git a/sound/direct_sound_samples/cries/mudkip.aif b/sound/direct_sound_samples/cries/mudkip.aif deleted file mode 100644 index e8fa5c212..000000000 Binary files a/sound/direct_sound_samples/cries/mudkip.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mudkip.wav b/sound/direct_sound_samples/cries/mudkip.wav new file mode 100644 index 000000000..bcb613e41 Binary files /dev/null and b/sound/direct_sound_samples/cries/mudkip.wav differ diff --git a/sound/direct_sound_samples/cries/muk.aif b/sound/direct_sound_samples/cries/muk.aif deleted file mode 100644 index f61ff4075..000000000 Binary files a/sound/direct_sound_samples/cries/muk.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/muk.wav b/sound/direct_sound_samples/cries/muk.wav new file mode 100644 index 000000000..3cb281382 Binary files /dev/null and b/sound/direct_sound_samples/cries/muk.wav differ diff --git a/sound/direct_sound_samples/cries/murkrow.aif b/sound/direct_sound_samples/cries/murkrow.aif deleted file mode 100644 index 4beddff1e..000000000 Binary files a/sound/direct_sound_samples/cries/murkrow.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/murkrow.wav b/sound/direct_sound_samples/cries/murkrow.wav new file mode 100644 index 000000000..1ba1f5514 Binary files /dev/null and b/sound/direct_sound_samples/cries/murkrow.wav differ diff --git a/sound/direct_sound_samples/cries/natu.aif b/sound/direct_sound_samples/cries/natu.aif deleted file mode 100644 index e6e38d5cc..000000000 Binary files a/sound/direct_sound_samples/cries/natu.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/natu.wav b/sound/direct_sound_samples/cries/natu.wav new file mode 100644 index 000000000..3cf1fc15b Binary files /dev/null and b/sound/direct_sound_samples/cries/natu.wav differ diff --git a/sound/direct_sound_samples/cries/nidoking.aif b/sound/direct_sound_samples/cries/nidoking.aif deleted file mode 100644 index a0c86f9ab..000000000 Binary files a/sound/direct_sound_samples/cries/nidoking.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nidoking.wav b/sound/direct_sound_samples/cries/nidoking.wav new file mode 100644 index 000000000..4a068c909 Binary files /dev/null and b/sound/direct_sound_samples/cries/nidoking.wav differ diff --git a/sound/direct_sound_samples/cries/nidoqueen.aif b/sound/direct_sound_samples/cries/nidoqueen.aif deleted file mode 100644 index 6c8f5254b..000000000 Binary files a/sound/direct_sound_samples/cries/nidoqueen.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nidoqueen.wav b/sound/direct_sound_samples/cries/nidoqueen.wav new file mode 100644 index 000000000..2835f1b36 Binary files /dev/null and b/sound/direct_sound_samples/cries/nidoqueen.wav differ diff --git a/sound/direct_sound_samples/cries/nidoran_f.aif b/sound/direct_sound_samples/cries/nidoran_f.aif deleted file mode 100644 index b7c8a5317..000000000 Binary files a/sound/direct_sound_samples/cries/nidoran_f.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nidoran_f.wav b/sound/direct_sound_samples/cries/nidoran_f.wav new file mode 100644 index 000000000..3d50a6917 Binary files /dev/null and b/sound/direct_sound_samples/cries/nidoran_f.wav differ diff --git a/sound/direct_sound_samples/cries/nidoran_m.aif b/sound/direct_sound_samples/cries/nidoran_m.aif deleted file mode 100644 index 08fc81c8b..000000000 Binary files a/sound/direct_sound_samples/cries/nidoran_m.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nidoran_m.wav b/sound/direct_sound_samples/cries/nidoran_m.wav new file mode 100644 index 000000000..94fcf0e5b Binary files /dev/null and b/sound/direct_sound_samples/cries/nidoran_m.wav differ diff --git a/sound/direct_sound_samples/cries/nidorina.aif b/sound/direct_sound_samples/cries/nidorina.aif deleted file mode 100644 index 91e293a50..000000000 Binary files a/sound/direct_sound_samples/cries/nidorina.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nidorina.wav b/sound/direct_sound_samples/cries/nidorina.wav new file mode 100644 index 000000000..a2e1aa9d6 Binary files /dev/null and b/sound/direct_sound_samples/cries/nidorina.wav differ diff --git a/sound/direct_sound_samples/cries/nidorino.aif b/sound/direct_sound_samples/cries/nidorino.aif deleted file mode 100644 index 959351363..000000000 Binary files a/sound/direct_sound_samples/cries/nidorino.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nidorino.wav b/sound/direct_sound_samples/cries/nidorino.wav new file mode 100644 index 000000000..f4dea729c Binary files /dev/null and b/sound/direct_sound_samples/cries/nidorino.wav differ diff --git a/sound/direct_sound_samples/cries/nincada.aif b/sound/direct_sound_samples/cries/nincada.aif deleted file mode 100644 index 5f96bda50..000000000 Binary files a/sound/direct_sound_samples/cries/nincada.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nincada.wav b/sound/direct_sound_samples/cries/nincada.wav new file mode 100644 index 000000000..ec9b88858 Binary files /dev/null and b/sound/direct_sound_samples/cries/nincada.wav differ diff --git a/sound/direct_sound_samples/cries/ninetales.aif b/sound/direct_sound_samples/cries/ninetales.aif deleted file mode 100644 index 70c8cf528..000000000 Binary files a/sound/direct_sound_samples/cries/ninetales.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ninetales.wav b/sound/direct_sound_samples/cries/ninetales.wav new file mode 100644 index 000000000..0e5939ed2 Binary files /dev/null and b/sound/direct_sound_samples/cries/ninetales.wav differ diff --git a/sound/direct_sound_samples/cries/ninjask.aif b/sound/direct_sound_samples/cries/ninjask.aif deleted file mode 100644 index a6f07e8d3..000000000 Binary files a/sound/direct_sound_samples/cries/ninjask.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ninjask.wav b/sound/direct_sound_samples/cries/ninjask.wav new file mode 100644 index 000000000..20b496bc3 Binary files /dev/null and b/sound/direct_sound_samples/cries/ninjask.wav differ diff --git a/sound/direct_sound_samples/cries/noctowl.aif b/sound/direct_sound_samples/cries/noctowl.aif deleted file mode 100644 index fe2e63d45..000000000 Binary files a/sound/direct_sound_samples/cries/noctowl.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/noctowl.wav b/sound/direct_sound_samples/cries/noctowl.wav new file mode 100644 index 000000000..64f38a044 Binary files /dev/null and b/sound/direct_sound_samples/cries/noctowl.wav differ diff --git a/sound/direct_sound_samples/cries/nosepass.aif b/sound/direct_sound_samples/cries/nosepass.aif deleted file mode 100644 index be65ba082..000000000 Binary files a/sound/direct_sound_samples/cries/nosepass.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nosepass.wav b/sound/direct_sound_samples/cries/nosepass.wav new file mode 100644 index 000000000..996cfbe7d Binary files /dev/null and b/sound/direct_sound_samples/cries/nosepass.wav differ diff --git a/sound/direct_sound_samples/cries/numel.aif b/sound/direct_sound_samples/cries/numel.aif deleted file mode 100644 index 55cce5f2c..000000000 Binary files a/sound/direct_sound_samples/cries/numel.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/numel.wav b/sound/direct_sound_samples/cries/numel.wav new file mode 100644 index 000000000..a0ae3ebd8 Binary files /dev/null and b/sound/direct_sound_samples/cries/numel.wav differ diff --git a/sound/direct_sound_samples/cries/nuzleaf.aif b/sound/direct_sound_samples/cries/nuzleaf.aif deleted file mode 100644 index d668f3fd3..000000000 Binary files a/sound/direct_sound_samples/cries/nuzleaf.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/nuzleaf.wav b/sound/direct_sound_samples/cries/nuzleaf.wav new file mode 100644 index 000000000..60d0809ef Binary files /dev/null and b/sound/direct_sound_samples/cries/nuzleaf.wav differ diff --git a/sound/direct_sound_samples/cries/octillery.aif b/sound/direct_sound_samples/cries/octillery.aif deleted file mode 100644 index 75ee28ceb..000000000 Binary files a/sound/direct_sound_samples/cries/octillery.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/octillery.wav b/sound/direct_sound_samples/cries/octillery.wav new file mode 100644 index 000000000..11bc1361d Binary files /dev/null and b/sound/direct_sound_samples/cries/octillery.wav differ diff --git a/sound/direct_sound_samples/cries/oddish.aif b/sound/direct_sound_samples/cries/oddish.aif deleted file mode 100644 index 6909a8dad..000000000 Binary files a/sound/direct_sound_samples/cries/oddish.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/oddish.wav b/sound/direct_sound_samples/cries/oddish.wav new file mode 100644 index 000000000..bffae4bcf Binary files /dev/null and b/sound/direct_sound_samples/cries/oddish.wav differ diff --git a/sound/direct_sound_samples/cries/omanyte.aif b/sound/direct_sound_samples/cries/omanyte.aif deleted file mode 100644 index 15ec2d1ef..000000000 Binary files a/sound/direct_sound_samples/cries/omanyte.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/omanyte.wav b/sound/direct_sound_samples/cries/omanyte.wav new file mode 100644 index 000000000..46e47b0a2 Binary files /dev/null and b/sound/direct_sound_samples/cries/omanyte.wav differ diff --git a/sound/direct_sound_samples/cries/omastar.aif b/sound/direct_sound_samples/cries/omastar.aif deleted file mode 100644 index e67d5d7fc..000000000 Binary files a/sound/direct_sound_samples/cries/omastar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/omastar.wav b/sound/direct_sound_samples/cries/omastar.wav new file mode 100644 index 000000000..021355da9 Binary files /dev/null and b/sound/direct_sound_samples/cries/omastar.wav differ diff --git a/sound/direct_sound_samples/cries/onix.aif b/sound/direct_sound_samples/cries/onix.aif deleted file mode 100644 index aa8a16505..000000000 Binary files a/sound/direct_sound_samples/cries/onix.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/onix.wav b/sound/direct_sound_samples/cries/onix.wav new file mode 100644 index 000000000..f0dd1f45e Binary files /dev/null and b/sound/direct_sound_samples/cries/onix.wav differ diff --git a/sound/direct_sound_samples/cries/paras.aif b/sound/direct_sound_samples/cries/paras.aif deleted file mode 100644 index f9d69c21c..000000000 Binary files a/sound/direct_sound_samples/cries/paras.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/paras.wav b/sound/direct_sound_samples/cries/paras.wav new file mode 100644 index 000000000..27101a52f Binary files /dev/null and b/sound/direct_sound_samples/cries/paras.wav differ diff --git a/sound/direct_sound_samples/cries/parasect.aif b/sound/direct_sound_samples/cries/parasect.aif deleted file mode 100644 index d6d9433e9..000000000 Binary files a/sound/direct_sound_samples/cries/parasect.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/parasect.wav b/sound/direct_sound_samples/cries/parasect.wav new file mode 100644 index 000000000..909803da7 Binary files /dev/null and b/sound/direct_sound_samples/cries/parasect.wav differ diff --git a/sound/direct_sound_samples/cries/pelipper.aif b/sound/direct_sound_samples/cries/pelipper.aif deleted file mode 100644 index 26718f848..000000000 Binary files a/sound/direct_sound_samples/cries/pelipper.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pelipper.wav b/sound/direct_sound_samples/cries/pelipper.wav new file mode 100644 index 000000000..5af1e7998 Binary files /dev/null and b/sound/direct_sound_samples/cries/pelipper.wav differ diff --git a/sound/direct_sound_samples/cries/persian.aif b/sound/direct_sound_samples/cries/persian.aif deleted file mode 100644 index 40b3a2c56..000000000 Binary files a/sound/direct_sound_samples/cries/persian.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/persian.wav b/sound/direct_sound_samples/cries/persian.wav new file mode 100644 index 000000000..890089a51 Binary files /dev/null and b/sound/direct_sound_samples/cries/persian.wav differ diff --git a/sound/direct_sound_samples/cries/phanpy.aif b/sound/direct_sound_samples/cries/phanpy.aif deleted file mode 100644 index 2fcab3c82..000000000 Binary files a/sound/direct_sound_samples/cries/phanpy.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/phanpy.wav b/sound/direct_sound_samples/cries/phanpy.wav new file mode 100644 index 000000000..dcd679342 Binary files /dev/null and b/sound/direct_sound_samples/cries/phanpy.wav differ diff --git a/sound/direct_sound_samples/cries/pichu.aif b/sound/direct_sound_samples/cries/pichu.aif deleted file mode 100644 index de47bbab8..000000000 Binary files a/sound/direct_sound_samples/cries/pichu.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pichu.wav b/sound/direct_sound_samples/cries/pichu.wav new file mode 100644 index 000000000..cfbbb6adb Binary files /dev/null and b/sound/direct_sound_samples/cries/pichu.wav differ diff --git a/sound/direct_sound_samples/cries/pidgeot.aif b/sound/direct_sound_samples/cries/pidgeot.aif deleted file mode 100644 index af400cdc6..000000000 Binary files a/sound/direct_sound_samples/cries/pidgeot.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pidgeot.wav b/sound/direct_sound_samples/cries/pidgeot.wav new file mode 100644 index 000000000..d56e2e559 Binary files /dev/null and b/sound/direct_sound_samples/cries/pidgeot.wav differ diff --git a/sound/direct_sound_samples/cries/pidgeotto.aif b/sound/direct_sound_samples/cries/pidgeotto.aif deleted file mode 100644 index 7c71c8f3e..000000000 Binary files a/sound/direct_sound_samples/cries/pidgeotto.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pidgeotto.wav b/sound/direct_sound_samples/cries/pidgeotto.wav new file mode 100644 index 000000000..b8d075754 Binary files /dev/null and b/sound/direct_sound_samples/cries/pidgeotto.wav differ diff --git a/sound/direct_sound_samples/cries/pidgey.aif b/sound/direct_sound_samples/cries/pidgey.aif deleted file mode 100644 index b9c3a5d2a..000000000 Binary files a/sound/direct_sound_samples/cries/pidgey.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pidgey.wav b/sound/direct_sound_samples/cries/pidgey.wav new file mode 100644 index 000000000..5b58ae59b Binary files /dev/null and b/sound/direct_sound_samples/cries/pidgey.wav differ diff --git a/sound/direct_sound_samples/cries/pikachu.aif b/sound/direct_sound_samples/cries/pikachu.aif deleted file mode 100644 index 690bf5e1d..000000000 Binary files a/sound/direct_sound_samples/cries/pikachu.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pikachu.wav b/sound/direct_sound_samples/cries/pikachu.wav new file mode 100644 index 000000000..dc1d354c8 Binary files /dev/null and b/sound/direct_sound_samples/cries/pikachu.wav differ diff --git a/sound/direct_sound_samples/cries/piloswine.aif b/sound/direct_sound_samples/cries/piloswine.aif deleted file mode 100644 index b1f34d3b5..000000000 Binary files a/sound/direct_sound_samples/cries/piloswine.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/piloswine.wav b/sound/direct_sound_samples/cries/piloswine.wav new file mode 100644 index 000000000..f28be1f9b Binary files /dev/null and b/sound/direct_sound_samples/cries/piloswine.wav differ diff --git a/sound/direct_sound_samples/cries/pineco.aif b/sound/direct_sound_samples/cries/pineco.aif deleted file mode 100644 index 80292bda0..000000000 Binary files a/sound/direct_sound_samples/cries/pineco.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pineco.wav b/sound/direct_sound_samples/cries/pineco.wav new file mode 100644 index 000000000..cfaf5b9ee Binary files /dev/null and b/sound/direct_sound_samples/cries/pineco.wav differ diff --git a/sound/direct_sound_samples/cries/pinsir.aif b/sound/direct_sound_samples/cries/pinsir.aif deleted file mode 100644 index cf27a11de..000000000 Binary files a/sound/direct_sound_samples/cries/pinsir.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pinsir.wav b/sound/direct_sound_samples/cries/pinsir.wav new file mode 100644 index 000000000..76ac8fa15 Binary files /dev/null and b/sound/direct_sound_samples/cries/pinsir.wav differ diff --git a/sound/direct_sound_samples/cries/plusle.aif b/sound/direct_sound_samples/cries/plusle.aif deleted file mode 100644 index d68984263..000000000 Binary files a/sound/direct_sound_samples/cries/plusle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/plusle.wav b/sound/direct_sound_samples/cries/plusle.wav new file mode 100644 index 000000000..dcbe5fdd0 Binary files /dev/null and b/sound/direct_sound_samples/cries/plusle.wav differ diff --git a/sound/direct_sound_samples/cries/politoed.aif b/sound/direct_sound_samples/cries/politoed.aif deleted file mode 100644 index 38b1883b4..000000000 Binary files a/sound/direct_sound_samples/cries/politoed.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/politoed.wav b/sound/direct_sound_samples/cries/politoed.wav new file mode 100644 index 000000000..9a90e1785 Binary files /dev/null and b/sound/direct_sound_samples/cries/politoed.wav differ diff --git a/sound/direct_sound_samples/cries/poliwag.aif b/sound/direct_sound_samples/cries/poliwag.aif deleted file mode 100644 index 8467f0540..000000000 Binary files a/sound/direct_sound_samples/cries/poliwag.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/poliwag.wav b/sound/direct_sound_samples/cries/poliwag.wav new file mode 100644 index 000000000..64fe686c9 Binary files /dev/null and b/sound/direct_sound_samples/cries/poliwag.wav differ diff --git a/sound/direct_sound_samples/cries/poliwhirl.aif b/sound/direct_sound_samples/cries/poliwhirl.aif deleted file mode 100644 index f0851c693..000000000 Binary files a/sound/direct_sound_samples/cries/poliwhirl.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/poliwhirl.wav b/sound/direct_sound_samples/cries/poliwhirl.wav new file mode 100644 index 000000000..924bb457c Binary files /dev/null and b/sound/direct_sound_samples/cries/poliwhirl.wav differ diff --git a/sound/direct_sound_samples/cries/poliwrath.aif b/sound/direct_sound_samples/cries/poliwrath.aif deleted file mode 100644 index 8d19f1d86..000000000 Binary files a/sound/direct_sound_samples/cries/poliwrath.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/poliwrath.wav b/sound/direct_sound_samples/cries/poliwrath.wav new file mode 100644 index 000000000..93afcf2b6 Binary files /dev/null and b/sound/direct_sound_samples/cries/poliwrath.wav differ diff --git a/sound/direct_sound_samples/cries/ponyta.aif b/sound/direct_sound_samples/cries/ponyta.aif deleted file mode 100644 index 46feb123d..000000000 Binary files a/sound/direct_sound_samples/cries/ponyta.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ponyta.wav b/sound/direct_sound_samples/cries/ponyta.wav new file mode 100644 index 000000000..bfa5b06ef Binary files /dev/null and b/sound/direct_sound_samples/cries/ponyta.wav differ diff --git a/sound/direct_sound_samples/cries/poochyena.aif b/sound/direct_sound_samples/cries/poochyena.aif deleted file mode 100644 index 3b464ce13..000000000 Binary files a/sound/direct_sound_samples/cries/poochyena.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/poochyena.wav b/sound/direct_sound_samples/cries/poochyena.wav new file mode 100644 index 000000000..8d46225c5 Binary files /dev/null and b/sound/direct_sound_samples/cries/poochyena.wav differ diff --git a/sound/direct_sound_samples/cries/porygon.aif b/sound/direct_sound_samples/cries/porygon.aif deleted file mode 100644 index ced70b379..000000000 Binary files a/sound/direct_sound_samples/cries/porygon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/porygon.wav b/sound/direct_sound_samples/cries/porygon.wav new file mode 100644 index 000000000..48c43c2db Binary files /dev/null and b/sound/direct_sound_samples/cries/porygon.wav differ diff --git a/sound/direct_sound_samples/cries/porygon2.aif b/sound/direct_sound_samples/cries/porygon2.aif deleted file mode 100644 index c08a3caaf..000000000 Binary files a/sound/direct_sound_samples/cries/porygon2.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/porygon2.wav b/sound/direct_sound_samples/cries/porygon2.wav new file mode 100644 index 000000000..965c1b703 Binary files /dev/null and b/sound/direct_sound_samples/cries/porygon2.wav differ diff --git a/sound/direct_sound_samples/cries/primeape.aif b/sound/direct_sound_samples/cries/primeape.aif deleted file mode 100644 index a868b3120..000000000 Binary files a/sound/direct_sound_samples/cries/primeape.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/primeape.wav b/sound/direct_sound_samples/cries/primeape.wav new file mode 100644 index 000000000..146e92407 Binary files /dev/null and b/sound/direct_sound_samples/cries/primeape.wav differ diff --git a/sound/direct_sound_samples/cries/psyduck.aif b/sound/direct_sound_samples/cries/psyduck.aif deleted file mode 100644 index d2d0612f2..000000000 Binary files a/sound/direct_sound_samples/cries/psyduck.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/psyduck.wav b/sound/direct_sound_samples/cries/psyduck.wav new file mode 100644 index 000000000..7b1a76da7 Binary files /dev/null and b/sound/direct_sound_samples/cries/psyduck.wav differ diff --git a/sound/direct_sound_samples/cries/pupitar.aif b/sound/direct_sound_samples/cries/pupitar.aif deleted file mode 100644 index 7386636ce..000000000 Binary files a/sound/direct_sound_samples/cries/pupitar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/pupitar.wav b/sound/direct_sound_samples/cries/pupitar.wav new file mode 100644 index 000000000..776896729 Binary files /dev/null and b/sound/direct_sound_samples/cries/pupitar.wav differ diff --git a/sound/direct_sound_samples/cries/quagsire.aif b/sound/direct_sound_samples/cries/quagsire.aif deleted file mode 100644 index 1953d0e42..000000000 Binary files a/sound/direct_sound_samples/cries/quagsire.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/quagsire.wav b/sound/direct_sound_samples/cries/quagsire.wav new file mode 100644 index 000000000..116c1bdf4 Binary files /dev/null and b/sound/direct_sound_samples/cries/quagsire.wav differ diff --git a/sound/direct_sound_samples/cries/quilava.aif b/sound/direct_sound_samples/cries/quilava.aif deleted file mode 100644 index efe873229..000000000 Binary files a/sound/direct_sound_samples/cries/quilava.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/quilava.wav b/sound/direct_sound_samples/cries/quilava.wav new file mode 100644 index 000000000..5b44632ec Binary files /dev/null and b/sound/direct_sound_samples/cries/quilava.wav differ diff --git a/sound/direct_sound_samples/cries/qwilfish.aif b/sound/direct_sound_samples/cries/qwilfish.aif deleted file mode 100644 index 268c5c89d..000000000 Binary files a/sound/direct_sound_samples/cries/qwilfish.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/qwilfish.wav b/sound/direct_sound_samples/cries/qwilfish.wav new file mode 100644 index 000000000..1f857d2c2 Binary files /dev/null and b/sound/direct_sound_samples/cries/qwilfish.wav differ diff --git a/sound/direct_sound_samples/cries/raichu.aif b/sound/direct_sound_samples/cries/raichu.aif deleted file mode 100644 index e59ffbad4..000000000 Binary files a/sound/direct_sound_samples/cries/raichu.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/raichu.wav b/sound/direct_sound_samples/cries/raichu.wav new file mode 100644 index 000000000..7b93bb5a3 Binary files /dev/null and b/sound/direct_sound_samples/cries/raichu.wav differ diff --git a/sound/direct_sound_samples/cries/raikou.aif b/sound/direct_sound_samples/cries/raikou.aif deleted file mode 100644 index a57a2365c..000000000 Binary files a/sound/direct_sound_samples/cries/raikou.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/raikou.wav b/sound/direct_sound_samples/cries/raikou.wav new file mode 100644 index 000000000..35757a0ac Binary files /dev/null and b/sound/direct_sound_samples/cries/raikou.wav differ diff --git a/sound/direct_sound_samples/cries/ralts.aif b/sound/direct_sound_samples/cries/ralts.aif deleted file mode 100644 index 0baef5760..000000000 Binary files a/sound/direct_sound_samples/cries/ralts.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ralts.wav b/sound/direct_sound_samples/cries/ralts.wav new file mode 100644 index 000000000..37948dc49 Binary files /dev/null and b/sound/direct_sound_samples/cries/ralts.wav differ diff --git a/sound/direct_sound_samples/cries/rapidash.aif b/sound/direct_sound_samples/cries/rapidash.aif deleted file mode 100644 index 920f510e4..000000000 Binary files a/sound/direct_sound_samples/cries/rapidash.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/rapidash.wav b/sound/direct_sound_samples/cries/rapidash.wav new file mode 100644 index 000000000..953acc450 Binary files /dev/null and b/sound/direct_sound_samples/cries/rapidash.wav differ diff --git a/sound/direct_sound_samples/cries/raticate.aif b/sound/direct_sound_samples/cries/raticate.aif deleted file mode 100644 index 01601cab5..000000000 Binary files a/sound/direct_sound_samples/cries/raticate.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/raticate.wav b/sound/direct_sound_samples/cries/raticate.wav new file mode 100644 index 000000000..bbef0c0af Binary files /dev/null and b/sound/direct_sound_samples/cries/raticate.wav differ diff --git a/sound/direct_sound_samples/cries/rattata.aif b/sound/direct_sound_samples/cries/rattata.aif deleted file mode 100644 index cb0e1f422..000000000 Binary files a/sound/direct_sound_samples/cries/rattata.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/rattata.wav b/sound/direct_sound_samples/cries/rattata.wav new file mode 100644 index 000000000..951c3bd8a Binary files /dev/null and b/sound/direct_sound_samples/cries/rattata.wav differ diff --git a/sound/direct_sound_samples/cries/rayquaza.aif b/sound/direct_sound_samples/cries/rayquaza.aif deleted file mode 100644 index 6115e11d8..000000000 Binary files a/sound/direct_sound_samples/cries/rayquaza.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/rayquaza.wav b/sound/direct_sound_samples/cries/rayquaza.wav new file mode 100644 index 000000000..94c4f7c01 Binary files /dev/null and b/sound/direct_sound_samples/cries/rayquaza.wav differ diff --git a/sound/direct_sound_samples/cries/regice.aif b/sound/direct_sound_samples/cries/regice.aif deleted file mode 100644 index 6fa23dd73..000000000 Binary files a/sound/direct_sound_samples/cries/regice.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/regice.wav b/sound/direct_sound_samples/cries/regice.wav new file mode 100644 index 000000000..8a2bfe742 Binary files /dev/null and b/sound/direct_sound_samples/cries/regice.wav differ diff --git a/sound/direct_sound_samples/cries/regirock.aif b/sound/direct_sound_samples/cries/regirock.aif deleted file mode 100644 index ab2a47eb8..000000000 Binary files a/sound/direct_sound_samples/cries/regirock.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/regirock.wav b/sound/direct_sound_samples/cries/regirock.wav new file mode 100644 index 000000000..271b91f31 Binary files /dev/null and b/sound/direct_sound_samples/cries/regirock.wav differ diff --git a/sound/direct_sound_samples/cries/registeel.aif b/sound/direct_sound_samples/cries/registeel.aif deleted file mode 100644 index f5374e5f0..000000000 Binary files a/sound/direct_sound_samples/cries/registeel.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/registeel.wav b/sound/direct_sound_samples/cries/registeel.wav new file mode 100644 index 000000000..8bab7591f Binary files /dev/null and b/sound/direct_sound_samples/cries/registeel.wav differ diff --git a/sound/direct_sound_samples/cries/relicanth.aif b/sound/direct_sound_samples/cries/relicanth.aif deleted file mode 100644 index 60af9cf4e..000000000 Binary files a/sound/direct_sound_samples/cries/relicanth.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/relicanth.wav b/sound/direct_sound_samples/cries/relicanth.wav new file mode 100644 index 000000000..8561780d6 Binary files /dev/null and b/sound/direct_sound_samples/cries/relicanth.wav differ diff --git a/sound/direct_sound_samples/cries/remoraid.aif b/sound/direct_sound_samples/cries/remoraid.aif deleted file mode 100644 index 16d3f1d65..000000000 Binary files a/sound/direct_sound_samples/cries/remoraid.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/remoraid.wav b/sound/direct_sound_samples/cries/remoraid.wav new file mode 100644 index 000000000..ebab789ad Binary files /dev/null and b/sound/direct_sound_samples/cries/remoraid.wav differ diff --git a/sound/direct_sound_samples/cries/rhydon.aif b/sound/direct_sound_samples/cries/rhydon.aif deleted file mode 100644 index cfa709ee9..000000000 Binary files a/sound/direct_sound_samples/cries/rhydon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/rhydon.wav b/sound/direct_sound_samples/cries/rhydon.wav new file mode 100644 index 000000000..2c3907c91 Binary files /dev/null and b/sound/direct_sound_samples/cries/rhydon.wav differ diff --git a/sound/direct_sound_samples/cries/rhyhorn.aif b/sound/direct_sound_samples/cries/rhyhorn.aif deleted file mode 100644 index 47f344ba2..000000000 Binary files a/sound/direct_sound_samples/cries/rhyhorn.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/rhyhorn.wav b/sound/direct_sound_samples/cries/rhyhorn.wav new file mode 100644 index 000000000..858375991 Binary files /dev/null and b/sound/direct_sound_samples/cries/rhyhorn.wav differ diff --git a/sound/direct_sound_samples/cries/roselia.aif b/sound/direct_sound_samples/cries/roselia.aif deleted file mode 100644 index 50b60b77b..000000000 Binary files a/sound/direct_sound_samples/cries/roselia.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/roselia.wav b/sound/direct_sound_samples/cries/roselia.wav new file mode 100644 index 000000000..f9c67fae1 Binary files /dev/null and b/sound/direct_sound_samples/cries/roselia.wav differ diff --git a/sound/direct_sound_samples/cries/sableye.aif b/sound/direct_sound_samples/cries/sableye.aif deleted file mode 100644 index 1b3a9be30..000000000 Binary files a/sound/direct_sound_samples/cries/sableye.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sableye.wav b/sound/direct_sound_samples/cries/sableye.wav new file mode 100644 index 000000000..a1458cadc Binary files /dev/null and b/sound/direct_sound_samples/cries/sableye.wav differ diff --git a/sound/direct_sound_samples/cries/salamence.aif b/sound/direct_sound_samples/cries/salamence.aif deleted file mode 100644 index d2957809c..000000000 Binary files a/sound/direct_sound_samples/cries/salamence.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/salamence.wav b/sound/direct_sound_samples/cries/salamence.wav new file mode 100644 index 000000000..135d90ecd Binary files /dev/null and b/sound/direct_sound_samples/cries/salamence.wav differ diff --git a/sound/direct_sound_samples/cries/sandshrew.aif b/sound/direct_sound_samples/cries/sandshrew.aif deleted file mode 100644 index 6879be11d..000000000 Binary files a/sound/direct_sound_samples/cries/sandshrew.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sandshrew.wav b/sound/direct_sound_samples/cries/sandshrew.wav new file mode 100644 index 000000000..94f98193d Binary files /dev/null and b/sound/direct_sound_samples/cries/sandshrew.wav differ diff --git a/sound/direct_sound_samples/cries/sandslash.aif b/sound/direct_sound_samples/cries/sandslash.aif deleted file mode 100644 index ee4a458ed..000000000 Binary files a/sound/direct_sound_samples/cries/sandslash.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sandslash.wav b/sound/direct_sound_samples/cries/sandslash.wav new file mode 100644 index 000000000..ba3e29e08 Binary files /dev/null and b/sound/direct_sound_samples/cries/sandslash.wav differ diff --git a/sound/direct_sound_samples/cries/sceptile.aif b/sound/direct_sound_samples/cries/sceptile.aif deleted file mode 100644 index 7252cb85f..000000000 Binary files a/sound/direct_sound_samples/cries/sceptile.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sceptile.wav b/sound/direct_sound_samples/cries/sceptile.wav new file mode 100644 index 000000000..5ff4d5101 Binary files /dev/null and b/sound/direct_sound_samples/cries/sceptile.wav differ diff --git a/sound/direct_sound_samples/cries/scizor.aif b/sound/direct_sound_samples/cries/scizor.aif deleted file mode 100644 index f1f7832ce..000000000 Binary files a/sound/direct_sound_samples/cries/scizor.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/scizor.wav b/sound/direct_sound_samples/cries/scizor.wav new file mode 100644 index 000000000..bc37f521c Binary files /dev/null and b/sound/direct_sound_samples/cries/scizor.wav differ diff --git a/sound/direct_sound_samples/cries/scyther.aif b/sound/direct_sound_samples/cries/scyther.aif deleted file mode 100644 index 2b8cbc104..000000000 Binary files a/sound/direct_sound_samples/cries/scyther.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/scyther.wav b/sound/direct_sound_samples/cries/scyther.wav new file mode 100644 index 000000000..021a6e017 Binary files /dev/null and b/sound/direct_sound_samples/cries/scyther.wav differ diff --git a/sound/direct_sound_samples/cries/seadra.aif b/sound/direct_sound_samples/cries/seadra.aif deleted file mode 100644 index 2f60cce4a..000000000 Binary files a/sound/direct_sound_samples/cries/seadra.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/seadra.wav b/sound/direct_sound_samples/cries/seadra.wav new file mode 100644 index 000000000..84c6ad7c7 Binary files /dev/null and b/sound/direct_sound_samples/cries/seadra.wav differ diff --git a/sound/direct_sound_samples/cries/seaking.aif b/sound/direct_sound_samples/cries/seaking.aif deleted file mode 100644 index e4fc7e70d..000000000 Binary files a/sound/direct_sound_samples/cries/seaking.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/seaking.wav b/sound/direct_sound_samples/cries/seaking.wav new file mode 100644 index 000000000..0534a12ed Binary files /dev/null and b/sound/direct_sound_samples/cries/seaking.wav differ diff --git a/sound/direct_sound_samples/cries/sealeo.aif b/sound/direct_sound_samples/cries/sealeo.aif deleted file mode 100644 index d9ea50026..000000000 Binary files a/sound/direct_sound_samples/cries/sealeo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sealeo.wav b/sound/direct_sound_samples/cries/sealeo.wav new file mode 100644 index 000000000..744ab7390 Binary files /dev/null and b/sound/direct_sound_samples/cries/sealeo.wav differ diff --git a/sound/direct_sound_samples/cries/seedot.aif b/sound/direct_sound_samples/cries/seedot.aif deleted file mode 100644 index c37b769f8..000000000 Binary files a/sound/direct_sound_samples/cries/seedot.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/seedot.wav b/sound/direct_sound_samples/cries/seedot.wav new file mode 100644 index 000000000..367104936 Binary files /dev/null and b/sound/direct_sound_samples/cries/seedot.wav differ diff --git a/sound/direct_sound_samples/cries/seel.aif b/sound/direct_sound_samples/cries/seel.aif deleted file mode 100644 index 84c4a0a94..000000000 Binary files a/sound/direct_sound_samples/cries/seel.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/seel.wav b/sound/direct_sound_samples/cries/seel.wav new file mode 100644 index 000000000..95e027d5e Binary files /dev/null and b/sound/direct_sound_samples/cries/seel.wav differ diff --git a/sound/direct_sound_samples/cries/sentret.aif b/sound/direct_sound_samples/cries/sentret.aif deleted file mode 100644 index 4aed7cd70..000000000 Binary files a/sound/direct_sound_samples/cries/sentret.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sentret.wav b/sound/direct_sound_samples/cries/sentret.wav new file mode 100644 index 000000000..c7e1bb8a6 Binary files /dev/null and b/sound/direct_sound_samples/cries/sentret.wav differ diff --git a/sound/direct_sound_samples/cries/seviper.aif b/sound/direct_sound_samples/cries/seviper.aif deleted file mode 100644 index 6a15dd6e2..000000000 Binary files a/sound/direct_sound_samples/cries/seviper.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/seviper.wav b/sound/direct_sound_samples/cries/seviper.wav new file mode 100644 index 000000000..73529d9c1 Binary files /dev/null and b/sound/direct_sound_samples/cries/seviper.wav differ diff --git a/sound/direct_sound_samples/cries/sharpedo.aif b/sound/direct_sound_samples/cries/sharpedo.aif deleted file mode 100644 index 1b02b56ce..000000000 Binary files a/sound/direct_sound_samples/cries/sharpedo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sharpedo.wav b/sound/direct_sound_samples/cries/sharpedo.wav new file mode 100644 index 000000000..7f773d4fb Binary files /dev/null and b/sound/direct_sound_samples/cries/sharpedo.wav differ diff --git a/sound/direct_sound_samples/cries/shedinja.aif b/sound/direct_sound_samples/cries/shedinja.aif deleted file mode 100644 index 6d1d565f3..000000000 Binary files a/sound/direct_sound_samples/cries/shedinja.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/shedinja.wav b/sound/direct_sound_samples/cries/shedinja.wav new file mode 100644 index 000000000..6dda64b5d Binary files /dev/null and b/sound/direct_sound_samples/cries/shedinja.wav differ diff --git a/sound/direct_sound_samples/cries/shelgon.aif b/sound/direct_sound_samples/cries/shelgon.aif deleted file mode 100644 index 24f234ffe..000000000 Binary files a/sound/direct_sound_samples/cries/shelgon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/shelgon.wav b/sound/direct_sound_samples/cries/shelgon.wav new file mode 100644 index 000000000..85ed3939c Binary files /dev/null and b/sound/direct_sound_samples/cries/shelgon.wav differ diff --git a/sound/direct_sound_samples/cries/shellder.aif b/sound/direct_sound_samples/cries/shellder.aif deleted file mode 100644 index b2ea85228..000000000 Binary files a/sound/direct_sound_samples/cries/shellder.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/shellder.wav b/sound/direct_sound_samples/cries/shellder.wav new file mode 100644 index 000000000..5c38501ba Binary files /dev/null and b/sound/direct_sound_samples/cries/shellder.wav differ diff --git a/sound/direct_sound_samples/cries/shiftry.aif b/sound/direct_sound_samples/cries/shiftry.aif deleted file mode 100644 index c91ece114..000000000 Binary files a/sound/direct_sound_samples/cries/shiftry.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/shiftry.wav b/sound/direct_sound_samples/cries/shiftry.wav new file mode 100644 index 000000000..dbba7208b Binary files /dev/null and b/sound/direct_sound_samples/cries/shiftry.wav differ diff --git a/sound/direct_sound_samples/cries/shroomish.aif b/sound/direct_sound_samples/cries/shroomish.aif deleted file mode 100644 index 9e944ca20..000000000 Binary files a/sound/direct_sound_samples/cries/shroomish.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/shroomish.wav b/sound/direct_sound_samples/cries/shroomish.wav new file mode 100644 index 000000000..05fa69670 Binary files /dev/null and b/sound/direct_sound_samples/cries/shroomish.wav differ diff --git a/sound/direct_sound_samples/cries/shuckle.aif b/sound/direct_sound_samples/cries/shuckle.aif deleted file mode 100644 index d835d2de6..000000000 Binary files a/sound/direct_sound_samples/cries/shuckle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/shuckle.wav b/sound/direct_sound_samples/cries/shuckle.wav new file mode 100644 index 000000000..afc303e4d Binary files /dev/null and b/sound/direct_sound_samples/cries/shuckle.wav differ diff --git a/sound/direct_sound_samples/cries/shuppet.aif b/sound/direct_sound_samples/cries/shuppet.aif deleted file mode 100644 index 1cd9a2f14..000000000 Binary files a/sound/direct_sound_samples/cries/shuppet.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/shuppet.wav b/sound/direct_sound_samples/cries/shuppet.wav new file mode 100644 index 000000000..da206414c Binary files /dev/null and b/sound/direct_sound_samples/cries/shuppet.wav differ diff --git a/sound/direct_sound_samples/cries/silcoon.aif b/sound/direct_sound_samples/cries/silcoon.aif deleted file mode 100644 index ff48950ad..000000000 Binary files a/sound/direct_sound_samples/cries/silcoon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/silcoon.wav b/sound/direct_sound_samples/cries/silcoon.wav new file mode 100644 index 000000000..e5af66fbc Binary files /dev/null and b/sound/direct_sound_samples/cries/silcoon.wav differ diff --git a/sound/direct_sound_samples/cries/skarmory.aif b/sound/direct_sound_samples/cries/skarmory.aif deleted file mode 100644 index 88d3985a3..000000000 Binary files a/sound/direct_sound_samples/cries/skarmory.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/skarmory.wav b/sound/direct_sound_samples/cries/skarmory.wav new file mode 100644 index 000000000..7062c9813 Binary files /dev/null and b/sound/direct_sound_samples/cries/skarmory.wav differ diff --git a/sound/direct_sound_samples/cries/skiploom.aif b/sound/direct_sound_samples/cries/skiploom.aif deleted file mode 100644 index 201744d12..000000000 Binary files a/sound/direct_sound_samples/cries/skiploom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/skiploom.wav b/sound/direct_sound_samples/cries/skiploom.wav new file mode 100644 index 000000000..8aa05f5b7 Binary files /dev/null and b/sound/direct_sound_samples/cries/skiploom.wav differ diff --git a/sound/direct_sound_samples/cries/skitty.aif b/sound/direct_sound_samples/cries/skitty.aif deleted file mode 100644 index 7dc4578f4..000000000 Binary files a/sound/direct_sound_samples/cries/skitty.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/skitty.wav b/sound/direct_sound_samples/cries/skitty.wav new file mode 100644 index 000000000..ee5717d07 Binary files /dev/null and b/sound/direct_sound_samples/cries/skitty.wav differ diff --git a/sound/direct_sound_samples/cries/slaking.aif b/sound/direct_sound_samples/cries/slaking.aif deleted file mode 100644 index b6a4160f3..000000000 Binary files a/sound/direct_sound_samples/cries/slaking.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/slaking.wav b/sound/direct_sound_samples/cries/slaking.wav new file mode 100644 index 000000000..44681126d Binary files /dev/null and b/sound/direct_sound_samples/cries/slaking.wav differ diff --git a/sound/direct_sound_samples/cries/slakoth.aif b/sound/direct_sound_samples/cries/slakoth.aif deleted file mode 100644 index 0e4bbc3c3..000000000 Binary files a/sound/direct_sound_samples/cries/slakoth.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/slakoth.wav b/sound/direct_sound_samples/cries/slakoth.wav new file mode 100644 index 000000000..4c442f9c1 Binary files /dev/null and b/sound/direct_sound_samples/cries/slakoth.wav differ diff --git a/sound/direct_sound_samples/cries/slowbro.aif b/sound/direct_sound_samples/cries/slowbro.aif deleted file mode 100644 index f74b753d2..000000000 Binary files a/sound/direct_sound_samples/cries/slowbro.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/slowbro.wav b/sound/direct_sound_samples/cries/slowbro.wav new file mode 100644 index 000000000..c46e751f5 Binary files /dev/null and b/sound/direct_sound_samples/cries/slowbro.wav differ diff --git a/sound/direct_sound_samples/cries/slowking.aif b/sound/direct_sound_samples/cries/slowking.aif deleted file mode 100644 index 245a42023..000000000 Binary files a/sound/direct_sound_samples/cries/slowking.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/slowking.wav b/sound/direct_sound_samples/cries/slowking.wav new file mode 100644 index 000000000..a32fea33d Binary files /dev/null and b/sound/direct_sound_samples/cries/slowking.wav differ diff --git a/sound/direct_sound_samples/cries/slowpoke.aif b/sound/direct_sound_samples/cries/slowpoke.aif deleted file mode 100644 index 82b05a9a7..000000000 Binary files a/sound/direct_sound_samples/cries/slowpoke.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/slowpoke.wav b/sound/direct_sound_samples/cries/slowpoke.wav new file mode 100644 index 000000000..275c2d9da Binary files /dev/null and b/sound/direct_sound_samples/cries/slowpoke.wav differ diff --git a/sound/direct_sound_samples/cries/slugma.aif b/sound/direct_sound_samples/cries/slugma.aif deleted file mode 100644 index fed42817c..000000000 Binary files a/sound/direct_sound_samples/cries/slugma.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/slugma.wav b/sound/direct_sound_samples/cries/slugma.wav new file mode 100644 index 000000000..fed73cced Binary files /dev/null and b/sound/direct_sound_samples/cries/slugma.wav differ diff --git a/sound/direct_sound_samples/cries/smeargle.aif b/sound/direct_sound_samples/cries/smeargle.aif deleted file mode 100644 index 00dbedead..000000000 Binary files a/sound/direct_sound_samples/cries/smeargle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/smeargle.wav b/sound/direct_sound_samples/cries/smeargle.wav new file mode 100644 index 000000000..abb48580b Binary files /dev/null and b/sound/direct_sound_samples/cries/smeargle.wav differ diff --git a/sound/direct_sound_samples/cries/smoochum.aif b/sound/direct_sound_samples/cries/smoochum.aif deleted file mode 100644 index 4005b4ad4..000000000 Binary files a/sound/direct_sound_samples/cries/smoochum.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/smoochum.wav b/sound/direct_sound_samples/cries/smoochum.wav new file mode 100644 index 000000000..33f50b046 Binary files /dev/null and b/sound/direct_sound_samples/cries/smoochum.wav differ diff --git a/sound/direct_sound_samples/cries/sneasel.aif b/sound/direct_sound_samples/cries/sneasel.aif deleted file mode 100644 index 54242a23f..000000000 Binary files a/sound/direct_sound_samples/cries/sneasel.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sneasel.wav b/sound/direct_sound_samples/cries/sneasel.wav new file mode 100644 index 000000000..dc960be0d Binary files /dev/null and b/sound/direct_sound_samples/cries/sneasel.wav differ diff --git a/sound/direct_sound_samples/cries/snorlax.aif b/sound/direct_sound_samples/cries/snorlax.aif deleted file mode 100644 index f95128e3a..000000000 Binary files a/sound/direct_sound_samples/cries/snorlax.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/snorlax.wav b/sound/direct_sound_samples/cries/snorlax.wav new file mode 100644 index 000000000..c0e45a457 Binary files /dev/null and b/sound/direct_sound_samples/cries/snorlax.wav differ diff --git a/sound/direct_sound_samples/cries/snorunt.aif b/sound/direct_sound_samples/cries/snorunt.aif deleted file mode 100644 index 53b05b229..000000000 Binary files a/sound/direct_sound_samples/cries/snorunt.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/snorunt.wav b/sound/direct_sound_samples/cries/snorunt.wav new file mode 100644 index 000000000..586c13116 Binary files /dev/null and b/sound/direct_sound_samples/cries/snorunt.wav differ diff --git a/sound/direct_sound_samples/cries/snubbull.aif b/sound/direct_sound_samples/cries/snubbull.aif deleted file mode 100644 index bbba023fd..000000000 Binary files a/sound/direct_sound_samples/cries/snubbull.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/snubbull.wav b/sound/direct_sound_samples/cries/snubbull.wav new file mode 100644 index 000000000..626da01c1 Binary files /dev/null and b/sound/direct_sound_samples/cries/snubbull.wav differ diff --git a/sound/direct_sound_samples/cries/solrock.aif b/sound/direct_sound_samples/cries/solrock.aif deleted file mode 100644 index 64c71f289..000000000 Binary files a/sound/direct_sound_samples/cries/solrock.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/solrock.wav b/sound/direct_sound_samples/cries/solrock.wav new file mode 100644 index 000000000..d99dcbd2b Binary files /dev/null and b/sound/direct_sound_samples/cries/solrock.wav differ diff --git a/sound/direct_sound_samples/cries/spearow.aif b/sound/direct_sound_samples/cries/spearow.aif deleted file mode 100644 index 7ce86ae29..000000000 Binary files a/sound/direct_sound_samples/cries/spearow.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/spearow.wav b/sound/direct_sound_samples/cries/spearow.wav new file mode 100644 index 000000000..e441d27ed Binary files /dev/null and b/sound/direct_sound_samples/cries/spearow.wav differ diff --git a/sound/direct_sound_samples/cries/spheal.aif b/sound/direct_sound_samples/cries/spheal.aif deleted file mode 100644 index fb6470210..000000000 Binary files a/sound/direct_sound_samples/cries/spheal.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/spheal.wav b/sound/direct_sound_samples/cries/spheal.wav new file mode 100644 index 000000000..560239934 Binary files /dev/null and b/sound/direct_sound_samples/cries/spheal.wav differ diff --git a/sound/direct_sound_samples/cries/spinarak.aif b/sound/direct_sound_samples/cries/spinarak.aif deleted file mode 100644 index 3c4c1eff1..000000000 Binary files a/sound/direct_sound_samples/cries/spinarak.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/spinarak.wav b/sound/direct_sound_samples/cries/spinarak.wav new file mode 100644 index 000000000..764efce71 Binary files /dev/null and b/sound/direct_sound_samples/cries/spinarak.wav differ diff --git a/sound/direct_sound_samples/cries/spinda.aif b/sound/direct_sound_samples/cries/spinda.aif deleted file mode 100644 index 0217573c7..000000000 Binary files a/sound/direct_sound_samples/cries/spinda.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/spinda.wav b/sound/direct_sound_samples/cries/spinda.wav new file mode 100644 index 000000000..a86581778 Binary files /dev/null and b/sound/direct_sound_samples/cries/spinda.wav differ diff --git a/sound/direct_sound_samples/cries/spoink.aif b/sound/direct_sound_samples/cries/spoink.aif deleted file mode 100644 index 6cc9bf546..000000000 Binary files a/sound/direct_sound_samples/cries/spoink.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/spoink.wav b/sound/direct_sound_samples/cries/spoink.wav new file mode 100644 index 000000000..880637b5c Binary files /dev/null and b/sound/direct_sound_samples/cries/spoink.wav differ diff --git a/sound/direct_sound_samples/cries/squirtle.aif b/sound/direct_sound_samples/cries/squirtle.aif deleted file mode 100644 index 43a98a53d..000000000 Binary files a/sound/direct_sound_samples/cries/squirtle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/squirtle.wav b/sound/direct_sound_samples/cries/squirtle.wav new file mode 100644 index 000000000..fb533d718 Binary files /dev/null and b/sound/direct_sound_samples/cries/squirtle.wav differ diff --git a/sound/direct_sound_samples/cries/stantler.aif b/sound/direct_sound_samples/cries/stantler.aif deleted file mode 100644 index 36ba54658..000000000 Binary files a/sound/direct_sound_samples/cries/stantler.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/stantler.wav b/sound/direct_sound_samples/cries/stantler.wav new file mode 100644 index 000000000..febf2e616 Binary files /dev/null and b/sound/direct_sound_samples/cries/stantler.wav differ diff --git a/sound/direct_sound_samples/cries/starmie.aif b/sound/direct_sound_samples/cries/starmie.aif deleted file mode 100644 index 7452a78f9..000000000 Binary files a/sound/direct_sound_samples/cries/starmie.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/starmie.wav b/sound/direct_sound_samples/cries/starmie.wav new file mode 100644 index 000000000..40edec6b9 Binary files /dev/null and b/sound/direct_sound_samples/cries/starmie.wav differ diff --git a/sound/direct_sound_samples/cries/staryu.aif b/sound/direct_sound_samples/cries/staryu.aif deleted file mode 100644 index 6ab5584bf..000000000 Binary files a/sound/direct_sound_samples/cries/staryu.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/staryu.wav b/sound/direct_sound_samples/cries/staryu.wav new file mode 100644 index 000000000..611c0571b Binary files /dev/null and b/sound/direct_sound_samples/cries/staryu.wav differ diff --git a/sound/direct_sound_samples/cries/steelix.aif b/sound/direct_sound_samples/cries/steelix.aif deleted file mode 100644 index aa05e2d4c..000000000 Binary files a/sound/direct_sound_samples/cries/steelix.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/steelix.wav b/sound/direct_sound_samples/cries/steelix.wav new file mode 100644 index 000000000..85de343ab Binary files /dev/null and b/sound/direct_sound_samples/cries/steelix.wav differ diff --git a/sound/direct_sound_samples/cries/sudowoodo.aif b/sound/direct_sound_samples/cries/sudowoodo.aif deleted file mode 100644 index 1af7e18eb..000000000 Binary files a/sound/direct_sound_samples/cries/sudowoodo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sudowoodo.wav b/sound/direct_sound_samples/cries/sudowoodo.wav new file mode 100644 index 000000000..97bb1d51a Binary files /dev/null and b/sound/direct_sound_samples/cries/sudowoodo.wav differ diff --git a/sound/direct_sound_samples/cries/suicune.aif b/sound/direct_sound_samples/cries/suicune.aif deleted file mode 100644 index 697732d68..000000000 Binary files a/sound/direct_sound_samples/cries/suicune.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/suicune.wav b/sound/direct_sound_samples/cries/suicune.wav new file mode 100644 index 000000000..90218ad01 Binary files /dev/null and b/sound/direct_sound_samples/cries/suicune.wav differ diff --git a/sound/direct_sound_samples/cries/sunflora.aif b/sound/direct_sound_samples/cries/sunflora.aif deleted file mode 100644 index 126931adc..000000000 Binary files a/sound/direct_sound_samples/cries/sunflora.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sunflora.wav b/sound/direct_sound_samples/cries/sunflora.wav new file mode 100644 index 000000000..ccad9c8c3 Binary files /dev/null and b/sound/direct_sound_samples/cries/sunflora.wav differ diff --git a/sound/direct_sound_samples/cries/sunkern.aif b/sound/direct_sound_samples/cries/sunkern.aif deleted file mode 100644 index bede3bf95..000000000 Binary files a/sound/direct_sound_samples/cries/sunkern.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/sunkern.wav b/sound/direct_sound_samples/cries/sunkern.wav new file mode 100644 index 000000000..0b670dadb Binary files /dev/null and b/sound/direct_sound_samples/cries/sunkern.wav differ diff --git a/sound/direct_sound_samples/cries/surskit.aif b/sound/direct_sound_samples/cries/surskit.aif deleted file mode 100644 index 438b5b67a..000000000 Binary files a/sound/direct_sound_samples/cries/surskit.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/surskit.wav b/sound/direct_sound_samples/cries/surskit.wav new file mode 100644 index 000000000..650fde3d1 Binary files /dev/null and b/sound/direct_sound_samples/cries/surskit.wav differ diff --git a/sound/direct_sound_samples/cries/swablu.aif b/sound/direct_sound_samples/cries/swablu.aif deleted file mode 100644 index 066095f55..000000000 Binary files a/sound/direct_sound_samples/cries/swablu.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/swablu.wav b/sound/direct_sound_samples/cries/swablu.wav new file mode 100644 index 000000000..0fafb27d0 Binary files /dev/null and b/sound/direct_sound_samples/cries/swablu.wav differ diff --git a/sound/direct_sound_samples/cries/swalot.aif b/sound/direct_sound_samples/cries/swalot.aif deleted file mode 100644 index 518a9bf5a..000000000 Binary files a/sound/direct_sound_samples/cries/swalot.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/swalot.wav b/sound/direct_sound_samples/cries/swalot.wav new file mode 100644 index 000000000..56e0b170b Binary files /dev/null and b/sound/direct_sound_samples/cries/swalot.wav differ diff --git a/sound/direct_sound_samples/cries/swampert.aif b/sound/direct_sound_samples/cries/swampert.aif deleted file mode 100644 index 56bd26405..000000000 Binary files a/sound/direct_sound_samples/cries/swampert.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/swampert.wav b/sound/direct_sound_samples/cries/swampert.wav new file mode 100644 index 000000000..eab813edb Binary files /dev/null and b/sound/direct_sound_samples/cries/swampert.wav differ diff --git a/sound/direct_sound_samples/cries/swellow.aif b/sound/direct_sound_samples/cries/swellow.aif deleted file mode 100644 index 2b94eb432..000000000 Binary files a/sound/direct_sound_samples/cries/swellow.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/swellow.wav b/sound/direct_sound_samples/cries/swellow.wav new file mode 100644 index 000000000..118eb684c Binary files /dev/null and b/sound/direct_sound_samples/cries/swellow.wav differ diff --git a/sound/direct_sound_samples/cries/swinub.aif b/sound/direct_sound_samples/cries/swinub.aif deleted file mode 100644 index dc68d62d8..000000000 Binary files a/sound/direct_sound_samples/cries/swinub.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/swinub.wav b/sound/direct_sound_samples/cries/swinub.wav new file mode 100644 index 000000000..e84ba9454 Binary files /dev/null and b/sound/direct_sound_samples/cries/swinub.wav differ diff --git a/sound/direct_sound_samples/cries/taillow.aif b/sound/direct_sound_samples/cries/taillow.aif deleted file mode 100644 index 8322a3224..000000000 Binary files a/sound/direct_sound_samples/cries/taillow.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/taillow.wav b/sound/direct_sound_samples/cries/taillow.wav new file mode 100644 index 000000000..7d4135c76 Binary files /dev/null and b/sound/direct_sound_samples/cries/taillow.wav differ diff --git a/sound/direct_sound_samples/cries/tangela.aif b/sound/direct_sound_samples/cries/tangela.aif deleted file mode 100644 index c900b426d..000000000 Binary files a/sound/direct_sound_samples/cries/tangela.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tangela.wav b/sound/direct_sound_samples/cries/tangela.wav new file mode 100644 index 000000000..991b787ff Binary files /dev/null and b/sound/direct_sound_samples/cries/tangela.wav differ diff --git a/sound/direct_sound_samples/cries/tauros.aif b/sound/direct_sound_samples/cries/tauros.aif deleted file mode 100644 index 84fa9b317..000000000 Binary files a/sound/direct_sound_samples/cries/tauros.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tauros.wav b/sound/direct_sound_samples/cries/tauros.wav new file mode 100644 index 000000000..f7610d2dd Binary files /dev/null and b/sound/direct_sound_samples/cries/tauros.wav differ diff --git a/sound/direct_sound_samples/cries/teddiursa.aif b/sound/direct_sound_samples/cries/teddiursa.aif deleted file mode 100644 index ba5cb5bc3..000000000 Binary files a/sound/direct_sound_samples/cries/teddiursa.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/teddiursa.wav b/sound/direct_sound_samples/cries/teddiursa.wav new file mode 100644 index 000000000..d55bc9e4a Binary files /dev/null and b/sound/direct_sound_samples/cries/teddiursa.wav differ diff --git a/sound/direct_sound_samples/cries/tentacool.aif b/sound/direct_sound_samples/cries/tentacool.aif deleted file mode 100644 index 332bec4b2..000000000 Binary files a/sound/direct_sound_samples/cries/tentacool.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tentacool.wav b/sound/direct_sound_samples/cries/tentacool.wav new file mode 100644 index 000000000..f35d2a625 Binary files /dev/null and b/sound/direct_sound_samples/cries/tentacool.wav differ diff --git a/sound/direct_sound_samples/cries/tentacruel.aif b/sound/direct_sound_samples/cries/tentacruel.aif deleted file mode 100644 index e8ec1b14c..000000000 Binary files a/sound/direct_sound_samples/cries/tentacruel.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tentacruel.wav b/sound/direct_sound_samples/cries/tentacruel.wav new file mode 100644 index 000000000..3799a1075 Binary files /dev/null and b/sound/direct_sound_samples/cries/tentacruel.wav differ diff --git a/sound/direct_sound_samples/cries/togepi.aif b/sound/direct_sound_samples/cries/togepi.aif deleted file mode 100644 index 87ef6ef2d..000000000 Binary files a/sound/direct_sound_samples/cries/togepi.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/togepi.wav b/sound/direct_sound_samples/cries/togepi.wav new file mode 100644 index 000000000..ac6bbf9ff Binary files /dev/null and b/sound/direct_sound_samples/cries/togepi.wav differ diff --git a/sound/direct_sound_samples/cries/togetic.aif b/sound/direct_sound_samples/cries/togetic.aif deleted file mode 100644 index 8aa18ac41..000000000 Binary files a/sound/direct_sound_samples/cries/togetic.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/togetic.wav b/sound/direct_sound_samples/cries/togetic.wav new file mode 100644 index 000000000..f8b70c0f4 Binary files /dev/null and b/sound/direct_sound_samples/cries/togetic.wav differ diff --git a/sound/direct_sound_samples/cries/torchic.aif b/sound/direct_sound_samples/cries/torchic.aif deleted file mode 100644 index 185a79499..000000000 Binary files a/sound/direct_sound_samples/cries/torchic.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/torchic.wav b/sound/direct_sound_samples/cries/torchic.wav new file mode 100644 index 000000000..5dd5c56be Binary files /dev/null and b/sound/direct_sound_samples/cries/torchic.wav differ diff --git a/sound/direct_sound_samples/cries/torkoal.aif b/sound/direct_sound_samples/cries/torkoal.aif deleted file mode 100644 index 9e56d3810..000000000 Binary files a/sound/direct_sound_samples/cries/torkoal.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/torkoal.wav b/sound/direct_sound_samples/cries/torkoal.wav new file mode 100644 index 000000000..aed384296 Binary files /dev/null and b/sound/direct_sound_samples/cries/torkoal.wav differ diff --git a/sound/direct_sound_samples/cries/totodile.aif b/sound/direct_sound_samples/cries/totodile.aif deleted file mode 100644 index dbf2179a7..000000000 Binary files a/sound/direct_sound_samples/cries/totodile.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/totodile.wav b/sound/direct_sound_samples/cries/totodile.wav new file mode 100644 index 000000000..4a4263ec2 Binary files /dev/null and b/sound/direct_sound_samples/cries/totodile.wav differ diff --git a/sound/direct_sound_samples/cries/trapinch.aif b/sound/direct_sound_samples/cries/trapinch.aif deleted file mode 100644 index 01664b72e..000000000 Binary files a/sound/direct_sound_samples/cries/trapinch.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/trapinch.wav b/sound/direct_sound_samples/cries/trapinch.wav new file mode 100644 index 000000000..abb851c1b Binary files /dev/null and b/sound/direct_sound_samples/cries/trapinch.wav differ diff --git a/sound/direct_sound_samples/cries/treecko.aif b/sound/direct_sound_samples/cries/treecko.aif deleted file mode 100644 index a7416e8da..000000000 Binary files a/sound/direct_sound_samples/cries/treecko.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/treecko.wav b/sound/direct_sound_samples/cries/treecko.wav new file mode 100644 index 000000000..da4304845 Binary files /dev/null and b/sound/direct_sound_samples/cries/treecko.wav differ diff --git a/sound/direct_sound_samples/cries/tropius.aif b/sound/direct_sound_samples/cries/tropius.aif deleted file mode 100644 index bbb52787b..000000000 Binary files a/sound/direct_sound_samples/cries/tropius.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tropius.wav b/sound/direct_sound_samples/cries/tropius.wav new file mode 100644 index 000000000..f7f7cbc38 Binary files /dev/null and b/sound/direct_sound_samples/cries/tropius.wav differ diff --git a/sound/direct_sound_samples/cries/typhlosion.aif b/sound/direct_sound_samples/cries/typhlosion.aif deleted file mode 100644 index f0238d066..000000000 Binary files a/sound/direct_sound_samples/cries/typhlosion.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/typhlosion.wav b/sound/direct_sound_samples/cries/typhlosion.wav new file mode 100644 index 000000000..cd525d561 Binary files /dev/null and b/sound/direct_sound_samples/cries/typhlosion.wav differ diff --git a/sound/direct_sound_samples/cries/tyranitar.aif b/sound/direct_sound_samples/cries/tyranitar.aif deleted file mode 100644 index 557f61769..000000000 Binary files a/sound/direct_sound_samples/cries/tyranitar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tyranitar.wav b/sound/direct_sound_samples/cries/tyranitar.wav new file mode 100644 index 000000000..f2b768210 Binary files /dev/null and b/sound/direct_sound_samples/cries/tyranitar.wav differ diff --git a/sound/direct_sound_samples/cries/tyrogue.aif b/sound/direct_sound_samples/cries/tyrogue.aif deleted file mode 100644 index e5065f58b..000000000 Binary files a/sound/direct_sound_samples/cries/tyrogue.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tyrogue.wav b/sound/direct_sound_samples/cries/tyrogue.wav new file mode 100644 index 000000000..4905a8566 Binary files /dev/null and b/sound/direct_sound_samples/cries/tyrogue.wav differ diff --git a/sound/direct_sound_samples/cries/umbreon.aif b/sound/direct_sound_samples/cries/umbreon.aif deleted file mode 100644 index 38129b1a7..000000000 Binary files a/sound/direct_sound_samples/cries/umbreon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/umbreon.wav b/sound/direct_sound_samples/cries/umbreon.wav new file mode 100644 index 000000000..8735d9fde Binary files /dev/null and b/sound/direct_sound_samples/cries/umbreon.wav differ diff --git a/sound/direct_sound_samples/cries/unown.aif b/sound/direct_sound_samples/cries/unown.aif deleted file mode 100644 index 8339ccb6b..000000000 Binary files a/sound/direct_sound_samples/cries/unown.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/unown.wav b/sound/direct_sound_samples/cries/unown.wav new file mode 100644 index 000000000..befaaedd0 Binary files /dev/null and b/sound/direct_sound_samples/cries/unown.wav differ diff --git a/sound/direct_sound_samples/cries/unused_265.aif b/sound/direct_sound_samples/cries/unused_265.aif deleted file mode 100644 index 7f5965f06..000000000 Binary files a/sound/direct_sound_samples/cries/unused_265.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/unused_265.wav b/sound/direct_sound_samples/cries/unused_265.wav new file mode 100644 index 000000000..5735db46f Binary files /dev/null and b/sound/direct_sound_samples/cries/unused_265.wav differ diff --git a/sound/direct_sound_samples/cries/unused_268.aif b/sound/direct_sound_samples/cries/unused_268.aif deleted file mode 100644 index 5cae364c3..000000000 Binary files a/sound/direct_sound_samples/cries/unused_268.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/unused_268.wav b/sound/direct_sound_samples/cries/unused_268.wav new file mode 100644 index 000000000..c698955e8 Binary files /dev/null and b/sound/direct_sound_samples/cries/unused_268.wav differ diff --git a/sound/direct_sound_samples/cries/ursaring.aif b/sound/direct_sound_samples/cries/ursaring.aif deleted file mode 100644 index fcc748bd1..000000000 Binary files a/sound/direct_sound_samples/cries/ursaring.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/ursaring.wav b/sound/direct_sound_samples/cries/ursaring.wav new file mode 100644 index 000000000..e8ccc67ca Binary files /dev/null and b/sound/direct_sound_samples/cries/ursaring.wav differ diff --git a/sound/direct_sound_samples/cries/vaporeon.aif b/sound/direct_sound_samples/cries/vaporeon.aif deleted file mode 100644 index 4967cfdeb..000000000 Binary files a/sound/direct_sound_samples/cries/vaporeon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/vaporeon.wav b/sound/direct_sound_samples/cries/vaporeon.wav new file mode 100644 index 000000000..861bc93cb Binary files /dev/null and b/sound/direct_sound_samples/cries/vaporeon.wav differ diff --git a/sound/direct_sound_samples/cries/venomoth.aif b/sound/direct_sound_samples/cries/venomoth.aif deleted file mode 100644 index bc291ec33..000000000 Binary files a/sound/direct_sound_samples/cries/venomoth.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/venomoth.wav b/sound/direct_sound_samples/cries/venomoth.wav new file mode 100644 index 000000000..76deea6e8 Binary files /dev/null and b/sound/direct_sound_samples/cries/venomoth.wav differ diff --git a/sound/direct_sound_samples/cries/venonat.aif b/sound/direct_sound_samples/cries/venonat.aif deleted file mode 100644 index e89d87fa8..000000000 Binary files a/sound/direct_sound_samples/cries/venonat.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/venonat.wav b/sound/direct_sound_samples/cries/venonat.wav new file mode 100644 index 000000000..52763c4ea Binary files /dev/null and b/sound/direct_sound_samples/cries/venonat.wav differ diff --git a/sound/direct_sound_samples/cries/venusaur.aif b/sound/direct_sound_samples/cries/venusaur.aif deleted file mode 100644 index 8a1f69e6e..000000000 Binary files a/sound/direct_sound_samples/cries/venusaur.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/venusaur.wav b/sound/direct_sound_samples/cries/venusaur.wav new file mode 100644 index 000000000..4273ac847 Binary files /dev/null and b/sound/direct_sound_samples/cries/venusaur.wav differ diff --git a/sound/direct_sound_samples/cries/vibrava.aif b/sound/direct_sound_samples/cries/vibrava.aif deleted file mode 100644 index 3e3180219..000000000 Binary files a/sound/direct_sound_samples/cries/vibrava.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/vibrava.wav b/sound/direct_sound_samples/cries/vibrava.wav new file mode 100644 index 000000000..9f4b2b362 Binary files /dev/null and b/sound/direct_sound_samples/cries/vibrava.wav differ diff --git a/sound/direct_sound_samples/cries/victreebel.aif b/sound/direct_sound_samples/cries/victreebel.aif deleted file mode 100644 index d6e6a4fe9..000000000 Binary files a/sound/direct_sound_samples/cries/victreebel.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/victreebel.wav b/sound/direct_sound_samples/cries/victreebel.wav new file mode 100644 index 000000000..cea271b30 Binary files /dev/null and b/sound/direct_sound_samples/cries/victreebel.wav differ diff --git a/sound/direct_sound_samples/cries/vigoroth.aif b/sound/direct_sound_samples/cries/vigoroth.aif deleted file mode 100644 index fc414f33d..000000000 Binary files a/sound/direct_sound_samples/cries/vigoroth.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/vigoroth.wav b/sound/direct_sound_samples/cries/vigoroth.wav new file mode 100644 index 000000000..800a4989f Binary files /dev/null and b/sound/direct_sound_samples/cries/vigoroth.wav differ diff --git a/sound/direct_sound_samples/cries/vileplume.aif b/sound/direct_sound_samples/cries/vileplume.aif deleted file mode 100644 index 723eec697..000000000 Binary files a/sound/direct_sound_samples/cries/vileplume.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/vileplume.wav b/sound/direct_sound_samples/cries/vileplume.wav new file mode 100644 index 000000000..06dfaab47 Binary files /dev/null and b/sound/direct_sound_samples/cries/vileplume.wav differ diff --git a/sound/direct_sound_samples/cries/volbeat.aif b/sound/direct_sound_samples/cries/volbeat.aif deleted file mode 100644 index 6f765081e..000000000 Binary files a/sound/direct_sound_samples/cries/volbeat.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/volbeat.wav b/sound/direct_sound_samples/cries/volbeat.wav new file mode 100644 index 000000000..d29a8ddbe Binary files /dev/null and b/sound/direct_sound_samples/cries/volbeat.wav differ diff --git a/sound/direct_sound_samples/cries/voltorb.aif b/sound/direct_sound_samples/cries/voltorb.aif deleted file mode 100644 index 96e3bff31..000000000 Binary files a/sound/direct_sound_samples/cries/voltorb.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/voltorb.wav b/sound/direct_sound_samples/cries/voltorb.wav new file mode 100644 index 000000000..0c698af27 Binary files /dev/null and b/sound/direct_sound_samples/cries/voltorb.wav differ diff --git a/sound/direct_sound_samples/cries/vulpix.aif b/sound/direct_sound_samples/cries/vulpix.aif deleted file mode 100644 index 20da23fb4..000000000 Binary files a/sound/direct_sound_samples/cries/vulpix.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/vulpix.wav b/sound/direct_sound_samples/cries/vulpix.wav new file mode 100644 index 000000000..895bf7f35 Binary files /dev/null and b/sound/direct_sound_samples/cries/vulpix.wav differ diff --git a/sound/direct_sound_samples/cries/wailmer.aif b/sound/direct_sound_samples/cries/wailmer.aif deleted file mode 100644 index e8de91333..000000000 Binary files a/sound/direct_sound_samples/cries/wailmer.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wailmer.wav b/sound/direct_sound_samples/cries/wailmer.wav new file mode 100644 index 000000000..514200f85 Binary files /dev/null and b/sound/direct_sound_samples/cries/wailmer.wav differ diff --git a/sound/direct_sound_samples/cries/wailord.aif b/sound/direct_sound_samples/cries/wailord.aif deleted file mode 100644 index 2c0468010..000000000 Binary files a/sound/direct_sound_samples/cries/wailord.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wailord.wav b/sound/direct_sound_samples/cries/wailord.wav new file mode 100644 index 000000000..163660c6a Binary files /dev/null and b/sound/direct_sound_samples/cries/wailord.wav differ diff --git a/sound/direct_sound_samples/cries/walrein.aif b/sound/direct_sound_samples/cries/walrein.aif deleted file mode 100644 index 24c00a596..000000000 Binary files a/sound/direct_sound_samples/cries/walrein.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/walrein.wav b/sound/direct_sound_samples/cries/walrein.wav new file mode 100644 index 000000000..f79d0ad6c Binary files /dev/null and b/sound/direct_sound_samples/cries/walrein.wav differ diff --git a/sound/direct_sound_samples/cries/wartortle.aif b/sound/direct_sound_samples/cries/wartortle.aif deleted file mode 100644 index 5dab7fd93..000000000 Binary files a/sound/direct_sound_samples/cries/wartortle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wartortle.wav b/sound/direct_sound_samples/cries/wartortle.wav new file mode 100644 index 000000000..040292e12 Binary files /dev/null and b/sound/direct_sound_samples/cries/wartortle.wav differ diff --git a/sound/direct_sound_samples/cries/weedle.aif b/sound/direct_sound_samples/cries/weedle.aif deleted file mode 100644 index 773c2c8ae..000000000 Binary files a/sound/direct_sound_samples/cries/weedle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/weedle.wav b/sound/direct_sound_samples/cries/weedle.wav new file mode 100644 index 000000000..2c891cd30 Binary files /dev/null and b/sound/direct_sound_samples/cries/weedle.wav differ diff --git a/sound/direct_sound_samples/cries/weepinbell.aif b/sound/direct_sound_samples/cries/weepinbell.aif deleted file mode 100644 index cdd61380a..000000000 Binary files a/sound/direct_sound_samples/cries/weepinbell.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/weepinbell.wav b/sound/direct_sound_samples/cries/weepinbell.wav new file mode 100644 index 000000000..206bd24e4 Binary files /dev/null and b/sound/direct_sound_samples/cries/weepinbell.wav differ diff --git a/sound/direct_sound_samples/cries/weezing.aif b/sound/direct_sound_samples/cries/weezing.aif deleted file mode 100644 index 2e4a7fe13..000000000 Binary files a/sound/direct_sound_samples/cries/weezing.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/weezing.wav b/sound/direct_sound_samples/cries/weezing.wav new file mode 100644 index 000000000..ee6058595 Binary files /dev/null and b/sound/direct_sound_samples/cries/weezing.wav differ diff --git a/sound/direct_sound_samples/cries/whiscash.aif b/sound/direct_sound_samples/cries/whiscash.aif deleted file mode 100644 index 219737f32..000000000 Binary files a/sound/direct_sound_samples/cries/whiscash.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/whiscash.wav b/sound/direct_sound_samples/cries/whiscash.wav new file mode 100644 index 000000000..927713b05 Binary files /dev/null and b/sound/direct_sound_samples/cries/whiscash.wav differ diff --git a/sound/direct_sound_samples/cries/whismur.aif b/sound/direct_sound_samples/cries/whismur.aif deleted file mode 100644 index 4da92ca6a..000000000 Binary files a/sound/direct_sound_samples/cries/whismur.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/whismur.wav b/sound/direct_sound_samples/cries/whismur.wav new file mode 100644 index 000000000..3470acc99 Binary files /dev/null and b/sound/direct_sound_samples/cries/whismur.wav differ diff --git a/sound/direct_sound_samples/cries/wigglytuff.aif b/sound/direct_sound_samples/cries/wigglytuff.aif deleted file mode 100644 index 90aa90a23..000000000 Binary files a/sound/direct_sound_samples/cries/wigglytuff.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wigglytuff.wav b/sound/direct_sound_samples/cries/wigglytuff.wav new file mode 100644 index 000000000..7e9e668a4 Binary files /dev/null and b/sound/direct_sound_samples/cries/wigglytuff.wav differ diff --git a/sound/direct_sound_samples/cries/wingull.aif b/sound/direct_sound_samples/cries/wingull.aif deleted file mode 100644 index 182ef18e6..000000000 Binary files a/sound/direct_sound_samples/cries/wingull.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wingull.wav b/sound/direct_sound_samples/cries/wingull.wav new file mode 100644 index 000000000..b78029593 Binary files /dev/null and b/sound/direct_sound_samples/cries/wingull.wav differ diff --git a/sound/direct_sound_samples/cries/wobbuffet.aif b/sound/direct_sound_samples/cries/wobbuffet.aif deleted file mode 100644 index 70ee1f704..000000000 Binary files a/sound/direct_sound_samples/cries/wobbuffet.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wobbuffet.wav b/sound/direct_sound_samples/cries/wobbuffet.wav new file mode 100644 index 000000000..049aa83ba Binary files /dev/null and b/sound/direct_sound_samples/cries/wobbuffet.wav differ diff --git a/sound/direct_sound_samples/cries/wooper.aif b/sound/direct_sound_samples/cries/wooper.aif deleted file mode 100644 index 51a6b627e..000000000 Binary files a/sound/direct_sound_samples/cries/wooper.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wooper.wav b/sound/direct_sound_samples/cries/wooper.wav new file mode 100644 index 000000000..280845b2b Binary files /dev/null and b/sound/direct_sound_samples/cries/wooper.wav differ diff --git a/sound/direct_sound_samples/cries/wurmple.aif b/sound/direct_sound_samples/cries/wurmple.aif deleted file mode 100644 index 6442a4063..000000000 Binary files a/sound/direct_sound_samples/cries/wurmple.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wurmple.wav b/sound/direct_sound_samples/cries/wurmple.wav new file mode 100644 index 000000000..09ac95d59 Binary files /dev/null and b/sound/direct_sound_samples/cries/wurmple.wav differ diff --git a/sound/direct_sound_samples/cries/wynaut.aif b/sound/direct_sound_samples/cries/wynaut.aif deleted file mode 100644 index 798732c74..000000000 Binary files a/sound/direct_sound_samples/cries/wynaut.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/wynaut.wav b/sound/direct_sound_samples/cries/wynaut.wav new file mode 100644 index 000000000..dcdc2b339 Binary files /dev/null and b/sound/direct_sound_samples/cries/wynaut.wav differ diff --git a/sound/direct_sound_samples/cries/xatu.aif b/sound/direct_sound_samples/cries/xatu.aif deleted file mode 100644 index ac758fdbf..000000000 Binary files a/sound/direct_sound_samples/cries/xatu.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/xatu.wav b/sound/direct_sound_samples/cries/xatu.wav new file mode 100644 index 000000000..47c470c4c Binary files /dev/null and b/sound/direct_sound_samples/cries/xatu.wav differ diff --git a/sound/direct_sound_samples/cries/yanma.aif b/sound/direct_sound_samples/cries/yanma.aif deleted file mode 100644 index df76534c5..000000000 Binary files a/sound/direct_sound_samples/cries/yanma.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/yanma.wav b/sound/direct_sound_samples/cries/yanma.wav new file mode 100644 index 000000000..3fea5ab36 Binary files /dev/null and b/sound/direct_sound_samples/cries/yanma.wav differ diff --git a/sound/direct_sound_samples/cries/zangoose.aif b/sound/direct_sound_samples/cries/zangoose.aif deleted file mode 100644 index ce1622043..000000000 Binary files a/sound/direct_sound_samples/cries/zangoose.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/zangoose.wav b/sound/direct_sound_samples/cries/zangoose.wav new file mode 100644 index 000000000..f4b564ba3 Binary files /dev/null and b/sound/direct_sound_samples/cries/zangoose.wav differ diff --git a/sound/direct_sound_samples/cries/zapdos.aif b/sound/direct_sound_samples/cries/zapdos.aif deleted file mode 100644 index a8d914d14..000000000 Binary files a/sound/direct_sound_samples/cries/zapdos.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/zapdos.wav b/sound/direct_sound_samples/cries/zapdos.wav new file mode 100644 index 000000000..f8168a603 Binary files /dev/null and b/sound/direct_sound_samples/cries/zapdos.wav differ diff --git a/sound/direct_sound_samples/cries/zigzagoon.aif b/sound/direct_sound_samples/cries/zigzagoon.aif deleted file mode 100644 index 52b9bb4f4..000000000 Binary files a/sound/direct_sound_samples/cries/zigzagoon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/zigzagoon.wav b/sound/direct_sound_samples/cries/zigzagoon.wav new file mode 100644 index 000000000..fca81cf0f Binary files /dev/null and b/sound/direct_sound_samples/cries/zigzagoon.wav differ diff --git a/sound/direct_sound_samples/cries/zubat.aif b/sound/direct_sound_samples/cries/zubat.aif deleted file mode 100644 index 45036d072..000000000 Binary files a/sound/direct_sound_samples/cries/zubat.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/zubat.wav b/sound/direct_sound_samples/cries/zubat.wav new file mode 100644 index 000000000..58c0c16e5 Binary files /dev/null and b/sound/direct_sound_samples/cries/zubat.wav differ diff --git a/sound/direct_sound_samples/dance_drums_ride_bell.aif b/sound/direct_sound_samples/dance_drums_ride_bell.aif deleted file mode 100644 index 743451262..000000000 Binary files a/sound/direct_sound_samples/dance_drums_ride_bell.aif and /dev/null differ diff --git a/sound/direct_sound_samples/dance_drums_ride_bell.wav b/sound/direct_sound_samples/dance_drums_ride_bell.wav new file mode 100644 index 000000000..7a0e9eb3e Binary files /dev/null and b/sound/direct_sound_samples/dance_drums_ride_bell.wav differ diff --git a/sound/direct_sound_samples/drum_and_percussion_kick.aif b/sound/direct_sound_samples/drum_and_percussion_kick.aif deleted file mode 100644 index b82e9c208..000000000 Binary files a/sound/direct_sound_samples/drum_and_percussion_kick.aif and /dev/null differ diff --git a/sound/direct_sound_samples/drum_and_percussion_kick.wav b/sound/direct_sound_samples/drum_and_percussion_kick.wav new file mode 100644 index 000000000..4b6969b6e Binary files /dev/null and b/sound/direct_sound_samples/drum_and_percussion_kick.wav differ diff --git a/sound/direct_sound_samples/ethnic_flavours_atarigane.aif b/sound/direct_sound_samples/ethnic_flavours_atarigane.aif deleted file mode 100644 index 519c3b8a8..000000000 Binary files a/sound/direct_sound_samples/ethnic_flavours_atarigane.aif and /dev/null differ diff --git a/sound/direct_sound_samples/ethnic_flavours_atarigane.wav b/sound/direct_sound_samples/ethnic_flavours_atarigane.wav new file mode 100644 index 000000000..ebe975fee Binary files /dev/null and b/sound/direct_sound_samples/ethnic_flavours_atarigane.wav differ diff --git a/sound/direct_sound_samples/ethnic_flavours_hyoushigi.aif b/sound/direct_sound_samples/ethnic_flavours_hyoushigi.aif deleted file mode 100644 index dcae315ec..000000000 Binary files a/sound/direct_sound_samples/ethnic_flavours_hyoushigi.aif and /dev/null differ diff --git a/sound/direct_sound_samples/ethnic_flavours_hyoushigi.wav b/sound/direct_sound_samples/ethnic_flavours_hyoushigi.wav new file mode 100644 index 000000000..bb8653d05 Binary files /dev/null and b/sound/direct_sound_samples/ethnic_flavours_hyoushigi.wav differ diff --git a/sound/direct_sound_samples/ethnic_flavours_kotsuzumi.aif b/sound/direct_sound_samples/ethnic_flavours_kotsuzumi.aif deleted file mode 100644 index b161f72ee..000000000 Binary files a/sound/direct_sound_samples/ethnic_flavours_kotsuzumi.aif and /dev/null differ diff --git a/sound/direct_sound_samples/ethnic_flavours_kotsuzumi.wav b/sound/direct_sound_samples/ethnic_flavours_kotsuzumi.wav new file mode 100644 index 000000000..133368a57 Binary files /dev/null and b/sound/direct_sound_samples/ethnic_flavours_kotsuzumi.wav differ diff --git a/sound/direct_sound_samples/ethnic_flavours_ohtsuzumi.aif b/sound/direct_sound_samples/ethnic_flavours_ohtsuzumi.aif deleted file mode 100644 index fa33ba810..000000000 Binary files a/sound/direct_sound_samples/ethnic_flavours_ohtsuzumi.aif and /dev/null differ diff --git a/sound/direct_sound_samples/ethnic_flavours_ohtsuzumi.wav b/sound/direct_sound_samples/ethnic_flavours_ohtsuzumi.wav new file mode 100644 index 000000000..e7f08c810 Binary files /dev/null and b/sound/direct_sound_samples/ethnic_flavours_ohtsuzumi.wav differ diff --git a/sound/direct_sound_samples/register_noise.aif b/sound/direct_sound_samples/register_noise.aif deleted file mode 100644 index e56c5c131..000000000 Binary files a/sound/direct_sound_samples/register_noise.aif and /dev/null differ diff --git a/sound/direct_sound_samples/register_noise.wav b/sound/direct_sound_samples/register_noise.wav new file mode 100644 index 000000000..090b0cd5a Binary files /dev/null and b/sound/direct_sound_samples/register_noise.wav differ diff --git a/sound/direct_sound_samples/sc88pro_accordion.aif b/sound/direct_sound_samples/sc88pro_accordion.aif deleted file mode 100644 index e4c024cf5..000000000 Binary files a/sound/direct_sound_samples/sc88pro_accordion.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_accordion.wav b/sound/direct_sound_samples/sc88pro_accordion.wav new file mode 100644 index 000000000..1b28fa0e6 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_accordion.wav differ diff --git a/sound/direct_sound_samples/sc88pro_accordion_duplicate.aif b/sound/direct_sound_samples/sc88pro_accordion_duplicate.aif deleted file mode 100644 index e4c024cf5..000000000 Binary files a/sound/direct_sound_samples/sc88pro_accordion_duplicate.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_accordion_duplicate.wav b/sound/direct_sound_samples/sc88pro_accordion_duplicate.wav new file mode 100644 index 000000000..1b28fa0e6 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_accordion_duplicate.wav differ diff --git a/sound/direct_sound_samples/sc88pro_bubbles.aif b/sound/direct_sound_samples/sc88pro_bubbles.aif deleted file mode 100644 index 89872bf55..000000000 Binary files a/sound/direct_sound_samples/sc88pro_bubbles.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_bubbles.wav b/sound/direct_sound_samples/sc88pro_bubbles.wav new file mode 100644 index 000000000..17d3eaa64 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_bubbles.wav differ diff --git a/sound/direct_sound_samples/sc88pro_fingered_bass.aif b/sound/direct_sound_samples/sc88pro_fingered_bass.aif deleted file mode 100644 index ee52f958a..000000000 Binary files a/sound/direct_sound_samples/sc88pro_fingered_bass.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_fingered_bass.wav b/sound/direct_sound_samples/sc88pro_fingered_bass.wav new file mode 100644 index 000000000..dff67c22c Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_fingered_bass.wav differ diff --git a/sound/direct_sound_samples/sc88pro_flute.aif b/sound/direct_sound_samples/sc88pro_flute.aif deleted file mode 100644 index f32c5a71e..000000000 Binary files a/sound/direct_sound_samples/sc88pro_flute.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_flute.wav b/sound/direct_sound_samples/sc88pro_flute.wav new file mode 100644 index 000000000..6ec093c81 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_flute.wav differ diff --git a/sound/direct_sound_samples/sc88pro_french_horn_60.aif b/sound/direct_sound_samples/sc88pro_french_horn_60.aif deleted file mode 100644 index 742c4385e..000000000 Binary files a/sound/direct_sound_samples/sc88pro_french_horn_60.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_french_horn_60.wav b/sound/direct_sound_samples/sc88pro_french_horn_60.wav new file mode 100644 index 000000000..da82c73b6 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_french_horn_60.wav differ diff --git a/sound/direct_sound_samples/sc88pro_french_horn_72.aif b/sound/direct_sound_samples/sc88pro_french_horn_72.aif deleted file mode 100644 index b7f98929f..000000000 Binary files a/sound/direct_sound_samples/sc88pro_french_horn_72.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_french_horn_72.wav b/sound/direct_sound_samples/sc88pro_french_horn_72.wav new file mode 100644 index 000000000..3221dc49b Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_french_horn_72.wav differ diff --git a/sound/direct_sound_samples/sc88pro_fretless_bass.aif b/sound/direct_sound_samples/sc88pro_fretless_bass.aif deleted file mode 100644 index 737a7200f..000000000 Binary files a/sound/direct_sound_samples/sc88pro_fretless_bass.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_fretless_bass.wav b/sound/direct_sound_samples/sc88pro_fretless_bass.wav new file mode 100644 index 000000000..e7c59f564 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_fretless_bass.wav differ diff --git a/sound/direct_sound_samples/sc88pro_glockenspiel.aif b/sound/direct_sound_samples/sc88pro_glockenspiel.aif deleted file mode 100644 index 22b8f1691..000000000 Binary files a/sound/direct_sound_samples/sc88pro_glockenspiel.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_glockenspiel.wav b/sound/direct_sound_samples/sc88pro_glockenspiel.wav new file mode 100644 index 000000000..d24e64efe Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_glockenspiel.wav differ diff --git a/sound/direct_sound_samples/sc88pro_harp.aif b/sound/direct_sound_samples/sc88pro_harp.aif deleted file mode 100644 index 083c45e3d..000000000 Binary files a/sound/direct_sound_samples/sc88pro_harp.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_harp.wav b/sound/direct_sound_samples/sc88pro_harp.wav new file mode 100644 index 000000000..3a137c593 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_harp.wav differ diff --git a/sound/direct_sound_samples/sc88pro_jingle_bell.aif b/sound/direct_sound_samples/sc88pro_jingle_bell.aif deleted file mode 100644 index 6d8330b86..000000000 Binary files a/sound/direct_sound_samples/sc88pro_jingle_bell.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_jingle_bell.wav b/sound/direct_sound_samples/sc88pro_jingle_bell.wav new file mode 100644 index 000000000..834232242 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_jingle_bell.wav differ diff --git a/sound/direct_sound_samples/sc88pro_mute_high_conga.aif b/sound/direct_sound_samples/sc88pro_mute_high_conga.aif deleted file mode 100644 index 2e1bf9c64..000000000 Binary files a/sound/direct_sound_samples/sc88pro_mute_high_conga.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_mute_high_conga.wav b/sound/direct_sound_samples/sc88pro_mute_high_conga.wav new file mode 100644 index 000000000..afa56506a Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_mute_high_conga.wav differ diff --git a/sound/direct_sound_samples/sc88pro_nylon_str_guitar.aif b/sound/direct_sound_samples/sc88pro_nylon_str_guitar.aif deleted file mode 100644 index c1a575c12..000000000 Binary files a/sound/direct_sound_samples/sc88pro_nylon_str_guitar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_nylon_str_guitar.wav b/sound/direct_sound_samples/sc88pro_nylon_str_guitar.wav new file mode 100644 index 000000000..e40e64180 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_nylon_str_guitar.wav differ diff --git a/sound/direct_sound_samples/sc88pro_open_low_conga.aif b/sound/direct_sound_samples/sc88pro_open_low_conga.aif deleted file mode 100644 index 8e1cb620a..000000000 Binary files a/sound/direct_sound_samples/sc88pro_open_low_conga.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_open_low_conga.wav b/sound/direct_sound_samples/sc88pro_open_low_conga.wav new file mode 100644 index 000000000..030797c0d Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_open_low_conga.wav differ diff --git a/sound/direct_sound_samples/sc88pro_orchestra_cymbal_crash.aif b/sound/direct_sound_samples/sc88pro_orchestra_cymbal_crash.aif deleted file mode 100644 index 56286e494..000000000 Binary files a/sound/direct_sound_samples/sc88pro_orchestra_cymbal_crash.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_orchestra_cymbal_crash.wav b/sound/direct_sound_samples/sc88pro_orchestra_cymbal_crash.wav new file mode 100644 index 000000000..58d90c404 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_orchestra_cymbal_crash.wav differ diff --git a/sound/direct_sound_samples/sc88pro_orchestra_snare.aif b/sound/direct_sound_samples/sc88pro_orchestra_snare.aif deleted file mode 100644 index 3b30d894c..000000000 Binary files a/sound/direct_sound_samples/sc88pro_orchestra_snare.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_orchestra_snare.wav b/sound/direct_sound_samples/sc88pro_orchestra_snare.wav new file mode 100644 index 000000000..43bb9ed9b Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_orchestra_snare.wav differ diff --git a/sound/direct_sound_samples/sc88pro_organ2.aif b/sound/direct_sound_samples/sc88pro_organ2.aif deleted file mode 100644 index 6372bbc32..000000000 Binary files a/sound/direct_sound_samples/sc88pro_organ2.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_organ2.wav b/sound/direct_sound_samples/sc88pro_organ2.wav new file mode 100644 index 000000000..437ee2d03 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_organ2.wav differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_48.aif b/sound/direct_sound_samples/sc88pro_piano1_48.aif deleted file mode 100644 index dd30ae441..000000000 Binary files a/sound/direct_sound_samples/sc88pro_piano1_48.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_48.wav b/sound/direct_sound_samples/sc88pro_piano1_48.wav new file mode 100644 index 000000000..72e1cb4aa Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_piano1_48.wav differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_60.aif b/sound/direct_sound_samples/sc88pro_piano1_60.aif deleted file mode 100644 index df4773522..000000000 Binary files a/sound/direct_sound_samples/sc88pro_piano1_60.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_60.wav b/sound/direct_sound_samples/sc88pro_piano1_60.wav new file mode 100644 index 000000000..29cb5a880 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_piano1_60.wav differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_72.aif b/sound/direct_sound_samples/sc88pro_piano1_72.aif deleted file mode 100644 index 81ebda139..000000000 Binary files a/sound/direct_sound_samples/sc88pro_piano1_72.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_72.wav b/sound/direct_sound_samples/sc88pro_piano1_72.wav new file mode 100644 index 000000000..396f09452 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_piano1_72.wav differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_84.aif b/sound/direct_sound_samples/sc88pro_piano1_84.aif deleted file mode 100644 index 8ec870f7b..000000000 Binary files a/sound/direct_sound_samples/sc88pro_piano1_84.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_piano1_84.wav b/sound/direct_sound_samples/sc88pro_piano1_84.wav new file mode 100644 index 000000000..1956f95da Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_piano1_84.wav differ diff --git a/sound/direct_sound_samples/sc88pro_pizzicato_strings.aif b/sound/direct_sound_samples/sc88pro_pizzicato_strings.aif deleted file mode 100644 index c30d477ee..000000000 Binary files a/sound/direct_sound_samples/sc88pro_pizzicato_strings.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_pizzicato_strings.wav b/sound/direct_sound_samples/sc88pro_pizzicato_strings.wav new file mode 100644 index 000000000..d89ea7c8d Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_pizzicato_strings.wav differ diff --git a/sound/direct_sound_samples/sc88pro_rnd_kick.aif b/sound/direct_sound_samples/sc88pro_rnd_kick.aif deleted file mode 100644 index d3caec2bf..000000000 Binary files a/sound/direct_sound_samples/sc88pro_rnd_kick.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_rnd_kick.wav b/sound/direct_sound_samples/sc88pro_rnd_kick.wav new file mode 100644 index 000000000..02c440ce4 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_rnd_kick.wav differ diff --git a/sound/direct_sound_samples/sc88pro_rnd_snare.aif b/sound/direct_sound_samples/sc88pro_rnd_snare.aif deleted file mode 100644 index 115ebd3f8..000000000 Binary files a/sound/direct_sound_samples/sc88pro_rnd_snare.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_rnd_snare.wav b/sound/direct_sound_samples/sc88pro_rnd_snare.wav new file mode 100644 index 000000000..69c9a6010 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_rnd_snare.wav differ diff --git a/sound/direct_sound_samples/sc88pro_slap_bass.aif b/sound/direct_sound_samples/sc88pro_slap_bass.aif deleted file mode 100644 index b709d3aee..000000000 Binary files a/sound/direct_sound_samples/sc88pro_slap_bass.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_slap_bass.wav b/sound/direct_sound_samples/sc88pro_slap_bass.wav new file mode 100644 index 000000000..488369516 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_slap_bass.wav differ diff --git a/sound/direct_sound_samples/sc88pro_square_wave.aif b/sound/direct_sound_samples/sc88pro_square_wave.aif deleted file mode 100644 index 09e17f0ca..000000000 Binary files a/sound/direct_sound_samples/sc88pro_square_wave.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_square_wave.wav b/sound/direct_sound_samples/sc88pro_square_wave.wav new file mode 100644 index 000000000..5689c13f4 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_square_wave.wav differ diff --git a/sound/direct_sound_samples/sc88pro_string_ensemble_60.aif b/sound/direct_sound_samples/sc88pro_string_ensemble_60.aif deleted file mode 100644 index bfaa5c196..000000000 Binary files a/sound/direct_sound_samples/sc88pro_string_ensemble_60.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_string_ensemble_60.wav b/sound/direct_sound_samples/sc88pro_string_ensemble_60.wav new file mode 100644 index 000000000..1e43b2e5e Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_string_ensemble_60.wav differ diff --git a/sound/direct_sound_samples/sc88pro_string_ensemble_72.aif b/sound/direct_sound_samples/sc88pro_string_ensemble_72.aif deleted file mode 100644 index 17b03d91a..000000000 Binary files a/sound/direct_sound_samples/sc88pro_string_ensemble_72.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_string_ensemble_72.wav b/sound/direct_sound_samples/sc88pro_string_ensemble_72.wav new file mode 100644 index 000000000..5a3560bd3 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_string_ensemble_72.wav differ diff --git a/sound/direct_sound_samples/sc88pro_string_ensemble_84.aif b/sound/direct_sound_samples/sc88pro_string_ensemble_84.aif deleted file mode 100644 index ab3d5da53..000000000 Binary files a/sound/direct_sound_samples/sc88pro_string_ensemble_84.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_string_ensemble_84.wav b/sound/direct_sound_samples/sc88pro_string_ensemble_84.wav new file mode 100644 index 000000000..c07c8c431 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_string_ensemble_84.wav differ diff --git a/sound/direct_sound_samples/sc88pro_synth_bass.aif b/sound/direct_sound_samples/sc88pro_synth_bass.aif deleted file mode 100644 index 81b82c41c..000000000 Binary files a/sound/direct_sound_samples/sc88pro_synth_bass.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_synth_bass.wav b/sound/direct_sound_samples/sc88pro_synth_bass.wav new file mode 100644 index 000000000..98f6a4ef2 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_synth_bass.wav differ diff --git a/sound/direct_sound_samples/sc88pro_taiko.aif b/sound/direct_sound_samples/sc88pro_taiko.aif deleted file mode 100644 index 2cb47ad90..000000000 Binary files a/sound/direct_sound_samples/sc88pro_taiko.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_taiko.wav b/sound/direct_sound_samples/sc88pro_taiko.wav new file mode 100644 index 000000000..433ab727e Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_taiko.wav differ diff --git a/sound/direct_sound_samples/sc88pro_tambourine.aif b/sound/direct_sound_samples/sc88pro_tambourine.aif deleted file mode 100644 index 39ec57d29..000000000 Binary files a/sound/direct_sound_samples/sc88pro_tambourine.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_tambourine.wav b/sound/direct_sound_samples/sc88pro_tambourine.wav new file mode 100644 index 000000000..929ed5dac Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_tambourine.wav differ diff --git a/sound/direct_sound_samples/sc88pro_timpani.aif b/sound/direct_sound_samples/sc88pro_timpani.aif deleted file mode 100644 index 84829d634..000000000 Binary files a/sound/direct_sound_samples/sc88pro_timpani.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_timpani.wav b/sound/direct_sound_samples/sc88pro_timpani.wav new file mode 100644 index 000000000..03fb3ee71 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_timpani.wav differ diff --git a/sound/direct_sound_samples/sc88pro_timpani_with_snare.aif b/sound/direct_sound_samples/sc88pro_timpani_with_snare.aif deleted file mode 100644 index 6147cf25c..000000000 Binary files a/sound/direct_sound_samples/sc88pro_timpani_with_snare.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_timpani_with_snare.wav b/sound/direct_sound_samples/sc88pro_timpani_with_snare.wav new file mode 100644 index 000000000..1c1560ed2 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_timpani_with_snare.wav differ diff --git a/sound/direct_sound_samples/sc88pro_tr909_hand_clap.aif b/sound/direct_sound_samples/sc88pro_tr909_hand_clap.aif deleted file mode 100644 index b11787ffc..000000000 Binary files a/sound/direct_sound_samples/sc88pro_tr909_hand_clap.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_tr909_hand_clap.wav b/sound/direct_sound_samples/sc88pro_tr909_hand_clap.wav new file mode 100644 index 000000000..9dba2ac9d Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_tr909_hand_clap.wav differ diff --git a/sound/direct_sound_samples/sc88pro_trumpet_60.aif b/sound/direct_sound_samples/sc88pro_trumpet_60.aif deleted file mode 100644 index fe5ac0067..000000000 Binary files a/sound/direct_sound_samples/sc88pro_trumpet_60.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_trumpet_60.wav b/sound/direct_sound_samples/sc88pro_trumpet_60.wav new file mode 100644 index 000000000..0675873a1 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_trumpet_60.wav differ diff --git a/sound/direct_sound_samples/sc88pro_trumpet_72.aif b/sound/direct_sound_samples/sc88pro_trumpet_72.aif deleted file mode 100644 index fb862d2fc..000000000 Binary files a/sound/direct_sound_samples/sc88pro_trumpet_72.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_trumpet_72.wav b/sound/direct_sound_samples/sc88pro_trumpet_72.wav new file mode 100644 index 000000000..27f75206e Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_trumpet_72.wav differ diff --git a/sound/direct_sound_samples/sc88pro_trumpet_84.aif b/sound/direct_sound_samples/sc88pro_trumpet_84.aif deleted file mode 100644 index f39c9fd79..000000000 Binary files a/sound/direct_sound_samples/sc88pro_trumpet_84.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_trumpet_84.wav b/sound/direct_sound_samples/sc88pro_trumpet_84.wav new file mode 100644 index 000000000..f1713f901 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_trumpet_84.wav differ diff --git a/sound/direct_sound_samples/sc88pro_tuba_39.aif b/sound/direct_sound_samples/sc88pro_tuba_39.aif deleted file mode 100644 index f8862cebf..000000000 Binary files a/sound/direct_sound_samples/sc88pro_tuba_39.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_tuba_39.wav b/sound/direct_sound_samples/sc88pro_tuba_39.wav new file mode 100644 index 000000000..619ebf6e3 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_tuba_39.wav differ diff --git a/sound/direct_sound_samples/sc88pro_tuba_51.aif b/sound/direct_sound_samples/sc88pro_tuba_51.aif deleted file mode 100644 index 6adda7673..000000000 Binary files a/sound/direct_sound_samples/sc88pro_tuba_51.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_tuba_51.wav b/sound/direct_sound_samples/sc88pro_tuba_51.wav new file mode 100644 index 000000000..4bb436de7 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_tuba_51.wav differ diff --git a/sound/direct_sound_samples/sc88pro_tubular_bell.aif b/sound/direct_sound_samples/sc88pro_tubular_bell.aif deleted file mode 100644 index 9d00ecae6..000000000 Binary files a/sound/direct_sound_samples/sc88pro_tubular_bell.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_tubular_bell.wav b/sound/direct_sound_samples/sc88pro_tubular_bell.wav new file mode 100644 index 000000000..eed5b32b2 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_tubular_bell.wav differ diff --git a/sound/direct_sound_samples/sc88pro_wind.aif b/sound/direct_sound_samples/sc88pro_wind.aif deleted file mode 100644 index 6b247df07..000000000 Binary files a/sound/direct_sound_samples/sc88pro_wind.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_wind.wav b/sound/direct_sound_samples/sc88pro_wind.wav new file mode 100644 index 000000000..1b3c78c42 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_wind.wav differ diff --git a/sound/direct_sound_samples/sc88pro_xylophone.aif b/sound/direct_sound_samples/sc88pro_xylophone.aif deleted file mode 100644 index d9e2f840a..000000000 Binary files a/sound/direct_sound_samples/sc88pro_xylophone.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sc88pro_xylophone.wav b/sound/direct_sound_samples/sc88pro_xylophone.wav new file mode 100644 index 000000000..59aec0711 Binary files /dev/null and b/sound/direct_sound_samples/sc88pro_xylophone.wav differ diff --git a/sound/direct_sound_samples/sd90_ambient_tom.aif b/sound/direct_sound_samples/sd90_ambient_tom.aif deleted file mode 100644 index d6357accb..000000000 Binary files a/sound/direct_sound_samples/sd90_ambient_tom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_ambient_tom.wav b/sound/direct_sound_samples/sd90_ambient_tom.wav new file mode 100644 index 000000000..f524a7c88 Binary files /dev/null and b/sound/direct_sound_samples/sd90_ambient_tom.wav differ diff --git a/sound/direct_sound_samples/sd90_classical_detuned_ep1_high.aif b/sound/direct_sound_samples/sd90_classical_detuned_ep1_high.aif deleted file mode 100644 index 86ea0fa76..000000000 Binary files a/sound/direct_sound_samples/sd90_classical_detuned_ep1_high.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_classical_detuned_ep1_high.wav b/sound/direct_sound_samples/sd90_classical_detuned_ep1_high.wav new file mode 100644 index 000000000..2940e14a5 Binary files /dev/null and b/sound/direct_sound_samples/sd90_classical_detuned_ep1_high.wav differ diff --git a/sound/direct_sound_samples/sd90_classical_detuned_ep1_low.aif b/sound/direct_sound_samples/sd90_classical_detuned_ep1_low.aif deleted file mode 100644 index 90359b459..000000000 Binary files a/sound/direct_sound_samples/sd90_classical_detuned_ep1_low.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_classical_detuned_ep1_low.wav b/sound/direct_sound_samples/sd90_classical_detuned_ep1_low.wav new file mode 100644 index 000000000..f1f8dac79 Binary files /dev/null and b/sound/direct_sound_samples/sd90_classical_detuned_ep1_low.wav differ diff --git a/sound/direct_sound_samples/sd90_classical_distortion_guitar_high.aif b/sound/direct_sound_samples/sd90_classical_distortion_guitar_high.aif deleted file mode 100644 index b0f0e82a1..000000000 Binary files a/sound/direct_sound_samples/sd90_classical_distortion_guitar_high.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_classical_distortion_guitar_high.wav b/sound/direct_sound_samples/sd90_classical_distortion_guitar_high.wav new file mode 100644 index 000000000..23ab4ff45 Binary files /dev/null and b/sound/direct_sound_samples/sd90_classical_distortion_guitar_high.wav differ diff --git a/sound/direct_sound_samples/sd90_classical_distortion_guitar_low.aif b/sound/direct_sound_samples/sd90_classical_distortion_guitar_low.aif deleted file mode 100644 index aa97fe3ef..000000000 Binary files a/sound/direct_sound_samples/sd90_classical_distortion_guitar_low.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_classical_distortion_guitar_low.wav b/sound/direct_sound_samples/sd90_classical_distortion_guitar_low.wav new file mode 100644 index 000000000..475a15e82 Binary files /dev/null and b/sound/direct_sound_samples/sd90_classical_distortion_guitar_low.wav differ diff --git a/sound/direct_sound_samples/sd90_classical_oboe.aif b/sound/direct_sound_samples/sd90_classical_oboe.aif deleted file mode 100644 index 83cb8c7d0..000000000 Binary files a/sound/direct_sound_samples/sd90_classical_oboe.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_classical_oboe.wav b/sound/direct_sound_samples/sd90_classical_oboe.wav new file mode 100644 index 000000000..5bfa90042 Binary files /dev/null and b/sound/direct_sound_samples/sd90_classical_oboe.wav differ diff --git a/sound/direct_sound_samples/sd90_classical_overdrive_guitar.aif b/sound/direct_sound_samples/sd90_classical_overdrive_guitar.aif deleted file mode 100644 index 6bdc1beab..000000000 Binary files a/sound/direct_sound_samples/sd90_classical_overdrive_guitar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_classical_overdrive_guitar.wav b/sound/direct_sound_samples/sd90_classical_overdrive_guitar.wav new file mode 100644 index 000000000..231c98708 Binary files /dev/null and b/sound/direct_sound_samples/sd90_classical_overdrive_guitar.wav differ diff --git a/sound/direct_sound_samples/sd90_classical_whistle.aif b/sound/direct_sound_samples/sd90_classical_whistle.aif deleted file mode 100644 index 357e348a7..000000000 Binary files a/sound/direct_sound_samples/sd90_classical_whistle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_classical_whistle.wav b/sound/direct_sound_samples/sd90_classical_whistle.wav new file mode 100644 index 000000000..fd8b1395a Binary files /dev/null and b/sound/direct_sound_samples/sd90_classical_whistle.wav differ diff --git a/sound/direct_sound_samples/sd90_cowbell.aif b/sound/direct_sound_samples/sd90_cowbell.aif deleted file mode 100644 index 5f3819310..000000000 Binary files a/sound/direct_sound_samples/sd90_cowbell.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_cowbell.wav b/sound/direct_sound_samples/sd90_cowbell.wav new file mode 100644 index 000000000..7e5bd3354 Binary files /dev/null and b/sound/direct_sound_samples/sd90_cowbell.wav differ diff --git a/sound/direct_sound_samples/sd90_enhanced_delay_shaku.aif b/sound/direct_sound_samples/sd90_enhanced_delay_shaku.aif deleted file mode 100644 index 2ae1b3021..000000000 Binary files a/sound/direct_sound_samples/sd90_enhanced_delay_shaku.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_enhanced_delay_shaku.wav b/sound/direct_sound_samples/sd90_enhanced_delay_shaku.wav new file mode 100644 index 000000000..92c04b161 Binary files /dev/null and b/sound/direct_sound_samples/sd90_enhanced_delay_shaku.wav differ diff --git a/sound/direct_sound_samples/sd90_open_triangle.aif b/sound/direct_sound_samples/sd90_open_triangle.aif deleted file mode 100644 index fb1ce68f0..000000000 Binary files a/sound/direct_sound_samples/sd90_open_triangle.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_open_triangle.wav b/sound/direct_sound_samples/sd90_open_triangle.wav new file mode 100644 index 000000000..415054e23 Binary files /dev/null and b/sound/direct_sound_samples/sd90_open_triangle.wav differ diff --git a/sound/direct_sound_samples/sd90_solo_snare.aif b/sound/direct_sound_samples/sd90_solo_snare.aif deleted file mode 100644 index 3343a53a3..000000000 Binary files a/sound/direct_sound_samples/sd90_solo_snare.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_solo_snare.wav b/sound/direct_sound_samples/sd90_solo_snare.wav new file mode 100644 index 000000000..7ff2c98e4 Binary files /dev/null and b/sound/direct_sound_samples/sd90_solo_snare.wav differ diff --git a/sound/direct_sound_samples/sd90_special_scream_drive.aif b/sound/direct_sound_samples/sd90_special_scream_drive.aif deleted file mode 100644 index 8b7a7da40..000000000 Binary files a/sound/direct_sound_samples/sd90_special_scream_drive.aif and /dev/null differ diff --git a/sound/direct_sound_samples/sd90_special_scream_drive.wav b/sound/direct_sound_samples/sd90_special_scream_drive.wav new file mode 100644 index 000000000..3f9740626 Binary files /dev/null and b/sound/direct_sound_samples/sd90_special_scream_drive.wav differ diff --git a/sound/direct_sound_samples/steinway_b_piano.aif b/sound/direct_sound_samples/steinway_b_piano.aif deleted file mode 100644 index 3124e31a0..000000000 Binary files a/sound/direct_sound_samples/steinway_b_piano.aif and /dev/null differ diff --git a/sound/direct_sound_samples/steinway_b_piano.wav b/sound/direct_sound_samples/steinway_b_piano.wav new file mode 100644 index 000000000..ef5a4849c Binary files /dev/null and b/sound/direct_sound_samples/steinway_b_piano.wav differ diff --git a/sound/direct_sound_samples/trinity_30303_mega_bass.aif b/sound/direct_sound_samples/trinity_30303_mega_bass.aif deleted file mode 100644 index c2c7e46ec..000000000 Binary files a/sound/direct_sound_samples/trinity_30303_mega_bass.aif and /dev/null differ diff --git a/sound/direct_sound_samples/trinity_30303_mega_bass.wav b/sound/direct_sound_samples/trinity_30303_mega_bass.wav new file mode 100644 index 000000000..6a6e249a4 Binary files /dev/null and b/sound/direct_sound_samples/trinity_30303_mega_bass.wav differ diff --git a/sound/direct_sound_samples/trinity_big_boned.aif b/sound/direct_sound_samples/trinity_big_boned.aif deleted file mode 100644 index 75d17efdf..000000000 Binary files a/sound/direct_sound_samples/trinity_big_boned.aif and /dev/null differ diff --git a/sound/direct_sound_samples/trinity_big_boned.wav b/sound/direct_sound_samples/trinity_big_boned.wav new file mode 100644 index 000000000..5967713d6 Binary files /dev/null and b/sound/direct_sound_samples/trinity_big_boned.wav differ diff --git a/sound/direct_sound_samples/trinity_cymbal_crash.aif b/sound/direct_sound_samples/trinity_cymbal_crash.aif deleted file mode 100644 index 55b9f73ba..000000000 Binary files a/sound/direct_sound_samples/trinity_cymbal_crash.aif and /dev/null differ diff --git a/sound/direct_sound_samples/trinity_cymbal_crash.wav b/sound/direct_sound_samples/trinity_cymbal_crash.wav new file mode 100644 index 000000000..36337b641 Binary files /dev/null and b/sound/direct_sound_samples/trinity_cymbal_crash.wav differ diff --git a/sound/direct_sound_samples/unknown_close_hihat.aif b/sound/direct_sound_samples/unknown_close_hihat.aif deleted file mode 100644 index 7ed48cd30..000000000 Binary files a/sound/direct_sound_samples/unknown_close_hihat.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unknown_close_hihat.wav b/sound/direct_sound_samples/unknown_close_hihat.wav new file mode 100644 index 000000000..1c0ddae80 Binary files /dev/null and b/sound/direct_sound_samples/unknown_close_hihat.wav differ diff --git a/sound/direct_sound_samples/unknown_snare.aif b/sound/direct_sound_samples/unknown_snare.aif deleted file mode 100644 index d8a81b503..000000000 Binary files a/sound/direct_sound_samples/unknown_snare.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unknown_snare.wav b/sound/direct_sound_samples/unknown_snare.wav new file mode 100644 index 000000000..f9047e0d9 Binary files /dev/null and b/sound/direct_sound_samples/unknown_snare.wav differ diff --git a/sound/direct_sound_samples/unknown_synth_snare.aif b/sound/direct_sound_samples/unknown_synth_snare.aif deleted file mode 100644 index eec199f07..000000000 Binary files a/sound/direct_sound_samples/unknown_synth_snare.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unknown_synth_snare.wav b/sound/direct_sound_samples/unknown_synth_snare.wav new file mode 100644 index 000000000..1ec62fb57 Binary files /dev/null and b/sound/direct_sound_samples/unknown_synth_snare.wav differ diff --git a/sound/direct_sound_samples/unused_guitar_separates_power_chord.aif b/sound/direct_sound_samples/unused_guitar_separates_power_chord.aif deleted file mode 100644 index 83f997481..000000000 Binary files a/sound/direct_sound_samples/unused_guitar_separates_power_chord.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unused_guitar_separates_power_chord.wav b/sound/direct_sound_samples/unused_guitar_separates_power_chord.wav new file mode 100644 index 000000000..4dae4f0f7 Binary files /dev/null and b/sound/direct_sound_samples/unused_guitar_separates_power_chord.wav differ diff --git a/sound/direct_sound_samples/unused_heart_of_asia_indian_drum.aif b/sound/direct_sound_samples/unused_heart_of_asia_indian_drum.aif deleted file mode 100644 index 2e67f1d73..000000000 Binary files a/sound/direct_sound_samples/unused_heart_of_asia_indian_drum.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unused_heart_of_asia_indian_drum.wav b/sound/direct_sound_samples/unused_heart_of_asia_indian_drum.wav new file mode 100644 index 000000000..7ee8c27f6 Binary files /dev/null and b/sound/direct_sound_samples/unused_heart_of_asia_indian_drum.wav differ diff --git a/sound/direct_sound_samples/unused_sc55_tom.aif b/sound/direct_sound_samples/unused_sc55_tom.aif deleted file mode 100644 index 7d84c7b31..000000000 Binary files a/sound/direct_sound_samples/unused_sc55_tom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unused_sc55_tom.wav b/sound/direct_sound_samples/unused_sc55_tom.wav new file mode 100644 index 000000000..944e1031f Binary files /dev/null and b/sound/direct_sound_samples/unused_sc55_tom.wav differ diff --git a/sound/direct_sound_samples/unused_sc88pro_unison_slap.aif b/sound/direct_sound_samples/unused_sc88pro_unison_slap.aif deleted file mode 100644 index c0ce144f6..000000000 Binary files a/sound/direct_sound_samples/unused_sc88pro_unison_slap.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unused_sc88pro_unison_slap.wav b/sound/direct_sound_samples/unused_sc88pro_unison_slap.wav new file mode 100644 index 000000000..e9f48d6ff Binary files /dev/null and b/sound/direct_sound_samples/unused_sc88pro_unison_slap.wav differ diff --git a/sound/direct_sound_samples/unused_sd90_oboe.aif b/sound/direct_sound_samples/unused_sd90_oboe.aif deleted file mode 100644 index 2a0ea2a26..000000000 Binary files a/sound/direct_sound_samples/unused_sd90_oboe.aif and /dev/null differ diff --git a/sound/direct_sound_samples/unused_sd90_oboe.wav b/sound/direct_sound_samples/unused_sd90_oboe.wav new file mode 100644 index 000000000..6ffcb4e00 Binary files /dev/null and b/sound/direct_sound_samples/unused_sd90_oboe.wav differ diff --git a/sound/direct_sound_samples/wave_54.aif b/sound/direct_sound_samples/wave_54.aif deleted file mode 100644 index ee6ff45b7..000000000 Binary files a/sound/direct_sound_samples/wave_54.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_54.wav b/sound/direct_sound_samples/wave_54.wav new file mode 100644 index 000000000..4e069d0bf Binary files /dev/null and b/sound/direct_sound_samples/wave_54.wav differ diff --git a/sound/direct_sound_samples/wave_56.aif b/sound/direct_sound_samples/wave_56.aif deleted file mode 100644 index 2e09d0822..000000000 Binary files a/sound/direct_sound_samples/wave_56.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_56.wav b/sound/direct_sound_samples/wave_56.wav new file mode 100644 index 000000000..7c87e021b Binary files /dev/null and b/sound/direct_sound_samples/wave_56.wav differ diff --git a/sound/direct_sound_samples/wave_57.aif b/sound/direct_sound_samples/wave_57.aif deleted file mode 100644 index 7c883ceb8..000000000 Binary files a/sound/direct_sound_samples/wave_57.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_57.wav b/sound/direct_sound_samples/wave_57.wav new file mode 100644 index 000000000..922f43db1 Binary files /dev/null and b/sound/direct_sound_samples/wave_57.wav differ diff --git a/sound/direct_sound_samples/wave_58.aif b/sound/direct_sound_samples/wave_58.aif deleted file mode 100644 index 582755ef0..000000000 Binary files a/sound/direct_sound_samples/wave_58.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_58.wav b/sound/direct_sound_samples/wave_58.wav new file mode 100644 index 000000000..d2d216aa9 Binary files /dev/null and b/sound/direct_sound_samples/wave_58.wav differ diff --git a/sound/direct_sound_samples/wave_61.aif b/sound/direct_sound_samples/wave_61.aif deleted file mode 100644 index 22e5ce5e5..000000000 Binary files a/sound/direct_sound_samples/wave_61.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_61.wav b/sound/direct_sound_samples/wave_61.wav new file mode 100644 index 000000000..c344cc5c6 Binary files /dev/null and b/sound/direct_sound_samples/wave_61.wav differ diff --git a/sound/direct_sound_samples/wave_62.aif b/sound/direct_sound_samples/wave_62.aif deleted file mode 100644 index b481b1ee7..000000000 Binary files a/sound/direct_sound_samples/wave_62.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_62.wav b/sound/direct_sound_samples/wave_62.wav new file mode 100644 index 000000000..01ac24db5 Binary files /dev/null and b/sound/direct_sound_samples/wave_62.wav differ diff --git a/sound/direct_sound_samples/wave_64.aif b/sound/direct_sound_samples/wave_64.aif deleted file mode 100644 index 556be0238..000000000 Binary files a/sound/direct_sound_samples/wave_64.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_64.wav b/sound/direct_sound_samples/wave_64.wav new file mode 100644 index 000000000..437393e8b Binary files /dev/null and b/sound/direct_sound_samples/wave_64.wav differ diff --git a/sound/direct_sound_samples/wave_65.aif b/sound/direct_sound_samples/wave_65.aif deleted file mode 100644 index f85ca6420..000000000 Binary files a/sound/direct_sound_samples/wave_65.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_65.wav b/sound/direct_sound_samples/wave_65.wav new file mode 100644 index 000000000..70fbefc21 Binary files /dev/null and b/sound/direct_sound_samples/wave_65.wav differ diff --git a/sound/direct_sound_samples/wave_68.aif b/sound/direct_sound_samples/wave_68.aif deleted file mode 100644 index 59624fc7d..000000000 Binary files a/sound/direct_sound_samples/wave_68.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_68.wav b/sound/direct_sound_samples/wave_68.wav new file mode 100644 index 000000000..1ed463a66 Binary files /dev/null and b/sound/direct_sound_samples/wave_68.wav differ diff --git a/sound/direct_sound_samples/wave_72.aif b/sound/direct_sound_samples/wave_72.aif deleted file mode 100644 index e0599eb36..000000000 Binary files a/sound/direct_sound_samples/wave_72.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_72.wav b/sound/direct_sound_samples/wave_72.wav new file mode 100644 index 000000000..5732a06ed Binary files /dev/null and b/sound/direct_sound_samples/wave_72.wav differ diff --git a/sound/direct_sound_samples/wave_73.aif b/sound/direct_sound_samples/wave_73.aif deleted file mode 100644 index a0fb49f89..000000000 Binary files a/sound/direct_sound_samples/wave_73.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_73.wav b/sound/direct_sound_samples/wave_73.wav new file mode 100644 index 000000000..e911c04a9 Binary files /dev/null and b/sound/direct_sound_samples/wave_73.wav differ diff --git a/sound/direct_sound_samples/wave_77.aif b/sound/direct_sound_samples/wave_77.aif deleted file mode 100644 index f87b207bc..000000000 Binary files a/sound/direct_sound_samples/wave_77.aif and /dev/null differ diff --git a/sound/direct_sound_samples/wave_77.wav b/sound/direct_sound_samples/wave_77.wav new file mode 100644 index 000000000..5533e4989 Binary files /dev/null and b/sound/direct_sound_samples/wave_77.wav differ diff --git a/sound/songs/midi/midi.cfg b/sound/songs/midi/midi.cfg index 5c419ac3f..71a968f7b 100644 --- a/sound/songs/midi/midi.cfg +++ b/sound/songs/midi/midi.cfg @@ -142,10 +142,13 @@ ph_trap_blend.mid: -E -G130 -P4 ph_trap_held.mid: -E -G130 -P4 ph_trap_solo.mid: -E -G130 -P4 se_applause.mid: -E -R50 -G128 -V100 -P5 +se_bag_cursor.mid: -E -R50 -G129 -P5 +se_bag_pocket.mid: -E -R50 -G129 -P5 se_ball_bounce_1.mid: -E -R50 -G128 -V100 -P4 se_ball_bounce_2.mid: -E -R50 -G128 -V100 -P4 se_ball_bounce_3.mid: -E -R50 -G128 -V100 -P4 se_ball_bounce_4.mid: -E -R50 -G128 -V100 -P4 +se_ball_click.mid: -E -R50 -G129 -P5 se_ball_open.mid: -E -R50 -G127 -V100 -P5 se_ball_throw.mid: -E -R50 -G128 -V120 -P5 se_ball_trade.mid: -E -R50 -G127 -V100 -P5 @@ -164,6 +167,9 @@ se_boo.mid: -E -R50 -G127 -V110 -P4 se_breakable_door.mid: -E -R50 -G128 -V110 -P4 se_bridge_walk.mid: -E -R50 -G128 -V095 -P4 se_card.mid: -E -R50 -G127 -V100 -P4 +se_card_flip.mid: -E -R50 -G129 -P5 +se_card_flipping.mid: -E -R50 -G129 -P5 +se_card_open.mid: -E -R50 -G129 -P5 se_click.mid: -E -R50 -G127 -V110 -P4 se_contest_condition_lose.mid: -E -R50 -G127 -V110 -P4 se_contest_curtain_fall.mid: -E -R50 -G128 -V070 -P5 @@ -173,6 +179,9 @@ se_contest_icon_change.mid: -E -R50 -G128 -V110 -P5 se_contest_icon_clear.mid: -E -R50 -G128 -V090 -P5 se_contest_mons_turn.mid: -E -R50 -G128 -V090 -P5 se_contest_place.mid: -E -R50 -G127 -V110 -P4 +se_deoxys_move.mid: -E -R50 -G129 -P5 +se_dex_page.mid: -E -R50 -G127 -P5 +se_dex_scroll.mid: -E -R50 -G127 -P5 se_dex_search.mid: -E -R50 -G127 -v100 -P5 se_ding_dong.mid: -E -R50 -G127 -V090 -P5 se_door.mid: -E -R50 -G129 -V100 -P5 @@ -192,6 +201,9 @@ se_field_poison.mid: -E -R50 -G127 -V110 -P5 se_flee.mid: -E -R50 -G127 -V090 -P5 se_fu_zaku.mid: -E -R50 -G127 -V120 -P4 se_glass_flute.mid: -E -R50 -G128 -V105 -P5 +se_help_close.mid: -E -R50 -G129 -P5 +se_help_error.mid: -E -R50 -G129 -P5 +se_help_open.mid: -E -R50 -G129 -P5 se_ice_break.mid: -E -R50 -G128 -V100 -P4 se_ice_crack.mid: -E -R50 -G127 -V100 -P4 se_ice_stairs.mid: -E -R50 -G128 -V090 -P4 @@ -200,30 +212,136 @@ se_itemfinder.mid: -E -R50 -G127 -V090 -P5 se_lavaridge_fall_warp.mid: -E -R50 -G127 -P4 se_ledge.mid: -E -R50 -G127 -V100 -P4 se_low_health.mid: -E -R50 -G127 -V100 -P3 +se_m_absorb.mid: -E -R50 -G128 -P4 +se_m_absorb_2.mid: -E -R50 -G128 -P4 +se_m_acid_armor.mid: -E -R50 -G128 -P4 +se_m_attract.mid: -E -R50 -G128 -P4 +se_m_attract2.mid: -E -R50 -G128 -P4 +se_m_barrier.mid: -E -R50 -G128 -P4 +se_m_baton_pass.mid: -E -R50 -G128 -P4 +se_m_belly_drum.mid: -E -R50 -G128 -P4 se_m_bind.mid: -E -R50 -G128 -V100 -P4 +se_m_bite.mid: -E -R50 -G128 -P4 +se_m_blizzard.mid: -E -R50 -G128 -P4 +se_m_blizzard2.mid: -E -R50 -G128 -P4 +se_m_bonemerang.mid: -E -R50 -G128 -P4 +se_m_brick_break.mid: -E -R50 -G128 -P4 +se_m_bubble.mid: -E -R50 -G128 -P4 +se_m_bubble2.mid: -E -R50 -G128 -P4 +se_m_bubble3.mid: -E -R50 -G128 -P4 +se_m_bubble_beam.mid: -E -R50 -G128 -P4 +se_m_bubble_beam2.mid: -E -R50 -G128 -P4 +se_m_charge.mid: -E -R50 -G128 -P4 +se_m_charm.mid: -E -R50 -G128 -P4 se_m_comet_punch.mid: -E -R50 -G128 -V120 -P4 +se_m_confuse_ray.mid: -E -R50 -G128 -P4 +se_m_cosmic_power.mid: -E -R50 -G128 -P4 +se_m_crabhammer.mid: -E -R50 -G128 -P4 se_m_cut.mid: -E -R50 -G128 -V120 -P4 +se_m_detect.mid: -E -R50 -G128 -P4 +se_m_dig.mid: -E -R50 -G128 -P4 +se_m_dive.mid: -E -R50 -G128 -P4 +se_m_dizzy_punch.mid: -E -R50 -G128 -P4 se_m_double_slap.mid: -E -R50 -G128 -V110 -P4 +se_m_double_team.mid: -E -R50 -G128 -P4 +se_m_dragon_rage.mid: -E -R50 -G128 -P4 +se_m_earthquake.mid: -E -R50 -G128 -P4 +se_m_ember.mid: -E -R50 -G128 -P4 +se_m_encore.mid: -E -R50 -G128 -P4 +se_m_encore2.mid: -E -R50 -G128 -P4 +se_m_explosion.mid: -E -R50 -G128 -P4 +se_m_faint_attack.mid: -E -R50 -G128 -P4 se_m_fire_punch.mid: -E -R50 -G128 -V110 -P4 +se_m_flame_wheel.mid: -E -R50 -G128 -P4 +se_m_flame_wheel2.mid: -E -R50 -G128 -P4 +se_m_flamethrower.mid: -E -R50 -G128 -P4 +se_m_flatter.mid: -E -R50 -G128 -P4 se_m_fly.mid: -E -R50 -G128 -V110 -P4 +se_m_giga_drain.mid: -E -R50 -G128 -P4 +se_m_grasswhistle.mid: -E -R50 -G128 -P4 se_m_gust.mid: -E -R50 -G128 -V110 -P4 se_m_gust2.mid: -E -R50 -G128 -V110 -P4 +se_m_hail.mid: -E -R50 -G128 -P4 +se_m_harden.mid: -E -R50 -G128 -P4 +se_m_haze.mid: -E -R50 -G128 -P4 se_m_headbutt.mid: -E -R50 -G128 -V110 -P4 +se_m_heal_bell.mid: -E -R50 -G128 -P4 +se_m_heat_wave.mid: -E -R50 -G128 -P4 se_m_horn_attack.mid: -E -R50 -G128 -V110 -P4 +se_m_hydro_pump.mid: -E -R50 -G128 -P4 +se_m_hyper_beam.mid: -E -R50 -G128 -P4 +se_m_hyper_beam2.mid: -E -R50 -G128 -P4 +se_m_icy_wind.mid: -E -R50 -G128 -P4 se_m_jump_kick.mid: -E -R50 -G128 -V110 -P4 se_m_leer.mid: -E -R50 -G128 -V110 -P4 +se_m_lick.mid: -E -R50 -G128 -P4 +se_m_lock_on.mid: -E -R50 -G128 -P4 se_m_mega_kick.mid: -E -R50 -G128 -V090 -P4 se_m_mega_kick2.mid: -E -R50 -G128 -V110 -P4 +se_m_metronome.mid: -E -R50 -G128 -P4 +se_m_milk_drink.mid: -E -R50 -G128 -P4 +se_m_minimize.mid: -E -R50 -G128 -P4 +se_m_mist.mid: -E -R50 -G128 -P4 +se_m_moonlight.mid: -E -R50 -G128 -P4 +se_m_morning_sun.mid: -E -R50 -G128 -P5 +se_m_nightmare.mid: -E -R50 -G128 -P4 se_m_pay_day.mid: -E -R50 -G128 -V095 -P4 +se_m_perish_song.mid: -E -R50 -G128 -P4 +se_m_petal_dance.mid: -E -R50 -G128 -P4 +se_m_poison_powder.mid: -E -R50 -G128 -P4 +se_m_psybeam.mid: -E -R50 -G128 -P4 +se_m_psybeam2.mid: -E -R50 -G128 -P4 +se_m_rain_dance.mid: -E -R50 -G128 -P4 se_m_razor_wind.mid: -E -R50 -G128 -V110 -P4 se_m_razor_wind2.mid: -E -R50 -G128 -V090 -P4 +se_m_reflect.mid: -E -R50 -G128 -P4 +se_m_reversal.mid: -E -R50 -G128 -P4 +se_m_rock_throw.mid: -E -R50 -G128 -P4 +se_m_sacred_fire.mid: -E -R50 -G128 -P4 +se_m_sacred_fire2.mid: -E -R50 -G128 -P4 se_m_sand_attack.mid: -E -R50 -G128 -V110 -P4 +se_m_sand_tomb.mid: -E -R50 -G128 -P4 +se_m_sandstorm.mid: -E -R50 -G128 -P4 se_m_scratch.mid: -E -R50 -G128 -V110 -P4 +se_m_screech.mid: -E -R50 -G128 -V110 -P4 +se_m_self_destruct.mid: -E -R50 -G128 -P4 +se_m_sing.mid: -E -R50 -G128 -P4 +se_m_sketch.mid: -E -R50 -G128 -P4 +se_m_sky_uppercut.mid: -E -R50 -G128 -P4 +se_m_snore.mid: -E -R50 -G128 -V120 -P4 +se_m_solar_beam.mid: -E -R50 -G128 -P4 +se_m_spit_up.mid: -E -R50 -G128 -P4 +se_m_stat_decrease.mid: -E -R50 -G128 -P4 +se_m_stat_increase.mid: -E -R50 -G128 -P4 +se_m_strength.mid: -E -R50 -G128 -P4 +se_m_string_shot.mid: -E -R50 -G128 -P4 +se_m_string_shot2.mid: -E -R50 -G128 -P4 +se_m_supersonic.mid: -E -R50 -G128 -P4 +se_m_surf.mid: -E -R50 -G128 -P4 +se_m_swagger.mid: -E -R50 -G128 -P4 +se_m_swagger2.mid: -E -R50 -G128 -P4 +se_m_sweet_scent.mid: -E -R50 -G128 -P4 +se_m_swift.mid: -E -R50 -G128 -P4 se_m_swords_dance.mid: -E -R50 -G128 -V100 -P4 se_m_tail_whip.mid: -E -R50 -G128 -V110 -P4 se_m_take_down.mid: -E -R50 -G128 -V105 -P4 +se_m_teeter_dance.mid: -E -R50 -G128 -P4 +se_m_teleport.mid: -E -R50 -G128 -P4 +se_m_thunder_wave.mid: -E -R50 -G128 -P4 +se_m_thunderbolt.mid: -E -R50 -G128 -P4 +se_m_thunderbolt2.mid: -E -R50 -G128 -P4 +se_m_toxic.mid: -E -R50 -G128 -P4 +se_m_tri_attack.mid: -E -R50 -G128 -P4 +se_m_tri_attack2.mid: -E -R50 -G128 -P4 +se_m_twister.mid: -E -R50 -G128 -P4 +se_m_uproar.mid: -E -R50 -G128 -P4 se_m_vicegrip.mid: -E -R50 -G128 -V110 -P4 +se_m_vital_throw.mid: -E -R50 -G128 -P4 +se_m_vital_throw2.mid: -E -R50 -G128 -P4 +se_m_waterfall.mid: -E -R50 -G128 -P4 +se_m_whirlpool.mid: -E -R50 -G128 -P4 se_m_wing_attack.mid: -E -R50 -G128 -V105 -P4 +se_m_yawn.mid: -E -R50 -G128 -V110 -P4 se_mud_ball.mid: -E -R50 -G128 -V110 -P4 se_mugshot.mid: -E -R50 -G128 -V090 -P5 se_not_effective.mid: -E -R50 -G127 -V110 -P5 @@ -240,6 +358,8 @@ se_pc_login.mid: -E -R50 -G127 -V100 -P5 se_pc_off.mid: -E -R50 -G127 -V100 -P5 se_pc_on.mid: -E -R50 -G127 -V100 -P5 se_pin.mid: -E -R50 -G127 -V060 -P4 +se_poke_jump_failure.mid: -E -R50 -G127 -P5 +se_poke_jump_success.mid: -E -R50 -G128 -P5 se_pokenav_off.mid: -E -R50 -G127 -V100 -P5 se_pokenav_on.mid: -E -R50 -G127 -V100 -P5 se_puddle.mid: -E -R50 -G128 -V020 -P4 @@ -255,7 +375,9 @@ se_save.mid: -E -R50 -G128 -V080 -P5 se_select.mid: -E -R50 -G127 -V080 -P5 se_shiny.mid: -E -R50 -G128 -V095 -P5 se_ship.mid: -E -R50 -G127 -V075 -P4 +se_shop.mid: -E -R50 -G129 -P5 se_sliding_door.mid: -E -R50 -G128 -V095 -P4 +se_ss_anne_horn.mid: -E -R50 -G129 -P5 se_success.mid: -E -R50 -G127 -V080 -P4 se_super_effective.mid: -E -R50 -G127 -V110 -P5 se_switch.mid: -E -R50 -G127 -V100 -P4 @@ -271,5 +393,7 @@ se_truck_unload.mid: -E -R50 -G127 -P4 se_unlock.mid: -E -R50 -G128 -V100 -P4 se_use_item.mid: -E -R50 -G127 -V100 -P5 se_vend.mid: -E -R50 -G128 -V110 -P4 +se_wall_hit.mid: -E -R50 -G127 -P2 se_warp_in.mid: -E -R50 -G127 -V090 -P4 se_warp_out.mid: -E -R50 -G127 -V090 -P4 +se_win_open.mid: -E -R50 -G127 -P5 diff --git a/sound/songs/midi/se_bag_cursor.mid b/sound/songs/midi/se_bag_cursor.mid new file mode 100644 index 000000000..108325253 Binary files /dev/null and b/sound/songs/midi/se_bag_cursor.mid differ diff --git a/sound/songs/midi/se_bag_pocket.mid b/sound/songs/midi/se_bag_pocket.mid new file mode 100644 index 000000000..49537bff2 Binary files /dev/null and b/sound/songs/midi/se_bag_pocket.mid differ diff --git a/sound/songs/midi/se_ball_click.mid b/sound/songs/midi/se_ball_click.mid new file mode 100644 index 000000000..1f7131444 Binary files /dev/null and b/sound/songs/midi/se_ball_click.mid differ diff --git a/sound/songs/midi/se_card_flip.mid b/sound/songs/midi/se_card_flip.mid new file mode 100644 index 000000000..982cea7c8 Binary files /dev/null and b/sound/songs/midi/se_card_flip.mid differ diff --git a/sound/songs/midi/se_card_flipping.mid b/sound/songs/midi/se_card_flipping.mid new file mode 100644 index 000000000..cd07113f6 Binary files /dev/null and b/sound/songs/midi/se_card_flipping.mid differ diff --git a/sound/songs/midi/se_card_open.mid b/sound/songs/midi/se_card_open.mid new file mode 100644 index 000000000..f69873afd Binary files /dev/null and b/sound/songs/midi/se_card_open.mid differ diff --git a/sound/songs/midi/se_deoxys_move.mid b/sound/songs/midi/se_deoxys_move.mid new file mode 100644 index 000000000..98391c9c9 Binary files /dev/null and b/sound/songs/midi/se_deoxys_move.mid differ diff --git a/sound/songs/midi/se_dex_page.mid b/sound/songs/midi/se_dex_page.mid new file mode 100644 index 000000000..a1799c523 Binary files /dev/null and b/sound/songs/midi/se_dex_page.mid differ diff --git a/sound/songs/midi/se_dex_scroll.mid b/sound/songs/midi/se_dex_scroll.mid new file mode 100644 index 000000000..254b7c787 Binary files /dev/null and b/sound/songs/midi/se_dex_scroll.mid differ diff --git a/sound/songs/midi/se_help_close.mid b/sound/songs/midi/se_help_close.mid new file mode 100644 index 000000000..56c1a1ae5 Binary files /dev/null and b/sound/songs/midi/se_help_close.mid differ diff --git a/sound/songs/midi/se_help_error.mid b/sound/songs/midi/se_help_error.mid new file mode 100644 index 000000000..fbd39323a Binary files /dev/null and b/sound/songs/midi/se_help_error.mid differ diff --git a/sound/songs/midi/se_help_open.mid b/sound/songs/midi/se_help_open.mid new file mode 100644 index 000000000..daf797bbe Binary files /dev/null and b/sound/songs/midi/se_help_open.mid differ diff --git a/sound/songs/midi/se_m_absorb.mid b/sound/songs/midi/se_m_absorb.mid new file mode 100644 index 000000000..ae54fe2bc Binary files /dev/null and b/sound/songs/midi/se_m_absorb.mid differ diff --git a/sound/songs/midi/se_m_absorb_2.mid b/sound/songs/midi/se_m_absorb_2.mid new file mode 100644 index 000000000..42b57ae5e Binary files /dev/null and b/sound/songs/midi/se_m_absorb_2.mid differ diff --git a/sound/songs/midi/se_m_acid_armor.mid b/sound/songs/midi/se_m_acid_armor.mid new file mode 100644 index 000000000..ca87cfee3 Binary files /dev/null and b/sound/songs/midi/se_m_acid_armor.mid differ diff --git a/sound/songs/midi/se_m_attract.mid b/sound/songs/midi/se_m_attract.mid new file mode 100644 index 000000000..cd7077bca Binary files /dev/null and b/sound/songs/midi/se_m_attract.mid differ diff --git a/sound/songs/midi/se_m_attract2.mid b/sound/songs/midi/se_m_attract2.mid new file mode 100644 index 000000000..473ee6161 Binary files /dev/null and b/sound/songs/midi/se_m_attract2.mid differ diff --git a/sound/songs/midi/se_m_barrier.mid b/sound/songs/midi/se_m_barrier.mid new file mode 100644 index 000000000..5b3e57d62 Binary files /dev/null and b/sound/songs/midi/se_m_barrier.mid differ diff --git a/sound/songs/midi/se_m_baton_pass.mid b/sound/songs/midi/se_m_baton_pass.mid new file mode 100644 index 000000000..9ac0b0f66 Binary files /dev/null and b/sound/songs/midi/se_m_baton_pass.mid differ diff --git a/sound/songs/midi/se_m_belly_drum.mid b/sound/songs/midi/se_m_belly_drum.mid new file mode 100644 index 000000000..b642ccfb9 Binary files /dev/null and b/sound/songs/midi/se_m_belly_drum.mid differ diff --git a/sound/songs/midi/se_m_bite.mid b/sound/songs/midi/se_m_bite.mid new file mode 100644 index 000000000..593999f1b Binary files /dev/null and b/sound/songs/midi/se_m_bite.mid differ diff --git a/sound/songs/midi/se_m_blizzard.mid b/sound/songs/midi/se_m_blizzard.mid new file mode 100644 index 000000000..941f269f0 Binary files /dev/null and b/sound/songs/midi/se_m_blizzard.mid differ diff --git a/sound/songs/midi/se_m_blizzard2.mid b/sound/songs/midi/se_m_blizzard2.mid new file mode 100644 index 000000000..48b82ad1b Binary files /dev/null and b/sound/songs/midi/se_m_blizzard2.mid differ diff --git a/sound/songs/midi/se_m_bonemerang.mid b/sound/songs/midi/se_m_bonemerang.mid new file mode 100644 index 000000000..37727d64a Binary files /dev/null and b/sound/songs/midi/se_m_bonemerang.mid differ diff --git a/sound/songs/midi/se_m_brick_break.mid b/sound/songs/midi/se_m_brick_break.mid new file mode 100644 index 000000000..8c4b9d3c0 Binary files /dev/null and b/sound/songs/midi/se_m_brick_break.mid differ diff --git a/sound/songs/midi/se_m_bubble.mid b/sound/songs/midi/se_m_bubble.mid new file mode 100644 index 000000000..bfd259e48 Binary files /dev/null and b/sound/songs/midi/se_m_bubble.mid differ diff --git a/sound/songs/midi/se_m_bubble2.mid b/sound/songs/midi/se_m_bubble2.mid new file mode 100644 index 000000000..1b4197e71 Binary files /dev/null and b/sound/songs/midi/se_m_bubble2.mid differ diff --git a/sound/songs/midi/se_m_bubble3.mid b/sound/songs/midi/se_m_bubble3.mid new file mode 100644 index 000000000..9d65ba218 Binary files /dev/null and b/sound/songs/midi/se_m_bubble3.mid differ diff --git a/sound/songs/midi/se_m_bubble_beam.mid b/sound/songs/midi/se_m_bubble_beam.mid new file mode 100644 index 000000000..d192866b7 Binary files /dev/null and b/sound/songs/midi/se_m_bubble_beam.mid differ diff --git a/sound/songs/midi/se_m_bubble_beam2.mid b/sound/songs/midi/se_m_bubble_beam2.mid new file mode 100644 index 000000000..8f2f6523e Binary files /dev/null and b/sound/songs/midi/se_m_bubble_beam2.mid differ diff --git a/sound/songs/midi/se_m_charge.mid b/sound/songs/midi/se_m_charge.mid new file mode 100644 index 000000000..4310f8820 Binary files /dev/null and b/sound/songs/midi/se_m_charge.mid differ diff --git a/sound/songs/midi/se_m_charm.mid b/sound/songs/midi/se_m_charm.mid new file mode 100644 index 000000000..0237d97ff Binary files /dev/null and b/sound/songs/midi/se_m_charm.mid differ diff --git a/sound/songs/midi/se_m_confuse_ray.mid b/sound/songs/midi/se_m_confuse_ray.mid new file mode 100644 index 000000000..4ad9b70d9 Binary files /dev/null and b/sound/songs/midi/se_m_confuse_ray.mid differ diff --git a/sound/songs/midi/se_m_cosmic_power.mid b/sound/songs/midi/se_m_cosmic_power.mid new file mode 100644 index 000000000..0adb81fbe Binary files /dev/null and b/sound/songs/midi/se_m_cosmic_power.mid differ diff --git a/sound/songs/midi/se_m_crabhammer.mid b/sound/songs/midi/se_m_crabhammer.mid new file mode 100644 index 000000000..1f5231509 Binary files /dev/null and b/sound/songs/midi/se_m_crabhammer.mid differ diff --git a/sound/songs/midi/se_m_detect.mid b/sound/songs/midi/se_m_detect.mid new file mode 100644 index 000000000..946f76b36 Binary files /dev/null and b/sound/songs/midi/se_m_detect.mid differ diff --git a/sound/songs/midi/se_m_dig.mid b/sound/songs/midi/se_m_dig.mid new file mode 100644 index 000000000..10e273bd4 Binary files /dev/null and b/sound/songs/midi/se_m_dig.mid differ diff --git a/sound/songs/midi/se_m_dive.mid b/sound/songs/midi/se_m_dive.mid new file mode 100644 index 000000000..7cd43a4dc Binary files /dev/null and b/sound/songs/midi/se_m_dive.mid differ diff --git a/sound/songs/midi/se_m_dizzy_punch.mid b/sound/songs/midi/se_m_dizzy_punch.mid new file mode 100644 index 000000000..efbb0bef6 Binary files /dev/null and b/sound/songs/midi/se_m_dizzy_punch.mid differ diff --git a/sound/songs/midi/se_m_double_team.mid b/sound/songs/midi/se_m_double_team.mid new file mode 100644 index 000000000..0a3c73dc5 Binary files /dev/null and b/sound/songs/midi/se_m_double_team.mid differ diff --git a/sound/songs/midi/se_m_dragon_rage.mid b/sound/songs/midi/se_m_dragon_rage.mid new file mode 100644 index 000000000..91b6137a1 Binary files /dev/null and b/sound/songs/midi/se_m_dragon_rage.mid differ diff --git a/sound/songs/midi/se_m_earthquake.mid b/sound/songs/midi/se_m_earthquake.mid new file mode 100644 index 000000000..dbd0bfb6c Binary files /dev/null and b/sound/songs/midi/se_m_earthquake.mid differ diff --git a/sound/songs/midi/se_m_ember.mid b/sound/songs/midi/se_m_ember.mid new file mode 100644 index 000000000..2c686616a Binary files /dev/null and b/sound/songs/midi/se_m_ember.mid differ diff --git a/sound/songs/midi/se_m_encore.mid b/sound/songs/midi/se_m_encore.mid new file mode 100644 index 000000000..f0c5597f4 Binary files /dev/null and b/sound/songs/midi/se_m_encore.mid differ diff --git a/sound/songs/midi/se_m_encore2.mid b/sound/songs/midi/se_m_encore2.mid new file mode 100644 index 000000000..a98882c8d Binary files /dev/null and b/sound/songs/midi/se_m_encore2.mid differ diff --git a/sound/songs/midi/se_m_explosion.mid b/sound/songs/midi/se_m_explosion.mid new file mode 100644 index 000000000..4201fd7d1 Binary files /dev/null and b/sound/songs/midi/se_m_explosion.mid differ diff --git a/sound/songs/midi/se_m_faint_attack.mid b/sound/songs/midi/se_m_faint_attack.mid new file mode 100644 index 000000000..01c8a09b8 Binary files /dev/null and b/sound/songs/midi/se_m_faint_attack.mid differ diff --git a/sound/songs/midi/se_m_flame_wheel.mid b/sound/songs/midi/se_m_flame_wheel.mid new file mode 100644 index 000000000..ad469af35 Binary files /dev/null and b/sound/songs/midi/se_m_flame_wheel.mid differ diff --git a/sound/songs/midi/se_m_flame_wheel2.mid b/sound/songs/midi/se_m_flame_wheel2.mid new file mode 100644 index 000000000..7b3326729 Binary files /dev/null and b/sound/songs/midi/se_m_flame_wheel2.mid differ diff --git a/sound/songs/midi/se_m_flamethrower.mid b/sound/songs/midi/se_m_flamethrower.mid new file mode 100644 index 000000000..811d1673c Binary files /dev/null and b/sound/songs/midi/se_m_flamethrower.mid differ diff --git a/sound/songs/midi/se_m_flatter.mid b/sound/songs/midi/se_m_flatter.mid new file mode 100644 index 000000000..9c7940511 Binary files /dev/null and b/sound/songs/midi/se_m_flatter.mid differ diff --git a/sound/songs/midi/se_m_giga_drain.mid b/sound/songs/midi/se_m_giga_drain.mid new file mode 100644 index 000000000..f11c1d774 Binary files /dev/null and b/sound/songs/midi/se_m_giga_drain.mid differ diff --git a/sound/songs/midi/se_m_grasswhistle.mid b/sound/songs/midi/se_m_grasswhistle.mid new file mode 100644 index 000000000..ec8a1f9da Binary files /dev/null and b/sound/songs/midi/se_m_grasswhistle.mid differ diff --git a/sound/songs/midi/se_m_hail.mid b/sound/songs/midi/se_m_hail.mid new file mode 100644 index 000000000..b406e2fdc Binary files /dev/null and b/sound/songs/midi/se_m_hail.mid differ diff --git a/sound/songs/midi/se_m_harden.mid b/sound/songs/midi/se_m_harden.mid new file mode 100644 index 000000000..c363300d0 Binary files /dev/null and b/sound/songs/midi/se_m_harden.mid differ diff --git a/sound/songs/midi/se_m_haze.mid b/sound/songs/midi/se_m_haze.mid new file mode 100644 index 000000000..330c40664 Binary files /dev/null and b/sound/songs/midi/se_m_haze.mid differ diff --git a/sound/songs/midi/se_m_heal_bell.mid b/sound/songs/midi/se_m_heal_bell.mid new file mode 100644 index 000000000..09271d4a2 Binary files /dev/null and b/sound/songs/midi/se_m_heal_bell.mid differ diff --git a/sound/songs/midi/se_m_heat_wave.mid b/sound/songs/midi/se_m_heat_wave.mid new file mode 100644 index 000000000..1b4be4e59 Binary files /dev/null and b/sound/songs/midi/se_m_heat_wave.mid differ diff --git a/sound/songs/midi/se_m_hydro_pump.mid b/sound/songs/midi/se_m_hydro_pump.mid new file mode 100644 index 000000000..e589d60e4 Binary files /dev/null and b/sound/songs/midi/se_m_hydro_pump.mid differ diff --git a/sound/songs/midi/se_m_hyper_beam.mid b/sound/songs/midi/se_m_hyper_beam.mid new file mode 100644 index 000000000..559f11026 Binary files /dev/null and b/sound/songs/midi/se_m_hyper_beam.mid differ diff --git a/sound/songs/midi/se_m_hyper_beam2.mid b/sound/songs/midi/se_m_hyper_beam2.mid new file mode 100644 index 000000000..694dc680d Binary files /dev/null and b/sound/songs/midi/se_m_hyper_beam2.mid differ diff --git a/sound/songs/midi/se_m_icy_wind.mid b/sound/songs/midi/se_m_icy_wind.mid new file mode 100644 index 000000000..c6b60fe23 Binary files /dev/null and b/sound/songs/midi/se_m_icy_wind.mid differ diff --git a/sound/songs/midi/se_m_lick.mid b/sound/songs/midi/se_m_lick.mid new file mode 100644 index 000000000..69436bd5c Binary files /dev/null and b/sound/songs/midi/se_m_lick.mid differ diff --git a/sound/songs/midi/se_m_lock_on.mid b/sound/songs/midi/se_m_lock_on.mid new file mode 100644 index 000000000..e17f78fb6 Binary files /dev/null and b/sound/songs/midi/se_m_lock_on.mid differ diff --git a/sound/songs/midi/se_m_metronome.mid b/sound/songs/midi/se_m_metronome.mid new file mode 100644 index 000000000..850a1d6fc Binary files /dev/null and b/sound/songs/midi/se_m_metronome.mid differ diff --git a/sound/songs/midi/se_m_milk_drink.mid b/sound/songs/midi/se_m_milk_drink.mid new file mode 100644 index 000000000..df595779d Binary files /dev/null and b/sound/songs/midi/se_m_milk_drink.mid differ diff --git a/sound/songs/midi/se_m_minimize.mid b/sound/songs/midi/se_m_minimize.mid new file mode 100644 index 000000000..bca3aa2a8 Binary files /dev/null and b/sound/songs/midi/se_m_minimize.mid differ diff --git a/sound/songs/midi/se_m_mist.mid b/sound/songs/midi/se_m_mist.mid new file mode 100644 index 000000000..2d184451f Binary files /dev/null and b/sound/songs/midi/se_m_mist.mid differ diff --git a/sound/songs/midi/se_m_moonlight.mid b/sound/songs/midi/se_m_moonlight.mid new file mode 100644 index 000000000..b287d593d Binary files /dev/null and b/sound/songs/midi/se_m_moonlight.mid differ diff --git a/sound/songs/midi/se_m_morning_sun.mid b/sound/songs/midi/se_m_morning_sun.mid new file mode 100644 index 000000000..c18658877 Binary files /dev/null and b/sound/songs/midi/se_m_morning_sun.mid differ diff --git a/sound/songs/midi/se_m_nightmare.mid b/sound/songs/midi/se_m_nightmare.mid new file mode 100644 index 000000000..4887d2339 Binary files /dev/null and b/sound/songs/midi/se_m_nightmare.mid differ diff --git a/sound/songs/midi/se_m_perish_song.mid b/sound/songs/midi/se_m_perish_song.mid new file mode 100644 index 000000000..4bdd187ef Binary files /dev/null and b/sound/songs/midi/se_m_perish_song.mid differ diff --git a/sound/songs/midi/se_m_petal_dance.mid b/sound/songs/midi/se_m_petal_dance.mid new file mode 100644 index 000000000..567379579 Binary files /dev/null and b/sound/songs/midi/se_m_petal_dance.mid differ diff --git a/sound/songs/midi/se_m_poison_powder.mid b/sound/songs/midi/se_m_poison_powder.mid new file mode 100644 index 000000000..a1ad27fee Binary files /dev/null and b/sound/songs/midi/se_m_poison_powder.mid differ diff --git a/sound/songs/midi/se_m_psybeam.mid b/sound/songs/midi/se_m_psybeam.mid new file mode 100644 index 000000000..d792e7792 Binary files /dev/null and b/sound/songs/midi/se_m_psybeam.mid differ diff --git a/sound/songs/midi/se_m_psybeam2.mid b/sound/songs/midi/se_m_psybeam2.mid new file mode 100644 index 000000000..76f273d4c Binary files /dev/null and b/sound/songs/midi/se_m_psybeam2.mid differ diff --git a/sound/songs/midi/se_m_rain_dance.mid b/sound/songs/midi/se_m_rain_dance.mid new file mode 100644 index 000000000..86b2cb871 Binary files /dev/null and b/sound/songs/midi/se_m_rain_dance.mid differ diff --git a/sound/songs/midi/se_m_reflect.mid b/sound/songs/midi/se_m_reflect.mid new file mode 100644 index 000000000..9360215f0 Binary files /dev/null and b/sound/songs/midi/se_m_reflect.mid differ diff --git a/sound/songs/midi/se_m_reversal.mid b/sound/songs/midi/se_m_reversal.mid new file mode 100644 index 000000000..0dc1414be Binary files /dev/null and b/sound/songs/midi/se_m_reversal.mid differ diff --git a/sound/songs/midi/se_m_rock_throw.mid b/sound/songs/midi/se_m_rock_throw.mid new file mode 100644 index 000000000..af0c6905a Binary files /dev/null and b/sound/songs/midi/se_m_rock_throw.mid differ diff --git a/sound/songs/midi/se_m_sacred_fire.mid b/sound/songs/midi/se_m_sacred_fire.mid new file mode 100644 index 000000000..860ad6e13 Binary files /dev/null and b/sound/songs/midi/se_m_sacred_fire.mid differ diff --git a/sound/songs/midi/se_m_sacred_fire2.mid b/sound/songs/midi/se_m_sacred_fire2.mid new file mode 100644 index 000000000..6b0fc8197 Binary files /dev/null and b/sound/songs/midi/se_m_sacred_fire2.mid differ diff --git a/sound/songs/midi/se_m_sand_tomb.mid b/sound/songs/midi/se_m_sand_tomb.mid new file mode 100644 index 000000000..31e28e1ec Binary files /dev/null and b/sound/songs/midi/se_m_sand_tomb.mid differ diff --git a/sound/songs/midi/se_m_sandstorm.mid b/sound/songs/midi/se_m_sandstorm.mid new file mode 100644 index 000000000..94864ce30 Binary files /dev/null and b/sound/songs/midi/se_m_sandstorm.mid differ diff --git a/sound/songs/midi/se_m_screech.mid b/sound/songs/midi/se_m_screech.mid new file mode 100644 index 000000000..cc469c154 Binary files /dev/null and b/sound/songs/midi/se_m_screech.mid differ diff --git a/sound/songs/midi/se_m_self_destruct.mid b/sound/songs/midi/se_m_self_destruct.mid new file mode 100644 index 000000000..504109dd1 Binary files /dev/null and b/sound/songs/midi/se_m_self_destruct.mid differ diff --git a/sound/songs/midi/se_m_sing.mid b/sound/songs/midi/se_m_sing.mid new file mode 100644 index 000000000..ba194554c Binary files /dev/null and b/sound/songs/midi/se_m_sing.mid differ diff --git a/sound/songs/midi/se_m_sketch.mid b/sound/songs/midi/se_m_sketch.mid new file mode 100644 index 000000000..9c2654080 Binary files /dev/null and b/sound/songs/midi/se_m_sketch.mid differ diff --git a/sound/songs/midi/se_m_sky_uppercut.mid b/sound/songs/midi/se_m_sky_uppercut.mid new file mode 100644 index 000000000..b7d313d3a Binary files /dev/null and b/sound/songs/midi/se_m_sky_uppercut.mid differ diff --git a/sound/songs/midi/se_m_snore.mid b/sound/songs/midi/se_m_snore.mid new file mode 100644 index 000000000..5f5797847 Binary files /dev/null and b/sound/songs/midi/se_m_snore.mid differ diff --git a/sound/songs/midi/se_m_solar_beam.mid b/sound/songs/midi/se_m_solar_beam.mid new file mode 100644 index 000000000..1b948a8ee Binary files /dev/null and b/sound/songs/midi/se_m_solar_beam.mid differ diff --git a/sound/songs/midi/se_m_spit_up.mid b/sound/songs/midi/se_m_spit_up.mid new file mode 100644 index 000000000..bfe927f14 Binary files /dev/null and b/sound/songs/midi/se_m_spit_up.mid differ diff --git a/sound/songs/midi/se_m_stat_decrease.mid b/sound/songs/midi/se_m_stat_decrease.mid new file mode 100644 index 000000000..6da846a9e Binary files /dev/null and b/sound/songs/midi/se_m_stat_decrease.mid differ diff --git a/sound/songs/midi/se_m_stat_increase.mid b/sound/songs/midi/se_m_stat_increase.mid new file mode 100644 index 000000000..3cb86950d Binary files /dev/null and b/sound/songs/midi/se_m_stat_increase.mid differ diff --git a/sound/songs/midi/se_m_strength.mid b/sound/songs/midi/se_m_strength.mid new file mode 100644 index 000000000..956119f68 Binary files /dev/null and b/sound/songs/midi/se_m_strength.mid differ diff --git a/sound/songs/midi/se_m_string_shot.mid b/sound/songs/midi/se_m_string_shot.mid new file mode 100644 index 000000000..bebbaeef8 Binary files /dev/null and b/sound/songs/midi/se_m_string_shot.mid differ diff --git a/sound/songs/midi/se_m_string_shot2.mid b/sound/songs/midi/se_m_string_shot2.mid new file mode 100644 index 000000000..5f7f5eb10 Binary files /dev/null and b/sound/songs/midi/se_m_string_shot2.mid differ diff --git a/sound/songs/midi/se_m_supersonic.mid b/sound/songs/midi/se_m_supersonic.mid new file mode 100644 index 000000000..73ec2782e Binary files /dev/null and b/sound/songs/midi/se_m_supersonic.mid differ diff --git a/sound/songs/midi/se_m_surf.mid b/sound/songs/midi/se_m_surf.mid new file mode 100644 index 000000000..c1de5f212 Binary files /dev/null and b/sound/songs/midi/se_m_surf.mid differ diff --git a/sound/songs/midi/se_m_swagger.mid b/sound/songs/midi/se_m_swagger.mid new file mode 100644 index 000000000..bd5a220f2 Binary files /dev/null and b/sound/songs/midi/se_m_swagger.mid differ diff --git a/sound/songs/midi/se_m_swagger2.mid b/sound/songs/midi/se_m_swagger2.mid new file mode 100644 index 000000000..cd7119905 Binary files /dev/null and b/sound/songs/midi/se_m_swagger2.mid differ diff --git a/sound/songs/midi/se_m_sweet_scent.mid b/sound/songs/midi/se_m_sweet_scent.mid new file mode 100644 index 000000000..40610fba9 Binary files /dev/null and b/sound/songs/midi/se_m_sweet_scent.mid differ diff --git a/sound/songs/midi/se_m_swift.mid b/sound/songs/midi/se_m_swift.mid new file mode 100644 index 000000000..7fe4fcca2 Binary files /dev/null and b/sound/songs/midi/se_m_swift.mid differ diff --git a/sound/songs/midi/se_m_teeter_dance.mid b/sound/songs/midi/se_m_teeter_dance.mid new file mode 100644 index 000000000..a778e6019 Binary files /dev/null and b/sound/songs/midi/se_m_teeter_dance.mid differ diff --git a/sound/songs/midi/se_m_teleport.mid b/sound/songs/midi/se_m_teleport.mid new file mode 100644 index 000000000..c886fad83 Binary files /dev/null and b/sound/songs/midi/se_m_teleport.mid differ diff --git a/sound/songs/midi/se_m_thunder_wave.mid b/sound/songs/midi/se_m_thunder_wave.mid new file mode 100644 index 000000000..06f829b02 Binary files /dev/null and b/sound/songs/midi/se_m_thunder_wave.mid differ diff --git a/sound/songs/midi/se_m_thunderbolt.mid b/sound/songs/midi/se_m_thunderbolt.mid new file mode 100644 index 000000000..fa1cad7d0 Binary files /dev/null and b/sound/songs/midi/se_m_thunderbolt.mid differ diff --git a/sound/songs/midi/se_m_thunderbolt2.mid b/sound/songs/midi/se_m_thunderbolt2.mid new file mode 100644 index 000000000..f7adf43bc Binary files /dev/null and b/sound/songs/midi/se_m_thunderbolt2.mid differ diff --git a/sound/songs/midi/se_m_toxic.mid b/sound/songs/midi/se_m_toxic.mid new file mode 100644 index 000000000..27a7d2c7e Binary files /dev/null and b/sound/songs/midi/se_m_toxic.mid differ diff --git a/sound/songs/midi/se_m_tri_attack.mid b/sound/songs/midi/se_m_tri_attack.mid new file mode 100644 index 000000000..8032ce9b2 Binary files /dev/null and b/sound/songs/midi/se_m_tri_attack.mid differ diff --git a/sound/songs/midi/se_m_tri_attack2.mid b/sound/songs/midi/se_m_tri_attack2.mid new file mode 100644 index 000000000..e3cf54dbd Binary files /dev/null and b/sound/songs/midi/se_m_tri_attack2.mid differ diff --git a/sound/songs/midi/se_m_twister.mid b/sound/songs/midi/se_m_twister.mid new file mode 100644 index 000000000..24be8671f Binary files /dev/null and b/sound/songs/midi/se_m_twister.mid differ diff --git a/sound/songs/midi/se_m_uproar.mid b/sound/songs/midi/se_m_uproar.mid new file mode 100644 index 000000000..e797289a0 Binary files /dev/null and b/sound/songs/midi/se_m_uproar.mid differ diff --git a/sound/songs/midi/se_m_vital_throw.mid b/sound/songs/midi/se_m_vital_throw.mid new file mode 100644 index 000000000..d626455ca Binary files /dev/null and b/sound/songs/midi/se_m_vital_throw.mid differ diff --git a/sound/songs/midi/se_m_vital_throw2.mid b/sound/songs/midi/se_m_vital_throw2.mid new file mode 100644 index 000000000..b6e1dc48d Binary files /dev/null and b/sound/songs/midi/se_m_vital_throw2.mid differ diff --git a/sound/songs/midi/se_m_waterfall.mid b/sound/songs/midi/se_m_waterfall.mid new file mode 100644 index 000000000..c95ed4653 Binary files /dev/null and b/sound/songs/midi/se_m_waterfall.mid differ diff --git a/sound/songs/midi/se_m_whirlpool.mid b/sound/songs/midi/se_m_whirlpool.mid new file mode 100644 index 000000000..1fa7af764 Binary files /dev/null and b/sound/songs/midi/se_m_whirlpool.mid differ diff --git a/sound/songs/midi/se_m_yawn.mid b/sound/songs/midi/se_m_yawn.mid new file mode 100644 index 000000000..fab36f911 Binary files /dev/null and b/sound/songs/midi/se_m_yawn.mid differ diff --git a/sound/songs/midi/se_poke_jump_failure.mid b/sound/songs/midi/se_poke_jump_failure.mid new file mode 100644 index 000000000..bd71da95b Binary files /dev/null and b/sound/songs/midi/se_poke_jump_failure.mid differ diff --git a/sound/songs/midi/se_poke_jump_success.mid b/sound/songs/midi/se_poke_jump_success.mid new file mode 100644 index 000000000..42b57ae5e Binary files /dev/null and b/sound/songs/midi/se_poke_jump_success.mid differ diff --git a/sound/songs/midi/se_shop.mid b/sound/songs/midi/se_shop.mid new file mode 100644 index 000000000..3125930ba Binary files /dev/null and b/sound/songs/midi/se_shop.mid differ diff --git a/sound/songs/midi/se_ss_anne_horn.mid b/sound/songs/midi/se_ss_anne_horn.mid new file mode 100644 index 000000000..6dbe2f08e Binary files /dev/null and b/sound/songs/midi/se_ss_anne_horn.mid differ diff --git a/sound/songs/midi/se_wall_hit.mid b/sound/songs/midi/se_wall_hit.mid new file mode 100644 index 000000000..8197a78a5 Binary files /dev/null and b/sound/songs/midi/se_wall_hit.mid differ diff --git a/sound/songs/midi/se_win_open.mid b/sound/songs/midi/se_win_open.mid new file mode 100644 index 000000000..a6a7c4ea0 Binary files /dev/null and b/sound/songs/midi/se_win_open.mid differ diff --git a/sound/songs/se_bag_cursor.s b/sound/songs/se_bag_cursor.s deleted file mode 100644 index 36a9b5e76..000000000 --- a/sound/songs/se_bag_cursor.s +++ /dev/null @@ -1,52 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_bag_cursor - .align 2 - .equ se_bag_cursor_grp, voicegroup129 - .equ se_bag_cursor_pri, 5 - .equ se_bag_cursor_rev, reverb_set+50 - -se_bag_cursor_1: @ 86BC774 - .byte KEYSH, 0x00 - .byte TEMPO, 0x9B - .byte VOICE, 0x0A - .byte XCMD, 0x08 - .byte GsM2 - .byte v009 - .byte GsM2 - .byte VOL, 0x7F - .byte BEND, 0x42 - .byte N01 - .byte Cs4 - .byte v072 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -se_bag_cursor_2: @ 86BC78A - .byte VOL, 0x7F - .byte KEYSH, 0x00 - .byte VOICE, 0x7C - .byte N01 - .byte Cs5 - .byte v072 - .byte W01 - .byte Ds5 - .byte v104 - .byte W02 - .byte W03 - .byte W03 - .byte FINE - -@ *************************************** - .align 2 -se_bag_cursor: @ 86BC79C - .byte 2 - .byte 0 - .byte se_bag_cursor_pri - .byte se_bag_cursor_rev - .word se_bag_cursor_grp - - .word se_bag_cursor_1 - .word se_bag_cursor_2 diff --git a/sound/songs/se_bag_pocket.s b/sound/songs/se_bag_pocket.s deleted file mode 100644 index 40f00a49b..000000000 --- a/sound/songs/se_bag_pocket.s +++ /dev/null @@ -1,59 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_bag_pocket - .align 2 - .equ se_bag_pocket_grp, voicegroup129 - .equ se_bag_pocket_pri, 5 - .equ se_bag_pocket_rev, reverb_set+50 - -se_bag_pocket_1: @ 86BC7AC - .byte KEYSH, 0x00 - .byte TEMPO, 0xD3 - .byte VOICE, 0x50 - .byte VOL, 0x40 - .byte BEND, 0x40 - .byte N02 - .byte Dn4 - .byte v084 - .byte W02 - .byte BEND, 0x51 - .byte N03 - .byte Fs4 - .byte v080 - .byte W01 - .byte BEND, 0x18 - .byte W03 - .byte FINE - -se_bag_pocket_2: @ 86BC7C4 - .byte KEYSH, 0x00 - .byte VOICE, 0x02 - .byte XCMD, 0x08 - .byte GsM2 - .byte v009 - .byte GsM2 - .byte VOL, 0x7F - .byte PAN, 0x40 - .byte BEND, 0x40 - .byte N04 - .byte En3 - .byte v127 - .byte W03 - .byte W01 - .byte VOICE, 0x02 - .byte N02 - .byte Bn3 - .byte W02 - .byte FINE - -@ *************************************** - .align 2 -se_bag_pocket: @ 86BC7E0 - .byte 2 - .byte 0 - .byte se_bag_pocket_pri - .byte se_bag_pocket_rev - .word se_bag_pocket_grp - - .word se_bag_pocket_1 - .word se_bag_pocket_2 diff --git a/sound/songs/se_ball_click.s b/sound/songs/se_ball_click.s deleted file mode 100644 index 77543a974..000000000 --- a/sound/songs/se_ball_click.s +++ /dev/null @@ -1,61 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_ball_click - .align 2 - .equ se_ball_click_grp, voicegroup129 - .equ se_ball_click_pri, 5 - .equ se_ball_click_rev, reverb_set+50 - -se_ball_click_1: @ 86BC7F0 - .byte KEYSH, 0x00 - .byte TEMPO, 0x9B - .byte VOICE, 0x03 - .byte XCMD, 0x08 - .byte GsM2 - .byte v009 - .byte GsM2 - .byte VOL, 0x64 - .byte BEND, 0x40 - .byte N02 - .byte Bn3 - .byte v120 - .byte W03 - .byte W03 - .byte W02 - .byte En4 - .byte v127 - .byte W01 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -se_ball_click_2: @ 86BC80D - .byte KEYSH, 0x00 - .byte VOICE, 0x7E - .byte VOL, 0x64 - .byte W03 - .byte W01 - .byte N01 - .byte Cn2 - .byte v120 - .byte W02 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@ *************************************** - .align 2 -se_ball_click: @ 86BC820 - .byte 2 - .byte 0 - .byte se_ball_click_pri - .byte se_ball_click_rev - .word se_ball_click_grp - - .word se_ball_click_1 - .word se_ball_click_2 diff --git a/sound/songs/se_card_flip.s b/sound/songs/se_card_flip.s deleted file mode 100644 index 4c51aca35..000000000 --- a/sound/songs/se_card_flip.s +++ /dev/null @@ -1,41 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_card_flip - .align 2 - .equ se_card_flip_grp, voicegroup129 - .equ se_card_flip_pri, 5 - .equ se_card_flip_rev, reverb_set+50 - -se_card_flip_1: @ 86BC680 - .byte KEYSH, 0x00 - .byte TEMPO, 0x5B - .byte VOICE, 0x7D - .byte XCMD, 0x08 - .byte GsM2 - .byte v009 - .byte GsM2 - .byte PAN, 0x40 - .byte VOL, 0x7F - .byte BEND, 0x42 - .byte N01 - .byte Cn4 - .byte v127 - .byte W03 - .byte VOICE, 0x7C - .byte N01 - .byte Cn5 - .byte v064 - .byte W21 - .byte W24 - .byte FINE - -@ *************************************** - .align 2 -se_card_flip: @ 86BC6A0 - .byte 1 - .byte 0 - .byte se_card_flip_pri - .byte se_card_flip_rev - .word se_card_flip_grp - - .word se_card_flip_1 diff --git a/sound/songs/se_card_flipping.s b/sound/songs/se_card_flipping.s deleted file mode 100644 index e73e1b65f..000000000 --- a/sound/songs/se_card_flipping.s +++ /dev/null @@ -1,53 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_card_flipping - .align 2 - .equ se_card_flipping_grp, voicegroup129 - .equ se_card_flipping_pri, 5 - .equ se_card_flipping_rev, reverb_set+50 - -se_card_flipping_1: @ 86BC6AC - .byte KEYSH, 0x00 - .byte TEMPO, 0x5B - .byte VOICE, 0x7D - .byte XCMD, 0x08 - .byte GsM2 - .byte v009 - .byte GsM2 - .byte PAN, 0x40 - .byte VOL, 0x10 - .byte BEND, 0x42 - .byte N24 - .byte Gn5 - .byte v080 - .byte W03 - .byte VOL, 0x20 - .byte W03 - .byte Cn2 - .byte W03 - .byte En3 - .byte W03 - .byte Gs4 - .byte W03 - .byte Cn6 - .byte W03 - .byte En7 - .byte W03 - .byte Gn8 - .byte W03 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte FINE - -@ *************************************** - .align 2 -se_card_flipping: @ 86BC6D8 - .byte 1 - .byte 0 - .byte se_card_flipping_pri - .byte se_card_flipping_rev - .word se_card_flipping_grp - - .word se_card_flipping_1 diff --git a/sound/songs/se_card_open.s b/sound/songs/se_card_open.s deleted file mode 100644 index 4f453687c..000000000 --- a/sound/songs/se_card_open.s +++ /dev/null @@ -1,116 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_card_open - .align 2 - .equ se_card_open_grp, voicegroup129 - .equ se_card_open_pri, 5 - .equ se_card_open_rev, reverb_set+50 - -se_card_open_1: @ 86BC6E4 - .byte KEYSH, 0x00 - .byte TEMPO, 0x57 - .byte VOICE, 0x2E - .byte XCMD, 0x08 - .byte GsM2 - .byte v009 - .byte GsM2 - .byte VOL, 0x70 - .byte PAN, 0x40 - .byte VOL, 0x70 - .byte PAN, 0x40 - .byte BEND, 0x40 - .byte N03 - .byte An5 - .byte v112 - .byte W03 - .byte VOL, 0x40 - .byte N03 - .byte Bn5 - .byte W03 - .byte VOL, 0x70 - .byte PAN, 0x10 - .byte N06 - .byte En6 - .byte W03 - .byte VOL, 0x40 - .byte W03 - .byte En7 - .byte PAN, 0x70 - .byte N06 - .byte En6 - .byte v040 - .byte W03 - .byte VOL, 0x40 - .byte W03 - .byte PAN, 0x10 - .byte VOL, 0x61 - .byte N06 - .byte En6 - .byte v032 - .byte W03 - .byte VOL, 0x40 - .byte W03 - .byte PAN, 0x70 - .byte VOL, 0x60 - .byte N06 - .byte En6 - .byte v024 - .byte W03 - .byte VOL, 0x40 - .byte W03 - .byte PAN, 0x10 - .byte VOL, 0x50 - .byte N06 - .byte En6 - .byte v016 - .byte W03 - .byte VOL, 0x40 - .byte W03 - .byte PAN, 0x70 - .byte VOL, 0x50 - .byte N06 - .byte En6 - .byte v012 - .byte W03 - .byte VOL, 0x30 - .byte W03 - .byte N06 - .byte En6 - .byte v008 - .byte W03 - .byte VOL, 0x02 - .byte W03 - .byte W24 - .byte W24 - .byte W24 - .byte FINE - -se_card_open_2: @ 86BC74D - .byte KEYSH, 0x00 - .byte VOICE, 0x7C - .byte PAN, 0x40 - .byte VOL, 0x40 - .byte N03 - .byte Cn5 - .byte v092 - .byte W06 - .byte Cn5 - .byte v032 - .byte W18 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte FINE - -@ *************************************** - .align 2 -se_card_open: @ 86BC764 - .byte 2 - .byte 0 - .byte se_card_open_pri - .byte se_card_open_rev - .word se_card_open_grp - - .word se_card_open_1 - .word se_card_open_2 diff --git a/sound/songs/se_deoxys_move.s b/sound/songs/se_deoxys_move.s deleted file mode 100644 index a9cdd9744..000000000 --- a/sound/songs/se_deoxys_move.s +++ /dev/null @@ -1,207 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_deoxys_move - .align 2 - .equ se_deoxys_move_grp, voicegroup129 - .equ se_deoxys_move_pri, 5 - .equ se_deoxys_move_rev, reverb_set+50 - -se_deoxys_move_1: @ 86BCA34 - .byte KEYSH, 0x00 - .byte TEMPO, 0x83 - .byte VOICE, 0x7B - .byte XCMD, 0x08 - .byte GsM2 - .byte v009 - .byte GsM2 - .byte PAN, 0x40 - .byte VOL, 0x28 - .byte BEND, 0x42 - .byte N02 - .byte Cn2 - .byte v120 - .byte W08 - .byte N04 - .byte Cn5 - .byte W16 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte FINE - -se_deoxys_move_2: @ 86BCA54 - .byte KEYSH, 0x00 - .byte VOICE, 0x1F - .byte LFOS, 0x2C - .byte BENDR, 0x0C - .byte VOL, 0x50 - .byte PAN, 0x40 - .byte BEND, 0x00 - .byte TIE - .byte En4 - .byte v032 - .byte W24 - .byte W04 - .byte BEND, 0x09 - .byte W02 - .byte DnM1 - .byte W02 - .byte Cs0 - .byte W02 - .byte Gs0 - .byte W02 - .byte Fn1 - .byte W02 - .byte As1 - .byte W02 - .byte Gn2 - .byte W02 - .byte Dn3 - .byte W02 - .byte Gs4 - .byte W02 - .byte Ds5 - .byte W02 - .byte Cn6 - .byte W02 - .byte Gn6 - .byte W02 - .byte En7 - .byte W02 - .byte Cn8 - .byte W02 - .byte Gn8 - .byte W16 - .byte W24 - .byte W24 - .byte VOL, 0x46 - .byte W04 - .byte Fs3 - .byte W06 - .byte Cn3 - .byte W06 - .byte Gn2 - .byte W08 - .byte Cs2 - .byte W06 - .byte Gs1 - .byte W06 - .byte En1 - .byte W06 - .byte Bn0 - .byte W06 - .byte Fs0 - .byte W04 - .byte Cn0 - .byte W02 - .byte GsM1 - .byte W02 - .byte DsM1 - .byte W04 - .byte AsM2 - .byte W06 - .byte CnM2 - .byte W06 - .byte EOT - .byte FINE - -se_deoxys_move_3: @ 86BCAA7 - .byte KEYSH, 0x00 - .byte VOICE, 0x32 - .byte VOL, 0x45 - .byte PAN, 0x00 - .byte W24 - .byte Gn8 - .byte N01 - .byte Fs4 - .byte v064 - .byte W06 - .byte Gs4 - .byte W03 - .byte PAN, 0x00 - .byte W07 - .byte N01 - .byte En5 - .byte W05 - .byte Fs5 - .byte W03 - .byte PAN, 0x7F - .byte W10 - .byte N01 - .byte Dn5 - .byte W03 - .byte Cn5 - .byte W07 - .byte PAN, 0x00 - .byte W04 - .byte N01 - .byte Fs3 - .byte W03 - .byte Gs3 - .byte W09 - .byte PAN, 0x7F - .byte W04 - .byte N01 - .byte Bn4 - .byte W04 - .byte Dn5 - .byte W04 - .byte PAN, 0x00 - .byte W09 - .byte N01 - .byte Fs5 - .byte W09 - .byte Cs5 - .byte W06 - .byte PAN, 0x7F - .byte W02 - .byte N01 - .byte Cs4 - .byte v036 - .byte W02 - .byte As3 - .byte W08 - .byte Fs3 - .byte W03 - .byte Gs3 - .byte W09 - .byte PAN, 0x00 - .byte W03 - .byte N01 - .byte Dn5 - .byte v028 - .byte W03 - .byte Cn5 - .byte W06 - .byte Fs4 - .byte W03 - .byte Cn4 - .byte W04 - .byte Gn3 - .byte W05 - .byte PAN, 0x7F - .byte W06 - .byte N01 - .byte Gn4 - .byte v020 - .byte W02 - .byte An4 - .byte W16 - .byte FINE - -@ *************************************** - .align 2 -se_deoxys_move: @ 86BCB08 - .byte 3 - .byte 0 - .byte se_deoxys_move_pri - .byte se_deoxys_move_rev - .word se_deoxys_move_grp - - .word se_deoxys_move_1 - .word se_deoxys_move_2 - .word se_deoxys_move_3 diff --git a/sound/songs/se_dex_page.s b/sound/songs/se_dex_page.s deleted file mode 100644 index 884f0d12a..000000000 --- a/sound/songs/se_dex_page.s +++ /dev/null @@ -1,54 +0,0 @@ - .include "MPlayDef.s" - - .equ se_dex_page_grp, voicegroup127 - .equ se_dex_page_pri, 5 - .equ se_dex_page_rev, reverb_set+50 - .equ se_dex_page_mvl, 127 - .equ se_dex_page_key, 0 - .equ se_dex_page_tbs, 1 - .equ se_dex_page_exg, 0 - .equ se_dex_page_cmp, 1 - - .section .rodata - .global se_dex_page - .align 2 - -@********************** Track 1 **********************@ - -se_dex_page_1: - .byte KEYSH , se_dex_page_key+0 - .byte TEMPO , 100*se_dex_page_tbs/2 - .byte VOICE , 4 - .byte BENDR , 12 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte VOL , 90*se_dex_page_mvl/mxv - .byte BEND , c_v+4 - .byte N01 , Cn5 , v064 - .byte W01 - .byte Cn5 , v020 - .byte W01 - .byte Cn5 , v064 - .byte W01 - .byte Cn5 , v020 - .byte W01 - .byte Cn6 , v064 - .byte W02 - .byte Cn6 , v020 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_dex_page: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_dex_page_pri @ Priority - .byte se_dex_page_rev @ Reverb. - - .word se_dex_page_grp - - .word se_dex_page_1 - - .end diff --git a/sound/songs/se_dex_scroll.s b/sound/songs/se_dex_scroll.s deleted file mode 100644 index 6c7ad7746..000000000 --- a/sound/songs/se_dex_scroll.s +++ /dev/null @@ -1,46 +0,0 @@ - .include "MPlayDef.s" - - .equ se_dex_scroll_grp, voicegroup127 - .equ se_dex_scroll_pri, 5 - .equ se_dex_scroll_rev, reverb_set+50 - .equ se_dex_scroll_mvl, 127 - .equ se_dex_scroll_key, 0 - .equ se_dex_scroll_tbs, 1 - .equ se_dex_scroll_exg, 0 - .equ se_dex_scroll_cmp, 1 - - .section .rodata - .global se_dex_scroll - .align 2 - -@********************** Track 1 **********************@ - -se_dex_scroll_1: - .byte KEYSH , se_dex_scroll_key+0 - .byte TEMPO , 100*se_dex_scroll_tbs/2 - .byte VOICE , 4 - .byte BENDR , 12 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte VOL , 40*se_dex_scroll_mvl/mxv - .byte BEND , c_v+4 - .byte N01 , Gn4 , v127 - .byte W01 - .byte Gn4 , v020 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_dex_scroll: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_dex_scroll_pri @ Priority - .byte se_dex_scroll_rev @ Reverb. - - .word se_dex_scroll_grp - - .word se_dex_scroll_1 - - .end diff --git a/sound/songs/se_help_close.s b/sound/songs/se_help_close.s deleted file mode 100644 index 81692e622..000000000 --- a/sound/songs/se_help_close.s +++ /dev/null @@ -1,95 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_help_close - .align 2 - .equ se_help_close_grp, voicegroup129 - .equ se_help_close_pri, 5 - .equ se_help_close_rev, reverb_set+50 - -se_help_close_1: @ 86BC980 - .byte KEYSH, 0x00 - .byte TEMPO, 0xD2 - .byte VOICE, 0x18 - .byte LFOS, 0x2C - .byte BENDR, 0x0C - .byte VOL, 0x5F - .byte PAN, 0x70 - .byte N04 - .byte Dn5 - .byte v092 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Dn5 - .byte v032 - .byte W06 - .byte PAN, 0x60 - .byte N04 - .byte An4 - .byte v096 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte An4 - .byte v032 - .byte W06 - .byte PAN, 0x60 - .byte N04 - .byte Fs4 - .byte v092 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Fs4 - .byte v032 - .byte W06 - .byte PAN, 0x50 - .byte N04 - .byte En4 - .byte v092 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte En4 - .byte v032 - .byte W06 - .byte PAN, 0x19 - .byte N04 - .byte Dn4 - .byte v096 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Dn4 - .byte v032 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Dn4 - .byte v016 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Dn4 - .byte v012 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Dn4 - .byte v004 - .byte W18 - .byte FINE - -@ *************************************** - .align 2 -se_help_close: @ 86BC9E0 - .byte 1 - .byte 0 - .byte se_help_close_pri - .byte se_help_close_rev - .word se_help_close_grp - - .word se_help_close_1 diff --git a/sound/songs/se_help_error.s b/sound/songs/se_help_error.s deleted file mode 100644 index c3a78dbea..000000000 --- a/sound/songs/se_help_error.s +++ /dev/null @@ -1,64 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_help_error - .align 2 - .equ se_help_error_grp, voicegroup129 - .equ se_help_error_pri, 5 - .equ se_help_error_rev, reverb_set+50 - -se_help_error_1: @ 86BC9EC - .byte KEYSH, 0x00 - .byte TEMPO, 0xD2 - .byte VOICE, 0x18 - .byte LFOS, 0x2C - .byte BENDR, 0x0C - .byte PAN, 0x40 - .byte VOL, 0x60 - .byte N04 - .byte Dn4 - .byte v120 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Dn4 - .byte v032 - .byte W06 - .byte PAN, 0x3F - .byte N04 - .byte Fs4 - .byte v096 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Fs4 - .byte v032 - .byte W06 - .byte VOICE, 0x5C - .byte PAN, 0x40 - .byte VOL, 0x7D - .byte N04 - .byte An1 - .byte v112 - .byte W10 - .byte MOD, 0x08 - .byte W02 - .byte N06 - .byte An1 - .byte v088 - .byte W06 - .byte An1 - .byte v024 - .byte W06 - .byte MOD, 0x00 - .byte FINE - -@ *************************************** - .align 2 -se_help_error: @ 86BCA28 - .byte 1 - .byte 0 - .byte se_help_error_pri - .byte se_help_error_rev - .word se_help_error_grp - - .word se_help_error_1 diff --git a/sound/songs/se_help_open.s b/sound/songs/se_help_open.s deleted file mode 100644 index a3a6b91af..000000000 --- a/sound/songs/se_help_open.s +++ /dev/null @@ -1,97 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_help_open - .align 2 - .equ se_help_open_grp, voicegroup129 - .equ se_help_open_pri, 5 - .equ se_help_open_rev, reverb_set+50 - -se_help_open_1: @ 86BC910 - .byte KEYSH, 0x00 - .byte TEMPO, 0xD2 - .byte VOICE, 0x18 - .byte LFOS, 0x2C - .byte BENDR, 0x0C - .byte VOL, 0x60 - .byte PAN, 0x10 - .byte N04 - .byte Dn4 - .byte v096 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Dn4 - .byte v032 - .byte W06 - .byte PAN, 0x20 - .byte N04 - .byte Fs4 - .byte v096 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Fs4 - .byte v032 - .byte W06 - .byte PAN, 0x20 - .byte N04 - .byte An4 - .byte v096 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte An4 - .byte v032 - .byte W06 - .byte PAN, 0x30 - .byte N04 - .byte Cs5 - .byte v096 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Cs5 - .byte v032 - .byte W06 - .byte PAN, 0x60 - .byte N04 - .byte Dn5 - .byte v076 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Dn5 - .byte v032 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Dn5 - .byte v024 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Dn5 - .byte v016 - .byte W06 - .byte PAN, 0x7F - .byte N04 - .byte Dn5 - .byte v008 - .byte W06 - .byte PAN, 0x00 - .byte N04 - .byte Dn5 - .byte v004 - .byte W18 - .byte FINE - -@ *************************************** - .align 2 -se_help_open: @ 86BC974 - .byte 1 - .byte 0 - .byte se_help_open_pri - .byte se_help_open_rev - .word se_help_open_grp - - .word se_help_open_1 diff --git a/sound/songs/se_m_absorb.s b/sound/songs/se_m_absorb.s deleted file mode 100644 index 35213fdaa..000000000 --- a/sound/songs/se_m_absorb.s +++ /dev/null @@ -1,73 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_absorb_grp, voicegroup128 - .equ se_m_absorb_pri, 4 - .equ se_m_absorb_rev, reverb_set+50 - .equ se_m_absorb_mvl, 127 - .equ se_m_absorb_key, 0 - .equ se_m_absorb_tbs, 1 - .equ se_m_absorb_exg, 0 - .equ se_m_absorb_cmp, 1 - - .section .rodata - .global se_m_absorb - .align 2 - -@********************** Track 1 **********************@ - -se_m_absorb_1: - .byte KEYSH , se_m_absorb_key+0 - .byte TEMPO , 150*se_m_absorb_tbs/2 - .byte VOICE , 24 - .byte VOL , 110*se_m_absorb_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N01 , Cn6 , v127 - .byte W01 - .byte Gn6 , v112 - .byte W01 - .byte VOICE , 38 - .byte VOL , 58*se_m_absorb_mvl/mxv - .byte N08 , Gn4 - .byte W01 - .byte VOL , 68*se_m_absorb_mvl/mxv - .byte PAN , c_v+8 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 75*se_m_absorb_mvl/mxv - .byte PAN , c_v-8 - .byte BEND , c_v-48 - .byte W02 - .byte VOL , 83*se_m_absorb_mvl/mxv - .byte PAN , c_v+8 - .byte BEND , c_v-18 - .byte W01 - .byte VOL , 90*se_m_absorb_mvl/mxv - .byte PAN , c_v-8 - .byte BEND , c_v+10 - .byte W01 - .byte VOL , 101*se_m_absorb_mvl/mxv - .byte PAN , c_v+9 - .byte BEND , c_v+39 - .byte W01 - .byte VOL , 110*se_m_absorb_mvl/mxv - .byte PAN , c_v-8 - .byte BEND , c_v+63 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_absorb: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_absorb_pri @ Priority - .byte se_m_absorb_rev @ Reverb. - - .word se_m_absorb_grp - - .word se_m_absorb_1 - - .end diff --git a/sound/songs/se_m_absorb_2.s b/sound/songs/se_m_absorb_2.s deleted file mode 100644 index 3f9df6dc4..000000000 --- a/sound/songs/se_m_absorb_2.s +++ /dev/null @@ -1,155 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_absorb_2_grp, voicegroup128 - .equ se_m_absorb_2_pri, 4 - .equ se_m_absorb_2_rev, reverb_set+50 - .equ se_m_absorb_2_mvl, 127 - .equ se_m_absorb_2_key, 0 - .equ se_m_absorb_2_tbs, 1 - .equ se_m_absorb_2_exg, 0 - .equ se_m_absorb_2_cmp, 1 - - .section .rodata - .global se_m_absorb_2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_absorb_2_1: - .byte KEYSH , se_m_absorb_2_key+0 - .byte TEMPO , 150*se_m_absorb_2_tbs/2 - .byte VOICE , 46 - .byte VOL , 110*se_m_absorb_2_mvl/mxv - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte BEND , c_v+15 - .byte W01 - .byte N02 , Dn6 , v112 - .byte W02 - .byte Cs6 - .byte W03 - .byte PAN , c_v+8 - .byte N02 , An5 - .byte W02 - .byte Fs5 - .byte W01 - .byte W01 - .byte Dn5 - .byte W02 - .byte PAN , c_v-7 - .byte W01 - .byte N02 , Dn5 , v104 - .byte W02 - .byte Cs5 , v100 - .byte W03 - .byte PAN , c_v+0 - .byte N02 , An4 , v096 - .byte W02 - .byte Fs4 , v092 - .byte W01 - .byte W01 - .byte Dn4 , v088 - .byte W02 - .byte PAN , c_v+15 - .byte W01 - .byte N02 , Dn6 - .byte W02 - .byte Cs6 , v084 - .byte W03 - .byte An5 , v080 - .byte W02 - .byte Fs5 , v076 - .byte W01 - .byte W01 - .byte Dn5 , v072 - .byte W02 - .byte PAN , c_v-16 - .byte W01 - .byte N02 , Dn6 , v068 - .byte W02 - .byte Cs6 , v064 - .byte W03 - .byte An5 , v060 - .byte W02 - .byte Fs5 , v056 - .byte W01 - .byte W01 - .byte Dn5 , v052 - .byte W02 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_absorb_2_2: - .byte KEYSH , se_m_absorb_2_key+0 - .byte VOICE , 53 - .byte BENDR , 2 - .byte VOL , 43*se_m_absorb_2_mvl/mxv - .byte BEND , c_v+15 - .byte N02 , An6 , v112 - .byte W02 - .byte Fs6 - .byte W01 - .byte W01 - .byte Dn6 - .byte W02 - .byte W01 - .byte Cs6 - .byte W02 - .byte An5 - .byte W03 - .byte N02 - .byte W02 - .byte Fs5 , v104 - .byte W01 - .byte W01 - .byte Dn5 , v100 - .byte W02 - .byte W01 - .byte Cs5 , v096 - .byte W02 - .byte An4 , v092 - .byte W03 - .byte An6 , v088 - .byte W02 - .byte Fs6 , v084 - .byte W01 - .byte W01 - .byte Dn6 , v080 - .byte W02 - .byte W01 - .byte Cs6 , v076 - .byte W02 - .byte An5 , v072 - .byte W03 - .byte An6 , v068 - .byte W02 - .byte Fs6 , v064 - .byte W01 - .byte W01 - .byte Dn6 , v060 - .byte W02 - .byte W01 - .byte Cs6 , v056 - .byte W02 - .byte An5 , v052 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_absorb_2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_absorb_2_pri @ Priority - .byte se_m_absorb_2_rev @ Reverb. - - .word se_m_absorb_2_grp - - .word se_m_absorb_2_1 - .word se_m_absorb_2_2 - - .end diff --git a/sound/songs/se_m_acid_armor.s b/sound/songs/se_m_acid_armor.s deleted file mode 100644 index c7f350a9b..000000000 --- a/sound/songs/se_m_acid_armor.s +++ /dev/null @@ -1,202 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_acid_armor_grp, voicegroup128 - .equ se_m_acid_armor_pri, 4 - .equ se_m_acid_armor_rev, reverb_set+50 - .equ se_m_acid_armor_mvl, 127 - .equ se_m_acid_armor_key, 0 - .equ se_m_acid_armor_tbs, 1 - .equ se_m_acid_armor_exg, 0 - .equ se_m_acid_armor_cmp, 1 - - .section .rodata - .global se_m_acid_armor - .align 2 - -@********************** Track 1 **********************@ - -se_m_acid_armor_1: - .byte KEYSH , se_m_acid_armor_key+0 - .byte TEMPO , 150*se_m_acid_armor_tbs/2 - .byte VOICE , 31 - .byte VOL , 110*se_m_acid_armor_mvl/mxv - .byte BENDR , 24 - .byte PAN , c_v+0 - .byte BEND , c_v-37 - .byte N06 , Gn0 , v127 - .byte W01 - .byte BEND , c_v-16 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+27 - .byte W01 - .byte c_v+46 - .byte W02 - .byte VOICE , 23 - .byte PAN , c_v+11 - .byte N01 , Cn1 - .byte W01 - .byte PAN , c_v-10 - .byte N01 , Cn2 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v+6 - .byte BEND , c_v-37 - .byte N06 , Dn1 - .byte W01 - .byte BEND , c_v-16 - .byte W01 - .byte c_v+0 - .byte W02 - .byte c_v+27 - .byte W01 - .byte c_v+46 - .byte W01 - .byte VOICE , 23 - .byte PAN , c_v-1 - .byte N01 , Fn1 - .byte W01 - .byte PAN , c_v-10 - .byte N01 , Fn2 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v+0 - .byte BEND , c_v-37 - .byte N02 , Gn0 - .byte W02 - .byte BEND , c_v-16 - .byte W01 - .byte c_v+0 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v+27 - .byte N02 - .byte W01 - .byte BEND , c_v+46 - .byte W01 - .byte VOICE , 23 - .byte PAN , c_v+10 - .byte N01 , Cn1 - .byte W02 - .byte PAN , c_v-9 - .byte N01 , Cn2 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v+0 - .byte BEND , c_v-37 - .byte N06 , Dn1 - .byte W01 - .byte BEND , c_v-16 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+27 - .byte W02 - .byte c_v+46 - .byte W01 - .byte VOICE , 23 - .byte PAN , c_v+5 - .byte N01 , Cn1 - .byte W01 - .byte PAN , c_v-8 - .byte N01 , Cn2 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v+0 - .byte BEND , c_v-37 - .byte N06 , Gn0 , v112 - .byte W01 - .byte BEND , c_v-16 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v+27 - .byte W01 - .byte c_v+46 - .byte W01 - .byte VOICE , 23 - .byte PAN , c_v+11 - .byte N01 , Cn1 , v100 - .byte W01 - .byte PAN , c_v-10 - .byte N01 , Cn2 , v096 - .byte W02 - .byte VOICE , 31 - .byte PAN , c_v+6 - .byte BEND , c_v-37 - .byte N06 , Dn1 - .byte W01 - .byte BEND , c_v-16 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+27 - .byte W01 - .byte c_v+46 - .byte W02 - .byte VOICE , 23 - .byte PAN , c_v-1 - .byte N01 , Fn1 , v084 - .byte W01 - .byte PAN , c_v-10 - .byte N01 , Fn2 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v+0 - .byte BEND , c_v-37 - .byte N02 , Gn0 , v080 - .byte W01 - .byte BEND , c_v-16 - .byte W01 - .byte c_v+0 - .byte W02 - .byte PAN , c_v+5 - .byte BEND , c_v+27 - .byte N02 , Gn0 , v072 - .byte W01 - .byte BEND , c_v+46 - .byte W01 - .byte VOICE , 23 - .byte PAN , c_v+10 - .byte N01 , Cn1 , v068 - .byte W01 - .byte PAN , c_v-9 - .byte N01 , Cn2 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v+0 - .byte BEND , c_v-37 - .byte N06 , Dn1 , v064 - .byte W02 - .byte BEND , c_v-16 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+27 - .byte W01 - .byte c_v+46 - .byte W01 - .byte VOICE , 23 - .byte PAN , c_v+5 - .byte N01 , Cn1 , v056 - .byte W02 - .byte PAN , c_v-8 - .byte N01 , Cn2 , v052 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_acid_armor: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_acid_armor_pri @ Priority - .byte se_m_acid_armor_rev @ Reverb. - - .word se_m_acid_armor_grp - - .word se_m_acid_armor_1 - - .end diff --git a/sound/songs/se_m_attract.s b/sound/songs/se_m_attract.s deleted file mode 100644 index 8e18c16dc..000000000 --- a/sound/songs/se_m_attract.s +++ /dev/null @@ -1,126 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_attract_grp, voicegroup128 - .equ se_m_attract_pri, 4 - .equ se_m_attract_rev, reverb_set+50 - .equ se_m_attract_mvl, 127 - .equ se_m_attract_key, 0 - .equ se_m_attract_tbs, 1 - .equ se_m_attract_exg, 0 - .equ se_m_attract_cmp, 1 - - .section .rodata - .global se_m_attract - .align 2 - -@********************** Track 1 **********************@ - -se_m_attract_1: - .byte KEYSH , se_m_attract_key+0 - .byte TEMPO , 210*se_m_attract_tbs/2 - .byte VOICE , 46 - .byte VOL , 95*se_m_attract_mvl/mxv - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte BEND , c_v+15 - .byte W03 - .byte N06 , Cn6 , v116 - .byte W03 - .byte W03 - .byte En6 , v108 - .byte W03 - .byte W03 - .byte Cs5 , v100 - .byte W03 - .byte W03 - .byte Gs5 , v088 - .byte W03 - .byte W03 - .byte PAN , c_v-4 - .byte N06 , Cs6 , v080 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , Dn6 , v072 - .byte W03 - .byte W03 - .byte PAN , c_v+4 - .byte N06 , Fs6 , v060 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , Ds5 , v052 - .byte W03 - .byte W03 - .byte PAN , c_v-4 - .byte N06 , As5 , v040 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte W03 - .byte W03 - .byte c_v+4 - .byte W03 - .byte W03 - .byte c_v+0 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_attract_2: - .byte KEYSH , se_m_attract_key+0 - .byte VOICE , 53 - .byte BENDR , 2 - .byte VOL , 43*se_m_attract_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+15 - .byte N06 , Cn5 , v120 - .byte W03 - .byte W03 - .byte Gn5 , v112 - .byte W03 - .byte W03 - .byte Cn6 , v104 - .byte W03 - .byte W03 - .byte Cs6 , v092 - .byte W03 - .byte W03 - .byte Fn6 , v084 - .byte W03 - .byte W03 - .byte Dn5 , v076 - .byte W03 - .byte W03 - .byte An5 , v064 - .byte W03 - .byte W03 - .byte Dn6 , v056 - .byte W03 - .byte W03 - .byte Ds6 , v048 - .byte W03 - .byte W03 - .byte Gn6 , v036 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_attract: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_attract_pri @ Priority - .byte se_m_attract_rev @ Reverb. - - .word se_m_attract_grp - - .word se_m_attract_1 - .word se_m_attract_2 - - .end diff --git a/sound/songs/se_m_attract2.s b/sound/songs/se_m_attract2.s deleted file mode 100644 index 7d3d6f3c5..000000000 --- a/sound/songs/se_m_attract2.s +++ /dev/null @@ -1,127 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_attract2_grp, voicegroup128 - .equ se_m_attract2_pri, 4 - .equ se_m_attract2_rev, reverb_set+50 - .equ se_m_attract2_mvl, 127 - .equ se_m_attract2_key, 0 - .equ se_m_attract2_tbs, 1 - .equ se_m_attract2_exg, 0 - .equ se_m_attract2_cmp, 1 - - .section .rodata - .global se_m_attract2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_attract2_1: - .byte KEYSH , se_m_attract2_key+0 - .byte TEMPO , 150*se_m_attract2_tbs/2 - .byte VOICE , 61 - .byte BENDR , 44 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_attract2_mvl/mxv - .byte MOD , 30 - .byte BEND , c_v+2 - .byte N54 , Dn4 , v080 - .byte W12 - .byte PAN , c_v-4 - .byte W12 - .byte c_v-10 - .byte W12 - .byte c_v-4 - .byte W12 - .byte c_v+0 - .byte W06 - .byte N54 , Cn4 - .byte W06 - .byte PAN , c_v+6 - .byte W12 - .byte c_v+9 - .byte W12 - .byte c_v+5 - .byte W12 - .byte c_v+0 - .byte W12 - .byte c_v-4 - .byte N54 , Dn4 - .byte W12 - .byte PAN , c_v-10 - .byte W12 - .byte c_v-4 - .byte W12 - .byte c_v+0 - .byte W12 - .byte c_v+6 - .byte W06 - .byte N54 , Cn4 - .byte W06 - .byte PAN , c_v+9 - .byte W12 - .byte c_v+5 - .byte W12 - .byte c_v+0 - .byte W12 - .byte c_v-4 - .byte W12 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_attract2_2: - .byte KEYSH , se_m_attract2_key+0 - .byte VOICE , 62 - .byte BENDR , 44 - .byte VOL , 110*se_m_attract2_mvl/mxv - .byte MOD , 30 - .byte PAN , c_v+1 - .byte BEND , c_v+1 - .byte N24 , Dn4 , v040 - .byte W24 - .byte W02 - .byte PAN , c_v+47 - .byte N24 , Dn4 , v032 - .byte W22 - .byte W06 - .byte PAN , c_v+0 - .byte N24 , Cn4 , v040 - .byte W18 - .byte W08 - .byte PAN , c_v-49 - .byte N24 , Cn4 , v032 - .byte W16 - .byte W12 - .byte PAN , c_v+1 - .byte N24 , Dn4 , v040 - .byte W12 - .byte W14 - .byte PAN , c_v+47 - .byte N24 , Dn4 , v032 - .byte W10 - .byte W18 - .byte PAN , c_v+0 - .byte N24 , Cn4 , v040 - .byte W06 - .byte W20 - .byte PAN , c_v-48 - .byte N24 , Cn4 , v032 - .byte W04 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_attract2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_attract2_pri @ Priority - .byte se_m_attract2_rev @ Reverb. - - .word se_m_attract2_grp - - .word se_m_attract2_1 - .word se_m_attract2_2 - - .end diff --git a/sound/songs/se_m_barrier.s b/sound/songs/se_m_barrier.s deleted file mode 100644 index 54d57700f..000000000 --- a/sound/songs/se_m_barrier.s +++ /dev/null @@ -1,276 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_barrier_grp, voicegroup128 - .equ se_m_barrier_pri, 4 - .equ se_m_barrier_rev, reverb_set+50 - .equ se_m_barrier_mvl, 127 - .equ se_m_barrier_key, 0 - .equ se_m_barrier_tbs, 1 - .equ se_m_barrier_exg, 0 - .equ se_m_barrier_cmp, 1 - - .section .rodata - .global se_m_barrier - .align 2 - -@********************** Track 1 **********************@ - -se_m_barrier_1: - .byte KEYSH , se_m_barrier_key+0 - .byte TEMPO , 150*se_m_barrier_tbs/2 - .byte VOICE , 19 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v+3 - .byte N06 , Cn6 , v088 - .byte W01 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-8 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-17 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-34 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-45 - .byte W02 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , Cn6 , v084 - .byte W01 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-47 - .byte W02 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v-1 - .byte N06 , Cn6 , v076 - .byte W01 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-21 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-48 - .byte W02 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v-1 - .byte N06 , Cn6 , v064 - .byte W01 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-21 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-48 - .byte W02 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v056 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-12 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v044 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-12 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v036 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Cn6 , v028 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 24*se_m_barrier_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 11*se_m_barrier_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_barrier_2: - .byte KEYSH , se_m_barrier_key+0 - .byte VOICE , 53 - .byte PAN , c_v+0 - .byte VOL , 95*se_m_barrier_mvl/mxv - .byte BEND , c_v-5 - .byte W02 - .byte N06 , An5 , v064 - .byte W02 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte W02 - .byte 56*se_m_barrier_mvl/mxv - .byte W01 - .byte 24*se_m_barrier_mvl/mxv - .byte W01 - .byte 95*se_m_barrier_mvl/mxv - .byte N06 , An5 , v056 - .byte W02 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte W02 -se_m_barrier_2_000: - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte W01 - .byte 24*se_m_barrier_mvl/mxv - .byte W01 - .byte 95*se_m_barrier_mvl/mxv - .byte N06 , An5 , v052 - .byte W02 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte W02 - .byte PEND - .byte PATT - .word se_m_barrier_2_000 - .byte VOL , 56*se_m_barrier_mvl/mxv - .byte W01 - .byte 24*se_m_barrier_mvl/mxv - .byte W01 - .byte 95*se_m_barrier_mvl/mxv - .byte N06 , An5 , v048 - .byte W02 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte W02 - .byte 56*se_m_barrier_mvl/mxv - .byte W01 - .byte 24*se_m_barrier_mvl/mxv - .byte W01 - .byte 95*se_m_barrier_mvl/mxv - .byte N06 , An5 , v044 - .byte W02 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte W02 - .byte 56*se_m_barrier_mvl/mxv - .byte W01 - .byte 24*se_m_barrier_mvl/mxv - .byte W01 - .byte 95*se_m_barrier_mvl/mxv - .byte N06 , An5 , v040 - .byte W02 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte W02 - .byte 56*se_m_barrier_mvl/mxv - .byte W01 - .byte 24*se_m_barrier_mvl/mxv - .byte W01 - .byte 95*se_m_barrier_mvl/mxv - .byte N06 , An5 , v036 - .byte W02 - .byte VOL , 88*se_m_barrier_mvl/mxv - .byte W02 - .byte 56*se_m_barrier_mvl/mxv - .byte W01 - .byte 24*se_m_barrier_mvl/mxv - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_barrier: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_barrier_pri @ Priority - .byte se_m_barrier_rev @ Reverb. - - .word se_m_barrier_grp - - .word se_m_barrier_1 - .word se_m_barrier_2 - - .end diff --git a/sound/songs/se_m_baton_pass.s b/sound/songs/se_m_baton_pass.s deleted file mode 100644 index 30027e5b6..000000000 --- a/sound/songs/se_m_baton_pass.s +++ /dev/null @@ -1,169 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_baton_pass_grp, voicegroup128 - .equ se_m_baton_pass_pri, 4 - .equ se_m_baton_pass_rev, reverb_set+50 - .equ se_m_baton_pass_mvl, 127 - .equ se_m_baton_pass_key, 0 - .equ se_m_baton_pass_tbs, 1 - .equ se_m_baton_pass_exg, 0 - .equ se_m_baton_pass_cmp, 1 - - .section .rodata - .global se_m_baton_pass - .align 2 - -@********************** Track 1 **********************@ - -se_m_baton_pass_1: - .byte KEYSH , se_m_baton_pass_key+0 - .byte VOICE , 19 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 12*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+49 - .byte N06 , Gn4 , v080 - .byte W01 - .byte VOL , 44*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+22 - .byte W01 - .byte VOL , 62*se_m_baton_pass_mvl/mxv - .byte PAN , c_v+8 - .byte VOL , 75*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+20 - .byte W01 - .byte VOL , 87*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+33 - .byte W01 - .byte VOL , 96*se_m_baton_pass_mvl/mxv - .byte PAN , c_v-7 - .byte VOL , 100*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+54 - .byte W01 - .byte c_v+63 - .byte W01 - .byte W02 - .byte PAN , c_v+0 - .byte N04 , Gn4 , v040 - .byte W01 - .byte W03 - .byte W03 - .byte VOICE , 45 - .byte MOD , 30 - .byte BENDR , 24 - .byte VOL , 54*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , Gn3 , v108 - .byte W01 - .byte VOL , 70*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+4 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 80*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+9 - .byte W01 - .byte VOL , 100*se_m_baton_pass_mvl/mxv - .byte BEND , c_v+16 - .byte W01 - .byte c_v+24 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+2 - .byte N06 , An3 , v100 - .byte W01 - .byte BEND , c_v+7 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v+12 - .byte W01 - .byte c_v+18 - .byte W01 - .byte c_v+27 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+4 - .byte N06 , Bn3 , v060 - .byte W01 - .byte BEND , c_v+9 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+14 - .byte W01 - .byte c_v+20 - .byte W01 - .byte c_v+29 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+6 - .byte N06 , Cn4 , v040 - .byte W01 - .byte BEND , c_v+11 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+15 - .byte W01 - .byte c_v+22 - .byte W01 - .byte c_v+31 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+9 - .byte N06 , Dn4 , v020 - .byte W01 - .byte BEND , c_v+14 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+18 - .byte W01 - .byte c_v+25 - .byte W01 - .byte c_v+34 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_baton_pass_2: - .byte KEYSH , se_m_baton_pass_key+0 - .byte VOICE , 57 - .byte VOL , 59*se_m_baton_pass_mvl/mxv - .byte N06 , Gs4 , v052 - .byte W01 - .byte VOL , 72*se_m_baton_pass_mvl/mxv - .byte W01 - .byte 90*se_m_baton_pass_mvl/mxv - .byte W01 - .byte 100*se_m_baton_pass_mvl/mxv - .byte W03 - .byte W02 - .byte N04 , Gs4 , v024 - .byte W01 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_baton_pass: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_baton_pass_pri @ Priority - .byte se_m_baton_pass_rev @ Reverb. - - .word se_m_baton_pass_grp - - .word se_m_baton_pass_1 - .word se_m_baton_pass_2 - - .end diff --git a/sound/songs/se_m_belly_drum.s b/sound/songs/se_m_belly_drum.s deleted file mode 100644 index 919c02b16..000000000 --- a/sound/songs/se_m_belly_drum.s +++ /dev/null @@ -1,72 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_belly_drum_grp, voicegroup128 - .equ se_m_belly_drum_pri, 4 - .equ se_m_belly_drum_rev, reverb_set+50 - .equ se_m_belly_drum_mvl, 127 - .equ se_m_belly_drum_key, 0 - .equ se_m_belly_drum_tbs, 1 - .equ se_m_belly_drum_exg, 0 - .equ se_m_belly_drum_cmp, 1 - - .section .rodata - .global se_m_belly_drum - .align 2 - -@********************** Track 1 **********************@ - -se_m_belly_drum_1: - .byte KEYSH , se_m_belly_drum_key+0 - .byte TEMPO , 150*se_m_belly_drum_tbs/2 - .byte VOICE , 6 - .byte BENDR , 12 - .byte VOL , 115*se_m_belly_drum_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N19 , An2 , v127 - .byte W01 - .byte BEND , c_v-6 - .byte W01 - .byte c_v-10 - .byte W01 - .byte c_v-14 - .byte W01 - .byte c_v-12 - .byte W02 - .byte c_v-14 - .byte W01 - .byte c_v-18 - .byte W01 - .byte VOL , 108*se_m_belly_drum_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte c_v-22 - .byte W01 - .byte VOL , 94*se_m_belly_drum_mvl/mxv - .byte W03 - .byte 78*se_m_belly_drum_mvl/mxv - .byte W01 - .byte 62*se_m_belly_drum_mvl/mxv - .byte W01 - .byte 40*se_m_belly_drum_mvl/mxv - .byte W01 - .byte 27*se_m_belly_drum_mvl/mxv - .byte W02 - .byte 12*se_m_belly_drum_mvl/mxv - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_belly_drum: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_belly_drum_pri @ Priority - .byte se_m_belly_drum_rev @ Reverb. - - .word se_m_belly_drum_grp - - .word se_m_belly_drum_1 - - .end diff --git a/sound/songs/se_m_bite.s b/sound/songs/se_m_bite.s deleted file mode 100644 index 3c51a8f2f..000000000 --- a/sound/songs/se_m_bite.s +++ /dev/null @@ -1,100 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_bite_grp, voicegroup128 - .equ se_m_bite_pri, 4 - .equ se_m_bite_rev, reverb_set+50 - .equ se_m_bite_mvl, 127 - .equ se_m_bite_key, 0 - .equ se_m_bite_tbs, 1 - .equ se_m_bite_exg, 0 - .equ se_m_bite_cmp, 1 - - .section .rodata - .global se_m_bite - .align 2 - -@********************** Track 1 **********************@ - -se_m_bite_1: - .byte KEYSH , se_m_bite_key+0 - .byte TEMPO , 220*se_m_bite_tbs/2 - .byte VOICE , 26 - .byte BENDR , 12 - .byte PAN , c_v+6 - .byte VOL , 110*se_m_bite_mvl/mxv - .byte BEND , c_v+0 - .byte N02 , Gn3 , v112 - .byte W02 - .byte Gs3 - .byte W01 - .byte PAN , c_v-7 - .byte W01 - .byte N02 , An3 - .byte W02 - .byte PAN , c_v+7 - .byte W02 - .byte c_v-8 - .byte W02 - .byte VOICE , 21 - .byte PAN , c_v+0 - .byte N01 , Cn5 , v116 - .byte W02 - .byte PAN , c_v+10 - .byte N01 , Cn4 , v108 - .byte W01 - .byte PAN , c_v-8 - .byte N01 , Gn4 , v104 - .byte W01 - .byte PAN , c_v+0 - .byte N01 , Gn3 , v096 - .byte W01 - .byte PAN , c_v+10 - .byte N01 , Cn4 , v088 - .byte W01 - .byte PAN , c_v-8 - .byte N01 , Cn3 , v080 - .byte W02 - .byte PAN , c_v+0 - .byte N01 , Gn3 , v072 - .byte W01 - .byte PAN , c_v+10 - .byte N01 , Gn2 , v064 - .byte W01 - .byte PAN , c_v-8 - .byte N01 , Cn3 , v056 - .byte W01 - .byte PAN , c_v+0 - .byte N01 , Gn2 , v048 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_bite_2: - .byte KEYSH , se_m_bite_key+0 - .byte VOICE , 27 - .byte VOL , 110*se_m_bite_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte W10 - .byte N01 , Gn2 , v040 - .byte W08 - .byte N01 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_bite: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_bite_pri @ Priority - .byte se_m_bite_rev @ Reverb. - - .word se_m_bite_grp - - .word se_m_bite_1 - .word se_m_bite_2 - - .end diff --git a/sound/songs/se_m_blizzard.s b/sound/songs/se_m_blizzard.s deleted file mode 100644 index 6bce3c987..000000000 --- a/sound/songs/se_m_blizzard.s +++ /dev/null @@ -1,103 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_blizzard_grp, voicegroup128 - .equ se_m_blizzard_pri, 4 - .equ se_m_blizzard_rev, reverb_set+50 - .equ se_m_blizzard_mvl, 127 - .equ se_m_blizzard_key, 0 - .equ se_m_blizzard_tbs, 1 - .equ se_m_blizzard_exg, 0 - .equ se_m_blizzard_cmp, 1 - - .section .rodata - .global se_m_blizzard - .align 2 - -@********************** Track 1 **********************@ - -se_m_blizzard_1: - .byte KEYSH , se_m_blizzard_key+0 - .byte TEMPO , 150*se_m_blizzard_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 64*se_m_blizzard_mvl/mxv - .byte BEND , c_v+0 - .byte N24 , Gn3 , v108 - .byte W03 - .byte VOL , 79*se_m_blizzard_mvl/mxv - .byte BEND , c_v+22 - .byte W02 - .byte c_v+8 - .byte W01 - .byte VOL , 84*se_m_blizzard_mvl/mxv - .byte PAN , c_v-4 - .byte W03 - .byte VOL , 91*se_m_blizzard_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 100*se_m_blizzard_mvl/mxv - .byte PAN , c_v-8 - .byte W03 - .byte VOL , 110*se_m_blizzard_mvl/mxv - .byte W03 - .byte PAN , c_v-12 - .byte W06 -se_m_blizzard_1_B1: - .byte PAN , c_v-17 - .byte BEND , c_v+0 - .byte N48 , Gn3 , v108 - .byte W03 - .byte BEND , c_v-7 - .byte W03 - .byte PAN , c_v-9 - .byte BEND , c_v-12 - .byte W03 - .byte c_v-20 - .byte W03 - .byte PAN , c_v-3 - .byte W03 - .byte c_v+6 - .byte BEND , c_v-13 - .byte W03 - .byte PAN , c_v+10 - .byte W03 - .byte BEND , c_v-6 - .byte W03 - .byte PAN , c_v+16 - .byte W03 - .byte BEND , c_v+6 - .byte W03 - .byte PAN , c_v+13 - .byte BEND , c_v+11 - .byte W03 - .byte c_v+20 - .byte W03 - .byte PAN , c_v+8 - .byte W03 - .byte c_v+0 - .byte BEND , c_v+12 - .byte W03 - .byte PAN , c_v-8 - .byte BEND , c_v+7 - .byte W03 - .byte PAN , c_v-11 - .byte W03 - .byte GOTO - .word se_m_blizzard_1_B1 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_blizzard: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_blizzard_pri @ Priority - .byte se_m_blizzard_rev @ Reverb. - - .word se_m_blizzard_grp - - .word se_m_blizzard_1 - - .end diff --git a/sound/songs/se_m_blizzard2.s b/sound/songs/se_m_blizzard2.s deleted file mode 100644 index 8c1518e63..000000000 --- a/sound/songs/se_m_blizzard2.s +++ /dev/null @@ -1,72 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_blizzard2_grp, voicegroup128 - .equ se_m_blizzard2_pri, 4 - .equ se_m_blizzard2_rev, reverb_set+50 - .equ se_m_blizzard2_mvl, 127 - .equ se_m_blizzard2_key, 0 - .equ se_m_blizzard2_tbs, 1 - .equ se_m_blizzard2_exg, 0 - .equ se_m_blizzard2_cmp, 1 - - .section .rodata - .global se_m_blizzard2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_blizzard2_1: - .byte KEYSH , se_m_blizzard2_key+0 - .byte TEMPO , 150*se_m_blizzard2_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_blizzard2_mvl/mxv - .byte BEND , c_v+0 - .byte N24 , Gn3 , v108 - .byte W02 - .byte PAN , c_v-19 - .byte W04 - .byte c_v+0 - .byte W01 - .byte VOL , 97*se_m_blizzard2_mvl/mxv - .byte W01 - .byte PAN , c_v+16 - .byte W01 - .byte VOL , 84*se_m_blizzard2_mvl/mxv - .byte W03 - .byte 76*se_m_blizzard2_mvl/mxv - .byte PAN , c_v+2 - .byte W02 - .byte VOL , 55*se_m_blizzard2_mvl/mxv - .byte PAN , c_v-8 - .byte W02 - .byte VOL , 39*se_m_blizzard2_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 25*se_m_blizzard2_mvl/mxv - .byte W01 - .byte PAN , c_v+8 - .byte W01 - .byte VOL , 13*se_m_blizzard2_mvl/mxv - .byte W03 - .byte 7*se_m_blizzard2_mvl/mxv - .byte PAN , c_v+0 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_blizzard2: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_blizzard2_pri @ Priority - .byte se_m_blizzard2_rev @ Reverb. - - .word se_m_blizzard2_grp - - .word se_m_blizzard2_1 - - .end diff --git a/sound/songs/se_m_bonemerang.s b/sound/songs/se_m_bonemerang.s deleted file mode 100644 index 11f035347..000000000 --- a/sound/songs/se_m_bonemerang.s +++ /dev/null @@ -1,57 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_bonemerang_grp, voicegroup128 - .equ se_m_bonemerang_pri, 4 - .equ se_m_bonemerang_rev, reverb_set+50 - .equ se_m_bonemerang_mvl, 127 - .equ se_m_bonemerang_key, 0 - .equ se_m_bonemerang_tbs, 1 - .equ se_m_bonemerang_exg, 0 - .equ se_m_bonemerang_cmp, 1 - - .section .rodata - .global se_m_bonemerang - .align 2 - -@********************** Track 1 **********************@ - -se_m_bonemerang_1: - .byte KEYSH , se_m_bonemerang_key+0 - .byte TEMPO , 150*se_m_bonemerang_tbs/2 - .byte VOICE , 24 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_bonemerang_mvl/mxv - .byte BEND , c_v+0 - .byte N01 , Cn5 , v127 - .byte W01 - .byte PAN , c_v+10 - .byte N01 , Cn6 - .byte W01 - .byte PAN , c_v+0 - .byte N01 , Cn5 - .byte W04 - .byte N01 - .byte W01 - .byte PAN , c_v-11 - .byte N01 , Cn6 - .byte W01 - .byte PAN , c_v+0 - .byte N01 , Cn5 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_bonemerang: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_bonemerang_pri @ Priority - .byte se_m_bonemerang_rev @ Reverb. - - .word se_m_bonemerang_grp - - .word se_m_bonemerang_1 - - .end diff --git a/sound/songs/se_m_brick_break.s b/sound/songs/se_m_brick_break.s deleted file mode 100644 index 08058089f..000000000 --- a/sound/songs/se_m_brick_break.s +++ /dev/null @@ -1,100 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_brick_break_grp, voicegroup128 - .equ se_m_brick_break_pri, 4 - .equ se_m_brick_break_rev, reverb_set+50 - .equ se_m_brick_break_mvl, 127 - .equ se_m_brick_break_key, 0 - .equ se_m_brick_break_tbs, 1 - .equ se_m_brick_break_exg, 0 - .equ se_m_brick_break_cmp, 1 - - .section .rodata - .global se_m_brick_break - .align 2 - -@********************** Track 1 **********************@ - -se_m_brick_break_1: - .byte KEYSH , se_m_brick_break_key+0 - .byte TEMPO , 150*se_m_brick_break_tbs/2 - .byte VOICE , 41 - .byte VOL , 110*se_m_brick_break_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Cn4 , v127 - .byte W01 - .byte N03 , Cn5 - .byte W01 - .byte PAN , c_v+5 - .byte W01 - .byte c_v-6 - .byte W01 - .byte VOICE , 3 - .byte PAN , c_v+0 - .byte N01 , Gs4 , v112 - .byte W02 - .byte W03 - .byte PAN , c_v+7 - .byte N01 , Dn5 , v096 - .byte W03 - .byte W02 - .byte PAN , c_v+0 - .byte N01 , Gs4 , v084 - .byte W04 - .byte W01 - .byte PAN , c_v-8 - .byte N01 , Dn5 , v068 - .byte W05 - .byte PAN , c_v+7 - .byte N01 , Gs4 , v052 - .byte W04 - .byte PAN , c_v-8 - .byte N01 , Dn5 , v032 - .byte W02 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_brick_break_2: - .byte KEYSH , se_m_brick_break_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_m_brick_break_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Cn3 , v064 - .byte W01 - .byte N03 , Gn3 - .byte W05 - .byte W01 - .byte N02 , En4 , v040 - .byte W05 - .byte Gn3 - .byte W04 - .byte En4 , v032 - .byte W02 - .byte W03 - .byte Gn3 - .byte W03 - .byte W02 - .byte En4 , v020 - .byte W04 - .byte W01 - .byte Gn3 - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_brick_break: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_brick_break_pri @ Priority - .byte se_m_brick_break_rev @ Reverb. - - .word se_m_brick_break_grp - - .word se_m_brick_break_1 - .word se_m_brick_break_2 - - .end diff --git a/sound/songs/se_m_bubble.s b/sound/songs/se_m_bubble.s deleted file mode 100644 index ee31a176b..000000000 --- a/sound/songs/se_m_bubble.s +++ /dev/null @@ -1,57 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_bubble_grp, voicegroup128 - .equ se_m_bubble_pri, 4 - .equ se_m_bubble_rev, reverb_set+50 - .equ se_m_bubble_mvl, 127 - .equ se_m_bubble_key, 0 - .equ se_m_bubble_tbs, 1 - .equ se_m_bubble_exg, 0 - .equ se_m_bubble_cmp, 1 - - .section .rodata - .global se_m_bubble - .align 2 - -@********************** Track 1 **********************@ - -se_m_bubble_1: - .byte KEYSH , se_m_bubble_key+0 - .byte TEMPO , 220*se_m_bubble_tbs/2 - .byte VOICE , 23 - .byte VOL , 95*se_m_bubble_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N09 , Cn3 , v127 - .byte W03 - .byte PAN , c_v-16 - .byte BEND , c_v+6 - .byte W01 - .byte c_v+16 - .byte W02 - .byte PAN , c_v+16 - .byte BEND , c_v+37 - .byte W01 - .byte c_v+48 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-1 - .byte N03 , En3 - .byte W15 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_bubble: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_bubble_pri @ Priority - .byte se_m_bubble_rev @ Reverb. - - .word se_m_bubble_grp - - .word se_m_bubble_1 - - .end diff --git a/sound/songs/se_m_bubble2.s b/sound/songs/se_m_bubble2.s deleted file mode 100644 index 97e7cbbf8..000000000 --- a/sound/songs/se_m_bubble2.s +++ /dev/null @@ -1,60 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_bubble2_grp, voicegroup128 - .equ se_m_bubble2_pri, 4 - .equ se_m_bubble2_rev, reverb_set+50 - .equ se_m_bubble2_mvl, 127 - .equ se_m_bubble2_key, 0 - .equ se_m_bubble2_tbs, 1 - .equ se_m_bubble2_exg, 0 - .equ se_m_bubble2_cmp, 1 - - .section .rodata - .global se_m_bubble2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_bubble2_1: - .byte KEYSH , se_m_bubble2_key+0 - .byte TEMPO , 220*se_m_bubble2_tbs/2 - .byte VOICE , 24 - .byte VOL , 110*se_m_bubble2_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte W03 - .byte N09 , Gn4 , v127 - .byte W02 - .byte BEND , c_v+31 - .byte W02 - .byte c_v-34 - .byte W17 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_bubble2_2: - .byte KEYSH , se_m_bubble2_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_m_bubble2_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Cn4 , v044 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_bubble2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_bubble2_pri @ Priority - .byte se_m_bubble2_rev @ Reverb. - - .word se_m_bubble2_grp - - .word se_m_bubble2_1 - .word se_m_bubble2_2 - - .end diff --git a/sound/songs/se_m_bubble3.s b/sound/songs/se_m_bubble3.s deleted file mode 100644 index c14badb5a..000000000 --- a/sound/songs/se_m_bubble3.s +++ /dev/null @@ -1,62 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_bubble3_grp, voicegroup128 - .equ se_m_bubble3_pri, 4 - .equ se_m_bubble3_rev, reverb_set+50 - .equ se_m_bubble3_mvl, 127 - .equ se_m_bubble3_key, 0 - .equ se_m_bubble3_tbs, 1 - .equ se_m_bubble3_exg, 0 - .equ se_m_bubble3_cmp, 1 - - .section .rodata - .global se_m_bubble3 - .align 2 - -@********************** Track 1 **********************@ - -se_m_bubble3_1: - .byte KEYSH , se_m_bubble3_key+0 - .byte TEMPO , 220*se_m_bubble3_tbs/2 - .byte VOICE , 23 - .byte VOL , 95*se_m_bubble3_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N12 , Gn2 , v127 - .byte W06 - .byte PAN , c_v-17 - .byte BEND , c_v+6 - .byte W01 - .byte c_v+16 - .byte W02 - .byte PAN , c_v+16 - .byte BEND , c_v+25 - .byte W01 - .byte c_v+31 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-1 - .byte W03 - .byte N06 - .byte W03 - .byte BEND , c_v+6 - .byte W01 - .byte c_v+13 - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_bubble3: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_bubble3_pri @ Priority - .byte se_m_bubble3_rev @ Reverb. - - .word se_m_bubble3_grp - - .word se_m_bubble3_1 - - .end diff --git a/sound/songs/se_m_bubble_beam.s b/sound/songs/se_m_bubble_beam.s deleted file mode 100644 index 621882b03..000000000 --- a/sound/songs/se_m_bubble_beam.s +++ /dev/null @@ -1,173 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_bubble_beam_grp, voicegroup128 - .equ se_m_bubble_beam_pri, 4 - .equ se_m_bubble_beam_rev, reverb_set+50 - .equ se_m_bubble_beam_mvl, 127 - .equ se_m_bubble_beam_key, 0 - .equ se_m_bubble_beam_tbs, 1 - .equ se_m_bubble_beam_exg, 0 - .equ se_m_bubble_beam_cmp, 1 - - .section .rodata - .global se_m_bubble_beam - .align 2 - -@********************** Track 1 **********************@ - -se_m_bubble_beam_1: - .byte KEYSH , se_m_bubble_beam_key+0 - .byte TEMPO , 150*se_m_bubble_beam_tbs/2 - .byte VOICE , 9 - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte VOL , 24*se_m_bubble_beam_mvl/mxv - .byte BEND , c_v-17 - .byte N78 , Bn4 , v080 - .byte W01 - .byte VOL , 32*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+6 - .byte W01 - .byte VOL , 38*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v-7 - .byte W01 - .byte VOL , 48*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 66*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v-13 - .byte W02 - .byte VOL , 78*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+6 - .byte W01 - .byte VOL , 94*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v-6 - .byte W01 - .byte VOL , 110*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v+6 - .byte W01 - .byte c_v-7 - .byte W02 -se_m_bubble_beam_1_000: - .byte PAN , c_v+9 - .byte W01 - .byte c_v-13 - .byte W01 - .byte c_v+6 - .byte W01 - .byte c_v-6 - .byte W01 - .byte c_v+0 - .byte W02 - .byte PEND -se_m_bubble_beam_1_001: - .byte PAN , c_v+6 - .byte W01 - .byte c_v-7 - .byte W01 - .byte c_v+9 - .byte W01 - .byte c_v-13 - .byte W01 - .byte c_v+6 - .byte W02 - .byte PEND - .byte c_v-6 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+6 - .byte W01 - .byte c_v-7 - .byte W01 - .byte c_v+9 - .byte W02 - .byte c_v-13 - .byte W01 - .byte c_v+6 - .byte W01 - .byte c_v-6 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+6 - .byte W02 - .byte c_v-7 - .byte W01 - .byte c_v+9 - .byte W01 - .byte c_v-13 - .byte W01 - .byte c_v+6 - .byte W01 - .byte c_v-6 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v+6 - .byte W01 - .byte c_v-7 - .byte W01 - .byte c_v+9 - .byte W01 - .byte c_v-13 - .byte W02 - .byte c_v+6 - .byte W01 - .byte c_v-6 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+6 - .byte W01 - .byte c_v-7 - .byte W02 - .byte PATT - .word se_m_bubble_beam_1_000 - .byte PATT - .word se_m_bubble_beam_1_001 - .byte PAN , c_v-6 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+6 - .byte W01 - .byte VOL , 103*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v-7 - .byte W01 - .byte VOL , 91*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+9 - .byte W02 - .byte VOL , 72*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v-13 - .byte W01 - .byte VOL , 58*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+6 - .byte W01 - .byte VOL , 38*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v-6 - .byte W01 - .byte VOL , 15*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 7*se_m_bubble_beam_mvl/mxv - .byte PAN , c_v+6 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_bubble_beam: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_bubble_beam_pri @ Priority - .byte se_m_bubble_beam_rev @ Reverb. - - .word se_m_bubble_beam_grp - - .word se_m_bubble_beam_1 - - .end diff --git a/sound/songs/se_m_bubble_beam2.s b/sound/songs/se_m_bubble_beam2.s deleted file mode 100644 index 0e8cbf5e4..000000000 --- a/sound/songs/se_m_bubble_beam2.s +++ /dev/null @@ -1,131 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_bubble_beam2_grp, voicegroup128 - .equ se_m_bubble_beam2_pri, 4 - .equ se_m_bubble_beam2_rev, reverb_set+50 - .equ se_m_bubble_beam2_mvl, 127 - .equ se_m_bubble_beam2_key, 0 - .equ se_m_bubble_beam2_tbs, 1 - .equ se_m_bubble_beam2_exg, 0 - .equ se_m_bubble_beam2_cmp, 1 - - .section .rodata - .global se_m_bubble_beam2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_bubble_beam2_1: - .byte KEYSH , se_m_bubble_beam2_key+0 - .byte TEMPO , 150*se_m_bubble_beam2_tbs/2 - .byte VOICE , 9 - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte VOL , 26*se_m_bubble_beam2_mvl/mxv - .byte BEND , c_v-23 - .byte N09 , Dn5 , v127 - .byte W01 - .byte VOL , 34*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 42*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v-16 - .byte W01 - .byte VOL , 52*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 72*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-18 - .byte W02 - .byte VOL , 85*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-21 - .byte W01 - .byte VOL , 102*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-23 - .byte W01 - .byte VOL , 120*se_m_bubble_beam2_mvl/mxv - .byte BEND , c_v-24 - .byte W02 - .byte VOL , 26*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-23 - .byte N09 , Dn5 , v100 - .byte W02 - .byte VOL , 34*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 42*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v-16 - .byte W01 - .byte VOL , 52*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 72*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-18 - .byte W01 - .byte VOL , 85*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-21 - .byte W02 - .byte VOL , 102*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-23 - .byte W01 - .byte VOL , 120*se_m_bubble_beam2_mvl/mxv - .byte BEND , c_v-24 - .byte W02 - .byte VOL , 26*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-23 - .byte N09 , Dn5 , v080 - .byte W01 - .byte VOL , 34*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W02 - .byte VOL , 42*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v-16 - .byte W01 - .byte VOL , 52*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 72*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-18 - .byte W01 - .byte VOL , 85*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-21 - .byte W01 - .byte VOL , 102*se_m_bubble_beam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-23 - .byte W02 - .byte VOL , 120*se_m_bubble_beam2_mvl/mxv - .byte BEND , c_v-24 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_bubble_beam2: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_bubble_beam2_pri @ Priority - .byte se_m_bubble_beam2_rev @ Reverb. - - .word se_m_bubble_beam2_grp - - .word se_m_bubble_beam2_1 - - .end diff --git a/sound/songs/se_m_charge.s b/sound/songs/se_m_charge.s deleted file mode 100644 index 47d70a4bf..000000000 --- a/sound/songs/se_m_charge.s +++ /dev/null @@ -1,186 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_charge_grp, voicegroup128 - .equ se_m_charge_pri, 4 - .equ se_m_charge_rev, reverb_set+50 - .equ se_m_charge_mvl, 127 - .equ se_m_charge_key, 0 - .equ se_m_charge_tbs, 1 - .equ se_m_charge_exg, 0 - .equ se_m_charge_cmp, 1 - - .section .rodata - .global se_m_charge - .align 2 - -@********************** Track 1 **********************@ - -se_m_charge_1: - .byte KEYSH , se_m_charge_key+0 - .byte TEMPO , 150*se_m_charge_tbs/2 - .byte VOICE , 18 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 34*se_m_charge_mvl/mxv - .byte BEND , c_v+0 - .byte N66 , Cn5 , v127 - .byte W01 - .byte PAN , c_v-2 - .byte W01 - .byte VOL , 43*se_m_charge_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v+2 - .byte BEND , c_v-2 - .byte W01 - .byte VOL , 58*se_m_charge_mvl/mxv - .byte PAN , c_v+0 - .byte W02 - .byte c_v-2 - .byte W01 - .byte VOL , 70*se_m_charge_mvl/mxv - .byte PAN , c_v-4 - .byte BEND , c_v-4 - .byte W01 - .byte PAN , c_v-2 - .byte W01 - .byte VOL , 76*se_m_charge_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v+2 - .byte BEND , c_v-6 - .byte W02 - .byte VOL , 90*se_m_charge_mvl/mxv - .byte PAN , c_v+4 - .byte W01 - .byte c_v+2 - .byte W01 - .byte c_v+0 - .byte BEND , c_v-8 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte c_v-2 - .byte W02 - .byte c_v+0 - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v+2 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v-2 - .byte BEND , c_v-15 - .byte W01 - .byte PAN , c_v-4 - .byte W02 - .byte c_v-2 - .byte W01 - .byte c_v+0 - .byte BEND , c_v-19 - .byte W01 - .byte PAN , c_v+2 - .byte W01 - .byte c_v+4 - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+2 - .byte W02 - .byte c_v+0 - .byte BEND , c_v-19 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte c_v-2 - .byte BEND , c_v-17 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte c_v+2 - .byte W02 - .byte c_v+0 - .byte BEND , c_v-19 - .byte W01 - .byte PAN , c_v-2 - .byte W01 - .byte c_v-4 - .byte W01 - .byte c_v-2 - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+0 - .byte W02 - .byte c_v+2 - .byte BEND , c_v-28 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v-24 - .byte W01 - .byte PAN , c_v+2 - .byte W01 - .byte VOL , 84*se_m_charge_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v+0 - .byte W02 - .byte c_v-2 - .byte W01 - .byte VOL , 78*se_m_charge_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v+2 - .byte BEND , c_v-27 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 70*se_m_charge_mvl/mxv - .byte PAN , c_v-2 - .byte W02 - .byte c_v-4 - .byte W01 - .byte VOL , 55*se_m_charge_mvl/mxv - .byte PAN , c_v-2 - .byte BEND , c_v-29 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 46*se_m_charge_mvl/mxv - .byte PAN , c_v+2 - .byte W01 - .byte c_v+4 - .byte BEND , c_v-31 - .byte W02 - .byte VOL , 36*se_m_charge_mvl/mxv - .byte PAN , c_v+2 - .byte W01 - .byte c_v+0 - .byte W01 - .byte VOL , 24*se_m_charge_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-36 - .byte W01 - .byte PAN , c_v-2 - .byte W01 - .byte VOL , 13*se_m_charge_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-42 - .byte W02 - .byte VOL , 5*se_m_charge_mvl/mxv - .byte PAN , c_v+2 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_charge: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_charge_pri @ Priority - .byte se_m_charge_rev @ Reverb. - - .word se_m_charge_grp - - .word se_m_charge_1 - - .end diff --git a/sound/songs/se_m_charm.s b/sound/songs/se_m_charm.s deleted file mode 100644 index ef10cb3e3..000000000 --- a/sound/songs/se_m_charm.s +++ /dev/null @@ -1,96 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_charm_grp, voicegroup128 - .equ se_m_charm_pri, 4 - .equ se_m_charm_rev, reverb_set+50 - .equ se_m_charm_mvl, 127 - .equ se_m_charm_key, 0 - .equ se_m_charm_tbs, 1 - .equ se_m_charm_exg, 0 - .equ se_m_charm_cmp, 1 - - .section .rodata - .global se_m_charm - .align 2 - -@********************** Track 1 **********************@ - -se_m_charm_1: - .byte KEYSH , se_m_charm_key+0 - .byte TEMPO , 150*se_m_charm_tbs/2 - .byte VOICE , 37 - .byte BENDR , 24 - .byte PAN , c_v+0 - .byte VOL , 25*se_m_charm_mvl/mxv - .byte BEND , c_v+11 - .byte N02 , Fn4 , v127 - .byte W01 - .byte VOL , 42*se_m_charm_mvl/mxv - .byte PAN , c_v+4 - .byte BEND , c_v+5 - .byte W01 - .byte VOL , 62*se_m_charm_mvl/mxv - .byte PAN , c_v-4 - .byte BEND , c_v+0 - .byte N15 - .byte W01 - .byte VOL , 77*se_m_charm_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+5 - .byte W01 - .byte VOL , 84*se_m_charm_mvl/mxv - .byte PAN , c_v+4 - .byte BEND , c_v+12 - .byte W02 - .byte VOL , 96*se_m_charm_mvl/mxv - .byte PAN , c_v-4 - .byte BEND , c_v+20 - .byte W01 - .byte VOL , 100*se_m_charm_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+25 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v+30 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v+34 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+40 - .byte W02 - .byte VOL , 94*se_m_charm_mvl/mxv - .byte PAN , c_v+4 - .byte W01 - .byte VOL , 85*se_m_charm_mvl/mxv - .byte PAN , c_v-4 - .byte BEND , c_v+37 - .byte W01 - .byte VOL , 66*se_m_charm_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+36 - .byte W01 - .byte VOL , 49*se_m_charm_mvl/mxv - .byte PAN , c_v+4 - .byte BEND , c_v+34 - .byte W01 - .byte VOL , 32*se_m_charm_mvl/mxv - .byte PAN , c_v-4 - .byte BEND , c_v+32 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_charm: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_charm_pri @ Priority - .byte se_m_charm_rev @ Reverb. - - .word se_m_charm_grp - - .word se_m_charm_1 - - .end diff --git a/sound/songs/se_m_confuse_ray.s b/sound/songs/se_m_confuse_ray.s deleted file mode 100644 index 12aea8ab8..000000000 --- a/sound/songs/se_m_confuse_ray.s +++ /dev/null @@ -1,117 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_confuse_ray_grp, voicegroup128 - .equ se_m_confuse_ray_pri, 4 - .equ se_m_confuse_ray_rev, reverb_set+50 - .equ se_m_confuse_ray_mvl, 127 - .equ se_m_confuse_ray_key, 0 - .equ se_m_confuse_ray_tbs, 1 - .equ se_m_confuse_ray_exg, 0 - .equ se_m_confuse_ray_cmp, 1 - - .section .rodata - .global se_m_confuse_ray - .align 2 - -@********************** Track 1 **********************@ - -se_m_confuse_ray_1: - .byte KEYSH , se_m_confuse_ray_key+0 - .byte TEMPO , 220*se_m_confuse_ray_tbs/2 - .byte VOICE , 52 - .byte VOL , 127*se_m_confuse_ray_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N03 , As3 , v120 - .byte W01 - .byte BEND , c_v-8 - .byte W01 - .byte c_v-16 - .byte W01 - .byte c_v-1 - .byte N12 , As2 , v127 - .byte W03 - .byte PAN , c_v+4 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v-4 - .byte BEND , c_v+11 - .byte W01 - .byte c_v+18 - .byte W01 - .byte PAN , c_v+10 - .byte BEND , c_v+28 - .byte W02 - .byte c_v+35 - .byte W01 - .byte PAN , c_v-10 - .byte W02 - .byte c_v+0 - .byte BEND , c_v+0 - .byte N03 , As3 , v108 - .byte W01 - .byte BEND , c_v-8 - .byte W02 - .byte c_v-17 - .byte W01 - .byte c_v-1 - .byte N12 , As2 - .byte W02 - .byte PAN , c_v+4 - .byte BEND , c_v+8 - .byte W03 - .byte PAN , c_v-4 - .byte BEND , c_v+11 - .byte W01 - .byte c_v+18 - .byte W01 - .byte PAN , c_v+10 - .byte BEND , c_v+28 - .byte W01 - .byte c_v+35 - .byte W01 - .byte PAN , c_v-10 - .byte W03 - .byte c_v+0 - .byte BEND , c_v+0 - .byte N03 , As3 , v072 - .byte W01 - .byte BEND , c_v-8 - .byte W01 - .byte c_v-16 - .byte W01 - .byte c_v-1 - .byte N12 , As2 - .byte W03 - .byte PAN , c_v+4 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v-4 - .byte BEND , c_v+11 - .byte W01 - .byte c_v+18 - .byte W02 - .byte PAN , c_v+10 - .byte BEND , c_v+28 - .byte W01 - .byte c_v+35 - .byte W01 - .byte PAN , c_v-10 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_confuse_ray: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_confuse_ray_pri @ Priority - .byte se_m_confuse_ray_rev @ Reverb. - - .word se_m_confuse_ray_grp - - .word se_m_confuse_ray_1 - - .end diff --git a/sound/songs/se_m_cosmic_power.s b/sound/songs/se_m_cosmic_power.s deleted file mode 100644 index 76812478b..000000000 --- a/sound/songs/se_m_cosmic_power.s +++ /dev/null @@ -1,208 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_cosmic_power_grp, voicegroup128 - .equ se_m_cosmic_power_pri, 4 - .equ se_m_cosmic_power_rev, reverb_set+50 - .equ se_m_cosmic_power_mvl, 127 - .equ se_m_cosmic_power_key, 0 - .equ se_m_cosmic_power_tbs, 1 - .equ se_m_cosmic_power_exg, 0 - .equ se_m_cosmic_power_cmp, 1 - - .section .rodata - .global se_m_cosmic_power - .align 2 - -@********************** Track 1 **********************@ - -se_m_cosmic_power_1: - .byte KEYSH , se_m_cosmic_power_key+0 - .byte TEMPO , 150*se_m_cosmic_power_tbs/2 - .byte VOICE , 46 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_cosmic_power_mvl/mxv - .byte BEND , c_v-4 - .byte N09 , As5 , v112 - .byte W06 - .byte W03 - .byte PAN , c_v-5 - .byte N08 , Cn5 - .byte W03 - .byte W06 - .byte PAN , c_v-9 - .byte N10 , Gn5 - .byte W06 - .byte W04 - .byte PAN , c_v-5 - .byte N09 , Fn6 - .byte W02 - .byte W06 - .byte W02 - .byte PAN , c_v+0 - .byte N09 , An5 - .byte W04 - .byte W06 - .byte PAN , c_v+4 - .byte N09 , As5 - .byte W06 - .byte W03 - .byte PAN , c_v+9 - .byte N08 , Cn5 , v108 - .byte W03 - .byte W06 - .byte PAN , c_v+4 - .byte N10 , Gn5 , v104 - .byte W06 - .byte W04 - .byte PAN , c_v+0 - .byte N09 , Fn6 , v096 - .byte W02 - .byte W06 - .byte W02 - .byte PAN , c_v-5 - .byte N09 , An5 , v092 - .byte W04 - .byte W04 - .byte PAN , c_v-9 - .byte W02 - .byte N09 , As5 , v084 - .byte W06 - .byte W03 - .byte PAN , c_v-5 - .byte N08 , Cn5 , v080 - .byte W03 - .byte W06 - .byte N10 , Gn5 , v072 - .byte W01 - .byte PAN , c_v+0 - .byte W05 - .byte W04 - .byte c_v+4 - .byte N09 , Fn6 , v068 - .byte W02 - .byte W06 - .byte W02 - .byte PAN , c_v+9 - .byte N09 , An5 , v060 - .byte W04 - .byte W04 - .byte PAN , c_v+4 - .byte W02 - .byte N09 , As5 , v056 - .byte W06 - .byte W03 - .byte PAN , c_v+0 - .byte N08 , Cn5 , v052 - .byte W03 - .byte W06 - .byte N10 , Gn5 , v044 - .byte W01 - .byte PAN , c_v-5 - .byte W05 - .byte W03 - .byte c_v-9 - .byte W01 - .byte N09 , Fn6 , v040 - .byte W02 - .byte W06 - .byte W02 - .byte PAN , c_v-5 - .byte N09 , An5 , v032 - .byte W04 - .byte W06 - .byte PAN , c_v+0 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_cosmic_power_2: - .byte KEYSH , se_m_cosmic_power_key+0 - .byte VOICE , 53 - .byte XCMD , xIECV , 9 - .byte xIECL , 8 - .byte VOL , 43*se_m_cosmic_power_mvl/mxv - .byte BEND , c_v-2 - .byte W04 - .byte N08 , Fn5 , v112 - .byte W02 - .byte W06 - .byte W01 - .byte N10 , Ds5 - .byte W05 - .byte W06 - .byte N09 , As6 - .byte W06 - .byte W03 - .byte Cn6 - .byte W03 - .byte W06 - .byte N10 , Fn5 - .byte W06 - .byte W04 - .byte N08 - .byte W02 - .byte W06 - .byte W01 - .byte N10 , Ds5 , v104 - .byte W05 - .byte W06 - .byte N09 , As6 , v100 - .byte W06 - .byte W03 - .byte Cn6 , v092 - .byte W03 - .byte W06 - .byte N10 , Fn5 , v088 - .byte W06 - .byte W04 - .byte N08 , Fn5 , v080 - .byte W02 - .byte W06 - .byte W01 - .byte N10 , Ds5 , v076 - .byte W05 - .byte W06 - .byte N09 , As6 , v072 - .byte W06 - .byte W03 - .byte Cn6 , v064 - .byte W03 - .byte W06 - .byte N10 , Fn5 , v060 - .byte W06 - .byte W04 - .byte N08 , Fn5 , v052 - .byte W02 - .byte W06 - .byte W01 - .byte N10 , Ds5 , v048 - .byte W05 - .byte W06 - .byte N09 , As6 , v040 - .byte W06 - .byte W03 - .byte Cn6 , v036 - .byte W03 - .byte W06 - .byte N12 , Fn5 , v032 - .byte W06 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_cosmic_power: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_cosmic_power_pri @ Priority - .byte se_m_cosmic_power_rev @ Reverb. - - .word se_m_cosmic_power_grp - - .word se_m_cosmic_power_1 - .word se_m_cosmic_power_2 - - .end diff --git a/sound/songs/se_m_crabhammer.s b/sound/songs/se_m_crabhammer.s deleted file mode 100644 index 6333150dc..000000000 --- a/sound/songs/se_m_crabhammer.s +++ /dev/null @@ -1,58 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_crabhammer_grp, voicegroup128 - .equ se_m_crabhammer_pri, 4 - .equ se_m_crabhammer_rev, reverb_set+50 - .equ se_m_crabhammer_mvl, 127 - .equ se_m_crabhammer_key, 0 - .equ se_m_crabhammer_tbs, 1 - .equ se_m_crabhammer_exg, 0 - .equ se_m_crabhammer_cmp, 1 - - .section .rodata - .global se_m_crabhammer - .align 2 - -@********************** Track 1 **********************@ - -se_m_crabhammer_1: - .byte KEYSH , se_m_crabhammer_key+0 - .byte TEMPO , 150*se_m_crabhammer_tbs/2 - .byte VOICE , 23 - .byte VOL , 100*se_m_crabhammer_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+2 - .byte N02 , Dn3 , v127 - .byte W01 - .byte PAN , c_v-10 - .byte BEND , c_v+4 - .byte W02 - .byte PAN , c_v+8 - .byte BEND , c_v+6 - .byte N02 , Dn3 , v084 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+9 - .byte W02 - .byte c_v-1 - .byte W02 - .byte c_v+32 - .byte N02 , Dn3 , v056 - .byte W16 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_crabhammer: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_crabhammer_pri @ Priority - .byte se_m_crabhammer_rev @ Reverb. - - .word se_m_crabhammer_grp - - .word se_m_crabhammer_1 - - .end diff --git a/sound/songs/se_m_detect.s b/sound/songs/se_m_detect.s deleted file mode 100644 index 181fb4079..000000000 --- a/sound/songs/se_m_detect.s +++ /dev/null @@ -1,95 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_detect_grp, voicegroup128 - .equ se_m_detect_pri, 4 - .equ se_m_detect_rev, reverb_set+50 - .equ se_m_detect_mvl, 127 - .equ se_m_detect_key, 0 - .equ se_m_detect_tbs, 1 - .equ se_m_detect_exg, 0 - .equ se_m_detect_cmp, 1 - - .section .rodata - .global se_m_detect - .align 2 - -@********************** Track 1 **********************@ - -se_m_detect_1: - .byte KEYSH , se_m_detect_key+0 - .byte TEMPO , 220*se_m_detect_tbs/2 - .byte VOICE , 54 - .byte VOL , 100*se_m_detect_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+1 - .byte N03 , As5 , v127 - .byte W01 - .byte PAN , c_v+2 - .byte BEND , c_v+2 - .byte W01 - .byte c_v+4 - .byte W01 - .byte c_v+1 - .byte N06 , Bn5 - .byte W01 - .byte PAN , c_v+0 - .byte W02 - .byte W03 - .byte BEND , c_v+1 - .byte N03 , As5 , v104 - .byte W01 - .byte PAN , c_v-2 - .byte BEND , c_v+2 - .byte W02 - .byte c_v+4 - .byte W01 - .byte c_v+1 - .byte N06 , Bn5 - .byte W01 - .byte PAN , c_v+0 - .byte W04 - .byte W01 - .byte BEND , c_v+1 - .byte N03 , As5 , v080 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v+2 - .byte W01 - .byte c_v+4 - .byte W01 - .byte c_v+1 - .byte N06 , Bn5 - .byte W02 - .byte PAN , c_v+0 - .byte W04 - .byte BEND , c_v+1 - .byte N03 , As5 , v048 - .byte W02 - .byte PAN , c_v-5 - .byte BEND , c_v+2 - .byte W01 - .byte c_v+4 - .byte W01 - .byte c_v+1 - .byte N06 , Bn5 - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_detect: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_detect_pri @ Priority - .byte se_m_detect_rev @ Reverb. - - .word se_m_detect_grp - - .word se_m_detect_1 - - .end diff --git a/sound/songs/se_m_dig.s b/sound/songs/se_m_dig.s deleted file mode 100644 index 42fed8ab5..000000000 --- a/sound/songs/se_m_dig.s +++ /dev/null @@ -1,66 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_dig_grp, voicegroup128 - .equ se_m_dig_pri, 4 - .equ se_m_dig_rev, reverb_set+50 - .equ se_m_dig_mvl, 127 - .equ se_m_dig_key, 0 - .equ se_m_dig_tbs, 1 - .equ se_m_dig_exg, 0 - .equ se_m_dig_cmp, 1 - - .section .rodata - .global se_m_dig - .align 2 - -@********************** Track 1 **********************@ - -se_m_dig_1: - .byte KEYSH , se_m_dig_key+0 - .byte TEMPO , 150*se_m_dig_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 115*se_m_dig_mvl/mxv - .byte BEND , c_v+0 - .byte N01 , Cn2 , v112 - .byte W01 - .byte VOICE , 26 - .byte N02 , Cn3 , v127 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v+4 - .byte W01 - .byte c_v+16 - .byte N03 - .byte W01 - .byte PAN , c_v-8 - .byte BEND , c_v+28 - .byte W02 - .byte c_v+45 - .byte W01 - .byte VOICE , 36 - .byte PAN , c_v+12 - .byte BEND , c_v+0 - .byte N02 , Cn3 , v056 - .byte W02 - .byte W03 - .byte PAN , c_v-12 - .byte N02 , Cn3 , v036 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_dig: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_dig_pri @ Priority - .byte se_m_dig_rev @ Reverb. - - .word se_m_dig_grp - - .word se_m_dig_1 - - .end diff --git a/sound/songs/se_m_dive.s b/sound/songs/se_m_dive.s deleted file mode 100644 index 2313667fc..000000000 --- a/sound/songs/se_m_dive.s +++ /dev/null @@ -1,123 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_dive_grp, voicegroup128 - .equ se_m_dive_pri, 4 - .equ se_m_dive_rev, reverb_set+50 - .equ se_m_dive_mvl, 127 - .equ se_m_dive_key, 0 - .equ se_m_dive_tbs, 1 - .equ se_m_dive_exg, 0 - .equ se_m_dive_cmp, 1 - - .section .rodata - .global se_m_dive - .align 2 - -@********************** Track 1 **********************@ - -se_m_dive_1: - .byte KEYSH , se_m_dive_key+0 - .byte TEMPO , 150*se_m_dive_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 105*se_m_dive_mvl/mxv - .byte BEND , c_v-18 - .byte N06 , Fn2 , v127 - .byte W03 - .byte PAN , c_v+3 - .byte BEND , c_v-16 - .byte W04 - .byte PAN , c_v+6 - .byte BEND , c_v-14 - .byte N04 - .byte W03 - .byte PAN , c_v+3 - .byte BEND , c_v-11 - .byte W02 - .byte N36 , Gn3 , v092 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-8 - .byte W04 - .byte PAN , c_v-3 - .byte BEND , c_v-5 - .byte W02 - .byte VOL , 100*se_m_dive_mvl/mxv - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v-2 - .byte W03 - .byte VOL , 94*se_m_dive_mvl/mxv - .byte W01 - .byte PAN , c_v-3 - .byte BEND , c_v+1 - .byte W02 - .byte VOL , 84*se_m_dive_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+4 - .byte W04 - .byte PAN , c_v+3 - .byte VOL , 72*se_m_dive_mvl/mxv - .byte BEND , c_v+2 - .byte W04 - .byte PAN , c_v+6 - .byte VOL , 57*se_m_dive_mvl/mxv - .byte BEND , c_v-3 - .byte W03 - .byte PAN , c_v+3 - .byte VOL , 37*se_m_dive_mvl/mxv - .byte BEND , c_v-7 - .byte W03 - .byte VOL , 20*se_m_dive_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-11 - .byte W01 - .byte VOL , 7*se_m_dive_mvl/mxv - .byte W02 - .byte PAN , c_v-3 - .byte BEND , c_v-16 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_dive_2: - .byte KEYSH , se_m_dive_key+0 - .byte VOICE , 25 - .byte VOL , 105*se_m_dive_mvl/mxv - .byte N06 , An2 , v040 - .byte W06 - .byte Gn2 - .byte W06 - .byte Gs3 , v044 - .byte W07 - .byte Gs3 , v036 - .byte W05 - .byte W02 - .byte Gs3 , v028 - .byte W07 - .byte Gs3 , v020 - .byte W03 - .byte W04 - .byte Gs3 , v012 - .byte W08 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_dive: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_dive_pri @ Priority - .byte se_m_dive_rev @ Reverb. - - .word se_m_dive_grp - - .word se_m_dive_1 - .word se_m_dive_2 - - .end diff --git a/sound/songs/se_m_dizzy_punch.s b/sound/songs/se_m_dizzy_punch.s deleted file mode 100644 index 886a4bc4e..000000000 --- a/sound/songs/se_m_dizzy_punch.s +++ /dev/null @@ -1,79 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_dizzy_punch_grp, voicegroup128 - .equ se_m_dizzy_punch_pri, 4 - .equ se_m_dizzy_punch_rev, reverb_set+50 - .equ se_m_dizzy_punch_mvl, 127 - .equ se_m_dizzy_punch_key, 0 - .equ se_m_dizzy_punch_tbs, 1 - .equ se_m_dizzy_punch_exg, 0 - .equ se_m_dizzy_punch_cmp, 1 - - .section .rodata - .global se_m_dizzy_punch - .align 2 - -@********************** Track 1 **********************@ - -se_m_dizzy_punch_1: - .byte KEYSH , se_m_dizzy_punch_key+0 - .byte TEMPO , 150*se_m_dizzy_punch_tbs/2 - .byte VOICE , 19 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 5*se_m_dizzy_punch_mvl/mxv - .byte BEND , c_v+0 - .byte N07 , Bn5 , v080 - .byte W01 - .byte VOL , 55*se_m_dizzy_punch_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v+3 - .byte W01 - .byte VOL , 67*se_m_dizzy_punch_mvl/mxv - .byte PAN , c_v+22 - .byte BEND , c_v+0 - .byte W01 - .byte VOL , 90*se_m_dizzy_punch_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-6 - .byte W01 - .byte PAN , c_v-12 - .byte BEND , c_v-14 - .byte W02 - .byte VOL , 4*se_m_dizzy_punch_mvl/mxv - .byte PAN , c_v-22 - .byte BEND , c_v-23 - .byte W01 - .byte PAN , c_v-13 - .byte BEND , c_v+0 - .byte N04 , Cn6 - .byte W01 - .byte VOL , 66*se_m_dizzy_punch_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+1 - .byte W01 - .byte VOL , 90*se_m_dizzy_punch_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v+3 - .byte W01 - .byte VOL , 4*se_m_dizzy_punch_mvl/mxv - .byte PAN , c_v+21 - .byte BEND , c_v+5 - .byte W14 - .byte VOL , 90*se_m_dizzy_punch_mvl/mxv - .byte FINE - -@******************************************************@ - .align 2 - -se_m_dizzy_punch: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_dizzy_punch_pri @ Priority - .byte se_m_dizzy_punch_rev @ Reverb. - - .word se_m_dizzy_punch_grp - - .word se_m_dizzy_punch_1 - - .end diff --git a/sound/songs/se_m_double_team.s b/sound/songs/se_m_double_team.s deleted file mode 100644 index 49bcfb13d..000000000 --- a/sound/songs/se_m_double_team.s +++ /dev/null @@ -1,71 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_double_team_grp, voicegroup128 - .equ se_m_double_team_pri, 4 - .equ se_m_double_team_rev, reverb_set+50 - .equ se_m_double_team_mvl, 127 - .equ se_m_double_team_key, 0 - .equ se_m_double_team_tbs, 1 - .equ se_m_double_team_exg, 0 - .equ se_m_double_team_cmp, 1 - - .section .rodata - .global se_m_double_team - .align 2 - -@********************** Track 1 **********************@ - -se_m_double_team_1: - .byte KEYSH , se_m_double_team_key+0 - .byte TEMPO , 150*se_m_double_team_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_double_team_mvl/mxv - .byte BEND , c_v-18 - .byte N19 , Dn3 , v108 - .byte W02 - .byte BEND , c_v-7 - .byte W01 - .byte VOL , 101*se_m_double_team_mvl/mxv - .byte W01 - .byte PAN , c_v-9 - .byte BEND , c_v+8 - .byte W02 - .byte VOL , 84*se_m_double_team_mvl/mxv - .byte BEND , c_v+4 - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 64*se_m_double_team_mvl/mxv - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v+8 - .byte W02 - .byte VOL , 45*se_m_double_team_mvl/mxv - .byte BEND , c_v-31 - .byte W02 - .byte VOL , 32*se_m_double_team_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte VOICE , 2 - .byte W01 - .byte VOL , 13*se_m_double_team_mvl/mxv - .byte BEND , c_v-52 - .byte W08 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_double_team: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_double_team_pri @ Priority - .byte se_m_double_team_rev @ Reverb. - - .word se_m_double_team_grp - - .word se_m_double_team_1 - - .end diff --git a/sound/songs/se_m_dragon_rage.s b/sound/songs/se_m_dragon_rage.s deleted file mode 100644 index e9eaefca0..000000000 --- a/sound/songs/se_m_dragon_rage.s +++ /dev/null @@ -1,150 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_dragon_rage_grp, voicegroup128 - .equ se_m_dragon_rage_pri, 4 - .equ se_m_dragon_rage_rev, reverb_set+50 - .equ se_m_dragon_rage_mvl, 127 - .equ se_m_dragon_rage_key, 0 - .equ se_m_dragon_rage_tbs, 1 - .equ se_m_dragon_rage_exg, 0 - .equ se_m_dragon_rage_cmp, 1 - - .section .rodata - .global se_m_dragon_rage - .align 2 - -@********************** Track 1 **********************@ - -se_m_dragon_rage_1: - .byte KEYSH , se_m_dragon_rage_key+0 - .byte TEMPO , 150*se_m_dragon_rage_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+5 - .byte VOL , 21*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+0 - .byte N10 , An2 , v127 - .byte W02 - .byte VOL , 47*se_m_dragon_rage_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 88*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 120*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 21*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+10 - .byte N10 , Bn2 - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte VOL , 47*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 88*se_m_dragon_rage_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte VOL , 120*se_m_dragon_rage_mvl/mxv - .byte W03 - .byte PAN , c_v-2 - .byte VOL , 21*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+18 - .byte N10 , Cs3 - .byte W03 - .byte PAN , c_v+5 - .byte VOL , 47*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte 88*se_m_dragon_rage_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 120*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W02 - .byte VOL , 20*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+29 - .byte N10 , Dn3 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 47*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte VOL , 88*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 120*se_m_dragon_rage_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 21*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+37 - .byte N10 , En3 - .byte W02 - .byte PAN , c_v-2 - .byte VOL , 46*se_m_dragon_rage_mvl/mxv - .byte W03 - .byte PAN , c_v+5 - .byte VOL , 102*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte 120*se_m_dragon_rage_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte VOL , 20*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+42 - .byte N20 , Fs3 - .byte W02 - .byte VOL , 47*se_m_dragon_rage_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 88*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte VOL , 120*se_m_dragon_rage_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 99*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+50 - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 74*se_m_dragon_rage_mvl/mxv - .byte W01 - .byte BEND , c_v+56 - .byte W01 - .byte PAN , c_v-2 - .byte VOL , 53*se_m_dragon_rage_mvl/mxv - .byte W03 - .byte 34*se_m_dragon_rage_mvl/mxv - .byte BEND , c_v+63 - .byte W01 - .byte VOL , 15*se_m_dragon_rage_mvl/mxv - .byte W23 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_dragon_rage: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_dragon_rage_pri @ Priority - .byte se_m_dragon_rage_rev @ Reverb. - - .word se_m_dragon_rage_grp - - .word se_m_dragon_rage_1 - - .end diff --git a/sound/songs/se_m_earthquake.s b/sound/songs/se_m_earthquake.s deleted file mode 100644 index 104eb1bef..000000000 --- a/sound/songs/se_m_earthquake.s +++ /dev/null @@ -1,326 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_earthquake_grp, voicegroup128 - .equ se_m_earthquake_pri, 4 - .equ se_m_earthquake_rev, reverb_set+50 - .equ se_m_earthquake_mvl, 127 - .equ se_m_earthquake_key, 0 - .equ se_m_earthquake_tbs, 1 - .equ se_m_earthquake_exg, 0 - .equ se_m_earthquake_cmp, 1 - - .section .rodata - .global se_m_earthquake - .align 2 - -@********************** Track 1 **********************@ - -se_m_earthquake_1: - .byte KEYSH , se_m_earthquake_key+0 - .byte TEMPO , 150*se_m_earthquake_tbs/2 - .byte VOICE , 26 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_earthquake_mvl/mxv - .byte BEND , c_v+0 - .byte N03 , Cs2 , v127 - .byte W03 - .byte PAN , c_v+6 - .byte N03 , Cn2 , v120 - .byte W03 - .byte W01 - .byte PAN , c_v-6 - .byte N03 , Bn1 , v116 - .byte W03 - .byte PAN , c_v+11 - .byte N03 , Cn2 , v112 - .byte W02 -se_m_earthquake_1_000: - .byte W02 - .byte PAN , c_v-11 - .byte N03 , Cs2 , v108 - .byte W04 - .byte PEND -se_m_earthquake_1_001: - .byte PAN , c_v+0 - .byte N03 , Cn2 , v100 - .byte W03 - .byte PAN , c_v+6 - .byte N03 , Cs2 , v116 - .byte W03 - .byte PEND -se_m_earthquake_1_002: - .byte W01 - .byte PAN , c_v-6 - .byte N03 , Cn2 , v112 - .byte W03 - .byte PAN , c_v+11 - .byte N03 , Cs2 , v108 - .byte W02 - .byte PEND -se_m_earthquake_1_003: - .byte W02 - .byte PAN , c_v-11 - .byte N03 , Cn2 , v100 - .byte W04 - .byte PEND -se_m_earthquake_1_004: - .byte PAN , c_v+0 - .byte N03 , Cs2 , v116 - .byte W03 - .byte PAN , c_v+6 - .byte N03 , Cn2 , v112 - .byte W03 - .byte PEND -se_m_earthquake_1_005: - .byte W01 - .byte PAN , c_v-6 - .byte N03 , Cs2 , v108 - .byte W03 - .byte PAN , c_v+11 - .byte N03 , Cn2 , v100 - .byte W02 - .byte PEND -se_m_earthquake_1_006: - .byte W02 - .byte PAN , c_v-11 - .byte N03 , Cs2 , v116 - .byte W04 - .byte PEND - .byte PAN , c_v+0 - .byte N03 , Cn2 , v112 - .byte W03 - .byte PAN , c_v+6 - .byte N03 , Cs2 , v108 - .byte W03 - .byte W01 - .byte PAN , c_v-6 - .byte N03 , Cn2 , v100 - .byte W03 - .byte PAN , c_v+11 - .byte N03 , Cs2 , v116 - .byte W02 - .byte W02 - .byte PAN , c_v-11 - .byte N03 , Cn2 , v112 - .byte W04 -se_m_earthquake_1_007: - .byte PAN , c_v+0 - .byte N03 , Cs2 , v108 - .byte W03 - .byte PAN , c_v+6 - .byte N03 , Cn2 , v100 - .byte W03 - .byte PEND -se_m_earthquake_1_008: - .byte W01 - .byte PAN , c_v-6 - .byte N03 , Cs2 , v116 - .byte W03 - .byte PAN , c_v+11 - .byte N03 , Cn2 , v112 - .byte W02 - .byte PEND - .byte PATT - .word se_m_earthquake_1_000 - .byte PATT - .word se_m_earthquake_1_001 - .byte PATT - .word se_m_earthquake_1_002 - .byte PATT - .word se_m_earthquake_1_003 - .byte PATT - .word se_m_earthquake_1_007 - .byte PATT - .word se_m_earthquake_1_008 - .byte PATT - .word se_m_earthquake_1_000 - .byte PATT - .word se_m_earthquake_1_001 - .byte PATT - .word se_m_earthquake_1_002 - .byte PATT - .word se_m_earthquake_1_003 - .byte PATT - .word se_m_earthquake_1_004 - .byte PATT - .word se_m_earthquake_1_005 - .byte PATT - .word se_m_earthquake_1_006 - .byte VOL , 106*se_m_earthquake_mvl/mxv - .byte PAN , c_v+0 - .byte N03 , Cn2 , v112 - .byte W03 - .byte VOL , 103*se_m_earthquake_mvl/mxv - .byte PAN , c_v+6 - .byte N03 , Cs2 , v108 - .byte W03 - .byte W01 - .byte VOL , 97*se_m_earthquake_mvl/mxv - .byte PAN , c_v-6 - .byte N03 , Cn2 , v100 - .byte W03 - .byte VOL , 89*se_m_earthquake_mvl/mxv - .byte PAN , c_v+11 - .byte N03 , Cs2 , v116 - .byte W02 - .byte W02 - .byte VOL , 85*se_m_earthquake_mvl/mxv - .byte PAN , c_v-11 - .byte N03 , Cn2 , v112 - .byte W04 - .byte VOL , 78*se_m_earthquake_mvl/mxv - .byte PAN , c_v+0 - .byte N03 , Cs2 , v108 - .byte W03 - .byte VOL , 72*se_m_earthquake_mvl/mxv - .byte PAN , c_v+6 - .byte N03 , Cn2 , v100 - .byte W03 - .byte W01 - .byte VOL , 66*se_m_earthquake_mvl/mxv - .byte PAN , c_v-6 - .byte N03 , Cs2 , v116 - .byte W03 - .byte VOL , 58*se_m_earthquake_mvl/mxv - .byte PAN , c_v+11 - .byte N03 , Cn2 , v112 - .byte W02 - .byte W02 - .byte VOL , 46*se_m_earthquake_mvl/mxv - .byte PAN , c_v-11 - .byte N03 , Cs2 , v108 - .byte W04 - .byte VOL , 30*se_m_earthquake_mvl/mxv - .byte PAN , c_v+0 - .byte N03 , Cn2 , v100 - .byte W03 - .byte VOL , 12*se_m_earthquake_mvl/mxv - .byte PAN , c_v+6 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_earthquake_2: - .byte KEYSH , se_m_earthquake_key+0 - .byte VOICE , 5 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_earthquake_mvl/mxv - .byte N02 , Fn2 , v072 - .byte W02 - .byte N01 - .byte W01 - .byte N02 , Gn2 - .byte W03 - .byte N01 , Gs2 , v060 - .byte W06 - .byte VOICE , 27 - .byte N06 , Bn1 , v080 - .byte W06 -se_m_earthquake_2_000: - .byte PAN , c_v+0 - .byte N06 , Bn1 , v080 - .byte W06 - .byte PEND - .byte N06 - .byte W06 - .byte N06 - .byte W06 - .byte PATT - .word se_m_earthquake_2_000 - .byte N06 , Bn1 , v080 - .byte W06 - .byte N06 - .byte W06 - .byte PATT - .word se_m_earthquake_2_000 - .byte N06 , Bn1 , v080 - .byte W06 - .byte N06 - .byte W06 - .byte PATT - .word se_m_earthquake_2_000 - .byte N06 , Bn1 , v080 - .byte W06 - .byte N06 - .byte W06 - .byte PATT - .word se_m_earthquake_2_000 - .byte N06 , Bn1 , v080 - .byte W06 - .byte N06 - .byte W06 - .byte PATT - .word se_m_earthquake_2_000 - .byte N06 , Bn1 , v080 - .byte W06 - .byte N06 - .byte W06 - .byte PATT - .word se_m_earthquake_2_000 - .byte N06 , Bn1 , v080 - .byte W06 - .byte N06 - .byte W06 - .byte PATT - .word se_m_earthquake_2_000 - .byte N06 , Bn1 , v080 - .byte W06 - .byte N06 - .byte W06 - .byte VOL , 106*se_m_earthquake_mvl/mxv - .byte PAN , c_v+0 - .byte N06 - .byte W03 - .byte VOL , 103*se_m_earthquake_mvl/mxv - .byte W03 - .byte N06 - .byte W01 - .byte VOL , 97*se_m_earthquake_mvl/mxv - .byte W03 - .byte 89*se_m_earthquake_mvl/mxv - .byte W02 - .byte N06 - .byte W02 - .byte VOL , 85*se_m_earthquake_mvl/mxv - .byte W04 - .byte 78*se_m_earthquake_mvl/mxv - .byte PAN , c_v+0 - .byte N06 - .byte W03 - .byte VOL , 72*se_m_earthquake_mvl/mxv - .byte W03 - .byte N06 - .byte W01 - .byte VOL , 66*se_m_earthquake_mvl/mxv - .byte W03 - .byte 58*se_m_earthquake_mvl/mxv - .byte W02 - .byte N06 - .byte W02 - .byte VOL , 46*se_m_earthquake_mvl/mxv - .byte W04 - .byte 30*se_m_earthquake_mvl/mxv - .byte PAN , c_v+0 - .byte N06 - .byte W03 - .byte VOL , 12*se_m_earthquake_mvl/mxv - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_earthquake: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_earthquake_pri @ Priority - .byte se_m_earthquake_rev @ Reverb. - - .word se_m_earthquake_grp - - .word se_m_earthquake_1 - .word se_m_earthquake_2 - - .end diff --git a/sound/songs/se_m_ember.s b/sound/songs/se_m_ember.s deleted file mode 100644 index a685ca24c..000000000 --- a/sound/songs/se_m_ember.s +++ /dev/null @@ -1,61 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_ember_grp, voicegroup128 - .equ se_m_ember_pri, 4 - .equ se_m_ember_rev, reverb_set+50 - .equ se_m_ember_mvl, 127 - .equ se_m_ember_key, 0 - .equ se_m_ember_tbs, 1 - .equ se_m_ember_exg, 0 - .equ se_m_ember_cmp, 1 - - .section .rodata - .global se_m_ember - .align 2 - -@********************** Track 1 **********************@ - -se_m_ember_1: - .byte KEYSH , se_m_ember_key+0 - .byte TEMPO , 150*se_m_ember_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 61*se_m_ember_mvl/mxv - .byte BEND , c_v+8 - .byte N10 , Gn3 , v127 - .byte W01 - .byte VOL , 84*se_m_ember_mvl/mxv - .byte W01 - .byte 97*se_m_ember_mvl/mxv - .byte BEND , c_v+16 - .byte W01 - .byte VOL , 110*se_m_ember_mvl/mxv - .byte W01 - .byte BEND , c_v+7 - .byte W02 - .byte c_v-12 - .byte W01 - .byte VOL , 89*se_m_ember_mvl/mxv - .byte W01 - .byte 64*se_m_ember_mvl/mxv - .byte BEND , c_v-42 - .byte W01 - .byte VOL , 34*se_m_ember_mvl/mxv - .byte W15 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_ember: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_ember_pri @ Priority - .byte se_m_ember_rev @ Reverb. - - .word se_m_ember_grp - - .word se_m_ember_1 - - .end diff --git a/sound/songs/se_m_encore.s b/sound/songs/se_m_encore.s deleted file mode 100644 index cf13ab761..000000000 --- a/sound/songs/se_m_encore.s +++ /dev/null @@ -1,58 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_encore_grp, voicegroup128 - .equ se_m_encore_pri, 4 - .equ se_m_encore_rev, reverb_set+50 - .equ se_m_encore_mvl, 127 - .equ se_m_encore_key, 0 - .equ se_m_encore_tbs, 1 - .equ se_m_encore_exg, 0 - .equ se_m_encore_cmp, 1 - - .section .rodata - .global se_m_encore - .align 2 - -@********************** Track 1 **********************@ - -se_m_encore_1: - .byte KEYSH , se_m_encore_key+0 - .byte TEMPO , 150*se_m_encore_tbs/2 - .byte VOICE , 59 - .byte BENDR , 12 - .byte VOL , 110*se_m_encore_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N06 , En3 , v127 - .byte W01 - .byte PAN , c_v+8 - .byte W01 - .byte c_v-9 - .byte W01 - .byte c_v+14 - .byte W01 - .byte c_v-10 - .byte W02 - .byte c_v+0 - .byte N03 , An3 , v048 - .byte W01 - .byte PAN , c_v+16 - .byte W01 - .byte c_v-16 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_encore: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_encore_pri @ Priority - .byte se_m_encore_rev @ Reverb. - - .word se_m_encore_grp - - .word se_m_encore_1 - - .end diff --git a/sound/songs/se_m_encore2.s b/sound/songs/se_m_encore2.s deleted file mode 100644 index 9c53cdfe3..000000000 --- a/sound/songs/se_m_encore2.s +++ /dev/null @@ -1,173 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_encore2_grp, voicegroup128 - .equ se_m_encore2_pri, 4 - .equ se_m_encore2_rev, reverb_set+50 - .equ se_m_encore2_mvl, 127 - .equ se_m_encore2_key, 0 - .equ se_m_encore2_tbs, 1 - .equ se_m_encore2_exg, 0 - .equ se_m_encore2_cmp, 1 - - .section .rodata - .global se_m_encore2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_encore2_1: - .byte KEYSH , se_m_encore2_key+0 - .byte TEMPO , 150*se_m_encore2_tbs/2 - .byte VOICE , 60 - .byte BENDR , 12 - .byte VOL , 25*se_m_encore2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte TIE , Cn3 , v127 - .byte W01 - .byte PAN , c_v+2 - .byte W01 - .byte c_v+5 - .byte W01 - .byte VOL , 34*se_m_encore2_mvl/mxv - .byte W01 - .byte PAN , c_v+2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte VOL , 46*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W01 - .byte c_v-4 - .byte W02 - .byte VOL , 56*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte c_v+5 - .byte W01 - .byte VOL , 70*se_m_encore2_mvl/mxv - .byte W01 - .byte PAN , c_v+2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte VOL , 80*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W01 - .byte c_v-4 - .byte W02 - .byte VOL , 88*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte VOL , 96*se_m_encore2_mvl/mxv - .byte PAN , c_v+5 - .byte W02 - .byte c_v+2 - .byte W02 - .byte VOL , 100*se_m_encore2_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v-2 - .byte W01 - .byte c_v-4 - .byte W02 - .byte c_v-2 - .byte W02 -se_m_encore2_1_000: - .byte PAN , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte c_v+5 - .byte W02 - .byte c_v+2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v-2 - .byte W01 - .byte c_v-4 - .byte W02 - .byte c_v-2 - .byte W02 - .byte PEND - .byte PATT - .word se_m_encore2_1_000 - .byte PATT - .word se_m_encore2_1_000 - .byte PATT - .word se_m_encore2_1_000 - .byte PATT - .word se_m_encore2_1_000 - .byte PATT - .word se_m_encore2_1_000 - .byte PATT - .word se_m_encore2_1_000 - .byte VOL , 96*se_m_encore2_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte c_v+5 - .byte W01 - .byte VOL , 92*se_m_encore2_mvl/mxv - .byte W01 - .byte PAN , c_v+2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte VOL , 84*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W01 - .byte c_v-4 - .byte W02 - .byte VOL , 72*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte VOL , 63*se_m_encore2_mvl/mxv - .byte PAN , c_v+5 - .byte W02 - .byte VOL , 52*se_m_encore2_mvl/mxv - .byte PAN , c_v+2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte VOL , 37*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W01 - .byte c_v-4 - .byte W01 - .byte VOL , 22*se_m_encore2_mvl/mxv - .byte W01 - .byte 12*se_m_encore2_mvl/mxv - .byte PAN , c_v-2 - .byte W02 - .byte EOT , Cn3 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_encore2: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_encore2_pri @ Priority - .byte se_m_encore2_rev @ Reverb. - - .word se_m_encore2_grp - - .word se_m_encore2_1 - - .end diff --git a/sound/songs/se_m_explosion.s b/sound/songs/se_m_explosion.s deleted file mode 100644 index c93f485b8..000000000 --- a/sound/songs/se_m_explosion.s +++ /dev/null @@ -1,118 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_explosion_grp, voicegroup128 - .equ se_m_explosion_pri, 4 - .equ se_m_explosion_rev, reverb_set+50 - .equ se_m_explosion_mvl, 127 - .equ se_m_explosion_key, 0 - .equ se_m_explosion_tbs, 1 - .equ se_m_explosion_exg, 0 - .equ se_m_explosion_cmp, 1 - - .section .rodata - .global se_m_explosion - .align 2 - -@********************** Track 1 **********************@ - -se_m_explosion_1: - .byte KEYSH , se_m_explosion_key+0 - .byte TEMPO , 150*se_m_explosion_tbs/2 - .byte VOICE , 41 - .byte VOL , 125*se_m_explosion_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N01 , Ds3 , v127 - .byte W01 - .byte As2 - .byte W02 - .byte PAN , c_v-8 - .byte N02 , Gn3 - .byte W01 - .byte PAN , c_v+7 - .byte W03 - .byte c_v+0 - .byte N01 , Ds3 - .byte W01 - .byte As2 - .byte W02 - .byte N54 , Fn3 - .byte W11 - .byte BEND , c_v+3 - .byte W03 - .byte W02 - .byte PAN , c_v+6 - .byte BEND , c_v+7 - .byte W04 - .byte PAN , c_v+0 - .byte W01 - .byte BEND , c_v+10 - .byte W02 - .byte PAN , c_v-8 - .byte W01 - .byte BEND , c_v+16 - .byte W03 - .byte PAN , c_v+0 - .byte W01 - .byte BEND , c_v+20 - .byte W02 - .byte PAN , c_v+7 - .byte W02 - .byte BEND , c_v+25 - .byte W02 - .byte PAN , c_v+0 - .byte W04 - .byte c_v-8 - .byte BEND , c_v+20 - .byte W03 - .byte PAN , c_v+6 - .byte W01 - .byte BEND , c_v+10 - .byte W03 - .byte PAN , c_v-8 - .byte W02 - .byte BEND , c_v+3 - .byte W01 - .byte PAN , c_v+7 - .byte W04 - .byte c_v-8 - .byte W10 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_explosion_2: - .byte KEYSH , se_m_explosion_key+0 - .byte VOICE , 4 - .byte VOL , 125*se_m_explosion_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+1 - .byte N02 , Cn3 , v052 - .byte W01 - .byte VOL , 74*se_m_explosion_mvl/mxv - .byte W06 - .byte 125*se_m_explosion_mvl/mxv - .byte N02 - .byte W01 - .byte VOL , 74*se_m_explosion_mvl/mxv - .byte W16 - .byte W24 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_explosion: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_explosion_pri @ Priority - .byte se_m_explosion_rev @ Reverb. - - .word se_m_explosion_grp - - .word se_m_explosion_1 - .word se_m_explosion_2 - - .end diff --git a/sound/songs/se_m_faint_attack.s b/sound/songs/se_m_faint_attack.s deleted file mode 100644 index ce53c7173..000000000 --- a/sound/songs/se_m_faint_attack.s +++ /dev/null @@ -1,89 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_faint_attack_grp, voicegroup128 - .equ se_m_faint_attack_pri, 4 - .equ se_m_faint_attack_rev, reverb_set+50 - .equ se_m_faint_attack_mvl, 127 - .equ se_m_faint_attack_key, 0 - .equ se_m_faint_attack_tbs, 1 - .equ se_m_faint_attack_exg, 0 - .equ se_m_faint_attack_cmp, 1 - - .section .rodata - .global se_m_faint_attack - .align 2 - -@********************** Track 1 **********************@ - -se_m_faint_attack_1: - .byte KEYSH , se_m_faint_attack_key+0 - .byte TEMPO , 150*se_m_faint_attack_tbs/2 - .byte VOICE , 45 - .byte VOL , 100*se_m_faint_attack_mvl/mxv - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte BEND , c_v-5 - .byte N06 , Cn3 , v112 - .byte W01 - .byte BEND , c_v+10 - .byte W01 - .byte c_v+37 - .byte W01 - .byte c_v+55 - .byte W03 - .byte PAN , c_v-9 - .byte BEND , c_v-5 - .byte N06 , Cs3 , v096 - .byte W01 - .byte BEND , c_v+10 - .byte W01 - .byte c_v+37 - .byte W01 - .byte c_v+55 - .byte W03 - .byte PAN , c_v+7 - .byte BEND , c_v-5 - .byte N06 , Dn3 , v080 - .byte W01 - .byte BEND , c_v+10 - .byte W01 - .byte c_v+37 - .byte W01 - .byte c_v+55 - .byte W03 - .byte PAN , c_v-14 - .byte BEND , c_v-5 - .byte N06 , Ds3 , v060 - .byte W01 - .byte BEND , c_v+10 - .byte W01 - .byte c_v+37 - .byte W01 - .byte c_v+55 - .byte W03 - .byte PAN , c_v+14 - .byte BEND , c_v-5 - .byte N06 , En3 , v040 - .byte W01 - .byte BEND , c_v+10 - .byte W01 - .byte c_v+37 - .byte W01 - .byte c_v+55 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_faint_attack: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_faint_attack_pri @ Priority - .byte se_m_faint_attack_rev @ Reverb. - - .word se_m_faint_attack_grp - - .word se_m_faint_attack_1 - - .end diff --git a/sound/songs/se_m_flame_wheel.s b/sound/songs/se_m_flame_wheel.s deleted file mode 100644 index 797073466..000000000 --- a/sound/songs/se_m_flame_wheel.s +++ /dev/null @@ -1,124 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_flame_wheel_grp, voicegroup128 - .equ se_m_flame_wheel_pri, 4 - .equ se_m_flame_wheel_rev, reverb_set+50 - .equ se_m_flame_wheel_mvl, 127 - .equ se_m_flame_wheel_key, 0 - .equ se_m_flame_wheel_tbs, 1 - .equ se_m_flame_wheel_exg, 0 - .equ se_m_flame_wheel_cmp, 1 - - .section .rodata - .global se_m_flame_wheel - .align 2 - -@********************** Track 1 **********************@ - -se_m_flame_wheel_1: - .byte KEYSH , se_m_flame_wheel_key+0 - .byte TEMPO , 150*se_m_flame_wheel_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 22*se_m_flame_wheel_mvl/mxv - .byte BEND , c_v+0 - .byte N30 , Dn4 , v127 - .byte W01 - .byte VOL , 49*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte 71*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte 95*se_m_flame_wheel_mvl/mxv - .byte BEND , c_v+8 - .byte W01 - .byte VOL , 110*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte BEND , c_v+16 - .byte W01 - .byte VOL , 95*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte 88*se_m_flame_wheel_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+7 - .byte W01 - .byte VOL , 93*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte 110*se_m_flame_wheel_mvl/mxv - .byte PAN , c_v-5 - .byte BEND , c_v+0 - .byte W02 - .byte VOL , 86*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-9 - .byte W01 - .byte VOL , 63*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte 37*se_m_flame_wheel_mvl/mxv - .byte BEND , c_v-24 - .byte W03 - .byte VOL , 13*se_m_flame_wheel_mvl/mxv - .byte BEND , c_v-46 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_flame_wheel_2: - .byte KEYSH , se_m_flame_wheel_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 22*se_m_flame_wheel_mvl/mxv - .byte N30 , Gn2 , v032 - .byte W01 - .byte VOL , 49*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte 71*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte 95*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte 110*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte W01 - .byte 95*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte 88*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte 93*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte 110*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte 86*se_m_flame_wheel_mvl/mxv - .byte W01 - .byte W01 - .byte 63*se_m_flame_wheel_mvl/mxv - .byte W02 - .byte 37*se_m_flame_wheel_mvl/mxv - .byte W03 - .byte 13*se_m_flame_wheel_mvl/mxv - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_flame_wheel: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_flame_wheel_pri @ Priority - .byte se_m_flame_wheel_rev @ Reverb. - - .word se_m_flame_wheel_grp - - .word se_m_flame_wheel_1 - .word se_m_flame_wheel_2 - - .end diff --git a/sound/songs/se_m_flame_wheel2.s b/sound/songs/se_m_flame_wheel2.s deleted file mode 100644 index 21f911b0b..000000000 --- a/sound/songs/se_m_flame_wheel2.s +++ /dev/null @@ -1,99 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_flame_wheel2_grp, voicegroup128 - .equ se_m_flame_wheel2_pri, 4 - .equ se_m_flame_wheel2_rev, reverb_set+50 - .equ se_m_flame_wheel2_mvl, 127 - .equ se_m_flame_wheel2_key, 0 - .equ se_m_flame_wheel2_tbs, 1 - .equ se_m_flame_wheel2_exg, 0 - .equ se_m_flame_wheel2_cmp, 1 - - .section .rodata - .global se_m_flame_wheel2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_flame_wheel2_1: - .byte KEYSH , se_m_flame_wheel2_key+0 - .byte TEMPO , 150*se_m_flame_wheel2_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_flame_wheel2_mvl/mxv - .byte BEND , c_v+0 - .byte N48 , Cn4 , v127 - .byte W06 - .byte PAN , c_v+4 - .byte W03 - .byte BEND , c_v+2 - .byte W03 - .byte PAN , c_v+10 - .byte W03 - .byte BEND , c_v+5 - .byte W03 - .byte VOL , 98*se_m_flame_wheel2_mvl/mxv - .byte PAN , c_v+4 - .byte W03 - .byte BEND , c_v+3 - .byte W03 - .byte VOL , 88*se_m_flame_wheel2_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v-5 - .byte W03 - .byte VOL , 68*se_m_flame_wheel2_mvl/mxv - .byte PAN , c_v-5 - .byte W03 - .byte c_v+7 - .byte BEND , c_v-9 - .byte W03 - .byte VOL , 44*se_m_flame_wheel2_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v-15 - .byte W03 - .byte VOL , 13*se_m_flame_wheel2_mvl/mxv - .byte BEND , c_v-24 - .byte W03 - .byte c_v-40 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_flame_wheel2_2: - .byte KEYSH , se_m_flame_wheel2_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_flame_wheel2_mvl/mxv - .byte N48 , Gn2 , v032 - .byte W18 - .byte VOL , 98*se_m_flame_wheel2_mvl/mxv - .byte W06 - .byte 88*se_m_flame_wheel2_mvl/mxv - .byte W06 - .byte 68*se_m_flame_wheel2_mvl/mxv - .byte W06 - .byte 44*se_m_flame_wheel2_mvl/mxv - .byte W06 - .byte 13*se_m_flame_wheel2_mvl/mxv - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_flame_wheel2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_flame_wheel2_pri @ Priority - .byte se_m_flame_wheel2_rev @ Reverb. - - .word se_m_flame_wheel2_grp - - .word se_m_flame_wheel2_1 - .word se_m_flame_wheel2_2 - - .end diff --git a/sound/songs/se_m_flamethrower.s b/sound/songs/se_m_flamethrower.s deleted file mode 100644 index 29438337f..000000000 --- a/sound/songs/se_m_flamethrower.s +++ /dev/null @@ -1,175 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_flamethrower_grp, voicegroup128 - .equ se_m_flamethrower_pri, 4 - .equ se_m_flamethrower_rev, reverb_set+50 - .equ se_m_flamethrower_mvl, 127 - .equ se_m_flamethrower_key, 0 - .equ se_m_flamethrower_tbs, 1 - .equ se_m_flamethrower_exg, 0 - .equ se_m_flamethrower_cmp, 1 - - .section .rodata - .global se_m_flamethrower - .align 2 - -@********************** Track 1 **********************@ - -se_m_flamethrower_1: - .byte KEYSH , se_m_flamethrower_key+0 - .byte TEMPO , 150*se_m_flamethrower_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte VOL , 110*se_m_flamethrower_mvl/mxv - .byte PAN , c_v+4 - .byte BEND , c_v+50 - .byte TIE , Cn3 , v127 - .byte W01 - .byte BEND , c_v+32 - .byte W02 - .byte PAN , c_v-5 - .byte BEND , c_v+16 - .byte W02 - .byte c_v-8 - .byte W02 - .byte PAN , c_v+8 - .byte BEND , c_v-15 - .byte W02 - .byte c_v-10 - .byte W01 - .byte PAN , c_v-9 - .byte W02 - .byte BEND , c_v+0 - .byte W02 - .byte PAN , c_v+4 - .byte BEND , c_v+2 - .byte W04 - .byte PAN , c_v-5 - .byte BEND , c_v+10 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+16 - .byte W03 - .byte PAN , c_v+4 - .byte W01 - .byte BEND , c_v+21 - .byte W02 - .byte PAN , c_v-5 - .byte W04 - .byte c_v+8 - .byte W03 - .byte c_v-9 - .byte W04 - .byte c_v+4 - .byte W04 - .byte c_v-5 - .byte W03 - .byte c_v+0 - .byte W03 -se_m_flamethrower_1_000: - .byte PAN , c_v+4 - .byte W03 - .byte c_v-5 - .byte W04 - .byte c_v+8 - .byte W03 - .byte c_v-9 - .byte W04 - .byte c_v+4 - .byte W04 - .byte c_v-5 - .byte W03 - .byte c_v+0 - .byte W03 - .byte PEND - .byte PATT - .word se_m_flamethrower_1_000 - .byte PATT - .word se_m_flamethrower_1_000 - .byte PATT - .word se_m_flamethrower_1_000 - .byte PAN , c_v+4 - .byte W03 - .byte c_v-5 - .byte W03 - .byte VOL , 103*se_m_flamethrower_mvl/mxv - .byte W01 - .byte PAN , c_v+8 - .byte W03 - .byte VOL , 96*se_m_flamethrower_mvl/mxv - .byte PAN , c_v-9 - .byte W04 - .byte c_v+4 - .byte W02 - .byte VOL , 88*se_m_flamethrower_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W03 - .byte c_v+0 - .byte W01 - .byte VOL , 73*se_m_flamethrower_mvl/mxv - .byte W02 - .byte PAN , c_v+4 - .byte W03 - .byte VOL , 62*se_m_flamethrower_mvl/mxv - .byte PAN , c_v-5 - .byte W04 - .byte c_v+8 - .byte W01 - .byte VOL , 47*se_m_flamethrower_mvl/mxv - .byte W02 - .byte PAN , c_v-9 - .byte W03 - .byte VOL , 27*se_m_flamethrower_mvl/mxv - .byte W01 - .byte PAN , c_v+4 - .byte W04 - .byte VOL , 10*se_m_flamethrower_mvl/mxv - .byte PAN , c_v-5 - .byte W03 - .byte c_v+0 - .byte W03 - .byte EOT , Cn3 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_flamethrower_2: - .byte KEYSH , se_m_flamethrower_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_flamethrower_mvl/mxv - .byte N24 , Fn2 , v060 - .byte W10 - .byte VOL , 99*se_m_flamethrower_mvl/mxv - .byte W05 - .byte 82*se_m_flamethrower_mvl/mxv - .byte W04 - .byte 54*se_m_flamethrower_mvl/mxv - .byte W02 - .byte 25*se_m_flamethrower_mvl/mxv - .byte W03 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_flamethrower: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_flamethrower_pri @ Priority - .byte se_m_flamethrower_rev @ Reverb. - - .word se_m_flamethrower_grp - - .word se_m_flamethrower_1 - .word se_m_flamethrower_2 - - .end diff --git a/sound/songs/se_m_flatter.s b/sound/songs/se_m_flatter.s deleted file mode 100644 index e3746c990..000000000 --- a/sound/songs/se_m_flatter.s +++ /dev/null @@ -1,67 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_flatter_grp, voicegroup128 - .equ se_m_flatter_pri, 4 - .equ se_m_flatter_rev, reverb_set+50 - .equ se_m_flatter_mvl, 127 - .equ se_m_flatter_key, 0 - .equ se_m_flatter_tbs, 1 - .equ se_m_flatter_exg, 0 - .equ se_m_flatter_cmp, 1 - - .section .rodata - .global se_m_flatter - .align 2 - -@********************** Track 1 **********************@ - -se_m_flatter_1: - .byte KEYSH , se_m_flatter_key+0 - .byte TEMPO , 150*se_m_flatter_tbs/2 - .byte VOICE , 41 - .byte VOL , 100*se_m_flatter_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N01 , Dn5 , v127 - .byte W01 - .byte Gn4 - .byte W01 - .byte N09 , En5 - .byte W02 - .byte PAN , c_v+6 - .byte W02 - .byte VOL , 92*se_m_flatter_mvl/mxv - .byte PAN , c_v-8 - .byte W01 - .byte VOL , 83*se_m_flatter_mvl/mxv - .byte PAN , c_v+6 - .byte W01 - .byte VOL , 71*se_m_flatter_mvl/mxv - .byte PAN , c_v-8 - .byte BEND , c_v-4 - .byte W01 - .byte VOL , 46*se_m_flatter_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 22*se_m_flatter_mvl/mxv - .byte PAN , c_v-12 - .byte BEND , c_v-15 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_flatter: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_flatter_pri @ Priority - .byte se_m_flatter_rev @ Reverb. - - .word se_m_flatter_grp - - .word se_m_flatter_1 - - .end diff --git a/sound/songs/se_m_giga_drain.s b/sound/songs/se_m_giga_drain.s deleted file mode 100644 index 4596a0252..000000000 --- a/sound/songs/se_m_giga_drain.s +++ /dev/null @@ -1,81 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_giga_drain_grp, voicegroup128 - .equ se_m_giga_drain_pri, 4 - .equ se_m_giga_drain_rev, reverb_set+50 - .equ se_m_giga_drain_mvl, 127 - .equ se_m_giga_drain_key, 0 - .equ se_m_giga_drain_tbs, 1 - .equ se_m_giga_drain_exg, 0 - .equ se_m_giga_drain_cmp, 1 - - .section .rodata - .global se_m_giga_drain - .align 2 - -@********************** Track 1 **********************@ - -se_m_giga_drain_1: - .byte KEYSH , se_m_giga_drain_key+0 - .byte TEMPO , 150*se_m_giga_drain_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_giga_drain_mvl/mxv - .byte BEND , c_v+0 - .byte N03 , Gn2 , v127 - .byte W02 - .byte PAN , c_v+3 - .byte BEND , c_v+2 - .byte W01 - .byte VOICE , 23 - .byte N02 , Cn3 , v104 - .byte W01 - .byte PAN , c_v-3 - .byte BEND , c_v+5 - .byte W02 - .byte VOICE , 36 - .byte N02 , Cn2 , v127 - .byte W01 - .byte PAN , c_v+7 - .byte W01 - .byte VOICE , 23 - .byte BEND , c_v+4 - .byte N06 , Cn3 , v104 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-5 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-12 - .byte W01 - .byte c_v-23 - .byte W01 - .byte VOICE , 36 - .byte BEND , c_v+0 - .byte N03 , An2 , v100 - .byte W04 - .byte PAN , c_v+5 - .byte N03 , Bn2 , v076 - .byte W03 - .byte PAN , c_v-6 - .byte N02 , Cs3 , v040 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_giga_drain: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_giga_drain_pri @ Priority - .byte se_m_giga_drain_rev @ Reverb. - - .word se_m_giga_drain_grp - - .word se_m_giga_drain_1 - - .end diff --git a/sound/songs/se_m_grasswhistle.s b/sound/songs/se_m_grasswhistle.s deleted file mode 100644 index 111bc2166..000000000 --- a/sound/songs/se_m_grasswhistle.s +++ /dev/null @@ -1,130 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_grasswhistle_grp, voicegroup128 - .equ se_m_grasswhistle_pri, 4 - .equ se_m_grasswhistle_rev, reverb_set+50 - .equ se_m_grasswhistle_mvl, 127 - .equ se_m_grasswhistle_key, 0 - .equ se_m_grasswhistle_tbs, 1 - .equ se_m_grasswhistle_exg, 0 - .equ se_m_grasswhistle_cmp, 1 - - .section .rodata - .global se_m_grasswhistle - .align 2 - -@********************** Track 1 **********************@ - -se_m_grasswhistle_1: - .byte KEYSH , se_m_grasswhistle_key+0 - .byte TEMPO , 100*se_m_grasswhistle_tbs/2 - .byte VOICE , 64 - .byte BENDR , 2 - .byte LFOS , 40 - .byte PAN , c_v+0 - .byte VOL , 70*se_m_grasswhistle_mvl/mxv - .byte BEND , c_v-16 - .byte N21 , Gn5 , v112 - .byte W03 - .byte BEND , c_v-8 - .byte W03 - .byte c_v+0 - .byte W03 - .byte MOD , 10 - .byte W03 - .byte W09 - .byte 0 - .byte W03 - .byte N09 , An5 - .byte W12 - .byte En5 - .byte W12 - .byte BEND , c_v-14 - .byte N66 , Gn5 - .byte W06 - .byte BEND , c_v-8 - .byte W06 - .byte c_v-4 - .byte W06 - .byte c_v+0 - .byte W06 - .byte MOD , 10 - .byte W12 - .byte W12 - .byte W06 - .byte VOL , 61*se_m_grasswhistle_mvl/mxv - .byte W06 - .byte 51*se_m_grasswhistle_mvl/mxv - .byte W06 - .byte 36*se_m_grasswhistle_mvl/mxv - .byte W06 - .byte 18*se_m_grasswhistle_mvl/mxv - .byte W12 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_grasswhistle_2: - .byte KEYSH , se_m_grasswhistle_key+0 - .byte VOICE , 64 - .byte BENDR , 2 - .byte LFOS , 40 - .byte VOL , 70*se_m_grasswhistle_mvl/mxv - .byte W12 - .byte PAN , c_v+12 - .byte BEND , c_v-16 - .byte N21 , Gn5 , v072 - .byte W03 - .byte BEND , c_v-8 - .byte W03 - .byte c_v+0 - .byte W03 - .byte MOD , 10 - .byte W03 - .byte W09 - .byte 0 - .byte W03 - .byte PAN , c_v-12 - .byte N09 , An5 - .byte W12 - .byte PAN , c_v+14 - .byte N09 , En5 - .byte W12 - .byte PAN , c_v-15 - .byte BEND , c_v-14 - .byte N66 , Gn5 - .byte W06 - .byte BEND , c_v-8 - .byte W06 - .byte c_v-4 - .byte W06 - .byte c_v+0 - .byte W06 - .byte MOD , 10 - .byte W12 - .byte W06 - .byte VOL , 61*se_m_grasswhistle_mvl/mxv - .byte W06 - .byte 51*se_m_grasswhistle_mvl/mxv - .byte W06 - .byte 36*se_m_grasswhistle_mvl/mxv - .byte W06 - .byte 18*se_m_grasswhistle_mvl/mxv - .byte W12 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_grasswhistle: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_grasswhistle_pri @ Priority - .byte se_m_grasswhistle_rev @ Reverb. - - .word se_m_grasswhistle_grp - - .word se_m_grasswhistle_1 - .word se_m_grasswhistle_2 - - .end diff --git a/sound/songs/se_m_hail.s b/sound/songs/se_m_hail.s deleted file mode 100644 index 0c04af212..000000000 --- a/sound/songs/se_m_hail.s +++ /dev/null @@ -1,98 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_hail_grp, voicegroup128 - .equ se_m_hail_pri, 4 - .equ se_m_hail_rev, reverb_set+50 - .equ se_m_hail_mvl, 127 - .equ se_m_hail_key, 0 - .equ se_m_hail_tbs, 1 - .equ se_m_hail_exg, 0 - .equ se_m_hail_cmp, 1 - - .section .rodata - .global se_m_hail - .align 2 - -@********************** Track 1 **********************@ - -se_m_hail_1: - .byte KEYSH , se_m_hail_key+0 - .byte TEMPO , 150*se_m_hail_tbs/2 - .byte VOICE , 3 - .byte VOL , 100*se_m_hail_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Fn4 , v112 - .byte W04 - .byte PAN , c_v+6 - .byte N02 , Ds5 , v040 - .byte W02 - .byte W02 - .byte PAN , c_v-5 - .byte N01 , Gn4 , v112 - .byte W01 - .byte PAN , c_v+0 - .byte N01 , Ds5 - .byte W03 - .byte W01 - .byte PAN , c_v+6 - .byte N02 , Ds5 , v020 - .byte W03 - .byte PAN , c_v-5 - .byte N01 , Gn4 , v064 - .byte W02 - .byte PAN , c_v+0 - .byte N01 , Ds5 - .byte W03 - .byte PAN , c_v+11 - .byte N02 , Ds5 , v020 - .byte W03 - .byte W01 - .byte PAN , c_v-13 - .byte N01 , Gn4 , v064 - .byte W01 - .byte PAN , c_v+0 - .byte N01 , Ds5 - .byte W04 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_hail_2: - .byte KEYSH , se_m_hail_key+0 - .byte VOICE , 4 - .byte VOL , 100*se_m_hail_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Dn4 , v040 - .byte W04 - .byte Bn3 - .byte W02 - .byte W03 - .byte Dn4 - .byte W03 - .byte W01 - .byte Bn3 , v032 - .byte W05 - .byte Dn4 - .byte W03 - .byte Bn3 , v012 - .byte W03 - .byte W02 - .byte Dn4 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_hail: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_hail_pri @ Priority - .byte se_m_hail_rev @ Reverb. - - .word se_m_hail_grp - - .word se_m_hail_1 - .word se_m_hail_2 - - .end diff --git a/sound/songs/se_m_harden.s b/sound/songs/se_m_harden.s deleted file mode 100644 index e9bd888de..000000000 --- a/sound/songs/se_m_harden.s +++ /dev/null @@ -1,74 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_harden_grp, voicegroup128 - .equ se_m_harden_pri, 4 - .equ se_m_harden_rev, reverb_set+50 - .equ se_m_harden_mvl, 127 - .equ se_m_harden_key, 0 - .equ se_m_harden_tbs, 1 - .equ se_m_harden_exg, 0 - .equ se_m_harden_cmp, 1 - - .section .rodata - .global se_m_harden - .align 2 - -@********************** Track 1 **********************@ - -se_m_harden_1: - .byte KEYSH , se_m_harden_key+0 - .byte TEMPO , 150*se_m_harden_tbs/2 - .byte VOICE , 28 - .byte VOL , 100*se_m_harden_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+16 - .byte N03 , Gs3 , v080 - .byte W01 - .byte BEND , c_v+38 - .byte W01 - .byte c_v+62 - .byte W02 - .byte N17 , Gs4 , v096 - .byte W03 - .byte PAN , c_v+6 - .byte W02 - .byte c_v+0 - .byte W03 - .byte c_v-8 - .byte W02 - .byte c_v+0 - .byte W02 - .byte c_v+6 - .byte W03 - .byte c_v+0 - .byte W05 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_harden_2: - .byte KEYSH , se_m_harden_key+0 - .byte VOICE , 4 - .byte VOL , 100*se_m_harden_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , En4 , v060 - .byte W04 - .byte N17 , Gs4 , v096 - .byte W20 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_harden: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_harden_pri @ Priority - .byte se_m_harden_rev @ Reverb. - - .word se_m_harden_grp - - .word se_m_harden_1 - .word se_m_harden_2 - - .end diff --git a/sound/songs/se_m_haze.s b/sound/songs/se_m_haze.s deleted file mode 100644 index 4bf61faa6..000000000 --- a/sound/songs/se_m_haze.s +++ /dev/null @@ -1,250 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_haze_grp, voicegroup128 - .equ se_m_haze_pri, 4 - .equ se_m_haze_rev, reverb_set+50 - .equ se_m_haze_mvl, 127 - .equ se_m_haze_key, 0 - .equ se_m_haze_tbs, 1 - .equ se_m_haze_exg, 0 - .equ se_m_haze_cmp, 1 - - .section .rodata - .global se_m_haze - .align 2 - -@********************** Track 1 **********************@ - -se_m_haze_1: - .byte KEYSH , se_m_haze_key+0 - .byte TEMPO , 190*se_m_haze_tbs/2 - .byte VOICE , 45 - .byte BENDR , 8 - .byte PAN , c_v-47 - .byte VOL , 10*se_m_haze_mvl/mxv - .byte MOD , 30 - .byte BEND , c_v+1 - .byte TIE , As2 , v100 - .byte W03 - .byte VOL , 14*se_m_haze_mvl/mxv - .byte W03 - .byte 22*se_m_haze_mvl/mxv - .byte PAN , c_v-45 - .byte W02 - .byte VOL , 31*se_m_haze_mvl/mxv - .byte W02 - .byte 39*se_m_haze_mvl/mxv - .byte W02 - .byte PAN , c_v-43 - .byte W02 - .byte VOL , 45*se_m_haze_mvl/mxv - .byte W02 - .byte 50*se_m_haze_mvl/mxv - .byte W02 - .byte PAN , c_v-41 - .byte W01 - .byte VOL , 61*se_m_haze_mvl/mxv - .byte W02 - .byte 66*se_m_haze_mvl/mxv - .byte W03 - .byte PAN , c_v-39 - .byte VOL , 73*se_m_haze_mvl/mxv - .byte W02 - .byte 78*se_m_haze_mvl/mxv - .byte W04 - .byte 84*se_m_haze_mvl/mxv - .byte PAN , c_v-37 - .byte W03 - .byte VOL , 91*se_m_haze_mvl/mxv - .byte W03 - .byte 98*se_m_haze_mvl/mxv - .byte PAN , c_v-35 - .byte W02 - .byte VOL , 104*se_m_haze_mvl/mxv - .byte W04 - .byte 110*se_m_haze_mvl/mxv - .byte PAN , c_v-32 - .byte W06 - .byte c_v-28 - .byte W06 - .byte c_v-25 - .byte VOL , 106*se_m_haze_mvl/mxv - .byte W04 - .byte 104*se_m_haze_mvl/mxv - .byte W02 - .byte PAN , c_v-23 - .byte W03 - .byte VOL , 101*se_m_haze_mvl/mxv - .byte W03 - .byte PAN , c_v-20 - .byte W03 - .byte VOL , 97*se_m_haze_mvl/mxv - .byte W03 - .byte PAN , c_v-17 - .byte W02 - .byte VOL , 91*se_m_haze_mvl/mxv - .byte W04 - .byte PAN , c_v-13 - .byte W03 - .byte VOL , 88*se_m_haze_mvl/mxv - .byte W03 - .byte PAN , c_v-10 - .byte W03 - .byte VOL , 81*se_m_haze_mvl/mxv - .byte W03 - .byte PAN , c_v-7 - .byte W04 - .byte VOL , 75*se_m_haze_mvl/mxv - .byte W02 - .byte PAN , c_v-3 - .byte W02 - .byte VOL , 74*se_m_haze_mvl/mxv - .byte W02 - .byte 76*se_m_haze_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 79*se_m_haze_mvl/mxv - .byte W02 - .byte 83*se_m_haze_mvl/mxv - .byte W03 - .byte W01 - .byte 86*se_m_haze_mvl/mxv - .byte W02 - .byte PAN , c_v+2 - .byte VOL , 90*se_m_haze_mvl/mxv - .byte W03 - .byte 95*se_m_haze_mvl/mxv - .byte W03 - .byte 98*se_m_haze_mvl/mxv - .byte W03 - .byte PAN , c_v+7 - .byte VOL , 102*se_m_haze_mvl/mxv - .byte W02 - .byte 104*se_m_haze_mvl/mxv - .byte W04 - .byte PAN , c_v+10 - .byte VOL , 110*se_m_haze_mvl/mxv - .byte W06 - .byte PAN , c_v+14 - .byte W06 - .byte c_v+16 - .byte W02 - .byte VOL , 106*se_m_haze_mvl/mxv - .byte W04 - .byte PAN , c_v+19 - .byte W01 - .byte VOL , 100*se_m_haze_mvl/mxv - .byte W05 - .byte PAN , c_v+22 - .byte VOL , 94*se_m_haze_mvl/mxv - .byte W06 - .byte PAN , c_v+25 - .byte VOL , 88*se_m_haze_mvl/mxv - .byte W04 - .byte 83*se_m_haze_mvl/mxv - .byte W02 - .byte PAN , c_v+27 - .byte W06 - .byte c_v+29 - .byte VOL , 75*se_m_haze_mvl/mxv - .byte W06 - .byte PAN , c_v+32 - .byte VOL , 64*se_m_haze_mvl/mxv - .byte W06 - .byte PAN , c_v+34 - .byte W01 - .byte VOL , 55*se_m_haze_mvl/mxv - .byte W05 - .byte PAN , c_v+38 - .byte W01 - .byte VOL , 47*se_m_haze_mvl/mxv - .byte W05 - .byte PAN , c_v+41 - .byte W01 - .byte VOL , 41*se_m_haze_mvl/mxv - .byte W05 - .byte PAN , c_v+44 - .byte VOL , 32*se_m_haze_mvl/mxv - .byte W03 - .byte 25*se_m_haze_mvl/mxv - .byte W03 - .byte PAN , c_v+47 - .byte W01 - .byte VOL , 12*se_m_haze_mvl/mxv - .byte W03 - .byte 6*se_m_haze_mvl/mxv - .byte W02 - .byte EOT - .byte FINE - -@********************** Track 2 **********************@ - -se_m_haze_2: - .byte KEYSH , se_m_haze_key+0 - .byte VOICE , 70 - .byte BENDR , 8 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_haze_mvl/mxv - .byte BEND , c_v+0 - .byte N24 , Fn4 , v020 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte Fs4 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte Gn4 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte Gs4 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte Gn4 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte Fs4 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte Fn4 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte En4 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte N18 , Ds4 - .byte W06 - .byte W06 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_haze: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_haze_pri @ Priority - .byte se_m_haze_rev @ Reverb. - - .word se_m_haze_grp - - .word se_m_haze_1 - .word se_m_haze_2 - - .end diff --git a/sound/songs/se_m_heal_bell.s b/sound/songs/se_m_heal_bell.s deleted file mode 100644 index b2b17f7d8..000000000 --- a/sound/songs/se_m_heal_bell.s +++ /dev/null @@ -1,83 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_heal_bell_grp, voicegroup128 - .equ se_m_heal_bell_pri, 4 - .equ se_m_heal_bell_rev, reverb_set+50 - .equ se_m_heal_bell_mvl, 127 - .equ se_m_heal_bell_key, 0 - .equ se_m_heal_bell_tbs, 1 - .equ se_m_heal_bell_exg, 0 - .equ se_m_heal_bell_cmp, 1 - - .section .rodata - .global se_m_heal_bell - .align 2 - -@********************** Track 1 **********************@ - -se_m_heal_bell_1: - .byte KEYSH , se_m_heal_bell_key+0 - .byte TEMPO , 150*se_m_heal_bell_tbs/2 - .byte VOICE , 51 - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte VOL , 90*se_m_heal_bell_mvl/mxv - .byte BEND , c_v+4 - .byte N03 , As5 , v100 - .byte W01 - .byte PAN , c_v-13 - .byte W01 - .byte c_v+11 - .byte W01 - .byte c_v+1 - .byte N01 , An5 - .byte W01 - .byte MOD , 7 - .byte N18 , Bn5 - .byte W02 - .byte PAN , c_v+11 - .byte W01 - .byte MOD , 0 - .byte PAN , c_v-14 - .byte W01 - .byte c_v+11 - .byte W01 - .byte c_v-13 - .byte W01 - .byte c_v+11 - .byte W02 - .byte c_v-14 - .byte W01 - .byte c_v+11 - .byte W01 - .byte c_v-13 - .byte W01 - .byte c_v+11 - .byte W01 - .byte MOD , 7 - .byte PAN , c_v-14 - .byte W02 - .byte c_v+11 - .byte W01 - .byte c_v-14 - .byte W01 - .byte c_v+11 - .byte W01 - .byte c_v-13 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_heal_bell: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_heal_bell_pri @ Priority - .byte se_m_heal_bell_rev @ Reverb. - - .word se_m_heal_bell_grp - - .word se_m_heal_bell_1 - - .end diff --git a/sound/songs/se_m_heat_wave.s b/sound/songs/se_m_heat_wave.s deleted file mode 100644 index a4b5cc896..000000000 --- a/sound/songs/se_m_heat_wave.s +++ /dev/null @@ -1,206 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_heat_wave_grp, voicegroup128 - .equ se_m_heat_wave_pri, 4 - .equ se_m_heat_wave_rev, reverb_set+50 - .equ se_m_heat_wave_mvl, 127 - .equ se_m_heat_wave_key, 0 - .equ se_m_heat_wave_tbs, 1 - .equ se_m_heat_wave_exg, 0 - .equ se_m_heat_wave_cmp, 1 - - .section .rodata - .global se_m_heat_wave - .align 2 - -@********************** Track 1 **********************@ - -se_m_heat_wave_1: - .byte KEYSH , se_m_heat_wave_key+0 - .byte TEMPO , 150*se_m_heat_wave_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 23*se_m_heat_wave_mvl/mxv - .byte BEND , c_v+0 - .byte TIE , Fn4 , v127 - .byte W01 - .byte VOL , 51*se_m_heat_wave_mvl/mxv - .byte W01 - .byte 75*se_m_heat_wave_mvl/mxv - .byte W01 - .byte 99*se_m_heat_wave_mvl/mxv - .byte BEND , c_v+8 - .byte W01 - .byte VOL , 115*se_m_heat_wave_mvl/mxv - .byte W02 - .byte PAN , c_v+6 - .byte BEND , c_v+16 - .byte W01 - .byte VOL , 99*se_m_heat_wave_mvl/mxv - .byte W02 - .byte 92*se_m_heat_wave_mvl/mxv - .byte BEND , c_v+7 - .byte W01 - .byte VOL , 97*se_m_heat_wave_mvl/mxv - .byte W02 - .byte 105*se_m_heat_wave_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 110*se_m_heat_wave_mvl/mxv - .byte BEND , c_v-9 - .byte W03 - .byte PAN , c_v-8 - .byte BEND , c_v-24 - .byte W03 - .byte VOL , 115*se_m_heat_wave_mvl/mxv - .byte BEND , c_v-38 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v-41 - .byte W04 - .byte c_v-45 - .byte W02 - .byte PAN , c_v+6 - .byte W02 - .byte BEND , c_v-39 - .byte W04 - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v-35 - .byte W03 - .byte PAN , c_v-8 - .byte W03 - .byte BEND , c_v-30 - .byte W03 - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v-26 - .byte W03 - .byte PAN , c_v+6 - .byte W01 - .byte BEND , c_v-22 - .byte W05 - .byte PAN , c_v+0 - .byte BEND , c_v-18 - .byte W04 - .byte c_v-13 - .byte W02 - .byte PAN , c_v-8 - .byte W06 - .byte c_v+0 - .byte W06 - .byte c_v+6 - .byte W03 - .byte BEND , c_v-7 - .byte W03 - .byte PAN , c_v+0 - .byte W04 - .byte BEND , c_v-3 - .byte W02 - .byte PAN , c_v-8 - .byte VOL , 113*se_m_heat_wave_mvl/mxv - .byte W04 - .byte 110*se_m_heat_wave_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W02 - .byte BEND , c_v-7 - .byte W02 - .byte VOL , 105*se_m_heat_wave_mvl/mxv - .byte W02 - .byte PAN , c_v+6 - .byte W03 - .byte VOL , 98*se_m_heat_wave_mvl/mxv - .byte BEND , c_v-11 - .byte W03 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 91*se_m_heat_wave_mvl/mxv - .byte W03 - .byte 81*se_m_heat_wave_mvl/mxv - .byte BEND , c_v-15 - .byte W02 - .byte PAN , c_v-8 - .byte W02 - .byte VOL , 74*se_m_heat_wave_mvl/mxv - .byte W01 - .byte BEND , c_v-22 - .byte W03 - .byte PAN , c_v+0 - .byte VOL , 63*se_m_heat_wave_mvl/mxv - .byte W01 - .byte BEND , c_v-30 - .byte W01 - .byte VOL , 50*se_m_heat_wave_mvl/mxv - .byte W02 - .byte 40*se_m_heat_wave_mvl/mxv - .byte BEND , c_v-39 - .byte W02 - .byte PAN , c_v+6 - .byte W01 - .byte VOL , 28*se_m_heat_wave_mvl/mxv - .byte BEND , c_v-52 - .byte W02 - .byte VOL , 17*se_m_heat_wave_mvl/mxv - .byte W03 - .byte EOT - .byte FINE - -@********************** Track 2 **********************@ - -se_m_heat_wave_2: - .byte KEYSH , se_m_heat_wave_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 23*se_m_heat_wave_mvl/mxv - .byte N30 , Gn2 , v032 - .byte W01 - .byte VOL , 51*se_m_heat_wave_mvl/mxv - .byte W01 - .byte 75*se_m_heat_wave_mvl/mxv - .byte W01 - .byte 99*se_m_heat_wave_mvl/mxv - .byte W01 - .byte 115*se_m_heat_wave_mvl/mxv - .byte W03 - .byte 99*se_m_heat_wave_mvl/mxv - .byte W02 - .byte 92*se_m_heat_wave_mvl/mxv - .byte W01 - .byte 97*se_m_heat_wave_mvl/mxv - .byte W02 - .byte 115*se_m_heat_wave_mvl/mxv - .byte W12 - .byte PAN , c_v+0 - .byte W12 - .byte W12 - .byte c_v+0 - .byte W12 - .byte W12 - .byte c_v+0 - .byte W12 - .byte W12 - .byte c_v+0 - .byte W12 - .byte W12 - .byte c_v+0 - .byte W12 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_heat_wave: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_heat_wave_pri @ Priority - .byte se_m_heat_wave_rev @ Reverb. - - .word se_m_heat_wave_grp - - .word se_m_heat_wave_1 - .word se_m_heat_wave_2 - - .end diff --git a/sound/songs/se_m_hydro_pump.s b/sound/songs/se_m_hydro_pump.s deleted file mode 100644 index 050f6281b..000000000 --- a/sound/songs/se_m_hydro_pump.s +++ /dev/null @@ -1,124 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_hydro_pump_grp, voicegroup128 - .equ se_m_hydro_pump_pri, 4 - .equ se_m_hydro_pump_rev, reverb_set+50 - .equ se_m_hydro_pump_mvl, 127 - .equ se_m_hydro_pump_key, 0 - .equ se_m_hydro_pump_tbs, 1 - .equ se_m_hydro_pump_exg, 0 - .equ se_m_hydro_pump_cmp, 1 - - .section .rodata - .global se_m_hydro_pump - .align 2 - -@********************** Track 1 **********************@ - -se_m_hydro_pump_1: - .byte KEYSH , se_m_hydro_pump_key+0 - .byte TEMPO , 150*se_m_hydro_pump_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 115*se_m_hydro_pump_mvl/mxv - .byte BEND , c_v+0 - .byte TIE , Gn2 , v127 - .byte W06 - .byte PAN , c_v-4 - .byte W06 - .byte c_v-10 - .byte W06 - .byte c_v-5 - .byte W06 - .byte c_v+0 - .byte W06 - .byte c_v+4 - .byte W06 - .byte c_v+11 - .byte W06 - .byte c_v+4 - .byte W06 - .byte c_v+0 - .byte W06 - .byte c_v-4 - .byte W06 - .byte c_v-10 - .byte W06 - .byte c_v-5 - .byte W06 - .byte c_v+0 - .byte W06 - .byte c_v+4 - .byte W06 - .byte c_v+11 - .byte W02 - .byte VOL , 103*se_m_hydro_pump_mvl/mxv - .byte W04 - .byte PAN , c_v+4 - .byte W01 - .byte VOL , 85*se_m_hydro_pump_mvl/mxv - .byte W05 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 71*se_m_hydro_pump_mvl/mxv - .byte W05 - .byte 52*se_m_hydro_pump_mvl/mxv - .byte PAN , c_v-4 - .byte W04 - .byte VOL , 32*se_m_hydro_pump_mvl/mxv - .byte W02 - .byte PAN , c_v-10 - .byte W03 - .byte VOL , 11*se_m_hydro_pump_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 6*se_m_hydro_pump_mvl/mxv - .byte W05 - .byte EOT - .byte FINE - -@********************** Track 2 **********************@ - -se_m_hydro_pump_2: - .byte KEYSH , se_m_hydro_pump_key+0 - .byte VOL , 58*se_m_hydro_pump_mvl/mxv - .byte N14 , Gn3 , v080 - .byte W01 - .byte VOICE , 25 - .byte VOL , 76*se_m_hydro_pump_mvl/mxv - .byte W01 - .byte 89*se_m_hydro_pump_mvl/mxv - .byte W01 - .byte 100*se_m_hydro_pump_mvl/mxv - .byte W01 - .byte 115*se_m_hydro_pump_mvl/mxv - .byte W06 - .byte 90*se_m_hydro_pump_mvl/mxv - .byte W02 - .byte 76*se_m_hydro_pump_mvl/mxv - .byte W01 - .byte 58*se_m_hydro_pump_mvl/mxv - .byte W11 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_hydro_pump: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_hydro_pump_pri @ Priority - .byte se_m_hydro_pump_rev @ Reverb. - - .word se_m_hydro_pump_grp - - .word se_m_hydro_pump_1 - .word se_m_hydro_pump_2 - - .end diff --git a/sound/songs/se_m_hyper_beam.s b/sound/songs/se_m_hyper_beam.s deleted file mode 100644 index bce85a21a..000000000 --- a/sound/songs/se_m_hyper_beam.s +++ /dev/null @@ -1,84 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_hyper_beam_grp, voicegroup128 - .equ se_m_hyper_beam_pri, 4 - .equ se_m_hyper_beam_rev, reverb_set+50 - .equ se_m_hyper_beam_mvl, 127 - .equ se_m_hyper_beam_key, 0 - .equ se_m_hyper_beam_tbs, 1 - .equ se_m_hyper_beam_exg, 0 - .equ se_m_hyper_beam_cmp, 1 - - .section .rodata - .global se_m_hyper_beam - .align 2 - -@********************** Track 1 **********************@ - -se_m_hyper_beam_1: - .byte KEYSH , se_m_hyper_beam_key+0 - .byte TEMPO , 150*se_m_hyper_beam_tbs/2 - .byte VOICE , 18 - .byte VOL , 110*se_m_hyper_beam_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , En3 , v127 - .byte W03 - .byte N01 , As3 - .byte W03 - .byte N02 , Gn3 - .byte W03 - .byte N01 , Cs4 - .byte W03 - .byte PAN , c_v+7 - .byte N02 , En3 , v072 - .byte W03 - .byte N01 , As3 - .byte W03 - .byte PAN , c_v-7 - .byte N02 , Gn3 , v040 - .byte W03 - .byte N01 , Cs4 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_hyper_beam_2: - .byte KEYSH , se_m_hyper_beam_key+0 - .byte VOICE , 5 - .byte VOL , 110*se_m_hyper_beam_mvl/mxv - .byte N01 , Cn3 , v040 - .byte W02 - .byte N01 - .byte W04 - .byte N01 - .byte W02 - .byte N01 - .byte W04 -se_m_hyper_beam_2_000: - .byte N01 , Cn3 , v020 - .byte W02 - .byte N01 - .byte W04 - .byte PEND - .byte PATT - .word se_m_hyper_beam_2_000 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_hyper_beam: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_hyper_beam_pri @ Priority - .byte se_m_hyper_beam_rev @ Reverb. - - .word se_m_hyper_beam_grp - - .word se_m_hyper_beam_1 - .word se_m_hyper_beam_2 - - .end diff --git a/sound/songs/se_m_hyper_beam2.s b/sound/songs/se_m_hyper_beam2.s deleted file mode 100644 index 304fa7b3f..000000000 --- a/sound/songs/se_m_hyper_beam2.s +++ /dev/null @@ -1,115 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_hyper_beam2_grp, voicegroup128 - .equ se_m_hyper_beam2_pri, 4 - .equ se_m_hyper_beam2_rev, reverb_set+50 - .equ se_m_hyper_beam2_mvl, 127 - .equ se_m_hyper_beam2_key, 0 - .equ se_m_hyper_beam2_tbs, 1 - .equ se_m_hyper_beam2_exg, 0 - .equ se_m_hyper_beam2_cmp, 1 - - .section .rodata - .global se_m_hyper_beam2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_hyper_beam2_1: - .byte KEYSH , se_m_hyper_beam2_key+0 - .byte TEMPO , 150*se_m_hyper_beam2_tbs/2 - .byte VOICE , 45 - .byte VOL , 110*se_m_hyper_beam2_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N03 , Gn3 , v092 - .byte W01 - .byte BEND , c_v+11 - .byte W01 - .byte c_v+28 - .byte W01 - .byte c_v+0 - .byte N02 , Cs4 - .byte W01 - .byte BEND , c_v+30 - .byte W02 - .byte c_v+0 - .byte N03 , As3 - .byte W01 - .byte BEND , c_v+11 - .byte W01 - .byte c_v+28 - .byte W01 - .byte c_v+0 - .byte N02 , En4 - .byte W01 - .byte BEND , c_v+30 - .byte W02 - .byte PAN , c_v+7 - .byte BEND , c_v+0 - .byte N03 , Gn3 , v040 - .byte W01 - .byte BEND , c_v+11 - .byte W01 - .byte c_v+28 - .byte W01 - .byte c_v+0 - .byte N02 , Cs4 - .byte W01 - .byte BEND , c_v+30 - .byte W02 - .byte PAN , c_v-7 - .byte BEND , c_v+0 - .byte N03 , As3 , v016 - .byte W01 - .byte BEND , c_v+11 - .byte W01 - .byte c_v+28 - .byte W01 - .byte c_v+0 - .byte N02 , En4 - .byte W01 - .byte BEND , c_v+30 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_hyper_beam2_2: - .byte KEYSH , se_m_hyper_beam2_key+0 - .byte VOICE , 5 - .byte VOL , 110*se_m_hyper_beam2_mvl/mxv - .byte N01 , Cn3 , v032 - .byte W02 - .byte N01 - .byte W04 - .byte N01 - .byte W02 - .byte N01 - .byte W04 -se_m_hyper_beam2_2_000: - .byte N01 , Cn3 , v020 - .byte W02 - .byte N01 - .byte W04 - .byte PEND - .byte PATT - .word se_m_hyper_beam2_2_000 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_hyper_beam2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_hyper_beam2_pri @ Priority - .byte se_m_hyper_beam2_rev @ Reverb. - - .word se_m_hyper_beam2_grp - - .word se_m_hyper_beam2_1 - .word se_m_hyper_beam2_2 - - .end diff --git a/sound/songs/se_m_icy_wind.s b/sound/songs/se_m_icy_wind.s deleted file mode 100644 index d15350525..000000000 --- a/sound/songs/se_m_icy_wind.s +++ /dev/null @@ -1,72 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_icy_wind_grp, voicegroup128 - .equ se_m_icy_wind_pri, 4 - .equ se_m_icy_wind_rev, reverb_set+50 - .equ se_m_icy_wind_mvl, 127 - .equ se_m_icy_wind_key, 0 - .equ se_m_icy_wind_tbs, 1 - .equ se_m_icy_wind_exg, 0 - .equ se_m_icy_wind_cmp, 1 - - .section .rodata - .global se_m_icy_wind - .align 2 - -@********************** Track 1 **********************@ - -se_m_icy_wind_1: - .byte KEYSH , se_m_icy_wind_key+0 - .byte TEMPO , 150*se_m_icy_wind_tbs/2 - .byte VOICE , 3 - .byte VOL , 100*se_m_icy_wind_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Ds4 , v112 - .byte W04 - .byte PAN , c_v+6 - .byte N01 , Bn4 , v040 - .byte W04 - .byte PAN , c_v-5 - .byte N01 , Ds4 , v112 - .byte W01 - .byte PAN , c_v+0 - .byte N01 , Bn4 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_icy_wind_2: - .byte KEYSH , se_m_icy_wind_key+0 - .byte VOICE , 5 - .byte VOL , 100*se_m_icy_wind_mvl/mxv - .byte PAN , c_v+0 - .byte N01 , Dn4 , v040 - .byte W04 - .byte Bn3 - .byte W02 - .byte PAN , c_v-7 - .byte W02 - .byte c_v+9 - .byte W01 - .byte N01 , Dn4 - .byte W01 - .byte PAN , c_v-7 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_icy_wind: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_icy_wind_pri @ Priority - .byte se_m_icy_wind_rev @ Reverb. - - .word se_m_icy_wind_grp - - .word se_m_icy_wind_1 - .word se_m_icy_wind_2 - - .end diff --git a/sound/songs/se_m_lick.s b/sound/songs/se_m_lick.s deleted file mode 100644 index 1aa0c35a2..000000000 --- a/sound/songs/se_m_lick.s +++ /dev/null @@ -1,129 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_lick_grp, voicegroup128 - .equ se_m_lick_pri, 4 - .equ se_m_lick_rev, reverb_set+50 - .equ se_m_lick_mvl, 127 - .equ se_m_lick_key, 0 - .equ se_m_lick_tbs, 1 - .equ se_m_lick_exg, 0 - .equ se_m_lick_cmp, 1 - - .section .rodata - .global se_m_lick - .align 2 - -@********************** Track 1 **********************@ - -se_m_lick_1: - .byte KEYSH , se_m_lick_key+0 - .byte TEMPO , 150*se_m_lick_tbs/2 - .byte VOICE , 31 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_lick_mvl/mxv - .byte BEND , c_v-5 - .byte N32 , Cn3 , v127 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v-9 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-25 - .byte W02 - .byte PAN , c_v+4 - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-6 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v-3 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+6 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v+3 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+9 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v+6 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v+8 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+16 - .byte W02 - .byte PAN , c_v-4 - .byte VOL , 102*se_m_lick_mvl/mxv - .byte BEND , c_v+12 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+16 - .byte W01 - .byte PAN , c_v+4 - .byte VOL , 97*se_m_lick_mvl/mxv - .byte BEND , c_v+18 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+14 - .byte W01 - .byte PAN , c_v-4 - .byte VOL , 92*se_m_lick_mvl/mxv - .byte BEND , c_v+18 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+20 - .byte W01 - .byte PAN , c_v+4 - .byte VOL , 88*se_m_lick_mvl/mxv - .byte BEND , c_v+17 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte W01 - .byte PAN , c_v-4 - .byte VOL , 81*se_m_lick_mvl/mxv - .byte BEND , c_v+16 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 64*se_m_lick_mvl/mxv - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+4 - .byte VOL , 49*se_m_lick_mvl/mxv - .byte BEND , c_v+14 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 25*se_m_lick_mvl/mxv - .byte BEND , c_v+11 - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_lick: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_lick_pri @ Priority - .byte se_m_lick_rev @ Reverb. - - .word se_m_lick_grp - - .word se_m_lick_1 - - .end diff --git a/sound/songs/se_m_lock_on.s b/sound/songs/se_m_lock_on.s deleted file mode 100644 index d8e1de5b0..000000000 --- a/sound/songs/se_m_lock_on.s +++ /dev/null @@ -1,69 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_lock_on_grp, voicegroup128 - .equ se_m_lock_on_pri, 4 - .equ se_m_lock_on_rev, reverb_set+50 - .equ se_m_lock_on_mvl, 127 - .equ se_m_lock_on_key, 0 - .equ se_m_lock_on_tbs, 1 - .equ se_m_lock_on_exg, 0 - .equ se_m_lock_on_cmp, 1 - - .section .rodata - .global se_m_lock_on - .align 2 - -@********************** Track 1 **********************@ - -se_m_lock_on_1: - .byte KEYSH , se_m_lock_on_key+0 - .byte TEMPO , 150*se_m_lock_on_tbs/2 - .byte VOICE , 40 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_lock_on_mvl/mxv - .byte BEND , c_v+0 - .byte N01 , Cn4 , v100 - .byte W01 - .byte Gn3 , v064 - .byte W01 - .byte N03 , Bn3 , v100 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+6 - .byte W01 - .byte PAN , c_v-5 - .byte BEND , c_v-6 - .byte W02 - .byte PAN , c_v+6 - .byte BEND , c_v+6 - .byte N01 , Cn4 - .byte W01 - .byte Gn3 , v064 - .byte W02 - .byte PAN , c_v-5 - .byte BEND , c_v-6 - .byte N01 , Bn3 , v100 - .byte W01 - .byte Gn3 , v064 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N06 , Bn3 , v100 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_lock_on: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_lock_on_pri @ Priority - .byte se_m_lock_on_rev @ Reverb. - - .word se_m_lock_on_grp - - .word se_m_lock_on_1 - - .end diff --git a/sound/songs/se_m_metronome.s b/sound/songs/se_m_metronome.s deleted file mode 100644 index ba0a55d8b..000000000 --- a/sound/songs/se_m_metronome.s +++ /dev/null @@ -1,79 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_metronome_grp, voicegroup128 - .equ se_m_metronome_pri, 4 - .equ se_m_metronome_rev, reverb_set+50 - .equ se_m_metronome_mvl, 127 - .equ se_m_metronome_key, 0 - .equ se_m_metronome_tbs, 1 - .equ se_m_metronome_exg, 0 - .equ se_m_metronome_cmp, 1 - - .section .rodata - .global se_m_metronome - .align 2 - -@********************** Track 1 **********************@ - -se_m_metronome_1: - .byte KEYSH , se_m_metronome_key+0 - .byte TEMPO , 150*se_m_metronome_tbs/2 - .byte VOICE , 37 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 115*se_m_metronome_mvl/mxv - .byte BEND , c_v+0 - .byte N15 , En3 , v127 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v-4 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-7 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-5 - .byte W02 - .byte PAN , c_v+4 - .byte BEND , c_v+0 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+3 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v+6 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+9 - .byte W01 - .byte PAN , c_v+4 - .byte BEND , c_v+14 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+20 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v+25 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+46 - .byte W10 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_metronome: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_metronome_pri @ Priority - .byte se_m_metronome_rev @ Reverb. - - .word se_m_metronome_grp - - .word se_m_metronome_1 - - .end diff --git a/sound/songs/se_m_milk_drink.s b/sound/songs/se_m_milk_drink.s deleted file mode 100644 index 30a051540..000000000 --- a/sound/songs/se_m_milk_drink.s +++ /dev/null @@ -1,129 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_milk_drink_grp, voicegroup128 - .equ se_m_milk_drink_pri, 4 - .equ se_m_milk_drink_rev, reverb_set+50 - .equ se_m_milk_drink_mvl, 127 - .equ se_m_milk_drink_key, 0 - .equ se_m_milk_drink_tbs, 1 - .equ se_m_milk_drink_exg, 0 - .equ se_m_milk_drink_cmp, 1 - - .section .rodata - .global se_m_milk_drink - .align 2 - -@********************** Track 1 **********************@ - -se_m_milk_drink_1: - .byte KEYSH , se_m_milk_drink_key+0 - .byte TEMPO , 180*se_m_milk_drink_tbs/2 - .byte VOICE , 16 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 100*se_m_milk_drink_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , An6 , v100 - .byte W01 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 90*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 77*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 37*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-47 - .byte W02 - .byte N02 , An6 , v056 - .byte W01 - .byte PAN , c_v+5 - .byte W01 - .byte c_v-6 - .byte VOL , 100*se_m_milk_drink_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , An6 , v100 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 90*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-20 - .byte W02 - .byte PAN , c_v+1 - .byte VOL , 77*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 37*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-47 - .byte W01 - .byte PAN , c_v-6 - .byte N02 , An6 , v056 - .byte W01 - .byte PAN , c_v+8 - .byte W01 - .byte c_v-10 - .byte VOL , 100*se_m_milk_drink_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , An6 , v072 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 90*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 77*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 37*se_m_milk_drink_mvl/mxv - .byte BEND , c_v-47 - .byte W01 - .byte PAN , c_v-10 - .byte W02 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_milk_drink_2: - .byte KEYSH , se_m_milk_drink_key+0 - .byte VOICE , 53 - .byte VOL , 100*se_m_milk_drink_mvl/mxv - .byte W02 - .byte N06 , Fs6 , v040 - .byte W04 - .byte W04 - .byte N06 - .byte W02 - .byte W06 - .byte W01 - .byte Fs6 , v032 - .byte W05 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_milk_drink: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_milk_drink_pri @ Priority - .byte se_m_milk_drink_rev @ Reverb. - - .word se_m_milk_drink_grp - - .word se_m_milk_drink_1 - .word se_m_milk_drink_2 - - .end diff --git a/sound/songs/se_m_minimize.s b/sound/songs/se_m_minimize.s deleted file mode 100644 index 565450b2b..000000000 --- a/sound/songs/se_m_minimize.s +++ /dev/null @@ -1,165 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_minimize_grp, voicegroup128 - .equ se_m_minimize_pri, 4 - .equ se_m_minimize_rev, reverb_set+50 - .equ se_m_minimize_mvl, 127 - .equ se_m_minimize_key, 0 - .equ se_m_minimize_tbs, 1 - .equ se_m_minimize_exg, 0 - .equ se_m_minimize_cmp, 1 - - .section .rodata - .global se_m_minimize - .align 2 - -@********************** Track 1 **********************@ - -se_m_minimize_1: - .byte KEYSH , se_m_minimize_key+0 - .byte TEMPO , 150*se_m_minimize_tbs/2 - .byte VOICE , 45 - .byte BENDR , 24 - .byte PAN , c_v+0 - .byte VOL , 32*se_m_minimize_mvl/mxv - .byte MOD , 30 - .byte BEND , c_v+39 - .byte N06 , Dn4 , v127 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte VOL , 49*se_m_minimize_mvl/mxv - .byte PAN , c_v+5 - .byte BEND , c_v+23 - .byte W01 - .byte c_v+15 - .byte W01 - .byte VOL , 61*se_m_minimize_mvl/mxv - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+35 - .byte N06 , Cn4 , v116 - .byte W01 - .byte VOL , 71*se_m_minimize_mvl/mxv - .byte BEND , c_v+27 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v+19 - .byte W01 - .byte VOL , 81*se_m_minimize_mvl/mxv - .byte BEND , c_v+12 - .byte W01 - .byte c_v+5 - .byte W02 - .byte VOL , 95*se_m_minimize_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+32 - .byte N06 , Bn3 , v112 - .byte W01 - .byte BEND , c_v+24 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+16 - .byte W01 - .byte c_v+8 - .byte W01 - .byte c_v+1 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+28 - .byte N06 , An3 - .byte W01 - .byte BEND , c_v+20 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+12 - .byte W01 - .byte c_v+5 - .byte W01 - .byte c_v-2 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+24 - .byte N06 , Gn3 , v108 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+9 - .byte W01 - .byte c_v+1 - .byte W01 - .byte c_v-6 - .byte W02 - .byte VOL , 82*se_m_minimize_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+21 - .byte N06 , Fn3 , v100 - .byte W01 - .byte BEND , c_v+13 - .byte W01 - .byte VOL , 71*se_m_minimize_mvl/mxv - .byte PAN , c_v-8 - .byte BEND , c_v+5 - .byte W01 - .byte c_v-2 - .byte W01 - .byte VOL , 61*se_m_minimize_mvl/mxv - .byte BEND , c_v-10 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+17 - .byte N06 , En3 , v060 - .byte W01 - .byte BEND , c_v+9 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+2 - .byte W01 - .byte c_v-6 - .byte W01 - .byte c_v-13 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+14 - .byte N06 , Dn3 , v040 - .byte W01 - .byte BEND , c_v+6 - .byte W01 - .byte PAN , c_v-8 - .byte BEND , c_v-2 - .byte W01 - .byte c_v-10 - .byte W01 - .byte c_v-17 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte N06 , Cn3 , v020 - .byte W01 - .byte BEND , c_v+4 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v-4 - .byte W01 - .byte c_v-11 - .byte W01 - .byte c_v-18 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_minimize: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_minimize_pri @ Priority - .byte se_m_minimize_rev @ Reverb. - - .word se_m_minimize_grp - - .word se_m_minimize_1 - - .end diff --git a/sound/songs/se_m_mist.s b/sound/songs/se_m_mist.s deleted file mode 100644 index f46eb130a..000000000 --- a/sound/songs/se_m_mist.s +++ /dev/null @@ -1,94 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_mist_grp, voicegroup128 - .equ se_m_mist_pri, 4 - .equ se_m_mist_rev, reverb_set+50 - .equ se_m_mist_mvl, 127 - .equ se_m_mist_key, 0 - .equ se_m_mist_tbs, 1 - .equ se_m_mist_exg, 0 - .equ se_m_mist_cmp, 1 - - .section .rodata - .global se_m_mist - .align 2 - -@********************** Track 1 **********************@ - -se_m_mist_1: - .byte KEYSH , se_m_mist_key+0 - .byte TEMPO , 150*se_m_mist_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 7*se_m_mist_mvl/mxv - .byte BEND , c_v+1 - .byte N18 , Cn5 , v052 - .byte W01 - .byte VOL , 20*se_m_mist_mvl/mxv - .byte PAN , c_v+16 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 41*se_m_mist_mvl/mxv - .byte PAN , c_v-14 - .byte BEND , c_v-16 - .byte W01 - .byte VOL , 70*se_m_mist_mvl/mxv - .byte PAN , c_v+16 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 93*se_m_mist_mvl/mxv - .byte PAN , c_v-14 - .byte BEND , c_v+0 - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_mist_mvl/mxv - .byte BEND , c_v+8 - .byte W01 - .byte PAN , c_v+16 - .byte BEND , c_v+16 - .byte W01 - .byte PAN , c_v-14 - .byte W01 - .byte VOL , 98*se_m_mist_mvl/mxv - .byte PAN , c_v+16 - .byte BEND , c_v+10 - .byte W01 - .byte VOL , 85*se_m_mist_mvl/mxv - .byte PAN , c_v-14 - .byte BEND , c_v+4 - .byte W02 - .byte VOL , 69*se_m_mist_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-7 - .byte W01 - .byte VOL , 51*se_m_mist_mvl/mxv - .byte PAN , c_v+16 - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v-14 - .byte VOL , 38*se_m_mist_mvl/mxv - .byte BEND , c_v-28 - .byte W01 - .byte VOL , 17*se_m_mist_mvl/mxv - .byte BEND , c_v-32 - .byte W01 - .byte VOL , 4*se_m_mist_mvl/mxv - .byte BEND , c_v-38 - .byte W08 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_mist: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_mist_pri @ Priority - .byte se_m_mist_rev @ Reverb. - - .word se_m_mist_grp - - .word se_m_mist_1 - - .end diff --git a/sound/songs/se_m_moonlight.s b/sound/songs/se_m_moonlight.s deleted file mode 100644 index bd4410b32..000000000 --- a/sound/songs/se_m_moonlight.s +++ /dev/null @@ -1,218 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_moonlight_grp, voicegroup128 - .equ se_m_moonlight_pri, 4 - .equ se_m_moonlight_rev, reverb_set+50 - .equ se_m_moonlight_mvl, 127 - .equ se_m_moonlight_key, 0 - .equ se_m_moonlight_tbs, 1 - .equ se_m_moonlight_exg, 0 - .equ se_m_moonlight_cmp, 1 - - .section .rodata - .global se_m_moonlight - .align 2 - -@********************** Track 1 **********************@ - -se_m_moonlight_1: - .byte KEYSH , se_m_moonlight_key+0 - .byte TEMPO , 150*se_m_moonlight_tbs/2 - .byte VOICE , 46 - .byte VOL , 100*se_m_moonlight_mvl/mxv - .byte BENDR , 4 - .byte PAN , c_v+0 - .byte MOD , 6 - .byte BEND , c_v+3 - .byte N01 , Ds6 , v092 - .byte W01 - .byte Dn6 - .byte W01 - .byte Gn5 - .byte W01 - .byte N20 , Gn6 , v100 - .byte W21 -se_m_moonlight_1_000: - .byte N01 , Ds6 , v056 - .byte W01 - .byte Dn6 - .byte W01 - .byte Gn5 - .byte W01 - .byte N20 , Gn6 , v064 - .byte W03 - .byte PAN , c_v+6 - .byte W04 - .byte c_v-4 - .byte W05 - .byte c_v+6 - .byte W05 - .byte c_v-4 - .byte W04 - .byte PEND -se_m_moonlight_1_001: - .byte PAN , c_v+0 - .byte N01 , Gs5 , v092 - .byte W01 - .byte Gn5 - .byte W01 - .byte Cn5 - .byte W01 - .byte N20 , Cn6 , v100 - .byte W21 - .byte PEND -se_m_moonlight_1_002: - .byte PAN , c_v+16 - .byte N01 , Gs5 , v056 - .byte W01 - .byte Gn5 - .byte W01 - .byte Cn5 - .byte W01 - .byte N20 , Cn6 , v064 - .byte W21 - .byte PEND -se_m_moonlight_1_003: - .byte PAN , c_v-16 - .byte N01 , Gs5 , v040 - .byte W01 - .byte Gn5 - .byte W01 - .byte Cn5 - .byte W01 - .byte N20 , Cn6 - .byte W21 - .byte PEND -se_m_moonlight_1_004: - .byte PAN , c_v+32 - .byte N01 , Gs5 , v020 - .byte W01 - .byte Gn5 - .byte W01 - .byte Cn5 - .byte W01 - .byte PAN , c_v-32 - .byte N20 , Cn6 - .byte W21 - .byte PEND - .byte PAN , c_v+0 - .byte N01 , Ds6 , v092 - .byte W01 - .byte Dn6 - .byte W01 - .byte Gn5 - .byte W01 - .byte N20 , Gn6 , v100 - .byte W21 - .byte PATT - .word se_m_moonlight_1_000 - .byte PATT - .word se_m_moonlight_1_001 - .byte PATT - .word se_m_moonlight_1_002 - .byte PATT - .word se_m_moonlight_1_003 - .byte PATT - .word se_m_moonlight_1_004 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_moonlight_2: - .byte KEYSH , se_m_moonlight_key+0 - .byte VOICE , 55 - .byte PAN , c_v+0 - .byte VOL , 39*se_m_moonlight_mvl/mxv - .byte BEND , c_v-4 - .byte W10 - .byte N01 , Ds6 , v112 - .byte W02 - .byte Dn6 - .byte W01 - .byte Gn5 - .byte W01 - .byte N04 , Gn6 - .byte W05 - .byte Gn6 , v096 - .byte W05 -se_m_moonlight_2_000: - .byte PAN , c_v+50 - .byte N04 , Gn6 , v080 - .byte W04 - .byte PAN , c_v-48 - .byte N04 , Gn6 , v064 - .byte W05 - .byte PAN , c_v+50 - .byte N04 , Gn6 , v048 - .byte W05 - .byte PAN , c_v-49 - .byte N04 , Gn6 , v032 - .byte W10 - .byte PEND -se_m_moonlight_2_001: - .byte PAN , c_v+0 - .byte W10 - .byte N01 , Gs5 , v112 - .byte W02 - .byte Gn5 - .byte W01 - .byte Cn5 - .byte W01 - .byte N04 , Cn6 - .byte W05 - .byte Cn6 , v096 - .byte W05 - .byte PEND -se_m_moonlight_2_002: - .byte PAN , c_v+50 - .byte N04 , Cn6 , v080 - .byte W04 - .byte PAN , c_v-48 - .byte N04 , Cn6 , v064 - .byte W05 - .byte PAN , c_v+50 - .byte N04 , Cn6 , v048 - .byte W05 - .byte PAN , c_v-49 - .byte N04 , Cn6 , v032 - .byte W10 - .byte PEND - .byte W24 - .byte W24 - .byte PAN , c_v+0 - .byte W10 - .byte N01 , Ds6 , v112 - .byte W02 - .byte Dn6 - .byte W01 - .byte Gn5 - .byte W01 - .byte N04 , Gn6 - .byte W05 - .byte Gn6 , v096 - .byte W05 - .byte PATT - .word se_m_moonlight_2_000 - .byte PATT - .word se_m_moonlight_2_001 - .byte PATT - .word se_m_moonlight_2_002 - .byte W24 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_moonlight: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_moonlight_pri @ Priority - .byte se_m_moonlight_rev @ Reverb. - - .word se_m_moonlight_grp - - .word se_m_moonlight_1 - .word se_m_moonlight_2 - - .end diff --git a/sound/songs/se_m_morning_sun.s b/sound/songs/se_m_morning_sun.s deleted file mode 100644 index ac7667246..000000000 --- a/sound/songs/se_m_morning_sun.s +++ /dev/null @@ -1,135 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_morning_sun_grp, voicegroup128 - .equ se_m_morning_sun_pri, 5 - .equ se_m_morning_sun_rev, reverb_set+50 - .equ se_m_morning_sun_mvl, 127 - .equ se_m_morning_sun_key, 0 - .equ se_m_morning_sun_tbs, 1 - .equ se_m_morning_sun_exg, 0 - .equ se_m_morning_sun_cmp, 1 - - .section .rodata - .global se_m_morning_sun - .align 2 - -@********************** Track 1 **********************@ - -se_m_morning_sun_1: - .byte KEYSH , se_m_morning_sun_key+0 - .byte TEMPO , 150*se_m_morning_sun_tbs/2 - .byte VOICE , 46 - .byte VOL , 95*se_m_morning_sun_mvl/mxv - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte BEND , c_v+15 - .byte W03 - .byte N06 , Ds6 , v112 - .byte W03 - .byte W03 - .byte En5 , v104 - .byte W03 - .byte W03 - .byte Ds6 , v096 - .byte W03 - .byte W03 - .byte En5 , v088 - .byte W03 - .byte W03 - .byte PAN , c_v-4 - .byte N06 , Ds6 , v080 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , En5 , v072 - .byte W03 - .byte W03 - .byte PAN , c_v+4 - .byte N06 , Ds6 , v064 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , En5 , v056 - .byte W03 - .byte W03 - .byte PAN , c_v-4 - .byte N06 , Ds6 , v044 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , En5 , v036 - .byte W03 - .byte W03 - .byte PAN , c_v+4 - .byte N06 , Ds6 , v028 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , En5 , v020 - .byte W03 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_morning_sun_2: - .byte KEYSH , se_m_morning_sun_key+0 - .byte VOICE , 53 - .byte BENDR , 2 - .byte VOL , 43*se_m_morning_sun_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+15 - .byte N06 , Gs6 , v108 - .byte W03 - .byte W03 - .byte Bn5 - .byte W03 - .byte W03 - .byte Gs6 , v100 - .byte W03 - .byte W03 - .byte Bn5 , v092 - .byte W03 - .byte W03 - .byte Gs6 , v084 - .byte W03 - .byte W03 - .byte Bn5 , v076 - .byte W03 - .byte W03 - .byte Gs6 , v068 - .byte W03 - .byte W03 - .byte Bn5 , v060 - .byte W03 - .byte W03 - .byte Gs6 , v052 - .byte W03 - .byte W03 - .byte Bn5 , v040 - .byte W03 - .byte W03 - .byte Gs6 , v032 - .byte W03 - .byte W03 - .byte Bn5 , v024 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_morning_sun: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_morning_sun_pri @ Priority - .byte se_m_morning_sun_rev @ Reverb. - - .word se_m_morning_sun_grp - - .word se_m_morning_sun_1 - .word se_m_morning_sun_2 - - .end diff --git a/sound/songs/se_m_nightmare.s b/sound/songs/se_m_nightmare.s deleted file mode 100644 index 825bfaea2..000000000 --- a/sound/songs/se_m_nightmare.s +++ /dev/null @@ -1,146 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_nightmare_grp, voicegroup128 - .equ se_m_nightmare_pri, 4 - .equ se_m_nightmare_rev, reverb_set+50 - .equ se_m_nightmare_mvl, 127 - .equ se_m_nightmare_key, 0 - .equ se_m_nightmare_tbs, 1 - .equ se_m_nightmare_exg, 0 - .equ se_m_nightmare_cmp, 1 - - .section .rodata - .global se_m_nightmare - .align 2 - -@********************** Track 1 **********************@ - -se_m_nightmare_1: - .byte KEYSH , se_m_nightmare_key+0 - .byte TEMPO , 220*se_m_nightmare_tbs/2 - .byte VOICE , 3 - .byte VOL , 110*se_m_nightmare_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte W06 - .byte N03 , Gn2 , v092 - .byte W06 - .byte PAN , c_v-16 - .byte N03 , Gn2 , v088 - .byte W09 - .byte PAN , c_v-1 - .byte N03 , Fs3 , v104 - .byte W03 - .byte W03 - .byte PAN , c_v+16 - .byte N03 , Fs3 , v088 - .byte W06 - .byte PAN , c_v+0 - .byte N03 , Ds3 - .byte W06 - .byte PAN , c_v-16 - .byte N03 - .byte W09 - .byte PAN , c_v-1 - .byte N03 , An2 , v096 - .byte W06 - .byte PAN , c_v+17 - .byte N03 , An2 , v088 - .byte W09 - .byte PAN , c_v-1 - .byte N03 , Gs3 , v104 - .byte W06 - .byte PAN , c_v-16 - .byte N03 , Gs3 , v088 - .byte W03 - .byte W03 - .byte PAN , c_v-1 - .byte N03 , Fn3 - .byte W06 - .byte PAN , c_v+16 - .byte N03 - .byte W15 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_nightmare_2: - .byte KEYSH , se_m_nightmare_key+0 - .byte VOICE , 20 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte VOL , 110*se_m_nightmare_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v+55 - .byte N03 , Cn2 , v100 - .byte W06 - .byte PAN , c_v+6 - .byte BEND , c_v+36 - .byte N03 - .byte W06 - .byte PAN , c_v-7 - .byte BEND , c_v+17 - .byte N03 - .byte W06 - .byte PAN , c_v+6 - .byte BEND , c_v+2 - .byte N03 - .byte W06 - .byte PAN , c_v-7 - .byte BEND , c_v-8 - .byte N03 - .byte W06 - .byte PAN , c_v+6 - .byte BEND , c_v+12 - .byte N03 - .byte W06 - .byte PAN , c_v-7 - .byte BEND , c_v+6 - .byte N03 - .byte W06 - .byte PAN , c_v+6 - .byte BEND , c_v+0 - .byte N03 - .byte W06 - .byte PAN , c_v-7 - .byte BEND , c_v-6 - .byte N03 - .byte W06 - .byte PAN , c_v+6 - .byte BEND , c_v-19 - .byte N03 - .byte W06 - .byte PAN , c_v-7 - .byte BEND , c_v-31 - .byte N03 - .byte W06 - .byte PAN , c_v+6 - .byte BEND , c_v-44 - .byte N03 - .byte W06 - .byte PAN , c_v-7 - .byte BEND , c_v-55 - .byte N03 - .byte W06 - .byte PAN , c_v+6 - .byte BEND , c_v-64 - .byte N03 - .byte W18 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_nightmare: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_nightmare_pri @ Priority - .byte se_m_nightmare_rev @ Reverb. - - .word se_m_nightmare_grp - - .word se_m_nightmare_1 - .word se_m_nightmare_2 - - .end diff --git a/sound/songs/se_m_perish_song.s b/sound/songs/se_m_perish_song.s deleted file mode 100644 index af30e2457..000000000 --- a/sound/songs/se_m_perish_song.s +++ /dev/null @@ -1,221 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_perish_song_grp, voicegroup128 - .equ se_m_perish_song_pri, 4 - .equ se_m_perish_song_rev, reverb_set+50 - .equ se_m_perish_song_mvl, 127 - .equ se_m_perish_song_key, 0 - .equ se_m_perish_song_tbs, 1 - .equ se_m_perish_song_exg, 0 - .equ se_m_perish_song_cmp, 1 - - .section .rodata - .global se_m_perish_song - .align 2 - -@********************** Track 1 **********************@ - -se_m_perish_song_1: - .byte KEYSH , se_m_perish_song_key+0 - .byte TEMPO , 100*se_m_perish_song_tbs/2 - .byte VOICE , 73 - .byte BENDR , 12 - .byte LFOS , 40 - .byte PAN , c_v+7 - .byte VOL , 25*se_m_perish_song_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 29*se_m_perish_song_mvl/mxv - .byte W03 - .byte 33*se_m_perish_song_mvl/mxv - .byte N48 , An3 , v112 - .byte W03 - .byte VOL , 40*se_m_perish_song_mvl/mxv - .byte W01 - .byte PAN , c_v+4 - .byte W02 -se_m_perish_song_1_000: - .byte VOL , 45*se_m_perish_song_mvl/mxv - .byte MOD , 8 - .byte W03 - .byte VOL , 51*se_m_perish_song_mvl/mxv - .byte W03 - .byte PEND -se_m_perish_song_1_001: - .byte VOL , 56*se_m_perish_song_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte VOL , 62*se_m_perish_song_mvl/mxv - .byte W03 - .byte PEND -se_m_perish_song_1_002: - .byte VOL , 72*se_m_perish_song_mvl/mxv - .byte PAN , c_v-4 - .byte W03 - .byte VOL , 81*se_m_perish_song_mvl/mxv - .byte W03 - .byte PEND -se_m_perish_song_1_003: - .byte VOL , 92*se_m_perish_song_mvl/mxv - .byte PAN , c_v-8 - .byte W03 - .byte VOL , 100*se_m_perish_song_mvl/mxv - .byte W03 - .byte PEND - .byte PAN , c_v-4 - .byte W06 - .byte VOL , 82*se_m_perish_song_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte VOL , 52*se_m_perish_song_mvl/mxv - .byte W03 - .byte 25*se_m_perish_song_mvl/mxv - .byte MOD , 0 - .byte PAN , c_v+4 - .byte W03 - .byte VOL , 29*se_m_perish_song_mvl/mxv - .byte W01 - .byte PAN , c_v+7 - .byte W02 - .byte VOL , 33*se_m_perish_song_mvl/mxv - .byte N72 , Gs3 , v112 - .byte W03 - .byte VOL , 40*se_m_perish_song_mvl/mxv - .byte W01 - .byte PAN , c_v+4 - .byte W02 - .byte PATT - .word se_m_perish_song_1_000 - .byte PATT - .word se_m_perish_song_1_001 - .byte PATT - .word se_m_perish_song_1_002 - .byte PATT - .word se_m_perish_song_1_003 - .byte PAN , c_v-4 - .byte W06 - .byte c_v+0 - .byte W06 - .byte c_v+4 - .byte W03 - .byte VOL , 87*se_m_perish_song_mvl/mxv - .byte W03 - .byte 75*se_m_perish_song_mvl/mxv - .byte PAN , c_v+7 - .byte W03 - .byte VOL , 62*se_m_perish_song_mvl/mxv - .byte W03 - .byte 48*se_m_perish_song_mvl/mxv - .byte PAN , c_v+4 - .byte W03 - .byte VOL , 33*se_m_perish_song_mvl/mxv - .byte W03 - .byte 25*se_m_perish_song_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W02 - .byte VOL , 10*se_m_perish_song_mvl/mxv - .byte W03 - .byte W01 - .byte PAN , c_v-4 - .byte W05 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_perish_song_2: - .byte KEYSH , se_m_perish_song_key+0 - .byte VOICE , 73 - .byte VOL , 25*se_m_perish_song_mvl/mxv - .byte PAN , c_v-17 - .byte N48 , Cn4 , v100 - .byte W03 - .byte VOL , 29*se_m_perish_song_mvl/mxv - .byte W03 - .byte 33*se_m_perish_song_mvl/mxv - .byte W03 - .byte 40*se_m_perish_song_mvl/mxv - .byte W03 -se_m_perish_song_2_000: - .byte VOL , 45*se_m_perish_song_mvl/mxv - .byte MOD , 8 - .byte W03 - .byte VOL , 51*se_m_perish_song_mvl/mxv - .byte W03 - .byte PEND - .byte 56*se_m_perish_song_mvl/mxv - .byte W03 - .byte 62*se_m_perish_song_mvl/mxv - .byte W03 - .byte 72*se_m_perish_song_mvl/mxv - .byte W03 - .byte 81*se_m_perish_song_mvl/mxv - .byte W03 - .byte 92*se_m_perish_song_mvl/mxv - .byte W03 - .byte 100*se_m_perish_song_mvl/mxv - .byte W03 - .byte W06 - .byte 82*se_m_perish_song_mvl/mxv - .byte W03 - .byte 52*se_m_perish_song_mvl/mxv - .byte W03 - .byte 25*se_m_perish_song_mvl/mxv - .byte MOD , 0 - .byte N72 , Bn3 , v100 - .byte W03 - .byte VOL , 29*se_m_perish_song_mvl/mxv - .byte W03 - .byte 33*se_m_perish_song_mvl/mxv - .byte W03 - .byte 40*se_m_perish_song_mvl/mxv - .byte W03 - .byte PATT - .word se_m_perish_song_2_000 - .byte VOL , 56*se_m_perish_song_mvl/mxv - .byte W03 - .byte 62*se_m_perish_song_mvl/mxv - .byte W03 - .byte 72*se_m_perish_song_mvl/mxv - .byte W03 - .byte 81*se_m_perish_song_mvl/mxv - .byte W03 - .byte 92*se_m_perish_song_mvl/mxv - .byte W03 - .byte 100*se_m_perish_song_mvl/mxv - .byte W03 - .byte W06 - .byte W06 - .byte W03 - .byte 87*se_m_perish_song_mvl/mxv - .byte W03 - .byte 75*se_m_perish_song_mvl/mxv - .byte W03 - .byte 62*se_m_perish_song_mvl/mxv - .byte W03 - .byte 48*se_m_perish_song_mvl/mxv - .byte W03 - .byte 33*se_m_perish_song_mvl/mxv - .byte W03 - .byte 25*se_m_perish_song_mvl/mxv - .byte W03 - .byte 10*se_m_perish_song_mvl/mxv - .byte W03 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_perish_song: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_perish_song_pri @ Priority - .byte se_m_perish_song_rev @ Reverb. - - .word se_m_perish_song_grp - - .word se_m_perish_song_1 - .word se_m_perish_song_2 - - .end diff --git a/sound/songs/se_m_petal_dance.s b/sound/songs/se_m_petal_dance.s deleted file mode 100644 index c8ad2810d..000000000 --- a/sound/songs/se_m_petal_dance.s +++ /dev/null @@ -1,205 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_petal_dance_grp, voicegroup128 - .equ se_m_petal_dance_pri, 4 - .equ se_m_petal_dance_rev, reverb_set+50 - .equ se_m_petal_dance_mvl, 127 - .equ se_m_petal_dance_key, 0 - .equ se_m_petal_dance_tbs, 1 - .equ se_m_petal_dance_exg, 0 - .equ se_m_petal_dance_cmp, 1 - - .section .rodata - .global se_m_petal_dance - .align 2 - -@********************** Track 1 **********************@ - -se_m_petal_dance_1: - .byte KEYSH , se_m_petal_dance_key+0 - .byte TEMPO , 150*se_m_petal_dance_tbs/2 - .byte VOICE , 46 - .byte VOL , 95*se_m_petal_dance_mvl/mxv - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte BEND , c_v+15 - .byte W03 - .byte N06 , Dn6 , v112 - .byte W03 - .byte W03 - .byte An5 , v104 - .byte W03 - .byte W03 - .byte Dn6 , v100 - .byte W03 - .byte W03 - .byte An5 - .byte W03 - .byte W03 - .byte PAN , c_v-4 - .byte N06 , Dn6 , v096 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v092 - .byte W03 - .byte W03 - .byte PAN , c_v+4 - .byte N06 , Dn6 , v088 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v084 - .byte W03 - .byte W03 - .byte PAN , c_v-4 - .byte N06 , Dn6 , v080 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v076 - .byte W03 - .byte W03 - .byte PAN , c_v+4 - .byte N06 , Dn6 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v072 - .byte W03 - .byte W03 - .byte PAN , c_v-4 - .byte N06 , Dn6 , v068 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v064 - .byte W03 - .byte W03 - .byte PAN , c_v+4 - .byte N06 , Dn6 , v060 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v056 - .byte W03 - .byte W03 - .byte PAN , c_v-8 - .byte N06 , Dn6 , v052 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v048 - .byte W03 - .byte W03 - .byte PAN , c_v+8 - .byte N06 , Dn6 , v044 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v040 - .byte W03 - .byte W03 - .byte PAN , c_v-8 - .byte N06 , Dn6 , v036 - .byte W03 - .byte W03 - .byte PAN , c_v+0 - .byte N06 , An5 , v032 - .byte W03 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_petal_dance_2: - .byte KEYSH , se_m_petal_dance_key+0 - .byte VOICE , 53 - .byte BENDR , 2 - .byte VOL , 43*se_m_petal_dance_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+15 - .byte N06 , En6 , v108 - .byte W03 - .byte W03 - .byte Bn5 , v104 - .byte W03 - .byte W03 - .byte En6 , v100 - .byte W03 - .byte W03 - .byte Bn5 , v096 - .byte W03 - .byte W03 - .byte En6 , v092 - .byte W03 - .byte W03 - .byte Bn5 , v088 - .byte W03 - .byte W03 - .byte En6 - .byte W03 - .byte W03 - .byte Bn5 , v084 - .byte W03 - .byte W03 - .byte En6 , v080 - .byte W03 - .byte W03 - .byte Bn5 , v076 - .byte W03 - .byte W03 - .byte En6 , v072 - .byte W03 - .byte W03 - .byte Bn5 , v068 - .byte W03 - .byte W03 - .byte En6 , v064 - .byte W03 - .byte W03 - .byte Bn5 - .byte W03 - .byte W03 - .byte En6 , v060 - .byte W03 - .byte W03 - .byte Bn5 , v056 - .byte W03 - .byte W03 - .byte En6 , v052 - .byte W03 - .byte W03 - .byte Bn5 , v048 - .byte W03 - .byte W03 - .byte En6 , v044 - .byte W03 - .byte W03 - .byte Bn5 , v040 - .byte W03 - .byte W03 - .byte En6 , v036 - .byte W03 - .byte W03 - .byte Bn5 , v032 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_petal_dance: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_petal_dance_pri @ Priority - .byte se_m_petal_dance_rev @ Reverb. - - .word se_m_petal_dance_grp - - .word se_m_petal_dance_1 - .word se_m_petal_dance_2 - - .end diff --git a/sound/songs/se_m_poison_powder.s b/sound/songs/se_m_poison_powder.s deleted file mode 100644 index f48637385..000000000 --- a/sound/songs/se_m_poison_powder.s +++ /dev/null @@ -1,58 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_poison_powder_grp, voicegroup128 - .equ se_m_poison_powder_pri, 4 - .equ se_m_poison_powder_rev, reverb_set+50 - .equ se_m_poison_powder_mvl, 127 - .equ se_m_poison_powder_key, 0 - .equ se_m_poison_powder_tbs, 1 - .equ se_m_poison_powder_exg, 0 - .equ se_m_poison_powder_cmp, 1 - - .section .rodata - .global se_m_poison_powder - .align 2 - -@********************** Track 1 **********************@ - -se_m_poison_powder_1: - .byte KEYSH , se_m_poison_powder_key+0 - .byte TEMPO , 150*se_m_poison_powder_tbs/2 - .byte VOICE , 18 - .byte BENDR , 12 - .byte VOL , 55*se_m_poison_powder_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+1 - .byte N01 , Cn6 , v100 - .byte W01 - .byte VOL , 110*se_m_poison_powder_mvl/mxv - .byte W01 - .byte VOICE , 36 - .byte VOL , 55*se_m_poison_powder_mvl/mxv - .byte N02 , Gn6 , v080 - .byte W01 - .byte VOL , 110*se_m_poison_powder_mvl/mxv - .byte W04 - .byte PAN , c_v+20 - .byte N01 , Gn6 , v024 - .byte W03 - .byte Gn6 , v016 - .byte W02 - .byte PAN , c_v-21 - .byte W12 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_poison_powder: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_poison_powder_pri @ Priority - .byte se_m_poison_powder_rev @ Reverb. - - .word se_m_poison_powder_grp - - .word se_m_poison_powder_1 - - .end diff --git a/sound/songs/se_m_psybeam.s b/sound/songs/se_m_psybeam.s deleted file mode 100644 index c7f68cffd..000000000 --- a/sound/songs/se_m_psybeam.s +++ /dev/null @@ -1,144 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_psybeam_grp, voicegroup128 - .equ se_m_psybeam_pri, 4 - .equ se_m_psybeam_rev, reverb_set+50 - .equ se_m_psybeam_mvl, 127 - .equ se_m_psybeam_key, 0 - .equ se_m_psybeam_tbs, 1 - .equ se_m_psybeam_exg, 0 - .equ se_m_psybeam_cmp, 1 - - .section .rodata - .global se_m_psybeam - .align 2 - -@********************** Track 1 **********************@ - -se_m_psybeam_1: - .byte KEYSH , se_m_psybeam_key+0 - .byte TEMPO , 190*se_m_psybeam_tbs/2 - .byte VOICE , 45 - .byte BENDR , 8 - .byte PAN , c_v+0 - .byte VOL , 38*se_m_psybeam_mvl/mxv - .byte MOD , 30 - .byte BEND , c_v+1 - .byte N42 , As2 , v120 - .byte W01 - .byte PAN , c_v+3 - .byte W01 - .byte c_v+5 - .byte VOL , 57*se_m_psybeam_mvl/mxv - .byte W01 - .byte PAN , c_v+9 - .byte W01 - .byte VOL , 71*se_m_psybeam_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte c_v+1 - .byte VOL , 82*se_m_psybeam_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte c_v-3 - .byte VOL , 94*se_m_psybeam_mvl/mxv - .byte W01 - .byte PAN , c_v-6 - .byte W02 - .byte c_v-10 - .byte VOL , 110*se_m_psybeam_mvl/mxv - .byte W02 - .byte PAN , c_v-6 - .byte W01 - .byte c_v-3 - .byte W01 - .byte c_v+0 - .byte W02 - .byte W06 - .byte c_v+3 - .byte W01 - .byte c_v+5 - .byte W01 - .byte c_v+9 - .byte W02 - .byte c_v+5 - .byte W02 - .byte c_v+1 - .byte VOL , 95*se_m_psybeam_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte c_v-3 - .byte VOL , 83*se_m_psybeam_mvl/mxv - .byte W01 - .byte PAN , c_v-6 - .byte W01 - .byte c_v-10 - .byte VOL , 71*se_m_psybeam_mvl/mxv - .byte W02 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 56*se_m_psybeam_mvl/mxv - .byte W01 - .byte PAN , c_v-3 - .byte W01 - .byte VOL , 38*se_m_psybeam_mvl/mxv - .byte W03 - .byte PAN , c_v+0 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_psybeam_2: - .byte KEYSH , se_m_psybeam_key+0 - .byte VOICE , 47 - .byte BENDR , 8 - .byte PAN , c_v+0 - .byte VOL , 38*se_m_psybeam_mvl/mxv - .byte MOD , 30 - .byte BEND , c_v+1 - .byte N42 , As1 , v040 - .byte W02 - .byte VOL , 57*se_m_psybeam_mvl/mxv - .byte W02 - .byte 71*se_m_psybeam_mvl/mxv - .byte W02 - .byte W01 - .byte 82*se_m_psybeam_mvl/mxv - .byte W02 - .byte 94*se_m_psybeam_mvl/mxv - .byte W03 - .byte 110*se_m_psybeam_mvl/mxv - .byte W06 - .byte W06 - .byte W06 - .byte 95*se_m_psybeam_mvl/mxv - .byte W02 - .byte 83*se_m_psybeam_mvl/mxv - .byte W02 - .byte 71*se_m_psybeam_mvl/mxv - .byte W02 - .byte W01 - .byte 56*se_m_psybeam_mvl/mxv - .byte W02 - .byte 38*se_m_psybeam_mvl/mxv - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_psybeam: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_psybeam_pri @ Priority - .byte se_m_psybeam_rev @ Reverb. - - .word se_m_psybeam_grp - - .word se_m_psybeam_1 - .word se_m_psybeam_2 - - .end diff --git a/sound/songs/se_m_psybeam2.s b/sound/songs/se_m_psybeam2.s deleted file mode 100644 index e26a844c9..000000000 --- a/sound/songs/se_m_psybeam2.s +++ /dev/null @@ -1,216 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_psybeam2_grp, voicegroup128 - .equ se_m_psybeam2_pri, 4 - .equ se_m_psybeam2_rev, reverb_set+50 - .equ se_m_psybeam2_mvl, 127 - .equ se_m_psybeam2_key, 0 - .equ se_m_psybeam2_tbs, 1 - .equ se_m_psybeam2_exg, 0 - .equ se_m_psybeam2_cmp, 1 - - .section .rodata - .global se_m_psybeam2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_psybeam2_1: - .byte KEYSH , se_m_psybeam2_key+0 - .byte TEMPO , 190*se_m_psybeam2_tbs/2 - .byte VOICE , 45 - .byte BENDR , 8 - .byte VOL , 36*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-44 - .byte N12 , Gs2 , v127 - .byte W01 - .byte VOL , 52*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 67*se_m_psybeam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v+17 - .byte W01 - .byte VOL , 78*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+27 - .byte W01 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v+44 - .byte W02 - .byte PAN , c_v-6 - .byte BEND , c_v+63 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+44 - .byte W01 - .byte VOL , 86*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v+28 - .byte W01 - .byte VOL , 55*se_m_psybeam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v+17 - .byte W01 - .byte VOL , 33*se_m_psybeam2_mvl/mxv - .byte BEND , c_v+5 - .byte W02 - .byte VOICE , 37 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte N02 , Gs3 , v080 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte VOICE , 45 - .byte VOL , 36*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-44 - .byte N12 , As2 , v127 - .byte W01 - .byte VOL , 52*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 67*se_m_psybeam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v+17 - .byte W02 - .byte VOL , 78*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+27 - .byte W01 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v+44 - .byte W01 - .byte PAN , c_v-11 - .byte BEND , c_v+63 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+44 - .byte W01 - .byte VOL , 86*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v+28 - .byte W02 - .byte VOL , 55*se_m_psybeam2_mvl/mxv - .byte PAN , c_v-11 - .byte BEND , c_v+17 - .byte W01 - .byte VOL , 33*se_m_psybeam2_mvl/mxv - .byte BEND , c_v+5 - .byte W01 - .byte VOICE , 37 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte N02 , As3 , v056 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte VOICE , 45 - .byte VOL , 36*se_m_psybeam2_mvl/mxv - .byte BEND , c_v-44 - .byte N12 , Gs2 , v080 - .byte W02 - .byte VOL , 52*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 67*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v+17 - .byte W01 - .byte VOL , 78*se_m_psybeam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v+27 - .byte W01 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+44 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+63 - .byte W02 - .byte PAN , c_v-6 - .byte BEND , c_v+44 - .byte W01 - .byte VOL , 86*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+28 - .byte W01 - .byte VOL , 55*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v+17 - .byte W01 - .byte VOL , 33*se_m_psybeam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v+5 - .byte W01 - .byte VOICE , 37 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte N02 , Gs3 , v024 - .byte W02 - .byte BEND , c_v+16 - .byte W01 - .byte VOICE , 45 - .byte VOL , 36*se_m_psybeam2_mvl/mxv - .byte BEND , c_v-44 - .byte N12 , As2 , v040 - .byte W01 - .byte VOL , 52*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 67*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v+17 - .byte W01 - .byte VOL , 78*se_m_psybeam2_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v+27 - .byte W02 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+44 - .byte W01 - .byte PAN , c_v+11 - .byte BEND , c_v+63 - .byte W01 - .byte PAN , c_v-11 - .byte BEND , c_v+44 - .byte W01 - .byte VOL , 86*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+28 - .byte W01 - .byte VOL , 55*se_m_psybeam2_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v+17 - .byte W02 - .byte VOL , 33*se_m_psybeam2_mvl/mxv - .byte BEND , c_v+5 - .byte W01 - .byte VOICE , 37 - .byte VOL , 105*se_m_psybeam2_mvl/mxv - .byte N02 , As3 , v016 - .byte W01 - .byte BEND , c_v+16 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_psybeam2: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_psybeam2_pri @ Priority - .byte se_m_psybeam2_rev @ Reverb. - - .word se_m_psybeam2_grp - - .word se_m_psybeam2_1 - - .end diff --git a/sound/songs/se_m_rain_dance.s b/sound/songs/se_m_rain_dance.s deleted file mode 100644 index 810be0663..000000000 --- a/sound/songs/se_m_rain_dance.s +++ /dev/null @@ -1,116 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_rain_dance_grp, voicegroup128 - .equ se_m_rain_dance_pri, 4 - .equ se_m_rain_dance_rev, reverb_set+50 - .equ se_m_rain_dance_mvl, 127 - .equ se_m_rain_dance_key, 0 - .equ se_m_rain_dance_tbs, 1 - .equ se_m_rain_dance_exg, 0 - .equ se_m_rain_dance_cmp, 1 - - .section .rodata - .global se_m_rain_dance - .align 2 - -@********************** Track 1 **********************@ - -se_m_rain_dance_1: - .byte KEYSH , se_m_rain_dance_key+0 - .byte TEMPO , 220*se_m_rain_dance_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 20*se_m_rain_dance_mvl/mxv - .byte BEND , c_v+0 - .byte TIE , Gn3 , v064 - .byte W03 - .byte VOL , 37*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 53*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 60*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 71*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 81*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 93*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 110*se_m_rain_dance_mvl/mxv - .byte W03 - .byte PAN , c_v+3 - .byte W06 - .byte c_v+11 - .byte W12 - .byte c_v+20 - .byte W06 - .byte c_v+25 - .byte W12 - .byte c_v+14 - .byte W06 - .byte c_v+8 - .byte W06 - .byte W06 - .byte c_v-3 - .byte W12 - .byte c_v-16 - .byte W06 - .byte W06 - .byte c_v-26 - .byte W12 - .byte c_v-16 - .byte W06 - .byte VOL , 104*se_m_rain_dance_mvl/mxv - .byte PAN , c_v-5 - .byte W03 - .byte VOL , 101*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 98*se_m_rain_dance_mvl/mxv - .byte PAN , c_v+6 - .byte W03 - .byte VOL , 93*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 90*se_m_rain_dance_mvl/mxv - .byte PAN , c_v+14 - .byte W03 - .byte VOL , 86*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 83*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 77*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 73*se_m_rain_dance_mvl/mxv - .byte PAN , c_v+24 - .byte W03 - .byte VOL , 66*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 58*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 44*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 32*se_m_rain_dance_mvl/mxv - .byte PAN , c_v+15 - .byte W03 - .byte VOL , 16*se_m_rain_dance_mvl/mxv - .byte W03 - .byte 1*se_m_rain_dance_mvl/mxv - .byte PAN , c_v+4 - .byte W06 - .byte EOT - .byte FINE - -@******************************************************@ - .align 2 - -se_m_rain_dance: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_rain_dance_pri @ Priority - .byte se_m_rain_dance_rev @ Reverb. - - .word se_m_rain_dance_grp - - .word se_m_rain_dance_1 - - .end diff --git a/sound/songs/se_m_reflect.s b/sound/songs/se_m_reflect.s deleted file mode 100644 index 56699c65e..000000000 --- a/sound/songs/se_m_reflect.s +++ /dev/null @@ -1,267 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_reflect_grp, voicegroup128 - .equ se_m_reflect_pri, 4 - .equ se_m_reflect_rev, reverb_set+50 - .equ se_m_reflect_mvl, 127 - .equ se_m_reflect_key, 0 - .equ se_m_reflect_tbs, 1 - .equ se_m_reflect_exg, 0 - .equ se_m_reflect_cmp, 1 - - .section .rodata - .global se_m_reflect - .align 2 - -@********************** Track 1 **********************@ - -se_m_reflect_1: - .byte KEYSH , se_m_reflect_key+0 - .byte TEMPO , 150*se_m_reflect_tbs/2 - .byte VOICE , 19 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v+6 - .byte N06 , Gn6 , v080 - .byte W01 - .byte BEND , c_v-4 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-14 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-31 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-41 - .byte W02 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , Gn6 , v072 - .byte W01 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-47 - .byte W02 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v-1 - .byte N06 , Gn6 , v068 - .byte W01 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-21 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-48 - .byte W02 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v-1 - .byte N06 , Gn6 , v060 - .byte W01 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-21 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-48 - .byte W02 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Gn6 , v052 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v-12 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Gn6 , v048 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v-12 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Gn6 , v040 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte PAN , c_v+0 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte BEND , c_v-2 - .byte N06 , Gn6 , v032 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v-13 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte BEND , c_v-22 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte BEND , c_v-39 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 20*se_m_reflect_mvl/mxv - .byte BEND , c_v-49 - .byte W02 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_reflect_2: - .byte KEYSH , se_m_reflect_key+0 - .byte VOICE , 53 - .byte PAN , c_v+0 - .byte VOL , 90*se_m_reflect_mvl/mxv - .byte W02 - .byte N06 , En6 , v064 - .byte W02 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte W02 - .byte 60*se_m_reflect_mvl/mxv - .byte W01 - .byte 20*se_m_reflect_mvl/mxv - .byte W01 - .byte 90*se_m_reflect_mvl/mxv - .byte N06 , En6 , v056 - .byte W02 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte W02 -se_m_reflect_2_000: - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte W01 - .byte 20*se_m_reflect_mvl/mxv - .byte W01 - .byte 90*se_m_reflect_mvl/mxv - .byte N06 , En6 , v052 - .byte W02 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte W02 - .byte PEND - .byte PATT - .word se_m_reflect_2_000 - .byte VOL , 60*se_m_reflect_mvl/mxv - .byte W01 - .byte 20*se_m_reflect_mvl/mxv - .byte W01 - .byte 90*se_m_reflect_mvl/mxv - .byte N06 , En6 , v048 - .byte W02 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte W02 - .byte 60*se_m_reflect_mvl/mxv - .byte W01 - .byte 20*se_m_reflect_mvl/mxv - .byte W01 - .byte 90*se_m_reflect_mvl/mxv - .byte N06 , En6 , v044 - .byte W02 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte W02 - .byte 60*se_m_reflect_mvl/mxv - .byte W01 - .byte 20*se_m_reflect_mvl/mxv - .byte W01 - .byte 90*se_m_reflect_mvl/mxv - .byte N06 , En6 , v040 - .byte W02 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte W02 - .byte 60*se_m_reflect_mvl/mxv - .byte W01 - .byte 20*se_m_reflect_mvl/mxv - .byte W01 - .byte 90*se_m_reflect_mvl/mxv - .byte N06 , En6 , v036 - .byte W02 - .byte VOL , 74*se_m_reflect_mvl/mxv - .byte W02 - .byte 60*se_m_reflect_mvl/mxv - .byte W01 - .byte 20*se_m_reflect_mvl/mxv - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_reflect: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_reflect_pri @ Priority - .byte se_m_reflect_rev @ Reverb. - - .word se_m_reflect_grp - - .word se_m_reflect_1 - .word se_m_reflect_2 - - .end diff --git a/sound/songs/se_m_reversal.s b/sound/songs/se_m_reversal.s deleted file mode 100644 index 609c399f5..000000000 --- a/sound/songs/se_m_reversal.s +++ /dev/null @@ -1,336 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_reversal_grp, voicegroup128 - .equ se_m_reversal_pri, 4 - .equ se_m_reversal_rev, reverb_set+50 - .equ se_m_reversal_mvl, 127 - .equ se_m_reversal_key, 0 - .equ se_m_reversal_tbs, 1 - .equ se_m_reversal_exg, 0 - .equ se_m_reversal_cmp, 1 - - .section .rodata - .global se_m_reversal - .align 2 - -@********************** Track 1 **********************@ - -se_m_reversal_1: - .byte KEYSH , se_m_reversal_key+0 - .byte TEMPO , 150*se_m_reversal_tbs/2 - .byte VOICE , 19 - .byte BENDR , 24 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v+0 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte N03 , Cn5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v-10 - .byte BEND , c_v+0 - .byte N01 , Gn4 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v-33 - .byte N03 , Cs5 , v092 - .byte W02 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v+10 - .byte BEND , c_v+0 - .byte N01 , Gs4 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-33 - .byte N03 , Dn5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W02 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v-14 - .byte BEND , c_v+0 - .byte N01 , An4 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v-33 - .byte N03 , Ds5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W02 - .byte VOICE , 22 - .byte PAN , c_v+14 - .byte BEND , c_v+0 - .byte N01 , As4 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-33 - .byte N03 , En5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v-18 - .byte BEND , c_v+0 - .byte N01 , Bn4 , v127 - .byte W02 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v-33 - .byte N03 , Fn5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v+18 - .byte BEND , c_v+0 - .byte N01 , Cn5 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-33 - .byte N03 , Fs5 , v092 - .byte W02 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v-14 - .byte BEND , c_v+0 - .byte N01 , Cs5 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v-33 - .byte N03 , Gn5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W02 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v+14 - .byte BEND , c_v+0 - .byte N01 , Dn5 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-33 - .byte N03 , Gs5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W02 - .byte VOICE , 22 - .byte PAN , c_v-10 - .byte BEND , c_v+0 - .byte N01 , Ds5 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v-33 - .byte N03 , An5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v+10 - .byte BEND , c_v+0 - .byte N01 , En5 , v127 - .byte W02 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-33 - .byte N03 , As5 , v092 - .byte W01 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v-10 - .byte BEND , c_v+0 - .byte N01 , Fn5 , v127 - .byte W01 - .byte VOICE , 19 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v-33 - .byte N03 , Bn5 , v092 - .byte W02 - .byte VOL , 72*se_m_reversal_mvl/mxv - .byte W01 - .byte 40*se_m_reversal_mvl/mxv - .byte BEND , c_v+31 - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v+10 - .byte BEND , c_v+0 - .byte N01 , Fs5 , v127 - .byte W01 - .byte BEND , c_v-33 - .byte W03 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_reversal_2: - .byte KEYSH , se_m_reversal_key+0 - .byte VOICE , 17 - .byte VOL , 100*se_m_reversal_mvl/mxv - .byte W02 - .byte BEND , c_v+31 - .byte N03 , Cn5 , v040 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W02 - .byte W01 - .byte c_v+31 - .byte N03 , Cs5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W03 - .byte c_v+31 - .byte N03 , Dn5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W02 - .byte c_v+31 - .byte N03 , Ds5 - .byte W02 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W02 - .byte c_v+31 - .byte N03 , En5 - .byte W01 - .byte BEND , c_v+0 - .byte W02 - .byte c_v-33 - .byte W02 - .byte c_v+31 - .byte N03 , Fn5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W02 - .byte W01 - .byte c_v+31 - .byte N03 , Fs5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W03 - .byte c_v+31 - .byte N03 , Gn5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W02 - .byte c_v+31 - .byte N03 , Gs5 - .byte W02 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W02 - .byte c_v+31 - .byte N03 , An5 - .byte W01 - .byte BEND , c_v+0 - .byte W02 - .byte c_v-33 - .byte W02 - .byte c_v+31 - .byte N03 , As5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W02 - .byte W01 - .byte c_v+31 - .byte N03 , Bn5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W03 - .byte c_v+31 - .byte N03 , Bn5 , v020 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v-33 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_reversal: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_reversal_pri @ Priority - .byte se_m_reversal_rev @ Reverb. - - .word se_m_reversal_grp - - .word se_m_reversal_1 - .word se_m_reversal_2 - - .end diff --git a/sound/songs/se_m_rock_throw.s b/sound/songs/se_m_rock_throw.s deleted file mode 100644 index 71dddd447..000000000 --- a/sound/songs/se_m_rock_throw.s +++ /dev/null @@ -1,65 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_rock_throw_grp, voicegroup128 - .equ se_m_rock_throw_pri, 4 - .equ se_m_rock_throw_rev, reverb_set+50 - .equ se_m_rock_throw_mvl, 127 - .equ se_m_rock_throw_key, 0 - .equ se_m_rock_throw_tbs, 1 - .equ se_m_rock_throw_exg, 0 - .equ se_m_rock_throw_cmp, 1 - - .section .rodata - .global se_m_rock_throw - .align 2 - -@********************** Track 1 **********************@ - -se_m_rock_throw_1: - .byte KEYSH , se_m_rock_throw_key+0 - .byte TEMPO , 150*se_m_rock_throw_tbs/2 - .byte VOICE , 26 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 105*se_m_rock_throw_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , En3 , v127 - .byte W03 - .byte PAN , c_v-8 - .byte BEND , c_v-34 - .byte W03 - .byte PAN , c_v+7 - .byte N03 , Gn3 , v100 - .byte W03 - .byte PAN , c_v-15 - .byte BEND , c_v+4 - .byte N06 , En3 , v127 - .byte W03 - .byte PAN , c_v+16 - .byte BEND , c_v-13 - .byte W03 - .byte PAN , c_v-1 - .byte BEND , c_v+0 - .byte N06 , Cn3 , v084 - .byte W06 - .byte BEND , c_v-20 - .byte N06 , En3 , v068 - .byte W03 - .byte BEND , c_v-41 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_rock_throw: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_rock_throw_pri @ Priority - .byte se_m_rock_throw_rev @ Reverb. - - .word se_m_rock_throw_grp - - .word se_m_rock_throw_1 - - .end diff --git a/sound/songs/se_m_sacred_fire.s b/sound/songs/se_m_sacred_fire.s deleted file mode 100644 index 5e6c864e2..000000000 --- a/sound/songs/se_m_sacred_fire.s +++ /dev/null @@ -1,105 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sacred_fire_grp, voicegroup128 - .equ se_m_sacred_fire_pri, 4 - .equ se_m_sacred_fire_rev, reverb_set+50 - .equ se_m_sacred_fire_mvl, 127 - .equ se_m_sacred_fire_key, 0 - .equ se_m_sacred_fire_tbs, 1 - .equ se_m_sacred_fire_exg, 0 - .equ se_m_sacred_fire_cmp, 1 - - .section .rodata - .global se_m_sacred_fire - .align 2 - -@********************** Track 1 **********************@ - -se_m_sacred_fire_1: - .byte KEYSH , se_m_sacred_fire_key+0 - .byte TEMPO , 150*se_m_sacred_fire_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte VOL , 110*se_m_sacred_fire_mvl/mxv - .byte PAN , c_v+5 - .byte BEND , c_v+0 - .byte N04 , Cn3 , v127 - .byte W03 - .byte PAN , c_v+0 - .byte W01 - .byte N18 , Gn4 - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte VOL , 98*se_m_sacred_fire_mvl/mxv - .byte BEND , c_v+2 - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 83*se_m_sacred_fire_mvl/mxv - .byte BEND , c_v+6 - .byte W02 - .byte PAN , c_v+5 - .byte W01 - .byte BEND , c_v+9 - .byte W01 - .byte VOL , 63*se_m_sacred_fire_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte BEND , c_v+13 - .byte W02 - .byte VOL , 44*se_m_sacred_fire_mvl/mxv - .byte PAN , c_v-5 - .byte W02 - .byte VOL , 28*se_m_sacred_fire_mvl/mxv - .byte BEND , c_v+20 - .byte W01 - .byte PAN , c_v-2 - .byte W01 - .byte VOL , 12*se_m_sacred_fire_mvl/mxv - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_sacred_fire_2: - .byte KEYSH , se_m_sacred_fire_key+0 - .byte VOICE , 27 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_sacred_fire_mvl/mxv - .byte N01 , Gn2 , v032 - .byte W02 - .byte N01 - .byte W02 - .byte N18 - .byte W03 - .byte VOL , 98*se_m_sacred_fire_mvl/mxv - .byte W03 - .byte 83*se_m_sacred_fire_mvl/mxv - .byte W04 - .byte 63*se_m_sacred_fire_mvl/mxv - .byte W04 - .byte 44*se_m_sacred_fire_mvl/mxv - .byte W02 - .byte 28*se_m_sacred_fire_mvl/mxv - .byte W02 - .byte 12*se_m_sacred_fire_mvl/mxv - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sacred_fire: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sacred_fire_pri @ Priority - .byte se_m_sacred_fire_rev @ Reverb. - - .word se_m_sacred_fire_grp - - .word se_m_sacred_fire_1 - .word se_m_sacred_fire_2 - - .end diff --git a/sound/songs/se_m_sacred_fire2.s b/sound/songs/se_m_sacred_fire2.s deleted file mode 100644 index f255e712a..000000000 --- a/sound/songs/se_m_sacred_fire2.s +++ /dev/null @@ -1,180 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sacred_fire2_grp, voicegroup128 - .equ se_m_sacred_fire2_pri, 4 - .equ se_m_sacred_fire2_rev, reverb_set+50 - .equ se_m_sacred_fire2_mvl, 127 - .equ se_m_sacred_fire2_key, 0 - .equ se_m_sacred_fire2_tbs, 1 - .equ se_m_sacred_fire2_exg, 0 - .equ se_m_sacred_fire2_cmp, 1 - - .section .rodata - .global se_m_sacred_fire2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_sacred_fire2_1: - .byte KEYSH , se_m_sacred_fire2_key+0 - .byte TEMPO , 150*se_m_sacred_fire2_tbs/2 - .byte VOICE , 29 - .byte BENDR , 12 - .byte VOL , 22*se_m_sacred_fire2_mvl/mxv - .byte PAN , c_v+5 - .byte BEND , c_v+0 - .byte N96 , Gn3 , v127 - .byte W01 - .byte VOL , 49*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte 71*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 95*se_m_sacred_fire2_mvl/mxv - .byte BEND , c_v+8 - .byte W01 - .byte VOL , 110*se_m_sacred_fire2_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte BEND , c_v+16 - .byte W03 - .byte VOL , 97*se_m_sacred_fire2_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+7 - .byte W03 - .byte PAN , c_v+5 - .byte BEND , c_v+0 - .byte W01 - .byte VOL , 84*se_m_sacred_fire2_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-9 - .byte W03 - .byte VOL , 76*se_m_sacred_fire2_mvl/mxv - .byte PAN , c_v-5 - .byte BEND , c_v-24 - .byte W03 - .byte PAN , c_v-2 - .byte BEND , c_v-46 - .byte W03 - .byte VOL , 84*se_m_sacred_fire2_mvl/mxv - .byte PAN , c_v+5 - .byte W03 - .byte c_v+0 - .byte W01 - .byte VOL , 92*se_m_sacred_fire2_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W01 - .byte BEND , c_v-32 - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 86*se_m_sacred_fire2_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W02 - .byte BEND , c_v-18 - .byte W01 - .byte VOL , 78*se_m_sacred_fire2_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte W02 - .byte VOL , 71*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte PAN , c_v-2 - .byte W03 - .byte c_v+5 - .byte W03 - .byte c_v+0 - .byte VOL , 78*se_m_sacred_fire2_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte W02 - .byte VOL , 86*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte c_v+5 - .byte W02 - .byte VOL , 90*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte W03 - .byte c_v-2 - .byte W01 - .byte VOL , 80*se_m_sacred_fire2_mvl/mxv - .byte W02 - .byte PAN , c_v+5 - .byte W03 - .byte c_v+0 - .byte W01 - .byte VOL , 86*se_m_sacred_fire2_mvl/mxv - .byte W02 - .byte PAN , c_v-5 - .byte W03 - .byte c_v+0 - .byte VOL , 83*se_m_sacred_fire2_mvl/mxv - .byte W03 - .byte PAN , c_v+5 - .byte VOL , 63*se_m_sacred_fire2_mvl/mxv - .byte W03 - .byte 37*se_m_sacred_fire2_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte c_v-5 - .byte VOL , 13*se_m_sacred_fire2_mvl/mxv - .byte W03 - .byte PAN , c_v-2 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_sacred_fire2_2: - .byte KEYSH , se_m_sacred_fire2_key+0 - .byte VOICE , 27 - .byte VOL , 22*se_m_sacred_fire2_mvl/mxv - .byte N96 , Gn2 , v032 - .byte W01 - .byte VOL , 49*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte 71*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte 95*se_m_sacred_fire2_mvl/mxv - .byte W01 - .byte 110*se_m_sacred_fire2_mvl/mxv - .byte W05 - .byte 97*se_m_sacred_fire2_mvl/mxv - .byte W15 - .byte W24 - .byte W24 - .byte W09 - .byte 83*se_m_sacred_fire2_mvl/mxv - .byte W03 - .byte 63*se_m_sacred_fire2_mvl/mxv - .byte W03 - .byte 37*se_m_sacred_fire2_mvl/mxv - .byte W03 - .byte 13*se_m_sacred_fire2_mvl/mxv - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sacred_fire2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sacred_fire2_pri @ Priority - .byte se_m_sacred_fire2_rev @ Reverb. - - .word se_m_sacred_fire2_grp - - .word se_m_sacred_fire2_1 - .word se_m_sacred_fire2_2 - - .end diff --git a/sound/songs/se_m_sand_tomb.s b/sound/songs/se_m_sand_tomb.s deleted file mode 100644 index 8edf0abf8..000000000 --- a/sound/songs/se_m_sand_tomb.s +++ /dev/null @@ -1,197 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sand_tomb_grp, voicegroup128 - .equ se_m_sand_tomb_pri, 4 - .equ se_m_sand_tomb_rev, reverb_set+50 - .equ se_m_sand_tomb_mvl, 127 - .equ se_m_sand_tomb_key, 0 - .equ se_m_sand_tomb_tbs, 1 - .equ se_m_sand_tomb_exg, 0 - .equ se_m_sand_tomb_cmp, 1 - - .section .rodata - .global se_m_sand_tomb - .align 2 - -@********************** Track 1 **********************@ - -se_m_sand_tomb_1: - .byte KEYSH , se_m_sand_tomb_key+0 - .byte TEMPO , 150*se_m_sand_tomb_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 64*se_m_sand_tomb_mvl/mxv - .byte BEND , c_v+0 - .byte N96 , En2 , v127 - .byte W03 - .byte VOL , 79*se_m_sand_tomb_mvl/mxv - .byte BEND , c_v+22 - .byte W02 - .byte c_v+8 - .byte W01 - .byte VOL , 84*se_m_sand_tomb_mvl/mxv - .byte PAN , c_v-4 - .byte W03 - .byte VOL , 91*se_m_sand_tomb_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 100*se_m_sand_tomb_mvl/mxv - .byte PAN , c_v-8 - .byte W03 - .byte VOL , 110*se_m_sand_tomb_mvl/mxv - .byte W03 - .byte PAN , c_v-12 - .byte W06 - .byte c_v-17 - .byte BEND , c_v+0 - .byte W03 - .byte c_v-7 - .byte W03 - .byte PAN , c_v-9 - .byte BEND , c_v-12 - .byte W03 - .byte c_v-20 - .byte W03 - .byte PAN , c_v-3 - .byte W03 - .byte c_v+6 - .byte BEND , c_v-13 - .byte W03 - .byte PAN , c_v+10 - .byte W03 - .byte BEND , c_v-6 - .byte W03 - .byte PAN , c_v+16 - .byte W03 - .byte BEND , c_v+6 - .byte W03 - .byte PAN , c_v+13 - .byte BEND , c_v+11 - .byte W03 - .byte c_v+20 - .byte W03 - .byte PAN , c_v+8 - .byte W03 - .byte c_v+0 - .byte BEND , c_v+12 - .byte W03 - .byte PAN , c_v-8 - .byte BEND , c_v+7 - .byte W03 - .byte PAN , c_v-11 - .byte W03 - .byte c_v-17 - .byte VOL , 98*se_m_sand_tomb_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 90*se_m_sand_tomb_mvl/mxv - .byte BEND , c_v-7 - .byte W03 - .byte PAN , c_v-9 - .byte BEND , c_v-12 - .byte W01 - .byte VOL , 80*se_m_sand_tomb_mvl/mxv - .byte W02 - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 71*se_m_sand_tomb_mvl/mxv - .byte W02 - .byte PAN , c_v-3 - .byte W02 - .byte VOL , 58*se_m_sand_tomb_mvl/mxv - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v-13 - .byte W03 - .byte PAN , c_v+10 - .byte VOL , 45*se_m_sand_tomb_mvl/mxv - .byte W02 - .byte 27*se_m_sand_tomb_mvl/mxv - .byte W01 - .byte BEND , c_v-6 - .byte W01 - .byte VOL , 11*se_m_sand_tomb_mvl/mxv - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_sand_tomb_2: - .byte KEYSH , se_m_sand_tomb_key+0 - .byte VOICE , 57 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_sand_tomb_mvl/mxv - .byte N03 , Cn3 , v100 - .byte W03 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W04 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W03 - .byte W01 - .byte En3 , v080 - .byte W03 - .byte Dn3 - .byte W04 - .byte Cn3 , v100 - .byte W04 - .byte En3 , v080 - .byte W03 - .byte Dn3 - .byte W04 - .byte Cn3 , v100 - .byte W03 - .byte En3 , v080 - .byte W02 - .byte W02 - .byte Dn3 - .byte W04 - .byte Cn3 , v100 - .byte W03 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W04 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v092 - .byte W04 - .byte En3 , v060 - .byte W03 - .byte Dn3 , v052 - .byte W04 - .byte Cn3 , v060 - .byte W04 - .byte En3 , v032 - .byte W03 - .byte N02 , Dn3 , v020 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sand_tomb: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sand_tomb_pri @ Priority - .byte se_m_sand_tomb_rev @ Reverb. - - .word se_m_sand_tomb_grp - - .word se_m_sand_tomb_1 - .word se_m_sand_tomb_2 - - .end diff --git a/sound/songs/se_m_sandstorm.s b/sound/songs/se_m_sandstorm.s deleted file mode 100644 index 9674cd043..000000000 --- a/sound/songs/se_m_sandstorm.s +++ /dev/null @@ -1,290 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sandstorm_grp, voicegroup128 - .equ se_m_sandstorm_pri, 4 - .equ se_m_sandstorm_rev, reverb_set+50 - .equ se_m_sandstorm_mvl, 127 - .equ se_m_sandstorm_key, 0 - .equ se_m_sandstorm_tbs, 1 - .equ se_m_sandstorm_exg, 0 - .equ se_m_sandstorm_cmp, 1 - - .section .rodata - .global se_m_sandstorm - .align 2 - -@********************** Track 1 **********************@ - -se_m_sandstorm_1: - .byte KEYSH , se_m_sandstorm_key+0 - .byte TEMPO , 200*se_m_sandstorm_tbs/2 - .byte VOICE , 2 - .byte BENDR , 12 - .byte PAN , c_v-48 - .byte VOL , 11*se_m_sandstorm_mvl/mxv - .byte BEND , c_v+0 - .byte TIE , En3 , v127 - .byte W03 - .byte VOL , 17*se_m_sandstorm_mvl/mxv - .byte BEND , c_v+22 - .byte W02 - .byte c_v+8 - .byte W01 - .byte VOL , 24*se_m_sandstorm_mvl/mxv - .byte W03 - .byte 32*se_m_sandstorm_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 52*se_m_sandstorm_mvl/mxv - .byte W03 - .byte 65*se_m_sandstorm_mvl/mxv - .byte W03 - .byte 76*se_m_sandstorm_mvl/mxv - .byte W02 - .byte 88*se_m_sandstorm_mvl/mxv - .byte PAN , c_v-43 - .byte W02 - .byte VOL , 98*se_m_sandstorm_mvl/mxv - .byte W02 - .byte BEND , c_v+0 - .byte W02 - .byte VOL , 111*se_m_sandstorm_mvl/mxv - .byte W01 - .byte BEND , c_v-7 - .byte W01 - .byte VOL , 127*se_m_sandstorm_mvl/mxv - .byte W02 - .byte BEND , c_v-12 - .byte W02 - .byte PAN , c_v-38 - .byte W01 - .byte BEND , c_v-20 - .byte W06 - .byte c_v-13 - .byte W05 - .byte PAN , c_v-31 - .byte W01 - .byte BEND , c_v-6 - .byte W03 - .byte W03 - .byte c_v+6 - .byte W03 - .byte c_v+11 - .byte W03 - .byte c_v+20 - .byte W01 - .byte PAN , c_v-21 - .byte W05 - .byte BEND , c_v+12 - .byte W03 - .byte c_v+7 - .byte W06 - .byte PAN , c_v-16 - .byte BEND , c_v+0 - .byte W03 - .byte c_v-7 - .byte W03 - .byte c_v-12 - .byte W03 - .byte c_v-20 - .byte W06 - .byte PAN , c_v-7 - .byte BEND , c_v-13 - .byte W06 - .byte c_v-6 - .byte W03 - .byte c_v+0 - .byte W03 - .byte PAN , c_v+2 - .byte BEND , c_v+22 - .byte W02 - .byte c_v+8 - .byte W04 - .byte c_v+0 - .byte W05 - .byte PAN , c_v+10 - .byte W10 - .byte BEND , c_v+0 - .byte W01 - .byte PAN , c_v+16 - .byte W02 - .byte BEND , c_v-7 - .byte W03 - .byte c_v-12 - .byte W03 - .byte PAN , c_v+24 - .byte BEND , c_v-20 - .byte W06 - .byte c_v-13 - .byte W05 - .byte PAN , c_v+32 - .byte W01 - .byte BEND , c_v-6 - .byte W03 - .byte W03 - .byte c_v+6 - .byte W03 - .byte c_v+11 - .byte W03 - .byte c_v+20 - .byte W01 - .byte PAN , c_v+40 - .byte W05 - .byte BEND , c_v+12 - .byte W03 - .byte c_v+7 - .byte W04 - .byte VOL , 114*se_m_sandstorm_mvl/mxv - .byte W02 - .byte BEND , c_v+0 - .byte W01 - .byte PAN , c_v+48 - .byte W01 - .byte VOL , 104*se_m_sandstorm_mvl/mxv - .byte W01 - .byte BEND , c_v-7 - .byte W03 - .byte VOL , 93*se_m_sandstorm_mvl/mxv - .byte BEND , c_v-12 - .byte W03 - .byte VOL , 82*se_m_sandstorm_mvl/mxv - .byte BEND , c_v-20 - .byte W04 - .byte VOL , 67*se_m_sandstorm_mvl/mxv - .byte W02 - .byte BEND , c_v-13 - .byte W01 - .byte VOL , 52*se_m_sandstorm_mvl/mxv - .byte W03 - .byte 32*se_m_sandstorm_mvl/mxv - .byte W02 - .byte 13*se_m_sandstorm_mvl/mxv - .byte BEND , c_v-6 - .byte W03 - .byte EOT - .byte FINE - -@********************** Track 2 **********************@ - -se_m_sandstorm_2: - .byte KEYSH , se_m_sandstorm_key+0 - .byte VOICE , 57 - .byte PAN , c_v+0 - .byte VOL , 60*se_m_sandstorm_mvl/mxv - .byte N03 , Cn3 , v100 - .byte W03 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W04 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W03 -se_m_sandstorm_2_000: - .byte W01 - .byte N03 , En3 , v080 - .byte W03 - .byte Dn3 - .byte W04 - .byte Cn3 , v100 - .byte W04 - .byte En3 , v080 - .byte W03 - .byte Dn3 - .byte W04 - .byte Cn3 , v100 - .byte W03 - .byte En3 , v080 - .byte W02 - .byte PEND - .byte W02 - .byte Dn3 - .byte W04 - .byte Cn3 , v100 - .byte W03 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W04 - .byte En3 , v080 - .byte W04 - .byte Cn3 , v100 - .byte W03 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W04 - .byte En3 , v080 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v100 - .byte W03 - .byte PATT - .word se_m_sandstorm_2_000 - .byte W02 - .byte N03 , Cn3 , v076 - .byte W04 - .byte En3 , v064 - .byte W03 - .byte Dn3 , v060 - .byte W04 - .byte Cn3 , v076 - .byte W03 - .byte En3 , v052 - .byte W04 - .byte Dn3 , v048 - .byte W04 - .byte Cn3 , v068 - .byte W03 - .byte En3 , v044 - .byte W04 - .byte Dn3 , v040 - .byte W03 - .byte Cn3 , v056 - .byte W04 - .byte En3 , v032 - .byte W04 - .byte Dn3 - .byte W03 - .byte Cn3 , v048 - .byte W03 - .byte W01 - .byte En3 , v024 - .byte W03 - .byte Dn3 , v020 - .byte W04 - .byte Cn3 , v036 - .byte W04 - .byte En3 , v016 - .byte W03 - .byte Dn3 , v012 - .byte W04 - .byte Cn3 , v028 - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sandstorm: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sandstorm_pri @ Priority - .byte se_m_sandstorm_rev @ Reverb. - - .word se_m_sandstorm_grp - - .word se_m_sandstorm_1 - .word se_m_sandstorm_2 - - .end diff --git a/sound/songs/se_m_screech.s b/sound/songs/se_m_screech.s deleted file mode 100644 index 378cf7128..000000000 --- a/sound/songs/se_m_screech.s +++ /dev/null @@ -1,112 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_screech_grp, voicegroup128 - .equ se_m_screech_pri, 4 - .equ se_m_screech_rev, reverb_set+50 - .equ se_m_screech_mvl, 127 - .equ se_m_screech_key, 0 - .equ se_m_screech_tbs, 1 - .equ se_m_screech_exg, 0 - .equ se_m_screech_cmp, 1 - - .section .rodata - .global se_m_screech - .align 2 - -@********************** Track 1 **********************@ - -se_m_screech_1: - .byte VOL , 110*se_m_screech_mvl/mxv - .byte KEYSH , se_m_screech_key+0 - .byte TEMPO , 150*se_m_screech_tbs/2 - .byte VOICE , 44 - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N21 , Fs5 , v112 - .byte W01 - .byte PAN , c_v-5 - .byte W01 - .byte c_v-10 - .byte VOL , 15*se_m_screech_mvl/mxv - .byte W01 - .byte PAN , c_v-4 - .byte VOL , 41*se_m_screech_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 69*se_m_screech_mvl/mxv - .byte W02 - .byte PAN , c_v+4 - .byte W01 - .byte c_v+10 - .byte VOL , 84*se_m_screech_mvl/mxv - .byte W01 - .byte PAN , c_v+4 - .byte W01 - .byte VOL , 97*se_m_screech_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte c_v-5 - .byte W02 - .byte VOL , 110*se_m_screech_mvl/mxv - .byte PAN , c_v-10 - .byte W01 - .byte c_v-4 - .byte W01 - .byte c_v+0 - .byte W01 - .byte c_v+4 - .byte W01 - .byte c_v+10 - .byte W02 - .byte VOL , 100*se_m_screech_mvl/mxv - .byte PAN , c_v+4 - .byte W01 - .byte VOL , 84*se_m_screech_mvl/mxv - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 55*se_m_screech_mvl/mxv - .byte W02 - .byte BEND , c_v+0 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_screech_2: - .byte VOL , 110*se_m_screech_mvl/mxv - .byte KEYSH , se_m_screech_key+0 - .byte VOICE , 42 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N21 , Fn6 , v064 - .byte W06 - .byte PAN , c_v+0 - .byte W03 - .byte c_v+0 - .byte W03 - .byte W03 - .byte c_v+0 - .byte W03 - .byte W01 - .byte c_v+0 - .byte W03 - .byte BEND , c_v+0 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_screech: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_screech_pri @ Priority - .byte se_m_screech_rev @ Reverb. - - .word se_m_screech_grp - - .word se_m_screech_1 - .word se_m_screech_2 - - .end diff --git a/sound/songs/se_m_self_destruct.s b/sound/songs/se_m_self_destruct.s deleted file mode 100644 index f2ab617ca..000000000 --- a/sound/songs/se_m_self_destruct.s +++ /dev/null @@ -1,74 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_self_destruct_grp, voicegroup128 - .equ se_m_self_destruct_pri, 4 - .equ se_m_self_destruct_rev, reverb_set+50 - .equ se_m_self_destruct_mvl, 127 - .equ se_m_self_destruct_key, 0 - .equ se_m_self_destruct_tbs, 1 - .equ se_m_self_destruct_exg, 0 - .equ se_m_self_destruct_cmp, 1 - - .section .rodata - .global se_m_self_destruct - .align 2 - -@********************** Track 1 **********************@ - -se_m_self_destruct_1: - .byte KEYSH , se_m_self_destruct_key+0 - .byte TEMPO , 150*se_m_self_destruct_tbs/2 - .byte VOICE , 41 - .byte VOL , 115*se_m_self_destruct_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N01 , Gn3 , v127 - .byte W01 - .byte Cn3 - .byte W01 - .byte N24 , An3 - .byte W06 - .byte PAN , c_v+6 - .byte W04 - .byte c_v+0 - .byte W01 - .byte VOL , 102*se_m_self_destruct_mvl/mxv - .byte W02 - .byte PAN , c_v-8 - .byte VOL , 88*se_m_self_destruct_mvl/mxv - .byte W03 - .byte 78*se_m_self_destruct_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 67*se_m_self_destruct_mvl/mxv - .byte W01 - .byte BEND , c_v-2 - .byte W01 - .byte PAN , c_v+7 - .byte VOL , 45*se_m_self_destruct_mvl/mxv - .byte W02 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 13*se_m_self_destruct_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-15 - .byte W22 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_self_destruct: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_self_destruct_pri @ Priority - .byte se_m_self_destruct_rev @ Reverb. - - .word se_m_self_destruct_grp - - .word se_m_self_destruct_1 - - .end diff --git a/sound/songs/se_m_sing.s b/sound/songs/se_m_sing.s deleted file mode 100644 index f12509f56..000000000 --- a/sound/songs/se_m_sing.s +++ /dev/null @@ -1,198 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sing_grp, voicegroup128 - .equ se_m_sing_pri, 4 - .equ se_m_sing_rev, reverb_set+50 - .equ se_m_sing_mvl, 127 - .equ se_m_sing_key, 0 - .equ se_m_sing_tbs, 1 - .equ se_m_sing_exg, 0 - .equ se_m_sing_cmp, 1 - - .section .rodata - .global se_m_sing - .align 2 - -@********************** Track 1 **********************@ - -se_m_sing_1: - .byte KEYSH , se_m_sing_key+0 - .byte TEMPO , 100*se_m_sing_tbs/2 - .byte VOICE , 73 - .byte BENDR , 12 - .byte LFOS , 40 - .byte PAN , c_v+0 - .byte VOL , 95*se_m_sing_mvl/mxv - .byte BEND , c_v+0 - .byte N44 , Gn4 , v112 - .byte W06 - .byte W06 - .byte W03 - .byte MOD , 7 - .byte W03 - .byte W03 - .byte VOL , 83*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte 69*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte 50*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte 24*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte MOD , 0 - .byte W03 - .byte VOL , 95*se_m_sing_mvl/mxv - .byte N21 , Fn5 - .byte W06 - .byte W06 -se_m_sing_1_000: - .byte VOL , 86*se_m_sing_mvl/mxv - .byte MOD , 7 - .byte W03 - .byte VOL , 75*se_m_sing_mvl/mxv - .byte W03 - .byte PEND -se_m_sing_1_001: - .byte VOL , 55*se_m_sing_mvl/mxv - .byte W03 - .byte 26*se_m_sing_mvl/mxv - .byte MOD , 0 - .byte W03 - .byte PEND - .byte VOL , 95*se_m_sing_mvl/mxv - .byte N21 , Ds5 , v112 - .byte W06 - .byte W06 - .byte PATT - .word se_m_sing_1_000 - .byte PATT - .word se_m_sing_1_001 - .byte VOL , 95*se_m_sing_mvl/mxv - .byte N66 , Gn4 , v112 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte MOD , 7 - .byte W06 - .byte W06 - .byte W06 - .byte VOL , 83*se_m_sing_mvl/mxv - .byte W06 - .byte 69*se_m_sing_mvl/mxv - .byte W06 - .byte 50*se_m_sing_mvl/mxv - .byte W06 - .byte 24*se_m_sing_mvl/mxv - .byte W06 - .byte MOD , 0 - .byte W06 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_sing_2: - .byte KEYSH , se_m_sing_key+0 - .byte VOICE , 73 - .byte LFOS , 40 - .byte VOL , 95*se_m_sing_mvl/mxv - .byte BEND , c_v+9 - .byte W06 - .byte W06 - .byte PAN , c_v+12 - .byte N44 , Gn4 , v060 - .byte W06 - .byte W06 - .byte W03 - .byte MOD , 7 - .byte W03 - .byte W03 - .byte VOL , 83*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte 69*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte 50*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte 24*se_m_sing_mvl/mxv - .byte W03 - .byte W03 - .byte MOD , 0 - .byte W03 - .byte VOL , 95*se_m_sing_mvl/mxv - .byte PAN , c_v-12 - .byte N21 , Fn5 - .byte W06 - .byte W06 -se_m_sing_2_000: - .byte VOL , 86*se_m_sing_mvl/mxv - .byte MOD , 7 - .byte W03 - .byte VOL , 75*se_m_sing_mvl/mxv - .byte W03 - .byte PEND -se_m_sing_2_001: - .byte VOL , 55*se_m_sing_mvl/mxv - .byte W03 - .byte 26*se_m_sing_mvl/mxv - .byte MOD , 0 - .byte W03 - .byte PEND - .byte VOL , 95*se_m_sing_mvl/mxv - .byte PAN , c_v+12 - .byte N21 , Ds5 , v060 - .byte W06 - .byte W06 - .byte PATT - .word se_m_sing_2_000 - .byte PATT - .word se_m_sing_2_001 - .byte VOL , 95*se_m_sing_mvl/mxv - .byte PAN , c_v-12 - .byte N66 , Gn4 , v060 - .byte W06 - .byte W06 - .byte PAN , c_v-8 - .byte W06 - .byte W06 - .byte MOD , 7 - .byte PAN , c_v+0 - .byte W06 - .byte W06 - .byte c_v+7 - .byte W06 - .byte VOL , 83*se_m_sing_mvl/mxv - .byte W06 - .byte 69*se_m_sing_mvl/mxv - .byte PAN , c_v+15 - .byte W06 - .byte VOL , 50*se_m_sing_mvl/mxv - .byte W06 - .byte 24*se_m_sing_mvl/mxv - .byte PAN , c_v+8 - .byte W06 - .byte MOD , 0 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sing: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sing_pri @ Priority - .byte se_m_sing_rev @ Reverb. - - .word se_m_sing_grp - - .word se_m_sing_1 - .word se_m_sing_2 - - .end diff --git a/sound/songs/se_m_sketch.s b/sound/songs/se_m_sketch.s deleted file mode 100644 index 3657d2009..000000000 --- a/sound/songs/se_m_sketch.s +++ /dev/null @@ -1,68 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sketch_grp, voicegroup128 - .equ se_m_sketch_pri, 4 - .equ se_m_sketch_rev, reverb_set+50 - .equ se_m_sketch_mvl, 127 - .equ se_m_sketch_key, 0 - .equ se_m_sketch_tbs, 1 - .equ se_m_sketch_exg, 0 - .equ se_m_sketch_cmp, 1 - - .section .rodata - .global se_m_sketch - .align 2 - -@********************** Track 1 **********************@ - -se_m_sketch_1: - .byte KEYSH , se_m_sketch_key+0 - .byte TEMPO , 180*se_m_sketch_tbs/2 - .byte VOICE , 38 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_sketch_mvl/mxv - .byte BEND , c_v+0 - .byte N02 , Gn4 , v127 - .byte W01 - .byte VOL , 74*se_m_sketch_mvl/mxv - .byte BEND , c_v-11 - .byte W01 - .byte VOICE , 31 - .byte VOL , 40*se_m_sketch_mvl/mxv - .byte BEND , c_v-1 - .byte N03 , Cs5 - .byte W01 - .byte VOL , 64*se_m_sketch_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-12 - .byte W01 - .byte VOL , 86*se_m_sketch_mvl/mxv - .byte PAN , c_v+4 - .byte BEND , c_v-16 - .byte W02 - .byte VOL , 110*se_m_sketch_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , As5 - .byte W01 - .byte BEND , c_v+12 - .byte W01 - .byte VOL , 0*se_m_sketch_mvl/mxv - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sketch: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sketch_pri @ Priority - .byte se_m_sketch_rev @ Reverb. - - .word se_m_sketch_grp - - .word se_m_sketch_1 - - .end diff --git a/sound/songs/se_m_sky_uppercut.s b/sound/songs/se_m_sky_uppercut.s deleted file mode 100644 index 66a791f96..000000000 --- a/sound/songs/se_m_sky_uppercut.s +++ /dev/null @@ -1,103 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sky_uppercut_grp, voicegroup128 - .equ se_m_sky_uppercut_pri, 4 - .equ se_m_sky_uppercut_rev, reverb_set+50 - .equ se_m_sky_uppercut_mvl, 127 - .equ se_m_sky_uppercut_key, 0 - .equ se_m_sky_uppercut_tbs, 1 - .equ se_m_sky_uppercut_exg, 0 - .equ se_m_sky_uppercut_cmp, 1 - - .section .rodata - .global se_m_sky_uppercut - .align 2 - -@********************** Track 1 **********************@ - -se_m_sky_uppercut_1: - .byte KEYSH , se_m_sky_uppercut_key+0 - .byte TEMPO , 220*se_m_sky_uppercut_tbs/2 - .byte VOICE , 41 - .byte VOL , 110*se_m_sky_uppercut_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+6 - .byte BEND , c_v+0 - .byte N02 , Cn4 , v127 - .byte W03 - .byte VOL , 104*se_m_sky_uppercut_mvl/mxv - .byte W03 - .byte 93*se_m_sky_uppercut_mvl/mxv - .byte PAN , c_v-6 - .byte N02 , Cn5 - .byte W03 - .byte VOL , 110*se_m_sky_uppercut_mvl/mxv - .byte W01 - .byte VOICE , 22 - .byte PAN , c_v+0 - .byte N24 , Cn4 , v060 - .byte W02 - .byte W02 - .byte BEND , c_v+0 - .byte W04 - .byte c_v+1 - .byte W03 - .byte c_v+1 - .byte W01 - .byte VOL , 105*se_m_sky_uppercut_mvl/mxv - .byte W02 - .byte BEND , c_v+0 - .byte W01 - .byte VOL , 103*se_m_sky_uppercut_mvl/mxv - .byte W02 - .byte 91*se_m_sky_uppercut_mvl/mxv - .byte BEND , c_v+0 - .byte W03 - .byte VOL , 77*se_m_sky_uppercut_mvl/mxv - .byte BEND , c_v-1 - .byte W02 - .byte VOL , 61*se_m_sky_uppercut_mvl/mxv - .byte BEND , c_v-2 - .byte W01 - .byte VOL , 38*se_m_sky_uppercut_mvl/mxv - .byte W01 - .byte 15*se_m_sky_uppercut_mvl/mxv - .byte BEND , c_v-3 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_sky_uppercut_2: - .byte KEYSH , se_m_sky_uppercut_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_m_sky_uppercut_mvl/mxv - .byte N02 , Cn3 , v060 - .byte W03 - .byte Gn2 - .byte W03 - .byte Gs4 - .byte W04 - .byte Gs4 , v020 - .byte W02 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sky_uppercut: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sky_uppercut_pri @ Priority - .byte se_m_sky_uppercut_rev @ Reverb. - - .word se_m_sky_uppercut_grp - - .word se_m_sky_uppercut_1 - .word se_m_sky_uppercut_2 - - .end diff --git a/sound/songs/se_m_snore.s b/sound/songs/se_m_snore.s deleted file mode 100644 index aff9ef5e3..000000000 --- a/sound/songs/se_m_snore.s +++ /dev/null @@ -1,105 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_snore_grp, voicegroup128 - .equ se_m_snore_pri, 4 - .equ se_m_snore_rev, reverb_set+50 - .equ se_m_snore_mvl, 127 - .equ se_m_snore_key, 0 - .equ se_m_snore_tbs, 1 - .equ se_m_snore_exg, 0 - .equ se_m_snore_cmp, 1 - - .section .rodata - .global se_m_snore - .align 2 - -@********************** Track 1 **********************@ - -se_m_snore_1: - .byte KEYSH , se_m_snore_key+0 - .byte TEMPO , 220*se_m_snore_tbs/2 - .byte VOICE , 38 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 27*se_m_snore_mvl/mxv - .byte BEND , c_v+0 - .byte N10 , An1 , v127 - .byte W01 - .byte VOL , 75*se_m_snore_mvl/mxv - .byte W01 - .byte 120*se_m_snore_mvl/mxv - .byte W04 - .byte W02 - .byte 75*se_m_snore_mvl/mxv - .byte W01 - .byte 28*se_m_snore_mvl/mxv - .byte W03 - .byte VOICE , 36 - .byte VOL , 83*se_m_snore_mvl/mxv - .byte N18 , En2 , v112 - .byte W02 - .byte VOL , 87*se_m_snore_mvl/mxv - .byte W02 - .byte 91*se_m_snore_mvl/mxv - .byte W02 - .byte W01 - .byte 97*se_m_snore_mvl/mxv - .byte W02 - .byte 102*se_m_snore_mvl/mxv - .byte W01 - .byte 109*se_m_snore_mvl/mxv - .byte W02 - .byte 113*se_m_snore_mvl/mxv - .byte W01 - .byte 120*se_m_snore_mvl/mxv - .byte W05 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_snore_2: - .byte VOL , 120*se_m_snore_mvl/mxv - .byte KEYSH , se_m_snore_key+0 - .byte VOICE , 27 - .byte N01 , En2 , v052 - .byte W02 - .byte Dn2 - .byte W02 - .byte En2 - .byte W02 - .byte W01 - .byte Dn2 - .byte W02 - .byte En2 - .byte W03 - .byte W01 - .byte En2 , v064 - .byte W02 - .byte Gs2 - .byte W03 - .byte Dn3 - .byte W02 - .byte En2 - .byte W02 - .byte Gs2 - .byte W02 - .byte W01 - .byte Dn3 - .byte W05 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_snore: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_snore_pri @ Priority - .byte se_m_snore_rev @ Reverb. - - .word se_m_snore_grp - - .word se_m_snore_1 - .word se_m_snore_2 - - .end diff --git a/sound/songs/se_m_solar_beam.s b/sound/songs/se_m_solar_beam.s deleted file mode 100644 index c260c332a..000000000 --- a/sound/songs/se_m_solar_beam.s +++ /dev/null @@ -1,164 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_solar_beam_grp, voicegroup128 - .equ se_m_solar_beam_pri, 4 - .equ se_m_solar_beam_rev, reverb_set+50 - .equ se_m_solar_beam_mvl, 127 - .equ se_m_solar_beam_key, 0 - .equ se_m_solar_beam_tbs, 1 - .equ se_m_solar_beam_exg, 0 - .equ se_m_solar_beam_cmp, 1 - - .section .rodata - .global se_m_solar_beam - .align 2 - -@********************** Track 1 **********************@ - -se_m_solar_beam_1: - .byte KEYSH , se_m_solar_beam_key+0 - .byte TEMPO , 150*se_m_solar_beam_tbs/2 - .byte VOICE , 36 - .byte BENDR , 24 - .byte VOL , 25*se_m_solar_beam_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+63 - .byte TIE , Cn4 , v112 - .byte W04 - .byte VOL , 40*se_m_solar_beam_mvl/mxv - .byte W02 - .byte PAN , c_v-4 - .byte BEND , c_v+52 - .byte W03 - .byte VOL , 55*se_m_solar_beam_mvl/mxv - .byte W03 - .byte PAN , c_v-10 - .byte BEND , c_v+41 - .byte W03 - .byte VOL , 80*se_m_solar_beam_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte BEND , c_v+30 - .byte W06 - .byte PAN , c_v+0 - .byte BEND , c_v+22 - .byte W01 - .byte VOL , 100*se_m_solar_beam_mvl/mxv - .byte W05 - .byte PAN , c_v+4 - .byte BEND , c_v+63 - .byte W06 - .byte PAN , c_v+11 - .byte BEND , c_v+52 - .byte W06 - .byte PAN , c_v+4 - .byte BEND , c_v+41 - .byte W04 - .byte c_v+33 - .byte W02 - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v+25 - .byte W03 - .byte PAN , c_v-4 - .byte W03 - .byte BEND , c_v+22 - .byte W03 - .byte PAN , c_v-10 - .byte W06 - .byte c_v-5 - .byte BEND , c_v+17 - .byte W06 - .byte PAN , c_v+0 - .byte BEND , c_v+9 - .byte W06 - .byte PAN , c_v+4 - .byte W02 - .byte BEND , c_v+4 - .byte W04 - .byte PAN , c_v+11 - .byte W06 - .byte c_v+4 - .byte BEND , c_v+0 - .byte W06 - .byte PAN , c_v+0 - .byte W06 - .byte c_v-4 - .byte W02 - .byte BEND , c_v-3 - .byte W04 - .byte PAN , c_v-10 - .byte W06 - .byte c_v-5 - .byte W04 - .byte BEND , c_v-5 - .byte W02 - .byte PAN , c_v+0 - .byte W06 - .byte c_v+4 - .byte W02 - .byte BEND , c_v-7 - .byte W04 - .byte PAN , c_v+11 - .byte W06 - .byte c_v+4 - .byte W01 - .byte BEND , c_v-10 - .byte W05 - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v-13 - .byte W03 - .byte PAN , c_v-4 - .byte W06 - .byte c_v-10 - .byte BEND , c_v-18 - .byte W03 - .byte VOL , 89*se_m_solar_beam_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte W02 - .byte VOL , 74*se_m_solar_beam_mvl/mxv - .byte BEND , c_v-25 - .byte W04 - .byte PAN , c_v+0 - .byte W02 - .byte VOL , 62*se_m_solar_beam_mvl/mxv - .byte W01 - .byte BEND , c_v-32 - .byte W03 - .byte PAN , c_v+4 - .byte W01 - .byte VOL , 45*se_m_solar_beam_mvl/mxv - .byte W01 - .byte BEND , c_v-40 - .byte W04 - .byte VOL , 28*se_m_solar_beam_mvl/mxv - .byte PAN , c_v+11 - .byte BEND , c_v-49 - .byte W03 - .byte c_v-64 - .byte W01 - .byte VOL , 10*se_m_solar_beam_mvl/mxv - .byte W02 - .byte PAN , c_v+4 - .byte W02 - .byte VOL , 5*se_m_solar_beam_mvl/mxv - .byte W04 - .byte EOT - .byte FINE - -@******************************************************@ - .align 2 - -se_m_solar_beam: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_solar_beam_pri @ Priority - .byte se_m_solar_beam_rev @ Reverb. - - .word se_m_solar_beam_grp - - .word se_m_solar_beam_1 - - .end diff --git a/sound/songs/se_m_spit_up.s b/sound/songs/se_m_spit_up.s deleted file mode 100644 index 5d96c7b86..000000000 --- a/sound/songs/se_m_spit_up.s +++ /dev/null @@ -1,88 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_spit_up_grp, voicegroup128 - .equ se_m_spit_up_pri, 4 - .equ se_m_spit_up_rev, reverb_set+50 - .equ se_m_spit_up_mvl, 127 - .equ se_m_spit_up_key, 0 - .equ se_m_spit_up_tbs, 1 - .equ se_m_spit_up_exg, 0 - .equ se_m_spit_up_cmp, 1 - - .section .rodata - .global se_m_spit_up - .align 2 - -@********************** Track 1 **********************@ - -se_m_spit_up_1: - .byte KEYSH , se_m_spit_up_key+0 - .byte TEMPO , 150*se_m_spit_up_tbs/2 - .byte VOICE , 65 - .byte BENDR , 12 - .byte VOL , 110*se_m_spit_up_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N03 , Gn3 , v112 - .byte W01 - .byte PAN , c_v-7 - .byte BEND , c_v-17 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v-36 - .byte W01 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N03 , Gn4 - .byte W02 - .byte PAN , c_v-7 - .byte BEND , c_v+15 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+28 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N03 , Gn4 , v064 - .byte W01 - .byte PAN , c_v-7 - .byte BEND , c_v+15 - .byte W02 - .byte PAN , c_v+8 - .byte BEND , c_v+28 - .byte W03 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_spit_up_2: - .byte KEYSH , se_m_spit_up_key+0 - .byte VOICE , 57 - .byte VOL , 110*se_m_spit_up_mvl/mxv - .byte N03 , En3 , v052 - .byte W03 - .byte W01 - .byte N03 - .byte W02 - .byte W03 - .byte En3 , v032 - .byte W03 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_spit_up: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_spit_up_pri @ Priority - .byte se_m_spit_up_rev @ Reverb. - - .word se_m_spit_up_grp - - .word se_m_spit_up_1 - .word se_m_spit_up_2 - - .end diff --git a/sound/songs/se_m_stat_decrease.s b/sound/songs/se_m_stat_decrease.s deleted file mode 100644 index 5cdf8ac36..000000000 --- a/sound/songs/se_m_stat_decrease.s +++ /dev/null @@ -1,271 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_stat_decrease_grp, voicegroup128 - .equ se_m_stat_decrease_pri, 4 - .equ se_m_stat_decrease_rev, reverb_set+50 - .equ se_m_stat_decrease_mvl, 127 - .equ se_m_stat_decrease_key, 0 - .equ se_m_stat_decrease_tbs, 1 - .equ se_m_stat_decrease_exg, 0 - .equ se_m_stat_decrease_cmp, 1 - - .section .rodata - .global se_m_stat_decrease - .align 2 - -@********************** Track 1 **********************@ - -se_m_stat_decrease_1: - .byte KEYSH , se_m_stat_decrease_key+0 - .byte TEMPO , 170*se_m_stat_decrease_tbs/2 - .byte VOICE , 67 - .byte VOL , 70*se_m_stat_decrease_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+42 - .byte N02 , Cs6 , v076 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte c_v+24 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+16 - .byte N02 , Cs5 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+8 - .byte N02 , Fs5 - .byte W01 - .byte BEND , c_v+5 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+0 - .byte N02 , Fs4 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+42 - .byte N02 , Cn6 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte c_v+24 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+16 - .byte N02 , Cn5 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+8 - .byte N02 , Fn5 - .byte W01 - .byte BEND , c_v+5 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+0 - .byte N02 , Fn4 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+42 - .byte N02 , Bn5 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte c_v+24 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+16 - .byte N02 , Bn4 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+8 - .byte N02 , En5 - .byte W01 - .byte BEND , c_v+5 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+0 - .byte N02 , En4 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+42 - .byte N02 , As5 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte c_v+24 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+16 - .byte N02 , As4 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+8 - .byte N02 , Ds5 - .byte W01 - .byte BEND , c_v+5 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+0 - .byte N02 , Ds4 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+42 - .byte N02 , An5 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte c_v+24 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+16 - .byte N02 , An4 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+8 - .byte N02 , Cs5 , v056 - .byte W01 - .byte BEND , c_v+5 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v-12 - .byte BEND , c_v+0 - .byte N02 , Cs4 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+42 - .byte N02 , An5 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte c_v+24 - .byte W01 - .byte PAN , c_v+12 - .byte BEND , c_v+16 - .byte N02 , An4 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+8 - .byte N02 , Cs5 , v032 - .byte W01 - .byte BEND , c_v+5 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v-16 - .byte BEND , c_v+0 - .byte N02 , Cs4 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+42 - .byte N02 , An5 - .byte W01 - .byte BEND , c_v+31 - .byte W01 - .byte c_v+24 - .byte W01 - .byte PAN , c_v+16 - .byte BEND , c_v+16 - .byte N02 , An4 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_stat_decrease_2: - .byte KEYSH , se_m_stat_decrease_key+0 - .byte VOICE , 55 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte VOL , 70*se_m_stat_decrease_mvl/mxv - .byte N02 , As3 , v052 - .byte W03 - .byte N02 - .byte W03 - .byte W01 - .byte An3 - .byte W03 - .byte N02 - .byte W02 - .byte W02 - .byte Gs3 - .byte W04 - .byte N02 - .byte W03 - .byte Gn3 - .byte W03 - .byte W01 - .byte N02 - .byte W03 - .byte Fs3 - .byte W02 - .byte W02 - .byte N02 - .byte W04 - .byte Fn3 - .byte W03 - .byte N02 - .byte W03 - .byte W01 - .byte En3 - .byte W03 - .byte N02 - .byte W02 - .byte W02 - .byte Ds3 - .byte W04 - .byte Ds3 , v032 - .byte W03 - .byte Dn3 - .byte W03 - .byte W01 - .byte N02 - .byte W03 - .byte Cs3 , v020 - .byte W02 - .byte W02 - .byte N02 - .byte W04 - .byte Cn3 , v012 - .byte W03 - .byte N02 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_stat_decrease: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_stat_decrease_pri @ Priority - .byte se_m_stat_decrease_rev @ Reverb. - - .word se_m_stat_decrease_grp - - .word se_m_stat_decrease_1 - .word se_m_stat_decrease_2 - - .end diff --git a/sound/songs/se_m_stat_increase.s b/sound/songs/se_m_stat_increase.s deleted file mode 100644 index e9eea563a..000000000 --- a/sound/songs/se_m_stat_increase.s +++ /dev/null @@ -1,283 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_stat_increase_grp, voicegroup128 - .equ se_m_stat_increase_pri, 4 - .equ se_m_stat_increase_rev, reverb_set+50 - .equ se_m_stat_increase_mvl, 127 - .equ se_m_stat_increase_key, 0 - .equ se_m_stat_increase_tbs, 1 - .equ se_m_stat_increase_exg, 0 - .equ se_m_stat_increase_cmp, 1 - - .section .rodata - .global se_m_stat_increase - .align 2 - -@********************** Track 1 **********************@ - -se_m_stat_increase_1: - .byte KEYSH , se_m_stat_increase_key+0 - .byte TEMPO , 170*se_m_stat_increase_tbs/2 - .byte VOICE , 67 - .byte VOL , 70*se_m_stat_increase_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , An5 , v076 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+5 - .byte N02 , An4 - .byte W01 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte N02 , Dn5 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte c_v+23 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+32 - .byte N02 , Dn4 - .byte W01 - .byte BEND , c_v+42 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , As5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+5 - .byte N02 , As4 - .byte W01 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte N02 , Ds5 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte c_v+23 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+32 - .byte N02 , Ds4 - .byte W01 - .byte BEND , c_v+42 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , Bn5 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+5 - .byte N02 , Bn4 - .byte W01 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte N02 , En5 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte c_v+23 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+32 - .byte N02 , En4 - .byte W01 - .byte BEND , c_v+42 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , Cn6 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+5 - .byte N02 , Cn5 - .byte W01 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte N02 , Fn5 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte c_v+23 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+32 - .byte N02 , Fn4 - .byte W01 - .byte BEND , c_v+42 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , Cs6 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+5 - .byte N02 , Cs5 - .byte W01 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte N02 , Fn5 , v056 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte c_v+23 - .byte W01 - .byte PAN , c_v-12 - .byte BEND , c_v+32 - .byte N02 , Fn4 - .byte W01 - .byte BEND , c_v+42 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , Cs6 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v+12 - .byte BEND , c_v+5 - .byte N02 , Cs5 - .byte W01 - .byte BEND , c_v+8 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte N02 , Fn5 , v032 - .byte W01 - .byte BEND , c_v+16 - .byte W01 - .byte c_v+23 - .byte W01 - .byte PAN , c_v-16 - .byte BEND , c_v+32 - .byte N02 , Fn4 - .byte W01 - .byte BEND , c_v+42 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , Cs6 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte PAN , c_v+16 - .byte BEND , c_v+5 - .byte N02 , Cs5 - .byte W01 - .byte BEND , c_v+8 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_stat_increase_2: - .byte KEYSH , se_m_stat_increase_key+0 - .byte VOICE , 55 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte VOL , 70*se_m_stat_increase_mvl/mxv - .byte N02 , Cn3 , v052 - .byte W03 - .byte N02 - .byte W03 - .byte W01 - .byte Cs3 - .byte W03 - .byte N02 - .byte W02 - .byte W02 - .byte Dn3 - .byte W04 - .byte N02 - .byte W03 - .byte Ds3 - .byte W03 - .byte W01 - .byte N02 - .byte W03 - .byte En3 - .byte W02 - .byte W02 - .byte N02 - .byte W04 - .byte Fn3 - .byte W03 - .byte N02 - .byte W03 - .byte W01 - .byte Fs3 - .byte W03 - .byte N02 - .byte W02 - .byte W02 - .byte Gn3 - .byte W04 - .byte Gn3 , v032 - .byte W03 - .byte Gs3 - .byte W03 - .byte W01 - .byte N02 - .byte W03 - .byte An3 , v020 - .byte W02 - .byte W02 - .byte N02 - .byte W04 - .byte As3 , v012 - .byte W03 - .byte N02 - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_stat_increase: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_stat_increase_pri @ Priority - .byte se_m_stat_increase_rev @ Reverb. - - .word se_m_stat_increase_grp - - .word se_m_stat_increase_1 - .word se_m_stat_increase_2 - - .end diff --git a/sound/songs/se_m_strength.s b/sound/songs/se_m_strength.s deleted file mode 100644 index 0fca48906..000000000 --- a/sound/songs/se_m_strength.s +++ /dev/null @@ -1,84 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_strength_grp, voicegroup128 - .equ se_m_strength_pri, 4 - .equ se_m_strength_rev, reverb_set+50 - .equ se_m_strength_mvl, 127 - .equ se_m_strength_key, 0 - .equ se_m_strength_tbs, 1 - .equ se_m_strength_exg, 0 - .equ se_m_strength_cmp, 1 - - .section .rodata - .global se_m_strength - .align 2 - -@********************** Track 1 **********************@ - -se_m_strength_1: - .byte KEYSH , se_m_strength_key+0 - .byte TEMPO , 150*se_m_strength_tbs/2 - .byte VOICE , 26 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_strength_mvl/mxv - .byte BEND , c_v+0 - .byte N03 , Gn2 , v127 - .byte W03 - .byte PAN , c_v+6 - .byte N03 , Fs2 , v120 - .byte W04 - .byte PAN , c_v-6 - .byte N03 , Fn2 , v116 - .byte W03 - .byte PAN , c_v+11 - .byte N03 , En2 , v112 - .byte W04 - .byte PAN , c_v-11 - .byte N03 , Ds2 , v108 - .byte W04 - .byte PAN , c_v+0 - .byte N03 , Dn2 , v100 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_strength_2: - .byte KEYSH , se_m_strength_key+0 - .byte VOICE , 5 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_strength_mvl/mxv - .byte N02 , Fn2 , v072 - .byte W02 - .byte N01 - .byte W01 - .byte N02 , Gn2 - .byte W03 - .byte N01 , Gs2 , v060 - .byte W01 - .byte N02 , Cn3 , v040 - .byte W03 - .byte Cn3 , v032 - .byte W04 - .byte N01 , Cn3 , v028 - .byte W04 - .byte Cn3 , v020 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_strength: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_strength_pri @ Priority - .byte se_m_strength_rev @ Reverb. - - .word se_m_strength_grp - - .word se_m_strength_1 - .word se_m_strength_2 - - .end diff --git a/sound/songs/se_m_string_shot.s b/sound/songs/se_m_string_shot.s deleted file mode 100644 index d750d26b9..000000000 --- a/sound/songs/se_m_string_shot.s +++ /dev/null @@ -1,80 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_string_shot_grp, voicegroup128 - .equ se_m_string_shot_pri, 4 - .equ se_m_string_shot_rev, reverb_set+50 - .equ se_m_string_shot_mvl, 127 - .equ se_m_string_shot_key, 0 - .equ se_m_string_shot_tbs, 1 - .equ se_m_string_shot_exg, 0 - .equ se_m_string_shot_cmp, 1 - - .section .rodata - .global se_m_string_shot - .align 2 - -@********************** Track 1 **********************@ - -se_m_string_shot_1: - .byte KEYSH , se_m_string_shot_key+0 - .byte TEMPO , 250*se_m_string_shot_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_string_shot_mvl/mxv - .byte BEND , c_v+0 - .byte N48 , Fn4 , v108 - .byte W03 - .byte PAN , c_v+5 - .byte BEND , c_v+6 - .byte W03 - .byte PAN , c_v+15 - .byte BEND , c_v+12 - .byte W03 - .byte PAN , c_v+6 - .byte BEND , c_v+21 - .byte W02 - .byte c_v+8 - .byte W01 - .byte PAN , c_v-1 - .byte W03 - .byte c_v-9 - .byte BEND , c_v-8 - .byte W03 - .byte PAN , c_v-15 - .byte BEND , c_v-14 - .byte W03 - .byte PAN , c_v-9 - .byte BEND , c_v-8 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte W06 - .byte VOL , 90*se_m_string_shot_mvl/mxv - .byte W03 - .byte 71*se_m_string_shot_mvl/mxv - .byte W03 - .byte 58*se_m_string_shot_mvl/mxv - .byte W03 - .byte 41*se_m_string_shot_mvl/mxv - .byte W03 - .byte 27*se_m_string_shot_mvl/mxv - .byte W03 - .byte 7*se_m_string_shot_mvl/mxv - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_string_shot: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_string_shot_pri @ Priority - .byte se_m_string_shot_rev @ Reverb. - - .word se_m_string_shot_grp - - .word se_m_string_shot_1 - - .end diff --git a/sound/songs/se_m_string_shot2.s b/sound/songs/se_m_string_shot2.s deleted file mode 100644 index 7bd0a7427..000000000 --- a/sound/songs/se_m_string_shot2.s +++ /dev/null @@ -1,134 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_string_shot2_grp, voicegroup128 - .equ se_m_string_shot2_pri, 4 - .equ se_m_string_shot2_rev, reverb_set+50 - .equ se_m_string_shot2_mvl, 127 - .equ se_m_string_shot2_key, 0 - .equ se_m_string_shot2_tbs, 1 - .equ se_m_string_shot2_exg, 0 - .equ se_m_string_shot2_cmp, 1 - - .section .rodata - .global se_m_string_shot2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_string_shot2_1: - .byte KEYSH , se_m_string_shot2_key+0 - .byte TEMPO , 250*se_m_string_shot2_tbs/2 - .byte VOICE , 10 - .byte BENDR , 12 - .byte VOL , 105*se_m_string_shot2_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v+0 - .byte N09 , En4 , v112 - .byte W03 - .byte BEND , c_v+6 - .byte W03 - .byte c_v+12 - .byte W05 - .byte c_v+8 - .byte W01 - .byte PAN , c_v+16 - .byte N09 , Gn4 - .byte W03 - .byte BEND , c_v-8 - .byte W03 - .byte c_v-14 - .byte W06 - .byte PAN , c_v+0 - .byte BEND , c_v-11 - .byte N09 , En4 - .byte W03 - .byte BEND , c_v-5 - .byte W03 - .byte c_v+1 - .byte W05 - .byte c_v-3 - .byte W01 - .byte PAN , c_v-16 - .byte N09 , Gn4 - .byte W03 - .byte BEND , c_v-19 - .byte W03 - .byte c_v-25 - .byte W06 - .byte PAN , c_v+0 - .byte BEND , c_v-19 - .byte N09 , En4 - .byte W03 - .byte BEND , c_v-13 - .byte W03 - .byte c_v-6 - .byte W05 - .byte c_v-10 - .byte W01 - .byte PAN , c_v+16 - .byte N09 , Gn4 , v096 - .byte W03 - .byte BEND , c_v-27 - .byte W03 - .byte c_v-32 - .byte W06 - .byte PAN , c_v+0 - .byte BEND , c_v-32 - .byte N09 , En4 , v084 - .byte W03 - .byte BEND , c_v-26 - .byte W03 - .byte c_v-19 - .byte W05 - .byte c_v-23 - .byte W01 - .byte PAN , c_v-16 - .byte N09 , Gn4 , v060 - .byte W03 - .byte BEND , c_v-40 - .byte W03 - .byte c_v-45 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_string_shot2_2: - .byte KEYSH , se_m_string_shot2_key+0 - .byte VOICE , 5 - .byte VOL , 105*se_m_string_shot2_mvl/mxv - .byte PAN , c_v+9 - .byte N09 , Cn3 , v052 - .byte W12 - .byte PAN , c_v-7 - .byte N09 , Gn2 - .byte W12 -se_m_string_shot2_2_000: - .byte PAN , c_v+9 - .byte N09 , Cn3 , v052 - .byte W12 - .byte PAN , c_v-6 - .byte N09 , Gn2 - .byte W12 - .byte PEND - .byte PATT - .word se_m_string_shot2_2_000 - .byte PATT - .word se_m_string_shot2_2_000 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_string_shot2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_string_shot2_pri @ Priority - .byte se_m_string_shot2_rev @ Reverb. - - .word se_m_string_shot2_grp - - .word se_m_string_shot2_1 - .word se_m_string_shot2_2 - - .end diff --git a/sound/songs/se_m_supersonic.s b/sound/songs/se_m_supersonic.s deleted file mode 100644 index f791c9b15..000000000 --- a/sound/songs/se_m_supersonic.s +++ /dev/null @@ -1,161 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_supersonic_grp, voicegroup128 - .equ se_m_supersonic_pri, 4 - .equ se_m_supersonic_rev, reverb_set+50 - .equ se_m_supersonic_mvl, 127 - .equ se_m_supersonic_key, 0 - .equ se_m_supersonic_tbs, 1 - .equ se_m_supersonic_exg, 0 - .equ se_m_supersonic_cmp, 1 - - .section .rodata - .global se_m_supersonic - .align 2 - -@********************** Track 1 **********************@ - -se_m_supersonic_1: - .byte KEYSH , se_m_supersonic_key+0 - .byte TEMPO , 150*se_m_supersonic_tbs/2 - .byte VOICE , 43 - .byte BENDR , 2 - .byte PAN , c_v+0 - .byte VOL , 61*se_m_supersonic_mvl/mxv - .byte BEND , c_v-4 - .byte N07 , Gs4 , v127 - .byte W01 - .byte PAN , c_v+6 - .byte VOL , 75*se_m_supersonic_mvl/mxv - .byte BEND , c_v-1 - .byte W01 - .byte PAN , c_v-7 - .byte VOL , 93*se_m_supersonic_mvl/mxv - .byte BEND , c_v+2 - .byte W01 - .byte PAN , c_v+9 - .byte VOL , 110*se_m_supersonic_mvl/mxv - .byte BEND , c_v+4 - .byte W01 - .byte PAN , c_v-12 - .byte BEND , c_v+7 - .byte W02 - .byte W02 - .byte VOL , 0*se_m_supersonic_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-4 - .byte N32 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v-1 - .byte W01 - .byte PAN , c_v-7 - .byte VOL , 36*se_m_supersonic_mvl/mxv - .byte BEND , c_v+2 - .byte W02 - .byte PAN , c_v+9 - .byte VOL , 67*se_m_supersonic_mvl/mxv - .byte BEND , c_v-1 - .byte W01 - .byte PAN , c_v-13 - .byte VOL , 84*se_m_supersonic_mvl/mxv - .byte BEND , c_v-4 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v-6 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 92*se_m_supersonic_mvl/mxv - .byte BEND , c_v-8 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-7 - .byte W02 - .byte PAN , c_v+6 - .byte VOL , 99*se_m_supersonic_mvl/mxv - .byte BEND , c_v-4 - .byte W01 - .byte PAN , c_v-7 - .byte BEND , c_v-1 - .byte W01 - .byte VOL , 105*se_m_supersonic_mvl/mxv - .byte PAN , c_v+9 - .byte BEND , c_v+2 - .byte W01 - .byte VOL , 110*se_m_supersonic_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-1 - .byte W01 - .byte PAN , c_v-1 - .byte BEND , c_v-4 - .byte W02 - .byte VOL , 46*se_m_supersonic_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-1 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+2 - .byte W01 - .byte VOL , 67*se_m_supersonic_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v-1 - .byte W01 - .byte PAN , c_v+9 - .byte BEND , c_v-4 - .byte W01 - .byte VOL , 84*se_m_supersonic_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-6 - .byte W02 - .byte VOL , 100*se_m_supersonic_mvl/mxv - .byte PAN , c_v+6 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 110*se_m_supersonic_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v-7 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v-4 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v-1 - .byte W01 - .byte VOL , 101*se_m_supersonic_mvl/mxv - .byte PAN , c_v-7 - .byte BEND , c_v+2 - .byte W02 - .byte VOL , 85*se_m_supersonic_mvl/mxv - .byte PAN , c_v+9 - .byte BEND , c_v-1 - .byte W01 - .byte VOL , 75*se_m_supersonic_mvl/mxv - .byte PAN , c_v-13 - .byte BEND , c_v-4 - .byte W01 - .byte VOL , 48*se_m_supersonic_mvl/mxv - .byte PAN , c_v-1 - .byte BEND , c_v-6 - .byte W01 - .byte VOL , 24*se_m_supersonic_mvl/mxv - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 6*se_m_supersonic_mvl/mxv - .byte BEND , c_v-7 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_supersonic: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_supersonic_pri @ Priority - .byte se_m_supersonic_rev @ Reverb. - - .word se_m_supersonic_grp - - .word se_m_supersonic_1 - - .end diff --git a/sound/songs/se_m_surf.s b/sound/songs/se_m_surf.s deleted file mode 100644 index d3e307782..000000000 --- a/sound/songs/se_m_surf.s +++ /dev/null @@ -1,109 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_surf_grp, voicegroup128 - .equ se_m_surf_pri, 4 - .equ se_m_surf_rev, reverb_set+50 - .equ se_m_surf_mvl, 127 - .equ se_m_surf_key, 0 - .equ se_m_surf_tbs, 1 - .equ se_m_surf_exg, 0 - .equ se_m_surf_cmp, 1 - - .section .rodata - .global se_m_surf - .align 2 - -@********************** Track 1 **********************@ - -se_m_surf_1: - .byte KEYSH , se_m_surf_key+0 - .byte TEMPO , 150*se_m_surf_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte VOL , 27*se_m_surf_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N96 , Cn3 , v112 - .byte W04 - .byte VOL , 45*se_m_surf_mvl/mxv - .byte W02 - .byte PAN , c_v-4 - .byte W02 - .byte BEND , c_v+4 - .byte W01 - .byte VOL , 60*se_m_surf_mvl/mxv - .byte W03 - .byte PAN , c_v-10 - .byte W02 - .byte BEND , c_v+9 - .byte W01 - .byte VOL , 88*se_m_surf_mvl/mxv - .byte W03 - .byte PAN , c_v-5 - .byte W02 - .byte BEND , c_v+14 - .byte W04 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 110*se_m_surf_mvl/mxv - .byte W02 - .byte BEND , c_v+19 - .byte W03 - .byte PAN , c_v+4 - .byte W02 - .byte BEND , c_v+24 - .byte W04 - .byte PAN , c_v+11 - .byte W06 - .byte c_v+4 - .byte W06 - .byte c_v+0 - .byte W06 - .byte c_v-4 - .byte W02 - .byte BEND , c_v+19 - .byte W04 - .byte PAN , c_v-10 - .byte W01 - .byte VOL , 98*se_m_surf_mvl/mxv - .byte W05 - .byte 81*se_m_surf_mvl/mxv - .byte PAN , c_v-5 - .byte BEND , c_v+12 - .byte W06 - .byte VOL , 68*se_m_surf_mvl/mxv - .byte PAN , c_v+0 - .byte W03 - .byte BEND , c_v+17 - .byte W01 - .byte VOL , 50*se_m_surf_mvl/mxv - .byte W02 - .byte PAN , c_v+4 - .byte W03 - .byte VOL , 31*se_m_surf_mvl/mxv - .byte W03 - .byte PAN , c_v+11 - .byte BEND , c_v+22 - .byte W02 - .byte VOL , 11*se_m_surf_mvl/mxv - .byte W04 - .byte 6*se_m_surf_mvl/mxv - .byte PAN , c_v+4 - .byte BEND , c_v+30 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_surf: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_surf_pri @ Priority - .byte se_m_surf_rev @ Reverb. - - .word se_m_surf_grp - - .word se_m_surf_1 - - .end diff --git a/sound/songs/se_m_swagger.s b/sound/songs/se_m_swagger.s deleted file mode 100644 index 9b4b5756b..000000000 --- a/sound/songs/se_m_swagger.s +++ /dev/null @@ -1,77 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_swagger_grp, voicegroup128 - .equ se_m_swagger_pri, 4 - .equ se_m_swagger_rev, reverb_set+50 - .equ se_m_swagger_mvl, 127 - .equ se_m_swagger_key, 0 - .equ se_m_swagger_tbs, 1 - .equ se_m_swagger_exg, 0 - .equ se_m_swagger_cmp, 1 - - .section .rodata - .global se_m_swagger - .align 2 - -@********************** Track 1 **********************@ - -se_m_swagger_1: - .byte KEYSH , se_m_swagger_key+0 - .byte TEMPO , 190*se_m_swagger_tbs/2 - .byte VOICE , 2 - .byte BENDR , 8 - .byte PAN , c_v+0 - .byte VOL , 28*se_m_swagger_mvl/mxv - .byte BEND , c_v+0 - .byte N15 , An1 , v127 - .byte W01 - .byte VOL , 60*se_m_swagger_mvl/mxv - .byte W01 - .byte 111*se_m_swagger_mvl/mxv - .byte W01 - .byte 120*se_m_swagger_mvl/mxv - .byte W01 - .byte BEND , c_v-3 - .byte W02 - .byte PAN , c_v+5 - .byte BEND , c_v-6 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 109*se_m_swagger_mvl/mxv - .byte PAN , c_v+9 - .byte BEND , c_v-10 - .byte W01 - .byte PAN , c_v-9 - .byte BEND , c_v-14 - .byte W01 - .byte VOL , 95*se_m_swagger_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-19 - .byte W02 - .byte VOL , 71*se_m_swagger_mvl/mxv - .byte BEND , c_v-29 - .byte W01 - .byte VOL , 41*se_m_swagger_mvl/mxv - .byte BEND , c_v-38 - .byte W01 - .byte VOL , 15*se_m_swagger_mvl/mxv - .byte BEND , c_v-52 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_swagger: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_swagger_pri @ Priority - .byte se_m_swagger_rev @ Reverb. - - .word se_m_swagger_grp - - .word se_m_swagger_1 - - .end diff --git a/sound/songs/se_m_swagger2.s b/sound/songs/se_m_swagger2.s deleted file mode 100644 index 0a0d76767..000000000 --- a/sound/songs/se_m_swagger2.s +++ /dev/null @@ -1,56 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_swagger2_grp, voicegroup128 - .equ se_m_swagger2_pri, 4 - .equ se_m_swagger2_rev, reverb_set+50 - .equ se_m_swagger2_mvl, 127 - .equ se_m_swagger2_key, 0 - .equ se_m_swagger2_tbs, 1 - .equ se_m_swagger2_exg, 0 - .equ se_m_swagger2_cmp, 1 - - .section .rodata - .global se_m_swagger2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_swagger2_1: - .byte KEYSH , se_m_swagger2_key+0 - .byte TEMPO , 150*se_m_swagger2_tbs/2 - .byte VOICE , 56 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 65*se_m_swagger2_mvl/mxv - .byte BEND , c_v+8 - .byte N01 , Cs6 , v112 - .byte W01 - .byte BEND , c_v+0 - .byte N01 , Dn6 , v100 - .byte W01 - .byte Dn6 , v060 - .byte W04 - .byte BEND , c_v-8 - .byte N01 , Ds6 , v112 - .byte W01 - .byte BEND , c_v+0 - .byte N01 , En6 , v100 - .byte W01 - .byte En6 , v060 - .byte W04 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_swagger2: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_swagger2_pri @ Priority - .byte se_m_swagger2_rev @ Reverb. - - .word se_m_swagger2_grp - - .word se_m_swagger2_1 - - .end diff --git a/sound/songs/se_m_sweet_scent.s b/sound/songs/se_m_sweet_scent.s deleted file mode 100644 index 0abf858d2..000000000 --- a/sound/songs/se_m_sweet_scent.s +++ /dev/null @@ -1,192 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_sweet_scent_grp, voicegroup128 - .equ se_m_sweet_scent_pri, 4 - .equ se_m_sweet_scent_rev, reverb_set+50 - .equ se_m_sweet_scent_mvl, 127 - .equ se_m_sweet_scent_key, 0 - .equ se_m_sweet_scent_tbs, 1 - .equ se_m_sweet_scent_exg, 0 - .equ se_m_sweet_scent_cmp, 1 - - .section .rodata - .global se_m_sweet_scent - .align 2 - -@********************** Track 1 **********************@ - -se_m_sweet_scent_1: - .byte KEYSH , se_m_sweet_scent_key+0 - .byte TEMPO , 150*se_m_sweet_scent_tbs/2 - .byte VOICE , 61 - .byte BENDR , 44 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_sweet_scent_mvl/mxv - .byte BEND , c_v+2 - .byte N36 , En3 , v096 - .byte W12 - .byte PAN , c_v-4 - .byte BEND , c_v+2 - .byte W12 - .byte PAN , c_v-10 - .byte BEND , c_v+4 - .byte W12 - .byte PAN , c_v-4 - .byte BEND , c_v+5 - .byte N36 , Fn3 - .byte W12 - .byte PAN , c_v+0 - .byte BEND , c_v+6 - .byte W12 - .byte PAN , c_v+6 - .byte BEND , c_v+7 - .byte W12 - .byte PAN , c_v+9 - .byte BEND , c_v+8 - .byte N36 , En3 , v088 - .byte W12 - .byte PAN , c_v+5 - .byte BEND , c_v+8 - .byte W12 - .byte PAN , c_v+0 - .byte BEND , c_v+9 - .byte W12 - .byte PAN , c_v-4 - .byte BEND , c_v+10 - .byte N60 , Fs3 , v056 - .byte W12 - .byte PAN , c_v-10 - .byte BEND , c_v+11 - .byte W12 - .byte PAN , c_v-4 - .byte BEND , c_v+12 - .byte W04 - .byte VOL , 103*se_m_sweet_scent_mvl/mxv - .byte W04 - .byte 97*se_m_sweet_scent_mvl/mxv - .byte W04 - .byte PAN , c_v+0 - .byte BEND , c_v+12 - .byte W01 - .byte VOL , 91*se_m_sweet_scent_mvl/mxv - .byte W05 - .byte 81*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte 72*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte PAN , c_v+6 - .byte BEND , c_v+13 - .byte W01 - .byte VOL , 62*se_m_sweet_scent_mvl/mxv - .byte W02 - .byte 51*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte 39*se_m_sweet_scent_mvl/mxv - .byte W02 - .byte 24*se_m_sweet_scent_mvl/mxv - .byte W02 - .byte 12*se_m_sweet_scent_mvl/mxv - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_sweet_scent_2: - .byte KEYSH , se_m_sweet_scent_key+0 - .byte VOICE , 22 - .byte BENDR , 44 - .byte PAN , c_v+1 - .byte VOL , 38*se_m_sweet_scent_mvl/mxv - .byte BEND , c_v+1 - .byte TIE , Gn3 , v100 - .byte W03 - .byte VOL , 50*se_m_sweet_scent_mvl/mxv - .byte W04 - .byte 62*se_m_sweet_scent_mvl/mxv - .byte W02 - .byte BEND , c_v-1 - .byte W01 - .byte VOL , 65*se_m_sweet_scent_mvl/mxv - .byte W04 - .byte 74*se_m_sweet_scent_mvl/mxv - .byte W04 - .byte 78*se_m_sweet_scent_mvl/mxv - .byte BEND , c_v-2 - .byte W03 - .byte VOL , 86*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte 95*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte 105*se_m_sweet_scent_mvl/mxv - .byte W01 - .byte BEND , c_v-4 - .byte W03 - .byte VOL , 110*se_m_sweet_scent_mvl/mxv - .byte W13 - .byte BEND , c_v-2 - .byte W04 - .byte W10 - .byte c_v-1 - .byte W10 - .byte c_v+0 - .byte W04 - .byte W03 - .byte c_v+1 - .byte W10 - .byte c_v+1 - .byte W11 - .byte W02 - .byte c_v+2 - .byte W14 - .byte c_v+3 - .byte W08 - .byte VOL , 105*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte 101*se_m_sweet_scent_mvl/mxv - .byte W05 - .byte 96*se_m_sweet_scent_mvl/mxv - .byte W04 - .byte BEND , c_v+2 - .byte W01 - .byte VOL , 91*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte 86*se_m_sweet_scent_mvl/mxv - .byte W05 - .byte 78*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte W02 - .byte 68*se_m_sweet_scent_mvl/mxv - .byte W01 - .byte BEND , c_v+1 - .byte W04 - .byte VOL , 58*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte 48*se_m_sweet_scent_mvl/mxv - .byte W04 - .byte 37*se_m_sweet_scent_mvl/mxv - .byte BEND , c_v+0 - .byte W04 - .byte VOL , 23*se_m_sweet_scent_mvl/mxv - .byte W01 - .byte BEND , c_v-1 - .byte W02 - .byte VOL , 12*se_m_sweet_scent_mvl/mxv - .byte W03 - .byte EOT - .byte FINE - -@******************************************************@ - .align 2 - -se_m_sweet_scent: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_sweet_scent_pri @ Priority - .byte se_m_sweet_scent_rev @ Reverb. - - .word se_m_sweet_scent_grp - - .word se_m_sweet_scent_1 - .word se_m_sweet_scent_2 - - .end diff --git a/sound/songs/se_m_swift.s b/sound/songs/se_m_swift.s deleted file mode 100644 index 10649a80e..000000000 --- a/sound/songs/se_m_swift.s +++ /dev/null @@ -1,111 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_swift_grp, voicegroup128 - .equ se_m_swift_pri, 4 - .equ se_m_swift_rev, reverb_set+50 - .equ se_m_swift_mvl, 127 - .equ se_m_swift_key, 0 - .equ se_m_swift_tbs, 1 - .equ se_m_swift_exg, 0 - .equ se_m_swift_cmp, 1 - - .section .rodata - .global se_m_swift - .align 2 - -@********************** Track 1 **********************@ - -se_m_swift_1: - .byte KEYSH , se_m_swift_key+0 - .byte TEMPO , 180*se_m_swift_tbs/2 - .byte VOICE , 16 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 100*se_m_swift_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , Ds6 , v100 - .byte W01 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 90*se_m_swift_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 77*se_m_swift_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v+0 - .byte VOL , 37*se_m_swift_mvl/mxv - .byte BEND , c_v-47 - .byte W02 - .byte VOL , 100*se_m_swift_mvl/mxv - .byte BEND , c_v+0 - .byte N06 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 90*se_m_swift_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 77*se_m_swift_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 37*se_m_swift_mvl/mxv - .byte BEND , c_v-47 - .byte W02 - .byte VOL , 100*se_m_swift_mvl/mxv - .byte BEND , c_v+0 - .byte N06 , Ds6 , v056 - .byte W01 - .byte PAN , c_v+5 - .byte BEND , c_v-11 - .byte W01 - .byte PAN , c_v-6 - .byte VOL , 90*se_m_swift_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte PAN , c_v+8 - .byte VOL , 77*se_m_swift_mvl/mxv - .byte BEND , c_v-37 - .byte W01 - .byte PAN , c_v-10 - .byte VOL , 37*se_m_swift_mvl/mxv - .byte BEND , c_v-47 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_swift_2: - .byte KEYSH , se_m_swift_key+0 - .byte VOICE , 53 - .byte VOL , 100*se_m_swift_mvl/mxv - .byte W02 - .byte N06 , Cn6 , v040 - .byte W04 - .byte W02 - .byte N04 , Cn6 , v032 - .byte W04 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_swift: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_swift_pri @ Priority - .byte se_m_swift_rev @ Reverb. - - .word se_m_swift_grp - - .word se_m_swift_1 - .word se_m_swift_2 - - .end diff --git a/sound/songs/se_m_teeter_dance.s b/sound/songs/se_m_teeter_dance.s deleted file mode 100644 index 8238afeb2..000000000 --- a/sound/songs/se_m_teeter_dance.s +++ /dev/null @@ -1,121 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_teeter_dance_grp, voicegroup128 - .equ se_m_teeter_dance_pri, 4 - .equ se_m_teeter_dance_rev, reverb_set+50 - .equ se_m_teeter_dance_mvl, 127 - .equ se_m_teeter_dance_key, 0 - .equ se_m_teeter_dance_tbs, 1 - .equ se_m_teeter_dance_exg, 0 - .equ se_m_teeter_dance_cmp, 1 - - .section .rodata - .global se_m_teeter_dance - .align 2 - -@********************** Track 1 **********************@ - -se_m_teeter_dance_1: - .byte KEYSH , se_m_teeter_dance_key+0 - .byte TEMPO , 170*se_m_teeter_dance_tbs/2 - .byte VOICE , 37 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_teeter_dance_mvl/mxv - .byte BEND , c_v-4 - .byte N03 , Gn4 , v100 - .byte W06 - .byte PAN , c_v+16 - .byte N03 , Gn4 , v056 - .byte W03 - .byte PAN , c_v+0 - .byte N03 , An5 , v100 - .byte W03 - .byte W03 - .byte PAN , c_v-15 - .byte N03 , An5 , v056 - .byte W03 - .byte PAN , c_v+0 - .byte N03 , Cn6 , v100 - .byte W06 - .byte PAN , c_v+16 - .byte N03 , Cn6 , v056 - .byte W03 - .byte PAN , c_v+0 - .byte N03 , Gn4 , v072 - .byte W03 - .byte W03 - .byte PAN , c_v-16 - .byte N03 , Gn4 , v028 - .byte W03 - .byte PAN , c_v+0 - .byte N03 , An5 , v072 - .byte W06 - .byte PAN , c_v+16 - .byte N03 , An5 , v028 - .byte W03 - .byte PAN , c_v+0 - .byte N03 , Cn6 , v072 - .byte W03 - .byte W03 - .byte PAN , c_v-16 - .byte N03 , Cn6 , v028 - .byte W03 - .byte W06 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_teeter_dance_2: - .byte KEYSH , se_m_teeter_dance_key+0 - .byte VOICE , 47 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte MOD , 20 - .byte VOL , 44*se_m_teeter_dance_mvl/mxv - .byte BEND , c_v-2 - .byte W03 - .byte N03 , Gn3 , v112 - .byte W03 - .byte W03 - .byte Gn3 , v068 - .byte W03 - .byte An4 , v112 - .byte W06 - .byte An4 , v068 - .byte W03 - .byte Cn5 , v112 - .byte W03 - .byte W03 - .byte Cn5 , v068 - .byte W03 - .byte Gn3 , v080 - .byte W06 - .byte Gn3 , v036 - .byte W03 - .byte An4 , v080 - .byte W03 - .byte W03 - .byte An4 , v036 - .byte W03 - .byte Cn5 , v080 - .byte W06 - .byte Cn5 , v036 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_teeter_dance: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_teeter_dance_pri @ Priority - .byte se_m_teeter_dance_rev @ Reverb. - - .word se_m_teeter_dance_grp - - .word se_m_teeter_dance_1 - .word se_m_teeter_dance_2 - - .end diff --git a/sound/songs/se_m_teleport.s b/sound/songs/se_m_teleport.s deleted file mode 100644 index 2c4ad40e8..000000000 --- a/sound/songs/se_m_teleport.s +++ /dev/null @@ -1,165 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_teleport_grp, voicegroup128 - .equ se_m_teleport_pri, 4 - .equ se_m_teleport_rev, reverb_set+50 - .equ se_m_teleport_mvl, 127 - .equ se_m_teleport_key, 0 - .equ se_m_teleport_tbs, 1 - .equ se_m_teleport_exg, 0 - .equ se_m_teleport_cmp, 1 - - .section .rodata - .global se_m_teleport - .align 2 - -@********************** Track 1 **********************@ - -se_m_teleport_1: - .byte KEYSH , se_m_teleport_key+0 - .byte TEMPO , 150*se_m_teleport_tbs/2 - .byte VOICE , 45 - .byte BENDR , 24 - .byte PAN , c_v+0 - .byte VOL , 32*se_m_teleport_mvl/mxv - .byte MOD , 30 - .byte BEND , c_v+0 - .byte N06 , Cn3 , v127 - .byte W01 - .byte BEND , c_v+4 - .byte W01 - .byte VOL , 49*se_m_teleport_mvl/mxv - .byte PAN , c_v+5 - .byte BEND , c_v+9 - .byte W01 - .byte c_v+16 - .byte W01 - .byte VOL , 61*se_m_teleport_mvl/mxv - .byte BEND , c_v+24 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+2 - .byte N06 , Dn3 , v116 - .byte W01 - .byte VOL , 71*se_m_teleport_mvl/mxv - .byte BEND , c_v+7 - .byte W01 - .byte PAN , c_v-4 - .byte BEND , c_v+12 - .byte W01 - .byte VOL , 81*se_m_teleport_mvl/mxv - .byte BEND , c_v+18 - .byte W01 - .byte c_v+27 - .byte W02 - .byte VOL , 95*se_m_teleport_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+4 - .byte N06 , En3 , v112 - .byte W01 - .byte BEND , c_v+9 - .byte W01 - .byte PAN , c_v+6 - .byte BEND , c_v+14 - .byte W01 - .byte c_v+20 - .byte W01 - .byte c_v+29 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+6 - .byte N06 , Fn3 - .byte W01 - .byte BEND , c_v+11 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v+15 - .byte W01 - .byte c_v+22 - .byte W01 - .byte c_v+31 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+9 - .byte N06 , Gn3 , v108 - .byte W01 - .byte BEND , c_v+14 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+18 - .byte W01 - .byte c_v+25 - .byte W01 - .byte c_v+34 - .byte W02 - .byte VOL , 82*se_m_teleport_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+14 - .byte N06 , An3 , v100 - .byte W01 - .byte BEND , c_v+18 - .byte W01 - .byte VOL , 71*se_m_teleport_mvl/mxv - .byte PAN , c_v-8 - .byte BEND , c_v+23 - .byte W01 - .byte c_v+30 - .byte W01 - .byte VOL , 61*se_m_teleport_mvl/mxv - .byte BEND , c_v+38 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+14 - .byte N06 , Bn3 , v060 - .byte W01 - .byte BEND , c_v+18 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+23 - .byte W01 - .byte c_v+30 - .byte W01 - .byte c_v+38 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+14 - .byte N06 , Cn4 , v040 - .byte W01 - .byte BEND , c_v+18 - .byte W01 - .byte PAN , c_v-8 - .byte BEND , c_v+23 - .byte W01 - .byte c_v+30 - .byte W01 - .byte c_v+38 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+14 - .byte N06 , Dn4 , v020 - .byte W01 - .byte BEND , c_v+18 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+23 - .byte W01 - .byte c_v+30 - .byte W01 - .byte c_v+38 - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_teleport: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_teleport_pri @ Priority - .byte se_m_teleport_rev @ Reverb. - - .word se_m_teleport_grp - - .word se_m_teleport_1 - - .end diff --git a/sound/songs/se_m_thunder_wave.s b/sound/songs/se_m_thunder_wave.s deleted file mode 100644 index c26535500..000000000 --- a/sound/songs/se_m_thunder_wave.s +++ /dev/null @@ -1,106 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_thunder_wave_grp, voicegroup128 - .equ se_m_thunder_wave_pri, 4 - .equ se_m_thunder_wave_rev, reverb_set+50 - .equ se_m_thunder_wave_mvl, 127 - .equ se_m_thunder_wave_key, 0 - .equ se_m_thunder_wave_tbs, 1 - .equ se_m_thunder_wave_exg, 0 - .equ se_m_thunder_wave_cmp, 1 - - .section .rodata - .global se_m_thunder_wave - .align 2 - -@********************** Track 1 **********************@ - -se_m_thunder_wave_1: - .byte KEYSH , se_m_thunder_wave_key+0 - .byte TEMPO , 150*se_m_thunder_wave_tbs/2 - .byte VOICE , 18 - .byte VOL , 110*se_m_thunder_wave_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+32 - .byte N06 , Gn3 , v127 - .byte W02 - .byte PAN , c_v-8 - .byte W01 - .byte BEND , c_v+0 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+32 - .byte N04 , Cn3 - .byte W02 - .byte PAN , c_v+9 - .byte W01 - .byte BEND , c_v-12 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N01 , Gn3 - .byte W02 - .byte Bn2 - .byte W02 - .byte N13 , Gn3 - .byte W02 - .byte VOL , 96*se_m_thunder_wave_mvl/mxv - .byte W01 - .byte 85*se_m_thunder_wave_mvl/mxv - .byte W01 - .byte BEND , c_v-23 - .byte W01 - .byte VOL , 66*se_m_thunder_wave_mvl/mxv - .byte W01 - .byte BEND , c_v-40 - .byte W01 - .byte VOL , 36*se_m_thunder_wave_mvl/mxv - .byte W01 - .byte BEND , c_v-54 - .byte W02 - .byte VOL , 12*se_m_thunder_wave_mvl/mxv - .byte W01 - .byte BEND , c_v-64 - .byte W21 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_thunder_wave_2: - .byte KEYSH , se_m_thunder_wave_key+0 - .byte VOICE , 5 - .byte VOL , 110*se_m_thunder_wave_mvl/mxv - .byte PAN , c_v-7 - .byte N02 , En3 , v052 - .byte W04 - .byte PAN , c_v+10 - .byte N02 , En3 , v044 - .byte W04 - .byte PAN , c_v-7 - .byte N02 , En3 , v036 - .byte W04 - .byte PAN , c_v+10 - .byte N02 , En3 , v028 - .byte W04 - .byte PAN , c_v-7 - .byte N02 , En3 , v020 - .byte W08 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_thunder_wave: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_thunder_wave_pri @ Priority - .byte se_m_thunder_wave_rev @ Reverb. - - .word se_m_thunder_wave_grp - - .word se_m_thunder_wave_1 - .word se_m_thunder_wave_2 - - .end diff --git a/sound/songs/se_m_thunderbolt.s b/sound/songs/se_m_thunderbolt.s deleted file mode 100644 index 3b3790313..000000000 --- a/sound/songs/se_m_thunderbolt.s +++ /dev/null @@ -1,117 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_thunderbolt_grp, voicegroup128 - .equ se_m_thunderbolt_pri, 4 - .equ se_m_thunderbolt_rev, reverb_set+50 - .equ se_m_thunderbolt_mvl, 127 - .equ se_m_thunderbolt_key, 0 - .equ se_m_thunderbolt_tbs, 1 - .equ se_m_thunderbolt_exg, 0 - .equ se_m_thunderbolt_cmp, 1 - - .section .rodata - .global se_m_thunderbolt - .align 2 - -@********************** Track 1 **********************@ - -se_m_thunderbolt_1: - .byte KEYSH , se_m_thunderbolt_key+0 - .byte TEMPO , 220*se_m_thunderbolt_tbs/2 - .byte VOICE , 18 - .byte VOL , 120*se_m_thunderbolt_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+32 - .byte N06 , Dn3 , v127 - .byte W02 - .byte PAN , c_v-8 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte PAN , c_v-16 - .byte W02 - .byte c_v+0 - .byte BEND , c_v+32 - .byte N06 , Dn2 , v104 - .byte W02 - .byte PAN , c_v+9 - .byte W01 - .byte BEND , c_v-12 - .byte W01 - .byte PAN , c_v+16 - .byte W02 - .byte c_v+0 - .byte BEND , c_v+0 - .byte N21 , Dn3 , v127 - .byte W03 - .byte PAN , c_v-8 - .byte W03 - .byte c_v-15 - .byte W01 - .byte BEND , c_v-13 - .byte W02 - .byte PAN , c_v-7 - .byte W01 - .byte BEND , c_v-23 - .byte W02 - .byte VOL , 100*se_m_thunderbolt_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v-40 - .byte W01 - .byte VOL , 86*se_m_thunderbolt_mvl/mxv - .byte W01 - .byte BEND , c_v-54 - .byte W01 - .byte PAN , c_v+10 - .byte VOL , 68*se_m_thunderbolt_mvl/mxv - .byte W02 - .byte 37*se_m_thunderbolt_mvl/mxv - .byte BEND , c_v-64 - .byte W01 - .byte PAN , c_v+16 - .byte W02 - .byte VOL , 17*se_m_thunderbolt_mvl/mxv - .byte W01 - .byte PAN , c_v+10 - .byte W15 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_thunderbolt_2: - .byte KEYSH , se_m_thunderbolt_key+0 - .byte VOICE , 5 - .byte VOL , 120*se_m_thunderbolt_mvl/mxv - .byte PAN , c_v-7 - .byte N02 , En3 , v048 - .byte W05 - .byte PAN , c_v+10 - .byte N02 , En3 , v040 - .byte W06 - .byte PAN , c_v-7 - .byte N02 , En3 , v032 - .byte W07 - .byte PAN , c_v+10 - .byte N02 , En3 , v024 - .byte W06 - .byte PAN , c_v-7 - .byte N02 , En3 , v016 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_thunderbolt: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_thunderbolt_pri @ Priority - .byte se_m_thunderbolt_rev @ Reverb. - - .word se_m_thunderbolt_grp - - .word se_m_thunderbolt_1 - .word se_m_thunderbolt_2 - - .end diff --git a/sound/songs/se_m_thunderbolt2.s b/sound/songs/se_m_thunderbolt2.s deleted file mode 100644 index 506820395..000000000 --- a/sound/songs/se_m_thunderbolt2.s +++ /dev/null @@ -1,85 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_thunderbolt2_grp, voicegroup128 - .equ se_m_thunderbolt2_pri, 4 - .equ se_m_thunderbolt2_rev, reverb_set+50 - .equ se_m_thunderbolt2_mvl, 127 - .equ se_m_thunderbolt2_key, 0 - .equ se_m_thunderbolt2_tbs, 1 - .equ se_m_thunderbolt2_exg, 0 - .equ se_m_thunderbolt2_cmp, 1 - - .section .rodata - .global se_m_thunderbolt2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_thunderbolt2_1: - .byte KEYSH , se_m_thunderbolt2_key+0 - .byte TEMPO , 220*se_m_thunderbolt2_tbs/2 - .byte VOICE , 18 - .byte VOL , 100*se_m_thunderbolt2_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N03 , Cn4 , v088 - .byte W06 - .byte PAN , c_v-9 - .byte N03 , Cn4 , v080 - .byte W06 - .byte PAN , c_v+9 - .byte N03 , Cn4 , v072 - .byte W06 - .byte PAN , c_v-16 - .byte N03 , Cn4 , v064 - .byte W06 - .byte PAN , c_v+16 - .byte N03 , Cn4 , v060 - .byte W06 - .byte PAN , c_v-16 - .byte N03 , Cn4 , v052 - .byte W18 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_thunderbolt2_2: - .byte KEYSH , se_m_thunderbolt2_key+0 - .byte VOICE , 5 - .byte VOL , 100*se_m_thunderbolt2_mvl/mxv - .byte PAN , c_v+9 - .byte N02 , Gn3 , v072 - .byte W06 - .byte PAN , c_v-7 - .byte N02 , Gn3 , v068 - .byte W06 - .byte PAN , c_v+9 - .byte N02 , Gn3 , v064 - .byte W06 - .byte PAN , c_v-7 - .byte N02 , Gn3 , v060 - .byte W06 - .byte PAN , c_v+9 - .byte N02 , Gn3 , v056 - .byte W06 - .byte PAN , c_v-7 - .byte N02 , Gn3 , v048 - .byte W18 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_thunderbolt2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_thunderbolt2_pri @ Priority - .byte se_m_thunderbolt2_rev @ Reverb. - - .word se_m_thunderbolt2_grp - - .word se_m_thunderbolt2_1 - .word se_m_thunderbolt2_2 - - .end diff --git a/sound/songs/se_m_toxic.s b/sound/songs/se_m_toxic.s deleted file mode 100644 index 0e3ebe220..000000000 --- a/sound/songs/se_m_toxic.s +++ /dev/null @@ -1,87 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_toxic_grp, voicegroup128 - .equ se_m_toxic_pri, 4 - .equ se_m_toxic_rev, reverb_set+50 - .equ se_m_toxic_mvl, 127 - .equ se_m_toxic_key, 0 - .equ se_m_toxic_tbs, 1 - .equ se_m_toxic_exg, 0 - .equ se_m_toxic_cmp, 1 - - .section .rodata - .global se_m_toxic - .align 2 - -@********************** Track 1 **********************@ - -se_m_toxic_1: - .byte KEYSH , se_m_toxic_key+0 - .byte TEMPO , 150*se_m_toxic_tbs/2 - .byte VOICE , 31 - .byte VOL , 110*se_m_toxic_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , Dn2 , v127 - .byte W01 - .byte BEND , c_v+32 - .byte W01 - .byte VOICE , 23 - .byte BEND , c_v+0 - .byte N02 , Gn1 , v112 - .byte W01 - .byte PAN , c_v+8 - .byte BEND , c_v+63 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N02 , Cn2 - .byte W02 - .byte PAN , c_v-7 - .byte BEND , c_v+16 - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte W01 - .byte N01 - .byte W01 - .byte PAN , c_v+8 - .byte N01 , Cn3 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v-16 - .byte N01 , Dn2 - .byte W02 - .byte VOICE , 23 - .byte PAN , c_v+0 - .byte N01 , Cn2 - .byte W01 - .byte VOICE , 31 - .byte PAN , c_v+16 - .byte N01 , Dn2 , v096 - .byte W01 - .byte VOICE , 23 - .byte PAN , c_v-8 - .byte BEND , c_v+16 - .byte N01 , Cn3 - .byte W02 - .byte PAN , c_v+8 - .byte N01 , Cn2 - .byte W08 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_toxic: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_toxic_pri @ Priority - .byte se_m_toxic_rev @ Reverb. - - .word se_m_toxic_grp - - .word se_m_toxic_1 - - .end diff --git a/sound/songs/se_m_tri_attack.s b/sound/songs/se_m_tri_attack.s deleted file mode 100644 index 448998e77..000000000 --- a/sound/songs/se_m_tri_attack.s +++ /dev/null @@ -1,99 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_tri_attack_grp, voicegroup128 - .equ se_m_tri_attack_pri, 4 - .equ se_m_tri_attack_rev, reverb_set+50 - .equ se_m_tri_attack_mvl, 127 - .equ se_m_tri_attack_key, 0 - .equ se_m_tri_attack_tbs, 1 - .equ se_m_tri_attack_exg, 0 - .equ se_m_tri_attack_cmp, 1 - - .section .rodata - .global se_m_tri_attack - .align 2 - -@********************** Track 1 **********************@ - -se_m_tri_attack_1: - .byte KEYSH , se_m_tri_attack_key+0 - .byte TEMPO , 220*se_m_tri_attack_tbs/2 - .byte VOICE , 58 - .byte BENDR , 24 - .byte PAN , c_v+0 - .byte VOL , 19*se_m_tri_attack_mvl/mxv - .byte BEND , c_v-32 - .byte N16 , Gn1 , v127 - .byte W01 - .byte VOL , 43*se_m_tri_attack_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 72*se_m_tri_attack_mvl/mxv - .byte BEND , c_v-8 - .byte W01 - .byte VOL , 92*se_m_tri_attack_mvl/mxv - .byte BEND , c_v+7 - .byte W01 - .byte VOL , 109*se_m_tri_attack_mvl/mxv - .byte BEND , c_v+19 - .byte W02 - .byte c_v+28 - .byte W01 - .byte c_v+40 - .byte W01 - .byte c_v+28 - .byte W01 - .byte VOL , 102*se_m_tri_attack_mvl/mxv - .byte BEND , c_v+19 - .byte W01 - .byte VOL , 88*se_m_tri_attack_mvl/mxv - .byte BEND , c_v+5 - .byte W02 - .byte VOL , 69*se_m_tri_attack_mvl/mxv - .byte BEND , c_v-9 - .byte W01 - .byte VOL , 37*se_m_tri_attack_mvl/mxv - .byte BEND , c_v-20 - .byte W01 - .byte VOL , 17*se_m_tri_attack_mvl/mxv - .byte BEND , c_v-34 - .byte W10 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_tri_attack_2: - .byte KEYSH , se_m_tri_attack_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_m_tri_attack_mvl/mxv - .byte N02 , Gs3 , v032 - .byte W02 - .byte Gn3 - .byte W02 - .byte Fn3 - .byte W03 - .byte En3 - .byte W02 - .byte Dn3 - .byte W03 - .byte Cn3 - .byte W02 - .byte Gs2 - .byte W10 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_tri_attack: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_tri_attack_pri @ Priority - .byte se_m_tri_attack_rev @ Reverb. - - .word se_m_tri_attack_grp - - .word se_m_tri_attack_1 - .word se_m_tri_attack_2 - - .end diff --git a/sound/songs/se_m_tri_attack2.s b/sound/songs/se_m_tri_attack2.s deleted file mode 100644 index 0afade13c..000000000 --- a/sound/songs/se_m_tri_attack2.s +++ /dev/null @@ -1,124 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_tri_attack2_grp, voicegroup128 - .equ se_m_tri_attack2_pri, 4 - .equ se_m_tri_attack2_rev, reverb_set+50 - .equ se_m_tri_attack2_mvl, 127 - .equ se_m_tri_attack2_key, 0 - .equ se_m_tri_attack2_tbs, 1 - .equ se_m_tri_attack2_exg, 0 - .equ se_m_tri_attack2_cmp, 1 - - .section .rodata - .global se_m_tri_attack2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_tri_attack2_1: - .byte KEYSH , se_m_tri_attack2_key+0 - .byte TEMPO , 220*se_m_tri_attack2_tbs/2 - .byte VOICE , 18 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 110*se_m_tri_attack2_mvl/mxv - .byte BEND , c_v+0 - .byte N09 , An3 , v127 - .byte W03 - .byte BEND , c_v+21 - .byte W03 - .byte c_v+0 - .byte W03 - .byte c_v+6 - .byte N15 , An3 , v120 - .byte W03 - .byte BEND , c_v+2 - .byte W01 - .byte PAN , c_v+10 - .byte W02 - .byte BEND , c_v-9 - .byte W03 - .byte PAN , c_v-9 - .byte BEND , c_v-29 - .byte W06 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N09 , Cn3 , v127 - .byte W06 - .byte BEND , c_v-8 - .byte W03 - .byte c_v-15 - .byte N60 , Cs3 , v124 - .byte W03 - .byte BEND , c_v-4 - .byte W03 - .byte PAN , c_v+10 - .byte W06 - .byte c_v+0 - .byte BEND , c_v-8 - .byte W03 - .byte W03 - .byte PAN , c_v-9 - .byte W03 - .byte BEND , c_v-13 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v-22 - .byte W06 - .byte VOL , 103*se_m_tri_attack2_mvl/mxv - .byte PAN , c_v+10 - .byte W03 - .byte BEND , c_v-32 - .byte W03 - .byte PAN , c_v+0 - .byte W03 - .byte VOL , 95*se_m_tri_attack2_mvl/mxv - .byte BEND , c_v-38 - .byte W03 - .byte PAN , c_v-9 - .byte W05 - .byte BEND , c_v-45 - .byte W01 - .byte VOL , 66*se_m_tri_attack2_mvl/mxv - .byte PAN , c_v+0 - .byte W05 - .byte c_v+10 - .byte W01 - .byte BEND , c_v-52 - .byte W03 - .byte VOL , 21*se_m_tri_attack2_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W04 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_tri_attack2_2: - .byte KEYSH , se_m_tri_attack2_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_m_tri_attack2_mvl/mxv - .byte N06 , Cn3 , v060 - .byte W09 - .byte N15 - .byte W15 - .byte W24 - .byte W24 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_tri_attack2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_tri_attack2_pri @ Priority - .byte se_m_tri_attack2_rev @ Reverb. - - .word se_m_tri_attack2_grp - - .word se_m_tri_attack2_1 - .word se_m_tri_attack2_2 - - .end diff --git a/sound/songs/se_m_twister.s b/sound/songs/se_m_twister.s deleted file mode 100644 index e95e9b322..000000000 --- a/sound/songs/se_m_twister.s +++ /dev/null @@ -1,210 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_twister_grp, voicegroup128 - .equ se_m_twister_pri, 4 - .equ se_m_twister_rev, reverb_set+50 - .equ se_m_twister_mvl, 127 - .equ se_m_twister_key, 0 - .equ se_m_twister_tbs, 1 - .equ se_m_twister_exg, 0 - .equ se_m_twister_cmp, 1 - - .section .rodata - .global se_m_twister - .align 2 - -@********************** Track 1 **********************@ - -se_m_twister_1: - .byte KEYSH , se_m_twister_key+0 - .byte TEMPO , 150*se_m_twister_tbs/2 - .byte VOICE , 22 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 67*se_m_twister_mvl/mxv - .byte BEND , c_v+0 - .byte TIE , Dn2 , v127 - .byte W03 - .byte VOL , 83*se_m_twister_mvl/mxv - .byte BEND , c_v+22 - .byte W03 - .byte VOL , 88*se_m_twister_mvl/mxv - .byte PAN , c_v-4 - .byte W03 - .byte VOL , 95*se_m_twister_mvl/mxv - .byte W02 - .byte BEND , c_v+8 - .byte W01 - .byte VOL , 105*se_m_twister_mvl/mxv - .byte PAN , c_v-8 - .byte W03 - .byte VOL , 115*se_m_twister_mvl/mxv - .byte W02 - .byte BEND , c_v+0 - .byte W01 - .byte PAN , c_v-12 - .byte W06 - .byte c_v-17 - .byte BEND , c_v+0 - .byte W03 - .byte c_v-7 - .byte W03 - .byte PAN , c_v-9 - .byte W06 - .byte c_v-3 - .byte W01 - .byte BEND , c_v-12 - .byte W02 - .byte PAN , c_v+6 - .byte W03 - .byte c_v+10 - .byte W06 - .byte c_v+16 - .byte W01 - .byte BEND , c_v-20 - .byte W05 - .byte PAN , c_v+13 - .byte W06 - .byte c_v+8 - .byte W03 - .byte c_v+0 - .byte W01 - .byte BEND , c_v-13 - .byte W02 - .byte PAN , c_v-8 - .byte W03 - .byte c_v-11 - .byte W03 - .byte c_v-17 - .byte W01 - .byte BEND , c_v-6 - .byte W05 - .byte PAN , c_v-9 - .byte W06 - .byte c_v-3 - .byte W03 - .byte c_v+6 - .byte W03 - .byte c_v+10 - .byte W01 - .byte BEND , c_v+6 - .byte W05 - .byte PAN , c_v+16 - .byte W06 - .byte c_v+13 - .byte W06 - .byte c_v+8 - .byte W03 - .byte c_v+0 - .byte BEND , c_v+11 - .byte W03 - .byte PAN , c_v-8 - .byte W03 - .byte c_v-11 - .byte VOL , 103*se_m_twister_mvl/mxv - .byte W03 - .byte PAN , c_v-17 - .byte W01 - .byte BEND , c_v+20 - .byte W05 - .byte PAN , c_v-9 - .byte W01 - .byte VOL , 97*se_m_twister_mvl/mxv - .byte W05 - .byte PAN , c_v-3 - .byte W01 - .byte BEND , c_v+12 - .byte W02 - .byte PAN , c_v+6 - .byte VOL , 88*se_m_twister_mvl/mxv - .byte W03 - .byte PAN , c_v+10 - .byte W02 - .byte BEND , c_v+7 - .byte W02 - .byte VOL , 79*se_m_twister_mvl/mxv - .byte W02 - .byte PAN , c_v+16 - .byte W04 - .byte VOL , 62*se_m_twister_mvl/mxv - .byte BEND , c_v+0 - .byte W02 - .byte PAN , c_v+13 - .byte W04 - .byte VOL , 45*se_m_twister_mvl/mxv - .byte W02 - .byte PAN , c_v+8 - .byte W01 - .byte BEND , c_v-7 - .byte W01 - .byte VOL , 33*se_m_twister_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte W03 - .byte c_v-8 - .byte W01 - .byte VOL , 18*se_m_twister_mvl/mxv - .byte W02 - .byte PAN , c_v-11 - .byte W03 - .byte EOT - .byte FINE - -@********************** Track 2 **********************@ - -se_m_twister_2: - .byte KEYSH , se_m_twister_key+0 - .byte VOICE , 25 - .byte VOL , 67*se_m_twister_mvl/mxv - .byte TIE , Gs4 , v012 - .byte W03 - .byte VOL , 83*se_m_twister_mvl/mxv - .byte W03 - .byte 88*se_m_twister_mvl/mxv - .byte W03 - .byte 95*se_m_twister_mvl/mxv - .byte W03 - .byte 105*se_m_twister_mvl/mxv - .byte W03 - .byte 115*se_m_twister_mvl/mxv - .byte W09 - .byte W24 - .byte W24 - .byte W24 - .byte W21 - .byte 103*se_m_twister_mvl/mxv - .byte W03 - .byte W07 - .byte 97*se_m_twister_mvl/mxv - .byte W08 - .byte 88*se_m_twister_mvl/mxv - .byte W07 - .byte 79*se_m_twister_mvl/mxv - .byte W02 - .byte W04 - .byte 62*se_m_twister_mvl/mxv - .byte W06 - .byte 45*se_m_twister_mvl/mxv - .byte W04 - .byte 33*se_m_twister_mvl/mxv - .byte W05 - .byte 18*se_m_twister_mvl/mxv - .byte W05 - .byte EOT - .byte FINE - -@******************************************************@ - .align 2 - -se_m_twister: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_twister_pri @ Priority - .byte se_m_twister_rev @ Reverb. - - .word se_m_twister_grp - - .word se_m_twister_1 - .word se_m_twister_2 - - .end diff --git a/sound/songs/se_m_uproar.s b/sound/songs/se_m_uproar.s deleted file mode 100644 index c60cccee4..000000000 --- a/sound/songs/se_m_uproar.s +++ /dev/null @@ -1,86 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_uproar_grp, voicegroup128 - .equ se_m_uproar_pri, 4 - .equ se_m_uproar_rev, reverb_set+50 - .equ se_m_uproar_mvl, 127 - .equ se_m_uproar_key, 0 - .equ se_m_uproar_tbs, 1 - .equ se_m_uproar_exg, 0 - .equ se_m_uproar_cmp, 1 - - .section .rodata - .global se_m_uproar - .align 2 - -@********************** Track 1 **********************@ - -se_m_uproar_1: - .byte KEYSH , se_m_uproar_key+0 - .byte TEMPO , 150*se_m_uproar_tbs/2 - .byte VOICE , 60 - .byte BENDR , 12 - .byte VOL , 25*se_m_uproar_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N24 , Gs2 , v127 - .byte W01 - .byte PAN , c_v+2 - .byte VOL , 51*se_m_uproar_mvl/mxv - .byte W01 - .byte PAN , c_v+5 - .byte VOL , 74*se_m_uproar_mvl/mxv - .byte W01 - .byte 89*se_m_uproar_mvl/mxv - .byte BEND , c_v+1 - .byte W01 - .byte PAN , c_v+2 - .byte VOL , 100*se_m_uproar_mvl/mxv - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte c_v-2 - .byte BEND , c_v+4 - .byte W01 - .byte PAN , c_v-4 - .byte W02 - .byte c_v-2 - .byte BEND , c_v+5 - .byte W02 - .byte PAN , c_v+0 - .byte W01 - .byte c_v+2 - .byte W01 - .byte c_v+5 - .byte W02 - .byte c_v+2 - .byte W02 - .byte c_v+0 - .byte W01 - .byte VOL , 85*se_m_uproar_mvl/mxv - .byte PAN , c_v-2 - .byte W01 - .byte c_v-4 - .byte VOL , 62*se_m_uproar_mvl/mxv - .byte W01 - .byte 33*se_m_uproar_mvl/mxv - .byte W01 - .byte PAN , c_v-2 - .byte VOL , 11*se_m_uproar_mvl/mxv - .byte W02 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_uproar: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_uproar_pri @ Priority - .byte se_m_uproar_rev @ Reverb. - - .word se_m_uproar_grp - - .word se_m_uproar_1 - - .end diff --git a/sound/songs/se_m_vital_throw.s b/sound/songs/se_m_vital_throw.s deleted file mode 100644 index c89d003b6..000000000 --- a/sound/songs/se_m_vital_throw.s +++ /dev/null @@ -1,75 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_vital_throw_grp, voicegroup128 - .equ se_m_vital_throw_pri, 4 - .equ se_m_vital_throw_rev, reverb_set+50 - .equ se_m_vital_throw_mvl, 127 - .equ se_m_vital_throw_key, 0 - .equ se_m_vital_throw_tbs, 1 - .equ se_m_vital_throw_exg, 0 - .equ se_m_vital_throw_cmp, 1 - - .section .rodata - .global se_m_vital_throw - .align 2 - -@********************** Track 1 **********************@ - -se_m_vital_throw_1: - .byte KEYSH , se_m_vital_throw_key+0 - .byte TEMPO , 220*se_m_vital_throw_tbs/2 - .byte VOICE , 22 - .byte VOL , 110*se_m_vital_throw_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+16 - .byte BEND , c_v+46 - .byte N09 , Cn3 , v127 - .byte W03 - .byte VOL , 104*se_m_vital_throw_mvl/mxv - .byte PAN , c_v+0 - .byte BEND , c_v+23 - .byte W03 - .byte VOL , 93*se_m_vital_throw_mvl/mxv - .byte PAN , c_v-16 - .byte BEND , c_v-15 - .byte W03 - .byte VOICE , 21 - .byte VOL , 110*se_m_vital_throw_mvl/mxv - .byte BEND , c_v+0 - .byte N03 , Gn4 - .byte W06 - .byte PAN , c_v+16 - .byte N03 , Cn5 - .byte W09 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_vital_throw_2: - .byte KEYSH , se_m_vital_throw_key+0 - .byte VOICE , 4 - .byte VOL , 110*se_m_vital_throw_mvl/mxv - .byte W09 - .byte PAN , c_v+8 - .byte N03 , Cn3 , v052 - .byte W06 - .byte PAN , c_v-7 - .byte N03 - .byte W09 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_vital_throw: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_vital_throw_pri @ Priority - .byte se_m_vital_throw_rev @ Reverb. - - .word se_m_vital_throw_grp - - .word se_m_vital_throw_1 - .word se_m_vital_throw_2 - - .end diff --git a/sound/songs/se_m_vital_throw2.s b/sound/songs/se_m_vital_throw2.s deleted file mode 100644 index 3bffdeb25..000000000 --- a/sound/songs/se_m_vital_throw2.s +++ /dev/null @@ -1,108 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_vital_throw2_grp, voicegroup128 - .equ se_m_vital_throw2_pri, 4 - .equ se_m_vital_throw2_rev, reverb_set+50 - .equ se_m_vital_throw2_mvl, 127 - .equ se_m_vital_throw2_key, 0 - .equ se_m_vital_throw2_tbs, 1 - .equ se_m_vital_throw2_exg, 0 - .equ se_m_vital_throw2_cmp, 1 - - .section .rodata - .global se_m_vital_throw2 - .align 2 - -@********************** Track 1 **********************@ - -se_m_vital_throw2_1: - .byte KEYSH , se_m_vital_throw2_key+0 - .byte TEMPO , 220*se_m_vital_throw2_tbs/2 - .byte VOICE , 6 - .byte VOL , 110*se_m_vital_throw2_mvl/mxv - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N06 , Cn3 , v127 - .byte W01 - .byte BEND , c_v-9 - .byte W01 - .byte c_v-21 - .byte W01 - .byte PAN , c_v-6 - .byte BEND , c_v-40 - .byte W01 - .byte c_v-64 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N06 , En3 - .byte W01 - .byte BEND , c_v-9 - .byte W01 - .byte c_v-21 - .byte W01 - .byte PAN , c_v+7 - .byte BEND , c_v-40 - .byte W01 - .byte c_v-64 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N09 , An2 - .byte W01 - .byte BEND , c_v-9 - .byte W01 - .byte c_v-19 - .byte W01 - .byte c_v-29 - .byte W01 - .byte VOL , 86*se_m_vital_throw2_mvl/mxv - .byte BEND , c_v-39 - .byte W02 - .byte VOL , 69*se_m_vital_throw2_mvl/mxv - .byte BEND , c_v-45 - .byte W01 - .byte VOL , 53*se_m_vital_throw2_mvl/mxv - .byte BEND , c_v-56 - .byte W01 - .byte VOL , 20*se_m_vital_throw2_mvl/mxv - .byte BEND , c_v-64 - .byte W04 - .byte c_v-64 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_vital_throw2_2: - .byte KEYSH , se_m_vital_throw2_key+0 - .byte VOICE , 5 - .byte XCMD , xIECV , 10 - .byte xIECL , 8 - .byte VOL , 110*se_m_vital_throw2_mvl/mxv - .byte PAN , c_v+9 - .byte N03 , Gs2 , v052 - .byte W06 - .byte PAN , c_v-7 - .byte N03 - .byte W06 - .byte PAN , c_v+0 - .byte N03 - .byte W12 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_vital_throw2: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_vital_throw2_pri @ Priority - .byte se_m_vital_throw2_rev @ Reverb. - - .word se_m_vital_throw2_grp - - .word se_m_vital_throw2_1 - .word se_m_vital_throw2_2 - - .end diff --git a/sound/songs/se_m_waterfall.s b/sound/songs/se_m_waterfall.s deleted file mode 100644 index a07e7e971..000000000 --- a/sound/songs/se_m_waterfall.s +++ /dev/null @@ -1,137 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_waterfall_grp, voicegroup128 - .equ se_m_waterfall_pri, 4 - .equ se_m_waterfall_rev, reverb_set+50 - .equ se_m_waterfall_mvl, 127 - .equ se_m_waterfall_key, 0 - .equ se_m_waterfall_tbs, 1 - .equ se_m_waterfall_exg, 0 - .equ se_m_waterfall_cmp, 1 - - .section .rodata - .global se_m_waterfall - .align 2 - -@********************** Track 1 **********************@ - -se_m_waterfall_1: - .byte KEYSH , se_m_waterfall_key+0 - .byte TEMPO , 150*se_m_waterfall_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 115*se_m_waterfall_mvl/mxv - .byte BEND , c_v-18 - .byte N60 , Gn2 , v127 - .byte W03 - .byte PAN , c_v+3 - .byte BEND , c_v-16 - .byte W04 - .byte PAN , c_v+6 - .byte BEND , c_v-14 - .byte W03 - .byte PAN , c_v+3 - .byte BEND , c_v-11 - .byte W02 - .byte W02 - .byte PAN , c_v+0 - .byte BEND , c_v-8 - .byte W04 - .byte PAN , c_v-3 - .byte BEND , c_v-5 - .byte W03 - .byte PAN , c_v-6 - .byte BEND , c_v-2 - .byte W03 - .byte W01 - .byte PAN , c_v-3 - .byte BEND , c_v+1 - .byte W03 - .byte PAN , c_v+0 - .byte BEND , c_v+4 - .byte W04 - .byte PAN , c_v+3 - .byte BEND , c_v+7 - .byte W02 - .byte VOL , 109*se_m_waterfall_mvl/mxv - .byte W02 - .byte PAN , c_v+6 - .byte BEND , c_v+10 - .byte W02 - .byte VOL , 103*se_m_waterfall_mvl/mxv - .byte W01 - .byte PAN , c_v+3 - .byte BEND , c_v+13 - .byte W03 - .byte VOL , 92*se_m_waterfall_mvl/mxv - .byte W01 - .byte PAN , c_v+0 - .byte BEND , c_v+16 - .byte W03 - .byte VOL , 79*se_m_waterfall_mvl/mxv - .byte PAN , c_v-3 - .byte BEND , c_v+18 - .byte W02 - .byte W02 - .byte VOL , 62*se_m_waterfall_mvl/mxv - .byte PAN , c_v-6 - .byte BEND , c_v+21 - .byte W04 - .byte VOL , 40*se_m_waterfall_mvl/mxv - .byte PAN , c_v-3 - .byte BEND , c_v+26 - .byte W02 - .byte VOL , 22*se_m_waterfall_mvl/mxv - .byte BEND , c_v+33 - .byte W01 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 8*se_m_waterfall_mvl/mxv - .byte BEND , c_v+43 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_waterfall_2: - .byte KEYSH , se_m_waterfall_key+0 - .byte VOICE , 25 - .byte VOL , 115*se_m_waterfall_mvl/mxv - .byte N06 , Cn3 , v040 - .byte W06 - .byte Gn2 - .byte W06 -se_m_waterfall_2_000: - .byte N06 , Cn3 , v040 - .byte W06 - .byte Gn2 - .byte W06 - .byte PEND - .byte PATT - .word se_m_waterfall_2_000 - .byte N06 , Cn3 , v032 - .byte W06 - .byte Gn2 - .byte W06 - .byte Cn3 , v012 - .byte W06 - .byte Gn2 - .byte W06 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_waterfall: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_waterfall_pri @ Priority - .byte se_m_waterfall_rev @ Reverb. - - .word se_m_waterfall_grp - - .word se_m_waterfall_1 - .word se_m_waterfall_2 - - .end diff --git a/sound/songs/se_m_whirlpool.s b/sound/songs/se_m_whirlpool.s deleted file mode 100644 index bac3fa5bc..000000000 --- a/sound/songs/se_m_whirlpool.s +++ /dev/null @@ -1,125 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_whirlpool_grp, voicegroup128 - .equ se_m_whirlpool_pri, 4 - .equ se_m_whirlpool_rev, reverb_set+50 - .equ se_m_whirlpool_mvl, 127 - .equ se_m_whirlpool_key, 0 - .equ se_m_whirlpool_tbs, 1 - .equ se_m_whirlpool_exg, 0 - .equ se_m_whirlpool_cmp, 1 - - .section .rodata - .global se_m_whirlpool - .align 2 - -@********************** Track 1 **********************@ - -se_m_whirlpool_1: - .byte KEYSH , se_m_whirlpool_key+0 - .byte TEMPO , 150*se_m_whirlpool_tbs/2 - .byte VOICE , 36 - .byte BENDR , 12 - .byte PAN , c_v+0 - .byte VOL , 115*se_m_whirlpool_mvl/mxv - .byte BEND , c_v-18 - .byte TIE , Dn2 , v127 - .byte W03 - .byte BEND , c_v-12 - .byte W03 - .byte PAN , c_v-5 - .byte W02 - .byte BEND , c_v-8 - .byte W04 - .byte PAN , c_v-10 - .byte W01 - .byte BEND , c_v-3 - .byte W03 - .byte c_v+2 - .byte W02 - .byte PAN , c_v-13 - .byte W04 - .byte BEND , c_v+5 - .byte W02 - .byte PAN , c_v-16 - .byte W04 - .byte BEND , c_v+14 - .byte W02 - .byte PAN , c_v-14 - .byte W06 - .byte c_v-9 - .byte BEND , c_v+18 - .byte W06 - .byte PAN , c_v-6 - .byte W01 - .byte BEND , c_v+24 - .byte W05 - .byte PAN , c_v+0 - .byte W06 - .byte c_v+3 - .byte W06 - .byte c_v+7 - .byte W06 - .byte c_v+11 - .byte BEND , c_v+17 - .byte W06 - .byte PAN , c_v+16 - .byte BEND , c_v+10 - .byte W06 - .byte PAN , c_v+11 - .byte W01 - .byte BEND , c_v+5 - .byte W05 - .byte PAN , c_v+6 - .byte W02 - .byte VOL , 103*se_m_whirlpool_mvl/mxv - .byte W01 - .byte BEND , c_v+0 - .byte W03 - .byte PAN , c_v+4 - .byte W01 - .byte VOL , 85*se_m_whirlpool_mvl/mxv - .byte W01 - .byte BEND , c_v-5 - .byte W04 - .byte PAN , c_v+0 - .byte W01 - .byte VOL , 71*se_m_whirlpool_mvl/mxv - .byte W02 - .byte BEND , c_v-8 - .byte W03 - .byte VOL , 52*se_m_whirlpool_mvl/mxv - .byte PAN , c_v-4 - .byte W03 - .byte BEND , c_v-12 - .byte W01 - .byte VOL , 32*se_m_whirlpool_mvl/mxv - .byte W02 - .byte PAN , c_v-10 - .byte W03 - .byte VOL , 11*se_m_whirlpool_mvl/mxv - .byte BEND , c_v-19 - .byte W03 - .byte PAN , c_v-15 - .byte W01 - .byte VOL , 6*se_m_whirlpool_mvl/mxv - .byte W01 - .byte BEND , c_v-28 - .byte W04 - .byte EOT - .byte FINE - -@******************************************************@ - .align 2 - -se_m_whirlpool: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_whirlpool_pri @ Priority - .byte se_m_whirlpool_rev @ Reverb. - - .word se_m_whirlpool_grp - - .word se_m_whirlpool_1 - - .end diff --git a/sound/songs/se_m_yawn.s b/sound/songs/se_m_yawn.s deleted file mode 100644 index c6af1f361..000000000 --- a/sound/songs/se_m_yawn.s +++ /dev/null @@ -1,127 +0,0 @@ - .include "MPlayDef.s" - - .equ se_m_yawn_grp, voicegroup128 - .equ se_m_yawn_pri, 4 - .equ se_m_yawn_rev, reverb_set+50 - .equ se_m_yawn_mvl, 127 - .equ se_m_yawn_key, 0 - .equ se_m_yawn_tbs, 1 - .equ se_m_yawn_exg, 0 - .equ se_m_yawn_cmp, 1 - - .section .rodata - .global se_m_yawn - .align 2 - -@********************** Track 1 **********************@ - -se_m_yawn_1: - .byte VOL , 110*se_m_yawn_mvl/mxv - .byte KEYSH , se_m_yawn_key+0 - .byte TEMPO , 150*se_m_yawn_tbs/2 - .byte VOICE , 61 - .byte BENDR , 44 - .byte PAN , c_v+0 - .byte BEND , c_v+0 - .byte N48 , Cn4 , v108 - .byte W02 - .byte BEND , c_v-1 - .byte W01 - .byte c_v+0 - .byte W03 - .byte c_v+0 - .byte W01 - .byte c_v+0 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v+0 - .byte W02 - .byte PAN , c_v-4 - .byte W01 - .byte BEND , c_v+0 - .byte W01 - .byte c_v+1 - .byte W02 - .byte c_v+1 - .byte W02 - .byte c_v+1 - .byte W02 - .byte c_v+1 - .byte W01 - .byte c_v+1 - .byte W03 - .byte PAN , c_v-10 - .byte BEND , c_v+1 - .byte W01 - .byte c_v+2 - .byte W02 - .byte c_v+2 - .byte W03 - .byte c_v+1 - .byte W02 - .byte c_v+2 - .byte W01 - .byte c_v+1 - .byte W03 - .byte PAN , c_v-4 - .byte BEND , c_v+1 - .byte W01 - .byte c_v+1 - .byte W02 - .byte c_v+1 - .byte W01 - .byte c_v+0 - .byte W02 - .byte c_v+0 - .byte W01 - .byte c_v-1 - .byte W01 - .byte c_v-1 - .byte W01 - .byte c_v-3 - .byte W01 - .byte c_v-3 - .byte W02 - .byte FINE - -@********************** Track 2 **********************@ - -se_m_yawn_2: - .byte KEYSH , se_m_yawn_key+0 - .byte VOICE , 66 - .byte BENDR , 44 - .byte PAN , c_v+1 - .byte VOL , 110*se_m_yawn_mvl/mxv - .byte N48 , Dn3 , v020 - .byte W24 - .byte W03 - .byte VOL , 103*se_m_yawn_mvl/mxv - .byte W04 - .byte 96*se_m_yawn_mvl/mxv - .byte W03 - .byte 83*se_m_yawn_mvl/mxv - .byte W04 - .byte 67*se_m_yawn_mvl/mxv - .byte W04 - .byte 49*se_m_yawn_mvl/mxv - .byte W03 - .byte 23*se_m_yawn_mvl/mxv - .byte W03 - .byte FINE - -@******************************************************@ - .align 2 - -se_m_yawn: - .byte 2 @ NumTrks - .byte 0 @ NumBlks - .byte se_m_yawn_pri @ Priority - .byte se_m_yawn_rev @ Reverb. - - .word se_m_yawn_grp - - .word se_m_yawn_1 - .word se_m_yawn_2 - - .end diff --git a/sound/songs/se_poke_jump_failure.s b/sound/songs/se_poke_jump_failure.s deleted file mode 100644 index 4dc7d109c..000000000 --- a/sound/songs/se_poke_jump_failure.s +++ /dev/null @@ -1,49 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_poke_jump_failure - .align 2 - .equ se_poke_jump_failure_grp, voicegroup127 - .equ se_poke_jump_failure_pri, 5 - .equ se_poke_jump_failure_rev, reverb_set+50 - -se_poke_jump_failure_1: @ 86BCBD8 - .byte KEYSH, 0x00 - .byte TEMPO, 0x78 - .byte VOICE, 0x5C - .byte BENDR, 0x0C - .byte VOL, 0x78 - .byte BEND, 0x40 - .byte N03 - .byte Cn2 - .byte v127 - .byte W03 - .byte Cn2 - .byte v020 - .byte W03 - .byte N18 - .byte Cn2 - .byte v127 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte W03 - .byte N09 - .byte Cn2 - .byte v020 - .byte W03 - .byte W03 - .byte W03 - .byte FINE - -@ *************************************** - .align 2 -se_poke_jump_failure: @ 86BCBFC - .byte 1 - .byte 0 - .byte se_poke_jump_failure_pri - .byte se_poke_jump_failure_rev - .word se_poke_jump_failure_grp - - .word se_poke_jump_failure_1 diff --git a/sound/songs/se_poke_jump_success.s b/sound/songs/se_poke_jump_success.s deleted file mode 100644 index edab733e6..000000000 --- a/sound/songs/se_poke_jump_success.s +++ /dev/null @@ -1,177 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_poke_jump_success - .align 2 - .equ se_poke_jump_success_grp, voicegroup128 - .equ se_poke_jump_success_pri, 5 - .equ se_poke_jump_success_rev, reverb_set+50 - -se_poke_jump_success_1: @ 86BCB1C - .byte KEYSH, 0x00 - .byte TEMPO, 0x4B - .byte VOICE, 0x2E - .byte VOL, 0x6E - .byte BENDR, 0x02 - .byte PAN, 0x40 - .byte BEND, 0x4F - .byte W01 - .byte N02 - .byte Dn6 - .byte v112 - .byte W02 - .byte Cs6 - .byte W03 - .byte PAN, 0x48 - .byte N02 - .byte An5 - .byte W02 - .byte Fs5 - .byte W01 - .byte W01 - .byte Dn5 - .byte W02 - .byte PAN, 0x39 - .byte W01 - .byte N02 - .byte Dn5 - .byte v104 - .byte W02 - .byte Cs5 - .byte v100 - .byte W03 - .byte PAN, 0x40 - .byte N02 - .byte An4 - .byte v096 - .byte W02 - .byte Fs4 - .byte v092 - .byte W01 - .byte W01 - .byte Dn4 - .byte v088 - .byte W02 - .byte PAN, 0x4F - .byte W01 - .byte N02 - .byte Dn6 - .byte W02 - .byte Cs6 - .byte v084 - .byte W03 - .byte An5 - .byte v080 - .byte W02 - .byte Fs5 - .byte v076 - .byte W01 - .byte W01 - .byte Dn5 - .byte v072 - .byte W02 - .byte PAN, 0x30 - .byte W01 - .byte N02 - .byte Dn6 - .byte v068 - .byte W02 - .byte Cs6 - .byte v064 - .byte W03 - .byte An5 - .byte v060 - .byte W02 - .byte Fs5 - .byte v056 - .byte W01 - .byte W01 - .byte Dn5 - .byte v052 - .byte W02 - .byte W03 - .byte FINE - -se_poke_jump_success_2: @ 86BCB7B - .byte KEYSH, 0x00 - .byte VOICE, 0x35 - .byte BENDR, 0x02 - .byte VOL, 0x2B - .byte BEND, 0x4F - .byte N02 - .byte An6 - .byte v112 - .byte W02 - .byte Fs6 - .byte W01 - .byte W01 - .byte Dn6 - .byte W02 - .byte W01 - .byte Cs6 - .byte W02 - .byte An5 - .byte W03 - .byte N02 - .byte W02 - .byte Fs5 - .byte v104 - .byte W01 - .byte W01 - .byte Dn5 - .byte v100 - .byte W02 - .byte W01 - .byte Cs5 - .byte v096 - .byte W02 - .byte An4 - .byte v092 - .byte W03 - .byte An6 - .byte v088 - .byte W02 - .byte Fs6 - .byte v084 - .byte W01 - .byte W01 - .byte Dn6 - .byte v080 - .byte W02 - .byte W01 - .byte Cs6 - .byte v076 - .byte W02 - .byte An5 - .byte v072 - .byte W03 - .byte An6 - .byte v068 - .byte W02 - .byte Fs6 - .byte v064 - .byte W01 - .byte W01 - .byte Dn6 - .byte v060 - .byte W02 - .byte W01 - .byte Cs6 - .byte v056 - .byte W02 - .byte An5 - .byte v052 - .byte W03 - .byte W03 - .byte FINE - -@ *************************************** - .align 2 -se_poke_jump_success: @ 86BCBC8 - .byte 2 - .byte 0 - .byte se_poke_jump_success_pri - .byte se_poke_jump_success_rev - .word se_poke_jump_success_grp - - .word se_poke_jump_success_1 - .word se_poke_jump_success_2 diff --git a/sound/songs/se_shop.s b/sound/songs/se_shop.s deleted file mode 100644 index eeade9bc4..000000000 --- a/sound/songs/se_shop.s +++ /dev/null @@ -1,35 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_shop - .align 2 - .equ se_shop_grp, voicegroup129 - .equ se_shop_pri, 5 - .equ se_shop_rev, reverb_set+50 - -se_shop_1: @ 86BC830 - .byte KEYSH, 0x00 - .byte TEMPO, 0x3E - .byte VOICE, 0x08 - .byte VOL, 0x50 - .byte PAN, 0x40 - .byte BEND, 0x40 - .byte N30 - .byte Cn3 - .byte v120 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte W06 - .byte FINE - -@ *************************************** - .align 2 -se_shop: @ 86BC848 - .byte 1 - .byte 0 - .byte se_shop_pri - .byte se_shop_rev - .word se_shop_grp - - .word se_shop_1 diff --git a/sound/songs/se_ss_anne_horn.s b/sound/songs/se_ss_anne_horn.s deleted file mode 100644 index c7ab94801..000000000 --- a/sound/songs/se_ss_anne_horn.s +++ /dev/null @@ -1,158 +0,0 @@ - .include "MPlayDef.s" - .section .rodata - .global se_ss_anne_horn - .align 2 - .equ se_ss_anne_horn_grp, voicegroup129 - .equ se_ss_anne_horn_pri, 5 - .equ se_ss_anne_horn_rev, reverb_set+50 - -se_ss_anne_horn_1: @ 86BC854 - .byte KEYSH, 0x00 - .byte TEMPO, 0x52 - .byte VOICE, 0x09 - .byte BENDR, 0x0C - .byte LFOS, 0x2C - .byte PAN, 0x40 - .byte VOL, 0x60 - .byte MOD, 0x01 - .byte N04 - .byte En2 - .byte v127 - .byte W04 - .byte N10 - .byte En2 - .byte v104 - .byte W20 - .byte W10 - .byte PAN, 0x00 - .byte TIE - .byte En2 - .byte v127 - .byte W08 - .byte PAN, 0x10 - .byte W06 - .byte W02 - .byte Gs0 - .byte W08 - .byte Cn2 - .byte W08 - .byte En3 - .byte W06 - .byte Gs4 - .byte W06 - .byte Bn5 - .byte W06 - .byte En7 - .byte W06 - .byte Gn8 - .byte W06 - .byte W18 - .byte Ds7 - .byte W06 - .byte Gs6 - .byte W06 - .byte As5 - .byte W06 - .byte Dn4 - .byte W06 - .byte Fn2 - .byte W06 - .byte Ds1 - .byte W06 - .byte Fs0 - .byte W06 - .byte DnM1 - .byte W06 - .byte CnM2 - .byte W06 - .byte W18 - .byte VOL, 0x50 - .byte PAN, 0x0C - .byte W06 - .byte VOL, 0x48 - .byte PAN, 0x17 - .byte W06 - .byte VOL, 0x40 - .byte PAN, 0x23 - .byte W06 - .byte VOL, 0x35 - .byte PAN, 0x2E - .byte W06 - .byte VOL, 0x30 - .byte PAN, 0x4F - .byte W06 - .byte VOL, 0x2A - .byte PAN, 0x59 - .byte W06 - .byte VOL, 0x20 - .byte PAN, 0x68 - .byte W02 - .byte VOL, 0x18 - .byte W04 - .byte EnM1 - .byte PAN, 0x6F - .byte W04 - .byte VOL, 0x08 - .byte W02 - .byte EOT - .byte VOL, 0x00 - .byte W06 - .byte FINE - -se_ss_anne_horn_2: @ 86BC8CB - .byte KEYSH, 0x00 - .byte VOICE, 0x51 - .byte PAN, 0x40 - .byte MOD, 0x0F - .byte VOL, 0x30 - .byte N04 - .byte En1 - .byte v127 - .byte W04 - .byte N10 - .byte En1 - .byte v104 - .byte W20 - .byte W10 - .byte TIE - .byte En1 - .byte v127 - .byte W14 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W24 - .byte W18 - .byte VOL, 0x2A - .byte W06 - .byte Cn1 - .byte W06 - .byte Gs0 - .byte W06 - .byte Dn0 - .byte W06 - .byte BnM1 - .byte W06 - .byte DsM1 - .byte W06 - .byte CsM1 - .byte W06 - .byte GsM2 - .byte W06 - .byte EOT - .byte VOL, 0x00 - .byte W06 - .byte FINE - -@ *************************************** - .align 2 -se_ss_anne_horn: @ 86BC900 - .byte 2 - .byte 0 - .byte se_ss_anne_horn_pri - .byte se_ss_anne_horn_rev - .word se_ss_anne_horn_grp - - .word se_ss_anne_horn_1 - .word se_ss_anne_horn_2 diff --git a/sound/songs/se_wall_hit.s b/sound/songs/se_wall_hit.s deleted file mode 100644 index feeeb03b1..000000000 --- a/sound/songs/se_wall_hit.s +++ /dev/null @@ -1,41 +0,0 @@ - .include "MPlayDef.s" - - .equ se_wall_hit_grp, voicegroup127 - .equ se_wall_hit_pri, 2 - .equ se_wall_hit_rev, reverb_set+50 - .equ se_wall_hit_mvl, 127 - .equ se_wall_hit_key, 0 - .equ se_wall_hit_tbs, 1 - .equ se_wall_hit_exg, 0 - .equ se_wall_hit_cmp, 1 - - .section .rodata - .global se_wall_hit - .align 2 - -@********************** Track 1 **********************@ - -se_wall_hit_1: - .byte KEYSH , se_wall_hit_key+0 - .byte TEMPO , 220*se_wall_hit_tbs/2 - .byte VOICE , 89 - .byte VOL , 80*se_wall_hit_mvl/mxv - .byte BEND , c_v+0 - .byte N18 , Gn1 , v127 - .byte W24 - .byte FINE - -@******************************************************@ - .align 2 - -se_wall_hit: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_wall_hit_pri @ Priority - .byte se_wall_hit_rev @ Reverb. - - .word se_wall_hit_grp - - .word se_wall_hit_1 - - .end diff --git a/sound/songs/se_win_open.s b/sound/songs/se_win_open.s deleted file mode 100644 index 74656e9c0..000000000 --- a/sound/songs/se_win_open.s +++ /dev/null @@ -1,42 +0,0 @@ - .include "MPlayDef.s" - - .equ se_win_open_grp, voicegroup127 - .equ se_win_open_pri, 5 - .equ se_win_open_rev, reverb_set+50 - .equ se_win_open_mvl, 127 - .equ se_win_open_key, 0 - .equ se_win_open_tbs, 1 - .equ se_win_open_exg, 0 - .equ se_win_open_cmp, 1 - - .section .rodata - .global se_win_open - .align 2 - -@********************** Track 1 **********************@ - -se_win_open_1: - .byte KEYSH , se_win_open_key+0 - .byte TEMPO , 220*se_win_open_tbs/2 - .byte VOICE , 127 - .byte VOL , 110*se_win_open_mvl/mxv - .byte N03 , Ds3 , v127 - .byte W03 - .byte N15 , Gn4 - .byte W21 - .byte FINE - -@******************************************************@ - .align 2 - -se_win_open: - .byte 1 @ NumTrks - .byte 0 @ NumBlks - .byte se_win_open_pri @ Priority - .byte se_win_open_rev @ Reverb. - - .word se_win_open_grp - - .word se_win_open_1 - - .end diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index 24c3b1b20..50cfd4979 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -22,7 +22,7 @@ $(OBJEVENTGFXDIR)/people/agatha.4bpp: %.4bpp: %.png $(OBJEVENTGFXDIR)/people/balding_man.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 -$(OBJEVENTGFXDIR)/people/battle_girl.4bpp: %.4bpp: %.png +$(OBJEVENTGFXDIR)/people/crush_girl.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 $(OBJEVENTGFXDIR)/people/beauty.4bpp: %.4bpp: %.png @@ -34,7 +34,7 @@ $(OBJEVENTGFXDIR)/people/biker.4bpp: %.4bpp: %.png $(OBJEVENTGFXDIR)/people/bill.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 -$(OBJEVENTGFXDIR)/people/blackbelt.4bpp: %.4bpp: %.png +$(OBJEVENTGFXDIR)/people/black_belt.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 $(OBJEVENTGFXDIR)/people/blaine.4bpp: %.4bpp: %.png @@ -241,7 +241,7 @@ $(OBJEVENTGFXDIR)/people/scientist.4bpp: %.4bpp: %.png $(OBJEVENTGFXDIR)/people/sitting_boy.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 -$(OBJEVENTGFXDIR)/people/super_nerd.4bpp: %.4bpp: %.png +$(OBJEVENTGFXDIR)/people/poke_maniac.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 $(OBJEVENTGFXDIR)/people/swimmer_f_land.4bpp: %.4bpp: %.png diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c index 0f0501393..35317ab86 100644 --- a/src/AgbRfu_LinkManager.c +++ b/src/AgbRfu_LinkManager.c @@ -1,6 +1,7 @@ #include "global.h" #include "librfu.h" #include "AgbRfu_LinkManager.h" +#include "sloopsvc.h" #define RN_ACCEPT 0x01 #define RN_NAME_TIMER_CLEAR 0x02 @@ -176,6 +177,9 @@ u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_ac } lman.parent_child = parent_child; lman.connect_period = connect_period; +#if REVISION >= 0xA + lman.connect_period_initial = 0; +#endif lman.nameAcceptTimer.count_max = name_accept_period; lman.acceptable_serialNo_list = acceptable_serialNo_list; return 0; @@ -222,6 +226,9 @@ u8 rfu_LMAN_CHILD_connectParent(u16 parentId, u16 connect_period) } lman.work = parentId; lman.connect_period = connect_period; +#if REVISION >= 0xA + lman.connect_period_initial = 0; +#endif if (lman.pcswitch_flag != 0) { lman.pcswitch_flag = PCSWITCH_CP; @@ -560,6 +567,9 @@ static void rfu_LMAN_settingPCSWITCH(u32 rand) lman.parent_child = MODE_PARENT; lman.state = LMAN_STATE_START_SEARCH_CHILD; lman.connect_period = lman.pcswitch_period_bak; +#if REVISION >= 0xA + lman.connect_period_initial = 0; +#endif if (lman.connect_period) { lman.pcswitch_flag = PCSWITCH_3RD_SC; @@ -573,8 +583,14 @@ static void rfu_LMAN_settingPCSWITCH(u32 rand) { lman.parent_child = MODE_PARENT; lman.state = LMAN_STATE_START_SEARCH_CHILD; +#if REVISION >= 0xA + lman.connect_period = rand % 285; + lman.pcswitch_period_bak = 285 - lman.connect_period; + lman.connect_period_initial = 0; +#else lman.connect_period = rand % 140; lman.pcswitch_period_bak = 140 - lman.connect_period; +#endif if (lman.connect_period) { lman.pcswitch_flag = PCSWITCH_1ST_SC; @@ -588,6 +604,9 @@ static void rfu_LMAN_settingPCSWITCH(u32 rand) { lman.parent_child = MODE_CHILD; lman.connect_period = PCSWITCH_SP_PERIOD; +#if REVISION >= 0xA + lman.connect_period_initial = 0; +#endif lman.pcswitch_flag = PCSWITCH_2ND_SP; lman.state = LMAN_STATE_START_SEARCH_PARENT; } @@ -632,11 +651,27 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult) } break; case ID_SC_POLL_REQ: +#if REVISION >= 0xA + if (lman.connect_period) + { + if (svc_49() != 0 && lman.connect_period_initial < 300) + { + if (lman.connect_period > 1) lman.connect_period--; + else lman.connect_period_initial++; + } + else if (--lman.connect_period == 0) + { + lman.state = LMAN_STATE_END_SEARCH_CHILD; + lman.next_state = LMAN_STATE_WAIT_RECV_CHILD_NAME; + } + } +#else if (lman.connect_period && --lman.connect_period == 0) { lman.state = LMAN_STATE_END_SEARCH_CHILD; lman.next_state = LMAN_STATE_WAIT_RECV_CHILD_NAME; } +#endif break; case ID_SC_END_REQ: if (reqResult == 0) @@ -679,11 +714,27 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult) lman.fastSearchParent_flag = FSP_ON; } } +#if REVISION >= 0xA + if (lman.connect_period) + { + if (svc_4a() != 0 && lman.connect_period_initial < 300) + { + if (lman.connect_period > 1) lman.connect_period--; + else lman.connect_period_initial++; + } + else if (--lman.connect_period == 0) + { + lman.state = LMAN_STATE_END_SEARCH_PARENT; + lman.next_state = LMAN_STATE_READY; + } + } +#else if (lman.connect_period && --lman.connect_period == 0) { lman.state = LMAN_STATE_END_SEARCH_PARENT; lman.next_state = LMAN_STATE_READY; } +#endif break; case ID_SP_END_REQ: if (reqResult == 0) @@ -1302,15 +1353,30 @@ static void rfu_LMAN_setLMANCallback(void (*func)(u8, u8)) u8 rfu_LMAN_setLinkRecovery(u8 enable_flag, u16 recovery_period) { +#if REVISION >= 0xA + u16 imeNew = 0; +#endif u16 imeBak; +#if REVISION >= 0xA + + imeBak = REG_IME; + REG_IME = imeNew; + + lman.linkRecovery_enable = FALSE; + lman.linkRecoveryTimer.count_max = recovery_period; +#else + if (lman.linkRecovery_enable && enable_flag == 0 && lman.linkRecoveryTimer.active) { return LMAN_ERROR_NOW_LINK_RECOVERY; } + imeBak = REG_IME; REG_IME = 0; + lman.linkRecovery_enable = enable_flag; lman.linkRecoveryTimer.count_max = recovery_period; +#endif REG_IME = imeBak; return 0; } @@ -1367,7 +1433,11 @@ void rfu_LMAN_requestChangeAgbClockMaster(void) } } +#if REVISION >= 0xA +void rfu_LMAN_forceChangeSP(bool8 child) +#else void rfu_LMAN_forceChangeSP(void) +#endif { if (lman.pcswitch_flag) { @@ -1387,10 +1457,22 @@ void rfu_LMAN_forceChangeSP(void) break; case LMAN_STATE_START_SEARCH_PARENT: case LMAN_STATE_POLL_SEARCH_PARENT: +#if REVISION >= 0xA + if (!child) break; +#endif lman.connect_period = PCSWITCH_SP_PERIOD; +#if REVISION >= 0xA + lman.connect_period_initial = 0; +#endif break; case LMAN_STATE_END_SEARCH_PARENT: +#if REVISION >= 0xA + if (!child) break; +#endif lman.connect_period = PCSWITCH_SP_PERIOD; +#if REVISION >= 0xA + lman.connect_period_initial = 0; +#endif lman.state = LMAN_STATE_POLL_SEARCH_PARENT; break; } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 1422fa13b..d8e1fe71e 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -819,10 +819,16 @@ static void SetLinkBattleEndCallbacks(void) void SetBattleEndCallbacks(void) { +#if REVISION >= 0xA +#else if (!gPaletteFade.active) +#endif { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { +#if REVISION >= 0xA + if (!IsLinkTaskFinished() || gPaletteFade.active) return; +#endif if (gWirelessCommType == 0) SetCloseLinkCallback(); else diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 330880e70..a79a09254 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -763,9 +763,9 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite) { position = GetBattlerPosition(battlerId); if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[position]); + LZDecompressVram(gSubstituteDollFrontGfx, gMonSpritesGfxPtr->sprites[position]); else - LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]); + LZDecompressVram(gSubstituteDollBackGfx, gMonSpritesGfxPtr->sprites[position]); for (i = 1; i < 4; ++i) { u8 (*ptr)[4][0x800] = gMonSpritesGfxPtr->sprites[position]; diff --git a/src/battle_interface.c b/src/battle_interface.c index 794c38ef4..36fc9a584 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1082,7 +1082,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, bool8 isOpponent; s8 nValidMons; s16 x, y, x2, speed; - s32 i; + s32 i, s; u8 summaryBarSpriteId; u8 ballIconSpritesIds[PARTY_SIZE]; u8 taskId; @@ -1204,39 +1204,35 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, } else { + s = 5; for (i = 0; i < PARTY_SIZE; i++) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { if (partyInfo[i].hp == HP_EMPTY_SLOT) { - gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[5 - i]].sIsEmptyBall = TRUE; + gSprites[ballIconSpritesIds[s]].oam.tileNum += 1; + gSprites[ballIconSpritesIds[s]].sIsEmptyBall = TRUE; } else if (partyInfo[i].hp == 0) - gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 3; + gSprites[ballIconSpritesIds[s]].oam.tileNum += 3; else if (partyInfo[i].status != STATUS1_NONE) - gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 2; + gSprites[ballIconSpritesIds[s]].oam.tileNum += 2; + s--; } else { - ballIconSpritesIds[5 - i] += 0; if (i >= nValidMons) { - gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[5 - i]].sIsEmptyBall = TRUE; + gSprites[ballIconSpritesIds[s]].oam.tileNum += 1; + gSprites[ballIconSpritesIds[s]].sIsEmptyBall = TRUE; } else if (partyInfo[i].hp == 0) - gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 3; + gSprites[ballIconSpritesIds[s]].oam.tileNum += 3; else if (partyInfo[i].status != STATUS1_NONE) - { - do - { - gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 2; - } while (0); - } + gSprites[ballIconSpritesIds[s]].oam.tileNum += 2; + s--; } - ballIconSpritesIds[5 - ++i] += 0; i--; } } diff --git a/src/battle_main.c b/src/battle_main.c index 4c3e927a0..64c9e59b7 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1160,7 +1160,11 @@ static void CB2_PreInitMultiBattle(void) } break; case 2: +#if REVISION >= 0xA + if (IsLinkTaskFinished() && !gPaletteFade.active) +#else if (!gPaletteFade.active) +#endif { gBattleCommunication[MULTIUSE_STATE]++; if (gWirelessCommType) @@ -3923,8 +3927,8 @@ static void ReturnFromBattleToOverworld(void) if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) { UpdateRoamerHPStatus(&gEnemyParty[0]); -#ifdef BUGFIX - if ((gBattleOutcome == B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT) +#if defined(BUGFIX) || REVISION >= 0xA + if ((gBattleOutcome == B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT || gBattleOutcome == B_OUTCOME_DREW) #else if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT) // Bug: When Roar is used by roamer, gBattleOutcome is B_OUTCOME_PLAYER_TELEPORTED (5). #endif // & with B_OUTCOME_WON (1) will return TRUE and deactivates the roamer. diff --git a/src/battle_message.c b/src/battle_message.c index 07c136029..a6392be9a 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1778,33 +1778,27 @@ void BufferStringBattle(u16 stringId) u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src) { - BattleStringExpandPlaceholders(src, gDisplayedStringBattle); + return BattleStringExpandPlaceholders(src, gDisplayedStringBattle); } static const u8 *TryGetStatusString(u8 *src) { u32 i; u8 status[] = _("$$$$$$$"); - u32 chars1, chars2; + u32 chars1, chars2, *cmp; u8 *statusPtr; statusPtr = status; - for (i = 0; i < 8; i++) - { - if (*src == EOS) - break; - *statusPtr = *src; - src++; - statusPtr++; - } + for (i = 0; i < 8 && *src != EOS; i++) + *statusPtr++ = *src++; - chars1 = *(u32 *)(&status[0]); - chars2 = *(u32 *)(&status[4]); + chars1 = *(u32 *)status; + chars2 = *((u32 *)status + 1); for (i = 0; i < NELEMS(gStatusConditionStringsTable); i++) { - if (chars1 == *(u32 *)(&gStatusConditionStringsTable[i][0][0]) - && chars2 == *(u32 *)(&gStatusConditionStringsTable[i][0][4])) + cmp = (u32 *)gStatusConditionStringsTable[i][0]; + if (chars1 == cmp[0] && chars2 == cmp[1]) return gStatusConditionStringsTable[i][1]; } return NULL; diff --git a/src/cable_club.c b/src/cable_club.c index 23c9b940a..d2f61cdcf 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -718,6 +718,9 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) tState = 5; break; case 5: +#if REVISION >= 0xA + if (!IsLinkTaskFinished()) break; +#endif SetLinkStandbyCallback(); tState = 6; break; @@ -920,6 +923,9 @@ static void Task_StartWirelessTrade(u8 taskId) tState++; break; case 2: +#if REVISION >= 0xA + if (!IsLinkTaskFinished()) break; +#endif gSelectedTradeMonPositions[TRADE_PLAYER] = 0; gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); @@ -996,7 +1002,11 @@ bool32 GetSeeingLinkPlayerCardMsg(u8 linkPlayerIndex) void Task_WaitForLinkPlayerConnection(u8 taskId) { struct Task *task = &gTasks[taskId]; +#if REVISION >= 0xA + if (++task->tTimer > 480) +#else if (++task->tTimer > 300) +#endif { CloseLink(); SetMainCallback2(CB2_LinkError); diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 85433d0f0..4e229cb14 100644 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -62,7 +62,7 @@ const u16 gObjectEventPic_Boy[] = INCBIN_U16("graphics/object_events/pics/people const u16 gObjectEventPic_Woman1[] = INCBIN_U16("graphics/object_events/pics/people/woman_1.4bpp"); const u16 gObjectEventPic_Woman3[] = INCBIN_U16("graphics/object_events/pics/people/woman_3.4bpp"); const u16 gObjectEventPic_BugCatcher[] = INCBIN_U16("graphics/object_events/pics/people/bug_catcher.4bpp"); -const u16 gObjectEventPic_BattleGirl[] = INCBIN_U16("graphics/object_events/pics/people/battle_girl.4bpp"); +const u16 gObjectEventPic_CrushGirl[] = INCBIN_U16("graphics/object_events/pics/people/crush_girl.4bpp"); const u16 gObjectEventPic_RichBoy[] = INCBIN_U16("graphics/object_events/pics/people/rich_boy.4bpp"); // Unused const u16 gObjectEventPic_FatMan[] = INCBIN_U16("graphics/object_events/pics/people/fat_man.4bpp"); const u16 gObjectEventPic_BaldingMan[] = INCBIN_U16("graphics/object_events/pics/people/balding_man.4bpp"); @@ -80,14 +80,14 @@ const u16 gObjectEventPic_Picnicker[] = INCBIN_U16("graphics/object_events/pics/ const u16 gObjectEventPic_CooltrainerM[] = INCBIN_U16("graphics/object_events/pics/people/cooltrainer_m.4bpp"); const u16 gObjectEventPic_CooltrainerF[] = INCBIN_U16("graphics/object_events/pics/people/cooltrainer_f.4bpp"); const u16 gObjectEventPic_Psyduck[] = INCBIN_U16("graphics/object_events/pics/pokemon/psyduck.4bpp"); -const u16 gObjectEventPic_SuperNerd[] = INCBIN_U16("graphics/object_events/pics/people/super_nerd.4bpp"); +const u16 gObjectEventPic_PokeManiac[] = INCBIN_U16("graphics/object_events/pics/people/poke_maniac.4bpp"); const u16 gObjectEventPic_Channeler[] = INCBIN_U16("graphics/object_events/pics/people/channeler.4bpp"); const u16 gObjectEventPic_RocketF[] = INCBIN_U16("graphics/object_events/pics/people/rocket_f.4bpp"); const u16 gObjectEventPic_SwimmerMWater[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_m_water.4bpp"); const u16 gObjectEventPic_SwimmerFWater[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_f_water.4bpp"); const u16 gObjectEventPic_SwimmerMLand[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_m_land.4bpp"); const u16 gObjectEventPic_SwimmerFLand[] = INCBIN_U16("graphics/object_events/pics/people/swimmer_f_land.4bpp"); -const u16 gObjectEventPic_Blackbelt[] = INCBIN_U16("graphics/object_events/pics/people/blackbelt.4bpp"); +const u16 gObjectEventPic_BlackBelt[] = INCBIN_U16("graphics/object_events/pics/people/black_belt.4bpp"); const u16 gObjectEventPic_Scientist[] = INCBIN_U16("graphics/object_events/pics/people/scientist.4bpp"); const u16 gObjectEventPic_Gentleman[] = INCBIN_U16("graphics/object_events/pics/people/gentleman.4bpp"); const u16 gObjectEventPic_Sailor[] = INCBIN_U16("graphics/object_events/pics/people/sailor.4bpp"); diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h index b4a6541f6..78ee95a47 100644 --- a/src/data/object_events/object_event_graphics_info.h +++ b/src/data/object_events/object_event_graphics_info.h @@ -283,7 +283,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy = { .affineAnims = gDummySpriteAffineAnimTable, }; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = { +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CrushGirl = { .tileTag = TAG_NONE, .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, @@ -298,7 +298,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = { .oam = &gObjectEventBaseOam_16x32, .subspriteTables = gObjectEventSpriteOamTables_16x32, .anims = sAnimTable_Standard, - .images = sPicTable_BattleGirl, + .images = sPicTable_CrushGirl, .affineAnims = gDummySpriteAffineAnimTable, }; @@ -587,7 +587,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerF = { .affineAnims = gDummySpriteAffineAnimTable, }; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = { +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokeManiac = { .tileTag = TAG_NONE, .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, @@ -602,7 +602,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = { .oam = &gObjectEventBaseOam_16x32, .subspriteTables = gObjectEventSpriteOamTables_16x32, .anims = sAnimTable_Standard, - .images = sPicTable_SuperNerd, + .images = sPicTable_PokeManiac, .affineAnims = gDummySpriteAffineAnimTable, }; @@ -720,7 +720,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFLand = { .affineAnims = gDummySpriteAffineAnimTable, }; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = { +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt = { .tileTag = TAG_NONE, .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, @@ -735,7 +735,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = { .oam = &gObjectEventBaseOam_16x32, .subspriteTables = gObjectEventSpriteOamTables_16x32, .anims = sAnimTable_Standard, - .images = sPicTable_Blackbelt, + .images = sPicTable_BlackBelt, .affineAnims = gDummySpriteAffineAnimTable, }; diff --git a/src/data/object_events/object_event_graphics_info_pointers.h b/src/data/object_events/object_event_graphics_info_pointers.h index 82588ba9a..af2f8afb6 100644 --- a/src/data/object_events/object_event_graphics_info_pointers.h +++ b/src/data/object_events/object_event_graphics_info_pointers.h @@ -22,7 +22,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SittingBoy; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CrushGirl; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rocker; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan; @@ -50,9 +50,9 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerF; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketF; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GBAKid; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokeManiac; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Biker; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisher; @@ -177,7 +177,7 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM [OBJ_EVENT_GFX_SITTING_BOY] = &gObjectEventGraphicsInfo_SittingBoy, [OBJ_EVENT_GFX_LASS] = &gObjectEventGraphicsInfo_Lass, [OBJ_EVENT_GFX_WOMAN_1] = &gObjectEventGraphicsInfo_Woman1, - [OBJ_EVENT_GFX_BATTLE_GIRL] = &gObjectEventGraphicsInfo_BattleGirl, + [OBJ_EVENT_GFX_CRUSH_GIRL] = &gObjectEventGraphicsInfo_CrushGirl, [OBJ_EVENT_GFX_MAN] = &gObjectEventGraphicsInfo_Man, [OBJ_EVENT_GFX_ROCKER] = &gObjectEventGraphicsInfo_Rocker, [OBJ_EVENT_GFX_FAT_MAN] = &gObjectEventGraphicsInfo_FatMan, @@ -205,9 +205,9 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM [OBJ_EVENT_GFX_ROCKET_M] = &gObjectEventGraphicsInfo_RocketM, [OBJ_EVENT_GFX_ROCKET_F] = &gObjectEventGraphicsInfo_RocketF, [OBJ_EVENT_GFX_GBA_KID] = &gObjectEventGraphicsInfo_GBAKid, - [OBJ_EVENT_GFX_SUPER_NERD] = &gObjectEventGraphicsInfo_SuperNerd, + [OBJ_EVENT_GFX_POKE_MANIAC] = &gObjectEventGraphicsInfo_PokeManiac, [OBJ_EVENT_GFX_BIKER] = &gObjectEventGraphicsInfo_Biker, - [OBJ_EVENT_GFX_BLACKBELT] = &gObjectEventGraphicsInfo_Blackbelt, + [OBJ_EVENT_GFX_BLACK_BELT] = &gObjectEventGraphicsInfo_BlackBelt, [OBJ_EVENT_GFX_SCIENTIST] = &gObjectEventGraphicsInfo_Scientist, [OBJ_EVENT_GFX_HIKER] = &gObjectEventGraphicsInfo_Hiker, [OBJ_EVENT_GFX_FISHER] = &gObjectEventGraphicsInfo_Fisher, diff --git a/src/data/object_events/object_event_pic_tables.h b/src/data/object_events/object_event_pic_tables.h index 43c52d6f9..70889d7a2 100644 --- a/src/data/object_events/object_event_pic_tables.h +++ b/src/data/object_events/object_event_pic_tables.h @@ -266,17 +266,17 @@ static const struct SpriteFrameImage sPicTable_Woman3[] = { overworld_frame(gObjectEventPic_Woman3, 2, 4, 8), }; -static const struct SpriteFrameImage sPicTable_BattleGirl[] = { - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 0), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 1), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 2), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 3), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 4), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 5), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 6), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 7), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 8), - overworld_frame(gObjectEventPic_BattleGirl, 2, 4, 9), +static const struct SpriteFrameImage sPicTable_CrushGirl[] = { + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 0), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 1), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 2), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 3), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 4), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 5), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 6), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 7), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 8), + overworld_frame(gObjectEventPic_CrushGirl, 2, 4, 9), }; static const struct SpriteFrameImage sPicTable_BugCatcher[] = { @@ -494,17 +494,17 @@ static const struct SpriteFrameImage sPicTable_Boy[] = { overworld_frame(gObjectEventPic_Boy, 2, 4, 9), }; -static const struct SpriteFrameImage sPicTable_SuperNerd[] = { - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 0), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 1), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 2), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 3), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 4), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 5), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 6), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 7), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 8), - overworld_frame(gObjectEventPic_SuperNerd, 2, 4, 9), +static const struct SpriteFrameImage sPicTable_PokeManiac[] = { + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 0), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 1), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 2), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 3), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 4), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 5), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 6), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 7), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 8), + overworld_frame(gObjectEventPic_PokeManiac, 2, 4, 9), }; static const struct SpriteFrameImage sPicTable_Channeler[] = { @@ -584,17 +584,17 @@ static const struct SpriteFrameImage sPicTable_SwimmerFLand[] = { overworld_frame(gObjectEventPic_SwimmerFLand, 2, 4, 9), }; -static const struct SpriteFrameImage sPicTable_Blackbelt[] = { - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 0), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 1), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 2), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 3), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 4), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 5), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 6), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 7), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 8), - overworld_frame(gObjectEventPic_Blackbelt, 2, 4, 9), +static const struct SpriteFrameImage sPicTable_BlackBelt[] = { + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 0), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 1), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 2), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 3), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 4), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 5), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 6), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 7), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 8), + overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 9), }; static const struct SpriteFrameImage sPicTable_Scientist[] = { diff --git a/src/dynamic_placeholder_text_util.c b/src/dynamic_placeholder_text_util.c index e9089c30a..c56b5116c 100644 --- a/src/dynamic_placeholder_text_util.c +++ b/src/dynamic_placeholder_text_util.c @@ -21,7 +21,7 @@ static const u8 sTextColorTable[] = [OBJ_EVENT_GFX_YOUNGSTER / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_BOY [OBJ_EVENT_GFX_BUG_CATCHER / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_SITTING_BOY [OBJ_EVENT_GFX_LASS / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_FEMALE), // OBJ_EVENT_GFX_WOMAN_1 - [OBJ_EVENT_GFX_BATTLE_GIRL / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_MAN + [OBJ_EVENT_GFX_CRUSH_GIRL / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_MAN [OBJ_EVENT_GFX_ROCKER / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_FAT_MAN [OBJ_EVENT_GFX_WOMAN_2 / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_FEMALE), // OBJ_EVENT_GFX_BEAUTY [OBJ_EVENT_GFX_BALDING_MAN / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_FEMALE), // OBJ_EVENT_GFX_WOMAN_3 @@ -35,8 +35,8 @@ static const u8 sTextColorTable[] = [OBJ_EVENT_GFX_SWIMMER_F_LAND / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_WORKER_M [OBJ_EVENT_GFX_WORKER_F / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_ROCKET_M [OBJ_EVENT_GFX_ROCKET_F / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_GBA_KID - [OBJ_EVENT_GFX_SUPER_NERD / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_BIKER - [OBJ_EVENT_GFX_BLACKBELT / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_SCIENTIST + [OBJ_EVENT_GFX_POKE_MANIAC / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_BIKER + [OBJ_EVENT_GFX_BLACK_BELT / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_SCIENTIST [OBJ_EVENT_GFX_HIKER / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_FISHER [OBJ_EVENT_GFX_CHANNELER / 2] = COLORS(NPC_TEXT_COLOR_FEMALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_CHEF [OBJ_EVENT_GFX_POLICEMAN / 2] = COLORS(NPC_TEXT_COLOR_MALE, NPC_TEXT_COLOR_MALE), // OBJ_EVENT_GFX_GENTLEMAN @@ -89,15 +89,9 @@ static const u8 sTextColorTable[] = void DynamicPlaceholderTextUtil_Reset(void) { - const u8 **ptr = sStringPointers; - u8 *fillval = NULL; - const u8 **ptr2 = ptr + (NELEMS(sStringPointers) - 1); - - do - { - *ptr2-- = fillval; - } - while ((intptr_t)ptr2 >= (intptr_t)ptr); + int i; + for (i = 0; i < (int)NELEMS(sStringPointers); i++) + sStringPointers[i] = NULL; } void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index d2bffe5ec..8e82824d3 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1495,22 +1495,19 @@ static bool8 GetAvailableObjectEventId(u16 localId, u8 mapNum, u8 mapGroup, u8 * { u8 i = 0; - for (i = 0; i < OBJECT_EVENTS_COUNT; i++) + for (i = 0; i < OBJECT_EVENTS_COUNT && gObjectEvents[i].active; i++) { - if (!gObjectEvents[i].active) - break; if (gObjectEvents[i].localId == localId && gObjectEvents[i].mapNum == mapNum && gObjectEvents[i].mapGroup == mapGroup) return TRUE; } if (i >= OBJECT_EVENTS_COUNT) return TRUE; *objectEventId = i; - do + for (; i < OBJECT_EVENTS_COUNT; i++) { if (gObjectEvents[i].active && gObjectEvents[i].localId == localId && gObjectEvents[i].mapNum == mapNum && gObjectEvents[i].mapGroup == mapGroup) return TRUE; - i++; - } while (i < OBJECT_EVENTS_COUNT); + } return FALSE; } @@ -8416,12 +8413,12 @@ void ObjectEventUpdateElevation(struct ObjectEvent *objEvent) void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 subpriority) { - s32 tmp = sprite->centerToCornerVecY; - u32 tmpa = *(u16 *)&sprite->y; - u32 tmpb = *(u16 *)&gSpriteCoordOffsetY; - s32 tmp2 = (tmpa - tmp) + tmpb; - u16 tmp3 = (0x10 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2; - sprite->subpriority = tmp3 + sElevationToSubpriority[elevation] + subpriority; + u16 y; + + y = (sprite->y - sprite->centerToCornerVecY + gSpriteCoordOffsetY + 8) & 0xFF; + y = (16 - (y >> 4)) << 1; + + sprite->subpriority = sElevationToSubpriority[elevation] + y + subpriority; } static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sprite *sprite) diff --git a/src/fame_checker.c b/src/fame_checker.c index ea1724922..b39771a49 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -337,20 +337,20 @@ static const u8 sFameCheckerArrayNpcGraphicsIds[] = { OBJ_EVENT_GFX_BRUNO, OBJ_EVENT_GFX_BRUNO, OBJ_EVENT_GFX_CLIPBOARD, - OBJ_EVENT_GFX_BLACKBELT, + OBJ_EVENT_GFX_BLACK_BELT, OBJ_EVENT_GFX_BEAUTY, - OBJ_EVENT_GFX_BLACKBELT, + OBJ_EVENT_GFX_BLACK_BELT, // AGATHA OBJ_EVENT_GFX_AGATHA, - OBJ_EVENT_GFX_BLACKBELT, - OBJ_EVENT_GFX_BLACKBELT, + OBJ_EVENT_GFX_BLACK_BELT, + OBJ_EVENT_GFX_BLACK_BELT, OBJ_EVENT_GFX_CLIPBOARD, OBJ_EVENT_GFX_AGATHA, OBJ_EVENT_GFX_OLD_WOMAN, // LANCE OBJ_EVENT_GFX_LANCE, OBJ_EVENT_GFX_LANCE, - OBJ_EVENT_GFX_BATTLE_GIRL, + OBJ_EVENT_GFX_CRUSH_GIRL, OBJ_EVENT_GFX_WOMAN_1, OBJ_EVENT_GFX_CLIPBOARD, OBJ_EVENT_GFX_COOLTRAINER_M, @@ -1235,7 +1235,7 @@ void UpdatePickStateFromSpecialVar8005(void) { if (gSpecialVar_0x8005 == FCPICKSTATE_NO_DRAW) return; - if ( gSpecialVar_0x8005 == FCPICKSTATE_SILHOUETTE + if ( gSpecialVar_0x8005 == FCPICKSTATE_SILHOUETTE && gSaveBlock1Ptr->fameChecker[gSpecialVar_0x8004].pickState == FCPICKSTATE_COLORED ) return; diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 4b0b40bcc..f392a06d5 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -207,6 +207,9 @@ static void Task_ReturnToFieldRecordMixing(u8 taskId) switch (task->data[0]) { case 0: +#if REVISION >= 0xA + if (!IsLinkTaskFinished()) break; +#endif SetLinkStandbyCallback(); task->data[0]++; break; diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index c9918e638..ffc11a28d 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -157,8 +157,7 @@ static const struct FlashStruct sTransitionTypes[] = { static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/cave_transition/white.gbapal"); static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/cave_transition/black.gbapal"); -static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/cave_transition/enter.gbapal"); -static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/cave_transition/exit.gbapal"); +static const u16 sCaveTransitionPalette[] = INCBIN_U16("graphics/cave_transition/tiles.gbapal"); static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/cave_transition/tilemap.bin.lz"); static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/cave_transition/tiles.4bpp.lz"); @@ -302,7 +301,7 @@ static void Task_FlashTransition_Exit_1(u8 taskId) LZ77UnCompVram(sCaveTransitionTiles, (void *)BG_CHAR_ADDR(3)); LZ77UnCompVram(sCaveTransitionTilemap, (void *)BG_SCREEN_ADDR(31)); LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_White)); - LoadPalette(sCaveTransitionPalette_Exit, BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_Exit)); + LoadPalette(&sCaveTransitionPalette[8], BG_PLTT_ID(14), PLTT_SIZEOF(8)); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); @@ -336,7 +335,7 @@ static void Task_FlashTransition_Exit_3(u8 taskId) if (count < 8) { gTasks[taskId].data[2]++; - LoadPalette(&sCaveTransitionPalette_Exit[count], BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_Exit) - PLTT_SIZEOF(count)); + LoadPalette(&sCaveTransitionPalette[count + 8], BG_PLTT_ID(14), PLTT_SIZEOF(8) - PLTT_SIZEOF(count)); } else { @@ -389,7 +388,7 @@ static void Task_FlashTransition_Enter_2(u8 taskId) { gTasks[taskId].data[2]++; gTasks[taskId].data[2]++; - LoadPalette(&sCaveTransitionPalette_Enter[15 - count], BG_PLTT_ID(14), PLTT_SIZEOF(count + 1)); + LoadPalette(&sCaveTransitionPalette[15 - count], BG_PLTT_ID(14), PLTT_SIZEOF(count + 1)); } else { diff --git a/src/fldeff_poison.c b/src/fldeff_poison.c index 1e609caf4..f43a9eb77 100644 --- a/src/fldeff_poison.c +++ b/src/fldeff_poison.c @@ -10,7 +10,11 @@ static void Task_FieldPoisonEffect(u8 taskId) switch (data[0]) { case 0: +#if REVISION >= 0xA + data[1] += 2; +#else data[1] += 1; +#endif if (data[1] > 4) data[0]++; break; diff --git a/src/graphics.c b/src/graphics.c index 8e606ca3f..94fd2cc6e 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -839,8 +839,8 @@ const u32 gBattleAnimSpriteGfx_Confetti[] = INCBIN_U32("graphics/battle_anims/sp const u32 gBattleAnimSpritePal_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.gbapal.lz"); const u32 gSubstituteDollPal[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.gbapal.lz"); -const u32 gSubstituteDollGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.4bpp.lz"); -const u32 gSubstituteDollTilemap[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.bin.lz"); +const u32 gSubstituteDollFrontGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.4bpp.lz"); +const u32 gSubstituteDollBackGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute_back.4bpp.lz"); const u32 gBattleAnimSpriteGfx_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.4bpp.lz"); const u32 gBattleAnimSpritePal_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.gbapal.lz"); diff --git a/src/image_processing_effects.c b/src/image_processing_effects.c index d0213527e..7f1df0f25 100644 --- a/src/image_processing_effects.c +++ b/src/image_processing_effects.c @@ -1,9 +1,11 @@ #include "global.h" #include "image_processing_effects.h" +#define MAX_DIMENSION 64 + // IWRAM common COMMON_DATA u8 gCanvasColumnStart = 0; -COMMON_DATA u16 (*gCanvasPixels)[][32] = {0}; +COMMON_DATA u16 *gCanvasPixels = NULL; COMMON_DATA u8 gCanvasRowEnd = 0; COMMON_DATA u8 gCanvasHeight = 0; COMMON_DATA u8 gCanvasColumnEnd = 0; @@ -49,3209 +51,3218 @@ static u16 QuantizePixel_GrayscaleSmall(u16 *); static u16 QuantizePixel_Grayscale(u16 *); static u16 QuantizePixel_PrimaryColors(u16 *); +#define GET_POINT_OFFSET_DL(bits) (((bits) >> 0) & 1) +#define GET_POINT_COLOR_TYPE(bits) (((bits) >> 1) & 3) +#define GET_POINT_DELTA(bits) (((bits) >> 3) & 7) + +#define PT(x, y, delta, colorType, offsetDownLeft) {x, y, (delta << 3) | (colorType << 1) | offsetDownLeft} + static const u8 sPointillismPoints[][3] = { - {0x00, 0x1d, 0x1c}, - {0x0e, 0x1e, 0x1b}, - {0x00, 0x01, 0x32}, - {0x2e, 0x1e, 0x37}, - {0x0a, 0x22, 0x1f}, - {0x05, 0x26, 0x2e}, - {0x12, 0x17, 0x1e}, - {0x1a, 0x03, 0x11}, - {0x05, 0x11, 0x18}, - {0x05, 0x27, 0x2f}, - {0x1a, 0x3f, 0x12}, - {0x22, 0x3f, 0x16}, - {0x2b, 0x2f, 0x2e}, - {0x11, 0x02, 0x2d}, - {0x23, 0x0d, 0x28}, - {0x17, 0x0c, 0x19}, - {0x2f, 0x0e, 0x13}, - {0x30, 0x18, 0x20}, - {0x2d, 0x28, 0x22}, - {0x01, 0x03, 0x19}, - {0x0e, 0x2a, 0x2b}, - {0x22, 0x15, 0x25}, - {0x22, 0x0a, 0x26}, - {0x39, 0x06, 0x23}, - {0x16, 0x07, 0x2f}, - {0x22, 0x3a, 0x1b}, - {0x3b, 0x36, 0x35}, - {0x0a, 0x2b, 0x24}, - {0x36, 0x09, 0x12}, - {0x1c, 0x2f, 0x23}, - {0x2e, 0x38, 0x2c}, - {0x05, 0x2a, 0x20}, - {0x07, 0x14, 0x32}, - {0x31, 0x08, 0x17}, - {0x1a, 0x24, 0x2d}, - {0x22, 0x0a, 0x16}, - {0x1b, 0x26, 0x2b}, - {0x29, 0x16, 0x11}, - {0x35, 0x08, 0x14}, - {0x1e, 0x08, 0x14}, - {0x05, 0x31, 0x14}, - {0x38, 0x31, 0x17}, - {0x34, 0x33, 0x12}, - {0x11, 0x09, 0x1f}, - {0x28, 0x3d, 0x32}, - {0x35, 0x03, 0x1e}, - {0x3c, 0x2b, 0x2e}, - {0x10, 0x01, 0x17}, - {0x03, 0x3e, 0x22}, - {0x17, 0x18, 0x34}, - {0x08, 0x29, 0x19}, - {0x03, 0x24, 0x28}, - {0x3d, 0x33, 0x2f}, - {0x31, 0x24, 0x19}, - {0x1b, 0x18, 0x26}, - {0x07, 0x0d, 0x25}, - {0x2d, 0x3f, 0x12}, - {0x2f, 0x15, 0x25}, - {0x29, 0x0f, 0x12}, - {0x07, 0x2c, 0x12}, - {0x2c, 0x0b, 0x26}, - {0x12, 0x1a, 0x16}, - {0x00, 0x0b, 0x2f}, - {0x16, 0x35, 0x24}, - {0x1f, 0x1c, 0x22}, - {0x29, 0x33, 0x27}, - {0x3b, 0x30, 0x17}, - {0x11, 0x06, 0x35}, - {0x3e, 0x31, 0x2f}, - {0x11, 0x3a, 0x25}, - {0x2a, 0x02, 0x19}, - {0x33, 0x18, 0x35}, - {0x2a, 0x20, 0x21}, - {0x2e, 0x32, 0x1b}, - {0x3b, 0x1f, 0x23}, - {0x39, 0x29, 0x2a}, - {0x2e, 0x31, 0x29}, - {0x2a, 0x0e, 0x2d}, - {0x2d, 0x00, 0x1f}, - {0x38, 0x28, 0x1b}, - {0x14, 0x3b, 0x2b}, - {0x2e, 0x04, 0x26}, - {0x36, 0x30, 0x11}, - {0x3b, 0x21, 0x2d}, - {0x2b, 0x3f, 0x1b}, - {0x20, 0x13, 0x31}, - {0x33, 0x0c, 0x30}, - {0x22, 0x2b, 0x2b}, - {0x16, 0x02, 0x1e}, - {0x1c, 0x12, 0x1c}, - {0x0f, 0x3c, 0x36}, - {0x38, 0x10, 0x2d}, - {0x18, 0x2f, 0x2d}, - {0x35, 0x3b, 0x11}, - {0x37, 0x31, 0x13}, - {0x13, 0x3d, 0x2f}, - {0x1e, 0x2c, 0x33}, - {0x2e, 0x37, 0x12}, - {0x3c, 0x1f, 0x33}, - {0x32, 0x2a, 0x27}, - {0x0d, 0x3b, 0x1c}, - {0x35, 0x2a, 0x27}, - {0x09, 0x3d, 0x27}, - {0x12, 0x0b, 0x18}, - {0x0c, 0x15, 0x1d}, - {0x20, 0x01, 0x1c}, - {0x08, 0x3b, 0x1c}, - {0x12, 0x37, 0x33}, - {0x15, 0x03, 0x2c}, - {0x2a, 0x3b, 0x31}, - {0x0f, 0x04, 0x35}, - {0x08, 0x17, 0x33}, - {0x38, 0x3d, 0x2a}, - {0x2f, 0x35, 0x16}, - {0x10, 0x35, 0x16}, - {0x23, 0x13, 0x2c}, - {0x2f, 0x06, 0x20}, - {0x27, 0x3a, 0x24}, - {0x00, 0x1c, 0x2a}, - {0x03, 0x39, 0x1d}, - {0x28, 0x07, 0x1a}, - {0x20, 0x0a, 0x37}, - {0x07, 0x35, 0x2d}, - {0x15, 0x2f, 0x2c}, - {0x10, 0x2c, 0x23}, - {0x3f, 0x29, 0x14}, - {0x2a, 0x21, 0x36}, - {0x34, 0x1a, 0x2c}, - {0x1c, 0x3d, 0x33}, - {0x38, 0x2b, 0x22}, - {0x35, 0x28, 0x1f}, - {0x3d, 0x0f, 0x1c}, - {0x1e, 0x3e, 0x1b}, - {0x0c, 0x3e, 0x1f}, - {0x2b, 0x31, 0x2c}, - {0x32, 0x39, 0x11}, - {0x05, 0x09, 0x11}, - {0x04, 0x38, 0x2a}, - {0x32, 0x00, 0x16}, - {0x13, 0x0b, 0x31}, - {0x34, 0x2a, 0x13}, - {0x2c, 0x22, 0x21}, - {0x39, 0x2f, 0x15}, - {0x37, 0x28, 0x1e}, - {0x07, 0x3b, 0x2d}, - {0x11, 0x03, 0x28}, - {0x2d, 0x30, 0x1e}, - {0x31, 0x11, 0x11}, - {0x23, 0x01, 0x1e}, - {0x3d, 0x31, 0x34}, - {0x1c, 0x02, 0x34}, - {0x21, 0x0e, 0x25}, - {0x3d, 0x07, 0x17}, - {0x33, 0x15, 0x10}, - {0x29, 0x32, 0x32}, - {0x18, 0x1f, 0x30}, - {0x2d, 0x3b, 0x30}, - {0x27, 0x3e, 0x16}, - {0x31, 0x15, 0x12}, - {0x30, 0x25, 0x17}, - {0x33, 0x06, 0x34}, - {0x00, 0x29, 0x18}, - {0x3c, 0x03, 0x12}, - {0x2c, 0x0c, 0x11}, - {0x09, 0x30, 0x30}, - {0x10, 0x0e, 0x11}, - {0x27, 0x16, 0x1b}, - {0x0c, 0x3b, 0x2e}, - {0x2b, 0x33, 0x1e}, - {0x13, 0x2d, 0x2d}, - {0x11, 0x24, 0x29}, - {0x34, 0x3e, 0x2b}, - {0x24, 0x1e, 0x21}, - {0x27, 0x1a, 0x2d}, - {0x04, 0x39, 0x16}, - {0x3e, 0x33, 0x26}, - {0x1b, 0x2e, 0x25}, - {0x0c, 0x06, 0x19}, - {0x25, 0x19, 0x18}, - {0x1d, 0x33, 0x33}, - {0x1d, 0x28, 0x2d}, - {0x1c, 0x10, 0x2a}, - {0x1f, 0x35, 0x1e}, - {0x34, 0x02, 0x10}, - {0x2b, 0x3a, 0x14}, - {0x0d, 0x0b, 0x15}, - {0x0c, 0x2c, 0x10}, - {0x37, 0x3a, 0x19}, - {0x06, 0x13, 0x17}, - {0x24, 0x10, 0x25}, - {0x24, 0x04, 0x1e}, - {0x00, 0x35, 0x34}, - {0x3a, 0x00, 0x37}, - {0x3c, 0x07, 0x1a}, - {0x2b, 0x28, 0x36}, - {0x34, 0x39, 0x2f}, - {0x28, 0x09, 0x1f}, - {0x38, 0x31, 0x30}, - {0x16, 0x25, 0x31}, - {0x18, 0x28, 0x31}, - {0x18, 0x0c, 0x22}, - {0x06, 0x39, 0x2d}, - {0x3d, 0x20, 0x24}, - {0x2e, 0x27, 0x21}, - {0x3e, 0x18, 0x18}, - {0x15, 0x3c, 0x24}, - {0x06, 0x1b, 0x26}, - {0x15, 0x0e, 0x22}, - {0x0a, 0x0d, 0x1f}, - {0x18, 0x16, 0x34}, - {0x10, 0x28, 0x21}, - {0x20, 0x11, 0x11}, - {0x36, 0x32, 0x15}, - {0x3b, 0x2e, 0x24}, - {0x1f, 0x2d, 0x12}, - {0x36, 0x2e, 0x20}, - {0x0b, 0x17, 0x33}, - {0x26, 0x03, 0x1f}, - {0x08, 0x19, 0x31}, - {0x2a, 0x18, 0x25}, - {0x35, 0x2d, 0x2d}, - {0x30, 0x38, 0x18}, - {0x1c, 0x25, 0x14}, - {0x1c, 0x22, 0x28}, - {0x08, 0x23, 0x21}, - {0x26, 0x1e, 0x30}, - {0x19, 0x0f, 0x15}, - {0x10, 0x2f, 0x22}, - {0x12, 0x02, 0x25}, - {0x3c, 0x01, 0x1d}, - {0x0e, 0x14, 0x18}, - {0x0d, 0x18, 0x17}, - {0x22, 0x0b, 0x31}, - {0x13, 0x34, 0x21}, - {0x0f, 0x2d, 0x36}, - {0x39, 0x1f, 0x25}, - {0x18, 0x10, 0x1f}, - {0x2d, 0x20, 0x20}, - {0x19, 0x0b, 0x31}, - {0x33, 0x13, 0x14}, - {0x2e, 0x11, 0x21}, - {0x2d, 0x0a, 0x37}, - {0x07, 0x15, 0x1b}, - {0x32, 0x04, 0x32}, - {0x06, 0x18, 0x1b}, - {0x13, 0x24, 0x12}, - {0x36, 0x22, 0x16}, - {0x1d, 0x29, 0x1c}, - {0x35, 0x17, 0x21}, - {0x36, 0x17, 0x2b}, - {0x35, 0x32, 0x19}, - {0x2a, 0x0f, 0x2e}, - {0x10, 0x00, 0x34}, - {0x02, 0x0e, 0x28}, - {0x31, 0x32, 0x32}, - {0x3b, 0x05, 0x20}, - {0x36, 0x26, 0x12}, - {0x34, 0x06, 0x34}, - {0x1e, 0x31, 0x32}, - {0x35, 0x05, 0x34}, - {0x1e, 0x13, 0x15}, - {0x15, 0x14, 0x2c}, - {0x29, 0x1c, 0x18}, - {0x24, 0x24, 0x12}, - {0x22, 0x29, 0x18}, - {0x34, 0x36, 0x30}, - {0x1e, 0x01, 0x23}, - {0x0c, 0x3c, 0x24}, - {0x0a, 0x3d, 0x16}, - {0x27, 0x1e, 0x23}, - {0x15, 0x02, 0x12}, - {0x11, 0x19, 0x2a}, - {0x1d, 0x31, 0x15}, - {0x03, 0x3b, 0x2a}, - {0x21, 0x19, 0x2c}, - {0x0a, 0x23, 0x11}, - {0x25, 0x11, 0x1a}, - {0x1a, 0x0a, 0x34}, - {0x3b, 0x0b, 0x33}, - {0x21, 0x0b, 0x37}, - {0x01, 0x31, 0x28}, - {0x35, 0x1d, 0x27}, - {0x2c, 0x30, 0x31}, - {0x2e, 0x39, 0x2d}, - {0x30, 0x05, 0x2c}, - {0x12, 0x2a, 0x2b}, - {0x39, 0x22, 0x20}, - {0x15, 0x34, 0x1c}, - {0x1c, 0x01, 0x15}, - {0x20, 0x16, 0x22}, - {0x13, 0x04, 0x18}, - {0x1e, 0x13, 0x10}, - {0x25, 0x33, 0x15}, - {0x39, 0x03, 0x31}, - {0x3f, 0x36, 0x18}, - {0x14, 0x23, 0x10}, - {0x2f, 0x1e, 0x1f}, - {0x1f, 0x17, 0x2c}, - {0x02, 0x16, 0x31}, - {0x20, 0x18, 0x30}, - {0x2e, 0x18, 0x37}, - {0x3b, 0x0e, 0x30}, - {0x10, 0x39, 0x24}, - {0x26, 0x39, 0x1e}, - {0x30, 0x26, 0x2e}, - {0x12, 0x01, 0x14}, - {0x37, 0x2a, 0x2e}, - {0x21, 0x06, 0x1d}, - {0x2a, 0x16, 0x32}, - {0x09, 0x38, 0x1c}, - {0x07, 0x22, 0x17}, - {0x3b, 0x2d, 0x15}, - {0x07, 0x1e, 0x2e}, - {0x1b, 0x2e, 0x1d}, - {0x04, 0x09, 0x30}, - {0x30, 0x2d, 0x37}, - {0x2d, 0x34, 0x24}, - {0x18, 0x24, 0x25}, - {0x0e, 0x2d, 0x26}, - {0x23, 0x0a, 0x16}, - {0x12, 0x2d, 0x11}, - {0x21, 0x28, 0x2e}, - {0x0f, 0x01, 0x21}, - {0x01, 0x31, 0x12}, - {0x3f, 0x1b, 0x1e}, - {0x21, 0x25, 0x2b}, - {0x26, 0x18, 0x13}, - {0x15, 0x2d, 0x34}, - {0x23, 0x21, 0x36}, - {0x0e, 0x2e, 0x1c}, - {0x14, 0x22, 0x1c}, - {0x2c, 0x0b, 0x28}, - {0x1a, 0x18, 0x21}, - {0x21, 0x07, 0x1a}, - {0x24, 0x26, 0x29}, - {0x2b, 0x0a, 0x34}, - {0x3e, 0x27, 0x33}, - {0x12, 0x34, 0x1b}, - {0x1f, 0x01, 0x2a}, - {0x2e, 0x06, 0x23}, - {0x2f, 0x1f, 0x14}, - {0x18, 0x06, 0x26}, - {0x31, 0x1f, 0x2b}, - {0x22, 0x26, 0x2e}, - {0x1e, 0x15, 0x16}, - {0x20, 0x22, 0x28}, - {0x15, 0x37, 0x12}, - {0x25, 0x04, 0x2c}, - {0x1f, 0x04, 0x2e}, - {0x0c, 0x13, 0x18}, - {0x07, 0x0b, 0x36}, - {0x1d, 0x1c, 0x2a}, - {0x30, 0x22, 0x1c}, - {0x2e, 0x12, 0x2f}, - {0x2b, 0x21, 0x1e}, - {0x16, 0x38, 0x30}, - {0x04, 0x02, 0x16}, - {0x05, 0x14, 0x20}, - {0x38, 0x3c, 0x33}, - {0x21, 0x1b, 0x2f}, - {0x14, 0x2a, 0x27}, - {0x38, 0x14, 0x1b}, - {0x2b, 0x1f, 0x2b}, - {0x29, 0x2b, 0x25}, - {0x27, 0x36, 0x21}, - {0x11, 0x22, 0x1b}, - {0x29, 0x03, 0x1b}, - {0x18, 0x24, 0x28}, - {0x21, 0x2d, 0x36}, - {0x3c, 0x2c, 0x24}, - {0x33, 0x17, 0x1f}, - {0x2a, 0x3a, 0x21}, - {0x0a, 0x23, 0x37}, - {0x00, 0x0b, 0x21}, - {0x11, 0x38, 0x19}, - {0x0f, 0x0e, 0x1c}, - {0x1f, 0x0f, 0x37}, - {0x3c, 0x10, 0x37}, - {0x38, 0x31, 0x35}, - {0x07, 0x15, 0x28}, - {0x1e, 0x2e, 0x19}, - {0x26, 0x10, 0x33}, - {0x3d, 0x35, 0x2f}, - {0x3a, 0x04, 0x34}, - {0x0d, 0x18, 0x1a}, - {0x01, 0x2d, 0x15}, - {0x3d, 0x1a, 0x17}, - {0x17, 0x3f, 0x32}, - {0x0b, 0x21, 0x11}, - {0x1e, 0x26, 0x2b}, - {0x0d, 0x19, 0x24}, - {0x2e, 0x04, 0x1b}, - {0x1b, 0x33, 0x20}, - {0x15, 0x21, 0x1d}, - {0x1f, 0x04, 0x21}, - {0x0f, 0x12, 0x1f}, - {0x2d, 0x2a, 0x32}, - {0x03, 0x37, 0x1f}, - {0x35, 0x07, 0x27}, - {0x24, 0x1f, 0x31}, - {0x2f, 0x30, 0x15}, - {0x06, 0x00, 0x24}, - {0x0b, 0x22, 0x1a}, - {0x0c, 0x3b, 0x29}, - {0x14, 0x1a, 0x17}, - {0x37, 0x20, 0x25}, - {0x3f, 0x26, 0x37}, - {0x3a, 0x3e, 0x10}, - {0x22, 0x04, 0x11}, - {0x28, 0x12, 0x1c}, - {0x03, 0x2e, 0x2e}, - {0x0e, 0x38, 0x28}, - {0x01, 0x29, 0x22}, - {0x1e, 0x33, 0x19}, - {0x06, 0x21, 0x27}, - {0x33, 0x19, 0x1a}, - {0x02, 0x05, 0x17}, - {0x11, 0x11, 0x2c}, - {0x1f, 0x26, 0x1e}, - {0x39, 0x1f, 0x28}, - {0x2e, 0x2f, 0x12}, - {0x22, 0x34, 0x13}, - {0x3b, 0x26, 0x2f}, - {0x34, 0x00, 0x14}, - {0x10, 0x31, 0x11}, - {0x1d, 0x2d, 0x2a}, - {0x08, 0x08, 0x37}, - {0x15, 0x18, 0x34}, - {0x04, 0x2b, 0x24}, - {0x2f, 0x1e, 0x27}, - {0x22, 0x2a, 0x24}, - {0x07, 0x14, 0x25}, - {0x01, 0x27, 0x19}, - {0x29, 0x0a, 0x29}, - {0x3d, 0x1c, 0x2f}, - {0x0d, 0x1f, 0x1c}, - {0x24, 0x3d, 0x32}, - {0x36, 0x1d, 0x24}, - {0x14, 0x21, 0x16}, - {0x1a, 0x0d, 0x29}, - {0x3f, 0x2b, 0x2a}, - {0x1a, 0x3e, 0x35}, - {0x11, 0x28, 0x18}, - {0x32, 0x05, 0x15}, - {0x21, 0x2e, 0x34}, - {0x2d, 0x14, 0x2a}, - {0x3c, 0x08, 0x37}, - {0x3f, 0x34, 0x1e}, - {0x27, 0x24, 0x1c}, - {0x16, 0x16, 0x33}, - {0x29, 0x3b, 0x19}, - {0x36, 0x2f, 0x1c}, - {0x03, 0x25, 0x2c}, - {0x0b, 0x16, 0x36}, - {0x1c, 0x1d, 0x1b}, - {0x2c, 0x27, 0x1b}, - {0x0b, 0x1f, 0x2b}, - {0x08, 0x10, 0x27}, - {0x3f, 0x25, 0x2f}, - {0x33, 0x13, 0x1f}, - {0x04, 0x31, 0x37}, - {0x0e, 0x2f, 0x12}, - {0x08, 0x23, 0x20}, - {0x3a, 0x1a, 0x1e}, - {0x2f, 0x0b, 0x1f}, - {0x1e, 0x20, 0x19}, - {0x23, 0x3b, 0x14}, - {0x25, 0x00, 0x27}, - {0x14, 0x04, 0x25}, - {0x36, 0x1a, 0x2b}, - {0x27, 0x21, 0x15}, - {0x28, 0x13, 0x2c}, - {0x0e, 0x3c, 0x35}, - {0x0c, 0x2d, 0x2b}, - {0x37, 0x16, 0x15}, - {0x29, 0x15, 0x1d}, - {0x17, 0x34, 0x36}, - {0x09, 0x0a, 0x31}, - {0x37, 0x22, 0x28}, - {0x17, 0x2b, 0x35}, - {0x14, 0x2b, 0x12}, - {0x08, 0x13, 0x1f}, - {0x31, 0x13, 0x28}, - {0x06, 0x07, 0x35}, - {0x23, 0x3a, 0x29}, - {0x0f, 0x24, 0x2e}, - {0x07, 0x35, 0x26}, - {0x0e, 0x12, 0x15}, - {0x23, 0x33, 0x2c}, - {0x0e, 0x21, 0x26}, - {0x1c, 0x12, 0x25}, - {0x23, 0x1d, 0x2f}, - {0x04, 0x35, 0x33}, - {0x16, 0x01, 0x24}, - {0x3d, 0x2c, 0x2e}, - {0x35, 0x0a, 0x25}, - {0x11, 0x13, 0x25}, - {0x1b, 0x1b, 0x15}, - {0x15, 0x39, 0x10}, - {0x0b, 0x35, 0x24}, - {0x3a, 0x27, 0x30}, - {0x2e, 0x2f, 0x15}, - {0x10, 0x1f, 0x35}, - {0x1b, 0x28, 0x35}, - {0x26, 0x30, 0x37}, - {0x34, 0x37, 0x2b}, - {0x0f, 0x30, 0x29}, - {0x2e, 0x3f, 0x2b}, - {0x38, 0x34, 0x2b}, - {0x2b, 0x2f, 0x25}, - {0x0d, 0x28, 0x2a}, - {0x33, 0x18, 0x10}, - {0x21, 0x12, 0x11}, - {0x1f, 0x22, 0x34}, - {0x11, 0x25, 0x23}, - {0x21, 0x3f, 0x11}, - {0x26, 0x27, 0x25}, - {0x28, 0x36, 0x12}, - {0x15, 0x26, 0x32}, - {0x11, 0x18, 0x24}, - {0x32, 0x25, 0x37}, - {0x27, 0x3a, 0x33}, - {0x35, 0x07, 0x1c}, - {0x1a, 0x0e, 0x2a}, - {0x1e, 0x2f, 0x1f}, - {0x00, 0x2e, 0x21}, - {0x1b, 0x3c, 0x14}, - {0x2f, 0x3a, 0x2f}, - {0x3e, 0x38, 0x15}, - {0x1a, 0x13, 0x2f}, - {0x29, 0x0d, 0x2f}, - {0x37, 0x17, 0x18}, - {0x30, 0x1c, 0x35}, - {0x15, 0x34, 0x14}, - {0x28, 0x11, 0x2c}, - {0x2c, 0x25, 0x2a}, - {0x20, 0x3f, 0x28}, - {0x0c, 0x34, 0x1b}, - {0x30, 0x2e, 0x25}, - {0x37, 0x1c, 0x24}, - {0x1f, 0x25, 0x26}, - {0x0c, 0x19, 0x34}, - {0x18, 0x10, 0x35}, - {0x0a, 0x13, 0x11}, - {0x25, 0x13, 0x20}, - {0x13, 0x19, 0x11}, - {0x20, 0x28, 0x1d}, - {0x3e, 0x30, 0x1b}, - {0x23, 0x24, 0x21}, - {0x0d, 0x23, 0x23}, - {0x1d, 0x28, 0x2e}, - {0x2d, 0x12, 0x1f}, - {0x0e, 0x2e, 0x2b}, - {0x0b, 0x31, 0x32}, - {0x24, 0x3c, 0x2c}, - {0x13, 0x3c, 0x12}, - {0x28, 0x16, 0x2a}, - {0x05, 0x0c, 0x32}, - {0x39, 0x0b, 0x32}, - {0x21, 0x04, 0x14}, - {0x10, 0x31, 0x32}, - {0x12, 0x1f, 0x23}, - {0x39, 0x2e, 0x2e}, - {0x22, 0x3d, 0x27}, - {0x0c, 0x1e, 0x18}, - {0x25, 0x00, 0x17}, - {0x06, 0x31, 0x14}, - {0x13, 0x21, 0x1a}, - {0x14, 0x20, 0x35}, - {0x0a, 0x3b, 0x25}, - {0x33, 0x08, 0x28}, - {0x3d, 0x02, 0x33}, - {0x23, 0x00, 0x13}, - {0x22, 0x21, 0x28}, - {0x30, 0x14, 0x2e}, - {0x14, 0x32, 0x36}, - {0x39, 0x23, 0x1e}, - {0x1c, 0x11, 0x30}, - {0x37, 0x16, 0x30}, - {0x15, 0x31, 0x1f}, - {0x34, 0x28, 0x2c}, - {0x35, 0x05, 0x29}, - {0x37, 0x33, 0x2a}, - {0x1c, 0x17, 0x2e}, - {0x10, 0x06, 0x16}, - {0x32, 0x1f, 0x2f}, - {0x00, 0x29, 0x1e}, - {0x04, 0x01, 0x16}, - {0x3b, 0x23, 0x1e}, - {0x1b, 0x34, 0x2a}, - {0x30, 0x11, 0x2b}, - {0x03, 0x00, 0x1f}, - {0x1d, 0x37, 0x1a}, - {0x3a, 0x18, 0x25}, - {0x1c, 0x16, 0x2c}, - {0x04, 0x3f, 0x33}, - {0x26, 0x23, 0x2d}, - {0x15, 0x2c, 0x27}, - {0x02, 0x35, 0x27}, - {0x07, 0x35, 0x33}, - {0x1a, 0x0c, 0x10}, - {0x28, 0x26, 0x2c}, - {0x2f, 0x36, 0x16}, - {0x37, 0x0b, 0x27}, - {0x1b, 0x3d, 0x18}, - {0x27, 0x1f, 0x20}, - {0x2b, 0x2a, 0x33}, - {0x0b, 0x0f, 0x20}, - {0x35, 0x3c, 0x2f}, - {0x33, 0x21, 0x15}, - {0x2d, 0x26, 0x34}, - {0x1f, 0x1a, 0x21}, - {0x2f, 0x2c, 0x2a}, - {0x1a, 0x32, 0x1a}, - {0x3b, 0x3f, 0x21}, - {0x13, 0x3f, 0x13}, - {0x0f, 0x24, 0x22}, - {0x14, 0x1b, 0x10}, - {0x21, 0x06, 0x28}, - {0x25, 0x34, 0x10}, - {0x2e, 0x0e, 0x14}, - {0x3c, 0x3e, 0x25}, - {0x16, 0x06, 0x30}, - {0x0b, 0x04, 0x1f}, - {0x3e, 0x02, 0x24}, - {0x0c, 0x17, 0x25}, - {0x2b, 0x3c, 0x2d}, - {0x15, 0x36, 0x33}, - {0x18, 0x23, 0x2a}, - {0x1d, 0x10, 0x2a}, - {0x35, 0x17, 0x28}, - {0x00, 0x37, 0x24}, - {0x0a, 0x3b, 0x15}, - {0x1d, 0x0b, 0x1f}, - {0x3c, 0x31, 0x25}, - {0x1d, 0x0f, 0x1d}, - {0x20, 0x13, 0x34}, - {0x11, 0x2b, 0x2e}, - {0x23, 0x0c, 0x2e}, - {0x24, 0x02, 0x14}, - {0x31, 0x16, 0x19}, - {0x0e, 0x23, 0x35}, - {0x1a, 0x10, 0x16}, - {0x14, 0x04, 0x19}, - {0x2d, 0x27, 0x37}, - {0x33, 0x02, 0x31}, - {0x02, 0x04, 0x16}, - {0x0d, 0x22, 0x25}, - {0x25, 0x00, 0x16}, - {0x2a, 0x3f, 0x26}, - {0x20, 0x0c, 0x12}, - {0x2f, 0x2e, 0x35}, - {0x1b, 0x0d, 0x22}, - {0x1e, 0x01, 0x34}, - {0x05, 0x22, 0x21}, - {0x34, 0x2a, 0x32}, - {0x0b, 0x09, 0x1d}, - {0x3f, 0x32, 0x2f}, - {0x3d, 0x18, 0x2d}, - {0x0b, 0x38, 0x36}, - {0x39, 0x17, 0x28}, - {0x34, 0x04, 0x24}, - {0x36, 0x0e, 0x2a}, - {0x38, 0x01, 0x14}, - {0x3c, 0x24, 0x22}, - {0x21, 0x03, 0x18}, - {0x32, 0x2f, 0x12}, - {0x29, 0x24, 0x31}, - {0x0a, 0x3b, 0x12}, - {0x1a, 0x1c, 0x20}, - {0x30, 0x31, 0x1b}, - {0x1a, 0x21, 0x10}, - {0x05, 0x29, 0x10}, - {0x26, 0x2d, 0x13}, - {0x16, 0x0c, 0x1d}, - {0x2b, 0x06, 0x1b}, - {0x06, 0x12, 0x14}, - {0x38, 0x0f, 0x35}, - {0x23, 0x3a, 0x2c}, - {0x00, 0x19, 0x33}, - {0x29, 0x14, 0x2d}, - {0x2a, 0x21, 0x29}, - {0x14, 0x31, 0x14}, - {0x1a, 0x06, 0x1e}, - {0x18, 0x1b, 0x28}, - {0x3b, 0x16, 0x29}, - {0x15, 0x1e, 0x12}, - {0x34, 0x0a, 0x14}, - {0x1b, 0x05, 0x27}, - {0x0b, 0x01, 0x26}, - {0x2a, 0x22, 0x35}, - {0x21, 0x20, 0x18}, - {0x20, 0x37, 0x17}, - {0x14, 0x1f, 0x11}, - {0x1d, 0x11, 0x25}, - {0x24, 0x2b, 0x2f}, - {0x07, 0x3f, 0x1f}, - {0x2c, 0x25, 0x25}, - {0x2a, 0x29, 0x18}, - {0x11, 0x24, 0x28}, - {0x31, 0x2c, 0x2a}, - {0x39, 0x0b, 0x26}, - {0x28, 0x10, 0x26}, - {0x22, 0x06, 0x16}, - {0x09, 0x2c, 0x13}, - {0x34, 0x19, 0x15}, - {0x3a, 0x12, 0x21}, - {0x1d, 0x38, 0x23}, - {0x12, 0x25, 0x24}, - {0x21, 0x30, 0x12}, - {0x37, 0x1a, 0x12}, - {0x24, 0x3b, 0x25}, - {0x32, 0x15, 0x23}, - {0x0d, 0x1a, 0x10}, - {0x16, 0x2e, 0x26}, - {0x1d, 0x14, 0x16}, - {0x3e, 0x2e, 0x1f}, - {0x0a, 0x16, 0x10}, - {0x1d, 0x30, 0x2b}, - {0x04, 0x3a, 0x19}, - {0x08, 0x2d, 0x2e}, - {0x28, 0x1e, 0x33}, - {0x0a, 0x12, 0x2e}, - {0x0d, 0x03, 0x2f}, - {0x26, 0x3a, 0x1e}, - {0x35, 0x3b, 0x2a}, - {0x03, 0x1a, 0x18}, - {0x3f, 0x0b, 0x27}, - {0x04, 0x05, 0x34}, - {0x36, 0x0b, 0x27}, - {0x3b, 0x17, 0x11}, - {0x0d, 0x27, 0x26}, - {0x2c, 0x1f, 0x20}, - {0x26, 0x10, 0x20}, - {0x25, 0x23, 0x2d}, - {0x37, 0x09, 0x13}, - {0x14, 0x17, 0x2d}, - {0x2e, 0x3d, 0x23}, - {0x1d, 0x1a, 0x1f}, - {0x21, 0x33, 0x2e}, - {0x28, 0x17, 0x13}, - {0x26, 0x3c, 0x36}, - {0x14, 0x1a, 0x33}, - {0x32, 0x20, 0x2b}, - {0x19, 0x3e, 0x20}, - {0x0c, 0x02, 0x2d}, - {0x3c, 0x3c, 0x2a}, - {0x30, 0x30, 0x28}, - {0x25, 0x3f, 0x1e}, - {0x03, 0x17, 0x1e}, - {0x35, 0x11, 0x1c}, - {0x1b, 0x14, 0x2a}, - {0x28, 0x3a, 0x23}, - {0x0e, 0x1f, 0x12}, - {0x36, 0x21, 0x20}, - {0x07, 0x3b, 0x10}, - {0x23, 0x19, 0x34}, - {0x0d, 0x2e, 0x18}, - {0x3f, 0x20, 0x25}, - {0x3e, 0x3b, 0x15}, - {0x0b, 0x2e, 0x12}, - {0x37, 0x0b, 0x23}, - {0x3d, 0x32, 0x1f}, - {0x16, 0x03, 0x27}, - {0x14, 0x0c, 0x21}, - {0x18, 0x03, 0x30}, - {0x3e, 0x21, 0x13}, - {0x0f, 0x00, 0x32}, - {0x3f, 0x23, 0x16}, - {0x0e, 0x31, 0x1d}, - {0x18, 0x1c, 0x1d}, - {0x30, 0x0e, 0x1e}, - {0x21, 0x20, 0x23}, - {0x3f, 0x0c, 0x1e}, - {0x14, 0x33, 0x22}, - {0x22, 0x21, 0x15}, - {0x36, 0x05, 0x1e}, - {0x1d, 0x31, 0x14}, - {0x20, 0x11, 0x37}, - {0x0d, 0x33, 0x19}, - {0x25, 0x05, 0x36}, - {0x1e, 0x31, 0x20}, - {0x35, 0x3a, 0x2f}, - {0x32, 0x2f, 0x30}, - {0x14, 0x23, 0x2d}, - {0x35, 0x1e, 0x29}, - {0x05, 0x05, 0x1b}, - {0x09, 0x1f, 0x26}, - {0x2f, 0x0b, 0x15}, - {0x15, 0x11, 0x13}, - {0x29, 0x1b, 0x18}, - {0x1c, 0x13, 0x35}, - {0x34, 0x31, 0x23}, - {0x27, 0x3f, 0x2f}, - {0x09, 0x30, 0x19}, - {0x23, 0x12, 0x34}, - {0x02, 0x2a, 0x21}, - {0x09, 0x3c, 0x1d}, - {0x0c, 0x02, 0x10}, - {0x22, 0x05, 0x17}, - {0x22, 0x08, 0x1b}, - {0x0a, 0x0f, 0x15}, - {0x02, 0x11, 0x13}, - {0x01, 0x21, 0x22}, - {0x16, 0x39, 0x33}, - {0x24, 0x38, 0x34}, - {0x0f, 0x1e, 0x2b}, - {0x2b, 0x15, 0x15}, - {0x20, 0x22, 0x2e}, - {0x3a, 0x3f, 0x31}, - {0x1a, 0x27, 0x2b}, - {0x29, 0x34, 0x14}, - {0x16, 0x39, 0x2f}, - {0x13, 0x3e, 0x16}, - {0x36, 0x21, 0x30}, - {0x00, 0x24, 0x2b}, - {0x24, 0x21, 0x30}, - {0x15, 0x31, 0x13}, - {0x10, 0x37, 0x24}, - {0x08, 0x07, 0x23}, - {0x21, 0x09, 0x25}, - {0x05, 0x3c, 0x32}, - {0x19, 0x03, 0x25}, - {0x0f, 0x29, 0x2b}, - {0x16, 0x07, 0x13}, - {0x3e, 0x3d, 0x25}, - {0x36, 0x0b, 0x28}, - {0x2e, 0x2b, 0x16}, - {0x0c, 0x31, 0x11}, - {0x30, 0x13, 0x2d}, - {0x26, 0x3e, 0x37}, - {0x29, 0x2f, 0x2e}, - {0x15, 0x3d, 0x17}, - {0x1c, 0x2e, 0x21}, - {0x33, 0x2f, 0x10}, - {0x0d, 0x05, 0x1d}, - {0x1c, 0x1a, 0x12}, - {0x0e, 0x18, 0x37}, - {0x1b, 0x11, 0x14}, - {0x06, 0x14, 0x21}, - {0x31, 0x0e, 0x27}, - {0x1a, 0x03, 0x10}, - {0x00, 0x34, 0x31}, - {0x3f, 0x0b, 0x1d}, - {0x0f, 0x12, 0x1f}, - {0x1a, 0x15, 0x10}, - {0x0f, 0x00, 0x24}, - {0x3e, 0x0a, 0x2a}, - {0x30, 0x2b, 0x24}, - {0x26, 0x31, 0x10}, - {0x2d, 0x2f, 0x2f}, - {0x3f, 0x0c, 0x13}, - {0x12, 0x0b, 0x16}, - {0x15, 0x07, 0x1f}, - {0x28, 0x10, 0x32}, - {0x0f, 0x17, 0x15}, - {0x0b, 0x27, 0x33}, - {0x34, 0x1d, 0x10}, - {0x1c, 0x3a, 0x12}, - {0x2c, 0x27, 0x37}, - {0x0a, 0x1a, 0x32}, - {0x05, 0x1f, 0x21}, - {0x24, 0x0d, 0x1f}, - {0x1c, 0x17, 0x24}, - {0x2f, 0x3b, 0x32}, - {0x3b, 0x25, 0x10}, - {0x03, 0x2f, 0x21}, - {0x0c, 0x10, 0x23}, - {0x0e, 0x3a, 0x2c}, - {0x33, 0x03, 0x2c}, - {0x12, 0x06, 0x1c}, - {0x2a, 0x37, 0x30}, - {0x3f, 0x01, 0x1e}, - {0x35, 0x16, 0x37}, - {0x2c, 0x32, 0x35}, - {0x05, 0x11, 0x22}, - {0x29, 0x09, 0x20}, - {0x2b, 0x0d, 0x1f}, - {0x18, 0x0d, 0x20}, - {0x23, 0x39, 0x16}, - {0x0f, 0x3a, 0x18}, - {0x21, 0x35, 0x2b}, - {0x36, 0x26, 0x2b}, - {0x23, 0x05, 0x2f}, - {0x1b, 0x08, 0x17}, - {0x3e, 0x09, 0x16}, - {0x2d, 0x3a, 0x37}, - {0x15, 0x35, 0x35}, - {0x29, 0x0a, 0x12}, - {0x02, 0x39, 0x1f}, - {0x14, 0x34, 0x33}, - {0x17, 0x1d, 0x18}, - {0x16, 0x1d, 0x1a}, - {0x01, 0x39, 0x22}, - {0x1e, 0x27, 0x36}, - {0x32, 0x14, 0x26}, - {0x0a, 0x39, 0x36}, - {0x1f, 0x0d, 0x1e}, - {0x0b, 0x0a, 0x19}, - {0x35, 0x1d, 0x34}, - {0x03, 0x12, 0x16}, - {0x0c, 0x13, 0x2e}, - {0x0c, 0x34, 0x1e}, - {0x10, 0x14, 0x1e}, - {0x23, 0x32, 0x27}, - {0x02, 0x10, 0x29}, - {0x35, 0x18, 0x33}, - {0x33, 0x1d, 0x1a}, - {0x3c, 0x15, 0x23}, - {0x3e, 0x3f, 0x22}, - {0x2a, 0x02, 0x2c}, - {0x28, 0x0a, 0x2f}, - {0x1a, 0x06, 0x35}, - {0x3c, 0x17, 0x2b}, - {0x03, 0x12, 0x17}, - {0x2f, 0x0a, 0x26}, - {0x12, 0x38, 0x11}, - {0x36, 0x1b, 0x23}, - {0x01, 0x39, 0x35}, - {0x19, 0x19, 0x17}, - {0x09, 0x28, 0x22}, - {0x1e, 0x27, 0x2c}, - {0x35, 0x33, 0x2c}, - {0x27, 0x25, 0x31}, - {0x06, 0x31, 0x2d}, - {0x1a, 0x39, 0x28}, - {0x2d, 0x04, 0x1e}, - {0x24, 0x3e, 0x1c}, - {0x3c, 0x30, 0x1b}, - {0x3f, 0x3e, 0x37}, - {0x22, 0x36, 0x11}, - {0x00, 0x01, 0x1c}, - {0x12, 0x1a, 0x10}, - {0x12, 0x1e, 0x2c}, - {0x1f, 0x12, 0x2a}, - {0x2f, 0x06, 0x19}, - {0x35, 0x1a, 0x18}, - {0x3b, 0x09, 0x36}, - {0x34, 0x1d, 0x13}, - {0x02, 0x07, 0x10}, - {0x20, 0x2f, 0x1d}, - {0x0b, 0x03, 0x33}, - {0x1c, 0x16, 0x31}, - {0x05, 0x13, 0x1b}, - {0x29, 0x06, 0x13}, - {0x30, 0x2d, 0x36}, - {0x2a, 0x2d, 0x2c}, - {0x19, 0x34, 0x1c}, - {0x0f, 0x15, 0x12}, - {0x36, 0x15, 0x2c}, - {0x3a, 0x06, 0x1c}, - {0x12, 0x1d, 0x26}, - {0x03, 0x38, 0x1d}, - {0x01, 0x01, 0x2d}, - {0x17, 0x2e, 0x10}, - {0x14, 0x17, 0x1c}, - {0x34, 0x0f, 0x28}, - {0x09, 0x37, 0x1b}, - {0x28, 0x1d, 0x26}, - {0x29, 0x2d, 0x36}, - {0x1e, 0x17, 0x28}, - {0x15, 0x0f, 0x1c}, - {0x20, 0x2d, 0x10}, - {0x27, 0x16, 0x2e}, - {0x14, 0x09, 0x12}, - {0x3b, 0x3d, 0x21}, - {0x25, 0x1a, 0x2c}, - {0x00, 0x22, 0x36}, - {0x0d, 0x30, 0x10}, - {0x17, 0x19, 0x1b}, - {0x00, 0x3b, 0x21}, - {0x2a, 0x28, 0x34}, - {0x2d, 0x0f, 0x16}, - {0x0a, 0x30, 0x28}, - {0x06, 0x00, 0x25}, - {0x31, 0x2e, 0x2a}, - {0x14, 0x33, 0x28}, - {0x36, 0x10, 0x2e}, - {0x05, 0x2e, 0x19}, - {0x19, 0x1a, 0x15}, - {0x2c, 0x14, 0x17}, - {0x37, 0x0f, 0x13}, - {0x32, 0x17, 0x1b}, - {0x39, 0x18, 0x32}, - {0x2e, 0x32, 0x1e}, - {0x24, 0x1d, 0x31}, - {0x12, 0x1d, 0x2b}, - {0x14, 0x0c, 0x27}, - {0x36, 0x2e, 0x32}, - {0x06, 0x0a, 0x1a}, - {0x28, 0x28, 0x20}, - {0x3a, 0x3a, 0x17}, - {0x08, 0x27, 0x36}, - {0x18, 0x1a, 0x10}, - {0x1e, 0x26, 0x1b}, - {0x1f, 0x33, 0x1f}, - {0x21, 0x17, 0x2f}, - {0x01, 0x08, 0x20}, - {0x35, 0x03, 0x19}, - {0x3b, 0x02, 0x20}, - {0x02, 0x2d, 0x23}, - {0x0e, 0x17, 0x32}, - {0x31, 0x29, 0x11}, - {0x22, 0x17, 0x22}, - {0x3a, 0x2c, 0x23}, - {0x34, 0x20, 0x18}, - {0x00, 0x3a, 0x22}, - {0x25, 0x33, 0x21}, - {0x33, 0x04, 0x27}, - {0x04, 0x18, 0x32}, - {0x2c, 0x0c, 0x2f}, - {0x28, 0x14, 0x2c}, - {0x3f, 0x30, 0x2b}, - {0x30, 0x21, 0x1d}, - {0x01, 0x25, 0x32}, - {0x05, 0x23, 0x34}, - {0x24, 0x10, 0x30}, - {0x3d, 0x14, 0x1b}, - {0x3f, 0x38, 0x2f}, - {0x22, 0x1b, 0x32}, - {0x25, 0x07, 0x37}, - {0x0a, 0x0c, 0x1d}, - {0x03, 0x1e, 0x1a}, - {0x0f, 0x3c, 0x12}, - {0x11, 0x18, 0x1d}, - {0x00, 0x35, 0x2f}, - {0x32, 0x18, 0x14}, - {0x23, 0x30, 0x1b}, - {0x11, 0x3d, 0x12}, - {0x1a, 0x16, 0x35}, - {0x28, 0x05, 0x24}, - {0x17, 0x3d, 0x37}, - {0x2e, 0x09, 0x2e}, - {0x18, 0x1d, 0x17}, - {0x20, 0x1f, 0x18}, - {0x23, 0x2c, 0x2f}, - {0x20, 0x3f, 0x16}, - {0x3f, 0x29, 0x2e}, - {0x23, 0x3b, 0x29}, - {0x18, 0x39, 0x13}, - {0x1e, 0x32, 0x35}, - {0x14, 0x1d, 0x2a}, - {0x35, 0x01, 0x1d}, - {0x3e, 0x3b, 0x1e}, - {0x22, 0x1e, 0x16}, - {0x18, 0x22, 0x12}, - {0x3e, 0x29, 0x33}, - {0x2f, 0x14, 0x19}, - {0x3b, 0x07, 0x15}, - {0x06, 0x3d, 0x29}, - {0x35, 0x37, 0x23}, - {0x34, 0x1d, 0x2d}, - {0x18, 0x12, 0x1b}, - {0x0b, 0x13, 0x24}, - {0x13, 0x38, 0x1c}, - {0x1f, 0x0b, 0x1b}, - {0x13, 0x21, 0x1c}, - {0x06, 0x39, 0x32}, - {0x37, 0x3d, 0x26}, - {0x29, 0x26, 0x15}, - {0x3c, 0x33, 0x27}, - {0x00, 0x01, 0x2e}, - {0x15, 0x18, 0x31}, - {0x0d, 0x2c, 0x13}, - {0x27, 0x3b, 0x20}, - {0x2d, 0x01, 0x26}, - {0x23, 0x15, 0x30}, - {0x24, 0x00, 0x17}, - {0x37, 0x3f, 0x33}, - {0x25, 0x24, 0x31}, - {0x06, 0x3b, 0x37}, - {0x03, 0x18, 0x1a}, - {0x2c, 0x34, 0x14}, - {0x1d, 0x36, 0x18}, - {0x3a, 0x04, 0x23}, - {0x12, 0x26, 0x15}, - {0x2b, 0x19, 0x1a}, - {0x29, 0x2c, 0x36}, - {0x01, 0x19, 0x1d}, - {0x2f, 0x06, 0x2b}, - {0x0c, 0x12, 0x26}, - {0x36, 0x32, 0x1d}, - {0x0d, 0x12, 0x28}, - {0x03, 0x28, 0x13}, - {0x29, 0x06, 0x17}, - {0x03, 0x38, 0x21}, - {0x30, 0x2c, 0x10}, - {0x22, 0x00, 0x28}, - {0x24, 0x3b, 0x1c}, - {0x20, 0x3e, 0x13}, - {0x02, 0x0c, 0x19}, - {0x29, 0x2c, 0x1a}, - {0x39, 0x30, 0x22}, - {0x2a, 0x1f, 0x22}, - {0x14, 0x34, 0x2c}, - {0x14, 0x25, 0x1b}, - {0x06, 0x3b, 0x15}, - {0x06, 0x1c, 0x13}, - {0x15, 0x03, 0x18}, - {0x1e, 0x2a, 0x1b}, - {0x17, 0x25, 0x2f}, - {0x1c, 0x29, 0x2e}, - {0x02, 0x32, 0x1e}, - {0x1d, 0x28, 0x35}, - {0x36, 0x03, 0x34}, - {0x16, 0x3d, 0x2a}, - {0x12, 0x0d, 0x13}, - {0x1d, 0x2d, 0x21}, - {0x32, 0x17, 0x2e}, - {0x1a, 0x15, 0x26}, - {0x22, 0x2f, 0x15}, - {0x3c, 0x0e, 0x20}, - {0x2f, 0x27, 0x13}, - {0x04, 0x09, 0x32}, - {0x1e, 0x01, 0x34}, - {0x06, 0x16, 0x1e}, - {0x2e, 0x1b, 0x1c}, - {0x28, 0x13, 0x2a}, - {0x30, 0x34, 0x12}, - {0x12, 0x32, 0x18}, - {0x1d, 0x1d, 0x35}, - {0x07, 0x1c, 0x16}, - {0x2d, 0x3d, 0x35}, - {0x1c, 0x1b, 0x24}, - {0x21, 0x2d, 0x1e}, - {0x10, 0x09, 0x14}, - {0x3d, 0x11, 0x12}, - {0x25, 0x02, 0x26}, - {0x23, 0x02, 0x19}, - {0x19, 0x05, 0x14}, - {0x0b, 0x21, 0x1a}, - {0x09, 0x02, 0x2c}, - {0x18, 0x28, 0x2d}, - {0x1e, 0x10, 0x12}, - {0x2e, 0x18, 0x2e}, - {0x1f, 0x02, 0x2c}, - {0x14, 0x17, 0x24}, - {0x39, 0x08, 0x32}, - {0x16, 0x14, 0x22}, - {0x16, 0x28, 0x21}, - {0x11, 0x10, 0x2c}, - {0x23, 0x36, 0x2b}, - {0x39, 0x21, 0x26}, - {0x0e, 0x06, 0x2d}, - {0x3c, 0x3e, 0x26}, - {0x2a, 0x1b, 0x1f}, - {0x00, 0x3c, 0x33}, - {0x35, 0x3f, 0x14}, - {0x00, 0x0b, 0x10}, - {0x34, 0x3c, 0x17}, - {0x2d, 0x07, 0x1f}, - {0x24, 0x39, 0x27}, - {0x16, 0x00, 0x1d}, - {0x33, 0x2b, 0x1e}, - {0x0f, 0x08, 0x31}, - {0x3a, 0x09, 0x13}, - {0x0c, 0x21, 0x1c}, - {0x2a, 0x17, 0x34}, - {0x29, 0x27, 0x10}, - {0x37, 0x1b, 0x18}, - {0x15, 0x08, 0x2f}, - {0x1f, 0x16, 0x12}, - {0x1f, 0x28, 0x34}, - {0x1c, 0x20, 0x22}, - {0x12, 0x01, 0x12}, - {0x21, 0x31, 0x10}, - {0x22, 0x26, 0x1e}, - {0x01, 0x3d, 0x11}, - {0x1e, 0x27, 0x25}, - {0x3d, 0x30, 0x24}, - {0x1d, 0x11, 0x22}, - {0x36, 0x30, 0x16}, - {0x1f, 0x3e, 0x2a}, - {0x3c, 0x27, 0x1b}, - {0x1f, 0x29, 0x10}, - {0x1e, 0x05, 0x2a}, - {0x0a, 0x10, 0x14}, - {0x1f, 0x00, 0x2e}, - {0x0b, 0x3b, 0x18}, - {0x0a, 0x39, 0x30}, - {0x37, 0x0b, 0x1f}, - {0x1d, 0x0a, 0x29}, - {0x3e, 0x1c, 0x33}, - {0x13, 0x2e, 0x28}, - {0x27, 0x1b, 0x1e}, - {0x1d, 0x02, 0x1c}, - {0x01, 0x25, 0x14}, - {0x3a, 0x10, 0x1c}, - {0x12, 0x05, 0x2a}, - {0x30, 0x20, 0x26}, - {0x2f, 0x2e, 0x2e}, - {0x03, 0x07, 0x24}, - {0x36, 0x04, 0x2b}, - {0x11, 0x25, 0x2d}, - {0x28, 0x0e, 0x2e}, - {0x0f, 0x1d, 0x15}, - {0x1c, 0x28, 0x30}, - {0x1f, 0x23, 0x26}, - {0x36, 0x12, 0x37}, - {0x3a, 0x31, 0x10}, - {0x2c, 0x2c, 0x2f}, - {0x1a, 0x0d, 0x15}, - {0x3f, 0x3c, 0x32}, - {0x35, 0x1c, 0x16}, - {0x33, 0x16, 0x28}, - {0x1d, 0x3f, 0x21}, - {0x2c, 0x3e, 0x2b}, - {0x24, 0x23, 0x2f}, - {0x32, 0x15, 0x2a}, - {0x1b, 0x10, 0x35}, - {0x18, 0x37, 0x10}, - {0x3b, 0x1e, 0x11}, - {0x2b, 0x16, 0x24}, - {0x1d, 0x16, 0x26}, - {0x3c, 0x2d, 0x11}, - {0x15, 0x28, 0x28}, - {0x27, 0x27, 0x27}, - {0x3b, 0x3a, 0x16}, - {0x1a, 0x0c, 0x1a}, - {0x15, 0x08, 0x25}, - {0x0b, 0x10, 0x22}, - {0x1a, 0x3e, 0x17}, - {0x28, 0x1f, 0x1e}, - {0x01, 0x1e, 0x1e}, - {0x1c, 0x2f, 0x10}, - {0x25, 0x0b, 0x34}, - {0x3e, 0x0c, 0x1a}, - {0x1b, 0x10, 0x2a}, - {0x0f, 0x14, 0x17}, - {0x0f, 0x3f, 0x17}, - {0x03, 0x15, 0x1f}, - {0x02, 0x36, 0x17}, - {0x15, 0x1d, 0x18}, - {0x08, 0x36, 0x10}, - {0x14, 0x0d, 0x2b}, - {0x0a, 0x05, 0x1d}, - {0x26, 0x12, 0x1e}, - {0x3e, 0x18, 0x19}, - {0x36, 0x18, 0x37}, - {0x17, 0x39, 0x2e}, - {0x0d, 0x04, 0x19}, - {0x16, 0x22, 0x15}, - {0x3e, 0x26, 0x1f}, - {0x00, 0x06, 0x17}, - {0x33, 0x22, 0x1d}, - {0x2b, 0x39, 0x2b}, - {0x3e, 0x31, 0x1c}, - {0x22, 0x3f, 0x13}, - {0x30, 0x1c, 0x31}, - {0x07, 0x2b, 0x14}, - {0x32, 0x35, 0x1e}, - {0x02, 0x07, 0x20}, - {0x0f, 0x3b, 0x11}, - {0x20, 0x07, 0x12}, - {0x2a, 0x30, 0x1d}, - {0x28, 0x38, 0x36}, - {0x20, 0x01, 0x17}, - {0x15, 0x20, 0x21}, - {0x3a, 0x1b, 0x1e}, - {0x38, 0x12, 0x24}, - {0x03, 0x3e, 0x1f}, - {0x29, 0x1d, 0x13}, - {0x20, 0x27, 0x19}, - {0x12, 0x25, 0x20}, - {0x32, 0x33, 0x2b}, - {0x3f, 0x05, 0x31}, - {0x35, 0x3c, 0x2d}, - {0x2d, 0x02, 0x2e}, - {0x10, 0x2a, 0x16}, - {0x17, 0x08, 0x31}, - {0x17, 0x2e, 0x2b}, - {0x30, 0x1e, 0x15}, - {0x31, 0x15, 0x26}, - {0x08, 0x10, 0x33}, - {0x15, 0x01, 0x27}, - {0x12, 0x07, 0x2f}, - {0x29, 0x27, 0x34}, - {0x3f, 0x08, 0x31}, - {0x1c, 0x20, 0x1a}, - {0x33, 0x0c, 0x13}, - {0x18, 0x31, 0x24}, - {0x37, 0x2d, 0x2e}, - {0x21, 0x18, 0x24}, - {0x3a, 0x27, 0x31}, - {0x35, 0x3e, 0x30}, - {0x3a, 0x14, 0x33}, - {0x0f, 0x1a, 0x2d}, - {0x30, 0x2e, 0x11}, - {0x1a, 0x31, 0x1d}, - {0x17, 0x3c, 0x18}, - {0x33, 0x31, 0x23}, - {0x1d, 0x39, 0x2d}, - {0x10, 0x1d, 0x2f}, - {0x24, 0x15, 0x1c}, - {0x25, 0x01, 0x2b}, - {0x22, 0x16, 0x2e}, - {0x1b, 0x25, 0x35}, - {0x37, 0x10, 0x26}, - {0x39, 0x01, 0x36}, - {0x17, 0x2b, 0x14}, - {0x09, 0x16, 0x17}, - {0x20, 0x28, 0x23}, - {0x26, 0x3a, 0x26}, - {0x27, 0x2a, 0x24}, - {0x36, 0x02, 0x2c}, - {0x29, 0x30, 0x35}, - {0x36, 0x01, 0x1f}, - {0x28, 0x3b, 0x1d}, - {0x23, 0x1e, 0x2d}, - {0x11, 0x1e, 0x2c}, - {0x2f, 0x32, 0x19}, - {0x3f, 0x26, 0x31}, - {0x38, 0x1e, 0x17}, - {0x05, 0x18, 0x2e}, - {0x00, 0x2e, 0x12}, - {0x34, 0x3f, 0x34}, - {0x16, 0x10, 0x29}, - {0x20, 0x3d, 0x36}, - {0x2f, 0x16, 0x25}, - {0x12, 0x17, 0x10}, - {0x21, 0x37, 0x35}, - {0x25, 0x37, 0x2d}, - {0x01, 0x08, 0x27}, - {0x03, 0x1f, 0x29}, - {0x0d, 0x2a, 0x16}, - {0x3a, 0x3f, 0x33}, - {0x2b, 0x19, 0x1d}, - {0x2a, 0x1f, 0x29}, - {0x28, 0x2c, 0x10}, - {0x28, 0x30, 0x10}, - {0x39, 0x14, 0x1b}, - {0x00, 0x18, 0x21}, - {0x28, 0x0c, 0x37}, - {0x11, 0x10, 0x11}, - {0x3c, 0x33, 0x32}, - {0x33, 0x36, 0x1a}, - {0x36, 0x00, 0x1c}, - {0x31, 0x1b, 0x1d}, - {0x38, 0x1d, 0x10}, - {0x3c, 0x39, 0x27}, - {0x3a, 0x3f, 0x14}, - {0x19, 0x12, 0x14}, - {0x0d, 0x1f, 0x18}, - {0x00, 0x25, 0x18}, - {0x28, 0x1c, 0x32}, - {0x27, 0x03, 0x1a}, - {0x26, 0x2d, 0x2a}, - {0x29, 0x28, 0x27}, - {0x0a, 0x2a, 0x18}, - {0x0a, 0x1a, 0x30}, - {0x20, 0x1a, 0x2e}, - {0x06, 0x0b, 0x1d}, - {0x0f, 0x0c, 0x1c}, - {0x35, 0x28, 0x1c}, - {0x3d, 0x16, 0x23}, - {0x21, 0x1c, 0x31}, - {0x14, 0x1c, 0x2e}, - {0x22, 0x32, 0x35}, - {0x09, 0x29, 0x30}, - {0x20, 0x1a, 0x10}, - {0x31, 0x3f, 0x2c}, - {0x0a, 0x3d, 0x37}, - {0x0b, 0x2e, 0x2d}, - {0x1f, 0x22, 0x31}, - {0x06, 0x07, 0x29}, - {0x22, 0x17, 0x2d}, - {0x30, 0x11, 0x18}, - {0x0c, 0x19, 0x15}, - {0x07, 0x0a, 0x34}, - {0x18, 0x29, 0x27}, - {0x33, 0x0c, 0x30}, - {0x03, 0x1a, 0x37}, - {0x06, 0x01, 0x2d}, - {0x0f, 0x3b, 0x2b}, - {0x11, 0x1f, 0x37}, - {0x2b, 0x21, 0x36}, - {0x3f, 0x23, 0x17}, - {0x17, 0x07, 0x2b}, - {0x2b, 0x0e, 0x30}, - {0x11, 0x39, 0x1d}, - {0x29, 0x03, 0x33}, - {0x30, 0x03, 0x2f}, - {0x3c, 0x20, 0x26}, - {0x03, 0x22, 0x14}, - {0x3a, 0x28, 0x35}, - {0x01, 0x28, 0x2b}, - {0x3e, 0x15, 0x18}, - {0x30, 0x07, 0x17}, - {0x3b, 0x2c, 0x30}, - {0x15, 0x07, 0x2c}, - {0x17, 0x27, 0x1d}, - {0x3f, 0x1e, 0x33}, - {0x0d, 0x17, 0x10}, - {0x15, 0x0e, 0x30}, - {0x09, 0x05, 0x30}, - {0x2d, 0x20, 0x15}, - {0x3c, 0x3d, 0x30}, - {0x0c, 0x17, 0x1c}, - {0x1a, 0x0d, 0x25}, - {0x2b, 0x2b, 0x2a}, - {0x02, 0x16, 0x2d}, - {0x17, 0x31, 0x17}, - {0x00, 0x08, 0x13}, - {0x37, 0x35, 0x21}, - {0x1e, 0x1c, 0x1f}, - {0x2b, 0x32, 0x1c}, - {0x10, 0x2a, 0x16}, - {0x3a, 0x33, 0x31}, - {0x17, 0x2b, 0x2a}, - {0x0c, 0x3d, 0x11}, - {0x28, 0x0a, 0x30}, - {0x23, 0x0a, 0x26}, - {0x0a, 0x14, 0x24}, - {0x0b, 0x0f, 0x30}, - {0x1b, 0x1e, 0x29}, - {0x02, 0x35, 0x28}, - {0x3b, 0x02, 0x14}, - {0x00, 0x0f, 0x35}, - {0x1c, 0x3c, 0x2e}, - {0x28, 0x38, 0x19}, - {0x1b, 0x11, 0x12}, - {0x09, 0x16, 0x10}, - {0x2e, 0x0d, 0x20}, - {0x3d, 0x04, 0x32}, - {0x16, 0x2c, 0x25}, - {0x02, 0x3d, 0x18}, - {0x0b, 0x13, 0x1c}, - {0x22, 0x2a, 0x1c}, - {0x20, 0x27, 0x22}, - {0x05, 0x26, 0x22}, - {0x12, 0x1d, 0x2c}, - {0x08, 0x05, 0x2e}, - {0x3f, 0x1c, 0x17}, - {0x24, 0x0d, 0x33}, - {0x36, 0x08, 0x24}, - {0x10, 0x22, 0x29}, - {0x1c, 0x0a, 0x11}, - {0x25, 0x0f, 0x10}, - {0x24, 0x38, 0x2f}, - {0x25, 0x32, 0x1e}, - {0x06, 0x2a, 0x29}, - {0x3e, 0x3a, 0x28}, - {0x34, 0x17, 0x33}, - {0x18, 0x33, 0x17}, - {0x07, 0x14, 0x1f}, - {0x11, 0x17, 0x20}, - {0x13, 0x0e, 0x14}, - {0x3b, 0x1c, 0x12}, - {0x2a, 0x13, 0x37}, - {0x2a, 0x35, 0x32}, - {0x30, 0x02, 0x25}, - {0x00, 0x07, 0x1f}, - {0x0c, 0x04, 0x2c}, - {0x37, 0x37, 0x30}, - {0x25, 0x12, 0x25}, - {0x12, 0x22, 0x21}, - {0x22, 0x35, 0x33}, - {0x07, 0x20, 0x2d}, - {0x27, 0x0e, 0x30}, - {0x34, 0x19, 0x1a}, - {0x0a, 0x3c, 0x25}, - {0x07, 0x1d, 0x2b}, - {0x31, 0x3a, 0x12}, - {0x1a, 0x3d, 0x37}, - {0x16, 0x15, 0x16}, - {0x39, 0x13, 0x15}, - {0x2d, 0x03, 0x2e}, - {0x06, 0x39, 0x2c}, - {0x16, 0x00, 0x13}, - {0x35, 0x2a, 0x35}, - {0x24, 0x01, 0x18}, - {0x24, 0x37, 0x28}, - {0x25, 0x1b, 0x34}, - {0x25, 0x19, 0x17}, - {0x27, 0x2f, 0x1b}, - {0x27, 0x0d, 0x10}, - {0x36, 0x3c, 0x30}, - {0x3c, 0x33, 0x23}, - {0x3e, 0x27, 0x1e}, - {0x25, 0x2d, 0x29}, - {0x1f, 0x12, 0x21}, - {0x37, 0x32, 0x1f}, - {0x11, 0x21, 0x35}, - {0x30, 0x0c, 0x19}, - {0x25, 0x3d, 0x26}, - {0x17, 0x02, 0x1d}, - {0x14, 0x2e, 0x11}, - {0x38, 0x13, 0x30}, - {0x0a, 0x2b, 0x20}, - {0x1e, 0x10, 0x15}, - {0x37, 0x30, 0x2e}, - {0x1e, 0x04, 0x2c}, - {0x14, 0x34, 0x19}, - {0x08, 0x14, 0x18}, - {0x0e, 0x1c, 0x30}, - {0x1a, 0x2e, 0x1b}, - {0x1f, 0x39, 0x31}, - {0x0c, 0x1c, 0x28}, - {0x3e, 0x33, 0x23}, - {0x0f, 0x13, 0x16}, - {0x25, 0x39, 0x2f}, - {0x14, 0x1b, 0x1a}, - {0x28, 0x3e, 0x21}, - {0x2d, 0x19, 0x11}, - {0x0c, 0x34, 0x32}, - {0x39, 0x31, 0x19}, - {0x1a, 0x08, 0x34}, - {0x09, 0x2f, 0x11}, - {0x30, 0x04, 0x1c}, - {0x02, 0x3b, 0x1b}, - {0x33, 0x21, 0x33}, - {0x38, 0x02, 0x1a}, - {0x31, 0x38, 0x32}, - {0x1f, 0x1d, 0x16}, - {0x17, 0x10, 0x1b}, - {0x32, 0x20, 0x17}, - {0x00, 0x33, 0x12}, - {0x21, 0x0f, 0x27}, - {0x14, 0x19, 0x27}, - {0x24, 0x2c, 0x37}, - {0x25, 0x05, 0x2f}, - {0x3d, 0x25, 0x11}, - {0x12, 0x30, 0x1a}, - {0x16, 0x03, 0x1a}, - {0x14, 0x09, 0x13}, - {0x02, 0x23, 0x22}, - {0x01, 0x3c, 0x10}, - {0x3f, 0x2d, 0x23}, - {0x31, 0x3f, 0x23}, - {0x17, 0x00, 0x33}, - {0x3f, 0x0f, 0x2f}, - {0x26, 0x07, 0x15}, - {0x21, 0x2b, 0x2a}, - {0x38, 0x39, 0x1e}, - {0x09, 0x25, 0x2b}, - {0x3b, 0x30, 0x25}, - {0x12, 0x2d, 0x13}, - {0x32, 0x19, 0x28}, - {0x24, 0x1c, 0x2d}, - {0x35, 0x32, 0x26}, - {0x0d, 0x23, 0x1e}, - {0x1d, 0x07, 0x21}, - {0x0b, 0x34, 0x17}, - {0x2d, 0x32, 0x32}, - {0x3a, 0x3c, 0x35}, - {0x1a, 0x10, 0x33}, - {0x1a, 0x07, 0x22}, - {0x3b, 0x1b, 0x2a}, - {0x33, 0x1f, 0x26}, - {0x0e, 0x35, 0x1a}, - {0x3b, 0x0a, 0x1c}, - {0x11, 0x07, 0x11}, - {0x0d, 0x3c, 0x2d}, - {0x1e, 0x37, 0x29}, - {0x11, 0x05, 0x12}, - {0x15, 0x2f, 0x1c}, - {0x24, 0x31, 0x16}, - {0x2b, 0x21, 0x1b}, - {0x23, 0x10, 0x31}, - {0x02, 0x14, 0x29}, - {0x26, 0x20, 0x16}, - {0x10, 0x17, 0x10}, - {0x0b, 0x0f, 0x33}, - {0x01, 0x2e, 0x14}, - {0x21, 0x0e, 0x37}, - {0x1a, 0x1d, 0x2f}, - {0x1e, 0x30, 0x24}, - {0x04, 0x14, 0x2d}, - {0x11, 0x00, 0x30}, - {0x08, 0x2a, 0x1d}, - {0x1d, 0x22, 0x21}, - {0x24, 0x2c, 0x37}, - {0x24, 0x11, 0x12}, - {0x04, 0x2e, 0x28}, - {0x1d, 0x18, 0x23}, - {0x3c, 0x16, 0x16}, - {0x10, 0x17, 0x31}, - {0x20, 0x21, 0x12}, - {0x33, 0x3e, 0x34}, - {0x06, 0x13, 0x13}, - {0x17, 0x38, 0x2b}, - {0x14, 0x0d, 0x15}, - {0x24, 0x3b, 0x2b}, - {0x34, 0x3b, 0x1e}, - {0x18, 0x07, 0x34}, - {0x37, 0x1d, 0x1f}, - {0x0b, 0x29, 0x20}, - {0x12, 0x1e, 0x1d}, - {0x1a, 0x24, 0x24}, - {0x3d, 0x28, 0x24}, - {0x0b, 0x12, 0x33}, - {0x1b, 0x3a, 0x22}, - {0x14, 0x13, 0x2a}, - {0x31, 0x38, 0x15}, - {0x37, 0x2b, 0x2e}, - {0x19, 0x1e, 0x2c}, - {0x3f, 0x1b, 0x2a}, - {0x33, 0x1f, 0x33}, - {0x3f, 0x15, 0x29}, - {0x01, 0x1e, 0x18}, - {0x1f, 0x22, 0x19}, - {0x33, 0x3c, 0x34}, - {0x1e, 0x12, 0x22}, - {0x0d, 0x37, 0x2c}, - {0x0f, 0x08, 0x31}, - {0x2e, 0x09, 0x36}, - {0x01, 0x05, 0x1e}, - {0x1c, 0x04, 0x1e}, - {0x0c, 0x01, 0x1c}, - {0x29, 0x28, 0x2f}, - {0x39, 0x2d, 0x14}, - {0x09, 0x22, 0x36}, - {0x04, 0x37, 0x37}, - {0x2d, 0x2f, 0x35}, - {0x24, 0x23, 0x1b}, - {0x08, 0x20, 0x32}, - {0x20, 0x1f, 0x34}, - {0x02, 0x31, 0x19}, - {0x18, 0x13, 0x36}, - {0x06, 0x2b, 0x1e}, - {0x0e, 0x1b, 0x10}, - {0x2f, 0x0e, 0x1c}, - {0x11, 0x38, 0x13}, - {0x01, 0x37, 0x19}, - {0x14, 0x11, 0x26}, - {0x31, 0x3d, 0x33}, - {0x1d, 0x1b, 0x34}, - {0x25, 0x31, 0x2f}, - {0x11, 0x0a, 0x2f}, - {0x39, 0x17, 0x1b}, - {0x05, 0x0e, 0x13}, - {0x29, 0x25, 0x22}, - {0x15, 0x0d, 0x20}, - {0x2b, 0x27, 0x21}, - {0x3e, 0x24, 0x27}, - {0x2a, 0x2b, 0x16}, - {0x24, 0x3d, 0x15}, - {0x15, 0x30, 0x31}, - {0x0f, 0x33, 0x24}, - {0x06, 0x16, 0x13}, - {0x06, 0x31, 0x10}, - {0x2e, 0x3f, 0x10}, - {0x05, 0x0d, 0x2f}, - {0x3c, 0x1f, 0x19}, - {0x12, 0x13, 0x24}, - {0x0f, 0x33, 0x36}, - {0x15, 0x3b, 0x33}, - {0x03, 0x0f, 0x2a}, - {0x3b, 0x3c, 0x2c}, - {0x36, 0x09, 0x29}, - {0x11, 0x3b, 0x27}, - {0x28, 0x2b, 0x31}, - {0x1a, 0x0e, 0x2f}, - {0x39, 0x2c, 0x31}, - {0x0e, 0x3c, 0x35}, - {0x2c, 0x24, 0x33}, - {0x3d, 0x11, 0x2b}, - {0x07, 0x3c, 0x37}, - {0x14, 0x18, 0x13}, - {0x1d, 0x3f, 0x2e}, - {0x30, 0x12, 0x25}, - {0x26, 0x1d, 0x11}, - {0x07, 0x11, 0x1e}, - {0x34, 0x01, 0x11}, - {0x0b, 0x39, 0x21}, - {0x29, 0x02, 0x29}, - {0x15, 0x10, 0x1a}, - {0x30, 0x1f, 0x35}, - {0x3c, 0x2b, 0x2a}, - {0x30, 0x3b, 0x36}, - {0x20, 0x1a, 0x23}, - {0x32, 0x24, 0x2b}, - {0x15, 0x20, 0x1c}, - {0x25, 0x3d, 0x36}, - {0x2d, 0x14, 0x31}, - {0x18, 0x23, 0x17}, - {0x18, 0x05, 0x13}, - {0x34, 0x30, 0x37}, - {0x0e, 0x39, 0x23}, - {0x1d, 0x1f, 0x17}, - {0x01, 0x15, 0x2f}, - {0x0b, 0x3e, 0x1b}, - {0x0d, 0x19, 0x2e}, - {0x31, 0x38, 0x1c}, - {0x15, 0x34, 0x15}, - {0x13, 0x19, 0x29}, - {0x19, 0x14, 0x27}, - {0x15, 0x18, 0x23}, - {0x29, 0x0c, 0x27}, - {0x2d, 0x0e, 0x17}, - {0x34, 0x18, 0x10}, - {0x3b, 0x1e, 0x29}, - {0x34, 0x2c, 0x22}, - {0x31, 0x08, 0x13}, - {0x1d, 0x18, 0x1a}, - {0x1c, 0x0b, 0x2a}, - {0x19, 0x1e, 0x1a}, - {0x23, 0x27, 0x17}, - {0x3b, 0x0e, 0x37}, - {0x19, 0x2b, 0x16}, - {0x2f, 0x08, 0x21}, - {0x37, 0x02, 0x20}, - {0x0b, 0x32, 0x30}, - {0x16, 0x05, 0x30}, - {0x13, 0x05, 0x1a}, - {0x07, 0x39, 0x19}, - {0x0c, 0x3b, 0x2a}, - {0x15, 0x05, 0x30}, - {0x30, 0x05, 0x19}, - {0x13, 0x00, 0x12}, - {0x27, 0x16, 0x2a}, - {0x0f, 0x28, 0x27}, - {0x0c, 0x23, 0x2f}, - {0x39, 0x28, 0x2a}, - {0x24, 0x25, 0x1f}, - {0x18, 0x29, 0x14}, - {0x16, 0x05, 0x1a}, - {0x35, 0x2f, 0x26}, - {0x0a, 0x3a, 0x29}, - {0x34, 0x2c, 0x36}, - {0x2e, 0x3a, 0x15}, - {0x1a, 0x0a, 0x2d}, - {0x16, 0x14, 0x2e}, - {0x35, 0x28, 0x2a}, - {0x35, 0x0f, 0x11}, - {0x11, 0x32, 0x19}, - {0x20, 0x1a, 0x28}, - {0x17, 0x1a, 0x28}, - {0x16, 0x33, 0x25}, - {0x13, 0x2c, 0x29}, - {0x09, 0x16, 0x33}, - {0x1d, 0x27, 0x26}, - {0x15, 0x0c, 0x2f}, - {0x22, 0x1c, 0x19}, - {0x29, 0x33, 0x10}, - {0x2d, 0x11, 0x1b}, - {0x16, 0x19, 0x2e}, - {0x0d, 0x0c, 0x28}, - {0x37, 0x3a, 0x34}, - {0x2a, 0x1d, 0x37}, - {0x30, 0x0a, 0x36}, - {0x24, 0x39, 0x1b}, - {0x39, 0x0a, 0x32}, - {0x11, 0x03, 0x2d}, - {0x32, 0x1d, 0x30}, - {0x38, 0x1e, 0x27}, - {0x2e, 0x17, 0x18}, - {0x16, 0x17, 0x2a}, - {0x36, 0x3b, 0x31}, - {0x17, 0x04, 0x19}, - {0x3a, 0x25, 0x2d}, - {0x00, 0x36, 0x27}, - {0x25, 0x12, 0x33}, - {0x06, 0x0a, 0x14}, - {0x11, 0x05, 0x2f}, - {0x03, 0x35, 0x2f}, - {0x0b, 0x34, 0x29}, - {0x00, 0x31, 0x13}, - {0x27, 0x0f, 0x1c}, - {0x1d, 0x06, 0x2d}, - {0x1c, 0x30, 0x27}, - {0x2f, 0x2a, 0x27}, - {0x16, 0x20, 0x31}, - {0x33, 0x2b, 0x2b}, - {0x05, 0x30, 0x36}, - {0x29, 0x23, 0x35}, - {0x10, 0x16, 0x2f}, - {0x2d, 0x20, 0x29}, - {0x37, 0x13, 0x24}, - {0x2d, 0x0e, 0x25}, - {0x08, 0x0a, 0x18}, - {0x0f, 0x03, 0x1b}, - {0x31, 0x0c, 0x37}, - {0x1e, 0x34, 0x31}, - {0x1b, 0x0e, 0x25}, - {0x1a, 0x07, 0x34}, - {0x0d, 0x3c, 0x33}, - {0x00, 0x3a, 0x36}, - {0x04, 0x27, 0x12}, - {0x23, 0x18, 0x24}, - {0x0d, 0x0b, 0x18}, - {0x31, 0x32, 0x37}, - {0x00, 0x0d, 0x21}, - {0x32, 0x10, 0x12}, - {0x26, 0x0d, 0x19}, - {0x29, 0x24, 0x2b}, - {0x3d, 0x21, 0x1f}, - {0x1e, 0x1b, 0x28}, - {0x0d, 0x12, 0x28}, - {0x35, 0x1e, 0x23}, - {0x0a, 0x2e, 0x22}, - {0x27, 0x27, 0x35}, - {0x01, 0x0e, 0x20}, - {0x31, 0x39, 0x29}, - {0x3b, 0x24, 0x36}, - {0x14, 0x10, 0x33}, - {0x18, 0x2c, 0x26}, - {0x04, 0x2d, 0x15}, - {0x1a, 0x11, 0x37}, - {0x0f, 0x0b, 0x14}, - {0x0e, 0x2c, 0x2c}, - {0x21, 0x17, 0x2c}, - {0x16, 0x21, 0x35}, - {0x3e, 0x10, 0x10}, - {0x0a, 0x05, 0x1e}, - {0x3b, 0x09, 0x13}, - {0x26, 0x18, 0x1e}, - {0x23, 0x0c, 0x1a}, - {0x33, 0x37, 0x1f}, - {0x09, 0x12, 0x35}, - {0x3d, 0x0d, 0x15}, - {0x36, 0x06, 0x24}, - {0x33, 0x30, 0x29}, - {0x3b, 0x0f, 0x28}, - {0x34, 0x2a, 0x2c}, - {0x02, 0x12, 0x35}, - {0x09, 0x22, 0x31}, - {0x3b, 0x31, 0x1c}, - {0x33, 0x22, 0x27}, - {0x3d, 0x34, 0x15}, - {0x14, 0x22, 0x28}, - {0x28, 0x10, 0x1e}, - {0x21, 0x31, 0x10}, - {0x2d, 0x16, 0x21}, - {0x1e, 0x05, 0x33}, - {0x0f, 0x30, 0x31}, - {0x0e, 0x1a, 0x35}, - {0x38, 0x2e, 0x28}, - {0x26, 0x37, 0x1e}, - {0x2b, 0x13, 0x33}, - {0x1f, 0x1e, 0x37}, - {0x0a, 0x28, 0x24}, - {0x32, 0x1c, 0x1a}, - {0x1f, 0x3f, 0x19}, - {0x39, 0x39, 0x29}, - {0x2c, 0x1b, 0x14}, - {0x15, 0x2a, 0x17}, - {0x32, 0x0f, 0x21}, - {0x30, 0x21, 0x18}, - {0x23, 0x2a, 0x27}, - {0x3d, 0x07, 0x10}, - {0x0b, 0x3f, 0x2f}, - {0x31, 0x02, 0x2e}, - {0x08, 0x39, 0x2f}, - {0x3f, 0x20, 0x18}, - {0x2d, 0x34, 0x11}, - {0x2e, 0x34, 0x10}, - {0x26, 0x12, 0x23}, - {0x25, 0x0a, 0x37}, - {0x34, 0x09, 0x25}, - {0x0a, 0x3e, 0x16}, - {0x1a, 0x17, 0x11}, - {0x38, 0x1c, 0x20}, - {0x11, 0x21, 0x26}, - {0x05, 0x0f, 0x18}, - {0x26, 0x2b, 0x32}, - {0x0a, 0x0c, 0x16}, - {0x03, 0x29, 0x1d}, - {0x29, 0x3b, 0x23}, - {0x16, 0x1b, 0x29}, - {0x07, 0x09, 0x17}, - {0x17, 0x2c, 0x1c}, - {0x35, 0x33, 0x30}, - {0x17, 0x12, 0x1e}, - {0x3d, 0x1a, 0x2b}, - {0x21, 0x1d, 0x10}, - {0x0a, 0x08, 0x17}, - {0x14, 0x3c, 0x36}, - {0x28, 0x36, 0x36}, - {0x3b, 0x20, 0x1b}, - {0x13, 0x22, 0x1d}, - {0x13, 0x3a, 0x15}, - {0x02, 0x23, 0x2c}, - {0x3e, 0x19, 0x14}, - {0x39, 0x3c, 0x1a}, - {0x10, 0x08, 0x1e}, - {0x0a, 0x13, 0x29}, - {0x3f, 0x38, 0x2c}, - {0x07, 0x23, 0x1f}, - {0x19, 0x2a, 0x24}, - {0x14, 0x3c, 0x1f}, - {0x0d, 0x04, 0x37}, - {0x1a, 0x2f, 0x28}, - {0x2a, 0x1d, 0x1e}, - {0x11, 0x37, 0x29}, - {0x28, 0x27, 0x12}, - {0x0d, 0x00, 0x26}, - {0x0a, 0x3c, 0x26}, - {0x1f, 0x1c, 0x33}, - {0x04, 0x3a, 0x2c}, - {0x24, 0x3d, 0x2b}, - {0x26, 0x31, 0x2f}, - {0x13, 0x1c, 0x21}, - {0x3e, 0x12, 0x23}, - {0x36, 0x0a, 0x1a}, - {0x2d, 0x1e, 0x19}, - {0x05, 0x1f, 0x1b}, - {0x1e, 0x0a, 0x1f}, - {0x20, 0x08, 0x24}, - {0x2c, 0x0c, 0x33}, - {0x1d, 0x1f, 0x11}, - {0x0e, 0x12, 0x10}, - {0x27, 0x12, 0x19}, - {0x2a, 0x13, 0x31}, - {0x1c, 0x04, 0x30}, - {0x1a, 0x38, 0x1f}, - {0x2c, 0x35, 0x25}, - {0x07, 0x0b, 0x33}, - {0x2d, 0x02, 0x1a}, - {0x2a, 0x35, 0x35}, - {0x16, 0x2f, 0x14}, - {0x11, 0x31, 0x33}, - {0x2c, 0x31, 0x1e}, - {0x3c, 0x3a, 0x27}, - {0x3c, 0x2b, 0x12}, - {0x27, 0x1d, 0x12}, - {0x36, 0x2c, 0x2b}, - {0x25, 0x3b, 0x35}, - {0x12, 0x3d, 0x27}, - {0x13, 0x23, 0x19}, - {0x33, 0x2c, 0x26}, - {0x09, 0x3c, 0x12}, - {0x15, 0x1a, 0x23}, - {0x21, 0x07, 0x1a}, - {0x22, 0x25, 0x20}, - {0x19, 0x1b, 0x2c}, - {0x3a, 0x19, 0x35}, - {0x05, 0x26, 0x1d}, - {0x23, 0x22, 0x25}, - {0x0e, 0x1e, 0x11}, - {0x13, 0x30, 0x12}, - {0x2c, 0x22, 0x25}, - {0x0a, 0x1d, 0x18}, - {0x23, 0x3e, 0x1d}, - {0x02, 0x28, 0x25}, - {0x21, 0x0e, 0x20}, - {0x21, 0x22, 0x37}, - {0x18, 0x33, 0x27}, - {0x23, 0x23, 0x31}, - {0x24, 0x1a, 0x1a}, - {0x3e, 0x25, 0x24}, - {0x24, 0x01, 0x18}, - {0x34, 0x10, 0x22}, - {0x07, 0x00, 0x37}, - {0x06, 0x20, 0x20}, - {0x3a, 0x02, 0x2b}, - {0x07, 0x2c, 0x2c}, - {0x09, 0x2f, 0x2a}, - {0x01, 0x32, 0x2c}, - {0x00, 0x35, 0x13}, - {0x2b, 0x3c, 0x1f}, - {0x36, 0x37, 0x1e}, - {0x20, 0x35, 0x1d}, - {0x0c, 0x07, 0x33}, - {0x16, 0x08, 0x12}, - {0x3f, 0x36, 0x11}, - {0x0b, 0x1f, 0x2d}, - {0x21, 0x20, 0x33}, - {0x17, 0x1a, 0x2e}, - {0x16, 0x01, 0x2f}, - {0x2f, 0x1c, 0x34}, - {0x29, 0x31, 0x2e}, - {0x3b, 0x38, 0x31}, - {0x0d, 0x16, 0x12}, - {0x07, 0x29, 0x24}, - {0x33, 0x3c, 0x34}, - {0x3e, 0x1e, 0x18}, - {0x30, 0x02, 0x34}, - {0x2a, 0x34, 0x1b}, - {0x2e, 0x23, 0x18}, - {0x34, 0x00, 0x1f}, - {0x20, 0x0e, 0x28}, - {0x15, 0x33, 0x37}, - {0x27, 0x35, 0x23}, - {0x37, 0x3e, 0x11}, - {0x32, 0x2e, 0x36}, - {0x3a, 0x02, 0x2b}, - {0x00, 0x36, 0x1d}, - {0x13, 0x29, 0x16}, - {0x08, 0x2b, 0x37}, - {0x08, 0x02, 0x27}, - {0x32, 0x2d, 0x34}, - {0x30, 0x36, 0x29}, - {0x2e, 0x10, 0x12}, - {0x3c, 0x2e, 0x2a}, - {0x04, 0x33, 0x30}, - {0x3f, 0x01, 0x22}, - {0x37, 0x14, 0x1d}, - {0x27, 0x00, 0x2f}, - {0x0c, 0x39, 0x26}, - {0x27, 0x04, 0x21}, - {0x19, 0x08, 0x1d}, - {0x01, 0x04, 0x1e}, - {0x27, 0x1b, 0x2b}, - {0x31, 0x17, 0x1f}, - {0x07, 0x01, 0x2d}, - {0x2e, 0x3b, 0x1f}, - {0x34, 0x24, 0x31}, - {0x32, 0x2b, 0x24}, - {0x0e, 0x07, 0x1e}, - {0x0f, 0x33, 0x10}, - {0x16, 0x21, 0x32}, - {0x39, 0x02, 0x1a}, - {0x33, 0x3d, 0x22}, - {0x0c, 0x25, 0x1a}, - {0x29, 0x29, 0x28}, - {0x3a, 0x32, 0x26}, - {0x0b, 0x13, 0x22}, - {0x1f, 0x0f, 0x1c}, - {0x04, 0x2c, 0x20}, - {0x39, 0x1a, 0x1b}, - {0x1a, 0x2a, 0x1f}, - {0x24, 0x13, 0x1a}, - {0x31, 0x3b, 0x33}, - {0x39, 0x23, 0x28}, - {0x31, 0x07, 0x31}, - {0x1f, 0x10, 0x20}, - {0x29, 0x17, 0x32}, - {0x26, 0x3b, 0x2d}, - {0x02, 0x3c, 0x1c}, - {0x0e, 0x00, 0x20}, - {0x14, 0x3e, 0x37}, - {0x01, 0x0f, 0x2d}, - {0x06, 0x12, 0x27}, - {0x30, 0x13, 0x19}, - {0x00, 0x33, 0x2a}, - {0x0c, 0x07, 0x27}, - {0x11, 0x3a, 0x1c}, - {0x15, 0x0a, 0x13}, - {0x1f, 0x0d, 0x2a}, - {0x37, 0x07, 0x2a}, - {0x34, 0x35, 0x34}, - {0x28, 0x16, 0x27}, - {0x06, 0x02, 0x36}, - {0x09, 0x23, 0x30}, - {0x14, 0x02, 0x28}, - {0x39, 0x32, 0x34}, - {0x24, 0x35, 0x12}, - {0x12, 0x22, 0x26}, - {0x09, 0x07, 0x33}, - {0x0f, 0x3e, 0x1e}, - {0x00, 0x3c, 0x33}, - {0x10, 0x37, 0x14}, - {0x3a, 0x03, 0x25}, - {0x2d, 0x1e, 0x24}, - {0x36, 0x36, 0x26}, - {0x1f, 0x3c, 0x1a}, - {0x37, 0x33, 0x25}, - {0x23, 0x13, 0x1f}, - {0x33, 0x0d, 0x13}, - {0x25, 0x30, 0x1e}, - {0x17, 0x03, 0x18}, - {0x18, 0x18, 0x14}, - {0x30, 0x07, 0x22}, - {0x3e, 0x33, 0x21}, - {0x14, 0x37, 0x16}, - {0x16, 0x00, 0x12}, - {0x2c, 0x12, 0x2f}, - {0x25, 0x3f, 0x1e}, - {0x24, 0x19, 0x16}, - {0x16, 0x0f, 0x35}, - {0x2d, 0x10, 0x11}, - {0x24, 0x2a, 0x28}, - {0x19, 0x25, 0x2e}, - {0x0c, 0x16, 0x1f}, - {0x38, 0x21, 0x36}, - {0x3d, 0x1a, 0x2f}, - {0x3b, 0x32, 0x12}, - {0x36, 0x13, 0x29}, - {0x0e, 0x30, 0x31}, - {0x19, 0x07, 0x2f}, - {0x25, 0x23, 0x28}, - {0x20, 0x08, 0x29}, - {0x2a, 0x00, 0x30}, - {0x30, 0x38, 0x23}, - {0x1e, 0x0f, 0x1f}, - {0x3b, 0x1b, 0x30}, - {0x3a, 0x37, 0x2f}, - {0x39, 0x37, 0x35}, - {0x39, 0x2d, 0x2f}, - {0x1f, 0x2e, 0x1e}, - {0x1a, 0x2b, 0x1e}, - {0x14, 0x17, 0x20}, - {0x2f, 0x03, 0x11}, - {0x1d, 0x00, 0x30}, - {0x17, 0x2b, 0x1d}, - {0x35, 0x28, 0x25}, - {0x3b, 0x0f, 0x11}, - {0x09, 0x04, 0x2e}, - {0x23, 0x11, 0x1e}, - {0x13, 0x37, 0x1e}, - {0x37, 0x37, 0x1e}, - {0x07, 0x01, 0x32}, - {0x14, 0x06, 0x32}, - {0x11, 0x0c, 0x2e}, - {0x36, 0x2e, 0x24}, - {0x15, 0x2a, 0x1c}, - {0x22, 0x15, 0x34}, - {0x2c, 0x1e, 0x35}, - {0x22, 0x27, 0x33}, - {0x19, 0x3f, 0x2d}, - {0x21, 0x33, 0x15}, - {0x26, 0x1a, 0x11}, - {0x16, 0x3e, 0x12}, - {0x2b, 0x24, 0x15}, - {0x3c, 0x0f, 0x2d}, - {0x31, 0x15, 0x36}, - {0x3f, 0x24, 0x1d}, - {0x25, 0x01, 0x37}, - {0x33, 0x16, 0x1a}, - {0x1f, 0x0e, 0x10}, - {0x2f, 0x0b, 0x12}, - {0x2a, 0x1a, 0x25}, - {0x17, 0x0a, 0x35}, - {0x09, 0x28, 0x35}, - {0x02, 0x13, 0x36}, - {0x34, 0x2f, 0x17}, - {0x03, 0x04, 0x31}, - {0x3e, 0x26, 0x11}, - {0x35, 0x33, 0x31}, - {0x22, 0x17, 0x23}, - {0x1d, 0x05, 0x2b}, - {0x2e, 0x27, 0x20}, - {0x03, 0x2b, 0x1d}, - {0x01, 0x19, 0x1e}, - {0x0e, 0x05, 0x18}, - {0x16, 0x25, 0x17}, - {0x02, 0x28, 0x18}, - {0x19, 0x0b, 0x24}, - {0x3e, 0x35, 0x16}, - {0x2e, 0x29, 0x25}, - {0x3e, 0x38, 0x1e}, - {0x3a, 0x2f, 0x12}, - {0x14, 0x17, 0x2d}, - {0x11, 0x12, 0x30}, - {0x15, 0x31, 0x18}, - {0x08, 0x0b, 0x29}, - {0x2d, 0x00, 0x33}, - {0x2c, 0x06, 0x1a}, - {0x14, 0x1c, 0x2e}, - {0x04, 0x08, 0x12}, - {0x1b, 0x2b, 0x2d}, - {0x2a, 0x37, 0x33}, - {0x10, 0x27, 0x2c}, - {0x1d, 0x0e, 0x34}, - {0x20, 0x02, 0x12}, - {0x1e, 0x1a, 0x2e}, - {0x07, 0x0b, 0x10}, - {0x36, 0x1e, 0x33}, - {0x2b, 0x28, 0x1b}, - {0x31, 0x25, 0x1f}, - {0x38, 0x3a, 0x2f}, - {0x39, 0x30, 0x2f}, - {0x12, 0x09, 0x14}, - {0x0e, 0x08, 0x19}, - {0x00, 0x0d, 0x2c}, - {0x1b, 0x0e, 0x34}, - {0x11, 0x25, 0x15}, - {0x0c, 0x2d, 0x26}, - {0x36, 0x2c, 0x16}, - {0x31, 0x31, 0x2c}, - {0x03, 0x1a, 0x16}, - {0x1c, 0x32, 0x14}, - {0x0a, 0x3e, 0x36}, - {0x33, 0x1b, 0x27}, - {0x1f, 0x32, 0x18}, - {0x33, 0x26, 0x33}, - {0x1a, 0x13, 0x1a}, - {0x0f, 0x34, 0x1c}, - {0x35, 0x2c, 0x2f}, - {0x38, 0x03, 0x18}, - {0x15, 0x0f, 0x27}, - {0x31, 0x29, 0x20}, - {0x28, 0x0e, 0x28}, - {0x31, 0x2c, 0x2e}, - {0x15, 0x19, 0x1b}, - {0x10, 0x03, 0x2f}, - {0x2e, 0x2a, 0x32}, - {0x2a, 0x27, 0x1b}, - {0x36, 0x04, 0x1e}, - {0x3b, 0x04, 0x21}, - {0x07, 0x2f, 0x19}, - {0x27, 0x1d, 0x1d}, - {0x3c, 0x3d, 0x2e}, - {0x25, 0x08, 0x32}, - {0x3b, 0x34, 0x2a}, - {0x0c, 0x10, 0x13}, - {0x25, 0x35, 0x1a}, - {0x2f, 0x19, 0x28}, - {0x17, 0x00, 0x2b}, - {0x0a, 0x1c, 0x17}, - {0x0a, 0x11, 0x1b}, - {0x35, 0x13, 0x37}, - {0x29, 0x1c, 0x28}, - {0x0c, 0x31, 0x35}, - {0x3c, 0x10, 0x1a}, - {0x1b, 0x3a, 0x2d}, - {0x3a, 0x1c, 0x18}, - {0x22, 0x10, 0x2d}, - {0x1c, 0x3c, 0x12}, - {0x17, 0x18, 0x2a}, - {0x0b, 0x2b, 0x2f}, - {0x2d, 0x04, 0x2e}, - {0x3c, 0x13, 0x23}, - {0x01, 0x1c, 0x2e}, - {0x14, 0x16, 0x22}, - {0x0c, 0x24, 0x13}, - {0x35, 0x37, 0x34}, - {0x1b, 0x30, 0x1e}, - {0x3a, 0x1c, 0x20}, - {0x06, 0x06, 0x36}, - {0x09, 0x15, 0x1a}, - {0x1b, 0x1a, 0x27}, - {0x0f, 0x33, 0x35}, - {0x37, 0x06, 0x23}, - {0x3a, 0x12, 0x1d}, - {0x00, 0x16, 0x29}, - {0x0e, 0x1d, 0x35}, - {0x3f, 0x38, 0x16}, - {0x2a, 0x3c, 0x34}, - {0x13, 0x32, 0x10}, - {0x17, 0x2c, 0x37}, - {0x29, 0x2a, 0x1e}, - {0x35, 0x2f, 0x2d}, - {0x3c, 0x2a, 0x11}, - {0x28, 0x13, 0x21}, - {0x19, 0x1e, 0x34}, - {0x0c, 0x06, 0x2d}, - {0x09, 0x04, 0x1c}, - {0x1d, 0x2f, 0x26}, - {0x39, 0x07, 0x16}, - {0x14, 0x04, 0x2d}, - {0x3a, 0x2f, 0x2e}, - {0x29, 0x15, 0x35}, - {0x24, 0x02, 0x36}, - {0x3f, 0x02, 0x1a}, - {0x0f, 0x18, 0x24}, - {0x16, 0x1d, 0x19}, - {0x14, 0x16, 0x10}, - {0x29, 0x1b, 0x13}, - {0x15, 0x0e, 0x19}, - {0x3a, 0x2e, 0x2b}, - {0x08, 0x30, 0x15}, - {0x35, 0x16, 0x30}, - {0x2e, 0x18, 0x35}, - {0x3b, 0x0b, 0x1c}, - {0x3a, 0x18, 0x13}, - {0x29, 0x13, 0x1e}, - {0x20, 0x13, 0x27}, - {0x04, 0x1d, 0x34}, - {0x00, 0x38, 0x19}, - {0x08, 0x39, 0x32}, - {0x20, 0x10, 0x26}, - {0x08, 0x02, 0x28}, - {0x3f, 0x0f, 0x16}, - {0x30, 0x1f, 0x19}, - {0x20, 0x2d, 0x10}, - {0x38, 0x17, 0x1c}, - {0x18, 0x31, 0x27}, - {0x33, 0x38, 0x30}, - {0x16, 0x33, 0x23}, - {0x00, 0x01, 0x36}, - {0x0d, 0x02, 0x23}, - {0x39, 0x04, 0x1f}, - {0x0e, 0x30, 0x24}, - {0x06, 0x01, 0x2c}, - {0x34, 0x33, 0x35}, - {0x16, 0x34, 0x2e}, - {0x32, 0x16, 0x24}, - {0x26, 0x39, 0x34}, - {0x1f, 0x3c, 0x1d}, - {0x28, 0x1d, 0x37}, - {0x17, 0x15, 0x2b}, - {0x27, 0x39, 0x30}, - {0x0b, 0x1b, 0x18}, - {0x35, 0x20, 0x2d}, - {0x0b, 0x35, 0x1c}, - {0x03, 0x0e, 0x21}, - {0x06, 0x0c, 0x20}, - {0x02, 0x18, 0x34}, - {0x1e, 0x36, 0x2d}, - {0x16, 0x0c, 0x19}, - {0x25, 0x09, 0x2c}, - {0x37, 0x05, 0x2e}, - {0x2e, 0x2b, 0x2c}, - {0x24, 0x1a, 0x14}, - {0x27, 0x04, 0x10}, - {0x32, 0x38, 0x33}, - {0x37, 0x15, 0x35}, - {0x11, 0x3f, 0x1d}, - {0x23, 0x23, 0x1f}, - {0x29, 0x3f, 0x1d}, - {0x1a, 0x3c, 0x2b}, - {0x1b, 0x2c, 0x2c}, - {0x38, 0x3b, 0x36}, - {0x04, 0x13, 0x33}, - {0x2c, 0x14, 0x12}, - {0x1a, 0x09, 0x1b}, - {0x36, 0x11, 0x24}, - {0x3a, 0x3f, 0x11}, - {0x01, 0x0e, 0x2b}, - {0x3b, 0x03, 0x2a}, - {0x08, 0x0d, 0x2b}, - {0x2b, 0x13, 0x27}, - {0x3a, 0x3c, 0x1c}, - {0x3a, 0x15, 0x2a}, - {0x24, 0x00, 0x17}, - {0x3e, 0x0a, 0x15}, - {0x0c, 0x29, 0x2d}, - {0x1f, 0x15, 0x30}, - {0x35, 0x18, 0x19}, - {0x3d, 0x37, 0x37}, - {0x12, 0x38, 0x1b}, - {0x3b, 0x02, 0x20}, - {0x08, 0x21, 0x19}, - {0x2e, 0x36, 0x1d}, - {0x15, 0x3d, 0x24}, - {0x22, 0x0c, 0x27}, - {0x36, 0x3f, 0x33}, - {0x33, 0x12, 0x11}, - {0x1a, 0x19, 0x1f}, - {0x2b, 0x24, 0x12}, - {0x11, 0x2a, 0x18}, - {0x25, 0x32, 0x2a}, - {0x2c, 0x1a, 0x12}, - {0x26, 0x06, 0x10}, - {0x11, 0x29, 0x33}, - {0x2c, 0x09, 0x14}, - {0x2b, 0x12, 0x2b}, - {0x1d, 0x03, 0x24}, - {0x00, 0x12, 0x15}, - {0x22, 0x3d, 0x26}, - {0x15, 0x37, 0x1a}, - {0x0f, 0x12, 0x37}, - {0x24, 0x01, 0x18}, - {0x2a, 0x17, 0x13}, - {0x14, 0x3b, 0x29}, - {0x2a, 0x19, 0x32}, - {0x2d, 0x17, 0x17}, - {0x0b, 0x2c, 0x33}, - {0x07, 0x2d, 0x34}, - {0x07, 0x38, 0x1d}, - {0x1f, 0x36, 0x22}, - {0x11, 0x0a, 0x17}, - {0x14, 0x11, 0x13}, - {0x2a, 0x17, 0x25}, - {0x01, 0x3a, 0x1c}, - {0x26, 0x27, 0x30}, - {0x2d, 0x3b, 0x35}, - {0x3a, 0x30, 0x34}, - {0x06, 0x3a, 0x1c}, - {0x2d, 0x05, 0x13}, - {0x21, 0x32, 0x12}, - {0x3e, 0x1e, 0x2c}, - {0x3a, 0x3f, 0x2d}, - {0x20, 0x2a, 0x34}, - {0x26, 0x03, 0x1a}, - {0x19, 0x27, 0x2e}, - {0x31, 0x04, 0x26}, - {0x2a, 0x3f, 0x30}, - {0x25, 0x23, 0x2a}, - {0x08, 0x08, 0x35}, - {0x2c, 0x30, 0x1e}, - {0x08, 0x05, 0x18}, - {0x06, 0x09, 0x2d}, - {0x19, 0x00, 0x27}, - {0x0d, 0x10, 0x19}, - {0x1c, 0x00, 0x13}, - {0x3d, 0x0b, 0x24}, - {0x2e, 0x1f, 0x16}, - {0x3d, 0x18, 0x34}, - {0x12, 0x1e, 0x15}, - {0x15, 0x39, 0x25}, - {0x33, 0x0f, 0x17}, - {0x1a, 0x1c, 0x1b}, - {0x37, 0x29, 0x1b}, - {0x3b, 0x38, 0x12}, - {0x1d, 0x22, 0x34}, - {0x26, 0x0a, 0x31}, - {0x16, 0x2d, 0x13}, - {0x0d, 0x20, 0x27}, - {0x24, 0x1d, 0x16}, - {0x2e, 0x2b, 0x18}, - {0x16, 0x2a, 0x1b}, - {0x24, 0x17, 0x36}, - {0x02, 0x05, 0x2b}, - {0x37, 0x1a, 0x17}, - {0x11, 0x3d, 0x2c}, - {0x1e, 0x2f, 0x22}, - {0x2c, 0x29, 0x1a}, - {0x2f, 0x04, 0x25}, - {0x36, 0x0c, 0x35}, - {0x30, 0x3e, 0x12}, - {0x11, 0x30, 0x37}, - {0x12, 0x21, 0x2e}, - {0x21, 0x30, 0x17}, - {0x2c, 0x3d, 0x24}, - {0x11, 0x23, 0x14}, - {0x1a, 0x32, 0x17}, - {0x39, 0x27, 0x18}, - {0x0f, 0x24, 0x19}, - {0x00, 0x3d, 0x37}, - {0x2c, 0x3c, 0x1c}, - {0x0b, 0x39, 0x23}, - {0x0e, 0x04, 0x1f}, - {0x1c, 0x31, 0x14}, - {0x00, 0x04, 0x15}, - {0x26, 0x2a, 0x2a}, - {0x20, 0x25, 0x2a}, - {0x0b, 0x3c, 0x33}, - {0x11, 0x0b, 0x2e}, - {0x37, 0x22, 0x2e}, - {0x0e, 0x22, 0x26}, - {0x18, 0x2d, 0x27}, - {0x06, 0x0c, 0x1c}, - {0x26, 0x18, 0x2f}, - {0x3a, 0x01, 0x2a}, - {0x2f, 0x31, 0x34}, - {0x1f, 0x34, 0x1a}, - {0x31, 0x05, 0x10}, - {0x2e, 0x17, 0x34}, - {0x18, 0x22, 0x23}, - {0x23, 0x21, 0x32}, - {0x07, 0x08, 0x22}, - {0x26, 0x1c, 0x22}, - {0x31, 0x12, 0x2f}, - {0x08, 0x1f, 0x10}, - {0x27, 0x15, 0x2a}, - {0x1f, 0x0b, 0x26}, - {0x2f, 0x14, 0x35}, - {0x24, 0x1f, 0x26}, - {0x3b, 0x23, 0x33}, - {0x20, 0x3e, 0x2d}, - {0x17, 0x0c, 0x15}, - {0x13, 0x39, 0x1a}, - {0x30, 0x14, 0x25}, - {0x09, 0x07, 0x17}, - {0x38, 0x38, 0x1f}, - {0x29, 0x24, 0x27}, - {0x17, 0x27, 0x28}, - {0x1b, 0x12, 0x2a}, - {0x2b, 0x3d, 0x2d}, - {0x19, 0x34, 0x1c}, - {0x01, 0x1d, 0x10}, - {0x08, 0x39, 0x11}, - {0x0e, 0x36, 0x1b}, - {0x26, 0x13, 0x10}, - {0x16, 0x28, 0x1e}, - {0x3c, 0x28, 0x17}, - {0x3e, 0x39, 0x34}, - {0x0a, 0x03, 0x2e}, - {0x37, 0x1a, 0x13}, - {0x2b, 0x33, 0x26}, - {0x13, 0x2c, 0x21}, - {0x25, 0x14, 0x10}, - {0x16, 0x0b, 0x35}, - {0x1d, 0x35, 0x33}, - {0x21, 0x08, 0x33}, - {0x28, 0x21, 0x1a}, - {0x12, 0x0c, 0x1b}, - {0x36, 0x2a, 0x19}, - {0x2c, 0x2b, 0x23}, - {0x01, 0x0f, 0x26}, - {0x17, 0x0c, 0x18}, - {0x09, 0x0f, 0x11}, - {0x2b, 0x24, 0x1c}, - {0x09, 0x09, 0x15}, - {0x36, 0x08, 0x13}, - {0x20, 0x39, 0x21}, - {0x00, 0x3a, 0x1f}, - {0x2b, 0x36, 0x31}, - {0x02, 0x37, 0x13}, - {0x04, 0x34, 0x35}, - {0x37, 0x3d, 0x1a}, - {0x17, 0x3d, 0x13}, - {0x2b, 0x36, 0x2f}, - {0x13, 0x1e, 0x13}, - {0x3e, 0x11, 0x33}, - {0x27, 0x3a, 0x2d}, - {0x1e, 0x31, 0x1a}, - {0x03, 0x03, 0x2d}, - {0x25, 0x37, 0x1f}, - {0x11, 0x01, 0x22}, - {0x1c, 0x12, 0x17}, - {0x30, 0x3a, 0x30}, - {0x17, 0x1d, 0x29}, - {0x0e, 0x13, 0x27}, - {0x1a, 0x2e, 0x24}, - {0x2d, 0x00, 0x1c}, - {0x17, 0x28, 0x1d}, - {0x09, 0x1f, 0x2e}, - {0x1a, 0x2d, 0x26}, - {0x0a, 0x13, 0x32}, - {0x3e, 0x00, 0x27}, - {0x0b, 0x3b, 0x30}, - {0x08, 0x3a, 0x2d}, - {0x22, 0x12, 0x1e}, - {0x34, 0x1d, 0x2b}, - {0x26, 0x22, 0x35}, - {0x17, 0x2c, 0x17}, - {0x29, 0x13, 0x2d}, - {0x2d, 0x10, 0x10}, - {0x20, 0x31, 0x23}, - {0x1e, 0x33, 0x18}, - {0x33, 0x06, 0x2d}, - {0x26, 0x14, 0x27}, - {0x22, 0x1d, 0x2a}, - {0x2d, 0x06, 0x18}, - {0x07, 0x09, 0x2e}, - {0x21, 0x15, 0x2e}, - {0x21, 0x38, 0x23}, - {0x35, 0x0b, 0x34}, - {0x24, 0x0b, 0x22}, - {0x1e, 0x01, 0x17}, - {0x0b, 0x24, 0x11}, - {0x17, 0x07, 0x20}, - {0x14, 0x25, 0x32}, - {0x1a, 0x0e, 0x2f}, - {0x35, 0x17, 0x1f}, - {0x0c, 0x08, 0x21}, - {0x30, 0x35, 0x1f}, - {0x0c, 0x0b, 0x20}, - {0x04, 0x10, 0x11}, - {0x35, 0x11, 0x1e}, - {0x33, 0x3d, 0x16}, - {0x1e, 0x2b, 0x1d}, - {0x1a, 0x19, 0x10}, - {0x04, 0x06, 0x22}, - {0x03, 0x3d, 0x24}, - {0x2a, 0x0e, 0x35}, - {0x03, 0x3e, 0x17}, - {0x0b, 0x18, 0x36}, - {0x3d, 0x0d, 0x26}, - {0x35, 0x12, 0x20}, - {0x1f, 0x0d, 0x16}, - {0x23, 0x32, 0x1a}, - {0x00, 0x3d, 0x26}, - {0x30, 0x19, 0x36}, - {0x12, 0x0e, 0x23}, - {0x01, 0x23, 0x28}, - {0x3b, 0x31, 0x11}, - {0x2d, 0x1c, 0x36}, - {0x2a, 0x05, 0x16}, - {0x14, 0x0e, 0x30}, - {0x3a, 0x37, 0x19}, - {0x1f, 0x30, 0x25}, - {0x10, 0x26, 0x2f}, - {0x22, 0x11, 0x1f}, - {0x2e, 0x2b, 0x1e}, - {0x16, 0x16, 0x21}, - {0x32, 0x18, 0x35}, - {0x23, 0x32, 0x1a}, - {0x3d, 0x0d, 0x19}, - {0x39, 0x09, 0x23}, - {0x30, 0x2e, 0x24}, - {0x1e, 0x0f, 0x24}, - {0x09, 0x21, 0x31}, - {0x05, 0x03, 0x11}, - {0x05, 0x22, 0x2a}, - {0x03, 0x07, 0x37}, - {0x04, 0x08, 0x13}, - {0x05, 0x10, 0x34}, - {0x37, 0x14, 0x29}, - {0x0a, 0x24, 0x32}, - {0x34, 0x1e, 0x1b}, - {0x12, 0x17, 0x2e}, - {0x01, 0x02, 0x13}, - {0x0a, 0x0c, 0x11}, - {0x02, 0x14, 0x13}, - {0x0d, 0x25, 0x23}, - {0x00, 0x07, 0x1a}, - {0x1c, 0x28, 0x35}, - {0x08, 0x0e, 0x2c}, - {0x1b, 0x3c, 0x15}, - {0x1c, 0x19, 0x1d}, - {0x32, 0x13, 0x1a}, - {0x1c, 0x00, 0x37}, - {0x22, 0x1b, 0x35}, - {0x39, 0x3e, 0x14}, - {0x32, 0x06, 0x31}, - {0x17, 0x05, 0x2b}, - {0x01, 0x0f, 0x20}, - {0x1e, 0x0f, 0x34}, - {0x18, 0x03, 0x1f}, - {0x2b, 0x00, 0x14}, - {0x15, 0x3a, 0x30}, - {0x25, 0x30, 0x21}, - {0x0b, 0x00, 0x37}, - {0x24, 0x37, 0x1d}, - {0x29, 0x21, 0x16}, - {0x24, 0x0f, 0x2c}, - {0x3e, 0x15, 0x36}, - {0x3c, 0x2d, 0x23}, - {0x3d, 0x3c, 0x17}, - {0x1a, 0x1c, 0x13}, - {0x0a, 0x29, 0x22}, - {0x25, 0x3f, 0x26}, - {0x3b, 0x39, 0x2f}, - {0x1d, 0x08, 0x16}, - {0x0b, 0x19, 0x14}, - {0x12, 0x01, 0x2c}, - {0x35, 0x11, 0x2a}, - {0x02, 0x00, 0x13}, - {0x39, 0x2a, 0x35}, - {0x07, 0x1a, 0x11}, - {0x24, 0x0e, 0x1e}, - {0x0e, 0x2c, 0x15}, - {0x08, 0x31, 0x1b}, - {0x21, 0x1d, 0x26}, - {0x1d, 0x1c, 0x2a}, - {0x1d, 0x24, 0x13}, - {0x01, 0x00, 0x18}, - {0x28, 0x2a, 0x37}, - {0x15, 0x0f, 0x13}, - {0x10, 0x32, 0x36}, - {0x22, 0x13, 0x31}, - {0x13, 0x05, 0x1e}, - {0x17, 0x35, 0x35}, - {0x3b, 0x0e, 0x24}, - {0x35, 0x3a, 0x1d}, - {0x1b, 0x36, 0x1b}, - {0x03, 0x1d, 0x24}, - {0x0f, 0x16, 0x30}, - {0x2d, 0x09, 0x25}, - {0x05, 0x21, 0x13}, - {0x0a, 0x27, 0x36}, - {0x04, 0x0d, 0x1c}, - {0x06, 0x3e, 0x21}, - {0x2a, 0x27, 0x33}, - {0x28, 0x0e, 0x15}, - {0x0b, 0x17, 0x1d}, - {0x1d, 0x32, 0x2d}, - {0x08, 0x3d, 0x29}, - {0x21, 0x32, 0x17}, - {0x33, 0x31, 0x22}, - {0x0e, 0x03, 0x21}, - {0x0d, 0x0b, 0x16}, - {0x3e, 0x2a, 0x2e}, - {0x19, 0x36, 0x2a}, - {0x0d, 0x00, 0x14}, - {0x22, 0x07, 0x36}, - {0x0a, 0x09, 0x15}, - {0x14, 0x10, 0x22}, - {0x07, 0x16, 0x2c}, - {0x36, 0x13, 0x15}, - {0x09, 0x2f, 0x1b}, - {0x20, 0x3b, 0x2e}, - {0x3a, 0x3a, 0x16}, - {0x0d, 0x15, 0x2a}, - {0x39, 0x13, 0x2b}, - {0x0b, 0x01, 0x2a}, - {0x13, 0x17, 0x1e}, - {0x08, 0x17, 0x1e}, - {0x0c, 0x0f, 0x34}, - {0x1f, 0x31, 0x12}, - {0x07, 0x3a, 0x1d}, - {0x35, 0x1e, 0x12}, - {0x24, 0x2c, 0x15}, - {0x0e, 0x21, 0x19}, - {0x34, 0x3b, 0x33}, - {0x19, 0x0f, 0x28}, - {0x10, 0x2f, 0x2e}, - {0x23, 0x27, 0x31}, - {0x39, 0x2e, 0x18}, - {0x3c, 0x3f, 0x24}, - {0x07, 0x23, 0x30}, - {0x28, 0x13, 0x35}, - {0x13, 0x0a, 0x10}, - {0x35, 0x19, 0x33}, - {0x23, 0x28, 0x29}, - {0x13, 0x2f, 0x1a}, - {0x3a, 0x19, 0x14}, - {0x37, 0x36, 0x26}, - {0x20, 0x3b, 0x15}, - {0x37, 0x39, 0x10}, - {0x3c, 0x21, 0x34}, - {0x1c, 0x38, 0x30}, - {0x15, 0x07, 0x26}, - {0x27, 0x21, 0x19}, - {0x18, 0x11, 0x23}, - {0x30, 0x28, 0x37}, - {0x32, 0x2d, 0x1f}, - {0x2c, 0x3f, 0x30}, - {0x1d, 0x2f, 0x26}, - {0x01, 0x11, 0x1c}, - {0x3b, 0x0f, 0x12}, - {0x2a, 0x17, 0x27}, - {0x05, 0x00, 0x1b}, - {0x25, 0x1c, 0x32}, - {0x04, 0x22, 0x2d}, - {0x10, 0x0f, 0x25}, - {0x0d, 0x39, 0x30}, - {0x0b, 0x2e, 0x27}, - {0x2d, 0x34, 0x15}, - {0x3e, 0x30, 0x36}, - {0x16, 0x26, 0x2a}, - {0x05, 0x3f, 0x2b}, - {0x20, 0x3b, 0x2e}, - {0x3b, 0x1c, 0x2f}, - {0x01, 0x18, 0x16}, - {0x16, 0x3d, 0x10}, - {0x0a, 0x1f, 0x18}, - {0x17, 0x0f, 0x22}, - {0x06, 0x13, 0x11}, - {0x38, 0x21, 0x17}, - {0x17, 0x0a, 0x37}, - {0x1c, 0x19, 0x30}, - {0x16, 0x38, 0x31}, - {0x30, 0x10, 0x36}, - {0x31, 0x2f, 0x26}, - {0x3c, 0x1b, 0x23}, - {0x33, 0x2f, 0x19}, - {0x16, 0x35, 0x25}, - {0x3a, 0x18, 0x1f}, - {0x37, 0x01, 0x1e}, - {0x0d, 0x18, 0x12}, - {0x1f, 0x1c, 0x1b}, - {0x07, 0x34, 0x2d}, - {0x0b, 0x3f, 0x33}, - {0x1e, 0x34, 0x1d}, - {0x2c, 0x13, 0x2c}, - {0x20, 0x20, 0x13}, - {0x20, 0x0f, 0x31}, - {0x08, 0x0f, 0x24}, - {0x18, 0x3d, 0x1c}, - {0x36, 0x34, 0x27}, - {0x33, 0x2a, 0x25}, - {0x2d, 0x30, 0x26}, - {0x3d, 0x37, 0x26}, - {0x25, 0x11, 0x11}, - {0x03, 0x05, 0x18}, - {0x10, 0x04, 0x29}, - {0x07, 0x2e, 0x36}, - {0x2a, 0x29, 0x15}, - {0x3a, 0x0e, 0x33}, - {0x2a, 0x06, 0x29}, - {0x3d, 0x01, 0x29}, - {0x27, 0x0e, 0x16}, - {0x1d, 0x28, 0x1b}, - {0x10, 0x33, 0x2b}, - {0x0c, 0x14, 0x1d}, - {0x15, 0x3f, 0x25}, - {0x37, 0x23, 0x1e}, - {0x04, 0x2c, 0x1c}, - {0x15, 0x34, 0x2a}, - {0x09, 0x2f, 0x15}, - {0x02, 0x3f, 0x14}, - {0x19, 0x2c, 0x33}, - {0x39, 0x32, 0x20}, - {0x2a, 0x18, 0x32}, - {0x17, 0x23, 0x21}, - {0x0b, 0x2d, 0x25}, - {0x24, 0x3a, 0x2d}, - {0x31, 0x3f, 0x34}, - {0x18, 0x19, 0x24}, - {0x1e, 0x15, 0x1a}, - {0x17, 0x33, 0x2b}, - {0x23, 0x09, 0x26}, - {0x1b, 0x0d, 0x15}, - {0x36, 0x26, 0x28}, - {0x3a, 0x1c, 0x14}, - {0x0c, 0x3e, 0x10}, - {0x18, 0x06, 0x35}, - {0x37, 0x26, 0x36}, - {0x21, 0x26, 0x17}, - {0x3d, 0x1c, 0x2c}, - {0x16, 0x25, 0x1d}, - {0x1e, 0x0b, 0x1e}, - {0x1d, 0x0d, 0x32}, - {0x08, 0x1f, 0x1b}, - {0x12, 0x1c, 0x12}, - {0x20, 0x2a, 0x28}, - {0x06, 0x3b, 0x35}, - {0x39, 0x0e, 0x1e}, - {0x31, 0x30, 0x28}, - {0x02, 0x21, 0x14}, - {0x06, 0x1e, 0x29}, - {0x16, 0x09, 0x1c}, - {0x27, 0x32, 0x2d}, - {0x39, 0x03, 0x27}, - {0x29, 0x09, 0x1e}, - {0x1b, 0x11, 0x1c}, - {0x28, 0x3a, 0x2c}, - {0x03, 0x03, 0x18}, - {0x23, 0x09, 0x2f}, - {0x30, 0x17, 0x23}, - {0x0f, 0x25, 0x33}, - {0x06, 0x24, 0x37}, - {0x22, 0x09, 0x33}, - {0x2c, 0x09, 0x2a}, - {0x0c, 0x12, 0x2a}, - {0x28, 0x20, 0x10}, - {0x15, 0x29, 0x33}, - {0x0f, 0x1a, 0x13}, - {0x13, 0x18, 0x36}, - {0x2e, 0x16, 0x13}, - {0x3c, 0x1a, 0x15}, - {0x3a, 0x11, 0x32}, - {0x02, 0x0a, 0x2c}, - {0x19, 0x39, 0x11}, - {0x31, 0x3e, 0x1d}, - {0x32, 0x14, 0x32}, - {0x12, 0x2e, 0x34}, - {0x3e, 0x36, 0x23}, - {0x37, 0x3e, 0x15}, - {0x15, 0x35, 0x34}, - {0x01, 0x3a, 0x2c}, - {0x26, 0x25, 0x22}, - {0x01, 0x2b, 0x37}, - {0x1c, 0x3d, 0x33}, - {0x3e, 0x10, 0x1c}, - {0x26, 0x33, 0x19}, - {0x05, 0x19, 0x17}, - {0x12, 0x38, 0x1c}, - {0x15, 0x3c, 0x32}, - {0x3f, 0x0f, 0x37}, - {0x02, 0x39, 0x32}, - {0x13, 0x00, 0x1d}, - {0x1d, 0x2c, 0x10}, - {0x39, 0x13, 0x31}, - {0x0f, 0x37, 0x19}, - {0x09, 0x0d, 0x2a}, - {0x20, 0x2f, 0x32}, - {0x3b, 0x34, 0x22}, - {0x26, 0x14, 0x10}, - {0x24, 0x3d, 0x22}, - {0x0b, 0x31, 0x23}, - {0x2f, 0x2d, 0x2a}, - {0x30, 0x04, 0x35}, - {0x19, 0x20, 0x2a}, - {0x16, 0x36, 0x37}, - {0x14, 0x28, 0x37}, - {0x11, 0x0b, 0x27}, - {0x1d, 0x06, 0x29}, - {0x35, 0x16, 0x2e}, - {0x24, 0x2e, 0x29}, - {0x36, 0x14, 0x2a}, - {0x21, 0x0c, 0x1f}, - {0x3f, 0x39, 0x19}, - {0x27, 0x10, 0x2a}, - {0x1e, 0x12, 0x34}, - {0x10, 0x24, 0x34}, - {0x1d, 0x13, 0x1d}, - {0x17, 0x16, 0x37}, - {0x27, 0x1b, 0x27}, - {0x07, 0x24, 0x21}, - {0x37, 0x21, 0x11}, - {0x37, 0x28, 0x24}, - {0x19, 0x02, 0x1c}, - {0x14, 0x12, 0x1d}, - {0x1b, 0x24, 0x2e}, - {0x2e, 0x3a, 0x15}, - {0x37, 0x34, 0x21}, - {0x33, 0x2d, 0x29}, - {0x2f, 0x1e, 0x34}, - {0x29, 0x3c, 0x12}, - {0x05, 0x15, 0x20}, - {0x05, 0x3e, 0x19}, - {0x18, 0x0b, 0x30}, - {0x2f, 0x02, 0x27}, - {0x14, 0x1c, 0x34}, - {0x12, 0x20, 0x30}, - {0x2b, 0x22, 0x1b}, - {0x06, 0x31, 0x28}, - {0x15, 0x2d, 0x12}, - {0x01, 0x0e, 0x13}, - {0x13, 0x0c, 0x28}, - {0x07, 0x2a, 0x14}, - {0x1d, 0x36, 0x14}, - {0x15, 0x2b, 0x26}, - {0x03, 0x25, 0x15}, - {0x3e, 0x3b, 0x20}, - {0x35, 0x0c, 0x25}, - {0x2b, 0x16, 0x35}, - {0x1e, 0x31, 0x2c}, - {0x06, 0x03, 0x29}, - {0x24, 0x07, 0x1f}, - {0x32, 0x2f, 0x19}, - {0x25, 0x21, 0x31}, - {0x22, 0x26, 0x1d}, - {0x00, 0x1b, 0x18}, - {0x2a, 0x24, 0x31}, - {0x20, 0x06, 0x2f}, - {0x1e, 0x32, 0x26}, - {0x32, 0x39, 0x12}, - {0x20, 0x01, 0x19}, - {0x0f, 0x15, 0x15}, - {0x27, 0x10, 0x2e}, - {0x09, 0x25, 0x19}, - {0x29, 0x37, 0x30}, - {0x13, 0x1c, 0x1d}, - {0x29, 0x2d, 0x26}, - {0x02, 0x1a, 0x16}, - {0x1d, 0x2b, 0x1c}, - {0x18, 0x04, 0x34}, - {0x28, 0x2a, 0x21}, - {0x15, 0x1b, 0x2e}, - {0x16, 0x01, 0x10}, - {0x05, 0x09, 0x14}, - {0x22, 0x03, 0x22}, - {0x02, 0x1b, 0x34}, - {0x29, 0x2a, 0x23}, - {0x26, 0x36, 0x13}, - {0x23, 0x3d, 0x1a}, - {0x1d, 0x10, 0x24}, - {0x25, 0x2b, 0x37}, - {0x19, 0x24, 0x26}, - {0x28, 0x13, 0x16}, - {0x17, 0x14, 0x19}, - {0x0b, 0x2f, 0x25}, - {0x37, 0x34, 0x37}, - {0x39, 0x21, 0x1b}, - {0x0f, 0x3d, 0x2d}, - {0x0d, 0x10, 0x20}, - {0x05, 0x0b, 0x2d}, - {0x01, 0x12, 0x24}, - {0x18, 0x3d, 0x32}, - {0x09, 0x21, 0x26}, - {0x1a, 0x0e, 0x1f}, - {0x30, 0x06, 0x1f}, - {0x0b, 0x3c, 0x29}, - {0x07, 0x3e, 0x27}, - {0x13, 0x1e, 0x1a}, - {0x13, 0x07, 0x23}, - {0x10, 0x34, 0x1e}, - {0x32, 0x17, 0x23}, - {0x35, 0x16, 0x31}, - {0x32, 0x2e, 0x1b}, - {0x28, 0x0e, 0x22}, - {0x14, 0x3a, 0x23}, - {0x22, 0x03, 0x29}, - {0x2a, 0x10, 0x20}, - {0x3e, 0x3c, 0x27}, - {0x16, 0x20, 0x12}, - {0x3f, 0x24, 0x31}, - {0x0d, 0x2e, 0x32}, - {0x2f, 0x17, 0x2d}, - {0x36, 0x3b, 0x17}, - {0x24, 0x23, 0x18}, - {0x37, 0x1d, 0x13}, - {0x17, 0x3a, 0x1a}, - {0x0a, 0x3d, 0x1e}, - {0x05, 0x12, 0x16}, - {0x33, 0x32, 0x25}, - {0x1d, 0x1f, 0x29}, - {0x34, 0x2c, 0x26}, - {0x20, 0x29, 0x35}, - {0x0e, 0x32, 0x17}, - {0x01, 0x39, 0x2d}, - {0x27, 0x24, 0x23}, - {0x28, 0x3f, 0x18}, - {0x39, 0x38, 0x25}, - {0x23, 0x11, 0x11}, - {0x19, 0x2c, 0x29}, - {0x30, 0x08, 0x28}, - {0x25, 0x27, 0x1d}, - {0x17, 0x25, 0x21}, - {0x09, 0x3d, 0x16}, - {0x1b, 0x0f, 0x2c}, - {0x1b, 0x12, 0x22}, - {0x28, 0x3e, 0x26}, - {0x34, 0x10, 0x1b}, - {0x02, 0x34, 0x15}, - {0x1a, 0x29, 0x19}, - {0x29, 0x11, 0x31}, - {0x12, 0x27, 0x17}, - {0x27, 0x27, 0x2f}, - {0x34, 0x27, 0x24}, - {0x03, 0x19, 0x36}, - {0x17, 0x1d, 0x33}, - {0x19, 0x25, 0x1a}, - {0x2b, 0x39, 0x13}, - {0x3b, 0x33, 0x1d}, - {0x27, 0x31, 0x34}, - {0x28, 0x33, 0x37}, - {0x09, 0x30, 0x1b}, - {0x03, 0x3a, 0x27}, - {0x19, 0x11, 0x1f}, - {0x0b, 0x1a, 0x34}, - {0x3d, 0x2a, 0x15}, - {0x04, 0x24, 0x36}, - {0x30, 0x23, 0x30}, - {0x0f, 0x22, 0x1b}, - {0x3d, 0x3d, 0x24}, - {0x29, 0x1d, 0x12}, - {0x16, 0x19, 0x2e}, - {0x03, 0x12, 0x17}, - {0x18, 0x25, 0x33}, - {0x2f, 0x23, 0x1a}, - {0x1a, 0x35, 0x27}, - {0x21, 0x26, 0x19}, - {0x1b, 0x30, 0x18}, - {0x2b, 0x22, 0x2d}, - {0x2c, 0x1a, 0x34}, - {0x3e, 0x12, 0x19}, - {0x28, 0x27, 0x15}, - {0x1b, 0x11, 0x12}, - {0x17, 0x15, 0x10}, - {0x34, 0x37, 0x25}, - {0x12, 0x3f, 0x15}, - {0x31, 0x0d, 0x37}, - {0x3e, 0x2a, 0x2d}, - {0x0f, 0x24, 0x24}, - {0x3c, 0x3f, 0x1f}, - {0x1d, 0x34, 0x17}, - {0x1a, 0x23, 0x1f}, - {0x37, 0x0f, 0x10}, - {0x32, 0x34, 0x35}, - {0x19, 0x05, 0x22}, - {0x33, 0x16, 0x34}, - {0x1e, 0x14, 0x1e}, - {0x08, 0x13, 0x29}, - {0x3a, 0x37, 0x30}, - {0x1d, 0x36, 0x15}, - {0x29, 0x2e, 0x1d}, - {0x32, 0x2e, 0x23}, - {0x35, 0x17, 0x1c}, - {0x36, 0x1d, 0x13}, - {0x23, 0x34, 0x34}, - {0x24, 0x1a, 0x37}, - {0x2f, 0x26, 0x2e}, - {0x1e, 0x17, 0x1a}, - {0x1f, 0x15, 0x1f}, - {0x2b, 0x1f, 0x19}, - {0x0a, 0x33, 0x1a}, - {0x35, 0x31, 0x24}, - {0x2d, 0x17, 0x2c}, - {0x0c, 0x21, 0x36}, - {0x2c, 0x35, 0x35}, - {0x1b, 0x03, 0x27}, - {0x01, 0x0d, 0x1d}, - {0x1c, 0x0e, 0x11}, - {0x11, 0x2b, 0x10}, - {0x25, 0x3b, 0x20}, - {0x1f, 0x17, 0x19}, - {0x20, 0x08, 0x36}, - {0x13, 0x38, 0x19}, - {0x1b, 0x2b, 0x24}, - {0x0b, 0x1f, 0x29}, - {0x27, 0x15, 0x2c}, - {0x37, 0x39, 0x10}, - {0x3a, 0x15, 0x2e}, - {0x2f, 0x11, 0x36}, - {0x24, 0x04, 0x20}, - {0x3b, 0x2a, 0x35}, - {0x27, 0x35, 0x34}, - {0x0d, 0x1b, 0x20}, - {0x10, 0x22, 0x37}, - {0x1f, 0x38, 0x27}, - {0x31, 0x0f, 0x28}, - {0x28, 0x25, 0x15}, - {0x00, 0x1d, 0x25}, - {0x31, 0x28, 0x28}, - {0x0b, 0x3a, 0x1d}, - {0x2d, 0x13, 0x1b}, - {0x03, 0x37, 0x2e}, - {0x1d, 0x28, 0x19}, - {0x08, 0x2d, 0x22}, - {0x27, 0x39, 0x32}, - {0x3f, 0x2f, 0x1d}, - {0x33, 0x34, 0x28}, - {0x18, 0x08, 0x31}, - {0x23, 0x1f, 0x13}, - {0x0d, 0x2c, 0x23}, - {0x3a, 0x2d, 0x1a}, - {0x02, 0x25, 0x13}, - {0x20, 0x36, 0x34}, - {0x12, 0x2b, 0x2d}, - {0x35, 0x35, 0x34}, - {0x23, 0x20, 0x21}, - {0x3a, 0x19, 0x1b}, - {0x1f, 0x2b, 0x19}, - {0x35, 0x0e, 0x19}, - {0x26, 0x24, 0x37}, - {0x18, 0x08, 0x10}, - {0x0c, 0x16, 0x2d}, - {0x1f, 0x34, 0x21}, - {0x05, 0x38, 0x19}, - {0x14, 0x21, 0x24}, - {0x11, 0x31, 0x14}, - {0x3e, 0x38, 0x29}, - {0x3f, 0x08, 0x25}, - {0x2a, 0x1f, 0x25}, - {0x25, 0x06, 0x28}, - {0x0b, 0x1e, 0x14}, - {0x1a, 0x38, 0x22}, - {0x24, 0x18, 0x29}, - {0x1a, 0x11, 0x20}, - {0x3b, 0x3a, 0x1e}, - {0x1c, 0x26, 0x1a}, - {0x05, 0x32, 0x19}, - {0x39, 0x2a, 0x31}, - {0x09, 0x07, 0x25}, - {0x05, 0x3e, 0x16}, - {0x34, 0x26, 0x14}, - {0x1b, 0x32, 0x26}, - {0x05, 0x08, 0x37}, - {0x0f, 0x03, 0x20}, - {0x2a, 0x39, 0x31}, - {0x08, 0x01, 0x1e}, - {0x1d, 0x23, 0x31}, - {0x28, 0x1b, 0x28}, - {0x1e, 0x37, 0x14}, - {0x13, 0x0e, 0x28}, - {0x2a, 0x3b, 0x37}, - {0x2f, 0x1c, 0x28}, - {0x30, 0x30, 0x1a}, - {0x36, 0x1f, 0x16}, - {0x3e, 0x0d, 0x15}, - {0x2e, 0x16, 0x18}, - {0x15, 0x37, 0x20}, - {0x2a, 0x33, 0x30}, - {0x2b, 0x0e, 0x25}, - {0x18, 0x20, 0x16}, - {0x02, 0x19, 0x25}, - {0x0a, 0x2e, 0x30}, - {0x16, 0x03, 0x11}, - {0x04, 0x27, 0x25}, - {0x1b, 0x1c, 0x21}, - {0x29, 0x04, 0x27}, - {0x3d, 0x20, 0x1e}, - {0x28, 0x33, 0x31}, - {0x1e, 0x39, 0x10}, - {0x31, 0x29, 0x1e}, - {0x06, 0x25, 0x28}, - {0x19, 0x3b, 0x12}, - {0x0b, 0x1b, 0x1c}, - {0x3e, 0x37, 0x20}, - {0x0a, 0x37, 0x33}, - {0x02, 0x2c, 0x25}, - {0x15, 0x18, 0x14}, - {0x3b, 0x20, 0x1c}, - {0x22, 0x3b, 0x1c}, - {0x24, 0x34, 0x35}, - {0x0f, 0x2f, 0x31}, - {0x3b, 0x17, 0x35}, - {0x30, 0x39, 0x37}, - {0x0d, 0x15, 0x11}, - {0x10, 0x03, 0x1e}, - {0x1a, 0x39, 0x33}, - {0x2f, 0x2e, 0x28}, - {0x1c, 0x28, 0x36}, - {0x28, 0x18, 0x1f}, - {0x15, 0x01, 0x30}, - {0x3e, 0x32, 0x28}, - {0x34, 0x2f, 0x23}, - {0x07, 0x0c, 0x36}, - {0x28, 0x2c, 0x34}, - {0x2a, 0x0c, 0x1f}, - {0x3f, 0x20, 0x13}, - {0x2b, 0x17, 0x27}, - {0x28, 0x29, 0x2a}, - {0x3c, 0x13, 0x36}, - {0x26, 0x2d, 0x2a}, - {0x0a, 0x06, 0x1e}, - {0x20, 0x04, 0x1a}, - {0x02, 0x07, 0x35}, - {0x0e, 0x18, 0x30}, - {0x00, 0x34, 0x34}, - {0x2f, 0x14, 0x37}, - {0x21, 0x30, 0x1f}, - {0x15, 0x37, 0x1b}, - {0x3a, 0x0b, 0x32}, - {0x22, 0x22, 0x21}, - {0x1b, 0x35, 0x23}, - {0x0d, 0x03, 0x1c}, - {0x23, 0x3b, 0x13}, - {0x0e, 0x1d, 0x1f}, - {0x1d, 0x3f, 0x2e}, - {0x39, 0x27, 0x2e}, - {0x0f, 0x38, 0x20}, - {0x31, 0x3c, 0x35}, - {0x0b, 0x0f, 0x2e}, - {0x06, 0x06, 0x28}, - {0x25, 0x39, 0x23}, - {0x0a, 0x32, 0x15}, - {0x0f, 0x1d, 0x25}, - {0x0c, 0x0d, 0x34}, - {0x12, 0x2e, 0x21}, - {0x36, 0x18, 0x1f}, - {0x1f, 0x34, 0x1b}, - {0x05, 0x3a, 0x36}, - {0x2b, 0x01, 0x17}, - {0x0e, 0x16, 0x2b}, - {0x0e, 0x0b, 0x26}, - {0x0d, 0x2d, 0x10}, - {0x21, 0x11, 0x27}, - {0x3d, 0x13, 0x32}, - {0x15, 0x25, 0x2a}, - {0x1b, 0x2d, 0x35}, - {0x2c, 0x2b, 0x26}, - {0x26, 0x1f, 0x20}, - {0x22, 0x2b, 0x12}, - {0x3f, 0x3d, 0x27}, - {0x30, 0x0a, 0x36}, - {0x35, 0x1f, 0x17}, - {0x21, 0x08, 0x29}, - {0x1d, 0x20, 0x33}, - {0x34, 0x11, 0x16}, - {0x05, 0x38, 0x2d} + PT( 0, 29, 3, 2, FALSE), + PT(14, 30, 3, 1, TRUE), + PT( 0, 1, 6, 1, FALSE), + PT(46, 30, 6, 3, TRUE), + PT(10, 34, 3, 3, TRUE), + PT( 5, 38, 5, 3, FALSE), + PT(18, 23, 3, 3, FALSE), + PT(26, 3, 2, 0, TRUE), + PT( 5, 17, 3, 0, FALSE), + PT( 5, 39, 5, 3, TRUE), + PT(26, 63, 2, 1, FALSE), + PT(34, 63, 2, 3, FALSE), + PT(43, 47, 5, 3, FALSE), + PT(17, 2, 5, 2, TRUE), + PT(35, 13, 5, 0, FALSE), + PT(23, 12, 3, 0, TRUE), + PT(47, 14, 2, 1, TRUE), + PT(48, 24, 4, 0, FALSE), + PT(45, 40, 4, 1, FALSE), + PT( 1, 3, 3, 0, TRUE), + PT(14, 42, 5, 1, TRUE), + PT(34, 21, 4, 2, TRUE), + PT(34, 10, 4, 3, FALSE), + PT(57, 6, 4, 1, TRUE), + PT(22, 7, 5, 3, TRUE), + PT(34, 58, 3, 1, TRUE), + PT(59, 54, 6, 2, TRUE), + PT(10, 43, 4, 2, FALSE), + PT(54, 9, 2, 1, FALSE), + PT(28, 47, 4, 1, TRUE), + PT(46, 56, 5, 2, FALSE), + PT( 5, 42, 4, 0, FALSE), + PT( 7, 20, 6, 1, FALSE), + PT(49, 8, 2, 3, TRUE), + PT(26, 36, 5, 2, TRUE), + PT(34, 10, 2, 3, FALSE), + PT(27, 38, 5, 1, TRUE), + PT(41, 22, 2, 0, TRUE), + PT(53, 8, 2, 2, FALSE), + PT(30, 8, 2, 2, FALSE), + PT( 5, 49, 2, 2, FALSE), + PT(56, 49, 2, 3, TRUE), + PT(52, 51, 2, 1, FALSE), + PT(17, 9, 3, 3, TRUE), + PT(40, 61, 6, 1, FALSE), + PT(53, 3, 3, 3, FALSE), + PT(60, 43, 5, 3, FALSE), + PT(16, 1, 2, 3, TRUE), + PT( 3, 62, 4, 1, FALSE), + PT(23, 24, 6, 2, FALSE), + PT( 8, 41, 3, 0, TRUE), + PT( 3, 36, 5, 0, FALSE), + PT(61, 51, 5, 3, TRUE), + PT(49, 36, 3, 0, TRUE), + PT(27, 24, 4, 3, FALSE), + PT( 7, 13, 4, 2, TRUE), + PT(45, 63, 2, 1, FALSE), + PT(47, 21, 4, 2, TRUE), + PT(41, 15, 2, 1, FALSE), + PT( 7, 44, 2, 1, FALSE), + PT(44, 11, 4, 3, FALSE), + PT(18, 26, 2, 3, FALSE), + PT( 0, 11, 5, 3, TRUE), + PT(22, 53, 4, 2, FALSE), + PT(31, 28, 4, 1, FALSE), + PT(41, 51, 4, 3, TRUE), + PT(59, 48, 2, 3, TRUE), + PT(17, 6, 6, 2, TRUE), + PT(62, 49, 5, 3, TRUE), + PT(17, 58, 4, 2, TRUE), + PT(42, 2, 3, 0, TRUE), + PT(51, 24, 6, 2, TRUE), + PT(42, 32, 4, 0, TRUE), + PT(46, 50, 3, 1, TRUE), + PT(59, 31, 4, 1, TRUE), + PT(57, 41, 5, 1, FALSE), + PT(46, 49, 5, 0, TRUE), + PT(42, 14, 5, 2, TRUE), + PT(45, 0, 3, 3, TRUE), + PT(56, 40, 3, 1, TRUE), + PT(20, 59, 5, 1, TRUE), + PT(46, 4, 4, 3, FALSE), + PT(54, 48, 2, 0, TRUE), + PT(59, 33, 5, 2, TRUE), + PT(43, 63, 3, 1, TRUE), + PT(32, 19, 6, 0, TRUE), + PT(51, 12, 6, 0, FALSE), + PT(34, 43, 5, 1, TRUE), + PT(22, 2, 3, 3, FALSE), + PT(28, 18, 3, 2, FALSE), + PT(15, 60, 6, 3, FALSE), + PT(56, 16, 5, 2, TRUE), + PT(24, 47, 5, 2, TRUE), + PT(53, 59, 2, 0, TRUE), + PT(55, 49, 2, 1, TRUE), + PT(19, 61, 5, 3, TRUE), + PT(30, 44, 6, 1, TRUE), + PT(46, 55, 2, 1, FALSE), + PT(60, 31, 6, 1, TRUE), + PT(50, 42, 4, 3, TRUE), + PT(13, 59, 3, 2, FALSE), + PT(53, 42, 4, 3, TRUE), + PT( 9, 61, 4, 3, TRUE), + PT(18, 11, 3, 0, FALSE), + PT(12, 21, 3, 2, TRUE), + PT(32, 1, 3, 2, FALSE), + PT( 8, 59, 3, 2, FALSE), + PT(18, 55, 6, 1, TRUE), + PT(21, 3, 5, 2, FALSE), + PT(42, 59, 6, 0, TRUE), + PT(15, 4, 6, 2, TRUE), + PT( 8, 23, 6, 1, TRUE), + PT(56, 61, 5, 1, FALSE), + PT(47, 53, 2, 3, FALSE), + PT(16, 53, 2, 3, FALSE), + PT(35, 19, 5, 2, FALSE), + PT(47, 6, 4, 0, FALSE), + PT(39, 58, 4, 2, FALSE), + PT( 0, 28, 5, 1, FALSE), + PT( 3, 57, 3, 2, TRUE), + PT(40, 7, 3, 1, FALSE), + PT(32, 10, 6, 3, TRUE), + PT( 7, 53, 5, 2, TRUE), + PT(21, 47, 5, 2, FALSE), + PT(16, 44, 4, 1, TRUE), + PT(63, 41, 2, 2, FALSE), + PT(42, 33, 6, 3, FALSE), + PT(52, 26, 5, 2, FALSE), + PT(28, 61, 6, 1, TRUE), + PT(56, 43, 4, 1, FALSE), + PT(53, 40, 3, 3, TRUE), + PT(61, 15, 3, 2, FALSE), + PT(30, 62, 3, 1, TRUE), + PT(12, 62, 3, 3, TRUE), + PT(43, 49, 5, 2, FALSE), + PT(50, 57, 2, 0, TRUE), + PT( 5, 9, 2, 0, TRUE), + PT( 4, 56, 5, 1, FALSE), + PT(50, 0, 2, 3, FALSE), + PT(19, 11, 6, 0, TRUE), + PT(52, 42, 2, 1, TRUE), + PT(44, 34, 4, 0, TRUE), + PT(57, 47, 2, 2, TRUE), + PT(55, 40, 3, 3, FALSE), + PT( 7, 59, 5, 2, TRUE), + PT(17, 3, 5, 0, FALSE), + PT(45, 48, 3, 3, FALSE), + PT(49, 17, 2, 0, TRUE), + PT(35, 1, 3, 3, FALSE), + PT(61, 49, 6, 2, FALSE), + PT(28, 2, 6, 2, FALSE), + PT(33, 14, 4, 2, TRUE), + PT(61, 7, 2, 3, TRUE), + PT(51, 21, 2, 0, FALSE), + PT(41, 50, 6, 1, FALSE), + PT(24, 31, 6, 0, FALSE), + PT(45, 59, 6, 0, FALSE), + PT(39, 62, 2, 3, FALSE), + PT(49, 21, 2, 1, FALSE), + PT(48, 37, 2, 3, TRUE), + PT(51, 6, 6, 2, FALSE), + PT( 0, 41, 3, 0, FALSE), + PT(60, 3, 2, 1, FALSE), + PT(44, 12, 2, 0, TRUE), + PT( 9, 48, 6, 0, FALSE), + PT(16, 14, 2, 0, TRUE), + PT(39, 22, 3, 1, TRUE), + PT(12, 59, 5, 3, FALSE), + PT(43, 51, 3, 3, FALSE), + PT(19, 45, 5, 2, TRUE), + PT(17, 36, 5, 0, TRUE), + PT(52, 62, 5, 1, TRUE), + PT(36, 30, 4, 0, TRUE), + PT(39, 26, 5, 2, TRUE), + PT( 4, 57, 2, 3, FALSE), + PT(62, 51, 4, 3, FALSE), + PT(27, 46, 4, 2, TRUE), + PT(12, 6, 3, 0, TRUE), + PT(37, 25, 3, 0, FALSE), + PT(29, 51, 6, 1, TRUE), + PT(29, 40, 5, 2, TRUE), + PT(28, 16, 5, 1, FALSE), + PT(31, 53, 3, 3, FALSE), + PT(52, 2, 2, 0, FALSE), + PT(43, 58, 2, 2, FALSE), + PT(13, 11, 2, 2, TRUE), + PT(12, 44, 2, 0, FALSE), + PT(55, 58, 3, 0, TRUE), + PT( 6, 19, 2, 3, TRUE), + PT(36, 16, 4, 2, TRUE), + PT(36, 4, 3, 3, FALSE), + PT( 0, 53, 6, 2, FALSE), + PT(58, 0, 6, 3, TRUE), + PT(60, 7, 3, 1, FALSE), + PT(43, 40, 6, 3, FALSE), + PT(52, 57, 5, 3, TRUE), + PT(40, 9, 3, 3, TRUE), + PT(56, 49, 6, 0, FALSE), + PT(22, 37, 6, 0, TRUE), + PT(24, 40, 6, 0, TRUE), + PT(24, 12, 4, 1, FALSE), + PT( 6, 57, 5, 2, TRUE), + PT(61, 32, 4, 2, FALSE), + PT(46, 39, 4, 0, TRUE), + PT(62, 24, 3, 0, FALSE), + PT(21, 60, 4, 2, FALSE), + PT( 6, 27, 4, 3, FALSE), + PT(21, 14, 4, 1, FALSE), + PT(10, 13, 3, 3, TRUE), + PT(24, 22, 6, 2, FALSE), + PT(16, 40, 4, 0, TRUE), + PT(32, 17, 2, 0, TRUE), + PT(54, 50, 2, 2, TRUE), + PT(59, 46, 4, 2, FALSE), + PT(31, 45, 2, 1, FALSE), + PT(54, 46, 4, 0, FALSE), + PT(11, 23, 6, 1, TRUE), + PT(38, 3, 3, 3, TRUE), + PT( 8, 25, 6, 0, TRUE), + PT(42, 24, 4, 2, TRUE), + PT(53, 45, 5, 2, TRUE), + PT(48, 56, 3, 0, FALSE), + PT(28, 37, 2, 2, FALSE), + PT(28, 34, 5, 0, FALSE), + PT( 8, 35, 4, 0, TRUE), + PT(38, 30, 6, 0, FALSE), + PT(25, 15, 2, 2, TRUE), + PT(16, 47, 4, 1, FALSE), + PT(18, 2, 4, 2, TRUE), + PT(60, 1, 3, 2, TRUE), + PT(14, 20, 3, 0, FALSE), + PT(13, 24, 2, 3, TRUE), + PT(34, 11, 6, 0, TRUE), + PT(19, 52, 4, 0, TRUE), + PT(15, 45, 6, 3, FALSE), + PT(57, 31, 4, 2, TRUE), + PT(24, 16, 3, 3, TRUE), + PT(45, 32, 4, 0, FALSE), + PT(25, 11, 6, 0, TRUE), + PT(51, 19, 2, 2, FALSE), + PT(46, 17, 4, 0, TRUE), + PT(45, 10, 6, 3, TRUE), + PT( 7, 21, 3, 1, TRUE), + PT(50, 4, 6, 1, FALSE), + PT( 6, 24, 3, 1, TRUE), + PT(19, 36, 2, 1, FALSE), + PT(54, 34, 2, 3, FALSE), + PT(29, 41, 3, 2, FALSE), + PT(53, 23, 4, 0, TRUE), + PT(54, 23, 5, 1, TRUE), + PT(53, 50, 3, 0, TRUE), + PT(42, 15, 5, 3, FALSE), + PT(16, 0, 6, 2, FALSE), + PT( 2, 14, 5, 0, FALSE), + PT(49, 50, 6, 1, FALSE), + PT(59, 5, 4, 0, FALSE), + PT(54, 38, 2, 1, FALSE), + PT(52, 6, 6, 2, FALSE), + PT(30, 49, 6, 1, FALSE), + PT(53, 5, 6, 2, FALSE), + PT(30, 19, 2, 2, TRUE), + PT(21, 20, 5, 2, FALSE), + PT(41, 28, 3, 0, FALSE), + PT(36, 36, 2, 1, FALSE), + PT(34, 41, 3, 0, FALSE), + PT(52, 54, 6, 0, FALSE), + PT(30, 1, 4, 1, TRUE), + PT(12, 60, 4, 2, FALSE), + PT(10, 61, 2, 3, FALSE), + PT(39, 30, 4, 1, TRUE), + PT(21, 2, 2, 1, FALSE), + PT(17, 25, 5, 1, FALSE), + PT(29, 49, 2, 2, TRUE), + PT( 3, 59, 5, 1, FALSE), + PT(33, 25, 5, 2, FALSE), + PT(10, 35, 2, 0, TRUE), + PT(37, 17, 3, 1, FALSE), + PT(26, 10, 6, 2, FALSE), + PT(59, 11, 6, 1, TRUE), + PT(33, 11, 6, 3, TRUE), + PT( 1, 49, 5, 0, FALSE), + PT(53, 29, 4, 3, TRUE), + PT(44, 48, 6, 0, TRUE), + PT(46, 57, 5, 2, TRUE), + PT(48, 5, 5, 2, FALSE), + PT(18, 42, 5, 1, TRUE), + PT(57, 34, 4, 0, FALSE), + PT(21, 52, 3, 2, FALSE), + PT(28, 1, 2, 2, TRUE), + PT(32, 22, 4, 1, FALSE), + PT(19, 4, 3, 0, FALSE), + PT(30, 19, 2, 0, FALSE), + PT(37, 51, 2, 2, TRUE), + PT(57, 3, 6, 0, TRUE), + PT(63, 54, 3, 0, FALSE), + PT(20, 35, 2, 0, FALSE), + PT(47, 30, 3, 3, TRUE), + PT(31, 23, 5, 2, FALSE), + PT( 2, 22, 6, 0, TRUE), + PT(32, 24, 6, 0, FALSE), + PT(46, 24, 6, 3, TRUE), + PT(59, 14, 6, 0, FALSE), + PT(16, 57, 4, 2, FALSE), + PT(38, 57, 3, 3, FALSE), + PT(48, 38, 5, 3, FALSE), + PT(18, 1, 2, 2, FALSE), + PT(55, 42, 5, 3, FALSE), + PT(33, 6, 3, 2, TRUE), + PT(42, 22, 6, 1, FALSE), + PT( 9, 56, 3, 2, FALSE), + PT( 7, 34, 2, 3, TRUE), + PT(59, 45, 2, 2, TRUE), + PT( 7, 30, 5, 3, FALSE), + PT(27, 46, 3, 2, TRUE), + PT( 4, 9, 6, 0, FALSE), + PT(48, 45, 6, 3, TRUE), + PT(45, 52, 4, 2, FALSE), + PT(24, 36, 4, 2, TRUE), + PT(14, 45, 4, 3, FALSE), + PT(35, 10, 2, 3, FALSE), + PT(18, 45, 2, 0, TRUE), + PT(33, 40, 5, 3, FALSE), + PT(15, 1, 4, 0, TRUE), + PT( 1, 49, 2, 1, FALSE), + PT(63, 27, 3, 3, FALSE), + PT(33, 37, 5, 1, TRUE), + PT(38, 24, 2, 1, TRUE), + PT(21, 45, 6, 2, FALSE), + PT(35, 33, 6, 3, FALSE), + PT(14, 46, 3, 2, FALSE), + PT(20, 34, 3, 2, FALSE), + PT(44, 11, 5, 0, FALSE), + PT(26, 24, 4, 0, TRUE), + PT(33, 7, 3, 1, FALSE), + PT(36, 38, 5, 0, TRUE), + PT(43, 10, 6, 2, FALSE), + PT(62, 39, 6, 1, TRUE), + PT(18, 52, 3, 1, TRUE), + PT(31, 1, 5, 1, FALSE), + PT(46, 6, 4, 1, TRUE), + PT(47, 31, 2, 2, FALSE), + PT(24, 6, 4, 3, FALSE), + PT(49, 31, 5, 1, TRUE), + PT(34, 38, 5, 3, FALSE), + PT(30, 21, 2, 3, FALSE), + PT(32, 34, 5, 0, FALSE), + PT(21, 55, 2, 1, FALSE), + PT(37, 4, 5, 2, FALSE), + PT(31, 4, 5, 3, FALSE), + PT(12, 19, 3, 0, FALSE), + PT( 7, 11, 6, 3, FALSE), + PT(29, 28, 5, 1, FALSE), + PT(48, 34, 3, 2, FALSE), + PT(46, 18, 5, 3, TRUE), + PT(43, 33, 3, 3, FALSE), + PT(22, 56, 6, 0, FALSE), + PT( 4, 2, 2, 3, FALSE), + PT( 5, 20, 4, 0, FALSE), + PT(56, 60, 6, 1, TRUE), + PT(33, 27, 5, 3, TRUE), + PT(20, 42, 4, 3, TRUE), + PT(56, 20, 3, 1, TRUE), + PT(43, 31, 5, 1, TRUE), + PT(41, 43, 4, 2, TRUE), + PT(39, 54, 4, 0, TRUE), + PT(17, 34, 3, 1, TRUE), + PT(41, 3, 3, 1, TRUE), + PT(24, 36, 5, 0, FALSE), + PT(33, 45, 6, 3, FALSE), + PT(60, 44, 4, 2, FALSE), + PT(51, 23, 3, 3, TRUE), + PT(42, 58, 4, 0, TRUE), + PT(10, 35, 6, 3, TRUE), + PT( 0, 11, 4, 0, TRUE), + PT(17, 56, 3, 0, TRUE), + PT(15, 14, 3, 2, FALSE), + PT(31, 15, 6, 3, TRUE), + PT(60, 16, 6, 3, TRUE), + PT(56, 49, 6, 2, TRUE), + PT( 7, 21, 5, 0, FALSE), + PT(30, 46, 3, 0, TRUE), + PT(38, 16, 6, 1, TRUE), + PT(61, 53, 5, 3, TRUE), + PT(58, 4, 6, 2, FALSE), + PT(13, 24, 3, 1, FALSE), + PT( 1, 45, 2, 2, TRUE), + PT(61, 26, 2, 3, TRUE), + PT(23, 63, 6, 1, FALSE), + PT(11, 33, 2, 0, TRUE), + PT(30, 38, 5, 1, TRUE), + PT(13, 25, 4, 2, FALSE), + PT(46, 4, 3, 1, TRUE), + PT(27, 51, 4, 0, FALSE), + PT(21, 33, 3, 2, TRUE), + PT(31, 4, 4, 0, TRUE), + PT(15, 18, 3, 3, TRUE), + PT(45, 42, 6, 1, FALSE), + PT( 3, 55, 3, 3, TRUE), + PT(53, 7, 4, 3, TRUE), + PT(36, 31, 6, 0, TRUE), + PT(47, 48, 2, 2, TRUE), + PT( 6, 0, 4, 2, FALSE), + PT(11, 34, 3, 1, FALSE), + PT(12, 59, 5, 0, TRUE), + PT(20, 26, 2, 3, TRUE), + PT(55, 32, 4, 2, TRUE), + PT(63, 38, 6, 3, TRUE), + PT(58, 62, 2, 0, FALSE), + PT(34, 4, 2, 0, TRUE), + PT(40, 18, 3, 2, FALSE), + PT( 3, 46, 5, 3, FALSE), + PT(14, 56, 5, 0, FALSE), + PT( 1, 41, 4, 1, FALSE), + PT(30, 51, 3, 0, TRUE), + PT( 6, 33, 4, 3, TRUE), + PT(51, 25, 3, 1, FALSE), + PT( 2, 5, 2, 3, TRUE), + PT(17, 17, 5, 2, FALSE), + PT(31, 38, 3, 3, FALSE), + PT(57, 31, 5, 0, FALSE), + PT(46, 47, 2, 1, FALSE), + PT(34, 52, 2, 1, TRUE), + PT(59, 38, 5, 3, TRUE), + PT(52, 0, 2, 2, FALSE), + PT(16, 49, 2, 0, TRUE), + PT(29, 45, 5, 1, FALSE), + PT( 8, 8, 6, 3, TRUE), + PT(21, 24, 6, 2, FALSE), + PT( 4, 43, 4, 2, FALSE), + PT(47, 30, 4, 3, TRUE), + PT(34, 42, 4, 2, FALSE), + PT( 7, 20, 4, 2, TRUE), + PT( 1, 39, 3, 0, TRUE), + PT(41, 10, 5, 0, TRUE), + PT(61, 28, 5, 3, TRUE), + PT(13, 31, 3, 2, FALSE), + PT(36, 61, 6, 1, FALSE), + PT(54, 29, 4, 2, FALSE), + PT(20, 33, 2, 3, FALSE), + PT(26, 13, 5, 0, TRUE), + PT(63, 43, 5, 1, FALSE), + PT(26, 62, 6, 2, TRUE), + PT(17, 40, 3, 0, FALSE), + PT(50, 5, 2, 2, TRUE), + PT(33, 46, 6, 2, FALSE), + PT(45, 20, 5, 1, FALSE), + PT(60, 8, 6, 3, TRUE), + PT(63, 52, 3, 3, FALSE), + PT(39, 36, 3, 2, FALSE), + PT(22, 22, 6, 1, TRUE), + PT(41, 59, 3, 0, TRUE), + PT(54, 47, 3, 2, FALSE), + PT( 3, 37, 5, 2, FALSE), + PT(11, 22, 6, 3, FALSE), + PT(28, 29, 3, 1, TRUE), + PT(44, 39, 3, 1, TRUE), + PT(11, 31, 5, 1, TRUE), + PT( 8, 16, 4, 3, TRUE), + PT(63, 37, 5, 3, TRUE), + PT(51, 19, 3, 3, TRUE), + PT( 4, 49, 6, 3, TRUE), + PT(14, 47, 2, 1, FALSE), + PT( 8, 35, 4, 0, FALSE), + PT(58, 26, 3, 3, FALSE), + PT(47, 11, 3, 3, TRUE), + PT(30, 32, 3, 0, TRUE), + PT(35, 59, 2, 2, FALSE), + PT(37, 0, 4, 3, TRUE), + PT(20, 4, 4, 2, TRUE), + PT(54, 26, 5, 1, TRUE), + PT(39, 33, 2, 2, TRUE), + PT(40, 19, 5, 2, FALSE), + PT(14, 60, 6, 2, TRUE), + PT(12, 45, 5, 1, TRUE), + PT(55, 22, 2, 2, TRUE), + PT(41, 21, 3, 2, TRUE), + PT(23, 52, 6, 3, FALSE), + PT( 9, 10, 6, 0, TRUE), + PT(55, 34, 5, 0, FALSE), + PT(23, 43, 6, 2, TRUE), + PT(20, 43, 2, 1, FALSE), + PT( 8, 19, 3, 3, TRUE), + PT(49, 19, 5, 0, FALSE), + PT( 6, 7, 6, 2, TRUE), + PT(35, 58, 5, 0, TRUE), + PT(15, 36, 5, 3, FALSE), + PT( 7, 53, 4, 3, FALSE), + PT(14, 18, 2, 2, TRUE), + PT(35, 51, 5, 2, FALSE), + PT(14, 33, 4, 3, FALSE), + PT(28, 18, 4, 2, TRUE), + PT(35, 29, 5, 3, TRUE), + PT( 4, 53, 6, 1, TRUE), + PT(22, 1, 4, 2, FALSE), + PT(61, 44, 5, 3, FALSE), + PT(53, 10, 4, 2, TRUE), + PT(17, 19, 4, 2, TRUE), + PT(27, 27, 2, 2, TRUE), + PT(21, 57, 2, 0, FALSE), + PT(11, 53, 4, 2, FALSE), + PT(58, 39, 6, 0, FALSE), + PT(46, 47, 2, 2, TRUE), + PT(16, 31, 6, 2, TRUE), + PT(27, 40, 6, 2, TRUE), + PT(38, 48, 6, 3, TRUE), + PT(52, 55, 5, 1, TRUE), + PT(15, 48, 5, 0, TRUE), + PT(46, 63, 5, 1, TRUE), + PT(56, 52, 5, 1, TRUE), + PT(43, 47, 4, 2, TRUE), + PT(13, 40, 5, 1, FALSE), + PT(51, 24, 2, 0, FALSE), + PT(33, 18, 2, 0, TRUE), + PT(31, 34, 6, 2, FALSE), + PT(17, 37, 4, 1, TRUE), + PT(33, 63, 2, 0, TRUE), + PT(38, 39, 4, 2, TRUE), + PT(40, 54, 2, 1, FALSE), + PT(21, 38, 6, 1, FALSE), + PT(17, 24, 4, 2, FALSE), + PT(50, 37, 6, 3, TRUE), + PT(39, 58, 6, 1, TRUE), + PT(53, 7, 3, 2, FALSE), + PT(26, 14, 5, 1, FALSE), + PT(30, 47, 3, 3, TRUE), + PT( 0, 46, 4, 0, TRUE), + PT(27, 60, 2, 2, FALSE), + PT(47, 58, 5, 3, TRUE), + PT(62, 56, 2, 2, TRUE), + PT(26, 19, 5, 3, TRUE), + PT(41, 13, 5, 3, TRUE), + PT(55, 23, 3, 0, FALSE), + PT(48, 28, 6, 2, TRUE), + PT(21, 52, 2, 2, FALSE), + PT(40, 17, 5, 2, FALSE), + PT(44, 37, 5, 1, FALSE), + PT(32, 63, 5, 0, FALSE), + PT(12, 52, 3, 1, TRUE), + PT(48, 46, 4, 2, TRUE), + PT(55, 28, 4, 2, FALSE), + PT(31, 37, 4, 3, FALSE), + PT(12, 25, 6, 2, FALSE), + PT(24, 16, 6, 2, TRUE), + PT(10, 19, 2, 0, TRUE), + PT(37, 19, 4, 0, FALSE), + PT(19, 25, 2, 0, TRUE), + PT(32, 40, 3, 2, TRUE), + PT(62, 48, 3, 1, TRUE), + PT(35, 36, 4, 0, TRUE), + PT(13, 35, 4, 1, TRUE), + PT(29, 40, 5, 3, FALSE), + PT(45, 18, 3, 3, TRUE), + PT(14, 46, 5, 1, TRUE), + PT(11, 49, 6, 1, FALSE), + PT(36, 60, 5, 2, FALSE), + PT(19, 60, 2, 1, FALSE), + PT(40, 22, 5, 1, FALSE), + PT( 5, 12, 6, 1, FALSE), + PT(57, 11, 6, 1, FALSE), + PT(33, 4, 2, 2, FALSE), + PT(16, 49, 6, 1, FALSE), + PT(18, 31, 4, 1, TRUE), + PT(57, 46, 5, 3, FALSE), + PT(34, 61, 4, 3, TRUE), + PT(12, 30, 3, 0, FALSE), + PT(37, 0, 2, 3, TRUE), + PT( 6, 49, 2, 2, FALSE), + PT(19, 33, 3, 1, FALSE), + PT(20, 32, 6, 2, TRUE), + PT(10, 59, 4, 2, TRUE), + PT(51, 8, 5, 0, FALSE), + PT(61, 2, 6, 1, TRUE), + PT(35, 0, 2, 1, TRUE), + PT(34, 33, 5, 0, FALSE), + PT(48, 20, 5, 3, FALSE), + PT(20, 50, 6, 3, FALSE), + PT(57, 35, 3, 3, FALSE), + PT(28, 17, 6, 0, FALSE), + PT(55, 22, 6, 0, FALSE), + PT(21, 49, 3, 3, TRUE), + PT(52, 40, 5, 2, FALSE), + PT(53, 5, 5, 0, TRUE), + PT(55, 51, 5, 1, FALSE), + PT(28, 23, 5, 3, FALSE), + PT(16, 6, 2, 3, FALSE), + PT(50, 31, 5, 3, TRUE), + PT( 0, 41, 3, 3, FALSE), + PT( 4, 1, 2, 3, FALSE), + PT(59, 35, 3, 3, FALSE), + PT(27, 52, 5, 1, FALSE), + PT(48, 17, 5, 1, TRUE), + PT( 3, 0, 3, 3, TRUE), + PT(29, 55, 3, 1, FALSE), + PT(58, 24, 4, 2, TRUE), + PT(28, 22, 5, 2, FALSE), + PT( 4, 63, 6, 1, TRUE), + PT(38, 35, 5, 2, TRUE), + PT(21, 44, 4, 3, TRUE), + PT( 2, 53, 4, 3, TRUE), + PT( 7, 53, 6, 1, TRUE), + PT(26, 12, 2, 0, FALSE), + PT(40, 38, 5, 2, FALSE), + PT(47, 54, 2, 3, FALSE), + PT(55, 11, 4, 3, TRUE), + PT(27, 61, 3, 0, FALSE), + PT(39, 31, 4, 0, FALSE), + PT(43, 42, 6, 1, TRUE), + PT(11, 15, 4, 0, FALSE), + PT(53, 60, 5, 3, TRUE), + PT(51, 33, 2, 2, TRUE), + PT(45, 38, 6, 2, FALSE), + PT(31, 26, 4, 0, TRUE), + PT(47, 44, 5, 1, FALSE), + PT(26, 50, 3, 1, FALSE), + PT(59, 63, 4, 0, TRUE), + PT(19, 63, 2, 1, TRUE), + PT(15, 36, 4, 1, FALSE), + PT(20, 27, 2, 0, FALSE), + PT(33, 6, 5, 0, FALSE), + PT(37, 52, 2, 0, FALSE), + PT(46, 14, 2, 2, FALSE), + PT(60, 62, 4, 2, TRUE), + PT(22, 6, 6, 0, FALSE), + PT(11, 4, 3, 3, TRUE), + PT(62, 2, 4, 2, FALSE), + PT(12, 23, 4, 2, TRUE), + PT(43, 60, 5, 2, TRUE), + PT(21, 54, 6, 1, TRUE), + PT(24, 35, 5, 1, FALSE), + PT(29, 16, 5, 1, FALSE), + PT(53, 23, 5, 0, FALSE), + PT( 0, 55, 4, 2, FALSE), + PT(10, 59, 2, 2, TRUE), + PT(29, 11, 3, 3, TRUE), + PT(60, 49, 4, 2, TRUE), + PT(29, 15, 3, 2, TRUE), + PT(32, 19, 6, 2, FALSE), + PT(17, 43, 5, 3, FALSE), + PT(35, 12, 5, 3, FALSE), + PT(36, 2, 2, 2, FALSE), + PT(49, 22, 3, 0, TRUE), + PT(14, 35, 6, 2, TRUE), + PT(26, 16, 2, 3, FALSE), + PT(20, 4, 3, 0, TRUE), + PT(45, 39, 6, 3, TRUE), + PT(51, 2, 6, 0, TRUE), + PT( 2, 4, 2, 3, FALSE), + PT(13, 34, 4, 2, TRUE), + PT(37, 0, 2, 3, FALSE), + PT(42, 63, 4, 3, FALSE), + PT(32, 12, 2, 1, FALSE), + PT(47, 46, 6, 2, TRUE), + PT(27, 13, 4, 1, FALSE), + PT(30, 1, 6, 2, FALSE), + PT( 5, 34, 4, 0, TRUE), + PT(52, 42, 6, 1, FALSE), + PT(11, 9, 3, 2, TRUE), + PT(63, 50, 5, 3, TRUE), + PT(61, 24, 5, 2, TRUE), + PT(11, 56, 6, 3, FALSE), + PT(57, 23, 5, 0, FALSE), + PT(52, 4, 4, 2, FALSE), + PT(54, 14, 5, 1, FALSE), + PT(56, 1, 2, 2, FALSE), + PT(60, 36, 4, 1, FALSE), + PT(33, 3, 3, 0, FALSE), + PT(50, 47, 2, 1, FALSE), + PT(41, 36, 6, 0, TRUE), + PT(10, 59, 2, 1, FALSE), + PT(26, 28, 4, 0, FALSE), + PT(48, 49, 3, 1, TRUE), + PT(26, 33, 2, 0, FALSE), + PT( 5, 41, 2, 0, FALSE), + PT(38, 45, 2, 1, TRUE), + PT(22, 12, 3, 2, TRUE), + PT(43, 6, 3, 1, TRUE), + PT( 6, 18, 2, 2, FALSE), + PT(56, 15, 6, 2, TRUE), + PT(35, 58, 5, 2, FALSE), + PT( 0, 25, 6, 1, TRUE), + PT(41, 20, 5, 2, TRUE), + PT(42, 33, 5, 0, TRUE), + PT(20, 49, 2, 2, FALSE), + PT(26, 6, 3, 3, FALSE), + PT(24, 27, 5, 0, FALSE), + PT(59, 22, 5, 0, TRUE), + PT(21, 30, 2, 1, FALSE), + PT(52, 10, 2, 2, FALSE), + PT(27, 5, 4, 3, TRUE), + PT(11, 1, 4, 3, FALSE), + PT(42, 34, 6, 2, TRUE), + PT(33, 32, 3, 0, FALSE), + PT(32, 55, 2, 3, TRUE), + PT(20, 31, 2, 0, TRUE), + PT(29, 17, 4, 2, TRUE), + PT(36, 43, 5, 3, TRUE), + PT( 7, 63, 3, 3, TRUE), + PT(44, 37, 4, 2, TRUE), + PT(42, 41, 3, 0, FALSE), + PT(17, 36, 5, 0, FALSE), + PT(49, 44, 5, 1, FALSE), + PT(57, 11, 4, 3, FALSE), + PT(40, 16, 4, 3, FALSE), + PT(34, 6, 2, 3, FALSE), + PT( 9, 44, 2, 1, TRUE), + PT(52, 25, 2, 2, TRUE), + PT(58, 18, 4, 0, TRUE), + PT(29, 56, 4, 1, TRUE), + PT(18, 37, 4, 2, FALSE), + PT(33, 48, 2, 1, FALSE), + PT(55, 26, 2, 1, FALSE), + PT(36, 59, 4, 2, TRUE), + PT(50, 21, 4, 1, TRUE), + PT(13, 26, 2, 0, FALSE), + PT(22, 46, 4, 3, FALSE), + PT(29, 20, 2, 3, FALSE), + PT(62, 46, 3, 3, TRUE), + PT(10, 22, 2, 0, FALSE), + PT(29, 48, 5, 1, TRUE), + PT( 4, 58, 3, 0, TRUE), + PT( 8, 45, 5, 3, FALSE), + PT(40, 30, 6, 1, TRUE), + PT(10, 18, 5, 3, FALSE), + PT(13, 3, 5, 3, TRUE), + PT(38, 58, 3, 3, FALSE), + PT(53, 59, 5, 1, FALSE), + PT( 3, 26, 3, 0, FALSE), + PT(63, 11, 4, 3, TRUE), + PT( 4, 5, 6, 2, FALSE), + PT(54, 11, 4, 3, TRUE), + PT(59, 23, 2, 0, TRUE), + PT(13, 39, 4, 3, FALSE), + PT(44, 31, 4, 0, FALSE), + PT(38, 16, 4, 0, FALSE), + PT(37, 35, 5, 2, TRUE), + PT(55, 9, 2, 1, TRUE), + PT(20, 23, 5, 2, TRUE), + PT(46, 61, 4, 1, TRUE), + PT(29, 26, 3, 3, TRUE), + PT(33, 51, 5, 3, FALSE), + PT(40, 23, 2, 1, TRUE), + PT(38, 60, 6, 3, FALSE), + PT(20, 26, 6, 1, TRUE), + PT(50, 32, 5, 1, TRUE), + PT(25, 62, 4, 0, FALSE), + PT(12, 2, 5, 2, TRUE), + PT(60, 60, 5, 1, FALSE), + PT(48, 48, 5, 0, FALSE), + PT(37, 63, 3, 3, FALSE), + PT( 3, 23, 3, 3, FALSE), + PT(53, 17, 3, 2, FALSE), + PT(27, 20, 5, 1, FALSE), + PT(40, 58, 4, 1, TRUE), + PT(14, 31, 2, 1, FALSE), + PT(54, 33, 4, 0, FALSE), + PT( 7, 59, 2, 0, FALSE), + PT(35, 25, 6, 2, FALSE), + PT(13, 46, 3, 0, FALSE), + PT(63, 32, 4, 2, TRUE), + PT(62, 59, 2, 2, TRUE), + PT(11, 46, 2, 1, FALSE), + PT(55, 11, 4, 1, TRUE), + PT(61, 50, 3, 3, TRUE), + PT(22, 3, 4, 3, TRUE), + PT(20, 12, 4, 0, TRUE), + PT(24, 3, 6, 0, FALSE), + PT(62, 33, 2, 1, TRUE), + PT(15, 0, 6, 1, FALSE), + PT(63, 35, 2, 3, FALSE), + PT(14, 49, 3, 2, TRUE), + PT(24, 28, 3, 2, TRUE), + PT(48, 14, 3, 3, FALSE), + PT(33, 32, 4, 1, TRUE), + PT(63, 12, 3, 3, FALSE), + PT(20, 51, 4, 1, FALSE), + PT(34, 33, 2, 2, TRUE), + PT(54, 5, 3, 3, FALSE), + PT(29, 49, 2, 2, FALSE), + PT(32, 17, 6, 3, TRUE), + PT(13, 51, 3, 0, TRUE), + PT(37, 5, 6, 3, FALSE), + PT(30, 49, 4, 0, FALSE), + PT(53, 58, 5, 3, TRUE), + PT(50, 47, 6, 0, FALSE), + PT(20, 35, 5, 2, TRUE), + PT(53, 30, 5, 0, TRUE), + PT( 5, 5, 3, 1, TRUE), + PT( 9, 31, 4, 3, FALSE), + PT(47, 11, 2, 2, TRUE), + PT(21, 17, 2, 1, TRUE), + PT(41, 27, 3, 0, FALSE), + PT(28, 19, 6, 2, TRUE), + PT(52, 49, 4, 1, TRUE), + PT(39, 63, 5, 3, TRUE), + PT( 9, 48, 3, 0, TRUE), + PT(35, 18, 6, 2, FALSE), + PT( 2, 42, 4, 0, TRUE), + PT( 9, 60, 3, 2, TRUE), + PT(12, 2, 2, 0, FALSE), + PT(34, 5, 2, 3, TRUE), + PT(34, 8, 3, 1, TRUE), + PT(10, 15, 2, 2, TRUE), + PT( 2, 17, 2, 1, TRUE), + PT( 1, 33, 4, 1, FALSE), + PT(22, 57, 6, 1, TRUE), + PT(36, 56, 6, 2, FALSE), + PT(15, 30, 5, 1, TRUE), + PT(43, 21, 2, 2, TRUE), + PT(32, 34, 5, 3, FALSE), + PT(58, 63, 6, 0, TRUE), + PT(26, 39, 5, 1, TRUE), + PT(41, 52, 2, 2, FALSE), + PT(22, 57, 5, 3, TRUE), + PT(19, 62, 2, 3, FALSE), + PT(54, 33, 6, 0, FALSE), + PT( 0, 36, 5, 1, TRUE), + PT(36, 33, 6, 0, FALSE), + PT(21, 49, 2, 1, TRUE), + PT(16, 55, 4, 2, FALSE), + PT( 8, 7, 4, 1, TRUE), + PT(33, 9, 4, 2, TRUE), + PT( 5, 60, 6, 1, FALSE), + PT(25, 3, 4, 2, TRUE), + PT(15, 41, 5, 1, TRUE), + PT(22, 7, 2, 1, TRUE), + PT(62, 61, 4, 2, TRUE), + PT(54, 11, 5, 0, FALSE), + PT(46, 43, 2, 3, FALSE), + PT(12, 49, 2, 0, TRUE), + PT(48, 19, 5, 2, TRUE), + PT(38, 62, 6, 3, TRUE), + PT(41, 47, 5, 3, FALSE), + PT(21, 61, 2, 3, TRUE), + PT(28, 46, 4, 0, TRUE), + PT(51, 47, 2, 0, FALSE), + PT(13, 5, 3, 2, TRUE), + PT(28, 26, 2, 1, FALSE), + PT(14, 24, 6, 3, TRUE), + PT(27, 17, 2, 2, FALSE), + PT( 6, 20, 4, 0, TRUE), + PT(49, 14, 4, 3, TRUE), + PT(26, 3, 2, 0, FALSE), + PT( 0, 52, 6, 0, TRUE), + PT(63, 11, 3, 2, TRUE), + PT(15, 18, 3, 3, TRUE), + PT(26, 21, 2, 0, FALSE), + PT(15, 0, 4, 2, FALSE), + PT(62, 10, 5, 1, FALSE), + PT(48, 43, 4, 2, FALSE), + PT(38, 49, 2, 0, FALSE), + PT(45, 47, 5, 3, TRUE), + PT(63, 12, 2, 1, TRUE), + PT(18, 11, 2, 3, FALSE), + PT(21, 7, 3, 3, TRUE), + PT(40, 16, 6, 1, FALSE), + PT(15, 23, 2, 2, TRUE), + PT(11, 39, 6, 1, TRUE), + PT(52, 29, 2, 0, FALSE), + PT(28, 58, 2, 1, FALSE), + PT(44, 39, 6, 3, TRUE), + PT(10, 26, 6, 1, FALSE), + PT( 5, 31, 4, 0, TRUE), + PT(36, 13, 3, 3, TRUE), + PT(28, 23, 4, 2, FALSE), + PT(47, 59, 6, 1, FALSE), + PT(59, 37, 2, 0, FALSE), + PT( 3, 47, 4, 0, TRUE), + PT(12, 16, 4, 1, TRUE), + PT(14, 58, 5, 2, FALSE), + PT(51, 3, 5, 2, FALSE), + PT(18, 6, 3, 2, FALSE), + PT(42, 55, 6, 0, FALSE), + PT(63, 1, 3, 3, FALSE), + PT(53, 22, 6, 3, TRUE), + PT(44, 50, 6, 2, TRUE), + PT( 5, 17, 4, 1, FALSE), + PT(41, 9, 4, 0, FALSE), + PT(43, 13, 3, 3, TRUE), + PT(24, 13, 4, 0, FALSE), + PT(35, 57, 2, 3, FALSE), + PT(15, 58, 3, 0, FALSE), + PT(33, 53, 5, 1, TRUE), + PT(54, 38, 5, 1, TRUE), + PT(35, 5, 5, 3, TRUE), + PT(27, 8, 2, 3, TRUE), + PT(62, 9, 2, 3, FALSE), + PT(45, 58, 6, 3, TRUE), + PT(21, 53, 6, 2, TRUE), + PT(41, 10, 2, 1, FALSE), + PT( 2, 57, 3, 3, TRUE), + PT(20, 52, 6, 1, TRUE), + PT(23, 29, 3, 0, FALSE), + PT(22, 29, 3, 1, FALSE), + PT( 1, 57, 4, 1, FALSE), + PT(30, 39, 6, 3, FALSE), + PT(50, 20, 4, 3, FALSE), + PT(10, 57, 6, 3, FALSE), + PT(31, 13, 3, 3, FALSE), + PT(11, 10, 3, 0, TRUE), + PT(53, 29, 6, 2, FALSE), + PT( 3, 18, 2, 3, FALSE), + PT(12, 19, 5, 3, FALSE), + PT(12, 52, 3, 3, FALSE), + PT(16, 20, 3, 3, FALSE), + PT(35, 50, 4, 3, TRUE), + PT( 2, 16, 5, 0, TRUE), + PT(53, 24, 6, 1, TRUE), + PT(51, 29, 3, 1, FALSE), + PT(60, 21, 4, 1, TRUE), + PT(62, 63, 4, 1, FALSE), + PT(42, 2, 5, 2, FALSE), + PT(40, 10, 5, 3, TRUE), + PT(26, 6, 6, 2, TRUE), + PT(60, 23, 5, 1, TRUE), + PT( 3, 18, 2, 3, TRUE), + PT(47, 10, 4, 3, FALSE), + PT(18, 56, 2, 0, TRUE), + PT(54, 27, 4, 1, TRUE), + PT( 1, 57, 6, 2, TRUE), + PT(25, 25, 2, 3, TRUE), + PT( 9, 40, 4, 1, FALSE), + PT(30, 39, 5, 2, FALSE), + PT(53, 51, 5, 2, FALSE), + PT(39, 37, 6, 0, TRUE), + PT( 6, 49, 5, 2, TRUE), + PT(26, 57, 5, 0, FALSE), + PT(45, 4, 3, 3, FALSE), + PT(36, 62, 3, 2, FALSE), + PT(60, 48, 3, 1, TRUE), + PT(63, 62, 6, 3, TRUE), + PT(34, 54, 2, 0, TRUE), + PT( 0, 1, 3, 2, FALSE), + PT(18, 26, 2, 0, FALSE), + PT(18, 30, 5, 2, FALSE), + PT(31, 18, 5, 1, FALSE), + PT(47, 6, 3, 0, TRUE), + PT(53, 26, 3, 0, FALSE), + PT(59, 9, 6, 3, FALSE), + PT(52, 29, 2, 1, TRUE), + PT( 2, 7, 2, 0, FALSE), + PT(32, 47, 3, 2, TRUE), + PT(11, 3, 6, 1, TRUE), + PT(28, 22, 6, 0, TRUE), + PT( 5, 19, 3, 1, TRUE), + PT(41, 6, 2, 1, TRUE), + PT(48, 45, 6, 3, FALSE), + PT(42, 45, 5, 2, FALSE), + PT(25, 52, 3, 2, FALSE), + PT(15, 21, 2, 1, FALSE), + PT(54, 21, 5, 2, FALSE), + PT(58, 6, 3, 2, FALSE), + PT(18, 29, 4, 3, FALSE), + PT( 3, 56, 3, 2, TRUE), + PT( 1, 1, 5, 2, TRUE), + PT(23, 46, 2, 0, FALSE), + PT(20, 23, 3, 2, FALSE), + PT(52, 15, 5, 0, FALSE), + PT( 9, 55, 3, 1, TRUE), + PT(40, 29, 4, 3, FALSE), + PT(41, 45, 6, 3, FALSE), + PT(30, 23, 5, 0, FALSE), + PT(21, 15, 3, 2, FALSE), + PT(32, 45, 2, 0, FALSE), + PT(39, 22, 5, 3, FALSE), + PT(20, 9, 2, 1, FALSE), + PT(59, 61, 4, 0, TRUE), + PT(37, 26, 5, 2, FALSE), + PT( 0, 34, 6, 3, FALSE), + PT(13, 48, 2, 0, FALSE), + PT(23, 25, 3, 1, TRUE), + PT( 0, 59, 4, 0, TRUE), + PT(42, 40, 6, 2, FALSE), + PT(45, 15, 2, 3, FALSE), + PT(10, 48, 5, 0, FALSE), + PT( 6, 0, 4, 2, TRUE), + PT(49, 46, 5, 1, FALSE), + PT(20, 51, 5, 0, FALSE), + PT(54, 16, 5, 3, FALSE), + PT( 5, 46, 3, 0, TRUE), + PT(25, 26, 2, 2, TRUE), + PT(44, 20, 2, 3, TRUE), + PT(55, 15, 2, 1, TRUE), + PT(50, 23, 3, 1, TRUE), + PT(57, 24, 6, 1, FALSE), + PT(46, 50, 3, 3, FALSE), + PT(36, 29, 6, 0, TRUE), + PT(18, 29, 5, 1, TRUE), + PT(20, 12, 4, 3, TRUE), + PT(54, 46, 6, 1, FALSE), + PT( 6, 10, 3, 1, FALSE), + PT(40, 40, 4, 0, FALSE), + PT(58, 58, 2, 3, TRUE), + PT( 8, 39, 6, 3, FALSE), + PT(24, 26, 2, 0, FALSE), + PT(30, 38, 3, 1, TRUE), + PT(31, 51, 3, 3, TRUE), + PT(33, 23, 5, 3, TRUE), + PT( 1, 8, 4, 0, FALSE), + PT(53, 3, 3, 0, TRUE), + PT(59, 2, 4, 0, FALSE), + PT( 2, 45, 4, 1, TRUE), + PT(14, 23, 6, 1, FALSE), + PT(49, 41, 2, 0, TRUE), + PT(34, 23, 4, 1, FALSE), + PT(58, 44, 4, 1, TRUE), + PT(52, 32, 3, 0, FALSE), + PT( 0, 58, 4, 1, FALSE), + PT(37, 51, 4, 0, TRUE), + PT(51, 4, 4, 3, TRUE), + PT( 4, 24, 6, 1, FALSE), + PT(44, 12, 5, 3, TRUE), + PT(40, 20, 5, 2, FALSE), + PT(63, 48, 5, 1, TRUE), + PT(48, 33, 3, 2, TRUE), + PT( 1, 37, 6, 1, FALSE), + PT( 5, 35, 6, 2, FALSE), + PT(36, 16, 6, 0, FALSE), + PT(61, 20, 3, 1, TRUE), + PT(63, 56, 5, 3, TRUE), + PT(34, 27, 6, 1, FALSE), + PT(37, 7, 6, 3, TRUE), + PT(10, 12, 3, 2, TRUE), + PT( 3, 30, 3, 1, FALSE), + PT(15, 60, 2, 1, FALSE), + PT(17, 24, 3, 2, TRUE), + PT( 0, 53, 5, 3, TRUE), + PT(50, 24, 2, 2, FALSE), + PT(35, 48, 3, 1, TRUE), + PT(17, 61, 2, 1, FALSE), + PT(26, 22, 6, 2, TRUE), + PT(40, 5, 4, 2, FALSE), + PT(23, 61, 6, 3, TRUE), + PT(46, 9, 5, 3, FALSE), + PT(24, 29, 2, 3, TRUE), + PT(32, 31, 3, 0, FALSE), + PT(35, 44, 5, 3, TRUE), + PT(32, 63, 2, 3, FALSE), + PT(63, 41, 5, 3, FALSE), + PT(35, 59, 5, 0, TRUE), + PT(24, 57, 2, 1, TRUE), + PT(30, 50, 6, 2, TRUE), + PT(20, 29, 5, 1, FALSE), + PT(53, 1, 3, 2, TRUE), + PT(62, 59, 3, 3, FALSE), + PT(34, 30, 2, 3, FALSE), + PT(24, 34, 2, 1, FALSE), + PT(62, 41, 6, 1, TRUE), + PT(47, 20, 3, 0, TRUE), + PT(59, 7, 2, 2, TRUE), + PT( 6, 61, 5, 0, TRUE), + PT(53, 55, 4, 1, TRUE), + PT(52, 29, 5, 2, TRUE), + PT(24, 18, 3, 1, TRUE), + PT(11, 19, 4, 2, FALSE), + PT(19, 56, 3, 2, FALSE), + PT(31, 11, 3, 1, TRUE), + PT(19, 33, 3, 2, FALSE), + PT( 6, 57, 6, 1, FALSE), + PT(55, 61, 4, 3, FALSE), + PT(41, 38, 2, 2, TRUE), + PT(60, 51, 4, 3, TRUE), + PT( 0, 1, 5, 3, FALSE), + PT(21, 24, 6, 0, TRUE), + PT(13, 44, 2, 1, TRUE), + PT(39, 59, 4, 0, FALSE), + PT(45, 1, 4, 3, FALSE), + PT(35, 21, 6, 0, FALSE), + PT(36, 0, 2, 3, TRUE), + PT(55, 63, 6, 1, TRUE), + PT(37, 36, 6, 0, TRUE), + PT( 6, 59, 6, 3, TRUE), + PT( 3, 24, 3, 1, FALSE), + PT(44, 52, 2, 2, FALSE), + PT(29, 54, 3, 0, FALSE), + PT(58, 4, 4, 1, TRUE), + PT(18, 38, 2, 2, TRUE), + PT(43, 25, 3, 1, FALSE), + PT(41, 44, 6, 3, FALSE), + PT( 1, 25, 3, 2, TRUE), + PT(47, 6, 5, 1, TRUE), + PT(12, 18, 4, 3, FALSE), + PT(54, 50, 3, 2, TRUE), + PT(13, 18, 5, 0, FALSE), + PT( 3, 40, 2, 1, TRUE), + PT(41, 6, 2, 3, TRUE), + PT( 3, 56, 4, 0, TRUE), + PT(48, 44, 2, 0, FALSE), + PT(34, 0, 5, 0, FALSE), + PT(36, 59, 3, 2, FALSE), + PT(32, 62, 2, 1, TRUE), + PT( 2, 12, 3, 0, TRUE), + PT(41, 44, 3, 1, FALSE), + PT(57, 48, 4, 1, FALSE), + PT(42, 31, 4, 1, FALSE), + PT(20, 52, 5, 2, FALSE), + PT(20, 37, 3, 1, TRUE), + PT( 6, 59, 2, 2, TRUE), + PT( 6, 28, 2, 1, TRUE), + PT(21, 3, 3, 0, FALSE), + PT(30, 42, 3, 1, TRUE), + PT(23, 37, 5, 3, TRUE), + PT(28, 41, 5, 3, FALSE), + PT( 2, 50, 3, 3, FALSE), + PT(29, 40, 6, 2, TRUE), + PT(54, 3, 6, 2, FALSE), + PT(22, 61, 5, 1, FALSE), + PT(18, 13, 2, 1, TRUE), + PT(29, 45, 4, 0, TRUE), + PT(50, 23, 5, 3, FALSE), + PT(26, 21, 4, 3, FALSE), + PT(34, 47, 2, 2, TRUE), + PT(60, 14, 4, 0, FALSE), + PT(47, 39, 2, 1, TRUE), + PT( 4, 9, 6, 1, FALSE), + PT(30, 1, 6, 2, FALSE), + PT( 6, 22, 3, 3, FALSE), + PT(46, 27, 3, 2, FALSE), + PT(40, 19, 5, 1, FALSE), + PT(48, 52, 2, 1, FALSE), + PT(18, 50, 3, 0, FALSE), + PT(29, 29, 6, 2, TRUE), + PT( 7, 28, 2, 3, FALSE), + PT(45, 61, 6, 2, TRUE), + PT(28, 27, 4, 2, FALSE), + PT(33, 45, 3, 3, FALSE), + PT(16, 9, 2, 2, FALSE), + PT(61, 17, 2, 1, FALSE), + PT(37, 2, 4, 3, FALSE), + PT(35, 2, 3, 0, TRUE), + PT(25, 5, 2, 2, FALSE), + PT(11, 33, 3, 1, FALSE), + PT( 9, 2, 5, 2, FALSE), + PT(24, 40, 5, 2, TRUE), + PT(30, 16, 2, 1, FALSE), + PT(46, 24, 5, 3, FALSE), + PT(31, 2, 5, 2, FALSE), + PT(20, 23, 4, 2, FALSE), + PT(57, 8, 6, 1, FALSE), + PT(22, 20, 4, 1, FALSE), + PT(22, 40, 4, 0, TRUE), + PT(17, 16, 5, 2, FALSE), + PT(35, 54, 5, 1, TRUE), + PT(57, 33, 4, 3, FALSE), + PT(14, 6, 5, 2, TRUE), + PT(60, 62, 4, 3, FALSE), + PT(42, 27, 3, 3, TRUE), + PT( 0, 60, 6, 1, TRUE), + PT(53, 63, 2, 2, FALSE), + PT( 0, 11, 2, 0, FALSE), + PT(52, 60, 2, 3, TRUE), + PT(45, 7, 3, 3, TRUE), + PT(36, 57, 4, 3, TRUE), + PT(22, 0, 3, 2, TRUE), + PT(51, 43, 3, 3, FALSE), + PT(15, 8, 6, 0, TRUE), + PT(58, 9, 2, 1, TRUE), + PT(12, 33, 3, 2, FALSE), + PT(42, 23, 6, 2, FALSE), + PT(41, 39, 2, 0, FALSE), + PT(55, 27, 3, 0, FALSE), + PT(21, 8, 5, 3, TRUE), + PT(31, 22, 2, 1, FALSE), + PT(31, 40, 6, 2, FALSE), + PT(28, 32, 4, 1, FALSE), + PT(18, 1, 2, 1, FALSE), + PT(33, 49, 2, 0, FALSE), + PT(34, 38, 3, 3, FALSE), + PT( 1, 61, 2, 0, TRUE), + PT(30, 39, 4, 2, TRUE), + PT(61, 48, 4, 2, FALSE), + PT(29, 17, 4, 1, FALSE), + PT(54, 48, 2, 3, FALSE), + PT(31, 62, 5, 1, FALSE), + PT(60, 39, 3, 1, TRUE), + PT(31, 41, 2, 0, FALSE), + PT(30, 5, 5, 1, FALSE), + PT(10, 16, 2, 2, FALSE), + PT(31, 0, 5, 3, FALSE), + PT(11, 59, 3, 0, FALSE), + PT(10, 57, 6, 0, FALSE), + PT(55, 11, 3, 3, TRUE), + PT(29, 10, 5, 0, TRUE), + PT(62, 28, 6, 1, TRUE), + PT(19, 46, 5, 0, FALSE), + PT(39, 27, 3, 3, FALSE), + PT(29, 2, 3, 2, FALSE), + PT( 1, 37, 2, 2, FALSE), + PT(58, 16, 3, 2, FALSE), + PT(18, 5, 5, 1, FALSE), + PT(48, 32, 4, 3, FALSE), + PT(47, 46, 5, 3, FALSE), + PT( 3, 7, 4, 2, FALSE), + PT(54, 4, 5, 1, TRUE), + PT(17, 37, 5, 2, TRUE), + PT(40, 14, 5, 3, FALSE), + PT(15, 29, 2, 2, TRUE), + PT(28, 40, 6, 0, FALSE), + PT(31, 35, 4, 3, FALSE), + PT(54, 18, 6, 3, TRUE), + PT(58, 49, 2, 0, FALSE), + PT(44, 44, 5, 3, TRUE), + PT(26, 13, 2, 2, TRUE), + PT(63, 60, 6, 1, FALSE), + PT(53, 28, 2, 3, FALSE), + PT(51, 22, 5, 0, FALSE), + PT(29, 63, 4, 0, TRUE), + PT(44, 62, 5, 1, TRUE), + PT(36, 35, 5, 3, TRUE), + PT(50, 21, 5, 1, FALSE), + PT(27, 16, 6, 2, TRUE), + PT(24, 55, 2, 0, FALSE), + PT(59, 30, 2, 0, TRUE), + PT(43, 22, 4, 2, FALSE), + PT(29, 22, 4, 3, FALSE), + PT(60, 45, 2, 0, TRUE), + PT(21, 40, 5, 0, FALSE), + PT(39, 39, 4, 3, TRUE), + PT(59, 58, 2, 3, FALSE), + PT(26, 12, 3, 1, FALSE), + PT(21, 8, 4, 2, TRUE), + PT(11, 16, 4, 1, FALSE), + PT(26, 62, 2, 3, TRUE), + PT(40, 31, 3, 3, FALSE), + PT( 1, 30, 3, 3, FALSE), + PT(28, 47, 2, 0, FALSE), + PT(37, 11, 6, 2, FALSE), + PT(62, 12, 3, 1, FALSE), + PT(27, 16, 5, 1, FALSE), + PT(15, 20, 2, 3, TRUE), + PT(15, 63, 2, 3, TRUE), + PT( 3, 21, 3, 3, TRUE), + PT( 2, 54, 2, 3, TRUE), + PT(21, 29, 3, 0, FALSE), + PT( 8, 54, 2, 0, FALSE), + PT(20, 13, 5, 1, TRUE), + PT(10, 5, 3, 2, TRUE), + PT(38, 18, 3, 3, FALSE), + PT(62, 24, 3, 0, TRUE), + PT(54, 24, 6, 3, TRUE), + PT(23, 57, 5, 3, FALSE), + PT(13, 4, 3, 0, TRUE), + PT(22, 34, 2, 2, TRUE), + PT(62, 38, 3, 3, TRUE), + PT( 0, 6, 2, 3, TRUE), + PT(51, 34, 3, 2, TRUE), + PT(43, 57, 5, 1, TRUE), + PT(62, 49, 3, 2, FALSE), + PT(34, 63, 2, 1, TRUE), + PT(48, 28, 6, 0, TRUE), + PT( 7, 43, 2, 2, FALSE), + PT(50, 53, 3, 3, FALSE), + PT( 2, 7, 4, 0, FALSE), + PT(15, 59, 2, 0, TRUE), + PT(32, 7, 2, 1, FALSE), + PT(42, 48, 3, 2, TRUE), + PT(40, 56, 6, 3, FALSE), + PT(32, 1, 2, 3, TRUE), + PT(21, 32, 4, 0, TRUE), + PT(58, 27, 3, 3, FALSE), + PT(56, 18, 4, 2, FALSE), + PT( 3, 62, 3, 3, TRUE), + PT(41, 29, 2, 1, TRUE), + PT(32, 39, 3, 0, TRUE), + PT(18, 37, 4, 0, FALSE), + PT(50, 51, 5, 1, TRUE), + PT(63, 5, 6, 0, TRUE), + PT(53, 60, 5, 2, TRUE), + PT(45, 2, 5, 3, FALSE), + PT(16, 42, 2, 3, FALSE), + PT(23, 8, 6, 0, TRUE), + PT(23, 46, 5, 1, TRUE), + PT(48, 30, 2, 2, TRUE), + PT(49, 21, 4, 3, FALSE), + PT( 8, 16, 6, 1, TRUE), + PT(21, 1, 4, 3, TRUE), + PT(18, 7, 5, 3, TRUE), + PT(41, 39, 6, 2, FALSE), + PT(63, 8, 6, 0, TRUE), + PT(28, 32, 3, 1, FALSE), + PT(51, 12, 2, 1, TRUE), + PT(24, 49, 4, 2, FALSE), + PT(55, 45, 5, 3, FALSE), + PT(33, 24, 4, 2, FALSE), + PT(58, 39, 6, 0, TRUE), + PT(53, 62, 6, 0, FALSE), + PT(58, 20, 6, 1, TRUE), + PT(15, 26, 5, 2, TRUE), + PT(48, 46, 2, 0, TRUE), + PT(26, 49, 3, 2, TRUE), + PT(23, 60, 3, 0, FALSE), + PT(51, 49, 4, 1, TRUE), + PT(29, 57, 5, 2, TRUE), + PT(16, 29, 5, 3, TRUE), + PT(36, 21, 3, 2, FALSE), + PT(37, 1, 5, 1, TRUE), + PT(34, 22, 5, 3, FALSE), + PT(27, 37, 6, 2, TRUE), + PT(55, 16, 4, 3, FALSE), + PT(57, 1, 6, 3, FALSE), + PT(23, 43, 2, 2, FALSE), + PT( 9, 22, 2, 3, TRUE), + PT(32, 40, 4, 1, TRUE), + PT(38, 58, 4, 3, FALSE), + PT(39, 42, 4, 2, FALSE), + PT(54, 2, 5, 2, FALSE), + PT(41, 48, 6, 2, TRUE), + PT(54, 1, 3, 3, TRUE), + PT(40, 59, 3, 2, TRUE), + PT(35, 30, 5, 2, TRUE), + PT(17, 30, 5, 2, FALSE), + PT(47, 50, 3, 0, TRUE), + PT(63, 38, 6, 0, TRUE), + PT(56, 30, 2, 3, TRUE), + PT( 5, 24, 5, 3, FALSE), + PT( 0, 46, 2, 1, FALSE), + PT(52, 63, 6, 2, FALSE), + PT(22, 16, 5, 0, TRUE), + PT(32, 61, 6, 3, FALSE), + PT(47, 22, 4, 2, TRUE), + PT(18, 23, 2, 0, FALSE), + PT(33, 55, 6, 2, TRUE), + PT(37, 55, 5, 2, TRUE), + PT( 1, 8, 4, 3, TRUE), + PT( 3, 31, 5, 0, TRUE), + PT(13, 42, 2, 3, FALSE), + PT(58, 63, 6, 1, TRUE), + PT(43, 25, 3, 2, TRUE), + PT(42, 31, 5, 0, TRUE), + PT(40, 44, 2, 0, FALSE), + PT(40, 48, 2, 0, FALSE), + PT(57, 20, 3, 1, TRUE), + PT( 0, 24, 4, 0, TRUE), + PT(40, 12, 6, 3, TRUE), + PT(17, 16, 2, 0, TRUE), + PT(60, 51, 6, 1, FALSE), + PT(51, 54, 3, 1, FALSE), + PT(54, 0, 3, 2, FALSE), + PT(49, 27, 3, 2, TRUE), + PT(56, 29, 2, 0, FALSE), + PT(60, 57, 4, 3, TRUE), + PT(58, 63, 2, 2, FALSE), + PT(25, 18, 2, 2, FALSE), + PT(13, 31, 3, 0, FALSE), + PT( 0, 37, 3, 0, FALSE), + PT(40, 28, 6, 1, FALSE), + PT(39, 3, 3, 1, FALSE), + PT(38, 45, 5, 1, FALSE), + PT(41, 40, 4, 3, TRUE), + PT(10, 42, 3, 0, FALSE), + PT(10, 26, 6, 0, FALSE), + PT(32, 26, 5, 3, FALSE), + PT( 6, 11, 3, 2, TRUE), + PT(15, 12, 3, 2, FALSE), + PT(53, 40, 3, 2, FALSE), + PT(61, 22, 4, 1, TRUE), + PT(33, 28, 6, 0, TRUE), + PT(20, 28, 5, 3, FALSE), + PT(34, 50, 6, 2, TRUE), + PT( 9, 41, 6, 0, FALSE), + PT(32, 26, 2, 0, FALSE), + PT(49, 63, 5, 2, FALSE), + PT(10, 61, 6, 3, TRUE), + PT(11, 46, 5, 2, TRUE), + PT(31, 34, 6, 0, TRUE), + PT( 6, 7, 5, 0, TRUE), + PT(34, 23, 5, 2, TRUE), + PT(48, 17, 3, 0, FALSE), + PT(12, 25, 2, 2, TRUE), + PT( 7, 10, 6, 2, FALSE), + PT(24, 41, 4, 3, TRUE), + PT(51, 12, 6, 0, FALSE), + PT( 3, 26, 6, 3, TRUE), + PT( 6, 1, 5, 2, TRUE), + PT(15, 59, 5, 1, TRUE), + PT(17, 31, 6, 3, TRUE), + PT(43, 33, 6, 3, FALSE), + PT(63, 35, 2, 3, TRUE), + PT(23, 7, 5, 1, TRUE), + PT(43, 14, 6, 0, FALSE), + PT(17, 57, 3, 2, TRUE), + PT(41, 3, 6, 1, TRUE), + PT(48, 3, 5, 3, TRUE), + PT(60, 32, 4, 3, FALSE), + PT( 3, 34, 2, 2, FALSE), + PT(58, 40, 6, 2, TRUE), + PT( 1, 40, 5, 1, TRUE), + PT(62, 21, 3, 0, FALSE), + PT(48, 7, 2, 3, TRUE), + PT(59, 44, 6, 0, FALSE), + PT(21, 7, 5, 2, FALSE), + PT(23, 39, 3, 2, TRUE), + PT(63, 30, 6, 1, TRUE), + PT(13, 23, 2, 0, FALSE), + PT(21, 14, 6, 0, FALSE), + PT( 9, 5, 6, 0, FALSE), + PT(45, 32, 2, 2, TRUE), + PT(60, 61, 6, 0, FALSE), + PT(12, 23, 3, 2, FALSE), + PT(26, 13, 4, 2, TRUE), + PT(43, 43, 5, 1, FALSE), + PT( 2, 22, 5, 2, TRUE), + PT(23, 49, 2, 3, TRUE), + PT( 0, 8, 2, 1, TRUE), + PT(55, 53, 4, 0, TRUE), + PT(30, 28, 3, 3, TRUE), + PT(43, 50, 3, 2, FALSE), + PT(16, 42, 2, 3, FALSE), + PT(58, 51, 6, 0, TRUE), + PT(23, 43, 5, 1, FALSE), + PT(12, 61, 2, 0, TRUE), + PT(40, 10, 6, 0, FALSE), + PT(35, 10, 4, 3, FALSE), + PT(10, 20, 4, 2, FALSE), + PT(11, 15, 6, 0, FALSE), + PT(27, 30, 5, 0, TRUE), + PT( 2, 53, 5, 0, FALSE), + PT(59, 2, 2, 2, FALSE), + PT( 0, 15, 6, 2, TRUE), + PT(28, 60, 5, 3, FALSE), + PT(40, 56, 3, 0, TRUE), + PT(27, 17, 2, 1, FALSE), + PT( 9, 22, 2, 0, FALSE), + PT(46, 13, 4, 0, FALSE), + PT(61, 4, 6, 1, FALSE), + PT(22, 44, 4, 2, TRUE), + PT( 2, 61, 3, 0, FALSE), + PT(11, 19, 3, 2, FALSE), + PT(34, 42, 3, 2, FALSE), + PT(32, 39, 4, 1, FALSE), + PT( 5, 38, 4, 1, FALSE), + PT(18, 29, 5, 2, FALSE), + PT( 8, 5, 5, 3, FALSE), + PT(63, 28, 2, 3, TRUE), + PT(36, 13, 6, 1, TRUE), + PT(54, 8, 4, 2, FALSE), + PT(16, 34, 5, 0, TRUE), + PT(28, 10, 2, 0, TRUE), + PT(37, 15, 2, 0, FALSE), + PT(36, 56, 5, 3, TRUE), + PT(37, 50, 3, 3, FALSE), + PT( 6, 42, 5, 0, TRUE), + PT(62, 58, 5, 0, FALSE), + PT(52, 23, 6, 1, TRUE), + PT(24, 51, 2, 3, TRUE), + PT( 7, 20, 3, 3, TRUE), + PT(17, 23, 4, 0, FALSE), + PT(19, 14, 2, 2, FALSE), + PT(59, 28, 2, 1, FALSE), + PT(42, 19, 6, 3, TRUE), + PT(42, 53, 6, 1, FALSE), + PT(48, 2, 4, 2, TRUE), + PT( 0, 7, 3, 3, TRUE), + PT(12, 4, 5, 2, FALSE), + PT(55, 55, 6, 0, FALSE), + PT(37, 18, 4, 2, TRUE), + PT(18, 34, 4, 0, TRUE), + PT(34, 53, 6, 1, TRUE), + PT( 7, 32, 5, 2, TRUE), + PT(39, 14, 6, 0, FALSE), + PT(52, 25, 3, 1, FALSE), + PT(10, 60, 4, 2, TRUE), + PT( 7, 29, 5, 1, TRUE), + PT(49, 58, 2, 1, FALSE), + PT(26, 61, 6, 3, TRUE), + PT(22, 21, 2, 3, FALSE), + PT(57, 19, 2, 2, TRUE), + PT(45, 3, 5, 3, FALSE), + PT( 6, 57, 5, 2, FALSE), + PT(22, 0, 2, 1, TRUE), + PT(53, 42, 6, 2, TRUE), + PT(36, 1, 3, 0, FALSE), + PT(36, 55, 5, 0, FALSE), + PT(37, 27, 6, 2, FALSE), + PT(37, 25, 2, 3, TRUE), + PT(39, 47, 3, 1, TRUE), + PT(39, 13, 2, 0, FALSE), + PT(54, 60, 6, 0, FALSE), + PT(60, 51, 4, 1, TRUE), + PT(62, 39, 3, 3, FALSE), + PT(37, 45, 5, 0, TRUE), + PT(31, 18, 4, 0, TRUE), + PT(55, 50, 3, 3, TRUE), + PT(17, 33, 6, 2, TRUE), + PT(48, 12, 3, 0, TRUE), + PT(37, 61, 4, 3, FALSE), + PT(23, 2, 3, 2, TRUE), + PT(20, 46, 2, 0, TRUE), + PT(56, 19, 6, 0, FALSE), + PT(10, 43, 4, 0, FALSE), + PT(30, 16, 2, 2, TRUE), + PT(55, 48, 5, 3, FALSE), + PT(30, 4, 5, 2, FALSE), + PT(20, 52, 3, 0, TRUE), + PT( 8, 20, 3, 0, FALSE), + PT(14, 28, 6, 0, FALSE), + PT(26, 46, 3, 1, TRUE), + PT(31, 57, 6, 0, TRUE), + PT(12, 28, 5, 0, FALSE), + PT(62, 51, 4, 1, TRUE), + PT(15, 19, 2, 3, FALSE), + PT(37, 57, 5, 3, TRUE), + PT(20, 27, 3, 1, FALSE), + PT(40, 62, 4, 0, TRUE), + PT(45, 25, 2, 0, TRUE), + PT(12, 52, 6, 1, FALSE), + PT(57, 49, 3, 0, TRUE), + PT(26, 8, 6, 2, FALSE), + PT( 9, 47, 2, 0, TRUE), + PT(48, 4, 3, 2, FALSE), + PT( 2, 59, 3, 1, TRUE), + PT(51, 33, 6, 1, TRUE), + PT(56, 2, 3, 1, FALSE), + PT(49, 56, 6, 1, FALSE), + PT(31, 29, 2, 3, FALSE), + PT(23, 16, 3, 1, TRUE), + PT(50, 32, 2, 3, TRUE), + PT( 0, 51, 2, 1, FALSE), + PT(33, 15, 4, 3, TRUE), + PT(20, 25, 4, 3, TRUE), + PT(36, 44, 6, 3, TRUE), + PT(37, 5, 5, 3, TRUE), + PT(61, 37, 2, 0, TRUE), + PT(18, 48, 3, 1, FALSE), + PT(22, 3, 3, 1, FALSE), + PT(20, 9, 2, 1, TRUE), + PT( 2, 35, 4, 1, FALSE), + PT( 1, 60, 2, 0, FALSE), + PT(63, 45, 4, 1, TRUE), + PT(49, 63, 4, 1, TRUE), + PT(23, 0, 6, 1, TRUE), + PT(63, 15, 5, 3, TRUE), + PT(38, 7, 2, 2, TRUE), + PT(33, 43, 5, 1, FALSE), + PT(56, 57, 3, 3, FALSE), + PT( 9, 37, 5, 1, TRUE), + PT(59, 48, 4, 2, TRUE), + PT(18, 45, 2, 1, TRUE), + PT(50, 25, 5, 0, FALSE), + PT(36, 28, 5, 2, TRUE), + PT(53, 50, 4, 3, FALSE), + PT(13, 35, 3, 3, FALSE), + PT(29, 7, 4, 0, TRUE), + PT(11, 52, 2, 3, TRUE), + PT(45, 50, 6, 1, FALSE), + PT(58, 60, 6, 2, TRUE), + PT(26, 16, 6, 1, TRUE), + PT(26, 7, 4, 1, FALSE), + PT(59, 27, 5, 1, FALSE), + PT(51, 31, 4, 3, FALSE), + PT(14, 53, 3, 1, FALSE), + PT(59, 10, 3, 2, FALSE), + PT(17, 7, 2, 0, TRUE), + PT(13, 60, 5, 2, TRUE), + PT(30, 55, 5, 0, TRUE), + PT(17, 5, 2, 1, FALSE), + PT(21, 47, 3, 2, FALSE), + PT(36, 49, 2, 3, FALSE), + PT(43, 33, 3, 1, TRUE), + PT(35, 16, 6, 0, TRUE), + PT( 2, 20, 5, 0, TRUE), + PT(38, 32, 2, 3, FALSE), + PT(16, 23, 2, 0, FALSE), + PT(11, 15, 6, 1, TRUE), + PT( 1, 46, 2, 2, FALSE), + PT(33, 14, 6, 3, TRUE), + PT(26, 29, 5, 3, TRUE), + PT(30, 48, 4, 2, FALSE), + PT( 4, 20, 5, 2, TRUE), + PT(17, 0, 6, 0, FALSE), + PT( 8, 42, 3, 2, TRUE), + PT(29, 34, 4, 0, TRUE), + PT(36, 44, 6, 3, TRUE), + PT(36, 17, 2, 1, FALSE), + PT( 4, 46, 5, 0, FALSE), + PT(29, 24, 4, 1, TRUE), + PT(60, 22, 2, 3, FALSE), + PT(16, 23, 6, 0, TRUE), + PT(32, 33, 2, 1, FALSE), + PT(51, 62, 6, 2, FALSE), + PT( 6, 19, 2, 1, TRUE), + PT(23, 56, 5, 1, TRUE), + PT(20, 13, 2, 2, TRUE), + PT(36, 59, 5, 1, TRUE), + PT(52, 59, 3, 3, FALSE), + PT(24, 7, 6, 2, FALSE), + PT(55, 29, 3, 3, TRUE), + PT(11, 41, 4, 0, FALSE), + PT(18, 30, 3, 2, TRUE), + PT(26, 36, 4, 2, FALSE), + PT(61, 40, 4, 2, FALSE), + PT(11, 18, 6, 1, TRUE), + PT(27, 58, 4, 1, FALSE), + PT(20, 19, 5, 1, FALSE), + PT(49, 56, 2, 2, TRUE), + PT(55, 43, 5, 3, FALSE), + PT(25, 30, 5, 2, FALSE), + PT(63, 27, 5, 1, FALSE), + PT(51, 31, 6, 1, TRUE), + PT(63, 21, 5, 0, TRUE), + PT( 1, 30, 3, 0, FALSE), + PT(31, 34, 3, 0, TRUE), + PT(51, 60, 6, 2, FALSE), + PT(30, 18, 4, 1, FALSE), + PT(13, 55, 5, 2, FALSE), + PT(15, 8, 6, 0, TRUE), + PT(46, 9, 6, 3, FALSE), + PT( 1, 5, 3, 3, FALSE), + PT(28, 4, 3, 3, FALSE), + PT(12, 1, 3, 2, FALSE), + PT(41, 40, 5, 3, TRUE), + PT(57, 45, 2, 2, FALSE), + PT( 9, 34, 6, 3, FALSE), + PT( 4, 55, 6, 3, TRUE), + PT(45, 47, 6, 2, TRUE), + PT(36, 35, 3, 1, TRUE), + PT( 8, 32, 6, 1, FALSE), + PT(32, 31, 6, 2, FALSE), + PT( 2, 49, 3, 0, TRUE), + PT(24, 19, 6, 3, FALSE), + PT( 6, 43, 3, 3, FALSE), + PT(14, 27, 2, 0, FALSE), + PT(47, 14, 3, 2, FALSE), + PT(17, 56, 2, 1, TRUE), + PT( 1, 55, 3, 0, TRUE), + PT(20, 17, 4, 3, FALSE), + PT(49, 61, 6, 1, TRUE), + PT(29, 27, 6, 2, FALSE), + PT(37, 49, 5, 3, TRUE), + PT(17, 10, 5, 3, TRUE), + PT(57, 23, 3, 1, TRUE), + PT( 5, 14, 2, 1, TRUE), + PT(41, 37, 4, 1, FALSE), + PT(21, 13, 4, 0, FALSE), + PT(43, 39, 4, 0, TRUE), + PT(62, 36, 4, 3, TRUE), + PT(42, 43, 2, 3, FALSE), + PT(36, 61, 2, 2, TRUE), + PT(21, 48, 6, 0, TRUE), + PT(15, 51, 4, 2, FALSE), + PT( 6, 22, 2, 1, TRUE), + PT( 6, 49, 2, 0, FALSE), + PT(46, 63, 2, 0, FALSE), + PT( 5, 13, 5, 3, TRUE), + PT(60, 31, 3, 0, TRUE), + PT(18, 19, 4, 2, FALSE), + PT(15, 51, 6, 3, FALSE), + PT(21, 59, 6, 1, TRUE), + PT( 3, 15, 5, 1, FALSE), + PT(59, 60, 5, 2, FALSE), + PT(54, 9, 5, 0, TRUE), + PT(17, 59, 4, 3, TRUE), + PT(40, 43, 6, 0, TRUE), + PT(26, 14, 5, 3, TRUE), + PT(57, 44, 6, 0, TRUE), + PT(14, 60, 6, 2, TRUE), + PT(44, 36, 6, 1, TRUE), + PT(61, 17, 5, 1, TRUE), + PT( 7, 60, 6, 3, TRUE), + PT(20, 24, 2, 1, TRUE), + PT(29, 63, 5, 3, FALSE), + PT(48, 18, 4, 2, TRUE), + PT(38, 29, 2, 0, TRUE), + PT( 7, 17, 3, 3, FALSE), + PT(52, 1, 2, 0, TRUE), + PT(11, 57, 4, 0, TRUE), + PT(41, 2, 5, 0, TRUE), + PT(21, 16, 3, 1, FALSE), + PT(48, 31, 6, 2, TRUE), + PT(60, 43, 5, 1, FALSE), + PT(48, 59, 6, 3, FALSE), + PT(32, 26, 4, 1, TRUE), + PT(50, 36, 5, 1, TRUE), + PT(21, 32, 3, 2, FALSE), + PT(37, 61, 6, 3, FALSE), + PT(45, 20, 6, 0, TRUE), + PT(24, 35, 2, 3, TRUE), + PT(24, 5, 2, 1, TRUE), + PT(52, 48, 6, 3, TRUE), + PT(14, 57, 4, 1, TRUE), + PT(29, 31, 2, 3, TRUE), + PT( 1, 21, 5, 3, TRUE), + PT(11, 62, 3, 1, TRUE), + PT(13, 25, 5, 3, FALSE), + PT(49, 56, 3, 2, FALSE), + PT(21, 52, 2, 2, TRUE), + PT(19, 25, 5, 0, TRUE), + PT(25, 20, 4, 3, TRUE), + PT(21, 24, 4, 1, TRUE), + PT(41, 12, 4, 3, TRUE), + PT(45, 14, 2, 3, TRUE), + PT(52, 24, 2, 0, FALSE), + PT(59, 30, 5, 0, TRUE), + PT(52, 44, 4, 1, FALSE), + PT(49, 8, 2, 1, TRUE), + PT(29, 24, 3, 1, FALSE), + PT(28, 11, 5, 1, FALSE), + PT(25, 30, 3, 1, FALSE), + PT(35, 39, 2, 3, TRUE), + PT(59, 14, 6, 3, TRUE), + PT(25, 43, 2, 3, FALSE), + PT(47, 8, 4, 0, TRUE), + PT(55, 2, 4, 0, FALSE), + PT(11, 50, 6, 0, FALSE), + PT(22, 5, 6, 0, FALSE), + PT(19, 5, 3, 1, FALSE), + PT( 7, 57, 3, 0, TRUE), + PT(12, 59, 5, 1, FALSE), + PT(21, 5, 6, 0, FALSE), + PT(48, 5, 3, 0, TRUE), + PT(19, 0, 2, 1, FALSE), + PT(39, 22, 5, 1, FALSE), + PT(15, 40, 4, 3, TRUE), + PT(12, 35, 5, 3, TRUE), + PT(57, 40, 5, 1, FALSE), + PT(36, 37, 3, 3, TRUE), + PT(24, 41, 2, 2, FALSE), + PT(22, 5, 3, 1, FALSE), + PT(53, 47, 4, 3, FALSE), + PT(10, 58, 5, 0, TRUE), + PT(52, 44, 6, 3, FALSE), + PT(46, 58, 2, 2, TRUE), + PT(26, 10, 5, 2, TRUE), + PT(22, 20, 5, 3, FALSE), + PT(53, 40, 5, 1, FALSE), + PT(53, 15, 2, 0, TRUE), + PT(17, 50, 3, 0, TRUE), + PT(32, 26, 5, 0, FALSE), + PT(23, 26, 5, 0, FALSE), + PT(22, 51, 4, 2, TRUE), + PT(19, 44, 5, 0, TRUE), + PT( 9, 22, 6, 1, TRUE), + PT(29, 39, 4, 3, FALSE), + PT(21, 12, 5, 3, TRUE), + PT(34, 28, 3, 0, TRUE), + PT(41, 51, 2, 0, FALSE), + PT(45, 17, 3, 1, TRUE), + PT(22, 25, 5, 3, FALSE), + PT(13, 12, 5, 0, FALSE), + PT(55, 58, 6, 2, FALSE), + PT(42, 29, 6, 3, TRUE), + PT(48, 10, 6, 3, FALSE), + PT(36, 57, 3, 1, TRUE), + PT(57, 10, 6, 1, FALSE), + PT(17, 3, 5, 2, TRUE), + PT(50, 29, 6, 0, FALSE), + PT(56, 30, 4, 3, TRUE), + PT(46, 23, 3, 0, FALSE), + PT(22, 23, 5, 1, FALSE), + PT(54, 59, 6, 0, TRUE), + PT(23, 4, 3, 0, TRUE), + PT(58, 37, 5, 2, TRUE), + PT( 0, 54, 4, 3, TRUE), + PT(37, 18, 6, 1, TRUE), + PT( 6, 10, 2, 2, FALSE), + PT(17, 5, 5, 3, TRUE), + PT( 3, 53, 5, 3, TRUE), + PT(11, 52, 5, 0, TRUE), + PT( 0, 49, 2, 1, TRUE), + PT(39, 15, 3, 2, FALSE), + PT(29, 6, 5, 2, TRUE), + PT(28, 48, 4, 3, TRUE), + PT(47, 42, 4, 3, TRUE), + PT(22, 32, 6, 0, TRUE), + PT(51, 43, 5, 1, TRUE), + PT( 5, 48, 6, 3, FALSE), + PT(41, 35, 6, 2, TRUE), + PT(16, 22, 5, 3, TRUE), + PT(45, 32, 5, 0, TRUE), + PT(55, 19, 4, 2, FALSE), + PT(45, 14, 4, 2, TRUE), + PT( 8, 10, 3, 0, FALSE), + PT(15, 3, 3, 1, TRUE), + PT(49, 12, 6, 3, TRUE), + PT(30, 52, 6, 0, TRUE), + PT(27, 14, 4, 2, TRUE), + PT(26, 7, 6, 2, FALSE), + PT(13, 60, 6, 1, TRUE), + PT( 0, 58, 6, 3, FALSE), + PT( 4, 39, 2, 1, FALSE), + PT(35, 24, 4, 2, FALSE), + PT(13, 11, 3, 0, FALSE), + PT(49, 50, 6, 3, TRUE), + PT( 0, 13, 4, 0, TRUE), + PT(50, 16, 2, 1, FALSE), + PT(38, 13, 3, 0, TRUE), + PT(41, 36, 5, 1, TRUE), + PT(61, 33, 3, 3, TRUE), + PT(30, 27, 5, 0, FALSE), + PT(13, 18, 5, 0, FALSE), + PT(53, 30, 4, 1, TRUE), + PT(10, 46, 4, 1, FALSE), + PT(39, 39, 6, 2, TRUE), + PT( 1, 14, 4, 0, FALSE), + PT(49, 57, 5, 0, TRUE), + PT(59, 36, 6, 3, FALSE), + PT(20, 16, 6, 1, TRUE), + PT(24, 44, 4, 3, FALSE), + PT( 4, 45, 2, 2, TRUE), + PT(26, 17, 6, 3, TRUE), + PT(15, 11, 2, 2, FALSE), + PT(14, 44, 5, 2, FALSE), + PT(33, 23, 5, 2, FALSE), + PT(22, 33, 6, 2, TRUE), + PT(62, 16, 2, 0, FALSE), + PT(10, 5, 3, 3, FALSE), + PT(59, 9, 2, 1, TRUE), + PT(38, 24, 3, 3, FALSE), + PT(35, 12, 3, 1, FALSE), + PT(51, 55, 3, 3, TRUE), + PT( 9, 18, 6, 2, TRUE), + PT(61, 13, 2, 2, TRUE), + PT(54, 6, 4, 2, FALSE), + PT(51, 48, 5, 0, TRUE), + PT(59, 15, 5, 0, FALSE), + PT(52, 42, 5, 2, FALSE), + PT( 2, 18, 6, 2, TRUE), + PT( 9, 34, 6, 0, TRUE), + PT(59, 49, 3, 2, FALSE), + PT(51, 34, 4, 3, TRUE), + PT(61, 52, 2, 2, TRUE), + PT(20, 34, 5, 0, FALSE), + PT(40, 16, 3, 3, FALSE), + PT(33, 49, 2, 0, FALSE), + PT(45, 22, 4, 0, TRUE), + PT(30, 5, 6, 1, TRUE), + PT(15, 48, 6, 0, TRUE), + PT(14, 26, 6, 2, TRUE), + PT(56, 46, 5, 0, FALSE), + PT(38, 55, 3, 3, FALSE), + PT(43, 19, 6, 1, TRUE), + PT(31, 30, 6, 3, TRUE), + PT(10, 40, 4, 2, FALSE), + PT(50, 28, 3, 1, FALSE), + PT(31, 63, 3, 0, TRUE), + PT(57, 57, 5, 0, TRUE), + PT(44, 27, 2, 2, FALSE), + PT(21, 42, 2, 3, TRUE), + PT(50, 15, 4, 0, TRUE), + PT(48, 33, 3, 0, FALSE), + PT(35, 42, 4, 3, TRUE), + PT(61, 7, 2, 0, FALSE), + PT(11, 63, 5, 3, TRUE), + PT(49, 2, 5, 3, FALSE), + PT( 8, 57, 5, 3, TRUE), + PT(63, 32, 3, 0, FALSE), + PT(45, 52, 2, 0, TRUE), + PT(46, 52, 2, 0, FALSE), + PT(38, 18, 4, 1, TRUE), + PT(37, 10, 6, 3, TRUE), + PT(52, 9, 4, 2, TRUE), + PT(10, 62, 2, 3, FALSE), + PT(26, 23, 2, 0, TRUE), + PT(56, 28, 4, 0, FALSE), + PT(17, 33, 4, 3, FALSE), + PT( 5, 15, 3, 0, FALSE), + PT(38, 43, 6, 1, FALSE), + PT(10, 12, 2, 3, FALSE), + PT( 3, 41, 3, 2, TRUE), + PT(41, 59, 4, 1, TRUE), + PT(22, 27, 5, 0, TRUE), + PT( 7, 9, 2, 3, TRUE), + PT(23, 44, 3, 2, FALSE), + PT(53, 51, 6, 0, FALSE), + PT(23, 18, 3, 3, FALSE), + PT(61, 26, 5, 1, TRUE), + PT(33, 29, 2, 0, FALSE), + PT(10, 8, 2, 3, TRUE), + PT(20, 60, 6, 3, FALSE), + PT(40, 54, 6, 3, FALSE), + PT(59, 32, 3, 1, TRUE), + PT(19, 34, 3, 2, TRUE), + PT(19, 58, 2, 2, TRUE), + PT( 2, 35, 5, 2, FALSE), + PT(62, 25, 2, 2, FALSE), + PT(57, 60, 3, 1, FALSE), + PT(16, 8, 3, 3, FALSE), + PT(10, 19, 5, 0, TRUE), + PT(63, 56, 5, 2, FALSE), + PT( 7, 35, 3, 3, TRUE), + PT(25, 42, 4, 2, FALSE), + PT(20, 60, 3, 3, TRUE), + PT(13, 4, 6, 3, TRUE), + PT(26, 47, 5, 0, FALSE), + PT(42, 29, 3, 3, FALSE), + PT(17, 55, 5, 0, TRUE), + PT(40, 39, 2, 1, FALSE), + PT(13, 0, 4, 3, FALSE), + PT(10, 60, 4, 3, FALSE), + PT(31, 28, 6, 1, TRUE), + PT( 4, 58, 5, 2, FALSE), + PT(36, 61, 5, 1, TRUE), + PT(38, 49, 5, 3, TRUE), + PT(19, 28, 4, 0, TRUE), + PT(62, 18, 4, 1, TRUE), + PT(54, 10, 3, 1, FALSE), + PT(45, 30, 3, 0, TRUE), + PT( 5, 31, 3, 1, TRUE), + PT(30, 10, 3, 3, TRUE), + PT(32, 8, 4, 2, FALSE), + PT(44, 12, 6, 1, TRUE), + PT(29, 31, 2, 0, TRUE), + PT(14, 18, 2, 0, FALSE), + PT(39, 18, 3, 0, TRUE), + PT(42, 19, 6, 0, TRUE), + PT(28, 4, 6, 0, FALSE), + PT(26, 56, 3, 3, TRUE), + PT(44, 53, 4, 2, TRUE), + PT( 7, 11, 6, 1, TRUE), + PT(45, 2, 3, 1, FALSE), + PT(42, 53, 6, 2, TRUE), + PT(22, 47, 2, 2, FALSE), + PT(17, 49, 6, 1, TRUE), + PT(44, 49, 3, 3, FALSE), + PT(60, 58, 4, 3, TRUE), + PT(60, 43, 2, 1, FALSE), + PT(39, 29, 2, 1, FALSE), + PT(54, 44, 5, 1, TRUE), + PT(37, 59, 6, 2, TRUE), + PT(18, 61, 4, 3, TRUE), + PT(19, 35, 3, 0, TRUE), + PT(51, 44, 4, 3, FALSE), + PT( 9, 60, 2, 1, FALSE), + PT(21, 26, 4, 1, TRUE), + PT(33, 7, 3, 1, FALSE), + PT(34, 37, 4, 0, FALSE), + PT(25, 27, 5, 2, FALSE), + PT(58, 25, 6, 2, TRUE), + PT( 5, 38, 3, 2, TRUE), + PT(35, 34, 4, 2, TRUE), + PT(14, 30, 2, 0, TRUE), + PT(19, 48, 2, 1, FALSE), + PT(44, 34, 4, 2, TRUE), + PT(10, 29, 3, 0, FALSE), + PT(35, 62, 3, 2, TRUE), + PT( 2, 40, 4, 2, TRUE), + PT(33, 14, 4, 0, FALSE), + PT(33, 34, 6, 3, TRUE), + PT(24, 51, 4, 3, TRUE), + PT(35, 35, 6, 0, TRUE), + PT(36, 26, 3, 1, FALSE), + PT(62, 37, 4, 2, FALSE), + PT(36, 1, 3, 0, FALSE), + PT(52, 16, 4, 1, FALSE), + PT( 7, 0, 6, 3, TRUE), + PT( 6, 32, 4, 0, FALSE), + PT(58, 2, 5, 1, TRUE), + PT( 7, 44, 5, 2, FALSE), + PT( 9, 47, 5, 1, FALSE), + PT( 1, 50, 5, 2, FALSE), + PT( 0, 53, 2, 1, TRUE), + PT(43, 60, 3, 3, TRUE), + PT(54, 55, 3, 3, FALSE), + PT(32, 53, 3, 2, TRUE), + PT(12, 7, 6, 1, TRUE), + PT(22, 8, 2, 1, FALSE), + PT(63, 54, 2, 0, TRUE), + PT(11, 31, 5, 2, TRUE), + PT(33, 32, 6, 1, TRUE), + PT(23, 26, 5, 3, FALSE), + PT(22, 1, 5, 3, TRUE), + PT(47, 28, 6, 2, FALSE), + PT(41, 49, 5, 3, FALSE), + PT(59, 56, 6, 0, TRUE), + PT(13, 22, 2, 1, FALSE), + PT( 7, 41, 4, 2, FALSE), + PT(51, 60, 6, 2, FALSE), + PT(62, 30, 3, 0, FALSE), + PT(48, 2, 6, 2, FALSE), + PT(42, 52, 3, 1, TRUE), + PT(46, 35, 3, 0, FALSE), + PT(52, 0, 3, 3, TRUE), + PT(32, 14, 5, 0, FALSE), + PT(21, 51, 6, 3, TRUE), + PT(39, 53, 4, 1, TRUE), + PT(55, 62, 2, 0, TRUE), + PT(50, 46, 6, 3, FALSE), + PT(58, 2, 5, 1, TRUE), + PT( 0, 54, 3, 2, TRUE), + PT(19, 41, 2, 3, FALSE), + PT( 8, 43, 6, 3, TRUE), + PT( 8, 2, 4, 3, TRUE), + PT(50, 45, 6, 2, FALSE), + PT(48, 54, 5, 0, TRUE), + PT(46, 16, 2, 1, FALSE), + PT(60, 46, 5, 1, FALSE), + PT( 4, 51, 6, 0, FALSE), + PT(63, 1, 4, 1, FALSE), + PT(55, 20, 3, 2, TRUE), + PT(39, 0, 5, 3, TRUE), + PT(12, 57, 4, 3, FALSE), + PT(39, 4, 4, 0, TRUE), + PT(25, 8, 3, 2, TRUE), + PT( 1, 4, 3, 3, FALSE), + PT(39, 27, 5, 1, TRUE), + PT(49, 23, 3, 3, TRUE), + PT( 7, 1, 5, 2, TRUE), + PT(46, 59, 3, 3, TRUE), + PT(52, 36, 6, 0, TRUE), + PT(50, 43, 4, 2, FALSE), + PT(14, 7, 3, 3, FALSE), + PT(15, 51, 2, 0, FALSE), + PT(22, 33, 6, 1, FALSE), + PT(57, 2, 3, 1, FALSE), + PT(51, 61, 4, 1, FALSE), + PT(12, 37, 3, 1, FALSE), + PT(41, 41, 5, 0, FALSE), + PT(58, 50, 4, 3, FALSE), + PT(11, 19, 4, 1, FALSE), + PT(31, 15, 3, 2, FALSE), + PT( 4, 44, 4, 0, FALSE), + PT(57, 26, 3, 1, TRUE), + PT(26, 42, 3, 3, TRUE), + PT(36, 19, 3, 1, FALSE), + PT(49, 59, 6, 1, TRUE), + PT(57, 35, 5, 0, FALSE), + PT(49, 7, 6, 0, TRUE), + PT(31, 16, 4, 0, FALSE), + PT(41, 23, 6, 1, FALSE), + PT(38, 59, 5, 2, TRUE), + PT( 2, 60, 3, 2, FALSE), + PT(14, 0, 4, 0, FALSE), + PT(20, 62, 6, 3, TRUE), + PT( 1, 15, 5, 2, TRUE), + PT( 6, 18, 4, 3, TRUE), + PT(48, 19, 3, 0, TRUE), + PT( 0, 51, 5, 1, FALSE), + PT(12, 7, 4, 3, TRUE), + PT(17, 58, 3, 2, FALSE), + PT(21, 10, 2, 1, TRUE), + PT(31, 13, 5, 1, FALSE), + PT(55, 7, 5, 1, FALSE), + PT(52, 53, 6, 2, FALSE), + PT(40, 22, 4, 3, TRUE), + PT( 6, 2, 6, 3, FALSE), + PT( 9, 35, 6, 0, FALSE), + PT(20, 2, 5, 0, FALSE), + PT(57, 50, 6, 2, FALSE), + PT(36, 53, 2, 1, FALSE), + PT(18, 34, 4, 3, FALSE), + PT( 9, 7, 6, 1, TRUE), + PT(15, 62, 3, 3, FALSE), + PT( 0, 60, 6, 1, TRUE), + PT(16, 55, 2, 2, FALSE), + PT(58, 3, 4, 2, TRUE), + PT(45, 30, 4, 2, FALSE), + PT(54, 54, 4, 3, FALSE), + PT(31, 60, 3, 1, FALSE), + PT(55, 51, 4, 2, TRUE), + PT(35, 19, 3, 3, TRUE), + PT(51, 13, 2, 1, TRUE), + PT(37, 48, 3, 3, FALSE), + PT(23, 3, 3, 0, FALSE), + PT(24, 24, 2, 2, FALSE), + PT(48, 7, 4, 1, FALSE), + PT(62, 51, 4, 0, TRUE), + PT(20, 55, 2, 3, FALSE), + PT(22, 0, 2, 1, FALSE), + PT(44, 18, 5, 3, TRUE), + PT(37, 63, 3, 3, FALSE), + PT(36, 25, 2, 3, FALSE), + PT(22, 15, 6, 2, TRUE), + PT(45, 16, 2, 0, TRUE), + PT(36, 42, 5, 0, FALSE), + PT(25, 37, 5, 3, FALSE), + PT(12, 22, 3, 3, TRUE), + PT(56, 33, 6, 3, FALSE), + PT(61, 26, 5, 3, TRUE), + PT(59, 50, 2, 1, FALSE), + PT(54, 19, 5, 0, TRUE), + PT(14, 48, 6, 0, TRUE), + PT(25, 7, 5, 3, TRUE), + PT(37, 35, 5, 0, FALSE), + PT(32, 8, 5, 0, TRUE), + PT(42, 0, 6, 0, FALSE), + PT(48, 56, 4, 1, TRUE), + PT(30, 15, 3, 3, TRUE), + PT(59, 27, 6, 0, FALSE), + PT(58, 55, 5, 3, TRUE), + PT(57, 55, 6, 2, TRUE), + PT(57, 45, 5, 3, TRUE), + PT(31, 46, 3, 3, FALSE), + PT(26, 43, 3, 3, FALSE), + PT(20, 23, 4, 0, FALSE), + PT(47, 3, 2, 0, TRUE), + PT(29, 0, 6, 0, FALSE), + PT(23, 43, 3, 2, TRUE), + PT(53, 40, 4, 2, TRUE), + PT(59, 15, 2, 0, TRUE), + PT( 9, 4, 5, 3, FALSE), + PT(35, 17, 3, 3, FALSE), + PT(19, 55, 3, 3, FALSE), + PT(55, 55, 3, 3, FALSE), + PT( 7, 1, 6, 1, FALSE), + PT(20, 6, 6, 1, FALSE), + PT(17, 12, 5, 3, FALSE), + PT(54, 46, 4, 2, FALSE), + PT(21, 42, 3, 2, FALSE), + PT(34, 21, 6, 2, FALSE), + PT(44, 30, 6, 2, TRUE), + PT(34, 39, 6, 1, TRUE), + PT(25, 63, 5, 2, TRUE), + PT(33, 51, 2, 2, TRUE), + PT(38, 26, 2, 0, TRUE), + PT(22, 62, 2, 1, FALSE), + PT(43, 36, 2, 2, TRUE), + PT(60, 15, 5, 2, TRUE), + PT(49, 21, 6, 3, FALSE), + PT(63, 36, 3, 2, TRUE), + PT(37, 1, 6, 3, TRUE), + PT(51, 22, 3, 1, FALSE), + PT(31, 14, 2, 0, FALSE), + PT(47, 11, 2, 1, FALSE), + PT(42, 26, 4, 2, TRUE), + PT(23, 10, 6, 2, TRUE), + PT( 9, 40, 6, 2, TRUE), + PT( 2, 19, 6, 3, FALSE), + PT(52, 47, 2, 3, TRUE), + PT( 3, 4, 6, 0, TRUE), + PT(62, 38, 2, 0, TRUE), + PT(53, 51, 6, 0, TRUE), + PT(34, 23, 4, 1, TRUE), + PT(29, 5, 5, 1, TRUE), + PT(46, 39, 4, 0, FALSE), + PT( 3, 43, 3, 2, TRUE), + PT( 1, 25, 3, 3, FALSE), + PT(14, 5, 3, 0, FALSE), + PT(22, 37, 2, 3, TRUE), + PT( 2, 40, 3, 0, FALSE), + PT(25, 11, 4, 2, FALSE), + PT(62, 53, 2, 3, FALSE), + PT(46, 41, 4, 2, TRUE), + PT(62, 56, 3, 3, FALSE), + PT(58, 47, 2, 1, FALSE), + PT(20, 23, 5, 2, TRUE), + PT(17, 18, 6, 0, FALSE), + PT(21, 49, 3, 0, FALSE), + PT( 8, 11, 5, 0, TRUE), + PT(45, 0, 6, 1, TRUE), + PT(44, 6, 3, 1, FALSE), + PT(20, 28, 5, 3, FALSE), + PT( 4, 8, 2, 1, FALSE), + PT(27, 43, 5, 2, TRUE), + PT(42, 55, 6, 1, TRUE), + PT(16, 39, 5, 2, FALSE), + PT(29, 14, 6, 2, FALSE), + PT(32, 2, 2, 1, FALSE), + PT(30, 26, 5, 3, FALSE), + PT( 7, 11, 2, 0, FALSE), + PT(54, 30, 6, 1, TRUE), + PT(43, 40, 3, 1, TRUE), + PT(49, 37, 3, 3, TRUE), + PT(56, 58, 5, 3, TRUE), + PT(57, 48, 5, 3, TRUE), + PT(18, 9, 2, 2, FALSE), + PT(14, 8, 3, 0, TRUE), + PT( 0, 13, 5, 2, FALSE), + PT(27, 14, 6, 2, FALSE), + PT(17, 37, 2, 2, TRUE), + PT(12, 45, 4, 3, FALSE), + PT(54, 44, 2, 3, FALSE), + PT(49, 49, 5, 2, FALSE), + PT( 3, 26, 2, 3, FALSE), + PT(28, 50, 2, 2, FALSE), + PT(10, 62, 6, 3, FALSE), + PT(51, 27, 4, 3, TRUE), + PT(31, 50, 3, 0, FALSE), + PT(51, 38, 6, 1, TRUE), + PT(26, 19, 3, 1, FALSE), + PT(15, 52, 3, 2, FALSE), + PT(53, 44, 5, 3, TRUE), + PT(56, 3, 3, 0, FALSE), + PT(21, 15, 4, 3, TRUE), + PT(49, 41, 4, 0, FALSE), + PT(40, 14, 5, 0, FALSE), + PT(49, 44, 5, 3, FALSE), + PT(21, 25, 3, 1, TRUE), + PT(16, 3, 5, 3, TRUE), + PT(46, 42, 6, 1, FALSE), + PT(42, 39, 3, 1, TRUE), + PT(54, 4, 3, 3, FALSE), + PT(59, 4, 4, 0, TRUE), + PT( 7, 47, 3, 0, TRUE), + PT(39, 29, 3, 2, TRUE), + PT(60, 61, 5, 3, FALSE), + PT(37, 8, 6, 1, FALSE), + PT(59, 52, 5, 1, FALSE), + PT(12, 16, 2, 1, TRUE), + PT(37, 53, 3, 1, FALSE), + PT(47, 25, 5, 0, FALSE), + PT(23, 0, 5, 1, TRUE), + PT(10, 28, 2, 3, TRUE), + PT(10, 17, 3, 1, TRUE), + PT(53, 19, 6, 3, TRUE), + PT(41, 28, 5, 0, FALSE), + PT(12, 49, 6, 2, TRUE), + PT(60, 16, 3, 1, FALSE), + PT(27, 58, 5, 2, TRUE), + PT(58, 28, 3, 0, FALSE), + PT(34, 16, 5, 2, TRUE), + PT(28, 60, 2, 1, FALSE), + PT(23, 24, 5, 1, FALSE), + PT(11, 43, 5, 3, TRUE), + PT(45, 4, 5, 3, FALSE), + PT(60, 19, 4, 1, TRUE), + PT( 1, 28, 5, 3, FALSE), + PT(20, 22, 4, 1, FALSE), + PT(12, 36, 2, 1, TRUE), + PT(53, 55, 6, 2, FALSE), + PT(27, 48, 3, 3, FALSE), + PT(58, 28, 4, 0, FALSE), + PT( 6, 6, 6, 3, FALSE), + PT( 9, 21, 3, 1, FALSE), + PT(27, 26, 4, 3, TRUE), + PT(15, 51, 6, 2, TRUE), + PT(55, 6, 4, 1, TRUE), + PT(58, 18, 3, 2, TRUE), + PT( 0, 22, 5, 0, TRUE), + PT(14, 29, 6, 2, TRUE), + PT(63, 56, 2, 3, FALSE), + PT(42, 60, 6, 2, FALSE), + PT(19, 50, 2, 0, FALSE), + PT(23, 44, 6, 3, TRUE), + PT(41, 42, 3, 3, FALSE), + PT(53, 47, 5, 2, TRUE), + PT(60, 42, 2, 0, TRUE), + PT(40, 19, 4, 0, TRUE), + PT(25, 30, 6, 2, FALSE), + PT(12, 6, 5, 2, TRUE), + PT( 9, 4, 3, 2, FALSE), + PT(29, 47, 4, 3, FALSE), + PT(57, 7, 2, 3, FALSE), + PT(20, 4, 5, 2, TRUE), + PT(58, 47, 5, 3, FALSE), + PT(41, 21, 6, 2, TRUE), + PT(36, 2, 6, 3, FALSE), + PT(63, 2, 3, 1, FALSE), + PT(15, 24, 4, 2, FALSE), + PT(22, 29, 3, 0, TRUE), + PT(20, 22, 2, 0, FALSE), + PT(41, 27, 2, 1, TRUE), + PT(21, 14, 3, 0, TRUE), + PT(58, 46, 5, 1, TRUE), + PT( 8, 48, 2, 2, TRUE), + PT(53, 22, 6, 0, FALSE), + PT(46, 24, 6, 2, TRUE), + PT(59, 11, 3, 2, FALSE), + PT(58, 24, 2, 1, TRUE), + PT(41, 19, 3, 3, FALSE), + PT(32, 19, 4, 3, TRUE), + PT( 4, 29, 6, 2, FALSE), + PT( 0, 56, 3, 0, TRUE), + PT( 8, 57, 6, 1, FALSE), + PT(32, 16, 4, 3, FALSE), + PT( 8, 2, 5, 0, FALSE), + PT(63, 15, 2, 3, FALSE), + PT(48, 31, 3, 0, TRUE), + PT(32, 45, 2, 0, FALSE), + PT(56, 23, 3, 2, FALSE), + PT(24, 49, 4, 3, TRUE), + PT(51, 56, 6, 0, FALSE), + PT(22, 51, 4, 1, TRUE), + PT( 0, 1, 6, 3, FALSE), + PT(13, 2, 4, 1, TRUE), + PT(57, 4, 3, 3, TRUE), + PT(14, 48, 4, 2, FALSE), + PT( 6, 1, 5, 2, FALSE), + PT(52, 51, 6, 2, TRUE), + PT(22, 52, 5, 3, FALSE), + PT(50, 22, 4, 2, FALSE), + PT(38, 57, 6, 2, FALSE), + PT(31, 60, 3, 2, TRUE), + PT(40, 29, 6, 3, TRUE), + PT(23, 21, 5, 1, TRUE), + PT(39, 57, 6, 0, FALSE), + PT(11, 27, 3, 0, FALSE), + PT(53, 32, 5, 2, TRUE), + PT(11, 53, 3, 2, FALSE), + PT( 3, 14, 4, 0, TRUE), + PT( 6, 12, 4, 0, FALSE), + PT( 2, 24, 6, 2, FALSE), + PT(30, 54, 5, 2, TRUE), + PT(22, 12, 3, 0, TRUE), + PT(37, 9, 5, 2, FALSE), + PT(55, 5, 5, 3, FALSE), + PT(46, 43, 5, 2, FALSE), + PT(36, 26, 2, 2, FALSE), + PT(39, 4, 2, 0, FALSE), + PT(50, 56, 6, 1, TRUE), + PT(55, 21, 6, 2, TRUE), + PT(17, 63, 3, 2, TRUE), + PT(35, 35, 3, 3, TRUE), + PT(41, 63, 3, 2, TRUE), + PT(26, 60, 5, 1, TRUE), + PT(27, 44, 5, 2, FALSE), + PT(56, 59, 6, 3, FALSE), + PT( 4, 19, 6, 1, TRUE), + PT(44, 20, 2, 1, FALSE), + PT(26, 9, 3, 1, TRUE), + PT(54, 17, 4, 2, FALSE), + PT(58, 63, 2, 0, TRUE), + PT( 1, 14, 5, 1, TRUE), + PT(59, 3, 5, 1, FALSE), + PT( 8, 13, 5, 1, TRUE), + PT(43, 19, 4, 3, TRUE), + PT(58, 60, 3, 2, FALSE), + PT(58, 21, 5, 1, FALSE), + PT(36, 0, 2, 3, TRUE), + PT(62, 10, 2, 2, TRUE), + PT(12, 41, 5, 2, TRUE), + PT(31, 21, 6, 0, FALSE), + PT(53, 24, 3, 0, TRUE), + PT(61, 55, 6, 3, TRUE), + PT(18, 56, 3, 1, TRUE), + PT(59, 2, 4, 0, FALSE), + PT( 8, 33, 3, 0, TRUE), + PT(46, 54, 3, 2, TRUE), + PT(21, 61, 4, 2, FALSE), + PT(34, 12, 4, 3, TRUE), + PT(54, 63, 6, 1, TRUE), + PT(51, 18, 2, 0, TRUE), + PT(26, 25, 3, 3, TRUE), + PT(43, 36, 2, 1, FALSE), + PT(17, 42, 3, 0, FALSE), + PT(37, 50, 5, 1, FALSE), + PT(44, 26, 2, 1, FALSE), + PT(38, 6, 2, 0, FALSE), + PT(17, 41, 6, 1, TRUE), + PT(44, 9, 2, 2, FALSE), + PT(43, 18, 5, 1, TRUE), + PT(29, 3, 4, 2, FALSE), + PT( 0, 18, 2, 2, TRUE), + PT(34, 61, 4, 3, FALSE), + PT(21, 55, 3, 1, FALSE), + PT(15, 18, 6, 3, TRUE), + PT(36, 1, 3, 0, FALSE), + PT(42, 23, 2, 1, TRUE), + PT(20, 59, 5, 0, TRUE), + PT(42, 25, 6, 1, FALSE), + PT(45, 23, 2, 3, TRUE), + PT(11, 44, 6, 1, TRUE), + PT( 7, 45, 6, 2, FALSE), + PT( 7, 56, 3, 2, TRUE), + PT(31, 54, 4, 1, FALSE), + PT(17, 10, 2, 3, TRUE), + PT(20, 17, 2, 1, TRUE), + PT(42, 23, 4, 2, TRUE), + PT( 1, 58, 3, 2, FALSE), + PT(38, 39, 6, 0, FALSE), + PT(45, 59, 6, 2, TRUE), + PT(58, 48, 6, 2, FALSE), + PT( 6, 58, 3, 2, FALSE), + PT(45, 5, 2, 1, TRUE), + PT(33, 50, 2, 1, FALSE), + PT(62, 30, 5, 2, FALSE), + PT(58, 63, 5, 2, TRUE), + PT(32, 42, 6, 2, FALSE), + PT(38, 3, 3, 1, FALSE), + PT(25, 39, 5, 3, FALSE), + PT(49, 4, 4, 3, FALSE), + PT(42, 63, 6, 0, FALSE), + PT(37, 35, 5, 1, FALSE), + PT( 8, 8, 6, 2, TRUE), + PT(44, 48, 3, 3, FALSE), + PT( 8, 5, 3, 0, FALSE), + PT( 6, 9, 5, 2, TRUE), + PT(25, 0, 4, 3, TRUE), + PT(13, 16, 3, 0, TRUE), + PT(28, 0, 2, 1, TRUE), + PT(61, 11, 4, 2, FALSE), + PT(46, 31, 2, 3, FALSE), + PT(61, 24, 6, 2, FALSE), + PT(18, 30, 2, 2, TRUE), + PT(21, 57, 4, 2, TRUE), + PT(51, 15, 2, 3, TRUE), + PT(26, 28, 3, 1, TRUE), + PT(55, 41, 3, 1, TRUE), + PT(59, 56, 2, 1, FALSE), + PT(29, 34, 6, 2, FALSE), + PT(38, 10, 6, 0, TRUE), + PT(22, 45, 2, 1, TRUE), + PT(13, 32, 4, 3, TRUE), + PT(36, 29, 2, 3, FALSE), + PT(46, 43, 3, 0, FALSE), + PT(22, 42, 3, 1, TRUE), + PT(36, 23, 6, 3, FALSE), + PT( 2, 5, 5, 1, TRUE), + PT(55, 26, 2, 3, TRUE), + PT(17, 61, 5, 2, FALSE), + PT(30, 47, 4, 1, FALSE), + PT(44, 41, 3, 1, FALSE), + PT(47, 4, 4, 2, TRUE), + PT(54, 12, 6, 2, TRUE), + PT(48, 62, 2, 1, FALSE), + PT(17, 48, 6, 3, TRUE), + PT(18, 33, 5, 3, FALSE), + PT(33, 48, 2, 3, TRUE), + PT(44, 61, 4, 2, FALSE), + PT(17, 35, 2, 2, FALSE), + PT(26, 50, 2, 3, TRUE), + PT(57, 39, 3, 0, FALSE), + PT(15, 36, 3, 0, TRUE), + PT( 0, 61, 6, 3, TRUE), + PT(44, 60, 3, 2, FALSE), + PT(11, 57, 4, 1, TRUE), + PT(14, 4, 3, 3, TRUE), + PT(28, 49, 2, 2, FALSE), + PT( 0, 4, 2, 2, TRUE), + PT(38, 42, 5, 1, FALSE), + PT(32, 37, 5, 1, FALSE), + PT(11, 60, 6, 1, TRUE), + PT(17, 11, 5, 3, FALSE), + PT(55, 34, 5, 3, FALSE), + PT(14, 34, 4, 3, FALSE), + PT(24, 45, 4, 3, TRUE), + PT( 6, 12, 3, 2, FALSE), + PT(38, 24, 5, 3, TRUE), + PT(58, 1, 5, 1, FALSE), + PT(47, 49, 6, 2, FALSE), + PT(31, 52, 3, 1, FALSE), + PT(49, 5, 2, 0, FALSE), + PT(46, 23, 6, 2, FALSE), + PT(24, 34, 4, 1, TRUE), + PT(35, 33, 6, 1, FALSE), + PT( 7, 8, 4, 1, FALSE), + PT(38, 28, 4, 1, FALSE), + PT(49, 18, 5, 3, TRUE), + PT( 8, 31, 2, 0, FALSE), + PT(39, 21, 5, 1, FALSE), + PT(31, 11, 4, 3, FALSE), + PT(47, 20, 6, 2, TRUE), + PT(36, 31, 4, 3, FALSE), + PT(59, 35, 6, 1, TRUE), + PT(32, 62, 5, 2, TRUE), + PT(23, 12, 2, 2, TRUE), + PT(19, 57, 3, 1, FALSE), + PT(48, 20, 4, 2, TRUE), + PT( 9, 7, 2, 3, TRUE), + PT(56, 56, 3, 3, TRUE), + PT(41, 36, 4, 3, TRUE), + PT(23, 39, 5, 0, FALSE), + PT(27, 18, 5, 1, FALSE), + PT(43, 61, 5, 2, TRUE), + PT(25, 52, 3, 2, FALSE), + PT( 1, 29, 2, 0, FALSE), + PT( 8, 57, 2, 0, TRUE), + PT(14, 54, 3, 1, TRUE), + PT(38, 19, 2, 0, FALSE), + PT(22, 40, 3, 3, FALSE), + PT(60, 40, 2, 3, TRUE), + PT(62, 57, 6, 2, FALSE), + PT(10, 3, 5, 3, FALSE), + PT(55, 26, 2, 1, TRUE), + PT(43, 51, 4, 3, FALSE), + PT(19, 44, 4, 0, TRUE), + PT(37, 20, 2, 0, FALSE), + PT(22, 11, 6, 2, TRUE), + PT(29, 53, 6, 1, TRUE), + PT(33, 8, 6, 1, TRUE), + PT(40, 33, 3, 1, FALSE), + PT(18, 12, 3, 1, TRUE), + PT(54, 42, 3, 0, TRUE), + PT(44, 43, 4, 1, TRUE), + PT( 1, 15, 4, 3, FALSE), + PT(23, 12, 3, 0, FALSE), + PT( 9, 15, 2, 0, TRUE), + PT(43, 36, 3, 2, FALSE), + PT( 9, 9, 2, 2, TRUE), + PT(54, 8, 2, 1, TRUE), + PT(32, 57, 4, 0, TRUE), + PT( 0, 58, 3, 3, TRUE), + PT(43, 54, 6, 0, TRUE), + PT( 2, 55, 2, 1, TRUE), + PT( 4, 52, 6, 2, TRUE), + PT(55, 61, 3, 1, FALSE), + PT(23, 61, 2, 1, TRUE), + PT(43, 54, 5, 3, TRUE), + PT(19, 30, 2, 1, TRUE), + PT(62, 17, 6, 1, TRUE), + PT(39, 58, 5, 2, TRUE), + PT(30, 49, 3, 1, FALSE), + PT( 3, 3, 5, 2, TRUE), + PT(37, 55, 3, 3, TRUE), + PT(17, 1, 4, 1, FALSE), + PT(28, 18, 2, 3, TRUE), + PT(48, 58, 6, 0, FALSE), + PT(23, 29, 5, 0, TRUE), + PT(14, 19, 4, 3, TRUE), + PT(26, 46, 4, 2, FALSE), + PT(45, 0, 3, 2, FALSE), + PT(23, 40, 3, 2, TRUE), + PT( 9, 31, 5, 3, FALSE), + PT(26, 45, 4, 3, FALSE), + PT(10, 19, 6, 1, FALSE), + PT(62, 0, 4, 3, TRUE), + PT(11, 59, 6, 0, FALSE), + PT( 8, 58, 5, 2, TRUE), + PT(34, 18, 3, 3, FALSE), + PT(52, 29, 5, 1, TRUE), + PT(38, 34, 6, 2, TRUE), + PT(23, 44, 2, 3, TRUE), + PT(41, 19, 5, 2, TRUE), + PT(45, 16, 2, 0, FALSE), + PT(32, 49, 4, 1, TRUE), + PT(30, 51, 3, 0, FALSE), + PT(51, 6, 5, 2, TRUE), + PT(38, 20, 4, 3, TRUE), + PT(34, 29, 5, 1, FALSE), + PT(45, 6, 3, 0, FALSE), + PT( 7, 9, 5, 3, FALSE), + PT(33, 21, 5, 3, FALSE), + PT(33, 56, 4, 1, TRUE), + PT(53, 11, 6, 2, FALSE), + PT(36, 11, 4, 1, FALSE), + PT(30, 1, 2, 3, TRUE), + PT(11, 36, 2, 0, TRUE), + PT(23, 7, 4, 0, FALSE), + PT(20, 37, 6, 1, FALSE), + PT(26, 14, 5, 3, TRUE), + PT(53, 23, 3, 3, TRUE), + PT(12, 8, 4, 0, TRUE), + PT(48, 53, 3, 3, TRUE), + PT(12, 11, 4, 0, FALSE), + PT( 4, 16, 2, 0, TRUE), + PT(53, 17, 3, 3, FALSE), + PT(51, 61, 2, 3, FALSE), + PT(30, 43, 3, 2, TRUE), + PT(26, 25, 2, 0, FALSE), + PT( 4, 6, 4, 1, FALSE), + PT( 3, 61, 4, 2, FALSE), + PT(42, 14, 6, 2, TRUE), + PT( 3, 62, 2, 3, TRUE), + PT(11, 24, 6, 3, FALSE), + PT(61, 13, 4, 3, FALSE), + PT(53, 18, 4, 0, FALSE), + PT(31, 13, 2, 3, FALSE), + PT(35, 50, 3, 1, FALSE), + PT( 0, 61, 4, 3, FALSE), + PT(48, 25, 6, 3, FALSE), + PT(18, 14, 4, 1, TRUE), + PT( 1, 35, 5, 0, FALSE), + PT(59, 49, 2, 0, TRUE), + PT(45, 28, 6, 3, FALSE), + PT(42, 5, 2, 3, FALSE), + PT(20, 14, 6, 0, FALSE), + PT(58, 55, 3, 0, TRUE), + PT(31, 48, 4, 2, TRUE), + PT(16, 38, 5, 3, TRUE), + PT(34, 17, 3, 3, TRUE), + PT(46, 43, 3, 3, FALSE), + PT(22, 22, 4, 0, TRUE), + PT(50, 24, 6, 2, TRUE), + PT(35, 50, 3, 1, FALSE), + PT(61, 13, 3, 0, TRUE), + PT(57, 9, 4, 1, TRUE), + PT(48, 46, 4, 2, FALSE), + PT(30, 15, 4, 2, FALSE), + PT( 9, 33, 6, 0, TRUE), + PT( 5, 3, 2, 0, TRUE), + PT( 5, 34, 5, 1, FALSE), + PT( 3, 7, 6, 3, TRUE), + PT( 4, 8, 2, 1, TRUE), + PT( 5, 16, 6, 2, FALSE), + PT(55, 20, 5, 0, TRUE), + PT(10, 36, 6, 1, FALSE), + PT(52, 30, 3, 1, TRUE), + PT(18, 23, 5, 3, FALSE), + PT( 1, 2, 2, 1, TRUE), + PT(10, 12, 2, 0, TRUE), + PT( 2, 20, 2, 1, TRUE), + PT(13, 37, 4, 1, TRUE), + PT( 0, 7, 3, 1, FALSE), + PT(28, 40, 6, 2, TRUE), + PT( 8, 14, 5, 2, FALSE), + PT(27, 60, 2, 2, TRUE), + PT(28, 25, 3, 2, TRUE), + PT(50, 19, 3, 1, FALSE), + PT(28, 0, 6, 3, TRUE), + PT(34, 27, 6, 2, TRUE), + PT(57, 62, 2, 2, FALSE), + PT(50, 6, 6, 0, TRUE), + PT(23, 5, 5, 1, TRUE), + PT( 1, 15, 4, 0, FALSE), + PT(30, 15, 6, 2, FALSE), + PT(24, 3, 3, 3, TRUE), + PT(43, 0, 2, 2, FALSE), + PT(21, 58, 6, 0, FALSE), + PT(37, 48, 4, 0, TRUE), + PT(11, 0, 6, 3, TRUE), + PT(36, 55, 3, 2, TRUE), + PT(41, 33, 2, 3, FALSE), + PT(36, 15, 5, 2, FALSE), + PT(62, 21, 6, 3, FALSE), + PT(60, 45, 4, 1, TRUE), + PT(61, 60, 2, 3, TRUE), + PT(26, 28, 2, 1, TRUE), + PT(10, 41, 4, 1, FALSE), + PT(37, 63, 4, 3, FALSE), + PT(59, 57, 5, 3, TRUE), + PT(29, 8, 2, 3, FALSE), + PT(11, 25, 2, 2, FALSE), + PT(18, 1, 5, 2, FALSE), + PT(53, 17, 5, 1, FALSE), + PT( 2, 0, 2, 1, TRUE), + PT(57, 42, 6, 2, TRUE), + PT( 7, 26, 2, 0, TRUE), + PT(36, 14, 3, 3, FALSE), + PT(14, 44, 2, 2, TRUE), + PT( 8, 49, 3, 1, TRUE), + PT(33, 29, 4, 3, FALSE), + PT(29, 28, 5, 1, FALSE), + PT(29, 36, 2, 1, TRUE), + PT( 1, 0, 3, 0, FALSE), + PT(40, 42, 6, 3, TRUE), + PT(21, 15, 2, 1, TRUE), + PT(16, 50, 6, 3, FALSE), + PT(34, 19, 6, 0, TRUE), + PT(19, 5, 3, 3, FALSE), + PT(23, 53, 6, 2, TRUE), + PT(59, 14, 4, 2, FALSE), + PT(53, 58, 3, 2, TRUE), + PT(27, 54, 3, 1, TRUE), + PT( 3, 29, 4, 2, FALSE), + PT(15, 22, 6, 0, FALSE), + PT(45, 9, 4, 2, TRUE), + PT( 5, 33, 2, 1, TRUE), + PT(10, 39, 6, 3, FALSE), + PT( 4, 13, 3, 2, FALSE), + PT( 6, 62, 4, 0, TRUE), + PT(42, 39, 6, 1, TRUE), + PT(40, 14, 2, 2, TRUE), + PT(11, 23, 3, 2, TRUE), + PT(29, 50, 5, 2, TRUE), + PT( 8, 61, 5, 0, TRUE), + PT(33, 50, 2, 3, TRUE), + PT(51, 49, 4, 1, FALSE), + PT(14, 3, 4, 0, TRUE), + PT(13, 11, 2, 3, FALSE), + PT(62, 42, 5, 3, FALSE), + PT(25, 54, 5, 1, FALSE), + PT(13, 0, 2, 2, FALSE), + PT(34, 7, 6, 3, FALSE), + PT(10, 9, 2, 2, TRUE), + PT(20, 16, 4, 1, FALSE), + PT( 7, 22, 5, 2, FALSE), + PT(54, 19, 2, 2, TRUE), + PT( 9, 47, 3, 1, TRUE), + PT(32, 59, 5, 3, FALSE), + PT(58, 58, 2, 3, FALSE), + PT(13, 21, 5, 1, FALSE), + PT(57, 19, 5, 1, TRUE), + PT(11, 1, 5, 1, FALSE), + PT(19, 23, 3, 3, FALSE), + PT( 8, 23, 3, 3, FALSE), + PT(12, 15, 6, 2, FALSE), + PT(31, 49, 2, 1, FALSE), + PT( 7, 58, 3, 2, TRUE), + PT(53, 30, 2, 1, FALSE), + PT(36, 44, 2, 2, TRUE), + PT(14, 33, 3, 0, TRUE), + PT(52, 59, 6, 1, TRUE), + PT(25, 15, 5, 0, FALSE), + PT(16, 47, 5, 3, FALSE), + PT(35, 39, 6, 0, TRUE), + PT(57, 46, 3, 0, FALSE), + PT(60, 63, 4, 2, FALSE), + PT( 7, 35, 6, 0, FALSE), + PT(40, 19, 6, 2, TRUE), + PT(19, 10, 2, 0, FALSE), + PT(53, 25, 6, 1, TRUE), + PT(35, 40, 5, 0, TRUE), + PT(19, 47, 3, 1, FALSE), + PT(58, 25, 2, 2, FALSE), + PT(55, 54, 4, 3, FALSE), + PT(32, 59, 2, 2, TRUE), + PT(55, 57, 2, 0, FALSE), + PT(60, 33, 6, 2, FALSE), + PT(28, 56, 6, 0, FALSE), + PT(21, 7, 4, 3, FALSE), + PT(39, 33, 3, 0, TRUE), + PT(24, 17, 4, 1, TRUE), + PT(48, 40, 6, 3, TRUE), + PT(50, 45, 3, 3, TRUE), + PT(44, 63, 6, 0, FALSE), + PT(29, 47, 4, 3, FALSE), + PT( 1, 17, 3, 2, FALSE), + PT(59, 15, 2, 1, FALSE), + PT(42, 23, 4, 3, TRUE), + PT( 5, 0, 3, 1, TRUE), + PT(37, 28, 6, 1, FALSE), + PT( 4, 34, 5, 2, TRUE), + PT(16, 15, 4, 2, TRUE), + PT(13, 57, 6, 0, FALSE), + PT(11, 46, 4, 3, TRUE), + PT(45, 52, 2, 2, TRUE), + PT(62, 48, 6, 3, FALSE), + PT(22, 38, 5, 1, FALSE), + PT( 5, 63, 5, 1, TRUE), + PT(32, 59, 5, 3, FALSE), + PT(59, 28, 5, 3, TRUE), + PT( 1, 24, 2, 3, FALSE), + PT(22, 61, 2, 0, FALSE), + PT(10, 31, 3, 0, FALSE), + PT(23, 15, 4, 1, FALSE), + PT( 6, 19, 2, 0, TRUE), + PT(56, 33, 2, 3, TRUE), + PT(23, 10, 6, 3, TRUE), + PT(28, 25, 6, 0, FALSE), + PT(22, 56, 6, 0, TRUE), + PT(48, 16, 6, 3, FALSE), + PT(49, 47, 4, 3, FALSE), + PT(60, 27, 4, 1, TRUE), + PT(51, 47, 3, 0, TRUE), + PT(22, 53, 4, 2, TRUE), + PT(58, 24, 3, 3, TRUE), + PT(55, 1, 3, 3, FALSE), + PT(13, 24, 2, 1, FALSE), + PT(31, 28, 3, 1, TRUE), + PT( 7, 52, 5, 2, TRUE), + PT(11, 63, 6, 1, TRUE), + PT(30, 52, 3, 2, TRUE), + PT(44, 19, 5, 2, FALSE), + PT(32, 32, 2, 1, TRUE), + PT(32, 15, 6, 0, TRUE), + PT( 8, 15, 4, 2, FALSE), + PT(24, 61, 3, 2, FALSE), + PT(54, 52, 4, 3, TRUE), + PT(51, 42, 4, 2, TRUE), + PT(45, 48, 4, 3, FALSE), + PT(61, 55, 4, 3, FALSE), + PT(37, 17, 2, 0, TRUE), + PT( 3, 5, 3, 0, FALSE), + PT(16, 4, 5, 0, TRUE), + PT( 7, 46, 6, 3, FALSE), + PT(42, 41, 2, 2, TRUE), + PT(58, 14, 6, 1, TRUE), + PT(42, 6, 5, 0, TRUE), + PT(61, 1, 5, 0, TRUE), + PT(39, 14, 2, 3, FALSE), + PT(29, 40, 3, 1, TRUE), + PT(16, 51, 5, 1, TRUE), + PT(12, 20, 3, 2, TRUE), + PT(21, 63, 4, 2, TRUE), + PT(55, 35, 3, 3, FALSE), + PT( 4, 44, 3, 2, FALSE), + PT(21, 52, 5, 1, FALSE), + PT( 9, 47, 2, 2, TRUE), + PT( 2, 63, 2, 2, FALSE), + PT(25, 44, 6, 1, TRUE), + PT(57, 50, 4, 0, FALSE), + PT(42, 24, 6, 1, FALSE), + PT(23, 35, 4, 0, TRUE), + PT(11, 45, 4, 2, TRUE), + PT(36, 58, 5, 2, TRUE), + PT(49, 63, 6, 2, FALSE), + PT(24, 25, 4, 2, FALSE), + PT(30, 21, 3, 1, FALSE), + PT(23, 51, 5, 1, TRUE), + PT(35, 9, 4, 3, FALSE), + PT(27, 13, 2, 2, TRUE), + PT(54, 38, 5, 0, FALSE), + PT(58, 28, 2, 2, FALSE), + PT(12, 62, 2, 0, FALSE), + PT(24, 6, 6, 2, TRUE), + PT(55, 38, 6, 3, FALSE), + PT(33, 38, 2, 3, TRUE), + PT(61, 28, 5, 2, FALSE), + PT(22, 37, 3, 2, TRUE), + PT(30, 11, 3, 3, FALSE), + PT(29, 13, 6, 1, FALSE), + PT( 8, 31, 3, 1, TRUE), + PT(18, 28, 2, 1, FALSE), + PT(32, 42, 5, 0, FALSE), + PT( 6, 59, 6, 2, TRUE), + PT(57, 14, 3, 3, FALSE), + PT(49, 48, 5, 0, FALSE), + PT( 2, 33, 2, 2, FALSE), + PT( 6, 30, 5, 0, TRUE), + PT(22, 9, 3, 2, FALSE), + PT(39, 50, 5, 2, TRUE), + PT(57, 3, 4, 3, TRUE), + PT(41, 9, 3, 3, FALSE), + PT(27, 17, 3, 2, FALSE), + PT(40, 58, 5, 2, FALSE), + PT( 3, 3, 3, 0, FALSE), + PT(35, 9, 5, 3, TRUE), + PT(48, 23, 4, 1, TRUE), + PT(15, 37, 6, 1, TRUE), + PT( 6, 36, 6, 3, TRUE), + PT(34, 9, 6, 1, TRUE), + PT(44, 9, 5, 1, FALSE), + PT(12, 18, 5, 1, FALSE), + PT(40, 32, 2, 0, FALSE), + PT(21, 41, 6, 1, TRUE), + PT(15, 26, 2, 1, TRUE), + PT(19, 24, 6, 3, FALSE), + PT(46, 22, 2, 1, TRUE), + PT(60, 26, 2, 2, TRUE), + PT(58, 17, 6, 1, FALSE), + PT( 2, 10, 5, 2, FALSE), + PT(25, 57, 2, 0, TRUE), + PT(49, 62, 3, 2, TRUE), + PT(50, 20, 6, 1, FALSE), + PT(18, 46, 6, 2, FALSE), + PT(62, 54, 4, 1, TRUE), + PT(55, 62, 2, 2, TRUE), + PT(21, 53, 6, 2, FALSE), + PT( 1, 58, 5, 2, FALSE), + PT(38, 37, 4, 1, FALSE), + PT( 1, 43, 6, 3, TRUE), + PT(28, 61, 6, 1, TRUE), + PT(62, 16, 3, 2, FALSE), + PT(38, 51, 3, 0, TRUE), + PT( 5, 25, 2, 3, TRUE), + PT(18, 56, 3, 2, FALSE), + PT(21, 60, 6, 1, FALSE), + PT(63, 15, 6, 3, TRUE), + PT( 2, 57, 6, 1, FALSE), + PT(19, 0, 3, 2, TRUE), + PT(29, 44, 2, 0, FALSE), + PT(57, 19, 6, 0, TRUE), + PT(15, 55, 3, 0, TRUE), + PT( 9, 13, 5, 1, FALSE), + PT(32, 47, 6, 1, FALSE), + PT(59, 52, 4, 1, FALSE), + PT(38, 20, 2, 0, FALSE), + PT(36, 61, 4, 1, FALSE), + PT(11, 49, 4, 1, TRUE), + PT(47, 45, 5, 1, FALSE), + PT(48, 4, 6, 2, TRUE), + PT(25, 32, 5, 1, FALSE), + PT(22, 54, 6, 3, TRUE), + PT(20, 40, 6, 3, TRUE), + PT(17, 11, 4, 3, TRUE), + PT(29, 6, 5, 0, TRUE), + PT(53, 22, 5, 3, FALSE), + PT(36, 46, 5, 0, TRUE), + PT(54, 20, 5, 1, FALSE), + PT(33, 12, 3, 3, TRUE), + PT(63, 57, 3, 0, TRUE), + PT(39, 16, 5, 1, FALSE), + PT(30, 18, 6, 2, FALSE), + PT(16, 36, 6, 2, FALSE), + PT(29, 19, 3, 2, TRUE), + PT(23, 22, 6, 3, TRUE), + PT(39, 27, 4, 3, TRUE), + PT( 7, 36, 4, 0, TRUE), + PT(55, 33, 2, 0, TRUE), + PT(55, 40, 4, 2, FALSE), + PT(25, 2, 3, 2, FALSE), + PT(20, 18, 3, 2, TRUE), + PT(27, 36, 5, 3, FALSE), + PT(46, 58, 2, 2, TRUE), + PT(55, 52, 4, 0, TRUE), + PT(51, 45, 5, 0, TRUE), + PT(47, 30, 6, 2, FALSE), + PT(41, 60, 2, 1, FALSE), + PT( 5, 21, 4, 0, FALSE), + PT( 5, 62, 3, 0, TRUE), + PT(24, 11, 6, 0, FALSE), + PT(47, 2, 4, 3, TRUE), + PT(20, 28, 6, 2, FALSE), + PT(18, 32, 6, 0, FALSE), + PT(43, 34, 3, 1, TRUE), + PT( 6, 49, 5, 0, FALSE), + PT(21, 45, 2, 1, FALSE), + PT( 1, 14, 2, 1, TRUE), + PT(19, 12, 5, 0, FALSE), + PT( 7, 42, 2, 2, FALSE), + PT(29, 54, 2, 2, FALSE), + PT(21, 43, 4, 3, FALSE), + PT( 3, 37, 2, 2, TRUE), + PT(62, 59, 4, 0, FALSE), + PT(53, 12, 4, 2, TRUE), + PT(43, 22, 6, 2, TRUE), + PT(30, 49, 5, 2, FALSE), + PT( 6, 3, 5, 0, TRUE), + PT(36, 7, 3, 3, TRUE), + PT(50, 47, 3, 0, TRUE), + PT(37, 33, 6, 0, TRUE), + PT(34, 38, 3, 2, TRUE), + PT( 0, 27, 3, 0, FALSE), + PT(42, 36, 6, 0, TRUE), + PT(32, 6, 5, 3, TRUE), + PT(30, 50, 4, 3, FALSE), + PT(50, 57, 2, 1, FALSE), + PT(32, 1, 3, 0, TRUE), + PT(15, 21, 2, 2, TRUE), + PT(39, 16, 5, 3, FALSE), + PT( 9, 37, 3, 0, TRUE), + PT(41, 55, 6, 0, FALSE), + PT(19, 28, 3, 2, TRUE), + PT(41, 45, 4, 3, FALSE), + PT( 2, 26, 2, 3, FALSE), + PT(29, 43, 3, 2, FALSE), + PT(24, 4, 6, 2, FALSE), + PT(40, 42, 4, 0, TRUE), + PT(21, 27, 5, 3, FALSE), + PT(22, 1, 2, 0, FALSE), + PT( 5, 9, 2, 2, FALSE), + PT(34, 3, 4, 1, FALSE), + PT( 2, 27, 6, 2, FALSE), + PT(41, 42, 4, 1, TRUE), + PT(38, 54, 2, 1, TRUE), + PT(35, 61, 3, 1, FALSE), + PT(29, 16, 4, 2, FALSE), + PT(37, 43, 6, 3, TRUE), + PT(25, 36, 4, 3, FALSE), + PT(40, 19, 2, 3, FALSE), + PT(23, 20, 3, 0, TRUE), + PT(11, 47, 4, 2, TRUE), + PT(55, 52, 6, 3, TRUE), + PT(57, 33, 3, 1, TRUE), + PT(15, 61, 5, 2, TRUE), + PT(13, 16, 4, 0, FALSE), + PT( 5, 11, 5, 2, TRUE), + PT( 1, 18, 4, 2, FALSE), + PT(24, 61, 6, 1, FALSE), + PT( 9, 33, 4, 3, FALSE), + PT(26, 14, 3, 3, TRUE), + PT(48, 6, 3, 3, TRUE), + PT(11, 60, 5, 0, TRUE), + PT( 7, 62, 4, 3, TRUE), + PT(19, 30, 3, 1, FALSE), + PT(19, 7, 4, 1, TRUE), + PT(16, 52, 3, 3, FALSE), + PT(50, 23, 4, 1, TRUE), + PT(53, 22, 6, 0, TRUE), + PT(50, 46, 3, 1, TRUE), + PT(40, 14, 4, 1, FALSE), + PT(20, 58, 4, 1, TRUE), + PT(34, 3, 5, 0, TRUE), + PT(42, 16, 4, 0, FALSE), + PT(62, 60, 4, 3, TRUE), + PT(22, 32, 2, 1, FALSE), + PT(63, 36, 6, 0, TRUE), + PT(13, 46, 6, 1, FALSE), + PT(47, 23, 5, 2, TRUE), + PT(54, 59, 2, 3, TRUE), + PT(36, 35, 3, 0, FALSE), + PT(55, 29, 2, 1, TRUE), + PT(23, 58, 3, 1, FALSE), + PT(10, 61, 3, 3, FALSE), + PT( 5, 18, 2, 3, FALSE), + PT(51, 50, 4, 2, TRUE), + PT(29, 31, 5, 0, TRUE), + PT(52, 44, 4, 3, FALSE), + PT(32, 41, 6, 2, TRUE), + PT(14, 50, 2, 3, TRUE), + PT( 1, 57, 5, 2, TRUE), + PT(39, 36, 4, 1, TRUE), + PT(40, 63, 3, 0, FALSE), + PT(57, 56, 4, 2, TRUE), + PT(35, 17, 2, 0, TRUE), + PT(25, 44, 5, 0, TRUE), + PT(48, 8, 5, 0, FALSE), + PT(37, 39, 3, 2, TRUE), + PT(23, 37, 4, 0, TRUE), + PT( 9, 61, 2, 3, FALSE), + PT(27, 15, 5, 2, FALSE), + PT(27, 18, 4, 1, FALSE), + PT(40, 62, 4, 3, FALSE), + PT(52, 16, 3, 1, TRUE), + PT( 2, 52, 2, 2, TRUE), + PT(26, 41, 3, 0, TRUE), + PT(41, 17, 6, 0, TRUE), + PT(18, 39, 2, 3, TRUE), + PT(39, 39, 5, 3, TRUE), + PT(52, 39, 4, 2, FALSE), + PT( 3, 25, 6, 3, FALSE), + PT(23, 29, 6, 1, TRUE), + PT(25, 37, 3, 1, FALSE), + PT(43, 57, 2, 1, TRUE), + PT(59, 51, 3, 2, TRUE), + PT(39, 49, 6, 2, FALSE), + PT(40, 51, 6, 3, TRUE), + PT( 9, 48, 3, 1, TRUE), + PT( 3, 58, 4, 3, TRUE), + PT(25, 17, 3, 3, TRUE), + PT(11, 26, 6, 2, FALSE), + PT(61, 42, 2, 2, TRUE), + PT( 4, 36, 6, 3, FALSE), + PT(48, 35, 6, 0, FALSE), + PT(15, 34, 3, 1, TRUE), + PT(61, 61, 4, 2, FALSE), + PT(41, 29, 2, 1, FALSE), + PT(22, 25, 5, 3, FALSE), + PT( 3, 18, 2, 3, TRUE), + PT(24, 37, 6, 1, TRUE), + PT(47, 35, 3, 1, FALSE), + PT(26, 53, 4, 3, TRUE), + PT(33, 38, 3, 0, TRUE), + PT(27, 48, 3, 0, FALSE), + PT(43, 34, 5, 2, TRUE), + PT(44, 26, 6, 2, FALSE), + PT(62, 18, 3, 0, TRUE), + PT(40, 39, 2, 2, TRUE), + PT(27, 17, 2, 1, FALSE), + PT(23, 21, 2, 0, FALSE), + PT(52, 55, 4, 2, TRUE), + PT(18, 63, 2, 2, TRUE), + PT(49, 13, 6, 3, TRUE), + PT(62, 42, 5, 2, TRUE), + PT(15, 36, 4, 2, FALSE), + PT(60, 63, 3, 3, TRUE), + PT(29, 52, 2, 3, TRUE), + PT(26, 35, 3, 3, TRUE), + PT(55, 15, 2, 0, FALSE), + PT(50, 52, 6, 2, TRUE), + PT(25, 5, 4, 1, FALSE), + PT(51, 22, 6, 2, FALSE), + PT(30, 20, 3, 3, FALSE), + PT( 8, 19, 5, 0, TRUE), + PT(58, 55, 6, 0, FALSE), + PT(29, 54, 2, 2, TRUE), + PT(41, 46, 3, 2, TRUE), + PT(50, 46, 4, 1, TRUE), + PT(53, 23, 3, 2, FALSE), + PT(54, 29, 2, 1, TRUE), + PT(35, 52, 6, 2, FALSE), + PT(36, 26, 6, 3, TRUE), + PT(47, 38, 5, 3, FALSE), + PT(30, 23, 3, 1, FALSE), + PT(31, 21, 3, 3, TRUE), + PT(43, 31, 3, 0, TRUE), + PT(10, 51, 3, 1, FALSE), + PT(53, 49, 4, 2, FALSE), + PT(45, 23, 5, 2, FALSE), + PT(12, 33, 6, 3, FALSE), + PT(44, 53, 6, 2, TRUE), + PT(27, 3, 4, 3, TRUE), + PT( 1, 13, 3, 2, TRUE), + PT(28, 14, 2, 0, TRUE), + PT(17, 43, 2, 0, FALSE), + PT(37, 59, 4, 0, FALSE), + PT(31, 23, 3, 0, TRUE), + PT(32, 8, 6, 3, FALSE), + PT(19, 56, 3, 0, TRUE), + PT(27, 43, 4, 2, FALSE), + PT(11, 31, 5, 0, TRUE), + PT(39, 21, 5, 2, FALSE), + PT(55, 57, 2, 0, FALSE), + PT(58, 21, 5, 3, FALSE), + PT(47, 17, 6, 3, FALSE), + PT(36, 4, 4, 0, FALSE), + PT(59, 42, 6, 2, TRUE), + PT(39, 53, 6, 2, FALSE), + PT(13, 27, 4, 0, FALSE), + PT(16, 34, 6, 3, TRUE), + PT(31, 56, 4, 3, TRUE), + PT(49, 15, 5, 0, FALSE), + PT(40, 37, 2, 2, TRUE), + PT( 0, 29, 4, 2, TRUE), + PT(49, 40, 5, 0, FALSE), + PT(11, 58, 3, 2, TRUE), + PT(45, 19, 3, 1, TRUE), + PT( 3, 55, 5, 3, FALSE), + PT(29, 40, 3, 0, TRUE), + PT( 8, 45, 4, 1, FALSE), + PT(39, 57, 6, 1, FALSE), + PT(63, 47, 3, 2, TRUE), + PT(51, 52, 5, 0, FALSE), + PT(24, 8, 6, 0, TRUE), + PT(35, 31, 2, 1, TRUE), + PT(13, 44, 4, 1, TRUE), + PT(58, 45, 3, 1, FALSE), + PT( 2, 37, 2, 1, TRUE), + PT(32, 54, 6, 2, FALSE), + PT(18, 43, 5, 2, TRUE), + PT(53, 53, 6, 2, FALSE), + PT(35, 32, 4, 0, TRUE), + PT(58, 25, 3, 1, TRUE), + PT(31, 43, 3, 0, TRUE), + PT(53, 14, 3, 0, TRUE), + PT(38, 36, 6, 3, TRUE), + PT(24, 8, 2, 0, FALSE), + PT(12, 22, 5, 2, TRUE), + PT(31, 52, 4, 0, TRUE), + PT( 5, 56, 3, 0, TRUE), + PT(20, 33, 4, 2, FALSE), + PT(17, 49, 2, 2, FALSE), + PT(62, 56, 5, 0, TRUE), + PT(63, 8, 4, 2, TRUE), + PT(42, 31, 4, 2, TRUE), + PT(37, 6, 5, 0, FALSE), + PT(11, 30, 2, 2, FALSE), + PT(26, 56, 4, 1, FALSE), + PT(36, 24, 5, 0, TRUE), + PT(26, 17, 4, 0, FALSE), + PT(59, 58, 3, 3, FALSE), + PT(28, 38, 3, 1, FALSE), + PT( 5, 50, 3, 0, TRUE), + PT(57, 42, 6, 0, TRUE), + PT( 9, 7, 4, 2, TRUE), + PT( 5, 62, 2, 3, FALSE), + PT(52, 38, 2, 2, FALSE), + PT(27, 50, 4, 3, FALSE), + PT( 5, 8, 6, 3, TRUE), + PT(15, 3, 4, 0, FALSE), + PT(42, 57, 6, 0, TRUE), + PT( 8, 1, 3, 3, FALSE), + PT(29, 35, 6, 0, TRUE), + PT(40, 27, 5, 0, FALSE), + PT(30, 55, 2, 2, FALSE), + PT(19, 14, 5, 0, FALSE), + PT(42, 59, 6, 3, TRUE), + PT(47, 28, 5, 0, FALSE), + PT(48, 48, 3, 1, FALSE), + PT(54, 31, 2, 3, FALSE), + PT(62, 13, 2, 2, TRUE), + PT(46, 22, 3, 0, FALSE), + PT(21, 55, 4, 0, FALSE), + PT(42, 51, 6, 0, FALSE), + PT(43, 14, 4, 2, TRUE), + PT(24, 32, 2, 3, FALSE), + PT( 2, 25, 4, 2, TRUE), + PT(10, 46, 6, 0, FALSE), + PT(22, 3, 2, 0, TRUE), + PT( 4, 39, 4, 2, TRUE), + PT(27, 28, 4, 0, TRUE), + PT(41, 4, 4, 3, TRUE), + PT(61, 32, 3, 3, FALSE), + PT(40, 51, 6, 0, TRUE), + PT(30, 57, 2, 0, FALSE), + PT(49, 41, 3, 3, FALSE), + PT( 6, 37, 5, 0, FALSE), + PT(25, 59, 2, 1, FALSE), + PT(11, 27, 3, 2, FALSE), + PT(62, 55, 4, 0, FALSE), + PT(10, 55, 6, 1, TRUE), + PT( 2, 44, 4, 2, TRUE), + PT(21, 24, 2, 2, FALSE), + PT(59, 32, 3, 2, FALSE), + PT(34, 59, 3, 2, FALSE), + PT(36, 52, 6, 2, TRUE), + PT(15, 47, 6, 0, TRUE), + PT(59, 23, 6, 2, TRUE), + PT(48, 57, 6, 3, TRUE), + PT(13, 21, 2, 0, TRUE), + PT(16, 3, 3, 3, FALSE), + PT(26, 57, 6, 1, TRUE), + PT(47, 46, 5, 0, FALSE), + PT(28, 40, 6, 3, FALSE), + PT(40, 24, 3, 3, TRUE), + PT(21, 1, 6, 0, FALSE), + PT(62, 50, 5, 0, FALSE), + PT(52, 47, 4, 1, TRUE), + PT( 7, 12, 6, 3, FALSE), + PT(40, 44, 6, 2, FALSE), + PT(42, 12, 3, 3, TRUE), + PT(63, 32, 2, 1, TRUE), + PT(43, 23, 4, 3, TRUE), + PT(40, 41, 5, 1, FALSE), + PT(60, 19, 6, 3, FALSE), + PT(38, 45, 5, 1, FALSE), + PT(10, 6, 3, 3, FALSE), + PT(32, 4, 3, 1, FALSE), + PT( 2, 7, 6, 2, TRUE), + PT(14, 24, 6, 0, FALSE), + PT( 0, 52, 6, 2, FALSE), + PT(47, 20, 6, 3, TRUE), + PT(33, 48, 3, 3, TRUE), + PT(21, 55, 3, 1, TRUE), + PT(58, 11, 6, 1, FALSE), + PT(34, 34, 4, 0, TRUE), + PT(27, 53, 4, 1, TRUE), + PT(13, 3, 3, 2, FALSE), + PT(35, 59, 2, 1, TRUE), + PT(14, 29, 3, 3, TRUE), + PT(29, 63, 5, 3, FALSE), + PT(57, 39, 5, 3, FALSE), + PT(15, 56, 4, 0, FALSE), + PT(49, 60, 6, 2, TRUE), + PT(11, 15, 5, 3, FALSE), + PT( 6, 6, 5, 0, FALSE), + PT(37, 57, 4, 1, TRUE), + PT(10, 50, 2, 2, TRUE), + PT(15, 29, 4, 2, TRUE), + PT(12, 13, 6, 2, FALSE), + PT(18, 46, 4, 0, TRUE), + PT(54, 24, 3, 3, TRUE), + PT(31, 52, 3, 1, TRUE), + PT( 5, 58, 6, 3, FALSE), + PT(43, 1, 2, 3, TRUE), + PT(14, 22, 5, 1, TRUE), + PT(14, 11, 4, 3, FALSE), + PT(13, 45, 2, 0, FALSE), + PT(33, 17, 4, 3, TRUE), + PT(61, 19, 6, 1, FALSE), + PT(21, 37, 5, 1, FALSE), + PT(27, 45, 6, 2, TRUE), + PT(44, 43, 4, 3, FALSE), + PT(38, 31, 4, 0, FALSE), + PT(34, 43, 2, 1, FALSE), + PT(63, 61, 4, 3, TRUE), + PT(48, 10, 6, 3, FALSE), + PT(53, 31, 2, 3, TRUE), + PT(33, 8, 5, 0, TRUE), + PT(29, 32, 6, 1, TRUE), + PT(52, 17, 2, 3, FALSE), + PT( 5, 56, 5, 2, TRUE), }; +#undef PT + + void ApplyImageProcessingEffects(struct ImageProcessingContext *context) { gCanvasPixels = context->canvasPixels; @@ -3324,15 +3335,15 @@ static void ApplyImageEffect_RedChannelGrayscale(u8 delta) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { // Gets the grayscale value, based on the pixel's red channel. // Also adds a delta to skew lighter or darker. - u8 grayValue = (31 & *pixel); + u8 grayValue = (*pixel & RGB_RED); grayValue += delta; if (grayValue > 31) grayValue = 31; @@ -3349,13 +3360,13 @@ static void ApplyImageEffect_RedChannelGrayscaleHighlight(u8 highlight) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - u8 grayValue = (31 & *pixel); + u8 grayValue = (*pixel & RGB_RED); if (grayValue > 31 - highlight) grayValue = 31 - (highlight >> 1); @@ -3368,7 +3379,7 @@ static void ApplyImageEffect_RedChannelGrayscaleHighlight(u8 highlight) static void ApplyImageEffect_Pointillism(void) { u32 i; - for (i = 0; i < NELEMS(sPointillismPoints); i++) + for (i = 0; i < ARRAY_COUNT(sPointillismPoints); i++) AddPointillismPoints(i); } @@ -3378,11 +3389,11 @@ static void ApplyImageEffect_Grayscale(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = ConvertColorToGrayscale(pixel); } } @@ -3394,7 +3405,7 @@ static void ApplyImageEffect_Blur(void) for (i = 0; i < gCanvasColumnEnd; i++) { - u16 *pixelRow = &(*gCanvasPixels)[0][gCanvasRowStart * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[gCanvasRowStart * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart + i]; u16 prevPixel = *pixel; @@ -3402,7 +3413,7 @@ static void ApplyImageEffect_Blur(void) pixel += gCanvasWidth; while (j < gCanvasRowEnd - 1) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { *pixel = QuantizePixel_Blur(&prevPixel, pixel, pixel + gCanvasWidth); prevPixel = *pixel; @@ -3420,11 +3431,11 @@ static void ApplyImageEffect_PersonalityColor(u8 personality) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_PersonalityColor(pixel, personality); } } @@ -3436,11 +3447,11 @@ static void ApplyImageEffect_BlackAndWhite(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_BlackAndWhite(pixel); } } @@ -3454,7 +3465,7 @@ static void ApplyImageEffect_BlackOutline(void) // Handle top row of pixels first. for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; pixel = &pixelRow[gCanvasColumnStart]; *pixel = QuantizePixel_BlackOutline(pixel, pixel + 1); for (i = 1, pixel++; i < gCanvasColumnEnd - 1; i++, pixel++) @@ -3469,7 +3480,7 @@ static void ApplyImageEffect_BlackOutline(void) // Handle each column from left to right. for (i = 0; i < gCanvasColumnEnd; i++) { - u16 *pixelRow = &(*gCanvasPixels)[0][gCanvasRowStart * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[gCanvasRowStart * gCanvasWidth]; pixel = &pixelRow[gCanvasColumnStart + i]; *pixel = QuantizePixel_BlackOutline(pixel, pixel + gCanvasWidth); for (j = 1, pixel += gCanvasWidth; j < gCanvasRowEnd - 1; j++, pixel += gCanvasWidth) @@ -3488,11 +3499,11 @@ static void ApplyImageEffect_Invert(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_Invert(pixel); } } @@ -3505,56 +3516,56 @@ static void ApplyImageEffect_Shimmer(void) u16 prevPixel; // First, invert all of the colors. - pixel = (*gCanvasPixels)[0]; - for (i = 0; i < 64; i++) + pixel = gCanvasPixels; + for (i = 0; i < MAX_DIMENSION; i++) { - for (j = 0; j < 64; j++, pixel++) + for (j = 0; j < MAX_DIMENSION; j++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_Invert(pixel); } } // Blur the pixels twice. - for (j = 0; j < 64; j++) + for (j = 0; j < MAX_DIMENSION; j++) { - pixel = &(*gCanvasPixels)[0][j]; + pixel = &gCanvasPixels[j]; prevPixel = *pixel; - *pixel = 0x8000; - for (i = 1, pixel += 64; i < 63; i++, pixel += 64) + *pixel = RGB_ALPHA; + for (i = 1, pixel += MAX_DIMENSION; i < MAX_DIMENSION - 1; i++, pixel += MAX_DIMENSION) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + 64); + *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + MAX_DIMENSION); prevPixel = *pixel; } } - *pixel = 0x8000; - pixel = &(*gCanvasPixels)[0][j]; + *pixel = RGB_ALPHA; + pixel = &gCanvasPixels[j]; prevPixel = *pixel; - *pixel = 0x8000; - for (i = 1, pixel += 64; i < 63; i++, pixel += 64) + *pixel = RGB_ALPHA; + for (i = 1, pixel += MAX_DIMENSION; i < MAX_DIMENSION - 1; i++, pixel += MAX_DIMENSION) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + 64); + *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + MAX_DIMENSION); prevPixel = *pixel; } } - *pixel = 0x8000; + *pixel = RGB_ALPHA; } // Finally, invert colors back to the original color space. // The above blur causes the outline areas to darken, which makes // this inversion give the effect of light outlines. - pixel = (*gCanvasPixels)[0]; - for (i = 0; i < 64; i++) + pixel = gCanvasPixels; + for (i = 0; i < MAX_DIMENSION; i++) { - for (j = 0; j < 64; j++, pixel++) + for (j = 0; j < MAX_DIMENSION; j++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_Invert(pixel); } } @@ -3566,12 +3577,12 @@ static void ApplyImageEffect_BlurRight(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; u16 prevPixel = *pixel; for (i = 1, pixel++; i < gCanvasColumnEnd - 1; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { *pixel = QuantizePixel_MotionBlur(&prevPixel, pixel); prevPixel = *pixel; @@ -3586,12 +3597,12 @@ static void ApplyImageEffect_BlurDown(void) for (i = 0; i < gCanvasColumnEnd; i++) { - u16 *pixelRow = &(*gCanvasPixels)[0][gCanvasRowStart * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[gCanvasRowStart * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart + i]; u16 prevPixel = *pixel; for (j = 1, pixel += gCanvasWidth; j < gCanvasRowEnd - 1; j++, pixel += gCanvasWidth) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { *pixel = QuantizePixel_MotionBlur(&prevPixel, pixel); prevPixel = *pixel; @@ -3607,19 +3618,19 @@ struct PointillismPoint u16 delta; }; -static void AddPointillismPoints(u16 arg0) +static void AddPointillismPoints(u16 point) { u8 i; bool8 offsetDownLeft; u8 colorType; struct PointillismPoint points[6]; - points[0].column = sPointillismPoints[arg0][0]; - points[0].row = sPointillismPoints[arg0][1]; - points[0].delta = (sPointillismPoints[arg0][2] >> 3) & 7; + points[0].column = sPointillismPoints[point][0]; + points[0].row = sPointillismPoints[point][1]; + points[0].delta = GET_POINT_DELTA(sPointillismPoints[point][2]); - colorType = (sPointillismPoints[arg0][2] >> 1) & 3; - offsetDownLeft = sPointillismPoints[arg0][2] & 1; + colorType = GET_POINT_COLOR_TYPE(sPointillismPoints[point][2]); + offsetDownLeft = GET_POINT_OFFSET_DL(sPointillismPoints[point][2]); for (i = 1; i < points[0].delta; i++) { if (!offsetDownLeft) @@ -3633,7 +3644,7 @@ static void AddPointillismPoints(u16 arg0) points[i].row = points[0].row - 1; } - if (points[i].column > 63 || points[i].row > 63) + if (points[i].column >= MAX_DIMENSION || points[i].row >= MAX_DIMENSION) { points[0].delta = i - 1; break; @@ -3644,19 +3655,19 @@ static void AddPointillismPoints(u16 arg0) for (i = 0; i < points[0].delta; i++) { - u16 *pixel = &(*gCanvasPixels)[points[i].row * 2][points[i].column]; + u16 *pixel = &gCanvasPixels[points[i].row * MAX_DIMENSION] + points[i].column; - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - u16 red = (*pixel) & 0x1F; - u16 green = (*pixel >> 5) & 0x1F; - u16 blue = (*pixel >> 10) & 0x1F; + u16 red = GET_R(*pixel); + u16 green = GET_G(*pixel); + u16 blue = GET_B(*pixel); switch (colorType) { case 0: case 1: - switch (((sPointillismPoints[arg0][2] >> 3) & 7) % 3) + switch (GET_POINT_DELTA(sPointillismPoints[point][2]) % 3) { case 0: if (red >= points[i].delta) @@ -3711,9 +3722,9 @@ static u16 ConvertColorToGrayscale(u16 *color) // Everything else is white. static u16 QuantizePixel_PersonalityColor(u16 *color, u8 personality) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); if (red < 17 && green < 17 && blue < 17) return GetColorFromPersonality(personality); @@ -3725,9 +3736,9 @@ static u16 QuantizePixel_PersonalityColor(u16 *color, u8 personality) // the mon's personality value, return a color. static u16 GetColorFromPersonality(u8 personality) { - u16 red = 0; + u16 red = 0; u16 green = 0; - u16 blue = 0; + u16 blue = 0; u8 strength = (personality / 6) % 3; u8 colorType = personality % 6; @@ -3776,9 +3787,9 @@ static u16 GetColorFromPersonality(u8 personality) static u16 QuantizePixel_BlackAndWhite(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); if (red < 17 && green < 17 && blue < 17) return RGB_BLACK; @@ -3790,9 +3801,9 @@ static u16 QuantizePixel_BlackOutline(u16 *pixelA, u16 *pixelB) { if (*pixelA != RGB_BLACK) { - if (*pixelA & 0x8000) - return 0x8000; - if (*pixelB & 0x8000) + if (IS_ALPHA(*pixelA)) + return RGB_ALPHA; + if (IS_ALPHA(*pixelB)) return RGB_BLACK; return *pixelA; @@ -3803,13 +3814,13 @@ static u16 QuantizePixel_BlackOutline(u16 *pixelA, u16 *pixelB) static u16 QuantizePixel_Invert(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); - red = 31 - red; + red = 31 - red; green = 31 - green; - blue = 31 - blue; + blue = 31 - blue; return RGB2(red, green, blue); } @@ -3825,12 +3836,12 @@ static u16 QuantizePixel_MotionBlur(u16 *prevPixel, u16 *curPixel) if (*prevPixel == *curPixel) return *curPixel; - pixelChannels[0][0] = (*prevPixel >> 0) & 0x1F; - pixelChannels[0][1] = (*prevPixel >> 5) & 0x1F; - pixelChannels[0][2] = (*prevPixel >> 10) & 0x1F; - pixelChannels[1][0] = (*curPixel >> 0) & 0x1F; - pixelChannels[1][1] = (*curPixel >> 5) & 0x1F; - pixelChannels[1][2] = (*curPixel >> 10) & 0x1F; + pixelChannels[0][0] = GET_R(*prevPixel); + pixelChannels[0][1] = GET_G(*prevPixel); + pixelChannels[0][2] = GET_B(*prevPixel); + pixelChannels[1][0] = GET_R(*curPixel); + pixelChannels[1][1] = GET_G(*curPixel); + pixelChannels[1][2] = GET_B(*curPixel); // Don't blur light colors. if (pixelChannels[0][0] > 25 && pixelChannels[0][1] > 25 && pixelChannels[0][2] > 25) @@ -3866,9 +3877,9 @@ static u16 QuantizePixel_MotionBlur(u16 *prevPixel, u16 *curPixel) largestDiff = diffs[0]; } - red = (pixelChannels[1][0] * (31 - largestDiff / 2)) / 31; + red = (pixelChannels[1][0] * (31 - largestDiff / 2)) / 31; green = (pixelChannels[1][1] * (31 - largestDiff / 2)) / 31; - blue = (pixelChannels[1][2] * (31 - largestDiff / 2)) / 31; + blue = (pixelChannels[1][2] * (31 - largestDiff / 2)) / 31; return RGB2(red, green, blue); } @@ -3883,13 +3894,13 @@ static u16 QuantizePixel_Blur(u16 *prevPixel, u16 *curPixel, u16 *nextPixel) if (*prevPixel == *curPixel && *nextPixel == *curPixel) return *curPixel; - red = (*curPixel >> 0) & 0x1F; - green = (*curPixel >> 5) & 0x1F; - blue = (*curPixel >> 10) & 0x1F; + red = GET_R(*curPixel); + green = GET_G(*curPixel); + blue = GET_B(*curPixel); - prevAvg = (((*prevPixel >> 0) & 0x1F) + ((*prevPixel >> 5) & 0x1F) + ((*prevPixel >> 10) & 0x1F)) / 3; - curAvg = (((*curPixel >> 0) & 0x1F) + ((*curPixel >> 5) & 0x1F) + ((*curPixel >> 10) & 0x1F)) / 3; - nextAvg = (((*nextPixel >> 0) & 0x1F) + ((*nextPixel >> 5) & 0x1F) + ((*nextPixel >> 10) & 0x1F)) / 3; + prevAvg = (GET_R(*prevPixel) + GET_G(*prevPixel) + GET_B(*prevPixel)) / 3; + curAvg = (GET_R(*curPixel) + GET_G(*curPixel) + GET_B(*curPixel)) / 3; + nextAvg = (GET_R(*nextPixel) + GET_G(*nextPixel) + GET_B(*nextPixel)) / 3; if (prevAvg == curAvg && nextAvg == curAvg) return *curPixel; @@ -3927,13 +3938,13 @@ static u16 QuantizePixel_BlurHard(u16 *prevPixel, u16 *curPixel, u16 *nextPixel) if (*prevPixel == *curPixel && *nextPixel == *curPixel) return *curPixel; - red = (*curPixel >> 0) & 0x1F; - green = (*curPixel >> 5) & 0x1F; - blue = (*curPixel >> 10) & 0x1F; + red = GET_R(*curPixel); + green = GET_G(*curPixel); + blue = GET_B(*curPixel); - prevAvg = (((*prevPixel >> 0) & 0x1F) + ((*prevPixel >> 5) & 0x1F) + ((*prevPixel >> 10) & 0x1F)) / 3; - curAvg = (((*curPixel >> 0) & 0x1F) + ((*curPixel >> 5) & 0x1F) + ((*curPixel >> 10) & 0x1F)) / 3; - nextAvg = (((*nextPixel >> 0) & 0x1F) + ((*nextPixel >> 5) & 0x1F) + ((*nextPixel >> 10) & 0x1F)) / 3; + prevAvg = (GET_R(*prevPixel) + GET_G(*prevPixel) + GET_B(*prevPixel)) / 3; + curAvg = (GET_R(*curPixel) + GET_G(*curPixel) + GET_B(*curPixel)) / 3; + nextAvg = (GET_R(*nextPixel) + GET_G(*nextPixel) + GET_B(*nextPixel)) / 3; if (prevAvg == curAvg && nextAvg == curAvg) return *curPixel; @@ -4001,8 +4012,8 @@ void ConvertImageProcessingToGBA(struct ImageProcessingContext *context) dest = dest_ + ((i * width + j) << 4) + (k << 1); src = src_ + ((((i << 3) + k) << 3) * width) + (j << 3); - dest[0] = src[0] | (src[1] << 4) | (src[2] << 8) | (src[3] << 0xC); - dest[1] = src[4] | (src[5] << 4) | (src[6] << 8) | (src[7] << 0xC); + dest[0] = src[0] | (src[1] << 4) | (src[2] << 8) | (src[3] << 12); + dest[1] = src[4] | (src[5] << 4) | (src[6] << 8) | (src[7] << 12); } } } @@ -4050,37 +4061,37 @@ void ApplyImageProcessingQuantization(struct ImageProcessingContext *context) static void SetPresetPalette_PrimaryColors(void) { - gCanvasPalette[0] = RGB2(0, 0, 0); - gCanvasPalette[1] = RGB2(6, 6, 6); - gCanvasPalette[2] = RGB2(29, 29, 29); - gCanvasPalette[3] = RGB2(11, 11, 11); - gCanvasPalette[4] = RGB2(29, 6, 6); - gCanvasPalette[5] = RGB2(6, 29, 6); - gCanvasPalette[6] = RGB2(6, 6, 29); - gCanvasPalette[7] = RGB2(29, 29, 6); - gCanvasPalette[8] = RGB2(29, 6, 29); - gCanvasPalette[9] = RGB2(6, 29, 29); - gCanvasPalette[10] = RGB2(29, 11, 6); - gCanvasPalette[11] = RGB2(11, 29, 6); - gCanvasPalette[12] = RGB2(6, 11, 29); - gCanvasPalette[13] = RGB2(29, 6, 11); - gCanvasPalette[14] = RGB2(6, 29, 11); - gCanvasPalette[15] = RGB2(11, 6, 29); + gCanvasPalette[0] = RGB_BLACK; + gCanvasPalette[1] = RGB(6, 6, 6); + gCanvasPalette[2] = RGB(29, 29, 29); + gCanvasPalette[3] = RGB(11, 11, 11); + gCanvasPalette[4] = RGB(29, 6, 6); + gCanvasPalette[5] = RGB(6, 29, 6); + gCanvasPalette[6] = RGB(6, 6, 29); + gCanvasPalette[7] = RGB(29, 29, 6); + gCanvasPalette[8] = RGB(29, 6, 29); + gCanvasPalette[9] = RGB(6, 29, 29); + gCanvasPalette[10] = RGB(29, 11, 6); + gCanvasPalette[11] = RGB(11, 29, 6); + gCanvasPalette[12] = RGB(6, 11, 29); + gCanvasPalette[13] = RGB(29, 6, 11); + gCanvasPalette[14] = RGB(6, 29, 11); + gCanvasPalette[15] = RGB(11, 6, 29); } static void SetPresetPalette_BlackAndWhite(void) { - gCanvasPalette[0] = RGB2(0, 0, 0); - gCanvasPalette[1] = RGB2(0, 0, 0); - gCanvasPalette[2] = RGB2(31, 31, 31); + gCanvasPalette[0] = RGB_BLACK; + gCanvasPalette[1] = RGB_BLACK; + gCanvasPalette[2] = RGB_WHITE; } static void SetPresetPalette_GrayscaleSmall(void) { u8 i; - gCanvasPalette[0] = RGB2(0, 0, 0); - gCanvasPalette[1] = RGB2(0, 0, 0); + gCanvasPalette[0] = RGB_BLACK; + gCanvasPalette[1] = RGB_BLACK; for (i = 0; i < 14; i++) gCanvasPalette[i + 2] = RGB2(2 * (i + 2), 2 * (i + 2), 2 * (i + 2)); } @@ -4089,7 +4100,7 @@ static void SetPresetPalette_Grayscale(void) { u8 i; - gCanvasPalette[0] = RGB2(0, 0, 0); + gCanvasPalette[0] = RGB_BLACK; for (i = 0; i < 32; i++) gCanvasPalette[i + 1] = RGB2(i, i, i); } @@ -4109,11 +4120,11 @@ static void QuantizePalette_Standard(bool8 useLimitedPalette) gCanvasPalette[maxIndex] = RGB2(15, 15, 15); for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) { *pixel = gCanvasPaletteStart; } @@ -4177,11 +4188,11 @@ static void QuantizePalette_BlackAndWhite(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) { *pixel = gCanvasPaletteStart; } @@ -4208,11 +4219,11 @@ static void QuantizePalette_GrayscaleSmall(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) *pixel = gCanvasPaletteStart; else *pixel = QuantizePixel_GrayscaleSmall(pixel) + gCanvasPaletteStart; @@ -4226,11 +4237,11 @@ static void QuantizePalette_Grayscale(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) *pixel = gCanvasPaletteStart; else *pixel = QuantizePixel_Grayscale(pixel) + gCanvasPaletteStart; @@ -4244,11 +4255,11 @@ static void QuantizePalette_PrimaryColors(void) for (j = 0; j < gCanvasRowEnd; j++) { - u16 *pixelRow = &(*gCanvasPixels)[0][(gCanvasRowStart + j) * gCanvasWidth]; + u16 *pixelRow = &gCanvasPixels[(gCanvasRowStart + j) * gCanvasWidth]; u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) *pixel = gCanvasPaletteStart; else *pixel = QuantizePixel_PrimaryColors(pixel) + gCanvasPaletteStart; @@ -4259,9 +4270,9 @@ static void QuantizePalette_PrimaryColors(void) // Quantizes the pixel's color channels to nearest multiple of 4, and clamps to [6, 30]. static u16 QuantizePixel_Standard(u16 *pixel) { - u16 red = *pixel & 0x1F; - u16 green = (*pixel >> 5) & 0x1F; - u16 blue = (*pixel >> 10) & 0x1F; + u16 red = GET_R(*pixel); + u16 green = GET_G(*pixel); + u16 blue = GET_B(*pixel); // Quantize color channels to muliples of 4, rounding up. if (red & 3) @@ -4290,9 +4301,9 @@ static u16 QuantizePixel_Standard(u16 *pixel) static u16 QuantizePixel_PrimaryColors(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); if (red < 12 && green < 11 && blue < 11) return 1; @@ -4405,9 +4416,9 @@ static u16 QuantizePixel_PrimaryColors(u16 *color) static u16 QuantizePixel_GrayscaleSmall(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); u16 average = ((red + green + blue) / 3) & 0x1E; if (average == 0) return 1; @@ -4417,9 +4428,9 @@ static u16 QuantizePixel_GrayscaleSmall(u16 *color) static u16 QuantizePixel_Grayscale(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); u16 average = (red + green + blue) / 3; return average + 1; } diff --git a/src/intro.c b/src/intro.c index 3d0caef72..bec0f3144 100644 --- a/src/intro.c +++ b/src/intro.c @@ -922,7 +922,12 @@ static bool8 SetUpCopyrightScreen(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); +// "Fade from white" instead is just pure black in Revision 10. +#if REVISION >= 0xA + ((vu16*)PLTT)[0] = RGB_BLACK; +#else ((vu16*)PLTT)[0] = RGB_WHITE; +#endif SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_BG0HOFS, 0); SetGpuReg(REG_OFFSET_BG0VOFS, 0); @@ -935,7 +940,11 @@ static bool8 SetUpCopyrightScreen(void) ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); +#if REVISION >= 0xA + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); +#else BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); +#endif SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(7)); EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB_Copyright); diff --git a/src/isagbprn.c b/src/isagbprn.c index a038814e7..5890e764f 100644 --- a/src/isagbprn.c +++ b/src/isagbprn.c @@ -31,7 +31,8 @@ struct AGBPrintStruct typedef void (*LPFN_PRINT_FLUSH)(void); -#ifndef NDEBUG +// Revision 10 still has this code present, despite only the init function ever being used. +#if !defined(NDEBUG) || REVISION >= 0xA // AGBPrint print functions #if (LOG_HANDLER == LOG_HANDLER_AGB_PRINT) diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 0bfa13abb..76e2158e6 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -1,5 +1,6 @@ #include #include "librfu.h" +#include "sloopsvc.h" struct LLSFStruct { @@ -381,6 +382,9 @@ void rfu_REQ_stopMode(void) REG_SIOCNT = SIO_MULTI_MODE; rfu_STC_REQ_callback(ID_STOP_MODE_REQ, 0); } +#if REVISION >= 0xA + svc_44(); +#endif } } @@ -461,6 +465,9 @@ void rfu_REQ_configGameData(u8 mbootFlag, u16 serialNo, const u8 *gname, const u packet[14] = 0; STWI_set_Callback_M(rfu_CB_configGameData); STWI_send_GameConfigREQ(packet, uname); +#if REVISION >= 0xA + svc_47(); +#endif } static void rfu_CB_configGameData(u8 reqCommand, u16 reqResult) @@ -519,6 +526,9 @@ void rfu_REQ_startSearchChild(void) } STWI_set_Callback_M(rfu_CB_startSearchChild); STWI_send_SC_StartREQ(); +#if REVISION >= 0xA + svc_42(); +#endif } static void rfu_CB_startSearchChild(u8 reqCommand, u16 reqResult) @@ -630,7 +640,11 @@ static void rfu_STC_readChildList(void) gRfuStatic->cidBak[bm_slot_id] = gRfuLinkStatus->partner[bm_slot_id].id; } #else +#if REVISION >= 0xA + gRfuStatic->lsFixedCount[bm_slot_id] = 0x3C; +#else gRfuStatic->lsFixedCount[bm_slot_id] = 0xF0; +#endif gRfuLinkStatus->strength[bm_slot_id] = 16; gRfuLinkStatus->connSlotFlag |= 1 << bm_slot_id; ++gRfuLinkStatus->connCount; @@ -649,6 +663,9 @@ void rfu_REQ_startSearchParent(void) { STWI_set_Callback_M(rfu_CB_startSearchParent); STWI_send_SP_StartREQ(); +#if REVISION >= 0xA + svc_45_rfu_link_status(); +#endif } static void rfu_CB_startSearchParent(u8 reqCommand, u16 reqResult) @@ -703,8 +720,13 @@ static void rfu_STC_readParentCandidateList(void) } if (my_check_sum == check_sum) { +#if REVISION >= 0xA + target = &gRfuLinkStatus->partner[gRfuLinkStatus->findParentCount]; + packet_p -= 28; +#else packet_p -= 28; target = &gRfuLinkStatus->partner[gRfuLinkStatus->findParentCount]; +#endif target->id = *(u16 *)packet_p; packet_p += 2; target->slot = *packet_p; @@ -723,6 +745,9 @@ static void rfu_STC_readParentCandidateList(void) ++gRfuLinkStatus->findParentCount; } } +#if REVISION >= 0xA + svc_45_rfu_link_status(); +#endif } void rfu_REQ_startConnectParent(u16 pid) @@ -738,6 +763,9 @@ void rfu_REQ_startConnectParent(u16 pid) gRfuStatic->tryPid = pid; STWI_set_Callback_M(rfu_STC_REQ_callback); STWI_send_CP_StartREQ(pid); +#if REVISION >= 0xA + svc_43(pid); +#endif } else { @@ -756,7 +784,11 @@ static void rfu_CB_pollConnectParent(u8 reqCommand, u16 reqResult) u16 id; u8 slot; u8 bm_slot_flag, i; +#if REVISION >= 0xA || defined(UBFIX) + struct RfuTgtData *target_p = NULL; +#else struct RfuTgtData *target_p; +#endif struct RfuTgtData target_local; if (reqResult == 0) @@ -1392,7 +1424,11 @@ static u16 rfu_STC_setSendData_org(u8 ni_or_uni, u8 bmSendSlot, u8 subFrameSize, { u8 bm_slot_id, sendSlotFlag; u8 frameSize; +#if REVISION >= 0xA || defined(UBFIX) + u8 *llFrameSize_p = NULL; +#else u8 *llFrameSize_p; +#endif u8 sending; u8 i; u16 imeBak; @@ -1418,7 +1454,11 @@ static u16 rfu_STC_setSendData_org(u8 ni_or_uni, u8 bmSendSlot, u8 subFrameSize, else if (gRfuLinkStatus->parentChild == MODE_CHILD) llFrameSize_p = &gRfuLinkStatus->remainLLFrameSizeChild[bm_slot_id]; frameSize = llsf_struct[gRfuLinkStatus->parentChild].frameSize; +#ifdef UBFIX + if ((llFrameSize_p && subFrameSize > *llFrameSize_p) || subFrameSize <= frameSize) +#else if (subFrameSize > *llFrameSize_p || subFrameSize <= frameSize) +#endif return ERR_SUBFRAME_SIZE; imeBak = REG_IME; REG_IME = 0; diff --git a/src/link.c b/src/link.c index 959264a40..84506bf0e 100644 --- a/src/link.c +++ b/src/link.c @@ -24,6 +24,7 @@ #include "reset_save_heap.h" #include "constants/battle.h" #include "constants/songs.h" +#include "sloopsvc.h" extern u16 gHeldKeyCodeToSend; @@ -67,7 +68,10 @@ COMMON_DATA u32 gLinkDebugSeed = 0; COMMON_DATA struct LinkPlayerBlock gLocalLinkPlayerBlock = {0}; COMMON_DATA bool8 gLinkErrorOccurred = 0; COMMON_DATA u32 gLinkDebugFlags = 0; +#if REVISION >= 0xA +#else COMMON_DATA u32 gLinkFiller1 = 0; +#endif COMMON_DATA bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS] = {0}; COMMON_DATA u8 gBlockReceivedStatus[MAX_LINK_PLAYERS] = {0}; COMMON_DATA u32 gLinkFiller2 = 0; @@ -85,14 +89,21 @@ COMMON_DATA u8 gSavedLinkPlayerCount = 0; COMMON_DATA u16 gSendCmd[CMD_LENGTH] = {0}; COMMON_DATA u8 gSavedMultiplayerId = 0; COMMON_DATA bool8 gReceivedRemoteLinkPlayers = 0; +#if REVISION >= 0xA +// all references to this are gone anyway +#else COMMON_DATA struct LinkTestBGInfo gLinkTestBGInfo = {0}; +#endif COMMON_DATA void (*gLinkCallback)(void) = NULL; COMMON_DATA u8 gShouldAdvanceLinkState = 0; COMMON_DATA u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS] = {0}; COMMON_DATA u8 gBlockRequestType = 0; COMMON_DATA u32 gLinkFiller3 = 0; // file +#if REVISION >= 0xA +#else COMMON_DATA u32 gLinkFiller4 = 0; // boundary COMMON_DATA u32 gLinkFiller5 = 0; // here? +#endif COMMON_DATA u8 gLastSendQueueCount = 0; COMMON_DATA struct Link gLink = {0}; COMMON_DATA u8 gLastRecvQueueCount = 0; @@ -118,6 +129,9 @@ EWRAM_DATA struct { static EWRAM_DATA u16 sReadyCloseLinkAttempts = 0; // never read static EWRAM_DATA void *sLinkErrorBgTilemapBuffer = NULL; +void Task_WirelessCommunicationScreen(u8 taskId); +void Task_MysteryGift(u8 taskId); + static void InitLocalLinkPlayer(void); static void VBlankCB_LinkError(void); static void CB2_LinkTest(void); @@ -131,7 +145,6 @@ static void LinkCB_BlockSendEnd(void); static void SetBerryBlenderLinkCallback(void); static void SetBlockReceivedFlag(u8 id); static u16 LinkTestCalcBlockChecksum(const u16 *src, u16 size); -static void LinkTest_PrintHex(u32 pos, u8 a0, u8 a1, u8 a2); static void LinkCB_RequestPlayerDataExchange(void); static void Task_PrintTestData(u8 taskId); static void LinkCB_ReadyCloseLink(void); @@ -155,11 +168,19 @@ static void DoSend(void); static void StopTimer(void); static void SendRecvDone(void); +#if REVISION >= 0xA +#else +static void LinkTest_PrintHex(u32 pos, u8 a0, u8 a1, u8 a2); +#endif + static const u16 sWirelessLinkDisplayPal[] = INCBIN_U16("graphics/link/wireless_display.gbapal"); static const u16 sWirelessLinkDisplayGfx[] = INCBIN_U16("graphics/link/wireless_display.4bpp.lz"); static const u16 sWirelessLinkDisplayTilemap[] = INCBIN_U16("graphics/link/wireless_display.bin.lz"); +#if REVISION >= 0xA +#else static const u16 sLinkTestFontPal[] = INCBIN_U16("graphics/link/test_font.gbapal"); static const u16 sLinkTestFontGfx[] = INCBIN_U16("graphics/link/test_font.4bpp"); +#endif static const struct BlockRequest sBlockRequests[] = { [BLOCK_REQ_SIZE_NONE] = { gBlockSendBuffer, 200 }, @@ -169,7 +190,11 @@ static const struct BlockRequest sBlockRequests[] = { [BLOCK_REQ_SIZE_40] = { gBlockSendBuffer, 40 } }; static const char sASCIIGameFreakInc[] = "GameFreak inc."; + +#if REVISION >= 0xA +#else static const char sASCIITestPrint[] = "TEST PRINT\nP0\nP1\nP2\nP3"; +#endif static const struct BgTemplate sLinkErrorBgTemplates[] = { { @@ -240,6 +265,9 @@ void Task_DestroySelf(u8 taskId) DestroyTask(taskId); } +#if REVISION >= 0xA +// Gone in this rev. +#else void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock, u16 baseChar) { LoadPalette(sLinkTestFontPal, BG_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); @@ -273,6 +301,7 @@ static void LoadLinkTestBgGfx(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 ch gLinkTestBGInfo.baseChar = 0; SetGpuReg(gBGControlRegOffsets[bgNum], BGCNT_SCREENBASE(screenBaseBlock) | BGCNT_CHARBASE(charBaseBlock)); } +#endif // Unused static void LinkTestScreen(void) @@ -290,7 +319,10 @@ static void LinkTestScreen(void) for (i = 0; i < TRAINER_ID_LENGTH; i++) gSaveBlock2Ptr->playerTrainerId[i] = Random() % 256; +#if REVISION >= 0xA +#else InitLinkTestBG(0, 2, 4, 0, 0); +#endif SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); CreateTask(Task_DestroySelf, 0); RunTasks(); @@ -400,14 +432,20 @@ static void TestBlockTransfer(u8 unused0, u8 unused1, u8 unused2) if (sLinkTestLastBlockSendPos != sBlockSend.pos) { +#if REVISION >= 0xA +#else LinkTest_PrintHex(sBlockSend.pos, 2, 3, 2); +#endif sLinkTestLastBlockSendPos = sBlockSend.pos; } for (i = 0; i < MAX_LINK_PLAYERS; i++) { if (sLinkTestLastBlockRecvPos[i] != sBlockRecv[i].pos) { +#if REVISION >= 0xA +#else LinkTest_PrintHex(sBlockRecv[i].pos, 2, i + 4, 2); +#endif sLinkTestLastBlockRecvPos[i] = sBlockRecv[i].pos; } } @@ -450,8 +488,11 @@ static void LinkTestProcessKeyInput(void) if (JOY_NEW(SELECT_BUTTON)) SetCloseLinkCallback(); +#if REVISION >= 0xA +#else if (sLinkTestDebugValuesEnabled) SetLinkDebugValues(gMain.vblankCounter2, gLinkCallback ? gLinkVSyncDisabled : gLinkVSyncDisabled | 0x10); +#endif } static void CB2_LinkTest(void) @@ -1025,6 +1066,8 @@ static u16 LinkTestCalcBlockChecksum(const u16 *src, u16 size) return checksum; } +#if REVISION >= 0xA +#else static void LinkTest_PrintNumChar(char val, u8 x, u8 y) { u16 *vAddr; @@ -1080,6 +1123,7 @@ static void LinkTest_PrintString(const char *str, u8 x, u8 y) } } } +#endif static void LinkCB_RequestPlayerDataExchange(void) { @@ -1091,6 +1135,9 @@ static void LinkCB_RequestPlayerDataExchange(void) static void Task_PrintTestData(u8 taskId) { +#if REVISION >= 0xA + // This function performs no operation in this revision. +#else char testTitle[32]; int i; @@ -1113,13 +1160,17 @@ static void Task_PrintTestData(u8 taskId) for (i = 0; i < MAX_LINK_PLAYERS; i++) LinkTest_PrintHex(gLinkTestBlockChecksums[i], 10, 4 + i, 4); +#endif } +#if REVISION >= 0xA +#else void SetLinkDebugValues(u32 seed, u32 flags) { gLinkDebugSeed = seed; gLinkDebugFlags = flags; } +#endif u8 GetSavedLinkPlayerCountAsBitFlags(void) { @@ -1374,6 +1425,9 @@ void CB2_LinkError(void) { u8 *tilemapBuffer; +#if REVISION >= 0xA + ClearFieldCallback(); +#endif SetGpuReg(REG_OFFSET_DISPCNT, 0); m4aMPlayStop(&gMPlayInfo_SE1); m4aMPlayStop(&gMPlayInfo_SE2); @@ -1387,8 +1441,11 @@ void CB2_LinkError(void) ScanlineEffect_Stop(); if (gWirelessCommType) { +#if REVISION >= 0xA +#else if (!sLinkErrorBuffer.disconnected) gWirelessCommType = 3; +#endif ResetLinkRfuGFLayer(); } @@ -1457,7 +1514,15 @@ static void CB2_PrintErrorMessage(void) case 0: // Below is only true for the RFU, so the other error // type is inferred to be from a wired connection +#if REVISION >= 0xA + svc_IncrementLinkError(); +#endif + +#if REVISION >= 0xA + if (sLinkErrorBuffer.disconnected || gWirelessCommType != 0) +#else if (sLinkErrorBuffer.disconnected) +#endif ErrorMsg_MoveCloserToPartner(); else ErrorMsg_CheckConnections(); @@ -1472,7 +1537,11 @@ static void CB2_PrintErrorMessage(void) PlaySE(SE_BOO); break; case 130: +#if REVISION >= 0xA + if (gWirelessCommType == 2 || gWirelessCommType == 3) +#else if (gWirelessCommType == 2) +#endif AddTextPrinterParameterized3(0, FONT_NORMAL_COPY_2, 2, 20, sLinkErrorTextColor, 0, gText_ABtnTitleScreen); else if (gWirelessCommType == 1) AddTextPrinterParameterized3(0, FONT_NORMAL_COPY_2, 2, 20, sLinkErrorTextColor, 0, gText_ABtnRegistrationCounter); @@ -1491,7 +1560,11 @@ static void CB2_PrintErrorMessage(void) ReloadSave(); } } +#if REVISION >= 0xA + else if (gWirelessCommType == 2 || gWirelessCommType == 3) +#else else if (gWirelessCommType == 2) +#endif { if (JOY_NEW(A_BUTTON)) { @@ -1576,8 +1649,33 @@ bool8 HandleLinkConnection(void) } else { +#if REVISION >= 0xA + bool32 reloadOrReset = FALSE; + if (svc_51()) + { +// Documentation issue: +// Rfu_IsMaster supposedly returns bool8, but just returns gRfu.ParentChild +// That value has three states, see librfu.h. One of those states is MODE_NEUTRAL (0xFF) which means init. +// So the last condition basically means "rfu link status is connected, not initialising". +// As in, it's true if value is MODE_CHILD or MODE_PARENT but not MODE_NEUTRAL (because unsigned cmp). + if (!FuncIsActiveTask(Task_WirelessCommunicationScreen) && (InUnionRoom() || gReceivedRemoteLinkPlayers != 0 || Rfu_IsMaster() <= MODE_PARENT)) + { + reloadOrReset = TRUE; + } + CloseLink(); + } +#endif main1Failed = RfuMain1(); // Always returns FALSE main2Failed = RfuMain2(); +#if REVISION >= 0xA + if (reloadOrReset) + { + // If active task is mystery gift then soft reset, otherwise reload the save. + if (FuncIsActiveTask(Task_MysteryGift)) RfuSoftReset(); + else RfuReloadSave(); + } + else +#endif if (IsSendingKeysOverCable() == TRUE) { // This will never be reached. diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 2a58279c0..78087d76f 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -11,6 +11,12 @@ #include "task.h" #include "constants/union_room.h" +#include "sloopsvc.h" +#include "help_system.h" +#include "reset_save_heap.h" +#include "m4a.h" +#include "gba/m4a_internal.h" + enum { RFUSTATE_INIT, RFUSTATE_INIT_END, @@ -71,14 +77,25 @@ struct RfuDebug static EWRAM_DATA INIT_PARAM sRfuReqConfig = {}; static EWRAM_DATA struct RfuDebug sRfuDebug = {}; +#if REVISION >= 0xA +#else static u32 sRfuAPIBuffer[RFU_API_BUFF_SIZE_RAM / 4]; +#endif static u8 sResendBlock8[CMD_LENGTH * 2]; static u16 sResendBlock16[CMD_LENGTH]; +#if REVISION >= 0xA +COMMON_DATA u32 sRfuAPIBuffer[RFU_API_BUFF_SIZE_RAM / 4] = {0}; +#endif COMMON_DATA struct RfuGameData gHostRfuGameData = {0}; COMMON_DATA struct RfuManager gRfu = {0}; COMMON_DATA u8 gHostRfuUsername[PLAYER_NAME_LENGTH + 1] = {0}; +#if REVISION >= 0xA +u16 ReadU16(const void* ptr); +#else +static u16 ReadU16(const void *ptr); +#endif static void InitChildRecvBuffers(void); static void InitParentSendData(void); static void MscCallback_Child(u16 REQ_commandID); @@ -92,7 +109,6 @@ static void SendNextBlock(void); static void SendLastBlock(void); static void CallRfuFunc(void); static void UpdateChildStatuses(void); -static s32 GetJoinGroupStatus(void); static void Task_PlayerExchange(u8 taskId); static void ClearSelectedLinkPlayerIds(u16 disconnectMask); static void ValidateAndReceivePokemonSioInfo(void *recvBuffer); @@ -118,8 +134,13 @@ static const INIT_PARAM sRfuReqConfigTemplate = { .userName = gHostRfuUsername, .fastSearchParent_flag = TRUE, .linkRecovery_enable = FALSE, +#if REVISION >= 0xA + .linkRecovery_period = 720, + .NI_failCounter_limit = 480 +#else .linkRecovery_period = 600, .NI_failCounter_limit = 300 +#endif }; static const u8 sAvailSlots[] = { @@ -317,7 +338,11 @@ static void Task_ParentSearchForChildren(u8 taskId) case RFUSTATE_INIT_END: break; case RFUSTATE_PARENT_CONNECT: +#if REVISION >= 0xA + rfu_LMAN_establishConnection(gRfu.parentChild, 0, 360, (u16 *)sAcceptedSerialNos); +#else rfu_LMAN_establishConnection(gRfu.parentChild, 0, 240, (u16 *)sAcceptedSerialNos); +#endif gRfu.state = RFUSTATE_PARENT_CONNECT_END; gTasks[taskId].data[1] = 6; break; @@ -404,7 +429,11 @@ static void Task_ChildSearchForParent(u8 taskId) case RFUSTATE_INIT_END: break; case RFUSTATE_CHILD_CONNECT: +#if REVISION >= 0xA + rfu_LMAN_establishConnection(gRfu.parentChild, 0, 360, (u16 *)sAcceptedSerialNos); +#else rfu_LMAN_establishConnection(gRfu.parentChild, 0, 240, (u16 *)sAcceptedSerialNos); +#endif gRfu.state = RFUSTATE_CHILD_CONNECT_END; gTasks[taskId].data[1] = 7; break; @@ -491,7 +520,11 @@ static void Task_UnionRoomListen(u8 taskId) case RFUSTATE_INIT_END: break; case RFUSTATE_UR_CONNECT: +#if REVISION >= 0xA + rfu_LMAN_establishConnection(MODE_P_C_SWITCH, 0, 360, (u16 *)sAcceptedSerialNos); +#else rfu_LMAN_establishConnection(MODE_P_C_SWITCH, 0, 240, (u16 *)sAcceptedSerialNos); +#endif rfu_LMAN_setMSCCallback(MscCallback_Child); gRfu.state = RFUSTATE_UR_CONNECT_END; break; @@ -532,7 +565,11 @@ static void Task_UnionRoomListen(u8 taskId) void LinkRfu_CreateConnectionAsParent(void) { +#if REVISION >= 0xA + rfu_LMAN_establishConnection(MODE_PARENT, 0, 360, (u16 *)sAcceptedSerialNos); +#else rfu_LMAN_establishConnection(MODE_PARENT, 0, 240, (u16 *)sAcceptedSerialNos); +#endif } void LinkRfu_StopManagerBeforeEnteringChat(void) @@ -540,6 +577,14 @@ void LinkRfu_StopManagerBeforeEnteringChat(void) rfu_LMAN_stopManager(FALSE); } +#if REVISION >= 0xA +void LinkRfu_ForceChangeSpParent(void) +{ + if (gRfu.parentId != 0) return; + rfu_LMAN_forceChangeSP(FALSE); +} +#endif + // Argument is provided by the RFU and is unused. static void MscCallback_Child(u16 REQ_commandID) { @@ -576,6 +621,9 @@ void LinkRfu_Shutdown(void) return; rfu_LMAN_powerDownRFU(); +#if REVISION >= 0xA + svc_44(); +#endif if (gRfu.parentChild == MODE_PARENT) { // Stop parent searching for children @@ -629,7 +677,11 @@ static bool8 CanTryReconnectParent(void) static bool32 TryReconnectParent(void) { +#if REVISION >= 0xA + if (gRfu.state == RFUSTATE_CHILD_CONNECT_END && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[gRfu.reconnectParentId].id, 360)) +#else if (gRfu.state == RFUSTATE_CHILD_CONNECT_END && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[gRfu.reconnectParentId].id, 240)) +#endif { gRfu.state = RFUSTATE_RECONNECTED; return TRUE; @@ -823,14 +875,25 @@ static bool32 RfuMain2_Parent(void) { if (gRfu.childRecvBuffer[i][1]) { +#if REVISION >= 0xA + u8* childRecvBuffer = gRfu.childRecvBuffer[i]; + u8 newChildRecvId = childRecvBuffer[0] / 32; + u8* oldChildRecvId = &gRfu.childRecvIds[i]; + if (*oldChildRecvId != 0xFF && newChildRecvId != ((*oldChildRecvId + 1) & 7)) +#else if (gRfu.childRecvIds[i] != 0xFF && (gRfu.childRecvBuffer[i][0] >> 5) != ((gRfu.childRecvIds[i] + 1) & 7)) +#endif { if (++gRfu.numChildRecvErrors[i] > 4) RfuSetErrorParams(F_RFU_ERROR_8 | F_RFU_ERROR_1); } else { +#if REVISION >= 0xA + gRfu.childRecvIds[i] = newChildRecvId; +#else gRfu.childRecvIds[i] = gRfu.childRecvBuffer[i][0] / 32; +#endif gRfu.numChildRecvErrors[i] = 0; gRfu.childRecvBuffer[i][0] &= 0x1f; r0 = gRfu.linkPlayerIdx[i]; @@ -1386,6 +1449,9 @@ static void TryDisconnectRfu(void) { rfu_LMAN_requestChangeAgbClockMaster(); gRfu.disconnectMode = RFU_DISCONNECT_NORMAL; +#if REVISION >= 0xA + svc_44(); +#endif } else gRfu.callback = DisconnectRfu; @@ -1396,6 +1462,9 @@ void LinkRfu_FatalError(void) rfu_LMAN_requestChangeAgbClockMaster(); gRfu.disconnectMode = RFU_DISCONNECT_ERROR; gRfu.disconnectSlots = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag; +#if REVISION >= 0xA + svc_44(); +#endif } // RFU equivalent of LinkCB_WaitCloseLink @@ -1547,7 +1616,11 @@ u8 Rfu_SetLinkRecovery(bool32 enable) { if (!enable) return rfu_LMAN_setLinkRecovery(FALSE, 0); +#if REVISION >= 0xA + rfu_LMAN_setLinkRecovery(TRUE, 720); +#else rfu_LMAN_setLinkRecovery(TRUE, 600); +#endif return 0; } @@ -1586,8 +1659,11 @@ static bool8 CheckForLeavingGroupMembers(void) bool8 memberLeft = FALSE; for (i = 0; i < RFU_CHILD_MAX; i++) { +#if REVISION >= 0xA +#else if (gRfu.partnerSendStatuses[i] < RFU_STATUS_JOIN_GROUP_OK || gRfu.partnerSendStatuses[i] > RFU_STATUS_JOIN_GROUP_NO) +#endif { if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) @@ -1596,7 +1672,11 @@ static bool8 CheckForLeavingGroupMembers(void) { gRfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP; gRfu.partnerRecvStatuses[i] = RFU_STATUS_CHILD_LEAVE_READY; +#if REVISION >= 0xA + rfu_clearSlot(TYPE_NI_SEND | TYPE_NI_RECV, i); +#else rfu_clearSlot(TYPE_NI_RECV, i); +#endif rfu_NI_setSendData(1 << i, 8, &gRfu.partnerSendStatuses[i], 1); memberLeft = TRUE; } @@ -1624,6 +1704,12 @@ bool32 RfuTryDisconnectLeavingChildren(void) childrenLeaving |= (1 << i); gRfu.partnerRecvStatuses[i] = RFU_STATUS_OK; } +#if REVISION >= 0xA + if (((gRfuLinkStatus->connSlotFlag >> i) & 1) == 0) + { + gRfu.partnerRecvStatuses[i] = RFU_STATUS_OK; + } +#endif } // Disconnect any leaving children @@ -1665,6 +1751,9 @@ void SendLeaveGroupNotice(void) { gRfu.sendStatus = RFU_STATUS_LEAVE_GROUP_NOTICE; rfu_clearSlot(TYPE_NI_SEND, gRfu.childSlot); +#if REVISION >= 0xA + gRfuLinkStatus->remainLLFrameSizeChild[gRfu.childSlot] = 16; +#endif rfu_NI_setSendData(1 << gRfu.childSlot, 8, &gRfu.sendStatus, 1); } @@ -1695,7 +1784,7 @@ static void UpdateChildStatuses(void) } } -static s32 GetJoinGroupStatus(void) +s32 GetJoinGroupStatus(void) { s32 status = RFU_STATUS_OK; if (gRfu.sendStatus == RFU_STATUS_LEAVE_GROUP_NOTICE) @@ -1789,7 +1878,11 @@ static void Task_PlayerExchange(u8 taskId) DestroyTask(taskId); gReceivedRemoteLinkPlayers = TRUE; gRfu.playerExchangeActive = FALSE; +#if REVISION >= 0xA + rfu_LMAN_setLinkRecovery(1, 720); +#else rfu_LMAN_setLinkRecovery(1, 600); +#endif if (gRfu.newChildQueue) { for (i = 0; i < RFU_CHILD_MAX; i++) @@ -2017,6 +2110,12 @@ bool32 RfuMain1(void) { bool32 retval = FALSE; gRfu.parentId = 0; +#if REVISION >= 0xA + if ((svc_4b() & SVC4B_RESEED_RNG) != 0) + { + SeedRng(ReadU16( & GetHostRfuGameData()->compatibility.playerTrainerId )); + } +#endif rfu_LMAN_manager_entity(Random()); if (!gRfu.isShuttingDown) { @@ -2510,6 +2609,13 @@ u8 RfuGetStatus(void) return gRfu.status; } +#if REVISION >= 0xA +u16 RfuGetErrorInfo(void) +{ + return gRfu.errorInfo; +} +#endif + bool32 RfuHasErrored(void) { u32 status = RfuGetStatus(); @@ -2627,15 +2733,23 @@ void InitializeRfuLinkManager_EnterUnionRoom(void) rfu_LMAN_initializeManager(LinkManagerCB_UnionRoom, NULL); sRfuReqConfig = sRfuReqConfigTemplate; sRfuReqConfig.linkRecovery_enable = 0; +#if REVISION >= 0xA + sRfuReqConfig.linkRecovery_period = 720; +#else sRfuReqConfig.linkRecovery_period = 600; +#endif gRfu.searchTaskId = CreateTask(Task_UnionRoomListen, 1); } +#if REVISION >= 0xA +// (what used to be) ReadAsU16 from union_room.c is used instead. +#else static u16 ReadU16(const void *ptr) { const u8 *ptr_ = ptr; return (ptr_[1] << 8) | (ptr_[0]); } +#endif /* * ================================================================ @@ -2775,7 +2889,11 @@ static void Task_RfuReconnectWithParent(u8 taskId) tTime++; } +#if REVISION >= 0xA + if (tTime > 360) +#else if (tTime > 240) +#endif { // Timeout error RfuSetStatus(RFU_STATUS_CONNECTION_ERROR, F_RFU_ERROR_5 | F_RFU_ERROR_6 | F_RFU_ERROR_7); @@ -2797,6 +2915,13 @@ void CreateTask_RfuReconnectWithParent(const u8 *name, u16 trainerId) data[8] = trainerId; } +#if REVISION >= 0xA +void DestroyTask_RfuReconnectWithParent(void) +{ + DestroyTask(FindTaskIdByFunc(Task_RfuReconnectWithParent)); +} +#endif + static bool32 IsPartnerActivityIncompatible(s16 activity, struct RfuGameData *partner) { if (GetHostRfuGameData()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) @@ -2841,7 +2966,11 @@ static void Task_TryConnectToUnionRoomParent(u8 taskId) if (gRfu.status == RFU_STATUS_NEW_CHILD_DETECTED) DestroyTask(taskId); +#if REVISION >= 0xA + if (++gTasks[taskId].data[0] > 480) +#else if (++gTasks[taskId].data[0] > 300) +#endif { // Timeout error RfuSetStatus(RFU_STATUS_CONNECTION_ERROR, F_RFU_ERROR_5 | F_RFU_ERROR_6 | F_RFU_ERROR_7); @@ -2859,7 +2988,11 @@ static void Task_TryConnectToUnionRoomParent(u8 taskId) // Parent found, try to connect if (!IsPartnerActivityIncompatible(gTasks[taskId].data[1], (struct RfuGameData *)&gRfuLinkStatus->partner[id].gname)) { +#if REVISION >= 0xA + if (gRfuLinkStatus->partner[id].slot != 0xFF && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[id].id, 150)) +#else if (gRfuLinkStatus->partner[id].slot != 0xFF && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[id].id, 90)) +#endif { // Succesfully connected to parent gRfu.state = RFUSTATE_CONNECTED; @@ -2884,7 +3017,11 @@ void TryConnectToUnionRoomParent(const u8 *name, struct RfuGameData *parent, u8 gRfu.status = RFU_STATUS_OK; StringCopy(gRfu.parent.uname, name); memcpy(gRfu.parent.gname, parent, RFU_GAME_NAME_LENGTH); +#if REVISION >= 0xA + rfu_LMAN_forceChangeSP(TRUE); +#else rfu_LMAN_forceChangeSP(); +#endif taskId = CreateTask(Task_TryConnectToUnionRoomParent, 2); gTasks[taskId].tActivity = activity; listenTaskId = FindTaskIdByFunc(Task_UnionRoomListen); @@ -2999,6 +3136,27 @@ u32 GetRfuRecvQueueLength(void) return gRfu.recvQueue.count; } +#if REVISION >= 0xA +static inline void RfuReloadCommon(void) { + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); + m4aMPlayStop(&gMPlayInfo_SE3); + StopMapMusic(); + gMain.callback1 = NULL; + HelpSystem_Enable(); +} + +void RfuReloadSave(void) { + RfuReloadCommon(); + ReloadSave(); +} + +void RfuSoftReset(void) { + RfuReloadCommon(); + DoSoftReset(); +} +#endif + static void Task_Idle(u8 taskId) { diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index 078a28ff8..f9164070b 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -35,6 +35,204 @@ static const u16 sWirelessLinkIconPalette[] = INCBIN_U16("graphics/link/wireless static const u32 sWirelessLinkIconPic[] = INCBIN_U32("graphics/link/wireless_icon.4bpp.lz"); // Most of the below two tables won't make sense with ASCII encoding. +#if REVISION >= 0xA +// The tables have been changed to overload some control characters onto ASCII characters. +static const u8 sWireless_ASCIItoRSETable[] = { + EOS, + 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + [' '] = CHAR_SPACE, + ['!'] = CHAR_EXCL_MARK, + 0xb5, 0xb6, 0xb1, 0xf7, 0xf8, 0xf9, + 0xfa, 0xfb, 0xb2, 0xf1, 0xfc, + ['-'] = 0xfd, + ['.'] = 0xfe, + ['/'] = CHAR_SLASH, + ['0'] = CHAR_0, + ['1'] = CHAR_1, + ['2'] = CHAR_2, + ['3'] = CHAR_3, + ['4'] = CHAR_4, + ['5'] = CHAR_5, + ['6'] = CHAR_6, + ['7'] = CHAR_7, + ['8'] = CHAR_8, + ['9'] = CHAR_9, + CHAR_CURRENCY, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, CHAR_BLACK_TRIANGLE, + ['A'] = CHAR_A, + ['B'] = CHAR_B, + ['C'] = CHAR_C, + ['D'] = CHAR_D, + ['E'] = CHAR_E, + ['F'] = CHAR_F, + ['G'] = CHAR_G, + ['H'] = CHAR_H, + ['I'] = CHAR_I, + ['J'] = CHAR_J, + ['K'] = CHAR_K, + ['L'] = CHAR_L, + ['M'] = CHAR_M, + ['N'] = CHAR_N, + ['O'] = CHAR_O, + ['P'] = CHAR_P, + ['Q'] = CHAR_Q, + ['R'] = CHAR_R, + ['S'] = CHAR_S, + ['T'] = CHAR_T, + ['U'] = CHAR_U, + ['V'] = CHAR_V, + ['W'] = CHAR_W, + ['X'] = CHAR_X, + ['Y'] = CHAR_Y, + ['Z'] = CHAR_Z, + 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf0, + ['a'] = CHAR_a, + ['b'] = CHAR_b, + ['c'] = CHAR_c, + ['d'] = CHAR_d, + ['e'] = CHAR_e, + ['f'] = CHAR_f, + ['g'] = CHAR_g, + ['h'] = CHAR_h, + ['i'] = CHAR_i, + ['j'] = CHAR_j, + ['k'] = CHAR_k, + ['l'] = CHAR_l, + ['m'] = CHAR_m, + ['n'] = CHAR_n, + ['o'] = CHAR_o, + ['p'] = CHAR_p, + ['q'] = CHAR_q, + ['r'] = CHAR_r, + ['s'] = CHAR_s, + ['t'] = CHAR_t, + ['u'] = CHAR_u, + ['v'] = CHAR_v, + ['w'] = CHAR_w, + ['x'] = CHAR_x, + ['y'] = CHAR_y, + ['z'] = CHAR_z, + 0x2d, 0x2f, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x50, 0x00, 0x01, 0x02, + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, + 0x1b, 0xad, 0xb3, 0xb4, 0xb8, 0xaf, 0x7d, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xa0, + 0xae, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0xb0, 0xac, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, + 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94 +}; + +static const u8 sWireless_RSEtoASCIITable[] = { + [CHAR_SPACE] = ' ', + 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, + 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, + 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, + 0xed, 0xee, 0xef, 0xf0, 0x7b, 0xf1, 0x7c, 0x7d, + 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x84, + 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, + 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, + 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, + 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, + 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, + 0xd9, 0xda, 0xdb, 0xdc, 0xa6, 0xdd, 0xa7, 0xa8, + 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xf2, 0xf3, + 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0xfd, 0xfe, 0xff, 0x01, 0x02, 0x03, 0x04, + 0x05, 0x06, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0xaf, + [CHAR_0] = '0', + [CHAR_1] = '1', + [CHAR_2] = '2', + [CHAR_3] = '3', + [CHAR_4] = '4', + [CHAR_5] = '5', + [CHAR_6] = '6', + [CHAR_7] = '7', + [CHAR_8] = '8', + [CHAR_9] = '9', + [CHAR_EXCL_MARK] = '!', + 0xdf, 0xa1, 0xb0, 0xa5, 0xde, 0x24, 0x2a, + 0xa2, 0xa3, 0x22, 0x23, ':', 0xa4, 0x20, + [CHAR_SLASH] = '/', + [CHAR_A] = 'A', + [CHAR_B] = 'B', + [CHAR_C] = 'C', + [CHAR_D] = 'D', + [CHAR_E] = 'E', + [CHAR_F] = 'F', + [CHAR_G] = 'G', + [CHAR_H] = 'H', + [CHAR_I] = 'I', + [CHAR_J] = 'J', + [CHAR_K] = 'K', + [CHAR_L] = 'L', + [CHAR_M] = 'M', + [CHAR_N] = 'N', + [CHAR_O] = 'O', + [CHAR_P] = 'P', + [CHAR_Q] = 'Q', + [CHAR_R] = 'R', + [CHAR_S] = 'S', + [CHAR_T] = 'T', + [CHAR_U] = 'U', + [CHAR_V] = 'V', + [CHAR_W] = 'W', + [CHAR_X] = 'X', + [CHAR_Y] = 'Y', + [CHAR_Z] = 'Z', + [CHAR_a] = 'a', + [CHAR_b] = 'b', + [CHAR_c] = 'c', + [CHAR_d] = 'd', + [CHAR_e] = 'e', + [CHAR_f] = 'f', + [CHAR_g] = 'g', + [CHAR_h] = 'h', + [CHAR_i] = 'i', + [CHAR_j] = 'j', + [CHAR_k] = 'k', + [CHAR_l] = 'l', + [CHAR_m] = 'm', + [CHAR_n] = 'n', + [CHAR_o] = 'o', + [CHAR_p] = 'p', + [CHAR_q] = 'q', + [CHAR_r] = 'r', + [CHAR_s] = 's', + [CHAR_t] = 't', + [CHAR_u] = 'u', + [CHAR_v] = 'v', + [CHAR_w] = 'w', + [CHAR_x] = 'x', + [CHAR_y] = 'y', + [CHAR_z] = 'z', + 0x40, 0x60, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + [CHAR_DYNAMIC] = '%', + [CHAR_KEYPAD_ICON] = '&', + [CHAR_EXTRA_SYMBOL] = '\'', + [CHAR_PROMPT_SCROLL] = '(', + [CHAR_PROMPT_CLEAR] = ')', + [EXT_CTRL_CODE_BEGIN] = ',', + [PLACEHOLDER_BEGIN] = '-', + [CHAR_NEWLINE] = '.', + [EOS] = 0 +}; +#else static const u8 sWireless_ASCIItoRSETable[] = { EOS, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37, @@ -231,6 +429,8 @@ static const u8 sWireless_RSEtoASCIITable[] = { [EOS] = 0 }; +#endif + static const struct OamData sWirelessStatusIndicatorOamData = { .y = 0, @@ -595,7 +795,7 @@ static void PopulateArrayWithSequence(u8 *arr, u8 mode) } } -static void PkmnStrToASCII(u8 *dest, const u8 *src) +void PkmnStrToASCII(u8 *dest, const u8 *src) { s32 i; @@ -604,7 +804,7 @@ static void PkmnStrToASCII(u8 *dest, const u8 *src) dest[i] = 0; } -static void ASCIIToPkmnStr(u8 *dest, const u8 *src) +void ASCIIToPkmnStr(u8 *dest, const u8 *src) { s32 i; diff --git a/src/load_save.c b/src/load_save.c index d71130507..8b723dd04 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -10,6 +10,7 @@ #include "berry_powder.h" #include "overworld.h" #include "quest_log.h" +#include "sloopsvc.h" #define SAVEBLOCK_MOVE_RANGE 128 @@ -125,6 +126,9 @@ void MoveSaveBlocks_ResetHeap(void) encryptionKey = (Random() << 0x10) + (Random()); ApplyNewEncryptionKeyToAllEncryptedData(encryptionKey); gSaveBlock2Ptr->encryptionKey = encryptionKey; +#if REVISION >= 0xA + svc_SetSaveBlock2(gSaveBlock2Ptr); +#endif } u32 UseContinueGameWarp(void) diff --git a/src/main.c b/src/main.c index f2d77a8c2..542b0f5d1 100644 --- a/src/main.c +++ b/src/main.c @@ -15,6 +15,7 @@ #include "scanline_effect.h" #include "save_failed_screen.h" #include "quest_log.h" +#include "sloopsvc.h" extern u32 intr_main[]; @@ -24,6 +25,14 @@ static void VCountIntr(void); static void SerialIntr(void); static void IntrDummy(void); +#if REVISION >= 0xA && !MODERN +const char OtherBuildDateTime[] = "2025 12 19 16:01"; +#endif + +#if REVISION >= 0xA +// OtherBuildDateTime is probably in some other file? +__attribute__((aligned(4))) +#endif const u8 gGameVersion = GAME_VERSION; const u8 gGameLanguage = GAME_LANGUAGE; @@ -33,8 +42,10 @@ const char BuildDateTime[] = __DATE__ " " __TIME__; #else #if REVISION == 0 const char BuildDateTime[] = "2004 04 26 11:20"; -#else +#elif REVISION == 1 const char BuildDateTime[] = "2004 07 20 09:30"; +#elif REVISION == 0xA +const char BuildDateTime[] = "2025 12 19 15:38 22afedd9"; #endif //REVISION #endif //MODERN @@ -88,6 +99,9 @@ void EnableVCountIntrAtLine150(void); void AgbMain() { +#if REVISION >= 0xA + svc_stubbed(); +#endif #if MODERN // Modern compilers are liberal with the stack on entry to this function, // so RegisterRamReset may crash if it resets IWRAM. @@ -119,7 +133,12 @@ void AgbMain() #else RegisterRamReset(RESET_ALL); #endif //MODERN + +#if REVISION >= 0xA + *(vu16 *)BG_PLTT = RGB_BLACK; +#else *(vu16 *)BG_PLTT = RGB_WHITE; +#endif InitGpuRegManager(); REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3; InitKeys(); @@ -140,7 +159,8 @@ void AgbMain() SetNotInSaveFailedScreen(); -#ifndef NDEBUG + // Revision 10 has no calls into libisagbprn except this one. +#if !defined(NDEBUG) || REVISION >= 0xA #if (LOG_HANDLER == LOG_HANDLER_MGBA_PRINT) (void) MgbaOpen(); #elif (LOG_HANDLER == LOG_HANDLER_AGB_PRINT) @@ -148,7 +168,7 @@ void AgbMain() #endif #endif -#if REVISION == 1 +#if REVISION >= 1 if (gFlashMemoryPresent != TRUE) SetMainCallback2(NULL); #endif @@ -164,7 +184,9 @@ void AgbMain() && (gMain.heldKeysRaw & B_START_SELECT) == B_START_SELECT) { rfu_REQ_stopMode(); +#if REVISION < 0xA rfu_waitREQComplete(); +#endif DoSoftReset(); } @@ -211,6 +233,9 @@ static void InitMainCallbacks(void) gSaveBlock1Ptr = &gSaveBlock1; gSaveBlock2.encryptionKey = 0; gQuestLogPlaybackState = QL_PLAYBACK_STATE_STOPPED; +#if REVISION >= 0xA + svc_SetSaveBlock2(&gSaveBlock2); +#endif } static void CallCallbacks(void) @@ -375,11 +400,11 @@ static void VBlankIntr(void) gPcmDmaCounter = gSoundInfo.pcmDmaCounter; -#ifndef NDEBUG +#if !defined(NDEBUG) || REVISION >= 0xA sVcountBeforeSound = REG_VCOUNT; #endif m4aSoundMain(); -#ifndef NDEBUG +#if !defined(NDEBUG) || REVISION >= 0xA sVcountAfterSound = REG_VCOUNT; #endif @@ -408,7 +433,7 @@ static void HBlankIntr(void) static void VCountIntr(void) { -#ifndef NDEBUG +#if !defined(NDEBUG) || REVISION >= 0xA sVcountAtIntr = REG_VCOUNT; #endif m4aSoundVSync(); diff --git a/src/menu.c b/src/menu.c index 22e0321bc..9ee9968cb 100644 --- a/src/menu.c +++ b/src/menu.c @@ -567,8 +567,14 @@ s8 Menu_ProcessInputNoWrapClearOnChoose(void) void DestroyYesNoMenu(void) { +#if REVISION >= 0xA + if (sYesNoWindowId == 0xFF) return; +#endif ClearStdWindowAndFrameToTransparent(sYesNoWindowId, TRUE); RemoveWindow(sYesNoWindowId); +#if REVISION >= 0xA + sYesNoWindowId = 0xFF; +#endif } void MultichoiceGrid_PrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHeight, u8 cols, u8 rows, const struct MenuAction *strs) diff --git a/src/menu2.c b/src/menu2.c index 7ca12e5f0..e4e5eed54 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -2,6 +2,7 @@ #include "gflib.h" #include "task.h" #include "wild_encounter.h" +#include "constants/menu.h" // Not actually "old" given these were introduced in Gen 3, // but they're used as equivalents here alongside the other OLD_UNOWN @@ -10,424 +11,425 @@ static void Task_SmoothBlendLayers(u8 taskId); -static const u8 sMonSpriteAnchorCoords[][5] = { - [SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29}, - [SPECIES_IVYSAUR - 1] = {0x14, 0x1b, 0x30, 0x15, 0x2a}, - [SPECIES_VENUSAUR - 1] = {0x1b, 0x20, 0x20, 0x1b, 0x33}, - [SPECIES_CHARMANDER - 1] = {0x14, 0x0f, 0x38, 0x13, 0x1e}, - [SPECIES_CHARMELEON - 1] = {0x0d, 0x11, 0x30, 0x0f, 0x22}, - [SPECIES_CHARIZARD - 1] = {0x1b, 0x07, 0x28, 0x1a, 0x19}, - [SPECIES_SQUIRTLE - 1] = {0x19, 0x13, 0x30, 0x1a, 0x22}, - [SPECIES_WARTORTLE - 1] = {0x16, 0x13, 0x30, 0x17, 0x21}, - [SPECIES_BLASTOISE - 1] = {0x12, 0x08, 0x28, 0x15, 0x19}, - [SPECIES_CATERPIE - 1] = {0x15, 0x14, 0x30, 0x13, 0x24}, - [SPECIES_METAPOD - 1] = {0x13, 0x1d, 0x30, 0x18, 0x2a}, - [SPECIES_BUTTERFREE - 1] = {0x12, 0x1b, 0x08, 0x12, 0x2a}, - [SPECIES_WEEDLE - 1] = {0x16, 0x1c, 0x30, 0x15, 0x2b}, - [SPECIES_KAKUNA - 1] = {0x19, 0x13, 0x30, 0x1a, 0x24}, - [SPECIES_BEEDRILL - 1] = {0x19, 0x16, 0x08, 0x19, 0x25}, - [SPECIES_PIDGEY - 1] = {0x15, 0x12, 0x30, 0x12, 0x1e}, - [SPECIES_PIDGEOTTO - 1] = {0x24, 0x0e, 0x30, 0x1f, 0x1e}, - [SPECIES_PIDGEOT - 1] = {0x0c, 0x13, 0x08, 0x0a, 0x23}, - [SPECIES_RATTATA - 1] = {0x17, 0x1e, 0x30, 0x18, 0x2d}, - [SPECIES_RATICATE - 1] = {0x12, 0x14, 0x30, 0x10, 0x26}, - [SPECIES_SPEAROW - 1] = {0x15, 0x14, 0x30, 0x15, 0x1f}, - [SPECIES_FEAROW - 1] = {0x0c, 0x27, 0x00, 0x0b, 0x3f}, - [SPECIES_EKANS - 1] = {0x11, 0x0f, 0x30, 0x14, 0x1d}, - [SPECIES_ARBOK - 1] = {0x1b, 0x01, 0x28, 0x1d, 0x10}, - [SPECIES_PIKACHU - 1] = {0x19, 0x13, 0x30, 0x1a, 0x1f}, - [SPECIES_RAICHU - 1] = {0x19, 0x14, 0x28, 0x1c, 0x22}, - [SPECIES_SANDSHREW - 1] = {0x17, 0x16, 0x30, 0x18, 0x25}, - [SPECIES_SANDSLASH - 1] = {0x11, 0x13, 0x28, 0x13, 0x22}, - [SPECIES_NIDORAN_F - 1] = {0x16, 0x15, 0x30, 0x18, 0x21}, - [SPECIES_NIDORINA - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x28}, - [SPECIES_NIDOQUEEN - 1] = {0x10, 0x0b, 0x28, 0x13, 0x1c}, - [SPECIES_NIDORAN_M - 1] = {0x15, 0x22, 0x28, 0x15, 0x31}, - [SPECIES_NIDORINO - 1] = {0x13, 0x1e, 0x28, 0x1b, 0x2d}, - [SPECIES_NIDOKING - 1] = {0x12, 0x15, 0x28, 0x13, 0x27}, - [SPECIES_CLEFAIRY - 1] = {0x19, 0x14, 0x30, 0x1b, 0x24}, - [SPECIES_CLEFABLE - 1] = {0x1c, 0x12, 0x30, 0x1d, 0x21}, - [SPECIES_VULPIX - 1] = {0x10, 0x16, 0x30, 0x0e, 0x25}, - [SPECIES_NINETALES - 1] = {0x28, 0x10, 0x28, 0x27, 0x1e}, - [SPECIES_JIGGLYPUFF - 1] = {0x1d, 0x15, 0x30, 0x1e, 0x25}, - [SPECIES_WIGGLYTUFF - 1] = {0x1a, 0x12, 0x30, 0x1c, 0x22}, - [SPECIES_ZUBAT - 1] = {0x14, 0x1d, 0x08, 0x14, 0x29}, - [SPECIES_GOLBAT - 1] = {0x23, 0x1a, 0x00, 0x21, 0x2e}, - [SPECIES_ODDISH - 1] = {0x1d, 0x20, 0x28, 0x1d, 0x2b}, - [SPECIES_GLOOM - 1] = {0x1c, 0x18, 0x28, 0x1c, 0x27}, - [SPECIES_VILEPLUME - 1] = {0x1c, 0x1e, 0x28, 0x1d, 0x2a}, - [SPECIES_PARAS - 1] = {0x1d, 0x1a, 0x30, 0x1c, 0x27}, - [SPECIES_PARASECT - 1] = {0x1e, 0x1c, 0x28, 0x20, 0x2e}, - [SPECIES_VENONAT - 1] = {0x1b, 0x16, 0x10, 0x1a, 0x29}, - [SPECIES_VENOMOTH - 1] = {0x12, 0x19, 0x08, 0x16, 0x27}, - [SPECIES_DIGLETT - 1] = {0x1e, 0x16, 0x30, 0x1c, 0x23}, - [SPECIES_DUGTRIO - 1] = {0x1a, 0x11, 0x30, 0x1a, 0x1f}, - [SPECIES_MEOWTH - 1] = {0x1c, 0x16, 0x30, 0x1c, 0x23}, - [SPECIES_PERSIAN - 1] = {0x13, 0x13, 0x30, 0x13, 0x21}, - [SPECIES_PSYDUCK - 1] = {0x1c, 0x13, 0x30, 0x17, 0x29}, - [SPECIES_GOLDUCK - 1] = {0x17, 0x12, 0x28, 0x17, 0x22}, - [SPECIES_MANKEY - 1] = {0x1c, 0x15, 0x30, 0x1b, 0x23}, - [SPECIES_PRIMEAPE - 1] = {0x1e, 0x16, 0x30, 0x1a, 0x27}, - [SPECIES_GROWLITHE - 1] = {0x14, 0x17, 0x30, 0x14, 0x24}, - [SPECIES_ARCANINE - 1] = {0x0f, 0x09, 0x28, 0x0c, 0x19}, - [SPECIES_POLIWAG - 1] = {0x15, 0x14, 0x30, 0x13, 0x1f}, - [SPECIES_POLIWHIRL - 1] = {0x1f, 0x10, 0x30, 0x1e, 0x17}, - [SPECIES_POLIWRATH - 1] = {0x22, 0x0c, 0x30, 0x21, 0x18}, - [SPECIES_ABRA - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x21}, - [SPECIES_KADABRA - 1] = {0x1b, 0x12, 0x30, 0x1c, 0x25}, - [SPECIES_ALAKAZAM - 1] = {0x1c, 0x11, 0x28, 0x1d, 0x26}, - [SPECIES_MACHOP - 1] = {0x1b, 0x11, 0x30, 0x1b, 0x1e}, - [SPECIES_MACHOKE - 1] = {0x1d, 0x11, 0x30, 0x1d, 0x1f}, - [SPECIES_MACHAMP - 1] = {0x1a, 0x0d, 0x28, 0x1c, 0x1b}, - [SPECIES_BELLSPROUT - 1] = {0x15, 0x0e, 0x30, 0x0e, 0x1c}, - [SPECIES_WEEPINBELL - 1] = {0x1a, 0x1c, 0x10, 0x15, 0x32}, - [SPECIES_VICTREEBEL - 1] = {0x1e, 0x0f, 0x30, 0x1c, 0x1b}, - [SPECIES_TENTACOOL - 1] = {0x1a, 0x15, 0x30, 0x1e, 0x26}, - [SPECIES_TENTACRUEL - 1] = {0x1b, 0x10, 0x28, 0x1c, 0x26}, - [SPECIES_GEODUDE - 1] = {0x1c, 0x20, 0x28, 0x1d, 0x2d}, - [SPECIES_GRAVELER - 1] = {0x1d, 0x19, 0x28, 0x1e, 0x26}, - [SPECIES_GOLEM - 1] = {0x19, 0x1b, 0x28, 0x1c, 0x27}, - [SPECIES_PONYTA - 1] = {0x0f, 0x11, 0x30, 0x0e, 0x23}, - [SPECIES_RAPIDASH - 1] = {0x2f, 0x0f, 0x28, 0x2b, 0x1e}, - [SPECIES_SLOWPOKE - 1] = {0x14, 0x1f, 0x28, 0x15, 0x2f}, - [SPECIES_SLOWBRO - 1] = {0x0e, 0x0d, 0x28, 0x0c, 0x1f}, - [SPECIES_MAGNEMITE - 1] = {0x20, 0x1b, 0x10, 0x1f, 0x29}, - [SPECIES_MAGNETON - 1] = {0x1f, 0x14, 0x08, 0x1f, 0x22}, - [SPECIES_FARFETCHD - 1] = {0x16, 0x14, 0x30, 0x16, 0x29}, - [SPECIES_DODUO - 1] = {0x11, 0x16, 0x30, 0x0d, 0x2c}, - [SPECIES_DODRIO - 1] = {0x1d, 0x04, 0x28, 0x0e, 0x07}, - [SPECIES_SEEL - 1] = {0x1b, 0x24, 0x20, 0x17, 0x35}, - [SPECIES_DEWGONG - 1] = {0x12, 0x0a, 0x30, 0x0e, 0x1a}, - [SPECIES_GRIMER - 1] = {0x1f, 0x10, 0x30, 0x1d, 0x25}, - [SPECIES_MUK - 1] = {0x17, 0x0f, 0x30, 0x19, 0x22}, - [SPECIES_SHELLDER - 1] = {0x1a, 0x18, 0x30, 0x17, 0x29}, - [SPECIES_CLOYSTER - 1] = {0x19, 0x1e, 0x28, 0x1d, 0x2c}, - [SPECIES_GASTLY - 1] = {0x1a, 0x1f, 0x08, 0x19, 0x30}, - [SPECIES_HAUNTER - 1] = {0x20, 0x14, 0x08, 0x1d, 0x26}, - [SPECIES_GENGAR - 1] = {0x1a, 0x16, 0x30, 0x19, 0x28}, - [SPECIES_ONIX - 1] = {0x1f, 0x24, 0x20, 0x28, 0x36}, - [SPECIES_DROWZEE - 1] = {0x1a, 0x0e, 0x30, 0x1a, 0x1e}, - [SPECIES_HYPNO - 1] = {0x1c, 0x12, 0x30, 0x19, 0x24}, - [SPECIES_KRABBY - 1] = {0x1d, 0x1d, 0x30, 0x1a, 0x2b}, - [SPECIES_KINGLER - 1] = {0x1e, 0x1f, 0x28, 0x1c, 0x30}, - [SPECIES_VOLTORB - 1] = {0x1c, 0x1b, 0x30, 0x1b, 0x2b}, - [SPECIES_ELECTRODE - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x2e}, - [SPECIES_EXEGGCUTE - 1] = {0x21, 0x17, 0x30, 0x20, 0x24}, - [SPECIES_EXEGGUTOR - 1] = {0x1c, 0x17, 0x28, 0x1b, 0x25}, - [SPECIES_CUBONE - 1] = {0x1b, 0x12, 0x30, 0x1b, 0x22}, - [SPECIES_MAROWAK - 1] = {0x14, 0x0f, 0x30, 0x11, 0x23}, - [SPECIES_HITMONLEE - 1] = {0x2e, 0x11, 0x30, 0x28, 0x22}, - [SPECIES_HITMONCHAN - 1] = {0x22, 0x0e, 0x30, 0x1e, 0x1d}, - [SPECIES_LICKITUNG - 1] = {0x14, 0x11, 0x30, 0x14, 0x24}, - [SPECIES_KOFFING - 1] = {0x1e, 0x14, 0x10, 0x1d, 0x20}, - [SPECIES_WEEZING - 1] = {0x11, 0x0d, 0x10, 0x0f, 0x1c}, - [SPECIES_RHYHORN - 1] = {0x0e, 0x23, 0x20, 0x14, 0x33}, - [SPECIES_RHYDON - 1] = {0x0d, 0x12, 0x28, 0x17, 0x22}, - [SPECIES_CHANSEY - 1] = {0x1a, 0x0d, 0x30, 0x1a, 0x1a}, - [SPECIES_TANGELA - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x29}, - [SPECIES_KANGASKHAN - 1] = {0x1b, 0x06, 0x28, 0x1c, 0x14}, - [SPECIES_HORSEA - 1] = {0x1c, 0x14, 0x30, 0x16, 0x23}, - [SPECIES_SEADRA - 1] = {0x10, 0x17, 0x30, 0x09, 0x2a}, - [SPECIES_GOLDEEN - 1] = {0x16, 0x23, 0x20, 0x15, 0x34}, - [SPECIES_SEAKING - 1] = {0x16, 0x0f, 0x30, 0x10, 0x18}, - [SPECIES_STARYU - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x26}, - [SPECIES_STARMIE - 1] = {0x1d, 0x13, 0x30, 0x1b, 0x20}, - [SPECIES_MR_MIME - 1] = {0x24, 0x11, 0x30, 0x25, 0x1e}, - [SPECIES_SCYTHER - 1] = {0x10, 0x19, 0x28, 0x12, 0x27}, - [SPECIES_JYNX - 1] = {0x1b, 0x0f, 0x30, 0x19, 0x1c}, - [SPECIES_ELECTABUZZ - 1] = {0x14, 0x11, 0x30, 0x17, 0x20}, - [SPECIES_MAGMAR - 1] = {0x10, 0x0e, 0x30, 0x0b, 0x19}, - [SPECIES_PINSIR - 1] = {0x1d, 0x1c, 0x28, 0x20, 0x2b}, - [SPECIES_TAUROS - 1] = {0x11, 0x1d, 0x28, 0x13, 0x2e}, - [SPECIES_MAGIKARP - 1] = {0x16, 0x15, 0x30, 0x13, 0x23}, - [SPECIES_GYARADOS - 1] = {0x0b, 0x18, 0x28, 0x16, 0x29}, - [SPECIES_LAPRAS - 1] = {0x16, 0x08, 0x28, 0x15, 0x16}, - [SPECIES_DITTO - 1] = {0x24, 0x12, 0x30, 0x1f, 0x20}, - [SPECIES_EEVEE - 1] = {0x16, 0x16, 0x30, 0x16, 0x23}, - [SPECIES_VAPOREON - 1] = {0x18, 0x23, 0x28, 0x18, 0x30}, - [SPECIES_JOLTEON - 1] = {0x14, 0x1b, 0x30, 0x16, 0x28}, - [SPECIES_FLAREON - 1] = {0x16, 0x17, 0x30, 0x14, 0x25}, - [SPECIES_PORYGON - 1] = {0x18, 0x12, 0x30, 0x10, 0x23}, - [SPECIES_OMANYTE - 1] = {0x1d, 0x1d, 0x30, 0x1c, 0x2b}, - [SPECIES_OMASTAR - 1] = {0x16, 0x1a, 0x30, 0x19, 0x2d}, - [SPECIES_KABUTO - 1] = {0x1b, 0x16, 0x30, 0x1a, 0x27}, - [SPECIES_KABUTOPS - 1] = {0x15, 0x11, 0x30, 0x15, 0x1f}, - [SPECIES_AERODACTYL - 1] = {0x13, 0x1d, 0x00, 0x14, 0x30}, - [SPECIES_SNORLAX - 1] = {0x35, 0x09, 0x30, 0x2e, 0x14}, - [SPECIES_ARTICUNO - 1] = {0x18, 0x0b, 0x18, 0x17, 0x17}, - [SPECIES_ZAPDOS - 1] = {0x0e, 0x0e, 0x10, 0x04, 0x28}, - [SPECIES_MOLTRES - 1] = {0x0b, 0x2a, 0x08, 0x0b, 0x38}, - [SPECIES_DRATINI - 1] = {0x0d, 0x12, 0x30, 0x0b, 0x21}, - [SPECIES_DRAGONAIR - 1] = {0x18, 0x0e, 0x30, 0x13, 0x1c}, - [SPECIES_DRAGONITE - 1] = {0x1b, 0x07, 0x18, 0x19, 0x17}, - [SPECIES_MEWTWO - 1] = {0x2b, 0x09, 0x28, 0x2c, 0x18}, - [SPECIES_MEW - 1] = {0x19, 0x14, 0x10, 0x1f, 0x21}, - [SPECIES_CHIKORITA - 1] = {0x1b, 0x17, 0x30, 0x1b, 0x24}, - [SPECIES_BAYLEEF - 1] = {0x1d, 0x10, 0x30, 0x20, 0x1d}, - [SPECIES_MEGANIUM - 1] = {0x05, 0x0d, 0x28, 0x0d, 0x1b}, - [SPECIES_CYNDAQUIL - 1] = {0x11, 0x1b, 0x30, 0x14, 0x27}, - [SPECIES_QUILAVA - 1] = {0x25, 0x18, 0x30, 0x27, 0x26}, - [SPECIES_TYPHLOSION - 1] = {0x09, 0x10, 0x28, 0x10, 0x1c}, - [SPECIES_TOTODILE - 1] = {0x16, 0x10, 0x30, 0x19, 0x20}, - [SPECIES_CROCONAW - 1] = {0x16, 0x10, 0x30, 0x18, 0x21}, - [SPECIES_FERALIGATR - 1] = {0x0e, 0x0a, 0x28, 0x08, 0x1a}, - [SPECIES_SENTRET - 1] = {0x1e, 0x0a, 0x30, 0x1d, 0x15}, - [SPECIES_FURRET - 1] = {0x21, 0x0e, 0x30, 0x21, 0x19}, - [SPECIES_HOOTHOOT - 1] = {0x1d, 0x15, 0x30, 0x1c, 0x24}, - [SPECIES_NOCTOWL - 1] = {0x19, 0x0e, 0x30, 0x18, 0x1c}, - [SPECIES_LEDYBA - 1] = {0x1b, 0x15, 0x30, 0x1c, 0x24}, - [SPECIES_LEDIAN - 1] = {0x18, 0x12, 0x10, 0x1c, 0x21}, - [SPECIES_SPINARAK - 1] = {0x20, 0x20, 0x28, 0x20, 0x2d}, - [SPECIES_ARIADOS - 1] = {0x17, 0x23, 0x28, 0x15, 0x30}, - [SPECIES_CROBAT - 1] = {0x22, 0x1e, 0x08, 0x23, 0x2b}, - [SPECIES_CHINCHOU - 1] = {0x1f, 0x1d, 0x30, 0x1f, 0x29}, - [SPECIES_LANTURN - 1] = {0x10, 0x23, 0x28, 0x19, 0x33}, - [SPECIES_PICHU - 1] = {0x1e, 0x17, 0x30, 0x1e, 0x24}, - [SPECIES_CLEFFA - 1] = {0x1c, 0x18, 0x30, 0x1e, 0x26}, - [SPECIES_IGGLYBUFF - 1] = {0x1f, 0x19, 0x30, 0x1f, 0x24}, - [SPECIES_TOGEPI - 1] = {0x21, 0x15, 0x30, 0x1f, 0x20}, - [SPECIES_TOGETIC - 1] = {0x1b, 0x10, 0x30, 0x1c, 0x1c}, - [SPECIES_NATU - 1] = {0x1c, 0x17, 0x30, 0x15, 0x21}, - [SPECIES_XATU - 1] = {0x1b, 0x08, 0x30, 0x19, 0x14}, - [SPECIES_MAREEP - 1] = {0x16, 0x15, 0x30, 0x15, 0x24}, - [SPECIES_FLAAFFY - 1] = {0x19, 0x12, 0x30, 0x18, 0x21}, - [SPECIES_AMPHAROS - 1] = {0x0f, 0x0a, 0x30, 0x10, 0x1b}, - [SPECIES_BELLOSSOM - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x20}, - [SPECIES_MARILL - 1] = {0x1d, 0x15, 0x30, 0x1d, 0x22}, - [SPECIES_AZUMARILL - 1] = {0x1a, 0x12, 0x30, 0x17, 0x1f}, - [SPECIES_SUDOWOODO - 1] = {0x20, 0x10, 0x30, 0x20, 0x1f}, - [SPECIES_POLITOED - 1] = {0x1d, 0x0f, 0x30, 0x1e, 0x20}, - [SPECIES_HOPPIP - 1] = {0x23, 0x25, 0x08, 0x25, 0x33}, - [SPECIES_SKIPLOOM - 1] = {0x1e, 0x18, 0x08, 0x1c, 0x27}, - [SPECIES_JUMPLUFF - 1] = {0x1d, 0x21, 0x08, 0x20, 0x2f}, - [SPECIES_AIPOM - 1] = {0x1e, 0x29, 0x18, 0x1e, 0x35}, - [SPECIES_SUNKERN - 1] = {0x1f, 0x20, 0x08, 0x24, 0x2e}, - [SPECIES_SUNFLORA - 1] = {0x1c, 0x0c, 0x30, 0x1b, 0x19}, - [SPECIES_YANMA - 1] = {0x1b, 0x28, 0x08, 0x16, 0x35}, - [SPECIES_WOOPER - 1] = {0x1d, 0x13, 0x30, 0x1f, 0x21}, - [SPECIES_QUAGSIRE - 1] = {0x15, 0x09, 0x30, 0x12, 0x18}, - [SPECIES_ESPEON - 1] = {0x11, 0x1b, 0x30, 0x11, 0x29}, - [SPECIES_UMBREON - 1] = {0x23, 0x15, 0x30, 0x23, 0x22}, - [SPECIES_MURKROW - 1] = {0x24, 0x13, 0x30, 0x20, 0x22}, - [SPECIES_SLOWKING - 1] = {0x1e, 0x13, 0x28, 0x1d, 0x25}, - [SPECIES_MISDREAVUS - 1] = {0x28, 0x21, 0x08, 0x26, 0x2e}, - [SPECIES_UNOWN - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, - [SPECIES_WOBBUFFET - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x1a}, - [SPECIES_GIRAFARIG - 1] = {0x0b, 0x0d, 0x28, 0x11, 0x1d}, - [SPECIES_PINECO - 1] = {0x1d, 0x12, 0x10, 0x19, 0x25}, - [SPECIES_FORRETRESS - 1] = {0x19, 0x17, 0x08, 0x1e, 0x26}, - [SPECIES_DUNSPARCE - 1] = {0x10, 0x1b, 0x30, 0x0c, 0x2d}, - [SPECIES_GLIGAR - 1] = {0x1e, 0x13, 0x08, 0x1d, 0x23}, - [SPECIES_STEELIX - 1] = {0x0c, 0x0d, 0x28, 0x0d, 0x1c}, - [SPECIES_SNUBBULL - 1] = {0x1b, 0x15, 0x30, 0x1a, 0x23}, - [SPECIES_GRANBULL - 1] = {0x1c, 0x09, 0x30, 0x19, 0x18}, - [SPECIES_QWILFISH - 1] = {0x1f, 0x26, 0x20, 0x1d, 0x33}, - [SPECIES_SCIZOR - 1] = {0x15, 0x0f, 0x10, 0x1a, 0x1a}, - [SPECIES_SHUCKLE - 1] = {0x25, 0x0a, 0x30, 0x24, 0x18}, - [SPECIES_HERACROSS - 1] = {0x18, 0x19, 0x28, 0x1a, 0x26}, - [SPECIES_SNEASEL - 1] = {0x1c, 0x13, 0x30, 0x1d, 0x24}, - [SPECIES_TEDDIURSA - 1] = {0x1e, 0x12, 0x30, 0x1b, 0x23}, - [SPECIES_URSARING - 1] = {0x1e, 0x04, 0x28, 0x1d, 0x14}, - [SPECIES_SLUGMA - 1] = {0x20, 0x18, 0x30, 0x20, 0x28}, - [SPECIES_MAGCARGO - 1] = {0x16, 0x11, 0x30, 0x17, 0x23}, - [SPECIES_SWINUB - 1] = {0x1c, 0x18, 0x30, 0x1b, 0x25}, - [SPECIES_PILOSWINE - 1] = {0x18, 0x23, 0x20, 0x18, 0x36}, - [SPECIES_CORSOLA - 1] = {0x19, 0x1d, 0x28, 0x19, 0x2b}, - [SPECIES_REMORAID - 1] = {0x15, 0x1f, 0x28, 0x13, 0x2b}, - [SPECIES_OCTILLERY - 1] = {0x1c, 0x11, 0x30, 0x1a, 0x20}, - [SPECIES_DELIBIRD - 1] = {0x1d, 0x11, 0x30, 0x1b, 0x1f}, - [SPECIES_MANTINE - 1] = {0x16, 0x1e, 0x28, 0x1f, 0x27}, - [SPECIES_SKARMORY - 1] = {0x1e, 0x00, 0x28, 0x13, 0x07}, - [SPECIES_HOUNDOUR - 1] = {0x25, 0x11, 0x30, 0x25, 0x1f}, - [SPECIES_HOUNDOOM - 1] = {0x0d, 0x13, 0x30, 0x0d, 0x24}, - [SPECIES_KINGDRA - 1] = {0x0e, 0x13, 0x28, 0x0a, 0x2c}, - [SPECIES_PHANPY - 1] = {0x1b, 0x11, 0x30, 0x19, 0x24}, - [SPECIES_DONPHAN - 1] = {0x11, 0x15, 0x30, 0x19, 0x2c}, - [SPECIES_PORYGON2 - 1] = {0x18, 0x11, 0x30, 0x11, 0x20}, - [SPECIES_STANTLER - 1] = {0x15, 0x15, 0x28, 0x17, 0x28}, - [SPECIES_SMEARGLE - 1] = {0x18, 0x10, 0x30, 0x1b, 0x25}, - [SPECIES_TYROGUE - 1] = {0x1e, 0x12, 0x30, 0x1f, 0x1f}, - [SPECIES_HITMONTOP - 1] = {0x1a, 0x39, 0x10, 0x1a, 0x2b}, - [SPECIES_SMOOCHUM - 1] = {0x20, 0x18, 0x30, 0x21, 0x26}, - [SPECIES_ELEKID - 1] = {0x1d, 0x14, 0x30, 0x1d, 0x23}, - [SPECIES_MAGBY - 1] = {0x1c, 0x15, 0x30, 0x1a, 0x24}, - [SPECIES_MILTANK - 1] = {0x18, 0x0e, 0x30, 0x18, 0x1e}, - [SPECIES_BLISSEY - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x19}, - [SPECIES_RAIKOU - 1] = {0x29, 0x0c, 0x28, 0x27, 0x1e}, - [SPECIES_ENTEI - 1] = {0x08, 0x09, 0x28, 0x0b, 0x18}, - [SPECIES_SUICUNE - 1] = {0x23, 0x1d, 0x28, 0x26, 0x2c}, - [SPECIES_LARVITAR - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x24}, - [SPECIES_PUPITAR - 1] = {0x1b, 0x19, 0x30, 0x1b, 0x28}, - [SPECIES_TYRANITAR - 1] = {0x06, 0x0b, 0x28, 0x0d, 0x19}, - [SPECIES_LUGIA - 1] = {0x08, 0x2a, 0x08, 0x14, 0x34}, - [SPECIES_HO_OH - 1] = {0x0d, 0x25, 0x08, 0x0e, 0x34}, - [SPECIES_CELEBI - 1] = {0x15, 0x21, 0x08, 0x1a, 0x2b}, - [SPECIES_OLD_UNOWN_B - 1] = {0x1f, 0x12, 0x08, 0x1e, 0x1c}, - [SPECIES_OLD_UNOWN_C - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, - [SPECIES_OLD_UNOWN_D - 1] = {0x1c, 0x19, 0x08, 0x1b, 0x23}, - [SPECIES_OLD_UNOWN_E - 1] = {0x21, 0x19, 0x08, 0x20, 0x23}, - [SPECIES_OLD_UNOWN_F - 1] = {0x1b, 0x13, 0x08, 0x1a, 0x1d}, - [SPECIES_OLD_UNOWN_G - 1] = {0x20, 0x16, 0x08, 0x1f, 0x21}, - [SPECIES_OLD_UNOWN_H - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_I - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_J - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20}, - [SPECIES_OLD_UNOWN_K - 1] = {0x1d, 0x1a, 0x08, 0x1c, 0x24}, - [SPECIES_OLD_UNOWN_L - 1] = {0x20, 0x16, 0x08, 0x1f, 0x1f}, - [SPECIES_OLD_UNOWN_M - 1] = {0x20, 0x1c, 0x08, 0x1f, 0x26}, - [SPECIES_OLD_UNOWN_N - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_O - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_P - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20}, - [SPECIES_OLD_UNOWN_Q - 1] = {0x1d, 0x16, 0x08, 0x1c, 0x20}, - [SPECIES_OLD_UNOWN_R - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f}, - [SPECIES_OLD_UNOWN_S - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_T - 1] = {0x20, 0x1e, 0x08, 0x1f, 0x28}, - [SPECIES_OLD_UNOWN_U - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21}, - [SPECIES_OLD_UNOWN_V - 1] = {0x1e, 0x1e, 0x08, 0x1d, 0x28}, - [SPECIES_OLD_UNOWN_W - 1] = {0x20, 0x1d, 0x08, 0x1f, 0x27}, - [SPECIES_OLD_UNOWN_X - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_OLD_UNOWN_Y - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f}, - [SPECIES_OLD_UNOWN_Z - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23}, - [SPECIES_TREECKO - 1] = {0x1a, 0x0f, 0x30, 0x19, 0x20}, - [SPECIES_GROVYLE - 1] = {0x0d, 0x05, 0x10, 0x05, 0x13}, - [SPECIES_SCEPTILE - 1] = {0x10, 0x04, 0x28, 0x0c, 0x12}, - [SPECIES_TORCHIC - 1] = {0x17, 0x18, 0x30, 0x15, 0x25}, - [SPECIES_COMBUSKEN - 1] = {0x20, 0x12, 0x28, 0x1e, 0x20}, - [SPECIES_BLAZIKEN - 1] = {0x1a, 0x07, 0x28, 0x1d, 0x13}, - [SPECIES_MUDKIP - 1] = {0x1b, 0x1d, 0x28, 0x19, 0x2c}, - [SPECIES_MARSHTOMP - 1] = {0x1d, 0x11, 0x30, 0x1c, 0x20}, - [SPECIES_SWAMPERT - 1] = {0x1b, 0x11, 0x28, 0x1b, 0x23}, - [SPECIES_POOCHYENA - 1] = {0x14, 0x12, 0x30, 0x0f, 0x20}, - [SPECIES_MIGHTYENA - 1] = {0x09, 0x0d, 0x28, 0x09, 0x1c}, - [SPECIES_ZIGZAGOON - 1] = {0x0b, 0x1a, 0x30, 0x09, 0x2b}, - [SPECIES_LINOONE - 1] = {0x0d, 0x28, 0x18, 0x0b, 0x37}, - [SPECIES_WURMPLE - 1] = {0x21, 0x17, 0x30, 0x1f, 0x26}, - [SPECIES_SILCOON - 1] = {0x13, 0x1c, 0x30, 0x11, 0x2a}, - [SPECIES_BEAUTIFLY - 1] = {0x0f, 0x1b, 0x08, 0x0e, 0x28}, - [SPECIES_CASCOON - 1] = {0x14, 0x1d, 0x30, 0x11, 0x2c}, - [SPECIES_DUSTOX - 1] = {0x14, 0x19, 0x08, 0x16, 0x26}, - [SPECIES_LOTAD - 1] = {0x19, 0x25, 0x28, 0x17, 0x32}, - [SPECIES_LOMBRE - 1] = {0x22, 0x10, 0x30, 0x29, 0x1d}, - [SPECIES_LUDICOLO - 1] = {0x1c, 0x0f, 0x28, 0x1b, 0x24}, - [SPECIES_SEEDOT - 1] = {0x1b, 0x17, 0x30, 0x18, 0x28}, - [SPECIES_NUZLEAF - 1] = {0x20, 0x0d, 0x30, 0x1a, 0x1d}, - [SPECIES_SHIFTRY - 1] = {0x32, 0x11, 0x28, 0x2e, 0x23}, - [SPECIES_NINCADA - 1] = {0x18, 0x1a, 0x30, 0x17, 0x28}, - [SPECIES_NINJASK - 1] = {0x17, 0x21, 0x00, 0x17, 0x2f}, - [SPECIES_SHEDINJA - 1] = {0x16, 0x19, 0x08, 0x18, 0x2a}, - [SPECIES_TAILLOW - 1] = {0x17, 0x10, 0x30, 0x14, 0x1e}, - [SPECIES_SWELLOW - 1] = {0x0c, 0x0a, 0x28, 0x05, 0x16}, - [SPECIES_SHROOMISH - 1] = {0x1f, 0x16, 0x30, 0x1d, 0x23}, - [SPECIES_BRELOOM - 1] = {0x25, 0x0c, 0x30, 0x23, 0x19}, - [SPECIES_SPINDA - 1] = {0x21, 0x16, 0x30, 0x1f, 0x27}, - [SPECIES_WINGULL - 1] = {0x1a, 0x16, 0x10, 0x15, 0x26}, - [SPECIES_PELIPPER - 1] = {0x1d, 0x0a, 0x10, 0x09, 0x1b}, - [SPECIES_SURSKIT - 1] = {0x1d, 0x16, 0x30, 0x1c, 0x25}, - [SPECIES_MASQUERAIN - 1] = {0x1a, 0x21, 0x08, 0x14, 0x30}, - [SPECIES_WAILMER - 1] = {0x17, 0x17, 0x30, 0x16, 0x28}, - [SPECIES_WAILORD - 1] = {0x17, 0x03, 0x30, 0x09, 0x13}, - [SPECIES_SKITTY - 1] = {0x24, 0x1a, 0x30, 0x22, 0x2a}, - [SPECIES_DELCATTY - 1] = {0x1e, 0x12, 0x30, 0x1c, 0x21}, - [SPECIES_KECLEON - 1] = {0x19, 0x10, 0x30, 0x13, 0x1e}, - [SPECIES_BALTOY - 1] = {0x1d, 0x15, 0x30, 0x1b, 0x22}, - [SPECIES_CLAYDOL - 1] = {0x1e, 0x0d, 0x28, 0x1d, 0x24}, - [SPECIES_NOSEPASS - 1] = {0x1f, 0x10, 0x30, 0x15, 0x23}, - [SPECIES_TORKOAL - 1] = {0x0e, 0x19, 0x28, 0x0a, 0x27}, - [SPECIES_SABLEYE - 1] = {0x1e, 0x16, 0x30, 0x1d, 0x27}, - [SPECIES_BARBOACH - 1] = {0x17, 0x12, 0x30, 0x15, 0x1e}, - [SPECIES_WHISCASH - 1] = {0x18, 0x20, 0x28, 0x17, 0x31}, - [SPECIES_LUVDISC - 1] = {0x19, 0x0f, 0x30, 0x13, 0x1c}, - [SPECIES_CORPHISH - 1] = {0x1f, 0x14, 0x30, 0x1d, 0x23}, - [SPECIES_CRAWDAUNT - 1] = {0x14, 0x0c, 0x28, 0x18, 0x23}, - [SPECIES_FEEBAS - 1] = {0x18, 0x1e, 0x28, 0x16, 0x2f}, - [SPECIES_MILOTIC - 1] = {0x20, 0x0c, 0x28, 0x1f, 0x1d}, - [SPECIES_CARVANHA - 1] = {0x16, 0x19, 0x30, 0x13, 0x22}, - [SPECIES_SHARPEDO - 1] = {0x19, 0x0c, 0x28, 0x17, 0x27}, - [SPECIES_TRAPINCH - 1] = {0x29, 0x13, 0x30, 0x17, 0x18}, - [SPECIES_VIBRAVA - 1] = {0x10, 0x27, 0x20, 0x0e, 0x34}, - [SPECIES_FLYGON - 1] = {0x22, 0x07, 0x10, 0x21, 0x13}, - [SPECIES_MAKUHITA - 1] = {0x22, 0x13, 0x30, 0x1c, 0x23}, - [SPECIES_HARIYAMA - 1] = {0x24, 0x0f, 0x28, 0x26, 0x1c}, - [SPECIES_ELECTRIKE - 1] = {0x11, 0x18, 0x30, 0x14, 0x27}, - [SPECIES_MANECTRIC - 1] = {0x2f, 0x18, 0x28, 0x2e, 0x29}, - [SPECIES_NUMEL - 1] = {0x10, 0x1a, 0x30, 0x0d, 0x2a}, - [SPECIES_CAMERUPT - 1] = {0x0d, 0x22, 0x28, 0x0e, 0x36}, - [SPECIES_SPHEAL - 1] = {0x1e, 0x0f, 0x30, 0x18, 0x1f}, - [SPECIES_SEALEO - 1] = {0x1c, 0x09, 0x30, 0x1a, 0x18}, - [SPECIES_WALREIN - 1] = {0x19, 0x01, 0x28, 0x10, 0x16}, - [SPECIES_CACNEA - 1] = {0x1f, 0x17, 0x30, 0x1d, 0x29}, - [SPECIES_CACTURNE - 1] = {0x1d, 0x0e, 0x28, 0x1d, 0x1b}, - [SPECIES_SNORUNT - 1] = {0x1e, 0x16, 0x30, 0x1e, 0x26}, - [SPECIES_GLALIE - 1] = {0x1a, 0x1c, 0x08, 0x1a, 0x31}, - [SPECIES_LUNATONE - 1] = {0x1c, 0x16, 0x08, 0x19, 0x2c}, - [SPECIES_SOLROCK - 1] = {0x18, 0x18, 0x10, 0x17, 0x31}, - [SPECIES_AZURILL - 1] = {0x1b, 0x10, 0x30, 0x18, 0x1f}, - [SPECIES_SPOINK - 1] = {0x21, 0x14, 0x30, 0x1b, 0x28}, - [SPECIES_GRUMPIG - 1] = {0x14, 0x10, 0x30, 0x15, 0x20}, - [SPECIES_PLUSLE - 1] = {0x1c, 0x16, 0x08, 0x1d, 0x25}, - [SPECIES_MINUN - 1] = {0x21, 0x16, 0x08, 0x1f, 0x26}, - [SPECIES_MAWILE - 1] = {0x2d, 0x14, 0x30, 0x2f, 0x24}, - [SPECIES_MEDITITE - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x25}, - [SPECIES_MEDICHAM - 1] = {0x21, 0x0f, 0x28, 0x1e, 0x1d}, - [SPECIES_SWABLU - 1] = {0x1b, 0x16, 0x10, 0x17, 0x23}, - [SPECIES_ALTARIA - 1] = {0x1d, 0x0b, 0x10, 0x1a, 0x1a}, - [SPECIES_WYNAUT - 1] = {0x1a, 0x15, 0x30, 0x1b, 0x26}, - [SPECIES_DUSKULL - 1] = {0x10, 0x18, 0x08, 0x14, 0x2e}, - [SPECIES_DUSCLOPS - 1] = {0x1c, 0x0f, 0x30, 0x1a, 0x28}, - [SPECIES_ROSELIA - 1] = {0x1e, 0x11, 0x30, 0x1d, 0x20}, - [SPECIES_SLAKOTH - 1] = {0x19, 0x1e, 0x30, 0x18, 0x2f}, - [SPECIES_VIGOROTH - 1] = {0x10, 0x12, 0x28, 0x14, 0x24}, - [SPECIES_SLAKING - 1] = {0x37, 0x0f, 0x30, 0x29, 0x21}, - [SPECIES_GULPIN - 1] = {0x1b, 0x18, 0x30, 0x17, 0x26}, - [SPECIES_SWALOT - 1] = {0x1f, 0x06, 0x30, 0x15, 0x13}, - [SPECIES_TROPIUS - 1] = {0x18, 0x0a, 0x28, 0x20, 0x18}, - [SPECIES_WHISMUR - 1] = {0x1f, 0x19, 0x30, 0x1d, 0x29}, - [SPECIES_LOUDRED - 1] = {0x1c, 0x12, 0x28, 0x22, 0x27}, - [SPECIES_EXPLOUD - 1] = {0x10, 0x10, 0x28, 0x1a, 0x2a}, - [SPECIES_CLAMPERL - 1] = {0x20, 0x1a, 0x30, 0x1e, 0x26}, - [SPECIES_HUNTAIL - 1] = {0x13, 0x1e, 0x28, 0x15, 0x33}, - [SPECIES_GOREBYSS - 1] = {0x0d, 0x1f, 0x28, 0x03, 0x32}, - [SPECIES_ABSOL - 1] = {0x2a, 0x11, 0x28, 0x2a, 0x22}, - [SPECIES_SHUPPET - 1] = {0x16, 0x19, 0x08, 0x17, 0x27}, - [SPECIES_BANETTE - 1] = {0x1c, 0x14, 0x08, 0x1b, 0x23}, - [SPECIES_SEVIPER - 1] = {0x0e, 0x0d, 0x30, 0x0b, 0x1e}, - [SPECIES_ZANGOOSE - 1] = {0x18, 0x0c, 0x28, 0x15, 0x1a}, - [SPECIES_RELICANTH - 1] = {0x0c, 0x1f, 0x30, 0x09, 0x2d}, - [SPECIES_ARON - 1] = {0x18, 0x1c, 0x30, 0x1a, 0x2c}, - [SPECIES_LAIRON - 1] = {0x0b, 0x21, 0x30, 0x12, 0x2f}, - [SPECIES_AGGRON - 1] = {0x10, 0x0b, 0x28, 0x16, 0x1b}, - [SPECIES_CASTFORM - 1] = {0x1d, 0x18, 0x08, 0x1b, 0x26}, - [SPECIES_VOLBEAT - 1] = {0x25, 0x15, 0x08, 0x21, 0x25}, - [SPECIES_ILLUMISE - 1] = {0x20, 0x12, 0x08, 0x1f, 0x20}, - [SPECIES_LILEEP - 1] = {0x1e, 0x11, 0x30, 0x1f, 0x1e}, - [SPECIES_CRADILY - 1] = {0x12, 0x16, 0x28, 0x15, 0x28}, - [SPECIES_ANORITH - 1] = {0x1c, 0x1e, 0x30, 0x1b, 0x2b}, - [SPECIES_ARMALDO - 1] = {0x15, 0x05, 0x28, 0x14, 0x13}, - [SPECIES_RALTS - 1] = {0x1f, 0x17, 0x30, 0x20, 0x23}, - [SPECIES_KIRLIA - 1] = {0x1c, 0x12, 0x30, 0x1f, 0x1e}, - [SPECIES_GARDEVOIR - 1] = {0x35, 0x07, 0x28, 0x32, 0x14}, - [SPECIES_BAGON - 1] = {0x17, 0x13, 0x30, 0x16, 0x26}, - [SPECIES_SHELGON - 1] = {0x19, 0x1b, 0x30, 0x19, 0x2c}, - [SPECIES_SALAMENCE - 1] = {0x09, 0x11, 0x30, 0x0a, 0x21}, - [SPECIES_BELDUM - 1] = {0x16, 0x19, 0x08, 0x18, 0x23}, - [SPECIES_METANG - 1] = {0x22, 0x0f, 0x10, 0x1f, 0x21}, - [SPECIES_METAGROSS - 1] = {0x24, 0x1b, 0x28, 0x22, 0x2b}, - [SPECIES_REGIROCK - 1] = {0x16, 0x07, 0x28, 0x14, 0x12}, - [SPECIES_REGICE - 1] = {0x19, 0x0c, 0x28, 0x17, 0x19}, - [SPECIES_REGISTEEL - 1] = {0x19, 0x0d, 0x28, 0x19, 0x19}, - [SPECIES_KYOGRE - 1] = {0x0e, 0x19, 0x28, 0x0b, 0x26}, - [SPECIES_GROUDON - 1] = {0x04, 0x0b, 0x28, 0x0a, 0x19}, - [SPECIES_RAYQUAZA - 1] = {0x0c, 0x0e, 0x10, 0x0e, 0x1f}, - [SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19}, - [SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d}, - [SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22}, +static const u8 sMonPosAttributes[][PSA_MON_ATTR_COUNT] = { + // TMHM_X, TMHM_Y, Y_OFFSET, ITEM_X, ITEM_Y + [SPECIES_BULBASAUR - 1] = {22, 27, 48, 22, 41}, + [SPECIES_IVYSAUR - 1] = {20, 27, 48, 21, 42}, + [SPECIES_VENUSAUR - 1] = {27, 32, 32, 27, 51}, + [SPECIES_CHARMANDER - 1] = {20, 15, 56, 19, 30}, + [SPECIES_CHARMELEON - 1] = {13, 17, 48, 15, 34}, + [SPECIES_CHARIZARD - 1] = {27, 7, 40, 26, 25}, + [SPECIES_SQUIRTLE - 1] = {25, 19, 48, 26, 34}, + [SPECIES_WARTORTLE - 1] = {22, 19, 48, 23, 33}, + [SPECIES_BLASTOISE - 1] = {18, 8, 40, 21, 25}, + [SPECIES_CATERPIE - 1] = {21, 20, 48, 19, 36}, + [SPECIES_METAPOD - 1] = {19, 29, 48, 24, 42}, + [SPECIES_BUTTERFREE - 1] = {18, 27, 8, 18, 42}, + [SPECIES_WEEDLE - 1] = {22, 28, 48, 21, 43}, + [SPECIES_KAKUNA - 1] = {25, 19, 48, 26, 36}, + [SPECIES_BEEDRILL - 1] = {25, 22, 8, 25, 37}, + [SPECIES_PIDGEY - 1] = {21, 18, 48, 18, 30}, + [SPECIES_PIDGEOTTO - 1] = {36, 14, 48, 31, 30}, + [SPECIES_PIDGEOT - 1] = {12, 19, 8, 10, 35}, + [SPECIES_RATTATA - 1] = {23, 30, 48, 24, 45}, + [SPECIES_RATICATE - 1] = {18, 20, 48, 16, 38}, + [SPECIES_SPEAROW - 1] = {21, 20, 48, 21, 31}, + [SPECIES_FEAROW - 1] = {12, 39, 0, 11, 63}, + [SPECIES_EKANS - 1] = {17, 15, 48, 20, 29}, + [SPECIES_ARBOK - 1] = {27, 1, 40, 29, 16}, + [SPECIES_PIKACHU - 1] = {25, 19, 48, 26, 31}, + [SPECIES_RAICHU - 1] = {25, 20, 40, 28, 34}, + [SPECIES_SANDSHREW - 1] = {23, 22, 48, 24, 37}, + [SPECIES_SANDSLASH - 1] = {17, 19, 40, 19, 34}, + [SPECIES_NIDORAN_F - 1] = {22, 21, 48, 24, 33}, + [SPECIES_NIDORINA - 1] = {31, 23, 48, 30, 40}, + [SPECIES_NIDOQUEEN - 1] = {16, 11, 40, 19, 28}, + [SPECIES_NIDORAN_M - 1] = {21, 34, 40, 21, 49}, + [SPECIES_NIDORINO - 1] = {19, 30, 40, 27, 45}, + [SPECIES_NIDOKING - 1] = {18, 21, 40, 19, 39}, + [SPECIES_CLEFAIRY - 1] = {25, 20, 48, 27, 36}, + [SPECIES_CLEFABLE - 1] = {28, 18, 48, 29, 33}, + [SPECIES_VULPIX - 1] = {16, 22, 48, 14, 37}, + [SPECIES_NINETALES - 1] = {40, 16, 40, 39, 30}, + [SPECIES_JIGGLYPUFF - 1] = {29, 21, 48, 30, 37}, + [SPECIES_WIGGLYTUFF - 1] = {26, 18, 48, 28, 34}, + [SPECIES_ZUBAT - 1] = {20, 29, 8, 20, 41}, + [SPECIES_GOLBAT - 1] = {35, 26, 0, 33, 46}, + [SPECIES_ODDISH - 1] = {29, 32, 40, 29, 43}, + [SPECIES_GLOOM - 1] = {28, 24, 40, 28, 39}, + [SPECIES_VILEPLUME - 1] = {28, 30, 40, 29, 42}, + [SPECIES_PARAS - 1] = {29, 26, 48, 28, 39}, + [SPECIES_PARASECT - 1] = {30, 28, 40, 32, 46}, + [SPECIES_VENONAT - 1] = {27, 22, 16, 26, 41}, + [SPECIES_VENOMOTH - 1] = {18, 25, 8, 22, 39}, + [SPECIES_DIGLETT - 1] = {30, 22, 48, 28, 35}, + [SPECIES_DUGTRIO - 1] = {26, 17, 48, 26, 31}, + [SPECIES_MEOWTH - 1] = {28, 22, 48, 28, 35}, + [SPECIES_PERSIAN - 1] = {19, 19, 48, 19, 33}, + [SPECIES_PSYDUCK - 1] = {28, 19, 48, 23, 41}, + [SPECIES_GOLDUCK - 1] = {23, 18, 40, 23, 34}, + [SPECIES_MANKEY - 1] = {28, 21, 48, 27, 35}, + [SPECIES_PRIMEAPE - 1] = {30, 22, 48, 26, 39}, + [SPECIES_GROWLITHE - 1] = {20, 23, 48, 20, 36}, + [SPECIES_ARCANINE - 1] = {15, 9, 40, 12, 25}, + [SPECIES_POLIWAG - 1] = {21, 20, 48, 19, 31}, + [SPECIES_POLIWHIRL - 1] = {31, 16, 48, 30, 23}, + [SPECIES_POLIWRATH - 1] = {34, 12, 48, 33, 24}, + [SPECIES_ABRA - 1] = {31, 19, 48, 31, 33}, + [SPECIES_KADABRA - 1] = {27, 18, 48, 28, 37}, + [SPECIES_ALAKAZAM - 1] = {28, 17, 40, 29, 38}, + [SPECIES_MACHOP - 1] = {27, 17, 48, 27, 30}, + [SPECIES_MACHOKE - 1] = {29, 17, 48, 29, 31}, + [SPECIES_MACHAMP - 1] = {26, 13, 40, 28, 27}, + [SPECIES_BELLSPROUT - 1] = {21, 14, 48, 14, 28}, + [SPECIES_WEEPINBELL - 1] = {26, 28, 16, 21, 50}, + [SPECIES_VICTREEBEL - 1] = {30, 15, 48, 28, 27}, + [SPECIES_TENTACOOL - 1] = {26, 21, 48, 30, 38}, + [SPECIES_TENTACRUEL - 1] = {27, 16, 40, 28, 38}, + [SPECIES_GEODUDE - 1] = {28, 32, 40, 29, 45}, + [SPECIES_GRAVELER - 1] = {29, 25, 40, 30, 38}, + [SPECIES_GOLEM - 1] = {25, 27, 40, 28, 39}, + [SPECIES_PONYTA - 1] = {15, 17, 48, 14, 35}, + [SPECIES_RAPIDASH - 1] = {47, 15, 40, 43, 30}, + [SPECIES_SLOWPOKE - 1] = {20, 31, 40, 21, 47}, + [SPECIES_SLOWBRO - 1] = {14, 13, 40, 12, 31}, + [SPECIES_MAGNEMITE - 1] = {32, 27, 16, 31, 41}, + [SPECIES_MAGNETON - 1] = {31, 20, 8, 31, 34}, + [SPECIES_FARFETCHD - 1] = {22, 20, 48, 22, 41}, + [SPECIES_DODUO - 1] = {17, 22, 48, 13, 44}, + [SPECIES_DODRIO - 1] = {29, 4, 40, 14, 7}, + [SPECIES_SEEL - 1] = {27, 36, 32, 23, 53}, + [SPECIES_DEWGONG - 1] = {18, 10, 48, 14, 26}, + [SPECIES_GRIMER - 1] = {31, 16, 48, 29, 37}, + [SPECIES_MUK - 1] = {23, 15, 48, 25, 34}, + [SPECIES_SHELLDER - 1] = {26, 24, 48, 23, 41}, + [SPECIES_CLOYSTER - 1] = {25, 30, 40, 29, 44}, + [SPECIES_GASTLY - 1] = {26, 31, 8, 25, 48}, + [SPECIES_HAUNTER - 1] = {32, 20, 8, 29, 38}, + [SPECIES_GENGAR - 1] = {26, 22, 48, 25, 40}, + [SPECIES_ONIX - 1] = {31, 36, 32, 40, 54}, + [SPECIES_DROWZEE - 1] = {26, 14, 48, 26, 30}, + [SPECIES_HYPNO - 1] = {28, 18, 48, 25, 36}, + [SPECIES_KRABBY - 1] = {29, 29, 48, 26, 43}, + [SPECIES_KINGLER - 1] = {30, 31, 40, 28, 48}, + [SPECIES_VOLTORB - 1] = {28, 27, 48, 27, 43}, + [SPECIES_ELECTRODE - 1] = {28, 24, 48, 29, 46}, + [SPECIES_EXEGGCUTE - 1] = {33, 23, 48, 32, 36}, + [SPECIES_EXEGGUTOR - 1] = {28, 23, 40, 27, 37}, + [SPECIES_CUBONE - 1] = {27, 18, 48, 27, 34}, + [SPECIES_MAROWAK - 1] = {20, 15, 48, 17, 35}, + [SPECIES_HITMONLEE - 1] = {46, 17, 48, 40, 34}, + [SPECIES_HITMONCHAN - 1] = {34, 14, 48, 30, 29}, + [SPECIES_LICKITUNG - 1] = {20, 17, 48, 20, 36}, + [SPECIES_KOFFING - 1] = {30, 20, 16, 29, 32}, + [SPECIES_WEEZING - 1] = {17, 13, 16, 15, 28}, + [SPECIES_RHYHORN - 1] = {14, 35, 32, 20, 51}, + [SPECIES_RHYDON - 1] = {13, 18, 40, 23, 34}, + [SPECIES_CHANSEY - 1] = {26, 13, 48, 26, 26}, + [SPECIES_TANGELA - 1] = {28, 24, 48, 29, 41}, + [SPECIES_KANGASKHAN - 1] = {27, 6, 40, 28, 20}, + [SPECIES_HORSEA - 1] = {28, 20, 48, 22, 35}, + [SPECIES_SEADRA - 1] = {16, 23, 48, 9, 42}, + [SPECIES_GOLDEEN - 1] = {22, 35, 32, 21, 52}, + [SPECIES_SEAKING - 1] = {22, 15, 48, 16, 24}, + [SPECIES_STARYU - 1] = {28, 24, 48, 26, 38}, + [SPECIES_STARMIE - 1] = {29, 19, 48, 27, 32}, + [SPECIES_MR_MIME - 1] = {36, 17, 48, 37, 30}, + [SPECIES_SCYTHER - 1] = {16, 25, 40, 18, 39}, + [SPECIES_JYNX - 1] = {27, 15, 48, 25, 28}, + [SPECIES_ELECTABUZZ - 1] = {20, 17, 48, 23, 32}, + [SPECIES_MAGMAR - 1] = {16, 14, 48, 11, 25}, + [SPECIES_PINSIR - 1] = {29, 28, 40, 32, 43}, + [SPECIES_TAUROS - 1] = {17, 29, 40, 19, 46}, + [SPECIES_MAGIKARP - 1] = {22, 21, 48, 19, 35}, + [SPECIES_GYARADOS - 1] = {11, 24, 40, 22, 41}, + [SPECIES_LAPRAS - 1] = {22, 8, 40, 21, 22}, + [SPECIES_DITTO - 1] = {36, 18, 48, 31, 32}, + [SPECIES_EEVEE - 1] = {22, 22, 48, 22, 35}, + [SPECIES_VAPOREON - 1] = {24, 35, 40, 24, 48}, + [SPECIES_JOLTEON - 1] = {20, 27, 48, 22, 40}, + [SPECIES_FLAREON - 1] = {22, 23, 48, 20, 37}, + [SPECIES_PORYGON - 1] = {24, 18, 48, 16, 35}, + [SPECIES_OMANYTE - 1] = {29, 29, 48, 28, 43}, + [SPECIES_OMASTAR - 1] = {22, 26, 48, 25, 45}, + [SPECIES_KABUTO - 1] = {27, 22, 48, 26, 39}, + [SPECIES_KABUTOPS - 1] = {21, 17, 48, 21, 31}, + [SPECIES_AERODACTYL - 1] = {19, 29, 0, 20, 48}, + [SPECIES_SNORLAX - 1] = {53, 9, 48, 46, 20}, + [SPECIES_ARTICUNO - 1] = {24, 11, 24, 23, 23}, + [SPECIES_ZAPDOS - 1] = {14, 14, 16, 4, 40}, + [SPECIES_MOLTRES - 1] = {11, 42, 8, 11, 56}, + [SPECIES_DRATINI - 1] = {13, 18, 48, 11, 33}, + [SPECIES_DRAGONAIR - 1] = {24, 14, 48, 19, 28}, + [SPECIES_DRAGONITE - 1] = {27, 7, 24, 25, 23}, + [SPECIES_MEWTWO - 1] = {43, 9, 40, 44, 24}, + [SPECIES_MEW - 1] = {25, 20, 16, 31, 33}, + [SPECIES_CHIKORITA - 1] = {27, 23, 48, 27, 36}, + [SPECIES_BAYLEEF - 1] = {29, 16, 48, 32, 29}, + [SPECIES_MEGANIUM - 1] = { 5, 13, 40, 13, 27}, + [SPECIES_CYNDAQUIL - 1] = {17, 27, 48, 20, 39}, + [SPECIES_QUILAVA - 1] = {37, 24, 48, 39, 38}, + [SPECIES_TYPHLOSION - 1] = { 9, 16, 40, 16, 28}, + [SPECIES_TOTODILE - 1] = {22, 16, 48, 25, 32}, + [SPECIES_CROCONAW - 1] = {22, 16, 48, 24, 33}, + [SPECIES_FERALIGATR - 1] = {14, 10, 40, 8, 26}, + [SPECIES_SENTRET - 1] = {30, 10, 48, 29, 21}, + [SPECIES_FURRET - 1] = {33, 14, 48, 33, 25}, + [SPECIES_HOOTHOOT - 1] = {29, 21, 48, 28, 36}, + [SPECIES_NOCTOWL - 1] = {25, 14, 48, 24, 28}, + [SPECIES_LEDYBA - 1] = {27, 21, 48, 28, 36}, + [SPECIES_LEDIAN - 1] = {24, 18, 16, 28, 33}, + [SPECIES_SPINARAK - 1] = {32, 32, 40, 32, 45}, + [SPECIES_ARIADOS - 1] = {23, 35, 40, 21, 48}, + [SPECIES_CROBAT - 1] = {34, 30, 8, 35, 43}, + [SPECIES_CHINCHOU - 1] = {31, 29, 48, 31, 41}, + [SPECIES_LANTURN - 1] = {16, 35, 40, 25, 51}, + [SPECIES_PICHU - 1] = {30, 23, 48, 30, 36}, + [SPECIES_CLEFFA - 1] = {28, 24, 48, 30, 38}, + [SPECIES_IGGLYBUFF - 1] = {31, 25, 48, 31, 36}, + [SPECIES_TOGEPI - 1] = {33, 21, 48, 31, 32}, + [SPECIES_TOGETIC - 1] = {27, 16, 48, 28, 28}, + [SPECIES_NATU - 1] = {28, 23, 48, 21, 33}, + [SPECIES_XATU - 1] = {27, 8, 48, 25, 20}, + [SPECIES_MAREEP - 1] = {22, 21, 48, 21, 36}, + [SPECIES_FLAAFFY - 1] = {25, 18, 48, 24, 33}, + [SPECIES_AMPHAROS - 1] = {15, 10, 48, 16, 27}, + [SPECIES_BELLOSSOM - 1] = {31, 19, 48, 31, 32}, + [SPECIES_MARILL - 1] = {29, 21, 48, 29, 34}, + [SPECIES_AZUMARILL - 1] = {26, 18, 48, 23, 31}, + [SPECIES_SUDOWOODO - 1] = {32, 16, 48, 32, 31}, + [SPECIES_POLITOED - 1] = {29, 15, 48, 30, 32}, + [SPECIES_HOPPIP - 1] = {35, 37, 8, 37, 51}, + [SPECIES_SKIPLOOM - 1] = {30, 24, 8, 28, 39}, + [SPECIES_JUMPLUFF - 1] = {29, 33, 8, 32, 47}, + [SPECIES_AIPOM - 1] = {30, 41, 24, 30, 53}, + [SPECIES_SUNKERN - 1] = {31, 32, 8, 36, 46}, + [SPECIES_SUNFLORA - 1] = {28, 12, 48, 27, 25}, + [SPECIES_YANMA - 1] = {27, 40, 8, 22, 53}, + [SPECIES_WOOPER - 1] = {29, 19, 48, 31, 33}, + [SPECIES_QUAGSIRE - 1] = {21, 9, 48, 18, 24}, + [SPECIES_ESPEON - 1] = {17, 27, 48, 17, 41}, + [SPECIES_UMBREON - 1] = {35, 21, 48, 35, 34}, + [SPECIES_MURKROW - 1] = {36, 19, 48, 32, 34}, + [SPECIES_SLOWKING - 1] = {30, 19, 40, 29, 37}, + [SPECIES_MISDREAVUS - 1] = {40, 33, 8, 38, 46}, + [SPECIES_UNOWN - 1] = {32, 23, 8, 31, 33}, + [SPECIES_WOBBUFFET - 1] = {29, 9, 48, 29, 26}, + [SPECIES_GIRAFARIG - 1] = {11, 13, 40, 17, 29}, + [SPECIES_PINECO - 1] = {29, 18, 16, 25, 37}, + [SPECIES_FORRETRESS - 1] = {25, 23, 8, 30, 38}, + [SPECIES_DUNSPARCE - 1] = {16, 27, 48, 12, 45}, + [SPECIES_GLIGAR - 1] = {30, 19, 8, 29, 35}, + [SPECIES_STEELIX - 1] = {12, 13, 40, 13, 28}, + [SPECIES_SNUBBULL - 1] = {27, 21, 48, 26, 35}, + [SPECIES_GRANBULL - 1] = {28, 9, 48, 25, 24}, + [SPECIES_QWILFISH - 1] = {31, 38, 32, 29, 51}, + [SPECIES_SCIZOR - 1] = {21, 15, 16, 26, 26}, + [SPECIES_SHUCKLE - 1] = {37, 10, 48, 36, 24}, + [SPECIES_HERACROSS - 1] = {24, 25, 40, 26, 38}, + [SPECIES_SNEASEL - 1] = {28, 19, 48, 29, 36}, + [SPECIES_TEDDIURSA - 1] = {30, 18, 48, 27, 35}, + [SPECIES_URSARING - 1] = {30, 4, 40, 29, 20}, + [SPECIES_SLUGMA - 1] = {32, 24, 48, 32, 40}, + [SPECIES_MAGCARGO - 1] = {22, 17, 48, 23, 35}, + [SPECIES_SWINUB - 1] = {28, 24, 48, 27, 37}, + [SPECIES_PILOSWINE - 1] = {24, 35, 32, 24, 54}, + [SPECIES_CORSOLA - 1] = {25, 29, 40, 25, 43}, + [SPECIES_REMORAID - 1] = {21, 31, 40, 19, 43}, + [SPECIES_OCTILLERY - 1] = {28, 17, 48, 26, 32}, + [SPECIES_DELIBIRD - 1] = {29, 17, 48, 27, 31}, + [SPECIES_MANTINE - 1] = {22, 30, 40, 31, 39}, + [SPECIES_SKARMORY - 1] = {30, 0, 40, 19, 7}, + [SPECIES_HOUNDOUR - 1] = {37, 17, 48, 37, 31}, + [SPECIES_HOUNDOOM - 1] = {13, 19, 48, 13, 36}, + [SPECIES_KINGDRA - 1] = {14, 19, 40, 10, 44}, + [SPECIES_PHANPY - 1] = {27, 17, 48, 25, 36}, + [SPECIES_DONPHAN - 1] = {17, 21, 48, 25, 44}, + [SPECIES_PORYGON2 - 1] = {24, 17, 48, 17, 32}, + [SPECIES_STANTLER - 1] = {21, 21, 40, 23, 40}, + [SPECIES_SMEARGLE - 1] = {24, 16, 48, 27, 37}, + [SPECIES_TYROGUE - 1] = {30, 18, 48, 31, 31}, + [SPECIES_HITMONTOP - 1] = {26, 57, 16, 26, 43}, + [SPECIES_SMOOCHUM - 1] = {32, 24, 48, 33, 38}, + [SPECIES_ELEKID - 1] = {29, 20, 48, 29, 35}, + [SPECIES_MAGBY - 1] = {28, 21, 48, 26, 36}, + [SPECIES_MILTANK - 1] = {24, 14, 48, 24, 30}, + [SPECIES_BLISSEY - 1] = {29, 9, 48, 29, 25}, + [SPECIES_RAIKOU - 1] = {41, 12, 40, 39, 30}, + [SPECIES_ENTEI - 1] = { 8, 9, 40, 11, 24}, + [SPECIES_SUICUNE - 1] = {35, 29, 40, 38, 44}, + [SPECIES_LARVITAR - 1] = {28, 24, 48, 26, 36}, + [SPECIES_PUPITAR - 1] = {27, 25, 48, 27, 40}, + [SPECIES_TYRANITAR - 1] = { 6, 11, 40, 13, 25}, + [SPECIES_LUGIA - 1] = { 8, 42, 8, 20, 52}, + [SPECIES_HO_OH - 1] = {13, 37, 8, 14, 52}, + [SPECIES_CELEBI - 1] = {21, 33, 8, 26, 43}, + [SPECIES_OLD_UNOWN_B - 1] = {31, 18, 8, 30, 28}, + [SPECIES_OLD_UNOWN_C - 1] = {32, 23, 8, 31, 33}, + [SPECIES_OLD_UNOWN_D - 1] = {28, 25, 8, 27, 35}, + [SPECIES_OLD_UNOWN_E - 1] = {33, 25, 8, 32, 35}, + [SPECIES_OLD_UNOWN_F - 1] = {27, 19, 8, 26, 29}, + [SPECIES_OLD_UNOWN_G - 1] = {32, 22, 8, 31, 33}, + [SPECIES_OLD_UNOWN_H - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_I - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_J - 1] = {32, 22, 8, 31, 32}, + [SPECIES_OLD_UNOWN_K - 1] = {29, 26, 8, 28, 36}, + [SPECIES_OLD_UNOWN_L - 1] = {32, 22, 8, 31, 31}, + [SPECIES_OLD_UNOWN_M - 1] = {32, 28, 8, 31, 38}, + [SPECIES_OLD_UNOWN_N - 1] = {32, 26, 8, 31, 35}, + [SPECIES_OLD_UNOWN_O - 1] = {32, 26, 8, 31, 35}, + [SPECIES_OLD_UNOWN_P - 1] = {32, 22, 8, 31, 32}, + [SPECIES_OLD_UNOWN_Q - 1] = {29, 22, 8, 28, 32}, + [SPECIES_OLD_UNOWN_R - 1] = {32, 21, 8, 31, 31}, + [SPECIES_OLD_UNOWN_S - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_T - 1] = {32, 30, 8, 31, 40}, + [SPECIES_OLD_UNOWN_U - 1] = {32, 23, 8, 31, 33}, + [SPECIES_OLD_UNOWN_V - 1] = {30, 30, 8, 29, 40}, + [SPECIES_OLD_UNOWN_W - 1] = {32, 29, 8, 31, 39}, + [SPECIES_OLD_UNOWN_X - 1] = {32, 25, 8, 31, 35}, + [SPECIES_OLD_UNOWN_Y - 1] = {32, 21, 8, 31, 31}, + [SPECIES_OLD_UNOWN_Z - 1] = {32, 25, 8, 31, 35}, + [SPECIES_TREECKO - 1] = {26, 15, 48, 25, 32}, + [SPECIES_GROVYLE - 1] = {13, 5, 16, 5, 19}, + [SPECIES_SCEPTILE - 1] = {16, 4, 40, 12, 18}, + [SPECIES_TORCHIC - 1] = {23, 24, 48, 21, 37}, + [SPECIES_COMBUSKEN - 1] = {32, 18, 40, 30, 32}, + [SPECIES_BLAZIKEN - 1] = {26, 7, 40, 29, 19}, + [SPECIES_MUDKIP - 1] = {27, 29, 40, 25, 44}, + [SPECIES_MARSHTOMP - 1] = {29, 17, 48, 28, 32}, + [SPECIES_SWAMPERT - 1] = {27, 17, 40, 27, 35}, + [SPECIES_POOCHYENA - 1] = {20, 18, 48, 15, 32}, + [SPECIES_MIGHTYENA - 1] = { 9, 13, 40, 9, 28}, + [SPECIES_ZIGZAGOON - 1] = {11, 26, 48, 9, 43}, + [SPECIES_LINOONE - 1] = {13, 40, 24, 11, 55}, + [SPECIES_WURMPLE - 1] = {33, 23, 48, 31, 38}, + [SPECIES_SILCOON - 1] = {19, 28, 48, 17, 42}, + [SPECIES_BEAUTIFLY - 1] = {15, 27, 8, 14, 40}, + [SPECIES_CASCOON - 1] = {20, 29, 48, 17, 44}, + [SPECIES_DUSTOX - 1] = {20, 25, 8, 22, 38}, + [SPECIES_LOTAD - 1] = {25, 37, 40, 23, 50}, + [SPECIES_LOMBRE - 1] = {34, 16, 48, 41, 29}, + [SPECIES_LUDICOLO - 1] = {28, 15, 40, 27, 36}, + [SPECIES_SEEDOT - 1] = {27, 23, 48, 24, 40}, + [SPECIES_NUZLEAF - 1] = {32, 13, 48, 26, 29}, + [SPECIES_SHIFTRY - 1] = {50, 17, 40, 46, 35}, + [SPECIES_NINCADA - 1] = {24, 26, 48, 23, 40}, + [SPECIES_NINJASK - 1] = {23, 33, 0, 23, 47}, + [SPECIES_SHEDINJA - 1] = {22, 25, 8, 24, 42}, + [SPECIES_TAILLOW - 1] = {23, 16, 48, 20, 30}, + [SPECIES_SWELLOW - 1] = {12, 10, 40, 5, 22}, + [SPECIES_SHROOMISH - 1] = {31, 22, 48, 29, 35}, + [SPECIES_BRELOOM - 1] = {37, 12, 48, 35, 25}, + [SPECIES_SPINDA - 1] = {33, 22, 48, 31, 39}, + [SPECIES_WINGULL - 1] = {26, 22, 16, 21, 38}, + [SPECIES_PELIPPER - 1] = {29, 10, 16, 9, 27}, + [SPECIES_SURSKIT - 1] = {29, 22, 48, 28, 37}, + [SPECIES_MASQUERAIN - 1] = {26, 33, 8, 20, 48}, + [SPECIES_WAILMER - 1] = {23, 23, 48, 22, 40}, + [SPECIES_WAILORD - 1] = {23, 3, 48, 9, 19}, + [SPECIES_SKITTY - 1] = {36, 26, 48, 34, 42}, + [SPECIES_DELCATTY - 1] = {30, 18, 48, 28, 33}, + [SPECIES_KECLEON - 1] = {25, 16, 48, 19, 30}, + [SPECIES_BALTOY - 1] = {29, 21, 48, 27, 34}, + [SPECIES_CLAYDOL - 1] = {30, 13, 40, 29, 36}, + [SPECIES_NOSEPASS - 1] = {31, 16, 48, 21, 35}, + [SPECIES_TORKOAL - 1] = {14, 25, 40, 10, 39}, + [SPECIES_SABLEYE - 1] = {30, 22, 48, 29, 39}, + [SPECIES_BARBOACH - 1] = {23, 18, 48, 21, 30}, + [SPECIES_WHISCASH - 1] = {24, 32, 40, 23, 49}, + [SPECIES_LUVDISC - 1] = {25, 15, 48, 19, 28}, + [SPECIES_CORPHISH - 1] = {31, 20, 48, 29, 35}, + [SPECIES_CRAWDAUNT - 1] = {20, 12, 40, 24, 35}, + [SPECIES_FEEBAS - 1] = {24, 30, 40, 22, 47}, + [SPECIES_MILOTIC - 1] = {32, 12, 40, 31, 29}, + [SPECIES_CARVANHA - 1] = {22, 25, 48, 19, 34}, + [SPECIES_SHARPEDO - 1] = {25, 12, 40, 23, 39}, + [SPECIES_TRAPINCH - 1] = {41, 19, 48, 23, 24}, + [SPECIES_VIBRAVA - 1] = {16, 39, 32, 14, 52}, + [SPECIES_FLYGON - 1] = {34, 7, 16, 33, 19}, + [SPECIES_MAKUHITA - 1] = {34, 19, 48, 28, 35}, + [SPECIES_HARIYAMA - 1] = {36, 15, 40, 38, 28}, + [SPECIES_ELECTRIKE - 1] = {17, 24, 48, 20, 39}, + [SPECIES_MANECTRIC - 1] = {47, 24, 40, 46, 41}, + [SPECIES_NUMEL - 1] = {16, 26, 48, 13, 42}, + [SPECIES_CAMERUPT - 1] = {13, 34, 40, 14, 54}, + [SPECIES_SPHEAL - 1] = {30, 15, 48, 24, 31}, + [SPECIES_SEALEO - 1] = {28, 9, 48, 26, 24}, + [SPECIES_WALREIN - 1] = {25, 1, 40, 16, 22}, + [SPECIES_CACNEA - 1] = {31, 23, 48, 29, 41}, + [SPECIES_CACTURNE - 1] = {29, 14, 40, 29, 27}, + [SPECIES_SNORUNT - 1] = {30, 22, 48, 30, 38}, + [SPECIES_GLALIE - 1] = {26, 28, 8, 26, 49}, + [SPECIES_LUNATONE - 1] = {28, 22, 8, 25, 44}, + [SPECIES_SOLROCK - 1] = {24, 24, 16, 23, 49}, + [SPECIES_AZURILL - 1] = {27, 16, 48, 24, 31}, + [SPECIES_SPOINK - 1] = {33, 20, 48, 27, 40}, + [SPECIES_GRUMPIG - 1] = {20, 16, 48, 21, 32}, + [SPECIES_PLUSLE - 1] = {28, 22, 8, 29, 37}, + [SPECIES_MINUN - 1] = {33, 22, 8, 31, 38}, + [SPECIES_MAWILE - 1] = {45, 20, 48, 47, 36}, + [SPECIES_MEDITITE - 1] = {31, 23, 48, 30, 37}, + [SPECIES_MEDICHAM - 1] = {33, 15, 40, 30, 29}, + [SPECIES_SWABLU - 1] = {27, 22, 16, 23, 35}, + [SPECIES_ALTARIA - 1] = {29, 11, 16, 26, 26}, + [SPECIES_WYNAUT - 1] = {26, 21, 48, 27, 38}, + [SPECIES_DUSKULL - 1] = {16, 24, 8, 20, 46}, + [SPECIES_DUSCLOPS - 1] = {28, 15, 48, 26, 40}, + [SPECIES_ROSELIA - 1] = {30, 17, 48, 29, 32}, + [SPECIES_SLAKOTH - 1] = {25, 30, 48, 24, 47}, + [SPECIES_VIGOROTH - 1] = {16, 18, 40, 20, 36}, + [SPECIES_SLAKING - 1] = {55, 15, 48, 41, 33}, + [SPECIES_GULPIN - 1] = {27, 24, 48, 23, 38}, + [SPECIES_SWALOT - 1] = {31, 6, 48, 21, 19}, + [SPECIES_TROPIUS - 1] = {24, 10, 40, 32, 24}, + [SPECIES_WHISMUR - 1] = {31, 25, 48, 29, 41}, + [SPECIES_LOUDRED - 1] = {28, 18, 40, 34, 39}, + [SPECIES_EXPLOUD - 1] = {16, 16, 40, 26, 42}, + [SPECIES_CLAMPERL - 1] = {32, 26, 48, 30, 38}, + [SPECIES_HUNTAIL - 1] = {19, 30, 40, 21, 51}, + [SPECIES_GOREBYSS - 1] = {13, 31, 40, 3, 50}, + [SPECIES_ABSOL - 1] = {42, 17, 40, 42, 34}, + [SPECIES_SHUPPET - 1] = {22, 25, 8, 23, 39}, + [SPECIES_BANETTE - 1] = {28, 20, 8, 27, 35}, + [SPECIES_SEVIPER - 1] = {14, 13, 48, 11, 30}, + [SPECIES_ZANGOOSE - 1] = {24, 12, 40, 21, 26}, + [SPECIES_RELICANTH - 1] = {12, 31, 48, 9, 45}, + [SPECIES_ARON - 1] = {24, 28, 48, 26, 44}, + [SPECIES_LAIRON - 1] = {11, 33, 48, 18, 47}, + [SPECIES_AGGRON - 1] = {16, 11, 40, 22, 27}, + [SPECIES_CASTFORM - 1] = {29, 24, 8, 27, 38}, + [SPECIES_VOLBEAT - 1] = {37, 21, 8, 33, 37}, + [SPECIES_ILLUMISE - 1] = {32, 18, 8, 31, 32}, + [SPECIES_LILEEP - 1] = {30, 17, 48, 31, 30}, + [SPECIES_CRADILY - 1] = {18, 22, 40, 21, 40}, + [SPECIES_ANORITH - 1] = {28, 30, 48, 27, 43}, + [SPECIES_ARMALDO - 1] = {21, 5, 40, 20, 19}, + [SPECIES_RALTS - 1] = {31, 23, 48, 32, 35}, + [SPECIES_KIRLIA - 1] = {28, 18, 48, 31, 30}, + [SPECIES_GARDEVOIR - 1] = {53, 7, 40, 50, 20}, + [SPECIES_BAGON - 1] = {23, 19, 48, 22, 38}, + [SPECIES_SHELGON - 1] = {25, 27, 48, 25, 44}, + [SPECIES_SALAMENCE - 1] = { 9, 17, 48, 10, 33}, + [SPECIES_BELDUM - 1] = {22, 25, 8, 24, 35}, + [SPECIES_METANG - 1] = {34, 15, 16, 31, 33}, + [SPECIES_METAGROSS - 1] = {36, 27, 40, 34, 43}, + [SPECIES_REGIROCK - 1] = {22, 7, 40, 20, 18}, + [SPECIES_REGICE - 1] = {25, 12, 40, 23, 25}, + [SPECIES_REGISTEEL - 1] = {25, 13, 40, 25, 25}, + [SPECIES_KYOGRE - 1] = {14, 25, 40, 11, 38}, + [SPECIES_GROUDON - 1] = { 4, 11, 40, 10, 25}, + [SPECIES_RAYQUAZA - 1] = {12, 14, 16, 14, 31}, + [SPECIES_LATIAS - 1] = {30, 12, 16, 35, 25}, + [SPECIES_LATIOS - 1] = { 5, 14, 16, 5, 29}, + [SPECIES_JIRACHI - 1] = {28, 21, 8, 30, 34}, #if defined(FIRERED) - [SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16}, + [SPECIES_DEOXYS - 1] = {27, 8, 40, 28, 22}, #elif defined(LEAFGREEN) - [SPECIES_DEOXYS - 1] = {0x1a, 0x09, 0x28, 0x1a, 0x17}, + [SPECIES_DEOXYS - 1] = {26, 9, 40, 26, 23}, #endif - [SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a}, - [SPECIES_OLD_UNOWN_EMARK - 1] = {0x20, 0x21, 0x08, 0x20, 0x2b}, - [SPECIES_OLD_UNOWN_QMARK - 1] = {0x20, 0x23, 0x08, 0x20, 0x2d} + [SPECIES_CHIMECHO - 1] = {29, 12, 8, 28, 26}, + [SPECIES_OLD_UNOWN_EMARK - 1] = {32, 33, 8, 32, 43}, + [SPECIES_OLD_UNOWN_QMARK - 1] = {32, 35, 8, 32, 45} }; void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 x, u8 y, const u8 * color, s8 speed, const u8 * str) @@ -634,7 +636,7 @@ static void Task_SmoothBlendLayers(u8 taskId) } } -u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2) +u8 Menu2_GetMonPosAttribute(u16 species, u32 personality, u8 attributeId) { if (species == SPECIES_UNOWN) { @@ -654,16 +656,16 @@ u8 Menu2_GetMonSpriteAnchorCoord(u16 species, u32 personality, u8 a2) break; } } - if (species != SPECIES_NONE && a2 < 5) + if (species != SPECIES_NONE && attributeId < PSA_MON_ATTR_COUNT) { species--; - if (sMonSpriteAnchorCoords[species][a2] != 0xFF) - return sMonSpriteAnchorCoords[species][a2]; + if (sMonPosAttributes[species][attributeId] != 0xFF) + return sMonPosAttributes[species][attributeId]; } return 32; } -s8 Menu2_GetMonSpriteAnchorCoordMinusx20(u16 species, u32 personality, u8 a2) +s8 Menu2_GetStarSpritePosAttribute(u16 species, u32 personality, u8 attributeId) { - return Menu2_GetMonSpriteAnchorCoord(species, personality, a2) - 32; + return Menu2_GetMonPosAttribute(species, personality, attributeId) - 32; } diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 0c9800146..77c032c1b 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -27,7 +27,7 @@ EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {}; EWRAM_DATA bool8 gGiftIsFromEReader = FALSE; static void CreateMysteryGiftTask(void); -static void Task_MysteryGift(u8 taskId); +void Task_MysteryGift(u8 taskId); extern void CreateEReaderTask(void); static const u16 sTextboxBorder_Pal[] = INCBIN_U16("graphics/interface/mystery_gift_textbox_border.gbapal"); @@ -1110,7 +1110,7 @@ static void CreateMysteryGiftTask(void) data->clientMsg = AllocZeroed(CLIENT_MAX_MSG_SIZE); } -static void Task_MysteryGift(u8 taskId) +void Task_MysteryGift(u8 taskId) { struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data; bool32 successMsg, input; diff --git a/src/naming_screen.c b/src/naming_screen.c index c9d003a97..deef7054a 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -24,6 +24,7 @@ #include "constants/help_system.h" #include "constants/songs.h" #include "constants/event_objects.h" +#include "sloopsvc.h" enum { INPUT_NONE, @@ -680,7 +681,15 @@ static bool8 MainState_MoveToOKButton(void) static bool8 MainState_PressedOKButton(void) { +#if REVISION >= 0xA + // If the input text matched against the Switch bad words list, do not use it. + if (!svc_BadWordCheck(sNamingScreen->textBuffer)) + { + SaveInputText(); + } +#else SaveInputText(); +#endif SetInputState(INPUT_STATE_DISABLED); SetCursorFlashing(FALSE); TryStartButtonFlash(BUTTON_COUNT, FALSE, TRUE); diff --git a/src/overworld.c b/src/overworld.c index 1b81b360c..339014da4 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -59,15 +59,20 @@ #define PLAYER_LINK_STATE_READY 0x82 #define PLAYER_LINK_STATE_EXITING_ROOM 0x83 -#define FACING_NONE 0 -#define FACING_UP 1 -#define FACING_DOWN 2 -#define FACING_LEFT 3 -#define FACING_RIGHT 4 -#define FACING_FORCED_UP 7 -#define FACING_FORCED_DOWN 8 -#define FACING_FORCED_LEFT 9 -#define FACING_FORCED_RIGHT 10 +enum LinkFacing +{ + FACING_NONE, + FACING_UP, + FACING_DOWN, + FACING_LEFT, + FACING_RIGHT, + FACING_UNUSED1, + FACING_UNUSED2, + FACING_FORCED_UP, + FACING_FORCED_DOWN, + FACING_FORCED_LEFT, + FACING_FORCED_RIGHT, +}; typedef u16 (*KeyInterCB)(u32 key); @@ -1278,7 +1283,7 @@ static const int sUnusedData[] = { 44 }; -const struct Coords32 gDirectionToVectors[] = +const struct Coords32 gDirectionToVectors[] = { [DIR_NONE] = { 0, 0}, [DIR_SOUTH] = { 0, 1}, @@ -1512,6 +1517,13 @@ static bool8 RunFieldCallback(void) return TRUE; } +#if REVISION >= 0xA +void ClearFieldCallback(void) +{ + gFieldCallback = NULL; +} +#endif + void CB2_NewGame(void) { FieldClearVBlankHBlankCallbacks(); @@ -2545,21 +2557,17 @@ static u8 (*const sLinkPlayerMovementModes[])(struct LinkPlayerObjectEvent *, st // These handlers return TRUE if the movement was scripted and successful, and FALSE otherwise. static bool8 (*const sLinkPlayerFacingHandlers[])(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8) = { - [DIR_NONE] = FacingHandler_DoNothing, - [DIR_SOUTH] = FacingHandler_DpadMovement, - [DIR_NORTH] = FacingHandler_DpadMovement, - [DIR_WEST] = FacingHandler_DpadMovement, - [DIR_EAST] = FacingHandler_DpadMovement, -}; - -static bool8 (*const sUnusedLinkPlayerFacingHandlers[])(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8) = -{ - FacingHandler_DoNothing, - FacingHandler_DoNothing, - FacingHandler_ForcedFacingChange, - FacingHandler_ForcedFacingChange, - FacingHandler_ForcedFacingChange, - FacingHandler_ForcedFacingChange, + [FACING_NONE] = FacingHandler_DoNothing, + [FACING_UP] = FacingHandler_DpadMovement, + [FACING_DOWN] = FacingHandler_DpadMovement, + [FACING_LEFT] = FacingHandler_DpadMovement, + [FACING_RIGHT] = FacingHandler_DpadMovement, + [FACING_UNUSED1] = FacingHandler_DoNothing, + [FACING_UNUSED2] = FacingHandler_DoNothing, + [FACING_FORCED_UP] = FacingHandler_ForcedFacingChange, + [FACING_FORCED_DOWN] = FacingHandler_ForcedFacingChange, + [FACING_FORCED_LEFT] = FacingHandler_ForcedFacingChange, + [FACING_FORCED_RIGHT] = FacingHandler_ForcedFacingChange, }; // These handlers are run after an attempted movement. @@ -3059,7 +3067,8 @@ static bool32 CanCableClubPlayerPressStart(struct CableClubPlayer *player) static const u8 *TryGetTileEventScript(struct CableClubPlayer *player) { if (player->movementMode != MOVEMENT_MODE_SCRIPTED) - return FACING_NONE; + return NULL; + return GetCoordEventScriptAtMapPosition(&player->pos); } @@ -3081,7 +3090,7 @@ static const u8 *TryInteractWithPlayer(struct CableClubPlayer *player) u8 linkPlayerId; if (player->movementMode != MOVEMENT_MODE_FREE && player->movementMode != MOVEMENT_MODE_SCRIPTED) - return FACING_NONE; + return NULL; otherPlayerPos = player->pos; otherPlayerPos.x += gDirectionToVectors[player->facing].x; diff --git a/src/pokemon_special_anim.c b/src/pokemon_special_anim.c index bf56a5c21..e1c344ef8 100644 --- a/src/pokemon_special_anim.c +++ b/src/pokemon_special_anim.c @@ -5,6 +5,7 @@ #include "pokemon_special_anim_internal.h" #include "item_use.h" #include "task.h" +#include "constants/pokemon_special_anim.h" #include "constants/songs.h" #include "constants/items.h" @@ -86,7 +87,7 @@ static struct PokemonSpecialAnim * AllocPSA(u8 slotId, u16 itemId, MainCallback ptr->pokemon = *pokemon; ptr->field_00a4 = 0; GetMonData(pokemon, MON_DATA_NICKNAME, ptr->nickname); - if (ptr->animType == 4) + if (ptr->animType == PSA_ITEM_ANIM_TYPE_TMHM) { moveId = ItemIdToBattleMoveId(itemId); StringCopy(ptr->nameOfMoveToTeach, gMoveNames[moveId]); @@ -122,12 +123,12 @@ static void SetUpUseItemAnim_Normal(struct PokemonSpecialAnim * ptr) u8 taskId; switch (ptr->animType) { - case 0: - case 1: - case 3: + case PSA_ITEM_ANIM_TYPE_DEFAULT: + case PSA_ITEM_ANIM_TYPE_POTION: + case PSA_ITEM_ANIM_TYPE_UNUSED2: taskId = CreateTask(Task_UseItem_Normal, 0); break; - case 4: + case PSA_ITEM_ANIM_TYPE_TMHM: taskId = CreateTask(Task_UseTM_NoForget, 0); break; default: @@ -602,8 +603,8 @@ static const struct { u16 itemId; u16 animType; } sItemAnimMap[2] = { - {ITEM_RARE_CANDY, 0}, - {ITEM_POTION, 1} + {ITEM_RARE_CANDY, PSA_ITEM_ANIM_TYPE_DEFAULT}, + {ITEM_POTION, PSA_ITEM_ANIM_TYPE_POTION} }; static u16 GetAnimTypeByItemId(u16 itemId) @@ -618,10 +619,10 @@ static u16 GetAnimTypeByItemId(u16 itemId) if (itemId >= ITEM_TM01 && itemId <= ITEM_HM08) { - return 4; + return PSA_ITEM_ANIM_TYPE_TMHM; } - return 0; + return PSA_ITEM_ANIM_TYPE_DEFAULT; } static u8 GetClosenessFromFriendship(u16 friendship) diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index 164d936a1..bdb070c96 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -12,6 +12,8 @@ #include "strings.h" #include "text_window.h" #include "trig.h" +#include "constants/menu.h" +#include "constants/pokemon_special_anim.h" #include "constants/songs.h" static void LoadBgGfxByAnimType(u16 animType); @@ -635,7 +637,7 @@ static void LoadBgGfxByAnimType(u16 animType) { CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0x000); DecompressAndCopyTileDataToVram(3, sBg_Gfx, 0, 0x000, 0); - if (animType != 4) + if (animType != PSA_ITEM_ANIM_TYPE_TMHM) LoadPalette(sBg_Pal, BG_PLTT_ID(0), sizeof(sBg_Pal)); else LoadPalette(sBg_TmHm_Pal, BG_PLTT_ID(0), sizeof(sBg_TmHm_Pal)); @@ -647,31 +649,31 @@ void PSA_CreateMonSpriteAtCloseness(u8 closeness) struct Pokemon * pokemon = PSA_GetPokemon(); u16 species = GetMonData(pokemon, MON_DATA_SPECIES); u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY); - u8 r1 = Menu2_GetMonSpriteAnchorCoord(species, personality, 2); - void *r6; - void *r9; - void *r4; + u8 yOffset = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_Y_OFFSET); + void *monPicBuffer; + void *unusedBuffer; + void *monPalBuffer; u8 spriteId; - if (r1 != 0xFF) + if (yOffset != 0xFF) { - scene->monSpriteY1 = 0x48; - scene->monSpriteY2 = r1 + 0x30; + scene->monSpriteY1 = 72; + scene->monSpriteY2 = yOffset + 48; } else { - scene->monSpriteY1 = 0x48; - scene->monSpriteY2 = 0x60; + scene->monSpriteY1 = 72; + scene->monSpriteY2 = 96; } - r6 = Alloc(0x2000); - r9 = Alloc(0x2000); - r4 = Alloc(0x100); - if (r6 != NULL && r9 != NULL && r4 != NULL) + monPicBuffer = Alloc(MON_PIC_SIZE * MAX_MON_PIC_FRAMES); + unusedBuffer = Alloc(0x2000); + monPalBuffer = Alloc(0x100); + if (monPicBuffer != NULL && unusedBuffer != NULL && monPalBuffer != NULL) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], r6, species, personality); - LZ77UnCompWram(GetMonFrontSpritePal(pokemon), r4); - LoadMonSpriteGraphics(r6, r4); + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], monPicBuffer, species, personality); + LZ77UnCompWram(GetMonFrontSpritePal(pokemon), monPalBuffer); + LoadMonSpriteGraphics(monPicBuffer, monPalBuffer); spriteId = CreateSprite(&sSpriteTemplate_MonSprite, 120, scene->monSpriteY1, 4); if (spriteId != MAX_SPRITES) { @@ -682,9 +684,9 @@ void PSA_CreateMonSpriteAtCloseness(u8 closeness) scene->monSprite = NULL; scene->lastCloseness = closeness; } - if (r6 != NULL) Free(r6); - if (r9 != NULL) Free(r9); - if (r4 != NULL) Free(r4); + if (monPicBuffer != NULL) Free(monPicBuffer); + if (unusedBuffer != NULL) Free(unusedBuffer); + if (monPalBuffer != NULL) Free(monPalBuffer); } #define tState data[0] @@ -842,7 +844,7 @@ static void LoadMonSpriteGraphics(u16 *tiles, u16 *palette) struct SpritePalette spritePalette; spriteSheet.data = tiles; - spriteSheet.size = 0x800; + spriteSheet.size = MON_PIC_SIZE; spriteSheet.tag = 0; spritePalette.data = palette; spritePalette.tag = 0; @@ -1062,10 +1064,10 @@ static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, stru personality = PSA_GetMonPersonality(); switch (PSA_GetAnimType()) { - case 4: + case PSA_ITEM_ANIM_TYPE_TMHM: { - x = Menu2_GetMonSpriteAnchorCoord(species, personality, 0); - y = Menu2_GetMonSpriteAnchorCoord(species, personality, 1); + x = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_TMHM_X_POS); + y = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_TMHM_Y_POS); if (x == 0xFF) x = 0; if (y == 0xFF) @@ -1076,8 +1078,8 @@ static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, stru } default: { - x = Menu2_GetMonSpriteAnchorCoord(species, personality, 3); - y = Menu2_GetMonSpriteAnchorCoord(species, personality, 4); + x = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_ITEM_X_POS); + y = Menu2_GetMonPosAttribute(species, personality, PSA_MON_ATTR_ITEM_Y_POS); if (x == 0xFF) x = 0; if (y == 0xFF) @@ -1200,8 +1202,8 @@ static void CreateStarSprites(struct PokemonSpecialAnimScene * scene) personality = PSA_GetMonPersonality(); gSprites[spriteId].data[3] = sStarCoordOffsets[i][0] * 8; gSprites[spriteId].data[4] = sStarCoordOffsets[i][1] * 8; - gSprites[spriteId].x += GetSpriteOffsetByScale(Menu2_GetMonSpriteAnchorCoordMinusx20(species, personality, 0), 3); - gSprites[spriteId].y += GetSpriteOffsetByScale(Menu2_GetMonSpriteAnchorCoordMinusx20(species, personality, 1), 3); + gSprites[spriteId].x += GetSpriteOffsetByScale(Menu2_GetStarSpritePosAttribute(species, personality, PSA_MON_ATTR_TMHM_X_POS), 3); + gSprites[spriteId].y += GetSpriteOffsetByScale(Menu2_GetStarSpritePosAttribute(species, personality, PSA_MON_ATTR_TMHM_Y_POS), 3); scene->field_0002++; } } diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index cab6d3afe..5679375eb 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -5,7 +5,9 @@ #include "overworld.h" #include "hall_of_fame.h" #include "load_save.h" +#include "item.h" #include "constants/heal_locations.h" +#include "constants/items.h" bool8 EnterHallOfFame(void) { @@ -46,6 +48,20 @@ bool8 EnterHallOfFame(void) { IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS); FlagSet(FLAG_SYS_RIBBON_GET); +#if REVISION >= 0xA + // The player has entered the Hall of Fame for the first time. + // (At least, this is probably what was intended, except giving at least one Champion Ribbon does not imply first Hall of Fame entry) + // Give the event tickets, and the flags for obtaining them, if required. + if (!CheckBagHasItem(ITEM_AURORA_TICKET, 1)) + { + AddBagItem(ITEM_AURORA_TICKET, 1); + FlagSet(FLAG_ENABLE_SHIP_BIRTH_ISLAND); + FlagSet(FLAG_RECEIVED_AURORA_TICKET); + AddBagItem(ITEM_MYSTIC_TICKET, 1); + FlagSet(FLAG_ENABLE_SHIP_NAVEL_ROCK); + FlagSet(FLAG_RECEIVED_MYSTIC_TICKET); + } +#endif } SetMainCallback2(CB2_DoHallOfFameScreen); return FALSE; diff --git a/src/region_map.c b/src/region_map.c index baa0d45a3..d65f99fef 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -3803,7 +3803,7 @@ u8 *GetMapName(u8 *dst0, u16 mapsec, u16 fill) u8 *dst; u16 i; u16 idx; - if ((idx = mapsec - KANTO_MAPSEC_START) <= MAPSEC_SPECIAL_AREA - KANTO_MAPSEC_START) + if ((idx = mapsec - KANTO_MAPSEC_START) < MAPSEC_NONE - KANTO_MAPSEC_START) { if (IsCeladonDeptStoreMapsec(mapsec) == TRUE) dst = StringCopy(dst0, sMapsecName_CELADON_DEPT_); diff --git a/src/save.c b/src/save.c index 7a4808924..36b960f37 100644 --- a/src/save.c +++ b/src/save.c @@ -9,6 +9,7 @@ #include "fieldmap.h" #include "pokemon_storage_system.h" #include "gba/flash_internal.h" +#include "sloopsvc.h" static u8 HandleWriteSector(u16 sectorId, const struct SaveSectorLocation *locations); static u8 TryWriteSector(u8 sectorNum, u8 *data); @@ -212,6 +213,11 @@ static u8 HandleWriteSectorNBytes(u8 sectorId, u8 *data, u16 size) static u8 TryWriteSector(u8 sectorNum, u8 *data) { +#if REVISION >= 0xA + svc_WriteSector(sectorNum, data); + SetDamagedSectorBits(DISABLE, sectorNum); + return SAVE_STATUS_OK; +#else if (ProgramFlashSectorAndVerify(sectorNum, data)) // is damaged? { SetDamagedSectorBits(ENABLE, sectorNum); // set damaged sector bits. @@ -222,6 +228,7 @@ static u8 TryWriteSector(u8 sectorNum, u8 *data) SetDamagedSectorBits(DISABLE, sectorNum); // unset damaged sector bits. it's safe now. return SAVE_STATUS_OK; } +#endif } static u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectorLocation *locations) @@ -312,6 +319,11 @@ static u8 HandleReplaceSector(u16 sectorId, const struct SaveSectorLocation *loc gSaveDataBufferPtr->checksum = CalculateChecksum(data, size); +#if REVISION >= 0xA + svc_ReplaceSector(sectorNum, (u8*)gSaveDataBufferPtr); + SetDamagedSectorBits(DISABLE, sectorNum); + return SAVE_STATUS_OK; +#else // erase old save data EraseFlashSector(sectorNum); @@ -358,6 +370,7 @@ static u8 HandleReplaceSector(u16 sectorId, const struct SaveSectorLocation *loc return SAVE_STATUS_OK; } } +#endif } static u8 CopySectorSignatureByte(u16 sectorId, const struct SaveSectorLocation *locations) @@ -679,6 +692,9 @@ u8 HandleSavingData(u8 saveType) break; } gMain.vblankCounter1 = backupPtr; +#if REVISION >= 0xA + svc_FinishSave(); +#endif return 0; } @@ -872,6 +888,9 @@ void Task_LinkFullSave(u8 taskId) gTasks[taskId].data[0] = 1; break; case 1: +#if REVISION >= 0xA + if (!IsLinkTaskFinished()) break; +#endif SetLinkStandbyCallback(); gTasks[taskId].data[0] = 2; break; @@ -905,6 +924,9 @@ void Task_LinkFullSave(u8 taskId) gTasks[taskId].data[0] = 7; break; case 7: +#if REVISION >= 0xA + if (!IsLinkTaskFinished()) break; +#endif ClearContinueGameWarpStatus2(); SetLinkStandbyCallback(); gTasks[taskId].data[0] = 8; @@ -913,10 +935,16 @@ void Task_LinkFullSave(u8 taskId) if (IsLinkTaskFinished()) { LinkFullSave_SetLastSectorSignature(); +#if REVISION >= 0xA + svc_FinishSave(); +#endif gTasks[taskId].data[0] = 9; } break; case 9: +#if REVISION >= 0xA + if (!IsLinkTaskFinished()) break; +#endif SetLinkStandbyCallback(); gTasks[taskId].data[0] = 10; break; diff --git a/src/scanline_effect.c b/src/scanline_effect.c index e664945cd..7b50649a2 100644 --- a/src/scanline_effect.c +++ b/src/scanline_effect.c @@ -107,16 +107,16 @@ void ScanlineEffect_InitHBlankDmaTransfer(void) static void CopyValue16Bit(void) { - u16 *dest = (u16 *)gScanlineEffect.dmaDest; - u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; + vu16 *dest = (vu16 *)gScanlineEffect.dmaDest; + vu16 *src = (vu16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; *dest = *src; } static void CopyValue32Bit(void) { - u32 *dest = (u32 *)gScanlineEffect.dmaDest; - u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; + vu32 *dest = (vu32 *)gScanlineEffect.dmaDest; + vu32 *src = (vu32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; *dest = *src; } diff --git a/src/scrcmd.c b/src/scrcmd.c index f7481f862..97b695ee2 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -37,6 +37,7 @@ #include "constants/event_objects.h" #include "constants/maps.h" #include "constants/sound.h" +#include "sloopsvc.h" extern u16 (*const gSpecials[])(void); extern u16 (*const gSpecialsEnd[])(void); @@ -1732,12 +1733,24 @@ bool8 ScrCmd_bufferboxname(struct ScriptContext * ctx) bool8 ScrCmd_givemon(struct ScriptContext * ctx) { - u16 species = VarGet(ScriptReadHalfword(ctx)); - u8 level = ScriptReadByte(ctx); - u16 item = VarGet(ScriptReadHalfword(ctx)); - u32 unkParam1 = ScriptReadWord(ctx); - u32 unkParam2 = ScriptReadWord(ctx); - u8 unkParam3 = ScriptReadByte(ctx); + u16 species; + u8 level; + u16 item; + u32 unkParam1; + u32 unkParam2; + u8 unkParam3; + species = VarGet(ScriptReadHalfword(ctx)); +#if REVISION >= 0xA + // If the player party count is zero, this "must" be giving the starter. + // Notify the emulator of what starter was picked, for telemetry purposes. + if (gSaveBlock1Ptr->playerPartyCount == 0) + svc_SetStarter(species); +#endif + level = ScriptReadByte(ctx); + item = VarGet(ScriptReadHalfword(ctx)); + unkParam1 = ScriptReadWord(ctx); + unkParam2 = ScriptReadWord(ctx); + unkParam3 = ScriptReadByte(ctx); gSpecialVar_Result = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3); return FALSE; diff --git a/src/script_menu.c b/src/script_menu.c index 25991e775..41eebd86e 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -338,8 +338,14 @@ static const struct MenuAction sMultichoiceList_TradeCenter_Colosseum[] = { }; static const struct MenuAction sMultichoiceList_Link_Wireless[] = { +#if REVISION >= 0xA + // The default is wireless here as it's always emulated by Sloop + { gText_Wireless }, + { gText_GameLinkCable }, +#else { gText_GameLinkCable }, { gText_Wireless }, +#endif { gOtherText_Exit } }; diff --git a/src/sloopsvc.c b/src/sloopsvc.c new file mode 100644 index 000000000..384ed252f --- /dev/null +++ b/src/sloopsvc.c @@ -0,0 +1,294 @@ +#include "global.h" +#include "librfu.h" +#include "link_rfu.h" +#include "link.h" +#include "sloopsvc.h" + +#if REVISION >= 0xA + +typedef struct _SloopSvc47Params { + // BUGBUG: gHostRfuGameData certainly didn't change size, ResetHostRfuGameData still zeroes 13 bytes + u8 HostRfuGameData[0x10]; + u8 HostRfuUsername[RFU_USER_NAME_LENGTH]; +} SloopSvc47Params; + +static u8 sBadWordAsciiString[256]; + +COMMON_DATA SloopSvc47Params gSvc47Params = {0}; +COMMON_DATA struct RfuLinkStatus *gSloopRfuLinkStatus = NULL; + +// Syscall functions for the extra syscalls handled by the Sloop emulator. +#define SLOOP_SVC_CLOBBERS "r0", "r1", "r2", "r3", "memory" + +// Unreferenced. Sets a flag to true (default true) (svc_41 sets it to false) +void svc_40(void) { + asm volatile("swi 0x40"); +} + +// Unreferenced. Sets a flag to false (default true) (svc_40 sets it to true) +void svc_41(void) { + asm volatile("swi 0x41"); +} + +// Called by rfu_REQ_configGameData. +void svc_47(void) { + u8* params = gSvc47Params.HostRfuGameData; + memcpy(params, &gHostRfuGameData, sizeof(gSvc47Params.HostRfuGameData)); + memcpy(¶ms[sizeof(gSvc47Params.HostRfuGameData)], gHostRfuUsername, sizeof(gSvc47Params.HostRfuUsername)); + asm volatile( + "movs r0, %0 \n" + "swi 0x47 \n" + : + : "l"(params) + : SLOOP_SVC_CLOBBERS + ); + gSloopRfuLinkStatus = gRfuLinkStatus; +} + +// Called by rfu_REQ_startSearchChild. +void svc_42(void) { + asm volatile("swi 0x42"); +} + +// Called from rfu_LMAN_manager_entity. +u32 svc_49(void) { + u32 ret; + asm volatile( + "swi 0x49 \n" + "movs %0, r0 \n" + : "=l"(ret) + : + : SLOOP_SVC_CLOBBERS + ); + return ret; +} + +// Called by rfu_REQ_startSearchParent and rfu_STC_readParentCandidateList. +void svc_45_rfu_link_status(void) { + asm volatile( + "movs r0, %0 \n" + "swi 0x45 \n" + : + : "l"(gRfuLinkStatus) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by rfu_LMAN_REQ_callback +u32 svc_4a(void) { + u32 ret; + asm volatile( + "swi 0x4a \n" + "movs %0, r0 \n" + : "=l"(ret) + : + : SLOOP_SVC_CLOBBERS + ); + return ret; +} + +// Called by rfu_REQ_startConnectParent +void svc_43(u16 pid) { + asm volatile( + "movs r0, %0 \n" + "swi 0x43 \n" + : + : "l"(pid) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by rfu_REQ_stopMode, ... +void svc_44(void) { + asm volatile("swi 0x44"); +} + +// Called by Task_WirelessCommunicationScreen +u32 svc_53(void) { + u32 ret; + asm volatile( + "swi 0x53 \n" + "movs %0, r0 \n" + : "=l"(ret) + : + : SLOOP_SVC_CLOBBERS + ); + return ret; +} + +// Called by HandleLinkConnection +u32 svc_51(void) { + u32 ret; + asm volatile( + "swi 0x51 \n" + "movs %0, r0 \n" + : "=l"(ret) + : + : SLOOP_SVC_CLOBBERS + ); + return ret; +} + +// Called by RfuMain1 and SpawnGroupLeaderAndMembers. +// SpawnGroupLeaderAndMembers will exit early in the SpawnGroupLeader case if retval has bit 0 unset. +// RfuMain1 will reseed the RNG by gHostRfuGameData->compatibility.playerTrainerId if retval has bit 1 set. +u32 svc_4b(void) { + u32 ret; + asm volatile( + "swi 0x4b \n" + "movs %0, r0 \n" + : "=l"(ret) + : + : SLOOP_SVC_CLOBBERS + ); + return ret; +} + +// Called by TryWriteSector. +void svc_WriteSector(u8 sector, u8* data) { + asm volatile( + "movs r0, %0 \n" + "movs r1, %1 \n" + "swi 0x48 \n" + : + : "l"(sector), "l"(data) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by HandleReplaceSector. +void svc_ReplaceSector(u8 sector, u8* data) { + asm volatile( + "movs r0, %0 \n" + "movs r1, %1 \n" + "swi 0x56 \n" + : + : "l"(sector), "l"(data) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by various save-related functions. +// This writes the save out (handler calls a function using fopen/fwrite/fclose) +void svc_FinishSave(void) { + asm volatile("swi 0x4c"); +} + +// Called by Task_RunUnionRoom and ListMenuHandler_AllItemsAvailable. +// This handler calls functions from the parental controls library. +// ListMenuHandler_AllItemsAvailable returns -2 if this returns zero. +// The Task_RunUnionRoom case auto-declines if this returns zero. +// Probably returns zero if "free communication" is denied by parental control settings. +u32 svc_CommsAllowedByParentalControls(void) { + u32 ret; + asm volatile( + "swi 0x54 \n" + "movs %0, r0 \n" + : "=l"(ret) + : + : SLOOP_SVC_CLOBBERS + ); + return ret; +} + +static inline u32 call_svc_BadWordCheck(u8* string, int arg2) { + u32 ret; + asm volatile( + "movs r0, %1\n" + "movs r1, %2\n" + "swi 0x4d\n" + "movs %0, r0\n" + : "=l" (ret) + : "l" (string), "l" (arg2) + : SLOOP_SVC_CLOBBERS + ); + return ret; +} +// Called by naming screen MainState_PressedOKButton, +// ChatEntryRoutine_SendMessage and union room RegisterTextAtRow. +// This does the bad word checks. +// The text buffer passed in is sanitised, and zero returned if sanitisation occured(?)/badwords present(?) +u32 svc_BadWordCheck(u8* str) { + u32 ret; + PkmnStrToASCII((u8*)sBadWordAsciiString, str); + ret = call_svc_BadWordCheck((u8*)sBadWordAsciiString, 0); + ASCIIToPkmnStr(str, (u8*)sBadWordAsciiString); + return ret; +} + +// Called by various cases of Task_TryJoinLinkGroup and Task_TryBecomeLinkLeader. +void svc_4f(u32 arg) { + asm volatile( + "movs r0, %0 \n" + "swi 0x4f \n" + : + : "l"(arg) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by a wrapper function called by Task_TryBecomeLinkLeader. +// The wrapper function is equivalent to "return !svc_50();" +// Return value is ORed with gReceivedRemoteLinkPlayers. +u32 svc_50(void) { + u32 ret; + asm volatile( + "swi 0x50 \n" + "movs %0, r0 \n" + : "=l"(ret) + : + : SLOOP_SVC_CLOBBERS + ); + return ret; +} + +// Called by InitMainCallbacks and MoveSaveBlocks_ResetHeap. +// Lets the emulator know where SaveBlock2 is located in memory. +// Emulator appears to use this to get saveBlock2->optionsButtonMode to check against L_EQUALS_A. +void svc_SetSaveBlock2(struct SaveBlock2* saveBlock2) { + asm volatile( + "movs r0, %0 \n" + "swi 0x55 \n" + : + : "l"(saveBlock2) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by AgbMain, as its first action before RegisterRamReset. +void svc_stubbed(void) { + // No operation. +} + +// Called by ScrCmd_givemon when the party is empty. +// This lets the emulator know what starter was picked (saved in play report / telemetry data) +void svc_SetStarter(u32 species) { + asm volatile( + "movs r0, %0 \n" + "swi 0x57 \n" + : + : "l"(species) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by Task_StartActivity +// This lets the emulator know the current union room activity. +void svc_SetActivity(u32 activity) { + asm volatile( + "movs r0, %0 \n" + "swi 0x61 \n" + : + : "l"(activity) + : SLOOP_SVC_CLOBBERS + ); +} + +// Called by CB2_PrintErrorMessage. +// This causes the emulator to increment some variable (link error counter, probably). +void svc_IncrementLinkError(void) { + asm volatile("swi 0x62"); +} + + +#endif \ No newline at end of file diff --git a/src/sprite.c b/src/sprite.c index ae7a055ac..d0198d530 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -10,8 +10,8 @@ #define SET_SPRITE_TILE_RANGE(index, start, count) \ { \ - sSpriteTileRanges[index * 2] = start; \ - (sSpriteTileRanges + 1)[index * 2] = count; \ + sSpriteTileRanges[index][0] = start; \ + sSpriteTileRanges[index][1] = count; \ } #define ALLOC_SPRITE_TILE(n) \ @@ -266,7 +266,7 @@ static const struct OamDimensions sOamDimensions[3][4] = }; static u16 sSpriteTileRangeTags[MAX_SPRITES]; -static u16 sSpriteTileRanges[MAX_SPRITES * 2]; +static u16 sSpriteTileRanges[MAX_SPRITES][2]; static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT]; static u16 sSpritePaletteTags[16]; @@ -1502,14 +1502,10 @@ void FreeSpriteTilesByTag(u16 tag) if (index != 0xFF) { u16 i; - u16 *rangeStarts; - u16 *rangeCounts; u16 start; u16 count; - rangeStarts = sSpriteTileRanges; - start = rangeStarts[index * 2]; - rangeCounts = sSpriteTileRanges + 1; - count = rangeCounts[index * 2]; + start = sSpriteTileRanges[index][0]; + count = sSpriteTileRanges[index][1]; for (i = start; i < start + count; i++) FREE_SPRITE_TILE(i); @@ -1534,7 +1530,7 @@ u16 GetSpriteTileStartByTag(u16 tag) u8 index = IndexOfSpriteTileTag(tag); if (index == 0xFF) return TAG_NONE; - return sSpriteTileRanges[index * 2]; + return sSpriteTileRanges[index][0]; } u8 IndexOfSpriteTileTag(u16 tag) @@ -1554,7 +1550,7 @@ u16 GetSpriteTileTagByTileStart(u16 start) for (i = 0; i < MAX_SPRITES; i++) { - if (sSpriteTileRangeTags[i] != TAG_NONE && sSpriteTileRanges[i * 2] == start) + if (sSpriteTileRangeTags[i] != TAG_NONE && sSpriteTileRanges[i][0] == start) return sSpriteTileRangeTags[i]; } diff --git a/src/start_menu.c b/src/start_menu.c index 8a372e5af..88cc377ce 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -36,6 +36,7 @@ #include "help_system.h" #include "constants/songs.h" #include "constants/field_weather.h" +#include "sloopsvc.h" enum StartMenuOption { @@ -935,6 +936,9 @@ static void task50_after_link_battle_save(u8 taskId) if (WriteSaveBlock1Sector()) { ClearContinueGameWarpStatus2(); +#if REVISION >= 0xA + svc_FinishSave(); +#endif data[0] = 3; } break; diff --git a/src/string_util.c b/src/string_util.c index 4744e231c..5c26d151a 100644 --- a/src/string_util.c +++ b/src/string_util.c @@ -5,7 +5,11 @@ EWRAM_DATA u8 gStringVar1[32] = {}; EWRAM_DATA u8 gStringVar2[20] = {}; EWRAM_DATA u8 gStringVar3[20] = {}; EWRAM_DATA u8 gStringVar4[1000] = {}; +#if REVISION >= 0xA +EWRAM_DATA u8 gUnknownStringVar[12] = {0}; +#else EWRAM_DATA u8 gUnknownStringVar[16] = {0}; +#endif static const u8 sDigits[] = __("0123456789ABCDEF"); diff --git a/src/task.c b/src/task.c index cd9841d06..01503dc7a 100644 --- a/src/task.c +++ b/src/task.c @@ -86,6 +86,10 @@ static void InsertTask(u8 newTaskId) void DestroyTask(u8 taskId) { +#if REVISION >= 0xA + // Bounds check on the task ID. + if (taskId >= NUM_TASKS) return; +#endif if (gTasks[taskId].isActive) { gTasks[taskId].isActive = FALSE; diff --git a/src/title_screen.c b/src/title_screen.c index 334af1f0f..75f0e6743 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -634,12 +634,16 @@ static void SetTitleScreenScene_Run(s16 *data) DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); SetMainCallback2(CB2_FadeOutTransitionToSaveClearScreen); } +#if REVISION >= 0xA + // Berry fix trigger has been removed. +#else else if (JOY_HELD(KEYSTROKE_BERRY_FIX) == KEYSTROKE_BERRY_FIX) { DeactivateSlashSprite(tSlashSpriteId); DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); SetMainCallback2(CB2_FadeOutTransitionToBerryFix); } +#endif else if (JOY_NEW(A_BUTTON | START_BUTTON)) { SetTitleScreenScene(data, TITLESCREENSCENE_CRY); diff --git a/src/trade.c b/src/trade.c index ea29aedc8..c19360963 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2116,7 +2116,11 @@ static void CB_HandleTradeCanceled(void) static void CB_InitExitCanceledTrade(void) { +#if REVISION >= 0xA + if (IsLinkTaskFinished() && !gPaletteFade.active) +#else if (!gPaletteFade.active) +#endif { if (gWirelessCommType) SetLinkStandbyCallback(); diff --git a/src/trade_scene.c b/src/trade_scene.c index 2c3a0801d..98d129039 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -33,6 +33,7 @@ #include "constants/songs.h" #include "constants/region_map_sections.h" #include "constants/moves.h" +#include "sloopsvc.h" // Values for signaling to/from the link partner enum { @@ -2608,25 +2609,37 @@ static void CB2_SaveAndEndTrade(void) MysteryGift_TryIncrementStat(CARD_STAT_NUM_TRADES, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); SetContinueGameWarpStatusToDynamicWarp(); LinkFullSave_Init(); +#if REVISION >= 0xA + // No need to wait for a save when the emulator does it fast and synchronously + gMain.state = 52; +#else gMain.state++; +#endif sTradeAnim->timer = 0; break; +#if REVISION >= 0xA +#else case 51: if (++sTradeAnim->timer == 5) gMain.state++; break; +#endif case 52: if (LinkFullSave_WriteSector()) { ClearContinueGameWarpStatus2(); gMain.state = 4; } +#if REVISION >= 0xA + // Save delay is gone, just write the next sector if save isn't finished +#else else { // Save isn't finished, delay again sTradeAnim->timer = 0; gMain.state = 51; } +#endif break; case 4: LinkFullSave_ReplaceLastSector(); @@ -2654,6 +2667,26 @@ static void CB2_SaveAndEndTrade(void) sTradeAnim->timer--; } break; +#if REVISION >= 0xA + case 42: + if (IsLinkTaskFinished()) + { + gMain.state = 43; + } + break; + case 43: + SetLinkStandbyCallback(); + gMain.state = 44; + break; + case 44: + if (IsLinkTaskFinished()) + { + LinkFullSave_SetLastSectorSignature(); + svc_FinishSave(); + gMain.state = 5; + } + break; +#else case 42: if (IsLinkTaskFinished()) { @@ -2661,6 +2694,7 @@ static void CB2_SaveAndEndTrade(void) gMain.state = 5; } break; +#endif case 5: if (++sTradeAnim->timer > 60) { diff --git a/src/trainer_fan_club.c b/src/trainer_fan_club.c index 69c860d2b..e6d7c5fef 100644 --- a/src/trainer_fan_club.c +++ b/src/trainer_fan_club.c @@ -63,7 +63,7 @@ static void UpdateTrainerFanClubGameClear(struct TrainerFanClub *fanClub) SetPlayerGotFirstFans(fanClub); SetInitialFansOfPlayer(fanClub); VarSet(VAR_FANCLUB_LOSE_FAN_TIMER, gSaveBlock2Ptr->playTimeHours); - FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT); + FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_BLACK_BELT); FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER); FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN); FlagClear(FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY); diff --git a/src/trainer_see.c b/src/trainer_see.c index 399d3e8a0..a71113bb2 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -578,26 +578,27 @@ static const struct OamData sOamData_Emoticons = { .affineParam = 0, }; -static const struct SpriteFrameImage sSpriteImages_Emoticons[] = { - {sGfx_Emoticons + 0x000, 0x80}, - {sGfx_Emoticons + 0x040, 0x80}, - {sGfx_Emoticons + 0x080, 0x80}, +static const struct SpriteFrameImage sSpriteImages_Emoticons[] = +{ + overworld_frame(sGfx_Emoticons, 2, 2, 0), + overworld_frame(sGfx_Emoticons, 2, 2, 1), + overworld_frame(sGfx_Emoticons, 2, 2, 2), - {sGfx_Emoticons + 0x180, 0x80}, - {sGfx_Emoticons + 0x1C0, 0x80}, - {sGfx_Emoticons + 0x200, 0x80}, + overworld_frame(sGfx_Emoticons, 2, 2, 6), + overworld_frame(sGfx_Emoticons, 2, 2, 7), + overworld_frame(sGfx_Emoticons, 2, 2, 8), - {sGfx_Emoticons + 0x0C0, 0x80}, - {sGfx_Emoticons + 0x100, 0x80}, - {sGfx_Emoticons + 0x140, 0x80}, + overworld_frame(sGfx_Emoticons, 2, 2, 3), + overworld_frame(sGfx_Emoticons, 2, 2, 4), + overworld_frame(sGfx_Emoticons, 2, 2, 5), - {sGfx_Emoticons + 0x240, 0x80}, - {sGfx_Emoticons + 0x280, 0x80}, - {sGfx_Emoticons + 0x2C0, 0x80}, + overworld_frame(sGfx_Emoticons, 2, 2, 9), + overworld_frame(sGfx_Emoticons, 2, 2, 10), + overworld_frame(sGfx_Emoticons, 2, 2, 11), - {sGfx_Emoticons + 0x300, 0x80}, - {sGfx_Emoticons + 0x340, 0x80}, - {sGfx_Emoticons + 0x380, 0x80}, + overworld_frame(sGfx_Emoticons, 2, 2, 12), + overworld_frame(sGfx_Emoticons, 2, 2, 13), + overworld_frame(sGfx_Emoticons, 2, 2, 14), }; static const union AnimCmd sAnimCmd_ExclamationMark1[] = { diff --git a/src/trainer_tower.c b/src/trainer_tower.c index 5aa48d026..732b3f2ed 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -109,17 +109,17 @@ static const struct SinglesTrainerInfo sSingleBattleTrainerInfo[] = { {OBJ_EVENT_GFX_TUBER_M_LAND, FACILITY_CLASS_RS_TUBER_M, MALE}, {OBJ_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_RS_COOLTRAINER_M, MALE}, {OBJ_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_RS_COOLTRAINER_F, FEMALE}, - {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_HEX_MANIAC, MALE}, + {OBJ_EVENT_GFX_POKE_MANIAC, FACILITY_CLASS_HEX_MANIAC, MALE}, {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_RS_LADY, FEMALE}, {OBJ_EVENT_GFX_BEAUTY, FACILITY_CLASS_RS_BEAUTY, FEMALE}, {OBJ_EVENT_GFX_BOY, FACILITY_CLASS_RICH_BOY, MALE}, - {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_RS_POKEMANIAC, MALE}, + {OBJ_EVENT_GFX_POKE_MANIAC, FACILITY_CLASS_RS_POKEMANIAC, MALE}, {OBJ_EVENT_GFX_SWIMMER_M_LAND, FACILITY_CLASS_RS_SWIMMER_M, MALE}, - {OBJ_EVENT_GFX_BLACKBELT, FACILITY_CLASS_RS_BLACK_BELT, MALE}, + {OBJ_EVENT_GFX_BLACK_BELT, FACILITY_CLASS_RS_BLACK_BELT, MALE}, {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_GUITARIST, MALE}, {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_KINDLER, MALE}, {OBJ_EVENT_GFX_CAMPER, FACILITY_CLASS_RS_CAMPER, MALE}, - {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_BUG_MANIAC, MALE}, + {OBJ_EVENT_GFX_POKE_MANIAC, FACILITY_CLASS_BUG_MANIAC, MALE}, {OBJ_EVENT_GFX_BOY, FACILITY_CLASS_RS_PSYCHIC_M, MALE}, {OBJ_EVENT_GFX_WOMAN_1, FACILITY_CLASS_RS_PSYCHIC_F, FEMALE}, {OBJ_EVENT_GFX_GENTLEMAN, FACILITY_CLASS_RS_GENTLEMAN, MALE}, @@ -134,7 +134,7 @@ static const struct SinglesTrainerInfo sSingleBattleTrainerInfo[] = { {OBJ_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_DRAGON_TAMER, MALE}, {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_RS_BIRD_KEEPER, MALE}, {OBJ_EVENT_GFX_LITTLE_BOY, FACILITY_CLASS_NINJA_BOY, MALE}, - {OBJ_EVENT_GFX_BATTLE_GIRL, FACILITY_CLASS_BATTLE_GIRL, FEMALE}, + {OBJ_EVENT_GFX_CRUSH_GIRL, FACILITY_CLASS_BATTLE_GIRL, FEMALE}, {OBJ_EVENT_GFX_BEAUTY, FACILITY_CLASS_PARASOL_LADY, FEMALE}, {OBJ_EVENT_GFX_SWIMMER_F_LAND, FACILITY_CLASS_RS_SWIMMER_F, FEMALE}, {OBJ_EVENT_GFX_PICNICKER, FACILITY_CLASS_RS_PICNICKER, FEMALE}, @@ -153,11 +153,11 @@ static const struct SinglesTrainerInfo sSingleBattleTrainerInfo[] = { {OBJ_EVENT_GFX_SAILOR, FACILITY_CLASS_SAILOR, MALE}, {OBJ_EVENT_GFX_CAMPER, FACILITY_CLASS_CAMPER, MALE}, {OBJ_EVENT_GFX_PICNICKER, FACILITY_CLASS_PICNICKER, FEMALE}, - {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_POKEMANIAC, MALE}, - {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_SUPER_NERD, MALE}, + {OBJ_EVENT_GFX_POKE_MANIAC, FACILITY_CLASS_POKEMANIAC, MALE}, + {OBJ_EVENT_GFX_POKE_MANIAC, FACILITY_CLASS_SUPER_NERD, MALE}, {OBJ_EVENT_GFX_HIKER, FACILITY_CLASS_HIKER, MALE}, {OBJ_EVENT_GFX_BIKER, FACILITY_CLASS_BIKER, MALE}, - {OBJ_EVENT_GFX_SUPER_NERD, FACILITY_CLASS_BURGLAR, MALE}, + {OBJ_EVENT_GFX_POKE_MANIAC, FACILITY_CLASS_BURGLAR, MALE}, {OBJ_EVENT_GFX_BALDING_MAN, FACILITY_CLASS_ENGINEER, MALE}, {OBJ_EVENT_GFX_FISHER, FACILITY_CLASS_FISHERMAN, MALE}, {OBJ_EVENT_GFX_SWIMMER_M_LAND, FACILITY_CLASS_SWIMMER_M, MALE}, @@ -170,14 +170,14 @@ static const struct SinglesTrainerInfo sSingleBattleTrainerInfo[] = { {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_JUGGLER, MALE}, {OBJ_EVENT_GFX_MAN, FACILITY_CLASS_TAMER, MALE}, {OBJ_EVENT_GFX_ROCKER, FACILITY_CLASS_BIRD_KEEPER, MALE}, - {OBJ_EVENT_GFX_BLACKBELT, FACILITY_CLASS_BLACK_BELT, MALE}, + {OBJ_EVENT_GFX_BLACK_BELT, FACILITY_CLASS_BLACK_BELT, MALE}, {OBJ_EVENT_GFX_SCIENTIST, FACILITY_CLASS_SCIENTIST, MALE}, {OBJ_EVENT_GFX_COOLTRAINER_M, FACILITY_CLASS_COOLTRAINER_M, MALE}, {OBJ_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOLTRAINER_F, FEMALE}, {OBJ_EVENT_GFX_GENTLEMAN, FACILITY_CLASS_GENTLEMAN, MALE}, {OBJ_EVENT_GFX_CHANNELER, FACILITY_CLASS_CHANNELER, FEMALE}, {OBJ_EVENT_GFX_WOMAN_1, FACILITY_CLASS_PSYCHIC_F, FEMALE}, - {OBJ_EVENT_GFX_BATTLE_GIRL, FACILITY_CLASS_CRUSH_GIRL, FEMALE}, + {OBJ_EVENT_GFX_CRUSH_GIRL, FACILITY_CLASS_CRUSH_GIRL, FEMALE}, {OBJ_EVENT_GFX_TUBER_F, FACILITY_CLASS_TUBER, FEMALE}, {OBJ_EVENT_GFX_WOMAN_2, FACILITY_CLASS_PKMN_BREEDER, FEMALE}, {OBJ_EVENT_GFX_CAMPER, FACILITY_CLASS_PKMN_RANGER_M, MALE}, @@ -197,7 +197,7 @@ static const struct DoublesTrainerInfo sDoubleBattleTrainerInfo[] = { {OBJ_EVENT_GFX_LITTLE_GIRL, OBJ_EVENT_GFX_LITTLE_GIRL, FACILITY_CLASS_TWINS, FEMALE, FEMALE}, {OBJ_EVENT_GFX_COOLTRAINER_M, OBJ_EVENT_GFX_COOLTRAINER_F, FACILITY_CLASS_COOL_COUPLE, MALE, FEMALE}, {OBJ_EVENT_GFX_BEAUTY, OBJ_EVENT_GFX_MAN, FACILITY_CLASS_YOUNG_COUPLE, FEMALE, MALE}, - {OBJ_EVENT_GFX_BATTLE_GIRL, OBJ_EVENT_GFX_BLACKBELT, FACILITY_CLASS_CRUSH_KIN, FEMALE, MALE}, + {OBJ_EVENT_GFX_CRUSH_GIRL, OBJ_EVENT_GFX_BLACK_BELT, FACILITY_CLASS_CRUSH_KIN, FEMALE, MALE}, {OBJ_EVENT_GFX_SWIMMER_F_LAND, OBJ_EVENT_GFX_TUBER_M_LAND, FACILITY_CLASS_SIS_AND_BRO, FEMALE, MALE} }; @@ -653,7 +653,7 @@ static void BufferTowerOpponentSpeech(void) u16 trainerId = gSpecialVar_0x8006; u8 facilityClass; u8 challengeType = CURR_FLOOR.challengeType; - + if (challengeType != CHALLENGE_TYPE_DOUBLE) facilityClass = CURR_FLOOR.trainers[trainerId].facilityClass; else @@ -759,7 +759,7 @@ static void TrainerTowerAddFloorCleared(void) static void GetFloorAlreadyCleared(void) { u16 mapLayoutId = gMapHeader.mapLayoutId; - if (mapLayoutId - LAYOUT_TRAINER_TOWER_1F == TRAINER_TOWER.floorsCleared + if (mapLayoutId - LAYOUT_TRAINER_TOWER_1F == TRAINER_TOWER.floorsCleared && mapLayoutId - LAYOUT_TRAINER_TOWER_LOBBY <= CURR_FLOOR.floorIdx) gSpecialVar_Result = FALSE; else diff --git a/src/union_room.c b/src/union_room.c index 282353238..91bd92c99 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -48,6 +48,7 @@ #include "constants/field_weather.h" #include "constants/trainer_card.h" #include "constants/union_room.h" +#include "sloopsvc.h" // States for Task_RunUnionRoom enum { @@ -143,7 +144,11 @@ enum { LL_STATE_FAILED, LL_STATE_TRY_START_ACTIVITY = 26, LL_STATE_MEMBER_DISCONNECTED = 29, - LL_STATE_CANCEL_WITH_MSG + LL_STATE_CANCEL_WITH_MSG, +#if REVISION >= 0xA + LL_STATE_CONFIRM_MEMBERS_SLOOP, + LL_STATE_DISCONNECT_CHILD_SLOOP +#endif }; // States for Task_TryJoinLinkGroup @@ -205,9 +210,19 @@ EWRAM_DATA u16 gUnionRoomOfferedSpecies = SPECIES_NONE; EWRAM_DATA u8 gUnionRoomRequestedMonType = TYPE_NORMAL; static EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {}; +#if REVISION >= 0xA +COMMON_DATA struct WirelessLink_Leader * sLeader = NULL; +COMMON_DATA struct WirelessLink_URoom * sURoom = NULL; +COMMON_DATA struct WirelessLink_Group * sGroup = NULL; +#else static struct WirelessLink_Leader * sLeader; static struct WirelessLink_Group * sGroup; static struct WirelessLink_URoom * sURoom; +#endif + +#if REVISION >= 0xA +static void Leader_DisconnectOnState(struct WirelessLink_Leader * data, u8 state); +#endif static void Task_TryBecomeLinkLeader(u8); static void Leader_DestroyResources(struct WirelessLink_Leader *); @@ -227,7 +242,12 @@ static void Task_SendMysteryGift(u8); static void Task_CardOrNewsWithFriend(u8); static void Task_CardOrNewsOverWireless(u8); static void Task_RunUnionRoom(u8); +#if REVISION >= 0xA +u16 ReadU16(const u8 *); +#define ReadAsU16(x) ReadU16(x) +#else static u16 ReadAsU16(const u8 *); +#endif static void ReceiveUnionRoomActivityPacket(struct WirelessLink_URoom *); static bool32 HandleContactFromOtherPlayer(struct WirelessLink_URoom *); static void Task_InitUnionRoom(u8); @@ -422,6 +442,9 @@ static void Task_TryBecomeLinkLeader(u8 taskId) CopyBgTilemapBufferToVram(0); data->playerCount = 1; data->state = LL_STATE_GET_AWAITING_PLAYERS_TEXT; +#if REVISION >= 0xA + svc_4f(0); +#endif break; case LL_STATE_GET_AWAITING_PLAYERS_TEXT: StringCopy(gStringVar1, sLinkGroupActivityNameTexts[sPlayerCurrActivity]); @@ -439,19 +462,28 @@ static void Task_TryBecomeLinkLeader(u8 taskId) PrintNumPlayersWaitingForMsg(data->nPlayerModeWindowId, sPlayerActivityGroupSize, data->playerCount); data->state = LL_STATE_PRINT_AWAITING_PLAYERS; +#if REVISION >= 0xA + Leader_SetStateIfMemberListChanged(data, LL_STATE_ACCEPT_NEW_MEMBER_PROMPT, LL_STATE_MEMBER_LEFT); +#endif break; case LL_STATE_PRINT_AWAITING_PLAYERS: if (PrintOnTextbox(&data->textState, gStringVar4)) data->state = LL_STATE_AWAIT_PLAYERS; break; case LL_STATE_AWAIT_PLAYERS: +#if REVISION >= 0xA +#else Leader_SetStateIfMemberListChanged(data, LL_STATE_ACCEPT_NEW_MEMBER_PROMPT, LL_STATE_MEMBER_LEFT); +#endif if (JOY_NEW(B_BUTTON)) { if (data->playerCount == 1) data->state = LL_STATE_SHUTDOWN_AND_FAIL; +#if REVISION >= 0xA +#else else if (GROUP_MIN2(sPlayerActivityGroupSize) != 0) data->state = LL_STATE_CANCEL_WITH_MSG; +#endif else data->state = LL_STATE_CANCEL_PROMPT; } @@ -462,30 +494,54 @@ static void Task_TryBecomeLinkLeader(u8 taskId) && JOY_NEW(START_BUTTON)) { data->state = LL_STATE_MEMBERS_OK_PROMPT; +#if REVISION >= 0xA +#else LinkRfu_StopManagerAndFinalizeSlots(); +#endif } +#if REVISION >= 0xA + if (data->state == LL_STATE_AWAIT_PLAYERS) + { + Leader_SetStateIfMemberListChanged(data, LL_STATE_ACCEPT_NEW_MEMBER_PROMPT, LL_STATE_MEMBER_LEFT); + } + Leader_DisconnectOnState(data, LL_STATE_AWAIT_PLAYERS); +#else if (data->state == LL_STATE_AWAIT_PLAYERS && RfuTryDisconnectLeavingChildren()) { // At least 1 group member has left or is trying to leave data->state = LL_STATE_WAIT_DISCONNECT_CHILD; } +#endif break; case LL_STATE_WAIT_DISCONNECT_CHILD: // Resume after ensuring all members trying to leave have left if (!RfuTryDisconnectLeavingChildren()) { data->state = LL_STATE_AWAIT_PLAYERS; +#if REVISION >= 0xA +#else data->playerCount = LeaderPrunePlayerList(data->playerList); +#endif } break; case LL_STATE_MEMBER_LEFT: +#if REVISION >= 0xA + id = (GROUP_MAX(sPlayerActivityGroupSize) != 2) ? 1 : 0; +#else id = (GROUP_MAX(sPlayerCurrActivity) == 2) ? 1 : 0; +#endif if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerUnavailable[id])) { +#if REVISION >= 0xA +#else data->playerCount = LeaderPrunePlayerList(data->playerList); RedrawListMenu(data->listTaskId); +#endif data->state = LL_STATE_GET_AWAITING_PLAYERS_TEXT; } +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_MEMBER_LEFT); +#endif break; case LL_STATE_MEMBER_DISCONNECTED: id = (GROUP_MAX(sPlayerActivityGroupSize) == 2) ? 0 : 1; @@ -495,6 +551,9 @@ static void Task_TryBecomeLinkLeader(u8 taskId) case LL_STATE_ACCEPT_NEW_MEMBER_PROMPT: if (PrintOnTextbox(&data->textState, gStringVar4)) data->state = LL_STATE_ACCEPT_NEW_MEMBER_PROMPT_HANDLE_INPUT; +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_ACCEPT_NEW_MEMBER_PROMPT); +#endif break; case LL_STATE_ACCEPT_NEW_MEMBER_PROMPT_HANDLE_INPUT: switch (UnionRoomHandleYesNo(&data->textState, HasTrainerLeftPartnersList( @@ -518,6 +577,9 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->state = LL_STATE_WAIT_DISCONNECT_CHILD; break; } +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_ACCEPT_NEW_MEMBER_PROMPT_HANDLE_INPUT); +#endif break; case LL_STATE_UPDATE_AFTER_JOIN_REQUEST: val = WaitSendRfuStatusToPartner(ReadAsU16(data->playerList->players[data->playerCount].rfu.data.compatibility.playerTrainerId), data->playerList->players[data->playerCount].rfu.name); @@ -542,7 +604,10 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->state = LL_STATE_ACCEPTED_FINAL_MEMBER; } +#if REVISION >= 0xA +#else LinkRfu_StopManagerAndFinalizeSlots(); +#endif PrintNumPlayersWaitingForMsg(data->nPlayerModeWindowId, sPlayerActivityGroupSize, data->playerCount); } else @@ -554,7 +619,11 @@ static void Task_TryBecomeLinkLeader(u8 taskId) { RequestDisconnectSlotByTrainerNameAndId(data->playerList->players[data->playerCount].rfu.name, ReadAsU16(data->playerList->players[data->playerCount].rfu.data.compatibility.playerTrainerId)); data->playerList->players[data->playerCount].groupScheduledAnim = UNION_ROOM_SPAWN_NONE; +#if REVISION >= 0xA + data->playerCount = LeaderPrunePlayerList(data->playerList); +#else LeaderPrunePlayerList(data->playerList); +#endif RedrawListMenu(data->listTaskId); data->state = LL_STATE_GET_AWAITING_PLAYERS_TEXT; } @@ -570,59 +639,159 @@ static void Task_TryBecomeLinkLeader(u8 taskId) break; case LL_STATE_ACCEPTED_FINAL_MEMBER: if (PrintOnTextbox(&data->textState, gStringVar4)) + { +#if REVISION >= 0xA + data->state = LL_STATE_CONFIRM_MEMBERS_SLOOP; + svc_4f(1); + data->delayTimerAfterOk = 0; +#else data->state = LL_STATE_WAIT_AND_CONFIRM_MEMBERS; +#endif + } +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_ACCEPTED_FINAL_MEMBER); +#endif break; +#if REVISION >= 0xA +#else case LL_STATE_WAIT_AND_CONFIRM_MEMBERS: if (++data->delayTimerAfterOk > 120) data->state = LL_STATE_CONFIRMED_MEMBERS; break; +#endif case LL_STATE_MEMBERS_OK_PROMPT: if (PrintOnTextbox(&data->textState, gText_UR_AreTheseMembersOK)) data->state = LL_STATE_MEMBERS_OK_PROMPT_HANDLE_INPUT; +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_MEMBERS_OK_PROMPT); +#endif break; case LL_STATE_MEMBERS_OK_PROMPT_HANDLE_INPUT: switch (UnionRoomHandleYesNo(&data->textState, FALSE)) { case 0: // YES +#if REVISION >= 0xA + data->state = LL_STATE_CONFIRM_MEMBERS_SLOOP; + svc_4f(1); + data->delayTimerAfterOk = 0; +#else data->state = LL_STATE_CONFIRMED_MEMBERS; +#endif break; case 1: // NO case MENU_B_PRESSED: +#if REVISION >= 0xA + data->state = LL_STATE_CANCEL_PROMPT; +#else if (GROUP_MIN2(sPlayerActivityGroupSize) != 0) data->state = LL_STATE_CANCEL_WITH_MSG; else data->state = LL_STATE_CANCEL_PROMPT; +#endif break; } +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_MEMBERS_OK_PROMPT_HANDLE_INPUT); +#endif break; +#if REVISION >= 0xA + case LL_STATE_CONFIRM_MEMBERS_SLOOP: + switch (LeaderUpdateGroupMembership(data->playerList)) + { + case UNION_ROOM_SPAWN_IN: + data->joinRequestAnswer = RFU_STATUS_CONNECTION_ERROR; + SendRfuStatusToPartner(RFU_STATUS_CONNECTION_ERROR, ReadAsU16(data->playerList->players[data->playerCount].rfu.data.compatibility.playerTrainerId), data->playerList->players[data->playerCount].rfu.name); + data->state = LL_STATE_DISCONNECT_CHILD_SLOOP; + return; + case UNION_ROOM_SPAWN_OUT: + RfuSetStatus(RFU_STATUS_OK, 0); + data->playerCount = LeaderPrunePlayerList(data->playerList); + RedrawListMenu(data->listTaskId); + svc_4f(0); + data->state = LL_STATE_MEMBER_LEFT; + return; + case UNION_ROOM_SPAWN_OUT_SOON: + RfuSetStatus(RFU_STATUS_OK, 0); + data->playerCount = LeaderPrunePlayerList(data->playerList); + RedrawListMenu(data->listTaskId); + return; + } + if (++data->delayTimerAfterOk > 40) + { + data->state = LL_STATE_FINAL_MEMBER_CHECK; + LinkRfu_StopManagerAndFinalizeSlots(); + } + Leader_DisconnectOnState(data, LL_STATE_CONFIRM_MEMBERS_SLOOP); + break; + case LL_STATE_DISCONNECT_CHILD_SLOOP: + val = WaitSendRfuStatusToPartner(ReadAsU16(data->playerList->players[data->playerCount].rfu.data.compatibility.playerTrainerId), data->playerList->players[data->playerCount].rfu.name); + if (val == 1) + { + // Send complete + RequestDisconnectSlotByTrainerNameAndId(data->playerList->players[data->playerCount].rfu.name, ReadAsU16(data->playerList->players[data->playerCount].rfu.data.compatibility.playerTrainerId)); + data->playerList->players[data->playerCount].groupScheduledAnim = UNION_ROOM_SPAWN_NONE; + data->playerCount = LeaderPrunePlayerList(data->playerList); + RedrawListMenu(data->listTaskId); + } else if (val == 2) + { + // Disconnect + RfuSetStatus(RFU_STATUS_OK, 0); + } else break; + data->state = LL_STATE_CONFIRM_MEMBERS_SLOOP; + break; +#endif case LL_STATE_CANCEL_PROMPT: if (PrintOnTextbox(&data->textState, gText_UR_CancelModeWithTheseMembers)) data->state = LL_STATE_CANCEL_PROMPT_HANDLE_INPUT; +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_CANCEL_PROMPT); +#endif break; case LL_STATE_CANCEL_PROMPT_HANDLE_INPUT: switch (UnionRoomHandleYesNo(&data->textState, FALSE)) { case 0: // YES +#if REVISION >= 0xA + data->state = LL_STATE_CANCEL_WITH_MSG; +#else data->state = LL_STATE_SHUTDOWN_AND_FAIL; +#endif break; case 1: // NO case MENU_B_PRESSED: +#if REVISION >= 0xA + if (GROUP_MIN2(sPlayerActivityGroupSize) == 0 && data->playerCount == GROUP_MAX(sPlayerActivityGroupSize)) + data->state = LL_STATE_MEMBERS_OK_PROMPT; +#else if (GROUP_MIN2(sPlayerActivityGroupSize) != 0) data->state = LL_STATE_MEMBERS_OK_PROMPT; else if (data->playerCount == GROUP_MAX(sPlayerActivityGroupSize)) data->state = LL_STATE_MEMBERS_OK_PROMPT; +#endif else data->state = LL_STATE_GET_AWAITING_PLAYERS_TEXT; break; } +#if REVISION >= 0xA + Leader_DisconnectOnState(data, LL_STATE_CANCEL_PROMPT_HANDLE_INPUT); +#endif break; +#if REVISION >= 0xA +#else case LL_STATE_CONFIRMED_MEMBERS: if (!Leader_SetStateIfMemberListChanged(data, LL_STATE_ACCEPT_NEW_MEMBER_PROMPT, LL_STATE_SHUTDOWN_AND_FAIL)) data->state = LL_STATE_FINAL_MEMBER_CHECK; break; +#endif case LL_STATE_FINAL_MEMBER_CHECK: if (LmanAcceptSlotFlagIsNotZero()) { +#if REVISION >= 0xA + if (RfuGetStatus() == RFU_STATUS_CONNECTION_ERROR && RfuGetErrorInfo() == LMAN_MSG_LINK_LOSS_DETECTED_AND_DISCONNECTED) + { + RfuSetStatus(RFU_STATUS_OK, 0); + } +#endif if (WaitRfuState(FALSE)) { data->state = LL_STATE_TRY_START_ACTIVITY; @@ -770,6 +939,18 @@ static void GetGroupLeaderSentAnOKMessage(u8 *dst, u8 caseId) } } +#if REVISION >= 0xA +static void Leader_DisconnectOnState(struct WirelessLink_Leader * data, u8 state) +{ + if (data->state != state) return; + if (!RfuTryDisconnectLeavingChildren()) return; + data->state = LL_STATE_WAIT_DISCONNECT_CHILD; + DestroyYesNoMenu(); + svc_4f(0); + data->textState = 0; +} +#endif + static bool8 Leader_SetStateIfMemberListChanged(struct WirelessLink_Leader * data, u32 joinedState, u32 droppedState) { switch (LeaderUpdateGroupMembership(data->playerList)) @@ -780,11 +961,23 @@ static bool8 Leader_SetStateIfMemberListChanged(struct WirelessLink_Leader * dat CopyAndTranslatePlayerName(gStringVar2, data->playerList->players[data->playerCount]); Leader_GetAcceptNewMemberPrompt(gStringVar4, sPlayerCurrActivity); data->state = joinedState; +#if REVISION >= 0xA + svc_4f(0); +#endif break; case UNION_ROOM_SPAWN_OUT: +#if REVISION >= 0xA + case UNION_ROOM_SPAWN_OUT_SOON: +#endif RfuSetStatus(RFU_STATUS_OK, 0); +#if REVISION >= 0xA + data->playerCount = LeaderPrunePlayerList(data->playerList); +#endif RedrawListMenu(data->listTaskId); data->state = droppedState; +#if REVISION >= 0xA + svc_4f(0); +#endif return TRUE; } @@ -813,9 +1006,13 @@ static void ItemPrintFunc_PossibleGroupMembers(u8 windowId, u32 id, u8 y) static u8 LeaderUpdateGroupMembership(struct RfuPlayerList * list) { struct WirelessLink_Leader * data = sWirelessLinkMain.leader; - u8 ret = UNION_ROOM_SPAWN_NONE; - u8 i; +#if REVISION >= 0xA s32 id; +#else + u8 ret = UNION_ROOM_SPAWN_NONE; + s32 id; +#endif + u8 i; for (i = 1; i < MAX_RFU_PLAYERS; i++) { @@ -833,7 +1030,10 @@ static u8 LeaderUpdateGroupMembership(struct RfuPlayerList * list) { // No new incoming player data->playerList->players[i].groupScheduledAnim = UNION_ROOM_SPAWN_OUT; +#if REVISION >= 0xA +#else ret = UNION_ROOM_SPAWN_OUT; +#endif } } } @@ -841,6 +1041,31 @@ static u8 LeaderUpdateGroupMembership(struct RfuPlayerList * list) for (id = 0; id < RFU_CHILD_MAX; id++) TryAddIncomingPlayerToList(data->playerList->players, &data->incomingPlayerList->players[id], MAX_RFU_PLAYERS); +#if REVISION >= 0xA + id = 1; + { + struct RfuPlayerList* playerList = data->playerList; + // spawning out, and countdown = 0 => SPAWN_OUT + for (; id < MAX_RFU_PLAYERS; id++) + { + if (playerList->players[id].groupScheduledAnim == UNION_ROOM_SPAWN_OUT && playerList->players[id].newPlayerCountdown == 0) + return UNION_ROOM_SPAWN_OUT; + } + // spawning out, and countdown != 0 => SPAWN_OUT_SOON + for (id = 1; id < MAX_RFU_PLAYERS; id++) + { + if (playerList->players[id].groupScheduledAnim == UNION_ROOM_SPAWN_OUT && playerList->players[id].newPlayerCountdown != 0) + return UNION_ROOM_SPAWN_OUT_SOON; + } + // spawning in, and countdown != 0 => SPAWN_IN + for (id = 0; id < MAX_RFU_PLAYERS; id++) + { + if (playerList->players[id].groupScheduledAnim == UNION_ROOM_SPAWN_IN && playerList->players[id].newPlayerCountdown != 0) + return UNION_ROOM_SPAWN_IN; + } + } + return UNION_ROOM_SPAWN_NONE; +#else if (ret != UNION_ROOM_SPAWN_OUT) { for (id = 0; id < MAX_RFU_PLAYERS; id++) @@ -851,6 +1076,7 @@ static u8 LeaderUpdateGroupMembership(struct RfuPlayerList * list) } return ret; +#endif } static u8 LeaderPrunePlayerList(struct RfuPlayerList * list) @@ -911,9 +1137,20 @@ void TryJoinLinkGroup(void) gSpecialVar_Result = LINKUP_ONGOING; } +#if REVISION >= 0xA +static u8 svc_50_wrapper() { + return svc_50() == TRUE; +} +#endif + static void Task_TryJoinLinkGroup(u8 taskId) { s32 id; +#if REVISION >= 0xA + u8 RfuStatus; + bool8 RfuStatusIsGroup; + u8 handleYN; +#endif struct WirelessLink_Group * data = sWirelessLinkMain.group; switch (data->state) @@ -1011,7 +1248,10 @@ static void Task_TryJoinLinkGroup(u8 taskId) GetYouAskedToJoinGroupPleaseWaitMessage(gStringVar4, sPlayerCurrActivity); if (PrintOnTextbox(&data->textState, gStringVar4)) { +#if REVISION >= 0xA +#else CopyAndTranslatePlayerName(gStringVar1, data->playerList->players[data->leaderId]); +#endif data->state = LG_STATE_MAIN; } break; @@ -1038,71 +1278,158 @@ static void Task_TryJoinLinkGroup(u8 taskId) break; } } - - switch (RfuGetStatus()) +#if REVISION >= 0xA + else +#endif { - case RFU_STATUS_FATAL_ERROR: - data->state = LG_STATE_RFU_ERROR; - break; - case RFU_STATUS_CONNECTION_ERROR: - case RFU_STATUS_JOIN_GROUP_NO: - case RFU_STATUS_LEAVE_GROUP: - data->state = LG_STATE_DISCONNECTED; - break; - case RFU_STATUS_JOIN_GROUP_OK: - GetGroupLeaderSentAnOKMessage(gStringVar4, sPlayerCurrActivity); - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - RfuSetStatus(RFU_STATUS_WAIT_ACK_JOIN_GROUP, 0); - StringCopy(gStringVar1, sLinkGroupActivityNameTexts[sPlayerCurrActivity]); - StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingOtherMembers); - } - break; - case RFU_STATUS_WAIT_ACK_JOIN_GROUP: - if (data->delayBeforePrint > 240) + + switch (RfuGetStatus()) { + case RFU_STATUS_FATAL_ERROR: + data->state = LG_STATE_RFU_ERROR; + break; + case RFU_STATUS_CONNECTION_ERROR: + case RFU_STATUS_JOIN_GROUP_NO: + case RFU_STATUS_LEAVE_GROUP: + data->state = LG_STATE_DISCONNECTED; + break; + case RFU_STATUS_JOIN_GROUP_OK: +#if REVISION >= 0xA + CopyAndTranslatePlayerName(gStringVar1, data->playerList->players[data->leaderId]); +#endif + GetGroupLeaderSentAnOKMessage(gStringVar4, sPlayerCurrActivity); if (PrintOnTextbox(&data->textState, gStringVar4)) { - RfuSetStatus(RFU_STATUS_ACK_JOIN_GROUP, 0); - data->delayBeforePrint = 0; + RfuSetStatus(RFU_STATUS_WAIT_ACK_JOIN_GROUP, 0); +#if REVISION >= 0xA +#else + StringCopy(gStringVar1, sLinkGroupActivityNameTexts[sPlayerCurrActivity]); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingOtherMembers); +#endif + } + break; + case RFU_STATUS_WAIT_ACK_JOIN_GROUP: + if (data->delayBeforePrint > 240) + { +#if REVISION >= 0xA + StringCopy(gStringVar1, sLinkGroupActivityNameTexts[sPlayerCurrActivity]); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingOtherMembers); +#endif + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + RfuSetStatus(RFU_STATUS_ACK_JOIN_GROUP, 0); + data->delayBeforePrint = 0; + } + break; } - } - else - { data->delayBeforePrint++; +#if REVISION >= 0xA + // fallthrough, to not duplicate code + case RFU_STATUS_CHILD_LEAVE_READY: + case RFU_STATUS_CHILD_LEAVE: + case RFU_STATUS_ACK_JOIN_GROUP: + default: + if (JOY_NEW(B_BUTTON)) + { + u8 syscallPlayers = svc_50_wrapper(taskId); + bool8 noPlayers = FALSE; + noPlayers = (syscallPlayers | gReceivedRemoteLinkPlayers) == 0; + if (noPlayers) + { + data->state = LG_STATE_ASK_LEAVE_GROUP; + } + } +#endif + break; } - break; } +#if REVISION >= 0xA +#else if (RfuGetStatus() == RFU_STATUS_OK && JOY_NEW(B_BUTTON)) data->state = LG_STATE_ASK_LEAVE_GROUP; +#endif break; case LG_STATE_ASK_LEAVE_GROUP: if (PrintOnTextbox(&data->textState, gText_UR_QuitBeingMember)) data->state = LG_STATE_ASK_LEAVE_GROUP_HANDLE_INPUT; break; case LG_STATE_ASK_LEAVE_GROUP_HANDLE_INPUT: +#if REVISION >= 0xA + RfuStatus = RfuGetStatus(); + RfuStatusIsGroup = (RfuStatus == RFU_STATUS_JOIN_GROUP_OK || RfuStatus == RFU_STATUS_WAIT_ACK_JOIN_GROUP || RfuStatus == RFU_STATUS_ACK_JOIN_GROUP); + handleYN = gReceivedRemoteLinkPlayers | svc_50_wrapper(); + switch (UnionRoomHandleYesNo(&data->textState, handleYN)) +#else switch (UnionRoomHandleYesNo(&data->textState, RfuGetStatus())) +#endif { case 0: // YES - SendLeaveGroupNotice(); - data->state = LG_STATE_WAIT_LEAVE_GROUP; +#if REVISION >= 0xA + if (RfuStatusIsGroup) +#endif + { + SendLeaveGroupNotice(); + data->state = LG_STATE_WAIT_LEAVE_GROUP; +#if REVISION >= 0xA + data->delayBeforePrint = 0; +#endif + } +#if REVISION >= 0xA + else + { + data->state = LG_STATE_CANCEL_CHOOSE_LEADER; + } +#endif RedrawListMenu(data->listTaskId); break; case 1: // NO case MENU_B_PRESSED: - data->state = LG_STATE_ASK_JOIN_GROUP; +#if REVISION >= 0xA + if (RfuStatusIsGroup) + { + data->state = LG_STATE_MAIN; + if (RfuStatus >= RFU_STATUS_WAIT_ACK_JOIN_GROUP) + { + data->delayBeforePrint = -15; + RfuSetStatus(RFU_STATUS_WAIT_ACK_JOIN_GROUP, 0); + } + } + else +#endif + { + data->state = LG_STATE_ASK_JOIN_GROUP; + } RedrawListMenu(data->listTaskId); break; case -3: data->state = LG_STATE_MAIN; +#if REVISION >= 0xA + if (RfuStatus == RFU_STATUS_WAIT_ACK_JOIN_GROUP) + RfuSetStatus(RFU_STATUS_ACK_JOIN_GROUP, 0); +#endif RedrawListMenu(data->listTaskId); break; } break; case LG_STATE_WAIT_LEAVE_GROUP: +#if REVISION >= 0xA + switch (GetJoinGroupStatus()) + { + case RFU_STATUS_LEAVE_GROUP: + data->state = LG_STATE_DISCONNECTED; + break; + case RFU_STATUS_JOIN_GROUP_NO: + data->state = LG_STATE_CANCEL_CHOOSE_LEADER; + break; + } + if (data->delayBeforePrint > 240) + data->state = LG_STATE_CANCEL_CHOOSE_LEADER; + ++data->delayBeforePrint; +#else if (RfuGetStatus()) data->state = LG_STATE_MAIN; +#endif break; case LG_STATE_CANCEL_CHOOSE_LEADER: // next: LG_STATE_CANCELED case LG_STATE_RFU_ERROR: // next: LG_STATE_RFU_ERROR_SHUTDOWN @@ -1155,6 +1482,9 @@ static void Task_TryJoinLinkGroup(u8 taskId) } break; case LG_STATE_SHUTDOWN: +#if REVISION >= 0xA + DestroyTask_RfuReconnectWithParent(); +#endif DestroyTask(taskId); JoinGroup_EnableScriptContexts(); LinkRfu_Shutdown(); @@ -1557,6 +1887,10 @@ static void Task_StartActivity(u8 taskId) break; } +#if REVISION >= 0xA + svc_SetActivity(sPlayerCurrActivity); +#endif + switch (sPlayerCurrActivity) { case ACTIVITY_BATTLE_SINGLE | IN_UNION_ROOM: @@ -1658,7 +1992,11 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) } break; case 2: +#if REVISION >= 0xA + if (IsLinkTaskFinished() && !gPaletteFade.active) +#else if (!gPaletteFade.active) +#endif { SetLinkStandbyCallback(); data[0]++; @@ -2261,7 +2599,11 @@ void RunUnionRoom(void) ListMenuLoadStdPalAt(BG_PLTT_ID(13), 1); } +#if REVISION >= 0xA +u16 ReadU16(const u8 *ptr) +#else static u16 ReadAsU16(const u8 *ptr) +#endif { return (ptr[1] << 8) | (ptr[0]); } @@ -2281,6 +2623,9 @@ static void ScheduleFieldMessageAndExit(const u8 *src) struct WirelessLink_URoom * uroom = sWirelessLinkMain.uRoom; uroom->state = UR_STATE_PRINT_AND_EXIT; +#if REVISION >= 0xA + uroom->textState = 0; +#endif if (src != gStringVar4) StringExpandPlaceholders(gStringVar4, src); } @@ -2478,21 +2823,37 @@ static void Task_RunUnionRoom(u8 taskId) break; case UR_STATE_TRY_COMMUNICATING: UR_RunTextPrinters(); +#if REVISION >= 0xA + LinkRfu_ForceChangeSpParent(); +#endif switch (RfuGetStatus()) { case RFU_STATUS_NEW_CHILD_DETECTED: HandleCancelActivity(TRUE); uroom->state = UR_STATE_MAIN; +#if REVISION >= 0xA + return; +#else break; +#endif case RFU_STATUS_FATAL_ERROR: case RFU_STATUS_CONNECTION_ERROR: if (IsUnionRoomListenTaskActive() == TRUE) ScheduleFieldMessageAndExit(gText_UR_TrainerAppearsBusy); else + { ScheduleFieldMessageWithFollowupState(UR_STATE_CANCEL_ACTIVITY_LINK_ERROR, gText_UR_TrainerAppearsBusy); +#if REVISION >= 0xA + gReceivedRemoteLinkPlayers = FALSE; +#endif + } sPlayerCurrActivity = IN_UNION_ROOM; +#if REVISION >= 0xA + return; +#else break; +#endif } if (gReceivedRemoteLinkPlayers) @@ -2503,6 +2864,14 @@ static void Task_RunUnionRoom(u8 taskId) } break; case UR_STATE_COMMUNICATING_WAIT_FOR_DATA: +#if REVISION >= 0xA + if (!gReceivedRemoteLinkPlayers || RfuHasErrored()) + { + DestroyTask(FindTaskIdByFunc(Task_ExchangeCards)); + uroom->state = UR_STATE_TRAINER_APPEARS_BUSY; + break; + } +#endif if (!FuncIsActiveTask(Task_ExchangeCards)) { if (sPlayerCurrActivity == (ACTIVITY_TRADE | IN_UNION_ROOM)) @@ -2593,7 +2962,10 @@ static void Task_RunUnionRoom(u8 taskId) case UR_STATE_WAIT_FOR_RESPONSE_TO_REQUEST: if (!gReceivedRemoteLinkPlayers) { +#if REVISION >= 0xA +#else StringCopy(gStringVar4, gText_UR_TrainerBattleBusy); +#endif uroom->state = UR_STATE_TRAINER_APPEARS_BUSY; } else @@ -2625,6 +2997,9 @@ static void Task_RunUnionRoom(u8 taskId) ScheduleFieldMessageWithFollowupState(UR_STATE_HANDLE_DO_SOMETHING_PROMPT_INPUT, gTexts_UR_HiDoSomething[id][playerGender]); break; case UR_STATE_PRINT_CARD_INFO: +#if REVISION >= 0xA + svc_SetActivity(IN_UNION_ROOM | ACTIVITY_CARD); +#endif if (PrintOnTextbox(&uroom->textState, gStringVar4)) { uroom->state = UR_STATE_WAIT_FINISH_READING_CARD; @@ -2653,6 +3028,15 @@ static void Task_RunUnionRoom(u8 taskId) switch (UnionRoomHandleYesNo(&uroom->textState, FALSE)) { case 0: // YES +#if REVISION >= 0xA + // If not allowed by parental controls, act as if user chose No. + if (!svc_CommsAllowedByParentalControls()) + { + playerGender = GetUnionRoomPlayerGender(taskData[1], uroom->playerList); + ScheduleFieldMessageAndExit(gTexts_UR_DeclineChat[playerGender]); + break; + } +#endif CopyBgTilemapBufferToVram(0); sPlayerCurrActivity = ACTIVITY_CHAT | IN_UNION_ROOM; UpdateGameData_SetActivity(ACTIVITY_CHAT | IN_UNION_ROOM, 0, TRUE); @@ -2705,7 +3089,15 @@ static void Task_RunUnionRoom(u8 taskId) if (IsUnionRoomListenTaskActive() == TRUE) ScheduleFieldMessageAndExit(gTexts_UR_ChatDeclined[playerGender]); else + { ScheduleFieldMessageWithFollowupState(UR_STATE_CANCEL_ACTIVITY_LINK_ERROR, gTexts_UR_ChatDeclined[playerGender]); +#if REVISION >= 0xA + gReceivedRemoteLinkPlayers = FALSE; +#endif + } +#if REVISION >= 0xA + break; +#endif } if (gReceivedRemoteLinkPlayers) uroom->state = UR_STATE_START_ACTIVITY_FREE_UROOM; @@ -2760,6 +3152,19 @@ static void Task_RunUnionRoom(u8 taskId) switch (UnionRoomHandleYesNo(&uroom->textState, FALSE)) { case 0: // ACCEPT +#if REVISION >= 0xA + // If this is union room chat: + // Tell the emulator to check if Switch parental controls allow free communication. + // If it is not allowed, then act as if the user selected to deny the request. + if (sPlayerCurrActivity == (IN_UNION_ROOM | ACTIVITY_CHAT) && !svc_CommsAllowedByParentalControls()) + { + uroom->playerSendBuffer[0] = ACTIVITY_DECLINE | IN_UNION_ROOM; + Rfu_SendPacket(uroom->playerSendBuffer); + uroom->state = UR_STATE_DECLINE_ACTIVITY_REQUEST; + GetYouDeclinedTheOfferMessage(gStringVar4, sPlayerCurrActivity); + break; + } +#endif uroom->playerSendBuffer[0] = ACTIVITY_ACCEPT | IN_UNION_ROOM; if (sPlayerCurrActivity == (ACTIVITY_CHAT | IN_UNION_ROOM)) UpdateGameData_SetActivity(sPlayerCurrActivity | IN_UNION_ROOM, GetLinkPlayerInfoFlags(1), FALSE); @@ -3112,6 +3517,9 @@ void InitUnionRoom(void) struct WirelessLink_URoom * data; sUnionRoomPlayerName[0] = EOS; +#if REVISION >= 0xA + // The rest of this function is stubbed out, as if QL_IS_PLAYBACK_STATE is always true. +#else if (QL_IS_PLAYBACK_STATE) return; CreateTask(Task_InitUnionRoom, 0); @@ -3123,6 +3531,7 @@ void InitUnionRoom(void) data->unknown = 0; data->unreadPlayerId = 0; sUnionRoomPlayerName[0] = EOS; +#endif } static void Task_InitUnionRoom(u8 taskId) @@ -3264,9 +3673,13 @@ static u8 HandlePlayerListUpdate(void) } else if (data->playerList->players[j].groupScheduledAnim != UNION_ROOM_SPAWN_OUT) { - // Person may have disconnected. Give them 10 seconds. + // Person may have disconnected. Give them 10 seconds. (15 seconds in rev 10) data->playerList->players[j].timeoutCounter++; +#if REVISION >= 0xA + if (data->playerList->players[j].timeoutCounter >= 900) +#else if (data->playerList->players[j].timeoutCounter >= 600) +#endif { data->playerList->players[j].groupScheduledAnim = UNION_ROOM_SPAWN_OUT; retVal = PLIST_RECENT_UPDATE; @@ -3274,9 +3687,13 @@ static u8 HandlePlayerListUpdate(void) } else if (data->playerList->players[j].groupScheduledAnim == UNION_ROOM_SPAWN_OUT) { - // Person dropped. Wait 15 seconds, then remove them. + // Person dropped. Wait 15 seconds (20 seconds in rev 10), then remove them. data->playerList->players[j].timeoutCounter++; +#if REVISION >= 0xA + if (data->playerList->players[j].timeoutCounter >= 1200) +#else if (data->playerList->players[j].timeoutCounter >= 900) +#endif { ClearRfuPlayerList(&data->playerList->players[j], 1); } @@ -3520,6 +3937,14 @@ static s32 ListMenuHandler_AllItemsAvailable(u8 *state, u8 *windowId, u8 *listMe ClearStdWindowAndFrame(*windowId, TRUE); RemoveWindow(*windowId); *state = 0; +#if REVISION >= 0xA + // If this is the union room chat, and Switch parental controls disallow free communication, + // always act as if Cancel was pressed. + if ((input & 0xFF) == (ACTIVITY_CHAT | IN_UNION_ROOM) && !svc_CommsAllowedByParentalControls()) + { + return LIST_CANCEL; + } +#endif return input; } else if (JOY_NEW(B_BUTTON)) diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 5c31746a9..f680c33ec 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -179,16 +179,32 @@ void CB2_UnionRoomBattle(void) case 50: if (!UpdatePaletteFade()) { +#if REVISION >= 0xA +#else SetLinkStandbyCallback(); +#endif gMain.state++; } break; case 51: if (IsLinkTaskFinished()) { +#if REVISION >= 0xA + SetLinkStandbyCallback(); + gMain.state++; +#else + SetMainCallback2(SetUpPartiesAndStartBattle); +#endif + } + break; +#if REVISION >= 0xA + case 52: + if (IsLinkTaskFinished()) + { SetMainCallback2(SetUpPartiesAndStartBattle); } break; +#endif case 6: if (!gReceivedRemoteLinkPlayers) { diff --git a/src/union_room_chat.c b/src/union_room_chat.c index aedc57fdc..2a4182a3a 100644 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -16,6 +16,7 @@ #include "union_room_chat_display.h" #include "keyboard_text.h" #include "constants/songs.h" +#include "sloopsvc.h" #define MESSAGE_BUFFER_NCHAR 15 @@ -806,6 +807,9 @@ static void ChatEntryRoutine_SendMessage(void) switch (sWork->routineState) { case 0: +#if REVISION >= 0xA + svc_BadWordCheck(sWork->messageEntryBuffer); +#endif if (!gReceivedRemoteLinkPlayers) { GoToRoutine(CHATNETRYROUTINE_HANDLE_INPUT); @@ -1162,6 +1166,9 @@ static void RegisterTextAtRow(void) { u8 *src = UnionRoomChat_GetEndOfMessageEntryBuffer(); StringCopy(sWork->registeredTexts[sWork->currentRow], src); +#if REVISION >= 0xA + svc_BadWordCheck(sWork->registeredTexts[sWork->currentRow]); +#endif sWork->changedRegisteredTexts = TRUE; } diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index 2cfa38167..3eaa34570 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -9,6 +9,7 @@ #include "constants/event_object_movement.h" #include "constants/union_room.h" #include "constants/event_objects.h" +#include "sloopsvc.h" #define UR_SPRITE_START_ID (MAX_SPRITES - MAX_UNION_ROOM_LEADERS) @@ -32,7 +33,7 @@ static void SetUnionRoomObjectFacingDirection(s32 member, s32 leaderId, u8 direc static const u8 sUnionRoomObjGfxIds[GENDER_COUNT][NUM_UNION_ROOM_CLASSES + 2] = { [MALE] = { OBJ_EVENT_GFX_COOLTRAINER_M, - OBJ_EVENT_GFX_BLACKBELT, + OBJ_EVENT_GFX_BLACK_BELT, OBJ_EVENT_GFX_CAMPER, OBJ_EVENT_GFX_YOUNGSTER, OBJ_EVENT_GFX_BOY, @@ -46,7 +47,7 @@ static const u8 sUnionRoomObjGfxIds[GENDER_COUNT][NUM_UNION_ROOM_CLASSES + 2] = OBJ_EVENT_GFX_PICNICKER, OBJ_EVENT_GFX_LASS, OBJ_EVENT_GFX_WOMAN_1, - OBJ_EVENT_GFX_BATTLE_GIRL, + OBJ_EVENT_GFX_CRUSH_GIRL, OBJ_EVENT_GFX_WOMAN_2, OBJ_EVENT_GFX_BEAUTY } @@ -513,6 +514,14 @@ static void SpawnGroupLeaderAndMembers(u32 leaderId, struct RfuGameData * gameDa { case ACTIVITY_NONE | IN_UNION_ROOM: case ACTIVITY_PLYRTALK | IN_UNION_ROOM: +#if REVISION >= 0xA + if ((svc_4b() & SVC4B_EXIT_EARLY) != 0) + { + DespawnGroupLeader(leaderId); + AssembleGroup(leaderId, gameData); + break; + } +#endif SpawnGroupLeader(leaderId, gameData->playerGender, gameData->compatibility.playerTrainerId[0]); for (i = 0; i < MAX_RFU_PLAYERS; i++) DespawnGroupMember(leaderId, i); diff --git a/src/vs_seeker.c b/src/vs_seeker.c index 71b7b1ece..772e5516b 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -644,7 +644,7 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) for (i = 0; i < gMapHeader.events->objectEventCount; i++) { if ((templates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL - || templates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED) + || templates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED) && (templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_RAISE_HAND_AND_STOP || templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_RAISE_HAND_AND_JUMP || templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_RAISE_HAND_AND_SWIM)) @@ -946,7 +946,7 @@ void ClearRematchStateByTrainerId(void) for (i = 0; i < gMapHeader.events->objectEventCount; i++) { - if ((objectEventTemplates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL + if ((objectEventTemplates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL || objectEventTemplates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED) && vsSeekerDataIdx == LookupVsSeekerOpponentInArray(sRematches, GetTrainerFlagFromScript(objectEventTemplates[i].script))) { @@ -1139,7 +1139,7 @@ static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId) case OBJ_EVENT_GFX_BUG_CATCHER: case OBJ_EVENT_GFX_LASS: case OBJ_EVENT_GFX_WOMAN_1: - case OBJ_EVENT_GFX_BATTLE_GIRL: + case OBJ_EVENT_GFX_CRUSH_GIRL: case OBJ_EVENT_GFX_MAN: case OBJ_EVENT_GFX_ROCKER: case OBJ_EVENT_GFX_WOMAN_2: @@ -1152,7 +1152,7 @@ static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId) case OBJ_EVENT_GFX_COOLTRAINER_F: case OBJ_EVENT_GFX_SWIMMER_M_LAND: case OBJ_EVENT_GFX_SWIMMER_F_LAND: - case OBJ_EVENT_GFX_BLACKBELT: + case OBJ_EVENT_GFX_BLACK_BELT: case OBJ_EVENT_GFX_HIKER: case OBJ_EVENT_GFX_SAILOR: return MOVEMENT_TYPE_RAISE_HAND_AND_JUMP; diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index 693e22052..28b0993bc 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -13,6 +13,7 @@ #include "union_room.h" #include "constants/songs.h" #include "constants/union_room.h" +#include "sloopsvc.h" enum { COLOR_NONE, @@ -41,8 +42,8 @@ static struct u8 filler[10]; } * sStatusScreen; +void Task_WirelessCommunicationScreen(u8 taskId); static void CB2_InitWirelessCommunicationScreen(void); -static void Task_WirelessCommunicationScreen(u8 taskId); static void WCSS_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 palIdx); static bool32 UpdateCommunicationCounts(u32 * counts, u32 * lastCounts, u32 * activities, u8 taskId); @@ -134,7 +135,7 @@ static const u8 *const sHeaderTexts[NUM_GROUPTYPES + 1] = { // Activity, group type, number of players // 0 players means the number of players can change and should be counted dynamically // GROUPTYPE_TOTAL have no unique group and are simply counted in the total of "people communicating". -// A handful use NUM_GROUPTYPES, which is invalid, and are changed to GROUPTYPE_TOTAL in Emerald. +// A handful use NUM_GROUPTYPES, which is invalid, and are changed to GROUPTYPE_TOTAL in Emerald (and Revision 10) // UB: GROUPTYPE_NONE (-1) can potentially be used as an index into a u8[4] in CountPlayersInGroupAndGetActivity. static const u8 sActivityGroupInfo[][3] = { {ACTIVITY_BATTLE_SINGLE, GROUPTYPE_BATTLE, 2}, @@ -143,13 +144,23 @@ static const u8 sActivityGroupInfo[][3] = { {ACTIVITY_TRADE, GROUPTYPE_TRADE, 2}, {ACTIVITY_WONDER_CARD, GROUPTYPE_TOTAL, 2}, {ACTIVITY_WONDER_NEWS, GROUPTYPE_TOTAL, 2}, +#if REVISION >= 0xA + {ACTIVITY_POKEMON_JUMP, GROUPTYPE_TOTAL, 0}, + {ACTIVITY_BERRY_CRUSH, GROUPTYPE_TOTAL, 0}, + {ACTIVITY_BERRY_PICK, GROUPTYPE_TOTAL, 0}, +#else {ACTIVITY_POKEMON_JUMP, NUM_GROUPTYPES, 0}, {ACTIVITY_BERRY_CRUSH, NUM_GROUPTYPES, 0}, {ACTIVITY_BERRY_PICK, NUM_GROUPTYPES, 0}, +#endif {ACTIVITY_SEARCH, GROUPTYPE_NONE, 0}, {ACTIVITY_SPIN_TRADE, GROUPTYPE_TRADE, 0}, {ACTIVITY_ITEM_TRADE, GROUPTYPE_NONE, 0}, +#if REVISION >= 0xA + {ACTIVITY_RECORD_CORNER, GROUPTYPE_TOTAL, 0}, +#else {ACTIVITY_RECORD_CORNER, NUM_GROUPTYPES, 0}, +#endif {ACTIVITY_BERRY_BLENDER, GROUPTYPE_NONE, 0}, {ACTIVITY_NONE | IN_UNION_ROOM, GROUPTYPE_UNION, 1}, {ACTIVITY_BATTLE_SINGLE | IN_UNION_ROOM, GROUPTYPE_UNION, 2}, @@ -278,7 +289,7 @@ static void PrintHeaderTexts(void) #define tState data[0] -static void Task_WirelessCommunicationScreen(u8 taskId) +void Task_WirelessCommunicationScreen(u8 taskId) { s32 i; switch (gTasks[taskId].tState) @@ -313,7 +324,11 @@ static void Task_WirelessCommunicationScreen(u8 taskId) PutWindowTilemap(2); CopyWindowToVram(2, COPYWIN_FULL); } +#if REVISION >= 0xA + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON) || svc_53()) +#else if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) +#endif { PlaySE(SE_SELECT); gTasks[sStatusScreen->rfuTaskId].data[15] = 0xFF; @@ -372,6 +387,40 @@ static void WCSS_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * static u32 CountPlayersInGroupAndGetActivity(struct RfuPlayer * player, u32 * groupCounts) { +#if REVISION >= 0xA + u32 activity = player->rfu.data.activity; + if (player->groupScheduledAnim == UNION_ROOM_SPAWN_IN) + { + + u32 i = 0; + const u8 * group_info = &sActivityGroupInfo[0][0]; + const u8 * group_players = &group_info[2]; + const u8 * group_activity = group_info; + s32 offset = 0; + for (; i < ARRAY_COUNT(sActivityGroupInfo); i++) + { + const u8 * group_type = &group_info[1]; + u8 type = ((u8*)offset)[(u32)group_type]; // needed to match, but nobody would write this??? + if (type < MAX_LINK_PLAYERS && activity == *group_activity) + { + u8 k = *group_players; + if (k == 0) + { + s32 j; + for (j = 0; j < RFU_CHILD_MAX; j++) + if (player->rfu.data.partnerInfo[j] != 0) k++; + k++; + } + groupCounts[type] += k; + break; + } + group_players += sizeof(sActivityGroupInfo[0]); + group_activity += sizeof(sActivityGroupInfo[0]); + offset += (u8)sizeof(sActivityGroupInfo[0]); + } + + } +#else u32 activity = player->rfu.data.activity; s32 i, j, k; @@ -398,11 +447,13 @@ static u32 CountPlayersInGroupAndGetActivity(struct RfuPlayer * player, u32 * gr } } - return activity; - #undef group_activity #undef group_type #undef group_players +#endif + + return activity; + } static bool32 HaveCountsChanged(const u32 * curCounts, const u32 * prevCounts) @@ -435,6 +486,9 @@ static bool32 UpdateCommunicationCounts(u32 * groupCounts, u32 * prevGroupCounts } } +#if REVISION >= 0xA + if (HaveCountsChanged(groupCountBuffer, prevGroupCounts)) +#else if (!HaveCountsChanged(groupCountBuffer, prevGroupCounts)) { if (activitiesUpdated == TRUE) @@ -442,16 +496,27 @@ static bool32 UpdateCommunicationCounts(u32 * groupCounts, u32 * prevGroupCounts else return FALSE; } +#endif + { + memcpy(groupCounts, groupCountBuffer, sizeof(groupCountBuffer)); + memcpy(prevGroupCounts, groupCountBuffer, sizeof(groupCountBuffer)); - memcpy(groupCounts, groupCountBuffer, sizeof(groupCountBuffer)); - memcpy(prevGroupCounts, groupCountBuffer, sizeof(groupCountBuffer)); - - groupCounts[GROUPTYPE_TOTAL] = groupCounts[GROUPTYPE_TRADE] - + groupCounts[GROUPTYPE_BATTLE] - + groupCounts[GROUPTYPE_UNION] - #ifdef BUGFIX - + groupCounts[GROUPTYPE_TOTAL] // Missing count for activities not in above groups - #endif - ; + groupCounts[GROUPTYPE_TOTAL] = groupCounts[GROUPTYPE_TRADE] + + groupCounts[GROUPTYPE_BATTLE] + + groupCounts[GROUPTYPE_UNION] + #if defined(BUGFIX) || REVISION >= 0xA + + groupCounts[GROUPTYPE_TOTAL] // Missing count for activities not in above groups + #endif + ; + +#if REVISION >= 0xA + activitiesUpdated = TRUE; +#endif + } + +#if REVISION >= 0xA + return activitiesUpdated; +#else return TRUE; +#endif } diff --git a/sym_bss.txt b/sym_bss.txt index 00c7b1dc6..81e7e2051 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -4,6 +4,7 @@ .include "src/malloc.o" .include "src/text_printer.o" .include "src/sprite.o" + .include "src/sloopsvc.o" .include "src/link.o" .include "src/multiboot.o" .include "src/daycare.o" diff --git a/sym_bss_rev10.txt b/sym_bss_rev10.txt new file mode 100644 index 000000000..1a90ebb38 --- /dev/null +++ b/sym_bss_rev10.txt @@ -0,0 +1,38 @@ + .include "src/gpu_regs.o" + .include "src/dma3_manager.o" + .include "src/bg.o" + .include "src/malloc.o" + .include "src/text_printer.o" + .include "src/librfu_stwi.o" + .include "src/librfu_rfu.o" + .include "src/sprite.o" + .include "src/sloopsvc.o" + .include "src/link.o" + .include "src/multiboot.o" + .include "src/daycare.o" + .include "src/trade.o" + .include "src/play_time.o" + .include "src/overworld.o" + .include "src/field_camera.o" + .include "src/script.o" + .include "src/start_menu.o" + .include "src/tileset_anims.o" + .include "src/sound.o" + .include "src/field_effect.o" + .include "src/pokemon_storage_system_misc.o" + .include "src/easy_chat.o" + .include "src/link_rfu_2.o" + .include "src/link_rfu_3.o" + .include "src/quest_log.o" + .include "src/union_room.o" + .include "src/pokemon_special_anim_scene.o" + .include "src/wireless_communication_status_screen.o" + .include "src/dodrio_berry_picking.o" + .include "src/ereader_helpers.o" + .include "src/digit_obj_util.o" + .include "src/m4a_1.o" + .include "data/sound_data.o" + .include "src/agb_flash.o" + .include "*libgcc.a:dp-bit.o" + .include "*libgcc.a:fp-bit.o" + .include "*libc.a:syscalls.o" diff --git a/sym_common.txt b/sym_common.txt index 1e57985da..9798689ad 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -5,6 +5,7 @@ .include "window.o" .include "text.o" .include "sprite.o" + .include "sloopsvc.o" .include "link.o" .align 4 .include "battle_main.o" diff --git a/sym_common_rev10.txt b/sym_common_rev10.txt new file mode 100644 index 000000000..ce4a446c3 --- /dev/null +++ b/sym_common_rev10.txt @@ -0,0 +1,56 @@ + .include "main.o" + .include "bg.o" + .include "text_printer.o" + .align 4 + .include "window.o" + .include "librfu_stwi.o" + .align 4 + .include "librfu_rfu.o" + .include "text.o" + .include "sprite.o" + .align 4 + .include "sloopsvc.o" + .include "link.o" + .align 4 + .include "battle_main.o" + .include "random.o" + .include "load_save.o" + .include "overworld.o" + .align 4 + .include "fieldmap.o" + .align 4 + .include "field_camera.o" + .include "scrcmd.o" + .include "field_control_avatar.o" + .include "event_data.o" + .include "sound.o" + .include "task.o" + .include "cable_club.o" + .include "image_processing_effects.o" + .include "field_specials.o" + .include "evolution_scene.o" + .include "save.o" + .include "battle_anim_special.o" + .include "save_failed_screen.o" + .align 4 + .include "link_rfu_2.o" + .align 4 + .include "AgbRfu_LinkManager.o" + .align 4 + .include "list_menu.o" + .include "quest_log.o" + .include "union_room.o" + .include "party_menu.o" + .include "help_system.o" + .align 4 + .include "fame_checker.o" + .include "help_system_util.o" + .align 4 + .include "ereader_screen.o" + .align 4 + .include "battle_controller_pokedude.o" + .align 4 + .include "berry_fix_program.o" + .include "m4a.o" + .include "agb_flash.o" + .include "librfu_sio32id.o" diff --git a/sym_ewram_rev10.txt b/sym_ewram_rev10.txt new file mode 100644 index 000000000..cee4e8281 --- /dev/null +++ b/sym_ewram_rev10.txt @@ -0,0 +1,137 @@ + .include "src/main.o" + .include "src/malloc.o" + .include "src/text_printer.o" + .include "src/window.o" + .include "src/window_8bpp.o" + .include "src/sprite.o" + .include "src/string_util.o" + .include "src/link.o" + .space 8 + .include "src/battle_controllers.o" + .include "src/battle_main.o" + .include "src/pokemon.o" + .include "src/daycare.o" + .include "src/load_save.o" + .include "src/trade.o" + .include "src/trade_scene.o" + .include "src/new_game.o" + .include "src/overworld.o" + .include "src/fieldmap.o" + .include "src/field_camera.o" + .include "src/field_player_avatar.o" + .include "src/event_object_movement.o" + .include "src/field_message_box.o" + .include "src/script.o" + .include "src/scrcmd.o" + .include "src/event_data.o" + .include "src/start_menu.o" + .include "src/tileset_anims.o" + .include "src/palette.o" + .include "src/sound.o" + .include "src/battle_anim.o" + .include "src/battle_anim_mons.o" + .include "src/title_screen.o" + .include "src/field_weather.o" + .include "src/battle_setup.o" + .include "src/wild_encounter.o" + .include "src/field_effect.o" + .include "src/scanline_effect.o" + .include "src/option_menu.o" + .include "src/trainer_card.o" + .include "src/pokemon_storage_system_menu.o" + .include "src/pokemon_storage_system_tasks.o" + .include "src/pokemon_storage_system_data.o" + .include "src/pokemon_storage_system_misc.o" + .include "src/script_movement.o" + .include "src/fldeff_cut.o" + .include "src/item_menu_icons.o" + .include "src/item.o" + .include "src/shop.o" + .include "src/special_field_anim.o" + .include "src/script_menu.o" + .include "src/naming_screen.o" + .include "src/money.o" + .include "src/safari_zone.o" + .include "src/item_use.o" + .include "src/battle_anim_effects_1.o" + .include "src/battle_anim_dragon.o" + .include "src/battle_anim_utility_funcs.o" + .include "src/battle_intro.o" + .include "src/easy_chat.o" + .include "src/mon_markings.o" + .include "src/mail.o" + .include "src/menu_helpers.o" + .include "src/region_map.o" + .include "src/battle_ai_script_commands.o" + .include "src/fldeff_rocksmash.o" + .include "src/field_specials.o" + .include "src/battle_records.o" + .include "src/evolution_scene.o" + .include "src/coins.o" + .include "src/battle_transition.o" + .include "src/battle_message.o" + .include "src/save.o" + .include "src/mystery_event_script.o" + .include "src/fldeff_sweetscent.o" + .include "src/learn_move.o" + .include "src/battle_tower.o" + .include "src/player_pc.o" + .include "src/intro.o" + .include "src/hall_of_fame.o" + .include "src/credits.o" + .include "src/diploma.o" + .include "src/save_failed_screen.o" + .include "src/clear_save_data_screen.o" + .include "src/new_menu_helpers.o" + .include "src/tilemap_util.o" + .include "src/map_preview_screen.o" + .include "src/link_rfu_2.o" + .include "src/link_rfu_3.o" + .include "src/easy_chat_2.o" + .include "src/easy_chat_3.o" + .include "src/pokedex_screen.o" + .include "src/list_menu.o" + .include "src/item_menu.o" + .include "src/bag.o" + .include "src/trainer_pokemon_sprites.o" + .include "src/vs_seeker.o" + .include "src/item_pc.o" + .include "src/mailbox_pc.o" + .include "src/menu.o" + .include "src/quest_log.o" + .include "src/help_message.o" + .include "src/quest_log_events.o" + .include "src/union_room.o" + .include "src/union_room_player_avatar.o" + .include "src/union_room_battle.o" + .include "src/pokemon_special_anim.o" + .include "src/party_menu.o" + .include "src/union_room_chat.o" + .include "src/union_room_chat_display.o" + .include "src/union_room_chat_objects.o" + .include "src/help_system.o" + .include "src/fame_checker.o" + .include "src/oak_speech.o" + .include "src/tm_case.o" + .include "src/menu_indicators.o" + .include "src/pokemon_summary_screen.o" + .include "src/help_system_util.o" + .include "src/dynamic_placeholder_text_util.o" + .include "src/berry_pouch.o" + .include "src/slot_machine.o" + .include "src/roamer.o" + .include "src/mystery_gift_menu.o" + .include "src/mystery_gift.o" + .include "src/mystery_gift_link.o" + .include "src/mystery_gift_client.o" + .include "src/mystery_gift_server.o" + .include "src/mystery_gift_show_card.o" + .include "src/mystery_gift_show_news.o" + .include "src/seagallop.o" + .include "src/pokemon_jump.o" + .include "src/berry_crush.o" + .include "src/dodrio_berry_picking.o" + .include "src/teachy_tv.o" + .include "src/digit_obj_util.o" + .include "src/trainer_tower.o" + .include "src/berry_powder.o" diff --git a/tools/aif2pcm/.gitignore b/tools/aif2pcm/.gitignore deleted file mode 100644 index 31531797e..000000000 --- a/tools/aif2pcm/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -aif2pcm - diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile deleted file mode 100644 index dd48a8759..000000000 --- a/tools/aif2pcm/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -CC ?= gcc - -CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 - -LIBS = -lm - -SRCS = main.c extended.c - -ifeq ($(OS),Windows_NT) -EXE := .exe -else -EXE := -endif - -.PHONY: all clean - -all: aif2pcm$(EXE) - @: - -aif2pcm$(EXE): $(SRCS) - $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) - -clean: - $(RM) aif2pcm aif2pcm.exe diff --git a/tools/aif2pcm/extended.c b/tools/aif2pcm/extended.c deleted file mode 100644 index 94449164b..000000000 --- a/tools/aif2pcm/extended.c +++ /dev/null @@ -1,172 +0,0 @@ -/* $Id: extended.c,v 1.8 2006/12/23 11:17:49 toad32767 Exp $ */ -/*- - * Copyright (c) 2005, 2006 by Marco Trillo - * - * Permission is hereby granted, free of charge, to any - * person obtaining a copy of this software and associated - * documentation files (the "Software"), to deal in the - * Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice - * shall be included in all copies or substantial portions of - * the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY - * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE - * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS - * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include - -/* - * Infinite & NAN values - * for non-IEEE systems - */ -#ifndef HUGE_VAL -#ifdef HUGE -#define INFINITE_VALUE HUGE -#define NAN_VALUE HUGE -#endif -#else -#define INFINITE_VALUE HUGE_VAL -#define NAN_VALUE HUGE_VAL -#endif - -/* - * IEEE 754 Extended Precision - * - * Implementation here is the 80-bit extended precision - * format of Motorola 68881, Motorola 68882 and Motorola - * 68040 FPUs, as well as Intel 80x87 FPUs. - * - * See: - * http://www.freescale.com/files/32bit/doc/fact_sheet/BR509.pdf - */ -/* - * Exponent range: [-16383,16383] - * Precision for mantissa: 64 bits with no hidden bit - * Bias: 16383 - */ - -/* - * Write IEEE Extended Precision Numbers - */ -void -ieee754_write_extended(double in, uint8_t* out) -{ - int sgn, exp, shift; - double fraction, t; - unsigned int lexp, hexp; - unsigned long low, high; - - if (in == 0.0) { - memset(out, 0, 10); - return; - } - if (in < 0.0) { - in = fabs(in); - sgn = 1; - } else - sgn = 0; - - fraction = frexp(in, &exp); - - if (exp == 0 || exp > 16384) { - if (exp > 16384) /* infinite value */ - low = high = 0; - else { - low = 0x80000000; - high = 0; - } - exp = 32767; - goto done; - } - fraction = ldexp(fraction, 32); - t = floor(fraction); - low = (unsigned long) t; - fraction -= t; - t = floor(ldexp(fraction, 32)); - high = (unsigned long) t; - - /* Convert exponents < -16382 to -16382 (then they will be - * stored as -16383) */ - if (exp < -16382) { - shift = 0 - exp - 16382; - high >>= shift; - high |= (low << (32 - shift)); - low >>= shift; - exp = -16382; - } - exp += 16383 - 1; /* bias */ - -done: - lexp = ((unsigned int) exp) >> 8; - hexp = ((unsigned int) exp) & 0xFF; - - /* big endian */ - out[0] = ((uint8_t) sgn) << 7; - out[0] |= (uint8_t) lexp; - out[1] = (uint8_t) hexp; - out[2] = (uint8_t) (low >> 24); - out[3] = (uint8_t) ((low >> 16) & 0xFF); - out[4] = (uint8_t) ((low >> 8) & 0xFF); - out[5] = (uint8_t) (low & 0xFF); - out[6] = (uint8_t) (high >> 24); - out[7] = (uint8_t) ((high >> 16) & 0xFF); - out[8] = (uint8_t) ((high >> 8) & 0xFF); - out[9] = (uint8_t) (high & 0xFF); - - return; -} - - -/* - * Read IEEE Extended Precision Numbers - */ -double -ieee754_read_extended(uint8_t* in) -{ - int sgn, exp; - unsigned long low, high; - double out; - - /* Extract the components from the big endian buffer */ - sgn = (int) (in[0] >> 7); - exp = ((int) (in[0] & 0x7F) << 8) | ((int) in[1]); - low = (((unsigned long) in[2]) << 24) - | (((unsigned long) in[3]) << 16) - | (((unsigned long) in[4]) << 8) | (unsigned long) in[5]; - high = (((unsigned long) in[6]) << 24) - | (((unsigned long) in[7]) << 16) - | (((unsigned long) in[8]) << 8) | (unsigned long) in[9]; - - if (exp == 0 && low == 0 && high == 0) - return (sgn ? -0.0 : 0.0); - - switch (exp) { - case 32767: - if (low == 0 && high == 0) - return (sgn ? -INFINITE_VALUE : INFINITE_VALUE); - else - return (sgn ? -NAN_VALUE : NAN_VALUE); - default: - exp -= 16383; /* unbias exponent */ - - } - - out = ldexp((double) low, -31 + exp); - out += ldexp((double) high, -63 + exp); - - return (sgn ? -out : out); -} diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c deleted file mode 100644 index 0824b92da..000000000 --- a/tools/aif2pcm/main.c +++ /dev/null @@ -1,945 +0,0 @@ -// Copyright(c) 2016 huderlem -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#include -#include -#include -#include -#include -#include - -/* extended.c */ -void ieee754_write_extended (double, uint8_t*); -double ieee754_read_extended (uint8_t*); - -#ifdef _MSC_VER - -#define FATAL_ERROR(format, ...) \ -do \ -{ \ - fprintf(stderr, format, __VA_ARGS__); \ - exit(1); \ -} while (0) - -#else - -#define FATAL_ERROR(format, ...) \ -do \ -{ \ - fprintf(stderr, format, ##__VA_ARGS__); \ - exit(1); \ -} while (0) - -#endif // _MSC_VER - -typedef struct { - unsigned long num_samples; - union { - uint8_t *samples8; - uint16_t *samples16; - }; - uint8_t midi_note; - uint8_t sample_size; - bool has_loop; - unsigned long loop_offset; - double sample_rate; - unsigned long real_num_samples; -} AifData; - -struct Bytes { - unsigned long length; - uint8_t *data; -}; - -struct Marker { - unsigned short id; - unsigned long position; - // don't care about the name -}; - -struct Bytes *read_bytearray(const char *filename) -{ - struct Bytes *bytes = malloc(sizeof(struct Bytes)); - FILE *f = fopen(filename, "rb"); - if (!f) - { - FATAL_ERROR("Failed to open '%s' for reading!\n", filename); - } - fseek(f, 0, SEEK_END); - bytes->length = ftell(f); - fseek(f, 0, SEEK_SET); - bytes->data = malloc(bytes->length); - unsigned long read = fread(bytes->data, bytes->length, 1, f); - fclose(f); - if (read <= 0) - { - FATAL_ERROR("Failed to read data from '%s'!\n", filename); - } - return bytes; -} - -void write_bytearray(const char *filename, struct Bytes *bytes) -{ - FILE *f = fopen(filename, "wb"); - if (!f) - { - FATAL_ERROR("Failed to open '%s' for writing!\n", filename); - } - fwrite(bytes->data, bytes->length, 1, f); - fclose(f); -} - -void free_bytearray(struct Bytes *bytes) -{ - free(bytes->data); - free(bytes); -} - -char *get_file_extension(char *filename) -{ - char *index = strrchr(filename, '.'); - if (!index || index == filename) - { - return NULL; - } - return index + 1; -} - -char *new_file_extension(char *filename, char *ext) -{ - char *index = strrchr(filename, '.'); - if (!index || index == filename) - { - index = filename + strlen(filename); - } - int length = index - filename; - char *new_filename = malloc(length + 1 + strlen(ext) + 1); - if (new_filename) - { - strcpy(new_filename, filename); - new_filename[length] = '.'; - strcpy(new_filename + length + 1, ext); - } - return new_filename; -} - -void read_aif(struct Bytes *aif, AifData *aif_data) -{ - aif_data->has_loop = false; - aif_data->num_samples = 0; - - unsigned long pos = 0; - char chunk_name[5]; chunk_name[4] = '\0'; - char chunk_type[5]; chunk_type[4] = '\0'; - - // Check for FORM Chunk - memcpy(chunk_name, &aif->data[pos], 4); - pos += 4; - if (strcmp(chunk_name, "FORM") != 0) - { - FATAL_ERROR("Input .aif file has invalid header Chunk '%s'!\n", chunk_name); - } - - // Read size of whole file. - unsigned long whole_chunk_size = aif->data[pos++] << 24; - whole_chunk_size |= (aif->data[pos++] << 16); - whole_chunk_size |= (aif->data[pos++] << 8); - whole_chunk_size |= (uint8_t)aif->data[pos++]; - - unsigned long expected_whole_chunk_size = aif->length - 8; - if (whole_chunk_size != expected_whole_chunk_size) - { - FATAL_ERROR("FORM Chunk ckSize '%lu' doesn't match actual size '%lu'!\n", whole_chunk_size, expected_whole_chunk_size); - } - - // Check for AIFF Form Type - memcpy(chunk_type, &aif->data[pos], 4); - pos += 4; - if (strcmp(chunk_type, "AIFF") != 0) - { - FATAL_ERROR("FORM Type is '%s', but it must be AIFF!", chunk_type); - } - - struct Marker *markers = NULL; - unsigned short num_markers = 0, loop_start = 0, loop_end = 0; - unsigned long num_sample_frames = 0; - - // Read all the Chunks to populate the AifData struct. - while ((pos + 8) < aif->length) - { - // Read Chunk id - memcpy(chunk_name, &aif->data[pos], 4); - pos += 4; - - unsigned long chunk_size = (aif->data[pos++] << 24); - chunk_size |= (aif->data[pos++] << 16); - chunk_size |= (aif->data[pos++] << 8); - chunk_size |= aif->data[pos++]; - - if ((pos + chunk_size) > aif->length) - { - FATAL_ERROR("%s chunk at 0x%lx reached end of file before finishing\n", chunk_name, pos); - } - - if (strcmp(chunk_name, "COMM") == 0) - { - short num_channels = (aif->data[pos++] << 8); - num_channels |= (uint8_t)aif->data[pos++]; - if (num_channels != 1) - { - FATAL_ERROR("numChannels (%d) in the COMM Chunk must be 1!\n", num_channels); - } - - num_sample_frames = (aif->data[pos++] << 24); - num_sample_frames |= (aif->data[pos++] << 16); - num_sample_frames |= (aif->data[pos++] << 8); - num_sample_frames |= (uint8_t)aif->data[pos++]; - - aif_data->sample_size = (aif->data[pos++] << 8); - aif_data->sample_size |= (uint8_t)aif->data[pos++]; - if (aif_data->sample_size != 8 && aif_data->sample_size != 16) - { - FATAL_ERROR("sampleSize (%d) in the COMM Chunk must be 8 or 16!\n", aif_data->sample_size); - } - - double sample_rate = ieee754_read_extended((uint8_t*)(aif->data + pos)); - pos += 10; - - aif_data->sample_rate = sample_rate; - - if (aif_data->num_samples == 0) - { - aif_data->num_samples = num_sample_frames; - } - } - else if (strcmp(chunk_name, "MARK") == 0) - { - num_markers = (aif->data[pos++] << 8); - num_markers |= (uint8_t)aif->data[pos++]; - - if (markers) - { - FATAL_ERROR("More than one MARK Chunk in file!\n"); - } - - markers = calloc(num_markers, sizeof(struct Marker)); - - // Read each marker. - for (int i = 0; i < num_markers; i++) - { - unsigned short marker_id = (aif->data[pos++] << 8); - marker_id |= (uint8_t)aif->data[pos++]; - - unsigned long marker_position = (aif->data[pos++] << 24); - marker_position |= (aif->data[pos++] << 16); - marker_position |= (aif->data[pos++] << 8); - marker_position |= (uint8_t)aif->data[pos++]; - - // Marker name is a Pascal-style string. - uint8_t marker_name_size = aif->data[pos++]; - // We don't actually need the marker name for anything anymore. - /*char *marker_name = (char *)malloc((marker_name_size + 1) * sizeof(char)); - memcpy(marker_name, &aif->data[pos], marker_name_size); - marker_name[marker_name_size] = '\0';*/ - pos += marker_name_size + !(marker_name_size & 1); - - markers[i].id = marker_id; - markers[i].position = marker_position; - } - } - else if (strcmp(chunk_name, "INST") == 0) - { - uint8_t midi_note = (uint8_t)aif->data[pos++]; - - aif_data->midi_note = midi_note; - - // Skip over data we don't need. - pos += 7; - - unsigned short loop_type = (aif->data[pos++] << 8); - loop_type |= (uint8_t)aif->data[pos++]; - - if (loop_type) - { - loop_start = (aif->data[pos++] << 8); - loop_start |= (uint8_t)aif->data[pos++]; - - loop_end = (aif->data[pos++] << 8); - loop_end |= (uint8_t)aif->data[pos++]; - } - else - { - // Skip NoLooping sustain loop. - pos += 4; - } - - // Skip release loop, we don't need it. - pos += 6; - } - else if (strcmp(chunk_name, "SSND") == 0) - { - // Skip offset and blockSize - pos += 8; - - unsigned long num_samples = chunk_size - 8; - if (aif_data->sample_size == 8) - { - uint8_t *sample_data = (uint8_t *)malloc(num_samples * sizeof(uint8_t)); - memcpy(sample_data, &aif->data[pos], num_samples); - - aif_data->samples8 = sample_data; - aif_data->real_num_samples = num_samples; - } - else - { - uint16_t *sample_data = (uint16_t *)malloc(num_samples * sizeof(uint16_t)); - uint16_t *sample_data_swapped = (uint16_t *)malloc(num_samples * sizeof(uint16_t)); - memcpy(sample_data, &aif->data[pos], num_samples); - for (long unsigned i = 0; i < num_samples; i++) - { - sample_data_swapped[i] = __builtin_bswap16(sample_data[i]); - } - - aif_data->samples16 = sample_data_swapped; - aif_data->real_num_samples = num_samples; - free(sample_data); - } - pos += chunk_size - 8; - } - else - { - // Skip over unsupported chunks. - pos += chunk_size; - } - } - - if (markers) - { - // Resolve loop points. - struct Marker *cur_marker = markers; - - // Grab loop start point. - for (int i = 0; i < num_markers; i++, cur_marker++) - { - if (cur_marker->id == loop_start) - { - aif_data->loop_offset = cur_marker->position; - aif_data->has_loop = true; - break; - } - } - - cur_marker = markers; - - // Grab loop end point. - for (int i = 0; i < num_markers; i++, cur_marker++) - { - if (cur_marker->id == loop_end) - { - if (cur_marker->position < aif_data->loop_offset) { - aif_data->loop_offset = cur_marker->position; - aif_data->has_loop = true; - } - aif_data->num_samples = cur_marker->position; - break; - } - } - - free(markers); - } -} - -// This is a table of deltas between sample values in compressed PCM data. -const int gDeltaEncodingTable[] = { - 0, 1, 4, 9, 16, 25, 36, 49, - -64, -49, -36, -25, -16, -9, -4, -1, -}; - -#define POSITIVE_DELTAS_START 0 -#define POSITIVE_DELTAS_END 8 - -#define NEGATIVE_DELTAS_START 8 -#define NEGATIVE_DELTAS_END 16 - -struct Bytes *delta_decompress(struct Bytes *delta, unsigned int expected_length) -{ - struct Bytes *pcm = malloc(sizeof(struct Bytes)); - pcm->length = expected_length; - pcm->data = malloc(pcm->length + 0x40); - - uint8_t hi, lo; - unsigned int i = 0; - unsigned int j = 0; - int k; - int8_t base; - while (i < delta->length) - { - base = (int8_t)delta->data[i++]; - pcm->data[j++] = (uint8_t)base; - if (i >= delta->length) - { - break; - } - if (j >= pcm->length) - { - break; - } - lo = delta->data[i] & 0xf; - base += gDeltaEncodingTable[lo]; - pcm->data[j++] = base; - i++; - if (i >= delta->length) - { - break; - } - if (j >= pcm->length) - { - break; - } - for (k = 0; k < 31; k++) - { - hi = (delta->data[i] >> 4) & 0xf; - base += gDeltaEncodingTable[hi]; - pcm->data[j++] = base; - if (j >= pcm->length) - { - break; - } - lo = delta->data[i] & 0xf; - base += gDeltaEncodingTable[lo]; - pcm->data[j++] = base; - i++; - if (i >= delta->length) - { - break; - } - if (j >= pcm->length) - { - break; - } - } - if (j >= pcm->length) - { - break; - } - } - - pcm->length = j; - return pcm; -} - -#define U8_TO_S8(value) ((value) < 128 ? (value) : (value) - 256) -#define ABS(value) ((value) >= 0 ? (value) : -(value)) - -int get_delta_index(uint8_t sample, uint8_t prev_sample) -{ - int best_error = INT_MAX; - int best_index = -1; - int delta_table_start_index; - int delta_table_end_index; - int sample_signed = U8_TO_S8(sample); - int prev_sample_signed = U8_TO_S8(prev_sample); - - // if we're going up (or equal), only choose positive deltas - if (prev_sample_signed <= sample_signed) { - delta_table_start_index = POSITIVE_DELTAS_START; - delta_table_end_index = POSITIVE_DELTAS_END; - } else { - delta_table_start_index = NEGATIVE_DELTAS_START; - delta_table_end_index = NEGATIVE_DELTAS_END; - } - - for (int i = delta_table_start_index; i < delta_table_end_index; i++) - { - uint8_t new_sample = prev_sample + gDeltaEncodingTable[i]; - int new_sample_signed = U8_TO_S8(new_sample); - int error = ABS(new_sample_signed - sample_signed); - - if (error < best_error) - { - best_error = error; - best_index = i; - } - } - - return best_index; -} - -struct Bytes *delta_compress(struct Bytes *pcm) -{ - struct Bytes *delta = malloc(sizeof(struct Bytes)); - // estimate the length so we can malloc - int num_blocks = pcm->length / 64; - delta->length = num_blocks * 33; - - int extra = pcm->length % 64; - if (extra) - { - delta->length += 1; - extra -= 1; - } - if (extra) - { - delta->length += 1; - extra -= 1; - } - if (extra) - { - delta->length += (extra + 1) / 2; - } - - delta->data = malloc(delta->length + 33); - - unsigned int i = 0; - unsigned int j = 0; - int k; - uint8_t base; - int delta_index; - - while (i < pcm->length) - { - base = pcm->data[i++]; - delta->data[j++] = base; - - if (i >= pcm->length) - { - break; - } - delta_index = get_delta_index(pcm->data[i++], base); - base += gDeltaEncodingTable[delta_index]; - delta->data[j++] = delta_index; - - for (k = 0; k < 31; k++) - { - if (i >= pcm->length) - { - break; - } - delta_index = get_delta_index(pcm->data[i++], base); - base += gDeltaEncodingTable[delta_index]; - delta->data[j] = (delta_index << 4); - - if (i >= pcm->length) - { - break; - } - delta_index = get_delta_index(pcm->data[i++], base); - base += gDeltaEncodingTable[delta_index]; - delta->data[j++] |= delta_index; - } - } - - delta->length = j; - - return delta; -} - -#define STORE_U32_LE(dest, value) \ -do { \ - *(dest) = (value) & 0xff; \ - *((dest) + 1) = ((value) >> 8) & 0xff; \ - *((dest) + 2) = ((value) >> 16) & 0xff; \ - *((dest) + 3) = ((value) >> 24) & 0xff; \ -} while (0) - -#define LOAD_U32_LE(var, src) \ -do { \ - (var) = *(src); \ - (var) |= (*((src) + 1) << 8); \ - (var) |= (*((src) + 2) << 16); \ - (var) |= (*((src) + 3) << 24); \ -} while (0) - -// Reads an .aif file and produces a .pcm file containing an array of 8-bit samples. -void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) -{ - struct Bytes *aif = read_bytearray(aif_filename); - AifData aif_data = {0}; - read_aif(aif, &aif_data); - - // Convert 16-bit to 8-bit if necessary - if (aif_data.sample_size == 16) - { - aif_data.real_num_samples /= 2; - uint8_t *converted_samples = malloc(aif_data.real_num_samples * sizeof(uint8_t)); - for (unsigned long i = 0; i < aif_data.real_num_samples; i++) - { - converted_samples[i] = aif_data.samples16[i] >> 8; - } - free(aif_data.samples16); - aif_data.samples8 = converted_samples; - } - - int header_size = 0x10; - struct Bytes *pcm; - struct Bytes output = {0,0}; - - if (compress) - { - struct Bytes *input = malloc(sizeof(struct Bytes)); - input->data = aif_data.samples8; - input->length = aif_data.real_num_samples; - pcm = delta_compress(input); - free(input); - } - else - { - pcm = malloc(sizeof(struct Bytes)); - pcm->data = aif_data.samples8; - pcm->length = aif_data.real_num_samples; - } - output.length = header_size + pcm->length; - output.data = malloc(output.length); - - uint32_t pitch_adjust = (uint32_t)(aif_data.sample_rate * 1024); - uint32_t loop_offset = (uint32_t)(aif_data.loop_offset); - uint32_t adjusted_num_samples = (uint32_t)(aif_data.num_samples - 1); - uint32_t flags = 0; - if (aif_data.has_loop) flags |= 0x40000000; - if (compress) flags |= 1; - STORE_U32_LE(output.data + 0, flags); - STORE_U32_LE(output.data + 4, pitch_adjust); - STORE_U32_LE(output.data + 8, loop_offset); - STORE_U32_LE(output.data + 12, adjusted_num_samples); - memcpy(&output.data[header_size], pcm->data, pcm->length); - write_bytearray(pcm_filename, &output); - - free(aif->data); - free(aif); - free(pcm); - free(output.data); - free(aif_data.samples8); -} - -// Reads a .pcm file containing an array of 8-bit samples and produces an .aif file. -// See http://www-mmsp.ece.mcgill.ca/documents/audioformats/aiff/Docs/AIFF-1.3.pdf for .aif file specification. -void pcm2aif(const char *pcm_filename, const char *aif_filename, uint32_t base_note) -{ - struct Bytes *pcm = read_bytearray(pcm_filename); - - AifData *aif_data = malloc(sizeof(AifData)); - - uint32_t flags; - LOAD_U32_LE(flags, pcm->data + 0); - aif_data->has_loop = flags & 0x40000000; - bool compressed = flags & 1; - - uint32_t pitch_adjust; - LOAD_U32_LE(pitch_adjust, pcm->data + 4); - aif_data->sample_rate = pitch_adjust / 1024.0; - - LOAD_U32_LE(aif_data->loop_offset, pcm->data + 8); - LOAD_U32_LE(aif_data->num_samples, pcm->data + 12); - aif_data->num_samples += 1; - - if (compressed) - { - struct Bytes *delta = pcm; - uint8_t *pcm_data = pcm->data; - delta->length -= 0x10; - delta->data += 0x10; - pcm = delta_decompress(delta, aif_data->num_samples); - free(pcm_data); - free(delta); - } - else - { - pcm->length -= 0x10; - pcm->data += 0x10; - } - - aif_data->samples8 = malloc(pcm->length); - memcpy(aif_data->samples8, pcm->data, pcm->length); - - struct Bytes *aif = malloc(sizeof(struct Bytes)); - aif->length = 54 + 60 + pcm->length; - aif->data = malloc(aif->length); - - long pos = 0; - - // First, write the FORM header chunk. - // FORM Chunk ckID - aif->data[pos++] = 'F'; - aif->data[pos++] = 'O'; - aif->data[pos++] = 'R'; - aif->data[pos++] = 'M'; - - // FORM Chunk ckSize - unsigned long form_size = pos; - unsigned long data_size = aif->length - 8; - aif->data[pos++] = ((data_size >> 24) & 0xFF); - aif->data[pos++] = ((data_size >> 16) & 0xFF); - aif->data[pos++] = ((data_size >> 8) & 0xFF); - aif->data[pos++] = (data_size & 0xFF); - - // FORM Chunk formType - aif->data[pos++] = 'A'; - aif->data[pos++] = 'I'; - aif->data[pos++] = 'F'; - aif->data[pos++] = 'F'; - - // Next, write the Common Chunk - // Common Chunk ckID - aif->data[pos++] = 'C'; - aif->data[pos++] = 'O'; - aif->data[pos++] = 'M'; - aif->data[pos++] = 'M'; - - // Common Chunk ckSize - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 18; - - // Common Chunk numChannels - aif->data[pos++] = 0; - aif->data[pos++] = 1; // 1 channel - - // Common Chunk numSampleFrames - aif->data[pos++] = ((aif_data->num_samples >> 24) & 0xFF); - aif->data[pos++] = ((aif_data->num_samples >> 16) & 0xFF); - aif->data[pos++] = ((aif_data->num_samples >> 8) & 0xFF); - aif->data[pos++] = (aif_data->num_samples & 0xFF); - - // Common Chunk sampleSize - aif->data[pos++] = 0; - aif->data[pos++] = 8; // 8 bits per sample - - // Common Chunk sampleRate - //double sample_rate = pitch_adjust / 1024.0; - uint8_t sample_rate_buffer[10]; - ieee754_write_extended(aif_data->sample_rate, sample_rate_buffer); - for (int i = 0; i < 10; i++) - { - aif->data[pos++] = sample_rate_buffer[i]; - } - - if (aif_data->has_loop) - { - - // Marker Chunk ckID - aif->data[pos++] = 'M'; - aif->data[pos++] = 'A'; - aif->data[pos++] = 'R'; - aif->data[pos++] = 'K'; - - // Marker Chunk ckSize - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 12 + (aif_data->has_loop ? 12 : 0); - - // Marker Chunk numMarkers - aif->data[pos++] = 0; - aif->data[pos++] = (aif_data->has_loop ? 2 : 1); - - // Marker loop start - aif->data[pos++] = 0; - aif->data[pos++] = 1; // id = 1 - - long loop_start = aif_data->loop_offset; - aif->data[pos++] = ((loop_start >> 24) & 0xFF); - aif->data[pos++] = ((loop_start >> 16) & 0xFF); - aif->data[pos++] = ((loop_start >> 8) & 0xFF); - aif->data[pos++] = (loop_start & 0xFF); // position - - aif->data[pos++] = 5; // pascal-style string length - aif->data[pos++] = 'S'; - aif->data[pos++] = 'T'; - aif->data[pos++] = 'A'; - aif->data[pos++] = 'R'; - aif->data[pos++] = 'T'; // markerName - - // Marker loop end - aif->data[pos++] = 0; - aif->data[pos++] = (aif_data->has_loop ? 2 : 1); // id = 2 - - long loop_end = aif_data->num_samples; - aif->data[pos++] = ((loop_end >> 24) & 0xFF); - aif->data[pos++] = ((loop_end >> 16) & 0xFF); - aif->data[pos++] = ((loop_end >> 8) & 0xFF); - aif->data[pos++] = (loop_end & 0xFF); // position - - aif->data[pos++] = 3; // pascal-style string length - aif->data[pos++] = 'E'; - aif->data[pos++] = 'N'; - aif->data[pos++] = 'D'; - } - - // Instrument Chunk ckID - aif->data[pos++] = 'I'; - aif->data[pos++] = 'N'; - aif->data[pos++] = 'S'; - aif->data[pos++] = 'T'; - - // Instrument Chunk ckSize - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 20; - - aif->data[pos++] = base_note; // baseNote - aif->data[pos++] = 0; // detune - aif->data[pos++] = 0; // lowNote - aif->data[pos++] = 127; // highNote - aif->data[pos++] = 1; // lowVelocity - aif->data[pos++] = 127; // highVelocity - aif->data[pos++] = 0; // gain (hi) - aif->data[pos++] = 0; // gain (lo) - - // Instrument Chunk sustainLoop - aif->data[pos++] = 0; - aif->data[pos++] = 1; // playMode = ForwardLooping - - aif->data[pos++] = 0; - aif->data[pos++] = 1; // beginLoop marker id - - aif->data[pos++] = 0; - aif->data[pos++] = 2; // endLoop marker id - - // Instrument Chunk releaseLoop - aif->data[pos++] = 0; - aif->data[pos++] = 1; // playMode = ForwardLooping - - aif->data[pos++] = 0; - aif->data[pos++] = 1; // beginLoop marker id - - aif->data[pos++] = 0; - aif->data[pos++] = 2; // endLoop marker id - - // Finally, write the Sound Data Chunk - // Sound Data Chunk ckID - aif->data[pos++] = 'S'; - aif->data[pos++] = 'S'; - aif->data[pos++] = 'N'; - aif->data[pos++] = 'D'; - - // Sound Data Chunk ckSize - unsigned long sound_data_size = pcm->length + 8; - aif->data[pos++] = ((sound_data_size >> 24) & 0xFF); - aif->data[pos++] = ((sound_data_size >> 16) & 0xFF); - aif->data[pos++] = ((sound_data_size >> 8) & 0xFF); - aif->data[pos++] = (sound_data_size & 0xFF); - - // Sound Data Chunk offset - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 0; - - // Sound Data Chunk blockSize - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 0; - aif->data[pos++] = 0; - - // Sound Data Chunk soundData - for (unsigned int i = 0; i < aif_data->loop_offset; i++) - { - aif->data[pos++] = aif_data->samples8[i]; - } - - int j = 0; - for (unsigned int i = aif_data->loop_offset; i < pcm->length; i++) - { - int pcm_index = aif_data->loop_offset + (j++ % (pcm->length - aif_data->loop_offset)); - aif->data[pos++] = aif_data->samples8[pcm_index]; - } - - aif->length = pos; - - // Go back and rewrite ckSize - data_size = aif->length - 8; - aif->data[form_size + 0] = ((data_size >> 24) & 0xFF); - aif->data[form_size + 1] = ((data_size >> 16) & 0xFF); - aif->data[form_size + 2] = ((data_size >> 8) & 0xFF); - aif->data[form_size + 3] = (data_size & 0xFF); - - write_bytearray(aif_filename, aif); - - free(aif->data); - free(aif); -} - -void usage(void) -{ - fprintf(stderr, "Usage: aif2pcm bin_file [aif_file]\n"); - fprintf(stderr, " aif2pcm aif_file [bin_file] [--compress]\n"); -} - -int main(int argc, char **argv) -{ - if (argc < 2) - { - usage(); - exit(1); - } - - char *input_file = argv[1]; - char *extension = get_file_extension(input_file); - char *output_file; - bool compressed = false; - - if (argc > 3) - { - for (int i = 3; i < argc; i++) - { - if (strcmp(argv[i], "--compress") == 0) - { - compressed = true; - } - } - } - - if (strcmp(extension, "aif") == 0 || strcmp(extension, "aiff") == 0) - { - if (argc >= 3) - { - output_file = argv[2]; - aif2pcm(input_file, output_file, compressed); - } - else - { - output_file = new_file_extension(input_file, "bin"); - aif2pcm(input_file, output_file, compressed); - free(output_file); - } - } - else if (strcmp(extension, "bin") == 0) - { - if (argc >= 3) - { - output_file = argv[2]; - pcm2aif(input_file, output_file, 60); - } - else - { - output_file = new_file_extension(input_file, "aif"); - pcm2aif(input_file, output_file, 60); - free(output_file); - } - } - else - { - FATAL_ERROR("Input file must be .aif or .bin: '%s'\n", input_file); - } - - return 0; -} diff --git a/tools/mid2agb/agb.cpp b/tools/mid2agb/agb.cpp index caa6f0ecd..5b7924d01 100644 --- a/tools/mid2agb/agb.cpp +++ b/tools/mid2agb/agb.cpp @@ -273,54 +273,53 @@ void PrintMemAcc(const Event& event) case 0x05: PrintByte("MEMACC, mem_mem_sub, 0x%02X, 0x%02X", s_memaccParam1, event.param2); break; - // TODO: everything else case 0x06: + PrintByte("MEMACC, mem_beq, 0x%02X, %u", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x07: + PrintByte("MEMACC, mem_bne, 0x%02X, %u", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x08: + PrintByte("MEMACC, mem_bhi, 0x%02X, %u", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x09: + PrintByte("MEMACC, mem_bhs, 0x%02X, %u", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x0A: + PrintByte("MEMACC, mem_bls, 0x%02X, %u", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x0B: + PrintByte("MEMACC, mem_blo, 0x%02X, %u", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x0C: + PrintByte("MEMACC, mem_mem_beq, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x0D: + PrintByte("MEMACC, mem_mem_bne, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x0E: + PrintByte("MEMACC, mem_mem_bhi, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x0F: + PrintByte("MEMACC, mem_mem_bhs, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x10: + PrintByte("MEMACC, mem_mem_bls, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; case 0x11: - break; - case 0x46: - break; - case 0x47: - break; - case 0x48: - break; - case 0x49: - break; - case 0x4A: - break; - case 0x4B: - break; - case 0x4C: - break; - case 0x4D: - break; - case 0x4E: - break; - case 0x4F: - break; - case 0x50: - break; - case 0x51: + PrintByte("MEMACC, mem_mem_blo, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + PrintWord("%s_%u_L%u", g_asmLabel.c_str(), g_agbTrack, s_memaccParam2); break; default: break; diff --git a/tools/wav2agb/.gitignore b/tools/wav2agb/.gitignore new file mode 100644 index 000000000..271540565 --- /dev/null +++ b/tools/wav2agb/.gitignore @@ -0,0 +1,10 @@ +*.o +*.exe +*.s +*.gba +*.sdf + +wav2agb +Debug +Release +.vs diff --git a/tools/aif2pcm/LICENSE b/tools/wav2agb/LICENSE similarity index 77% rename from tools/aif2pcm/LICENSE rename to tools/wav2agb/LICENSE index 966b92bd6..d52bf8ee6 100644 --- a/tools/aif2pcm/LICENSE +++ b/tools/wav2agb/LICENSE @@ -1,5 +1,6 @@ -Copyright (c) 2016 huderlem -Copyright (c) 2005, 2006 by Marco Trillo +The MIT License (MIT) + +Copyright (c) 2016 ipatix Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -8,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tools/wav2agb/Makefile b/tools/wav2agb/Makefile new file mode 100644 index 000000000..a38f71758 --- /dev/null +++ b/tools/wav2agb/Makefile @@ -0,0 +1,23 @@ +CXX ?= g++ + +CXXFLAGS := -Wall -Werror -std=c++17 -O2 + +SRCS := $(wildcard *.cpp) +HEADERS := $(wildcard *.h) + +EXE := +ifeq ($(OS),Windows_NT) + EXE := .exe +endif +BINARY = wav2agb$(EXE) + +.PHONY: all clean + +all: $(BINARY) + @: + +$(BINARY): $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) $(BINARY) diff --git a/tools/wav2agb/README.md b/tools/wav2agb/README.md new file mode 100644 index 000000000..3b8b32e9b --- /dev/null +++ b/tools/wav2agb/README.md @@ -0,0 +1,55 @@ +# wav2agb +"wav2agb" is a tool to convert standard .wav files to GBA compatible .s or .bin files. Intended to convert .wav files for the use with the mp2k/m4a sound driver. + +This copy has been slightly modified from [ipatix's original implementation](https://github.com/ipatix/wav2agb) in the following ways: +1. Support outputting `.bin` files with a command line option `-b, --binary`. (The original only supports outputting `.s` assembly files.) +2. Support reading an override "pitch" value from a custom `agbp` RIFF chunk. + - This is needed to properly match some samples, due to float-point rounding errors when attempting to infer the pitch/sample rate from the .wav file's sample rate. + - If the custom `agbp` chunk isn't present, it will simply use the .wav's sample rate to calculate this "pitch" value. +3. Support reading an override "loop end" value from a custom `agbl` RIFF chunk. + - This is needed to properly match vanilla samples, due their their inherent off-by-one error (the last sample is mistakenly ignored). + - This `agbl` chunk can be added to existing .wav files with the `--set-agbl` option (described below). +4. Optionally omits trailing padding from compressed output. + +Usage: +``` +Usage: wav2agb [options] [] + +Options: +-s, --symbol | symbol name for wave header (default: file name) +-l, --lookahead | DPCM compression lookahead 1..8 (default: 3) +-c, --compress | compress output with DPCM +-f, --fast-compress | compress output with DPCM fast +--no-pad | omit trailing padding in compressed output +-b, --binary | output raw binary instead of assembly +--loop-start | override loop start (integer) +--loop-end | override loop end (integer) +--tune | override tuning (float) +--key | override midi key (int) +--rate | override base samplerate (int) +--set-agbl | adds the custom agbl chunk to the given input .wav file +``` + +Flag -c enables compression (only supported by Pokemon Games) + +## Adding agbl Chunk to WAV Files + +The `--set-agbl` option allows you to add or update the custom `agbl` chunk in a WAV file. When this option is used, `wav2agb` will output a WAV file with the agbl chunk added, rather than converting to `.s` or `.bin` format. + +The loop-end value can be specified as either: +- **Positive value**: Used as an absolute sample position +- **Negative value**: Treated as an offset from the end of the file + +This is useful for correcting the off-by-one loop-end error in vanilla samples. The typical fix is `--set-agbl -1`, which sets the loop-end to `(total_samples - 1)`. + +Example: +```bash +# Set agbl to (total_samples - 1), the most common case for fixing the off-by-one error +wav2agb --set-agbl -1 input.wav + +# Set agbl chunk to specific sample position 12345 +wav2agb --set-agbl 12345 input.wav output.wav + +# If no output file is specified, the input file is modified in place +wav2agb --set-agbl -1 input.wav +``` diff --git a/tools/wav2agb/converter.cpp b/tools/wav2agb/converter.cpp new file mode 100644 index 000000000..c826e0a78 --- /dev/null +++ b/tools/wav2agb/converter.cpp @@ -0,0 +1,466 @@ +#include "converter.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "wav_file.h" + +static void agb_out(std::ofstream& ofs, const char *msg, ...) { + char buf[256]; + va_list args; + va_start(args, msg); + vsnprintf(buf, sizeof(buf), msg, args); + va_end(args); + ofs << buf; +} + +static void data_write(std::ofstream& ofs, uint32_t& block_pos, int data, bool hex) { + if (block_pos++ == 0) { + if (hex) + agb_out(ofs, "\n .byte 0x%02X", data); + else + agb_out(ofs, "\n .byte %4d", data); + } else { + if (hex) + agb_out(ofs, ", 0x%02X", data); + else + agb_out(ofs, ", %4d", data); + } + block_pos %= 16; +} + +static void bin_write_u8(std::vector& data, uint8_t value) { + data.push_back(value); +} + +static void bin_write_u32_le(std::vector& data, uint32_t value) { + data.push_back(static_cast(value & 0xFF)); + data.push_back(static_cast((value >> 8) & 0xFF)); + data.push_back(static_cast((value >> 16) & 0xFF)); + data.push_back(static_cast((value >> 24) & 0xFF)); +} + +template +const T& clamp(const T& v, const T& lo, const T& hi) { + return (v < lo) ? lo : (hi < v) ? hi : v; +} + +static void convert_uncompressed(wav_file& wf, std::ofstream& ofs) +{ + int loop_sample = 0; + + uint32_t block_pos = 0; + + for (size_t i = 0; i < wf.loopEnd; i++) { + double ds; + wf.readData(i, &ds, 1); + // TODO apply dither noise + int s = clamp(static_cast(floor(ds * 128.0)), -128, 127); + + if (wf.loopEnabled && i == wf.loopStart) + loop_sample = s; + + data_write(ofs, block_pos, s, false); + } + + data_write(ofs, block_pos, loop_sample, false); +} + +static void convert_uncompressed_bin(wav_file& wf, std::vector& data) +{ + for (size_t i = 0; i < wf.loopEnd; i++) { + double ds; + wf.readData(i, &ds, 1); + // TODO apply dither noise + int s = clamp(static_cast(floor(ds * 128.0)), -128, 127); + + bin_write_u8(data, static_cast(s)); + } + + // Align to 4 bytes. + while (data.size() % 4 != 0) { + bin_write_u8(data, 0); + } +} + +static uint32_t wav_loop_start; +static bool wav_loop_start_override = false; +static uint32_t wav_loop_end; +static bool wav_loop_end_override = false; +static double wav_tune; +static bool wav_tune_override = false; +static uint8_t wav_key; +static bool wav_key_override = false; +static uint32_t wav_rate; +static bool wav_rate_override = false; + +static bool dpcm_verbose = false; +static bool dpcm_lookahead_fast = false; +static bool dpcm_include_padding = true; +static size_t dpcm_enc_lookahead = 3; +static const size_t DPCM_BLK_SIZE = 0x40; +static const std::vector dpcmLookupTable = { + 0, 1, 4, 9, 16, 25, 36, 49, -64, -49, -36, -25, -16, -9, -4, -1 +}; +static const std::vector dpcmIndexTable = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 +}; +static const std::vector> dpcmFastLookupTable = { + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, {8}, + {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {8, 9}, {9, 10}, {9, 10}, + {9, 10}, {9, 10}, {9, 10}, {9, 10}, {9, 10}, {9, 10}, {9, 10}, {9, 10}, {9, 10}, {9, 10}, {9, 10}, {10, 11}, {10, 11}, {10, 11}, {10, 11}, {10, 11}, + {10, 11}, {10, 11}, {10, 11}, {10, 11}, {10, 11}, {10, 11}, {11, 12}, {11, 12}, {11, 12}, {11, 12}, {11, 12}, {11, 12}, {11, 12}, {11, 12}, {11, 12}, {12, 13}, + {12, 13}, {12, 13}, {12, 13}, {12, 13}, {12, 13}, {12, 13}, {13, 14}, {13, 14}, {13, 14}, {13, 14}, {13, 14}, {14, 15}, {14, 15}, {14, 15}, {0, 15}, {0, 1, 15}, + {1, 0}, {1, 2}, {1, 2}, {2, 1}, {2, 3}, {2, 3}, {2, 3}, {2, 3}, {3, 2}, {3, 4}, {3, 4}, {3, 4}, {3, 4}, {3, 4}, {3, 4}, {4, 3}, + {4, 5}, {4, 5}, {4, 5}, {4, 5}, {4, 5}, {4, 5}, {4, 5}, {4, 5}, {5, 4}, {5, 6}, {5, 6}, {5, 6}, {5, 6}, {5, 6}, {5, 6}, {5, 6}, + {5, 6}, {5, 6}, {5, 6}, {6, 5}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, + {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7}, {7} +}; + +static int squared(int x) { return x * x; } + +static void dpcm_lookahead( + int& minimumError, size_t& minimumErrorIndex, + const double *sampleBuf, const size_t lookahead, const int prevLevel) +{ + if (lookahead == 0) { + minimumError = 0; + return; + } + + minimumError = std::numeric_limits::max(); + minimumErrorIndex = dpcmLookupTable.size(); + const int s = clamp(static_cast(floor(sampleBuf[0] * 128.0)), -128, 127); + const std::vector indexCandicateSet = dpcm_lookahead_fast? dpcmFastLookupTable[s - prevLevel + 255]: dpcmIndexTable; + + for (auto i : indexCandicateSet) { + int newLevel = prevLevel + dpcmLookupTable[i]; + + int recMinimumError; + size_t recMinimumErrorIndex; + + // TODO apply dither noise + int errorEstimation = squared(s - newLevel); + if (errorEstimation >= minimumError) + continue; + + dpcm_lookahead(recMinimumError, recMinimumErrorIndex, + sampleBuf + 1, lookahead - 1, newLevel); + + // TODO weigh the error squared + int error = squared(s - newLevel) + recMinimumError; + if (error < minimumError) { + if (newLevel <= 127 && newLevel >= -128) { + minimumError = error; + minimumErrorIndex = i; + } + } + } +} + +static double calculate_snr(const std::vector& uncompressedData, const std::vector& decompressedData) +{ + int sum_son = 0; + int sum_mum = 0; + + assert(uncompressedData.size() == decompressedData.size()); + + for (size_t i = 0; i < uncompressedData.size(); i++) { + const int s = clamp(static_cast(floor(uncompressedData[i] * 128.0)), -128, 127) + 128; + sum_son += s * s; + const int sub = decompressedData[i] + 128 - s; + sum_mum += sub * sub; + } + + if (sum_mum == 0) { + return 100; + } + + return 10 * std::log10((double)sum_son / sum_mum); +} + +template +static void convert_dpcm_impl(wav_file& wf, InitialSampleWriter writeInitialSample, CompressedDataWriter writeCompressedData) +{ + int minimumError; + size_t minimumErrorIndex; + + std::vector uncompressedData; + std::vector decompressedData; + + const auto startTime = std::chrono::high_resolution_clock::now(); + + for (size_t i = 0; i < wf.loopEnd; i += DPCM_BLK_SIZE) { + double ds[DPCM_BLK_SIZE]; + size_t samples_in_block = std::min(DPCM_BLK_SIZE, wf.loopEnd - i); + wf.readData(i, ds, samples_in_block); + // Pad remaining samples in block with zeros if needed + for (size_t j = samples_in_block; j < DPCM_BLK_SIZE; j++) { + ds[j] = 0.0; + } + if (dpcm_verbose) { + uncompressedData.insert(uncompressedData.end(), std::begin(ds), std::end(ds)); + } + // TODO apply dither noise + int s = clamp(static_cast(floor(ds[0] * 128.0)), -128, 127); + + writeInitialSample(s); + if (dpcm_verbose) { + decompressedData.push_back(s); + } + + size_t innerLoopCount = 1; + size_t samples_to_process = dpcm_include_padding ? DPCM_BLK_SIZE : samples_in_block; + uint8_t outData = 0; + size_t sampleBufReadLen; + + goto initial_loop_enter; + + do { + if (innerLoopCount >= samples_to_process) + break; + sampleBufReadLen = std::min(dpcm_enc_lookahead, DPCM_BLK_SIZE - innerLoopCount); + dpcm_lookahead( + minimumError, minimumErrorIndex, + &ds[innerLoopCount], sampleBufReadLen, s); + outData = static_cast((minimumErrorIndex & 0xF) << 4); + s += dpcmLookupTable[minimumErrorIndex]; + if (dpcm_verbose) { + decompressedData.push_back(s); + } + innerLoopCount += 1; +initial_loop_enter: + if (innerLoopCount >= samples_to_process) + break; + sampleBufReadLen = std::min(dpcm_enc_lookahead, DPCM_BLK_SIZE - innerLoopCount); + dpcm_lookahead( + minimumError, minimumErrorIndex, + &ds[innerLoopCount], sampleBufReadLen, s); + outData |= static_cast(minimumErrorIndex & 0xF); + s += dpcmLookupTable[minimumErrorIndex]; + innerLoopCount += 1; + if (dpcm_verbose) { + decompressedData.push_back(s); + } + writeCompressedData(outData); + } while (innerLoopCount < DPCM_BLK_SIZE); + } + + const auto endTime = std::chrono::high_resolution_clock::now(); + + if (dpcm_verbose) { + const auto dur = std::chrono::duration_cast(endTime - startTime); + const double durSecs = static_cast(dur.count()) / 1000000000.0; + printf("SNR: %.2fdB, run time: %.2fs\n", calculate_snr(uncompressedData, decompressedData), durSecs); + } +} + +static void convert_dpcm(wav_file& wf, std::ofstream& ofs) +{ + uint32_t block_pos = 0; + convert_dpcm_impl(wf, + [&](int s) { data_write(ofs, block_pos, s, false); }, + [&](uint8_t outData) { data_write(ofs, block_pos, outData, true); }); +} + +static void convert_dpcm_bin(wav_file& wf, std::vector& data) +{ + convert_dpcm_impl(wf, + [&](int s) { bin_write_u8(data, static_cast(s)); }, + [&](uint8_t outData) { bin_write_u8(data, outData); }); +} + +void enable_dpcm_verbose() +{ + dpcm_verbose = true; +} + +void enable_dpcm_lookahead_fast() +{ + dpcm_lookahead_fast = true; +} + +void disable_dpcm_padding() +{ + dpcm_include_padding = false; +} + +void set_dpcm_lookahead(size_t lookahead) +{ + dpcm_enc_lookahead = clamp(lookahead, 1, 8); +} + +void set_wav_loop_start(uint32_t start) +{ + wav_loop_start = start; + wav_loop_start_override = true; +} + +void set_wav_loop_end(uint32_t end) +{ + wav_loop_end = end; + wav_loop_end_override = true; +} + +void set_wav_tune(double tune) +{ + wav_tune = tune; + wav_tune_override = true; +} + +void set_wav_key(uint8_t key) +{ + wav_key = key; + wav_key_override = true; +} + +void set_wav_rate(uint32_t rate) +{ + wav_rate = rate; + wav_rate_override = true; +} + +void convert(const std::string& wav_file_str, const std::string& out_file_str, + const std::string& sym, cmp_type ct, out_type ot) +{ + wav_file wf(wav_file_str); + + // check command line overrides + if (wav_loop_start_override) { + wf.loopStart = std::min(wav_loop_start, wf.loopEnd); + wf.loopEnabled = true; + } + if (wav_loop_end_override) { + wf.loopEnd = std::min(wav_loop_end, wf.loopEnd); + } + if (wav_tune_override) { + wf.tuning = wav_tune; + } + if (wav_key_override) { + wf.midiKey = wav_key; + } + if (wav_rate_override) { + wf.sampleRate = wav_rate; + } + + uint8_t fmt; + if (ct == cmp_type::none) + fmt = 0; + else if (ct == cmp_type::dpcm) + fmt = 1; + else + throw std::runtime_error("convert: invalid compression type"); + + double pitch; + if (wf.midiKey == 60 && wf.tuning == 0.0) { + pitch = wf.sampleRate; + } else { + pitch = wf.sampleRate * pow(2.0, (60.0 - wf.midiKey) / 12.0 + wf.tuning / 1200.0); + } + + uint32_t pitch_value; + if (wf.agbPitch != 0) { + pitch_value = wf.agbPitch; + } else { + pitch_value = static_cast(pitch * 1024.0); + } + + uint32_t loop_end = wf.loopEnd; + if (wf.agbLoopEnd != 0) { + loop_end = wf.agbLoopEnd; + } + + if (ot == out_type::binary) { + // Binary output mode + std::vector bin_data; + + // Write header (16 bytes) + // Bytes 0-3: flags (format in bit 0, loop in bit 30) + uint32_t flags = fmt; + if (wf.loopEnabled) + flags |= 0x40000000; + bin_write_u32_le(bin_data, flags); + + // Bytes 4-7: pitch + bin_write_u32_le(bin_data, pitch_value); + + // Bytes 8-11: loop start + bin_write_u32_le(bin_data, wf.loopStart); + + // Bytes 12-15: loop end + bin_write_u32_le(bin_data, loop_end); + + // Write sample data + if (ct == cmp_type::none) + convert_uncompressed_bin(wf, bin_data); + else if (ct == cmp_type::dpcm) + convert_dpcm_bin(wf, bin_data); + else + throw std::runtime_error("convert: invalid compression type"); + + // Write binary file + std::ofstream fout(out_file_str, std::ios::out | std::ios::binary); + if (!fout.is_open()) { + perror("ofstream"); + throw std::runtime_error("unable to open output file"); + } + fout.write(reinterpret_cast(bin_data.data()), bin_data.size()); + fout.close(); + } else { + // Assembly output mode + std::ofstream fout(out_file_str, std::ios::out); + if (!fout.is_open()) { + perror("ofstream"); + throw std::runtime_error("unable to open output file"); + } + + agb_out(fout, " .section .rodata\n"); + agb_out(fout, " .global %s\n", sym.c_str()); + agb_out(fout, " .align 2\n\n%s:\n\n", sym.c_str()); + + agb_out(fout, " .byte 0x%X, 0x0, 0x0, 0x%X\n", fmt, wf.loopEnabled ? 0x40 : 0x0); + agb_out(fout, " .word 0x%08X @ Mid-C ~%f\n", pitch_value, pitch); + agb_out(fout, " .word %u, %u\n", wf.loopStart, loop_end); + + if (ct == cmp_type::none) + convert_uncompressed(wf, fout); + else if (ct == cmp_type::dpcm) + convert_dpcm(wf, fout); + else + throw std::runtime_error("convert: invalid compression type"); + + agb_out(fout, "\n\n .end\n"); + fout.close(); + } +} diff --git a/tools/wav2agb/converter.h b/tools/wav2agb/converter.h new file mode 100644 index 000000000..df59ebe2d --- /dev/null +++ b/tools/wav2agb/converter.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +enum class cmp_type { + none, dpcm +}; + +enum class out_type { + assembly, binary +}; + +void enable_dpcm_verbose(); +void enable_dpcm_lookahead_fast(); +void disable_dpcm_padding(); +void set_dpcm_lookahead(size_t lookahead); +void set_wav_loop_start(uint32_t start); +void set_wav_loop_end(uint32_t end); +void set_wav_tune(double tune); +void set_wav_key(uint8_t key); +void set_wav_rate(uint32_t rate); + +void convert(const std::string&, const std::string&, + const std::string& sym, cmp_type ct, out_type ot); diff --git a/tools/wav2agb/test_fast_compress.sh b/tools/wav2agb/test_fast_compress.sh new file mode 100644 index 000000000..3ef56b4d9 --- /dev/null +++ b/tools/wav2agb/test_fast_compress.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +for l in $(seq 1 8) +do + echo lookahead="$l": + wav2agb "$1" -c -l "$l" --verbose + echo lookahead="$l" fast: + wav2agb "$1" -f -l "$l" --verbose +done diff --git a/tools/wav2agb/wav2agb.cpp b/tools/wav2agb/wav2agb.cpp new file mode 100644 index 000000000..2d4a84517 --- /dev/null +++ b/tools/wav2agb/wav2agb.cpp @@ -0,0 +1,247 @@ +#include +#include +#include +#include +#include + +#include + +#include "converter.h" +#include "wav_file.h" + +static void usage() { + fprintf(stderr, "wav2agb\n"); + fprintf(stderr, "\n"); + fprintf(stderr, "Usage: wav2agb [options] []\n"); + fprintf(stderr, "\n"); + fprintf(stderr, "Options:\n"); + fprintf(stderr, "-s, --symbol | symbol name for wave header (default: file name)\n"); + fprintf(stderr, "-l, --lookahead | DPCM compression lookahead 1..8 (default: 3)\n"); + fprintf(stderr, "-c, --compress | compress output with DPCM\n"); + fprintf(stderr, "-f, --fast-compress | compress output with DPCM fast\n"); + fprintf(stderr, "--no-pad | omit trailing padding in compressed output\n"); + fprintf(stderr, "-b, --binary | output raw binary instead of assembly\n"); + fprintf(stderr, "--loop-start | override loop start (integer)\n"); + fprintf(stderr, "--loop-end | override loop end (integer)\n"); + fprintf(stderr, "--tune | override tuning (float)\n"); + fprintf(stderr, "--key | override midi key (int)\n"); + fprintf(stderr, "--rate | override base samplerate (int)\n"); + fprintf(stderr, "--set-agbl | adds the custom agbl chunk to the given input .wav file\n"); + exit(1); +} + +static void version() { + printf("wav2agb v1.1 (c) 2019 ipatix\n"); + exit(0); +} + +static void die(const char *msg, ...) { + va_list args; + va_start(args, msg); + vfprintf(stderr, msg, args); + va_end(args); + exit(1); +} + +static void fix_str(std::string& str) { + // replaces all characters that are not alphanumerical + for (size_t i = 0; i < str.size(); i++) { + if (str[i] >= 'a' && str[i] <= 'z') + continue; + if (str[i] >= 'A' && str[i] <= 'Z') + continue; + if (str[i] >= '0' && str[i] <= '9' && i > 0) + continue; + str[i] = '_'; + } +} + +static char path_seperators[] = { + '/', +#ifdef _WIN32 + '\\', +#endif + '\0' +}; + +static std::string filename_without_ext(const std::string& str) { + size_t last_path_seperator = 0; + char *sep = path_seperators; + while (*sep) { + size_t pos = str.find_last_of(*sep); + if (pos != std::string::npos) + last_path_seperator = std::max(pos, last_path_seperator); + sep += 1; + } + size_t file_ext_dot_pos = str.find_last_of('.'); + if (file_ext_dot_pos == std::string::npos) + return std::string(str); + assert(file_ext_dot_pos != last_path_seperator); + if (file_ext_dot_pos > last_path_seperator) + return str.substr(0, file_ext_dot_pos); + return std::string(str); +} + +static std::string filename_without_dir(const std::string& str) { + size_t last_path_seperator = 0; + bool path_seperator_found = false; + char *sep = path_seperators; + while (*sep) { + size_t pos = str.find_last_of(*sep); + if (pos != std::string::npos) { + last_path_seperator = std::max(pos, last_path_seperator); + path_seperator_found = true; + } + sep += 1; + } + if (str.size() > 0 && path_seperator_found) { + return str.substr(last_path_seperator + 1); + } else { + return std::string(str); + } +} + +static cmp_type arg_compress = cmp_type::none; +static out_type arg_output_type = out_type::assembly; +static std::string arg_sym; +static bool arg_input_file_read = false; +static bool arg_output_file_read = false; +static std::string arg_input_file; +static std::string arg_output_file; +static bool arg_set_agbl = false; +static int32_t arg_agbl_value = 0; + +int main(int argc, char *argv[]) { + try { + if (argc == 1) + usage(); + + for (int i = 1; i < argc; i++) { + std::string st(argv[i]); + if (st == "-s" || st == "--symbol") { + if (++i >= argc) + die("-s: missing symbol name\n"); + arg_sym = argv[i]; + fix_str(arg_sym); + } else if (st == "-c" || st == "--compress") { + arg_compress = cmp_type::dpcm; + } else if (st == "-f" || st == "--compress-fast") { + arg_compress = cmp_type::dpcm; + enable_dpcm_lookahead_fast(); + } else if (st == "--no-pad") { + disable_dpcm_padding(); + } else if (st == "-b" || st == "--binary") { + arg_output_type = out_type::binary; + } else if (st == "--verbose") { + enable_dpcm_verbose(); + } else if (st == "-l" || st == "--lookahead") { + if (++i >= argc) + die("-l: missing parameter"); + set_dpcm_lookahead(std::stoul(argv[i], nullptr, 10)); + } else if (st == "--version") { + version(); + } else if (st == "--loop-start") { + if (++i >= argc) + die("--loop-start: missing parameter"); + uint32_t start = static_cast(std::stoul(argv[i], nullptr, 10)); + set_wav_loop_start(start); + } else if (st == "--loop-end") { + if (++i >= argc) + die("--loop-end: missing parameter"); + uint32_t end = static_cast(std::stoul(argv[i], nullptr, 10)); + set_wav_loop_end(end); + } else if (st == "--tune") { + if (++i >= argc) + die("--tune: missing parameter"); + double tune = std::stod(argv[i], nullptr); + set_wav_tune(tune); + } else if (st == "--key") { + if (++i >= argc) + die("--key: missing parameter"); + int key = std::stoi(argv[i], nullptr, 10); + if (key < 0) key = 0; + if (key > 127) key = 127; + set_wav_key(static_cast(key)); + } else if (st == "--rate") { + if (++i >= argc) + die("--rate: missing parameter"); + uint32_t rate = static_cast(std::stoul(argv[i], nullptr, 10)); + set_wav_rate(rate); + } else if (st == "--set-agbl") { + if (++i >= argc) + die("--set-agbl: missing parameter"); + arg_agbl_value = std::stoi(argv[i], nullptr, 10); + arg_set_agbl = true; + } else { + if (st == "--") { + if (++i >= argc) + die("--: missing file name\n"); + } + if (!arg_input_file_read) { + arg_input_file = argv[i]; + if (arg_input_file.size() < 1) + die("empty input file name\n"); + arg_input_file_read = true; + } else if (!arg_output_file_read) { + arg_output_file = argv[i]; + if (arg_output_file.size() < 1) + die("empty output file name\n"); + arg_output_file_read = true; + } else { + die("Too many files specified\n"); + } + } + } + + // check arguments + if (!arg_input_file_read) { + die("No input file specified\n"); + } + + if (!arg_output_file_read) { + // create output file name if none is provided + if (arg_set_agbl) { + arg_output_file = arg_input_file; + } else if (arg_output_type == out_type::binary) { + arg_output_file = filename_without_ext(arg_input_file) + ".bin"; + } else { + arg_output_file = filename_without_ext(arg_input_file) + ".s"; + } + arg_output_file_read = true; + } + + if (arg_sym.size() == 0) { + arg_sym = filename_without_dir(filename_without_ext(arg_output_file)); + fix_str(arg_sym); + } + + if (arg_set_agbl) { + // Parse the WAV file once to get both chunks and metadata + wav_file wav(arg_input_file); + + // Calculate actual loop-end value + uint32_t loop_end_value; + if (arg_agbl_value < 0) { + // Negative value: offset from end of samples + int64_t calculated = static_cast(wav.numSamples) + arg_agbl_value; + if (calculated < 0) { + die("--set-agbl: negative offset %d exceeds total samples %u\n", + arg_agbl_value, wav.numSamples); + } + loop_end_value = static_cast(calculated); + } else { + // Positive value: use directly + loop_end_value = static_cast(arg_agbl_value); + } + + write_wav_with_agbl_chunk(arg_output_file, wav.chunks, loop_end_value); + return 0; + } + + convert(arg_input_file, arg_output_file, arg_sym, arg_compress, arg_output_type); + return 0; + } catch (const std::exception& e) { + fprintf(stderr, "std lib error:\n%s\n", e.what()); + } + return 1; +} diff --git a/tools/wav2agb/wav_file.cpp b/tools/wav2agb/wav_file.cpp new file mode 100644 index 000000000..79cfed5d7 --- /dev/null +++ b/tools/wav2agb/wav_file.cpp @@ -0,0 +1,374 @@ +#include "wav_file.h" + +#include +#include +#include +#include +#include + +static uint32_t read_u32(std::ifstream& ifs) +{ + uint8_t lenBytes[4]; + ifs.read(reinterpret_cast(lenBytes), sizeof(lenBytes)); + uint32_t retval = lenBytes[0] | (lenBytes[1] << 8) | (lenBytes[2] << 16) | (lenBytes[3] << 24); + return retval; +} + +static void write_u32(std::ofstream& ofs, uint32_t value) +{ + uint8_t bytes[4]; + bytes[0] = value & 0xFF; + bytes[1] = (value >> 8) & 0xFF; + bytes[2] = (value >> 16) & 0xFF; + bytes[3] = (value >> 24) & 0xFF; + ofs.write(reinterpret_cast(bytes), sizeof(bytes)); +} + +//static uint16_t read_u16(std::ifstream& ifs) +//{ +// uint8_t lenBytes[2]; +// ifs.read(reinterpret_cast(lenBytes), sizeof(lenBytes)); +// uint16_t retval = uint16_t(lenBytes[0] | (lenBytes[1] << 8)); +// return retval; +//} + +static std::string read_str(std::ifstream& ifs, size_t len) +{ + std::vector buf(len); + ifs.read(buf.data(), buf.size()); + return std::string(buf.data(), buf.size()); +} + +static std::vector read_arr(std::ifstream& ifs, size_t len) +{ + std::vector buf(len); + ifs.read(reinterpret_cast(buf.data()), buf.size()); + return buf; +} + +static uint16_t arr_u16(const std::vector& arr, size_t pos) +{ + uint16_t val = uint16_t(arr.at(pos) | (arr.at(pos + 1) << 8)); + return val; +} + +static uint32_t arr_u32(const std::vector& arr, size_t pos) +{ + uint32_t val = uint32_t(arr.at(pos) | (arr.at(pos + 1) << 8) | + (arr.at(pos + 2) << 16) | (arr.at(pos + 3) << 24)); + return val; +} + +static const size_t loadChunkSize = 2048; + +uint32_t wav_file::fmt_size() const +{ + if (fmt == format_type::u8) + return 1; + else if (fmt == format_type::s16) + return 2; + else if (fmt == format_type::s24) + return 3; + else if (fmt == format_type::s32) + return 4; + else if (fmt == format_type::f32) + return 4; + else if (fmt == format_type::f64) + return 8; + else + throw std::runtime_error("INTERNAL ERROR: invalid format type"); +} + +wav_file::wav_file(const std::string& path) : loadBuffer(loadChunkSize) +{ + ifs.exceptions(std::ios::badbit | std::ios::eofbit); + ifs.open(path, std::ios::binary); + if (!ifs.good()) + throw std::runtime_error("failed to open file: " + path + ", reason: " + strerror(errno)); + if (!ifs.is_open()) + throw std::runtime_error("failed to open file: " + path + ", reason: " + strerror(errno)); + + ifs.seekg(0, ifs.end); + std::streampos len = ifs.tellg(); + ifs.seekg(0, ifs.beg); + + std::string chunkId = read_str(ifs, 4); + if (chunkId != "RIFF") + throw std::runtime_error("RIFF ID invalid"); + uint32_t mainChunkLen = read_u32(ifs); + if (mainChunkLen + 8 != len) + throw std::runtime_error("RIFF chunk len (=" + + std::to_string(mainChunkLen) + + ") doesn't match file len (=" + + std::to_string(len) + + ")"); + std::string riffType = read_str(ifs, 4); + if (riffType != "WAVE") + throw std::runtime_error("WAVE ID invalid"); + + bool dataChunkFound = false; + bool fmtChunkFound = false; + // search all chunks + std::streampos curPos; + while ((curPos = ifs.tellg()) + std::streampos(8) <= len) { + chunkId = read_str(ifs, 4); + uint32_t chunkLen = read_u32(ifs); + if (curPos + std::streampos(8) + std::streampos(chunkLen) > len) + throw std::runtime_error("ERROR: chunk goes beyond end of file: offset=" + std::to_string(curPos)); + + std::vector chunkData = read_arr(ifs, chunkLen); + WavChunk chunk; + chunk.id = chunkId; + chunk.data = chunkData; + this->chunks.push_back(chunk); + + if (chunkId == "fmt ") { + fmtChunkFound = true; + uint16_t fmtTag = arr_u16(chunkData, 0); + uint16_t numChannels = arr_u16(chunkData, 2); + if (numChannels != 1) + throw std::runtime_error("ERROR: input file is NOT mono"); + this->sampleRate = arr_u32(chunkData, 4); + uint16_t block_align = arr_u16(chunkData, 12); + uint16_t bits_per_sample = arr_u16(chunkData, 14); + if (fmtTag == 1) { + // integer + if (block_align == 1 && bits_per_sample == 8) + this->fmt = format_type::u8; + else if (block_align == 2 && bits_per_sample == 16) + this->fmt = format_type::s16; + else if (block_align == 3 && bits_per_sample == 24) + this->fmt = format_type::s24; + else if (block_align == 4 && bits_per_sample == 32) + this->fmt = format_type::s32; + else + throw std::runtime_error("ERROR: unsupported integer format combination"); + } else if (fmtTag == 3) { + // float + if (block_align == 4 && bits_per_sample == 32) + this->fmt = format_type::f32; + else if (block_align == 8 && bits_per_sample == 64) + this->fmt = format_type::f64; + else + throw std::runtime_error("ERROR: unsupported float format combination"); + } else { + throw std::runtime_error("ERROR: unsupported format code: " + std::to_string(fmtTag)); + } + } else if (chunkId == "data") { + dataChunkFound = true; + // For data chunk, we need to track position in the file for later reading + // The data was already read into chunkData and saved to chunks vector + // But we need to calculate the position for the readData function + // Since we already read the data, we're now past it in the file + dataChunkPos = curPos + std::streampos(8); // Skip chunk ID and size + dataChunkEndPos = dataChunkPos + std::streampos(chunkLen); + } else if (chunkId == "smpl") { + uint32_t midiUnityNote = arr_u32(chunkData, 12); + this->midiKey = static_cast(std::min(midiUnityNote, 127u)); + uint32_t midiPitchFraction = arr_u32(chunkData, 16); + // the values below convert the uint32_t range to 0.0 to 100.0 range + this->tuning = static_cast(midiPitchFraction) / (4294967296.0 * 100.0); + uint32_t numLoops = arr_u32(chunkData, 28); + if (numLoops > 1) + throw std::runtime_error("ERROR: too many loops in smpl chunk"); + if (numLoops == 1) { + uint32_t loopType = arr_u32(chunkData, 36 + 4); + if (loopType != 0) + throw std::runtime_error("ERROR: loop type not supported: " + std::to_string(loopType)); + this->loopStart = arr_u32(chunkData, 36 + 8); + // sampler chunks tell the last sample to be played (so including rather than excluding), thus +1 + this->loopEnd = arr_u32(chunkData, 36 + 12) + 1; + this->loopEnabled = true; + } + } else if (chunkId == "agbp") { + // Custom chunk: exact GBA pitch value (sample_rate * 1024) + // This allows perfect round-trip conversion without period-based precision loss + if (chunkLen >= 4) { + this->agbPitch = arr_u32(chunkData, 0); + } + } else if (chunkId == "agbl") { + // Custom chunk: exact loop end override (handles off-by-one from original game) + if (chunkLen >= 4) { + this->agbLoopEnd = arr_u32(chunkData, 0); + } + } + + /* https://en.wikipedia.org/wiki/Resource_Interchange_File_Format#Explanation + * If chunk size is odd, skip the pad byte */ + if ((chunkLen % 2) == 1) + ifs.seekg(1, ifs.cur); + } + + if (!fmtChunkFound) + throw std::runtime_error("ERROR: fmt chunk not found"); + if (!dataChunkFound) + throw std::runtime_error("ERROR: data chunk not found"); + + this->numSamples = static_cast(dataChunkEndPos - dataChunkPos) / fmt_size(); + this->loopEnd = std::min(this->loopEnd, this->numSamples); +} + +wav_file::~wav_file() +{ + ifs.close(); +} + +void wav_file::readData(size_t location, double *data, size_t len) +{ + while (len-- > 0) { + if (loadedChunk != location - (location % loadChunkSize)) { + loadedChunk = location - (location % loadChunkSize); + + std::streampos blockpos = this->dataChunkPos + std::streampos(loadedChunk * fmt_size()); + std::streampos endblockpos = this->dataChunkEndPos; + size_t actualChunkSize = std::min(loadChunkSize, static_cast(endblockpos - blockpos) / fmt_size()); + + if (actualChunkSize == 0) { + std::fill(loadBuffer.begin(), loadBuffer.end(), 0.0); + goto load_sample; + } + + ifs.seekg(blockpos, ifs.beg); + std::vector ld(actualChunkSize * fmt_size()); + ifs.read(reinterpret_cast(ld.data()), ld.size()); + + if (fmt == format_type::u8) { + for (size_t i = 0; i < actualChunkSize; i++) { + loadBuffer[i] = (double(ld[i]) - 128.0) / 128.0; + } + } else if (fmt == format_type::s16) { + for (size_t i = 0; i < actualChunkSize; i++) { + int32_t s = + (ld[i * fmt_size() + 0] << 0) | + (ld[i * fmt_size() + 1] << 8); + s <<= 16; + s >>= 16; + loadBuffer[i] = double(s) / 32768.0; + } + } else if (fmt == format_type::s24) { + for (size_t i = 0; i < actualChunkSize; i++) { + int32_t s = + (ld[i * fmt_size() + 0] << 0) | + (ld[i * fmt_size() + 1] << 8) | + (ld[i * fmt_size() + 2] << 16); + s <<= 8; + s >>= 8; + loadBuffer[i] = double(s) / 8388608.0; + } + } else if (fmt == format_type::s32) { + for (size_t i = 0; i < actualChunkSize; i++) { + int32_t s = + (ld[i * fmt_size() + 0] << 0) | + (ld[i * fmt_size() + 1] << 8) | + (ld[i * fmt_size() + 2] << 16) | + (ld[i * fmt_size() + 3] << 24); + loadBuffer[i] = double(s) / 2147483648.0; + } + } else if (fmt == format_type::f32) { + for (size_t i = 0; i < actualChunkSize; i++) { + union { + uint32_t s; + float f; + } u; + u.s = + (ld[i * fmt_size() + 0] << 0) | + (ld[i * fmt_size() + 1] << 8) | + (ld[i * fmt_size() + 2] << 16) | + (ld[i * fmt_size() + 3] << 24); + loadBuffer[i] = u.f; + } + } else if (fmt == format_type::f64) { + for (size_t i = 0; i < actualChunkSize; i++) { + union { + uint64_t s; + double d; + } u; + u.s = + (uint64_t(ld[i * fmt_size() + 0]) << 0) | + (uint64_t(ld[i * fmt_size() + 1]) << 8) | + (uint64_t(ld[i * fmt_size() + 2]) << 16) | + (uint64_t(ld[i * fmt_size() + 3]) << 24) | + (uint64_t(ld[i * fmt_size() + 4]) << 32) | + (uint64_t(ld[i * fmt_size() + 5]) << 40) | + (uint64_t(ld[i * fmt_size() + 6]) << 48) | + (uint64_t(ld[i * fmt_size() + 7]) << 56); + loadBuffer[i] = u.d; + } + } + for (size_t i = actualChunkSize; i < loadChunkSize; i++) { + loadBuffer[i] = 0.0; + } + } +load_sample: + *data++ = loadBuffer[location % loadChunkSize]; + location++; + } +} + +// In the future, if wav2agb gains the ability to construct .wav files from .bin files, +// this function should be rolled into that flow. +void write_wav_with_agbl_chunk(const std::string& output_path, + std::vector& chunks, + uint32_t loop_end_value) +{ + bool has_agbl = false; + for (auto& chunk : chunks) { + if (chunk.id == "agbl") { + has_agbl = true; + chunk.data.resize(4); + chunk.data[0] = loop_end_value & 0xFF; + chunk.data[1] = (loop_end_value >> 8) & 0xFF; + chunk.data[2] = (loop_end_value >> 16) & 0xFF; + chunk.data[3] = (loop_end_value >> 24) & 0xFF; + break; + } + } + + if (!has_agbl) { + WavChunk agbl_chunk; + agbl_chunk.id = "agbl"; + agbl_chunk.data.resize(4); + agbl_chunk.data[0] = loop_end_value & 0xFF; + agbl_chunk.data[1] = (loop_end_value >> 8) & 0xFF; + agbl_chunk.data[2] = (loop_end_value >> 16) & 0xFF; + agbl_chunk.data[3] = (loop_end_value >> 24) & 0xFF; + for (size_t i = 0; i < chunks.size(); i++) { + if (chunks[i].id == "data") { + chunks.insert(chunks.begin() + i, agbl_chunk); + break; + } + } + } + + // Calculate total RIFF size + uint32_t total_chunk_size = 0; + for (const auto& chunk : chunks) { + total_chunk_size += 8 + chunk.data.size(); + if (chunk.data.size() % 2 == 1) { + total_chunk_size += 1; + } + } + uint32_t riff_size = 4 + total_chunk_size; + + std::ofstream ofs(output_path, std::ios::binary); + if (!ofs.good()) + throw std::runtime_error("Failed to open output file: " + output_path); + + ofs.write("RIFF", 4); + write_u32(ofs, riff_size); + ofs.write("WAVE", 4); + + for (const auto& chunk : chunks) { + ofs.write(chunk.id.c_str(), 4); + write_u32(ofs, chunk.data.size()); + if (!chunk.data.empty()) { + ofs.write(reinterpret_cast(chunk.data.data()), chunk.data.size()); + } + + if (chunk.data.size() % 2 == 1) { + ofs.put(0); + } + } + + ofs.close(); +} diff --git a/tools/wav2agb/wav_file.h b/tools/wav2agb/wav_file.h new file mode 100644 index 000000000..cea278970 --- /dev/null +++ b/tools/wav2agb/wav_file.h @@ -0,0 +1,51 @@ +#pragma once + +#include +#include +#include +#include +#include + +#define WAV_INVALID_VAL 0xFFFFFFFFu + +// Structure for WAV chunk utilities +struct WavChunk { + std::string id; + std::vector data; +}; + +void write_wav_with_agbl_chunk(const std::string& output_path, + std::vector& chunks, + uint32_t loop_end_value); + +class wav_file { +public: + wav_file(const std::string& path); + ~wav_file(); + + void readData(size_t location, double *data, size_t len); +private: + std::ifstream ifs; + std::streampos dataChunkPos; + std::streampos dataChunkEndPos; + size_t loadedChunk = WAV_INVALID_VAL; + + std::vector loadBuffer; + size_t loadBufferBlock = std::numeric_limits::max(); + enum class format_type { + u8, s16, s24, s32, + f32, f64, + } fmt; + uint32_t fmt_size() const; +public: + uint32_t loopStart = 0; // samples + uint32_t loopEnd = std::numeric_limits::max(); // samples + bool loopEnabled = false; + double tuning = 0.0; // cents + uint8_t midiKey = 60; + uint32_t sampleRate; + uint32_t numSamples = 0; // total number of samples in the file + uint32_t agbPitch = 0; // optional: exact GBA pitch value from 'agbp' chunk (0 = not present) + uint32_t agbLoopEnd = 0; // optional: exact loop end from 'agbl' chunk (0 = not present) + std::vector chunks; // raw chunks from the WAV file (for re-writing with modifications) +};