diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..8cac4e78 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,54 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + + - name: Checkout rgbds + uses: actions/checkout@master + with: + path: rgbds + ref: v0.5.1 + repository: gbdev/rgbds + + - name: Install rgbds + working-directory: rgbds + run: | + sudo make install + + - name: Remove rgbds + run: | + rm -rf rgbds + + - name: Cache baserom + id: cache-baserom + uses: actions/cache@master + with: + path: baserom.gb + key: ${{ runner.os }}-baserom + + - name: Download baserom + if: steps.cache-baserom.outputs.cache-hit != 'true' + run: | + sudo apt-get install wget p7zip-full + wget -O roms.7z 'https://tcrf.net/images/3/33/Pok%C3%A9mon_Gold_-_Spaceworld_1997_Demo_%28Debug%29.7z' + 7z e roms.7z + mv P*\(Debug\).sgb baserom.gb + rm -f roms.7z P*\(Header\ Fixed\).sgb + + - name: Compare + run: | + make -j$(nproc) compare + if ! git diff-index --quiet HEAD --; then + echo 'Uncommitted changes detected:' + git diff-index HEAD -- + return 1 + fi diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0af363d4..00000000 --- a/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -language: c -os: linux -install: - - |- - ( cd - git clone -b v0.5.1 --depth=1 https://github.com/gbdev/rgbds - sudo make -C rgbds install - rm -rf rgbds - sudo apt-get install wget p7zip-full - ) -before_script: - - |- - function check_status() { - if ! git diff-index --quiet --ignore-submodules=all HEAD --; then - echo 'Uncommitted changes detected:'; - git diff-index HEAD --; - return 1; - fi; - } - - wget -O roms.7z 'https://tcrf.net/images/3/33/Pok%C3%A9mon_Gold_-_Spaceworld_1997_Demo_%28Debug%29.7z' - - 7z e roms.7z - - mv P*\(Debug\).sgb baserom.gb - - rm -f roms.7z P*\(Header\ Fixed\).sgb -script: - - make -j2 compare diff --git a/Makefile b/Makefile index 903f5db1..af03e9f7 100644 --- a/Makefile +++ b/Makefile @@ -124,6 +124,10 @@ $(BUILD)/%.1bpp: %.1bpp.png tools/gfx | $$(dir $$@) $(BUILD)/%.tilemap: %.png | $$(dir $$@) $(RGBGFX) -t $@ $< +.PRECIOUS: $(BUILD)/%.sgb.tilemap +$(BUILD)/%.sgb.tilemap: %.bin | $$(dir $$@) + tr < $< -d '\000' > $@ + .PRECIOUS: %/ %/: mkdir -p $@ diff --git a/README.md b/README.md index fb8d7737..8f900174 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Pokémon Gold and Silver: Space World 1997 Demo [![Build Status][travis-badge]][travis] +# Pokémon Gold and Silver: Space World 1997 Demo [![Build Status][ci-badge]][ci] This is a work-in-progress disassembly of the Pokémon Gold and Pokémon Silver prototypes demoed at Space World 1997. @@ -38,5 +38,5 @@ Other disassembly projects: [pokeemerald]: https://github.com/pret/pokeemerald [discord]: https://discord.gg/d5dubZ3 [irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret -[travis]: https://travis-ci.org/pret/pokegold-spaceworld -[travis-badge]: https://travis-ci.org/pret/pokegold-spaceworld.svg?branch=master +[ci]: https://github.com/pret/pokegold-spaceworld/actions +[ci-badge]: https://github.com/pret/pokegold-spaceworld/actions/workflows/main.yml/badge.svg diff --git a/audio/cries.asm b/audio/cries.asm index 89eef76d..a8b7d9b1 100644 --- a/audio/cries.asm +++ b/audio/cries.asm @@ -1,46 +1,1266 @@ INCLUDE "constants.asm" -SECTION "audio/cries.asm@Cry Header Pointers", ROMX -CryHeaderPointers:: - dba CryHeader_f17c5 - dba CryHeader_f17ce - dba CryHeader_f17d7 - dba CryHeader_f17e0 - dba CryHeader_f17e9 - dba CryHeader_f17f2 - dba CryHeader_f17fb - dba CryHeader_f1804 - dba CryHeader_f180d - dba CryHeader_f1816 - dba CryHeader_f181f - dba CryHeader_f1828 - dba CryHeader_f1831 - dba CryHeader_f183a - dba CryHeader_f1843 - dba CryHeader_f184c - dba CryHeader_f1855 - dba CryHeader_f185e - dba CryHeader_f1867 - dba CryHeader_f1870 - dba CryHeader_f1879 - dba CryHeader_f1882 - dba CryHeader_f188b - dba CryHeader_f1894 - dba CryHeader_f189d - dba CryHeader_f18a6 - dba CryHeader_f18af - dba CryHeader_f18b8 - dba CryHeader_f18c1 - dba CryHeader_f18ca - dba CryHeader_f18d3 - dba CryHeader_f18dc - dba CryHeader_f18e5 - dba CryHeader_f18ee - dba CryHeader_f18f7 - dba CryHeader_f1900 - dba CryHeader_f1909 - dba CryHeader_f1912 - -SECTION "audio/cries.asm@Cries", ROMX - -CryHeaders:: ; TODO: Rip the data, then INCBIN it +SECTION "audio/cries.asm", ROMX + +Cry_00: + channel_count 3 + channel 5, Cry_00_Ch5 + channel 6, Cry_00_Ch6 + channel 8, Cry_00_Ch8 + +Cry_01: + channel_count 3 + channel 5, Cry_01_Ch5 + channel 6, Cry_01_Ch6 + channel 8, Cry_01_Ch8 + +Cry_02: + channel_count 3 + channel 5, Cry_02_Ch5 + channel 6, Cry_02_Ch6 + channel 8, Cry_02_Ch8 + +Cry_03: + channel_count 3 + channel 5, Cry_03_Ch5 + channel 6, Cry_03_Ch6 + channel 8, Cry_03_Ch8 + +Cry_04: + channel_count 3 + channel 5, Cry_04_Ch5 + channel 6, Cry_04_Ch6 + channel 8, Cry_04_Ch8 + +Cry_05: + channel_count 3 + channel 5, Cry_05_Ch5 + channel 6, Cry_05_Ch6 + channel 8, Cry_05_Ch8 + +Cry_06: + channel_count 3 + channel 5, Cry_06_Ch5 + channel 6, Cry_06_Ch6 + channel 8, Cry_06_Ch8 + +Cry_07: + channel_count 3 + channel 5, Cry_07_Ch5 + channel 6, Cry_07_Ch6 + channel 8, Cry_07_Ch8 + +Cry_08: + channel_count 3 + channel 5, Cry_08_Ch5 + channel 6, Cry_08_Ch6 + channel 8, Cry_08_Ch8 + +Cry_09: + channel_count 3 + channel 5, Cry_09_Ch5 + channel 6, Cry_09_Ch6 + channel 8, Cry_09_Ch8 + +Cry_0a: + channel_count 3 + channel 5, Cry_0a_Ch5 + channel 6, Cry_0a_Ch6 + channel 8, Cry_0a_Ch8 + +Cry_0b: + channel_count 3 + channel 5, Cry_0b_Ch5 + channel 6, Cry_0b_Ch6 + channel 8, Cry_0b_Ch8 + +Cry_0c: + channel_count 3 + channel 5, Cry_0c_Ch5 + channel 6, Cry_0c_Ch6 + channel 8, Cry_0c_Ch8 + +Cry_0d: + channel_count 3 + channel 5, Cry_0d_Ch5 + channel 6, Cry_0d_Ch6 + channel 8, Cry_0d_Ch8 + +Cry_0e: + channel_count 3 + channel 5, Cry_0e_Ch5 + channel 6, Cry_0e_Ch6 + channel 8, Cry_0e_Ch8 + +Cry_0f: + channel_count 3 + channel 5, Cry_0f_Ch5 + channel 6, Cry_0f_Ch6 + channel 8, Cry_0f_Ch8 + +Cry_10: + channel_count 3 + channel 5, Cry_10_Ch5 + channel 6, Cry_10_Ch6 + channel 8, Cry_10_Ch8 + +Cry_11: + channel_count 3 + channel 5, Cry_11_Ch5 + channel 6, Cry_11_Ch6 + channel 8, Cry_11_Ch8 + +Cry_12: + channel_count 3 + channel 5, Cry_12_Ch5 + channel 6, Cry_12_Ch6 + channel 8, Cry_12_Ch8 + +Cry_13: + channel_count 3 + channel 5, Cry_13_Ch5 + channel 6, Cry_13_Ch6 + channel 8, Cry_13_Ch8 + +Cry_14: + channel_count 3 + channel 5, Cry_14_Ch5 + channel 6, Cry_14_Ch6 + channel 8, Cry_14_Ch8 + +Cry_15: + channel_count 3 + channel 5, Cry_15_Ch5 + channel 6, Cry_15_Ch6 + channel 8, Cry_15_Ch8 + +Cry_16: + channel_count 3 + channel 5, Cry_16_Ch5 + channel 6, Cry_16_Ch6 + channel 8, Cry_16_Ch8 + +Cry_17: + channel_count 3 + channel 5, Cry_17_Ch5 + channel 6, Cry_17_Ch6 + channel 8, Cry_17_Ch8 + +Cry_18: + channel_count 3 + channel 5, Cry_18_Ch5 + channel 6, Cry_18_Ch6 + channel 8, Cry_18_Ch8 + +Cry_19: + channel_count 3 + channel 5, Cry_19_Ch5 + channel 6, Cry_19_Ch6 + channel 8, Cry_19_Ch8 + +Cry_1a: + channel_count 3 + channel 5, Cry_1a_Ch5 + channel 6, Cry_1a_Ch6 + channel 8, Cry_1a_Ch8 + +Cry_1b: + channel_count 3 + channel 5, Cry_1b_Ch5 + channel 6, Cry_1b_Ch6 + channel 8, Cry_1b_Ch8 + +Cry_1c: + channel_count 3 + channel 5, Cry_1c_Ch5 + channel 6, Cry_1c_Ch6 + channel 8, Cry_1c_Ch8 + +Cry_1d: + channel_count 3 + channel 5, Cry_1d_Ch5 + channel 6, Cry_1d_Ch6 + channel 8, Cry_1d_Ch8 + +Cry_1e: + channel_count 3 + channel 5, Cry_1e_Ch5 + channel 6, Cry_1e_Ch6 + channel 8, Cry_1e_Ch8 + +Cry_1f: + channel_count 3 + channel 5, Cry_1f_Ch5 + channel 6, Cry_1f_Ch6 + channel 8, Cry_1f_Ch8 + +Cry_20: + channel_count 3 + channel 5, Cry_20_Ch5 + channel 6, Cry_20_Ch6 + channel 8, Cry_20_Ch8 + +Cry_21: + channel_count 3 + channel 5, Cry_21_Ch5 + channel 6, Cry_21_Ch6 + channel 8, Cry_21_Ch8 + +Cry_22: + channel_count 3 + channel 5, Cry_22_Ch5 + channel 6, Cry_22_Ch6 + channel 8, Cry_22_Ch8 + +Cry_23: + channel_count 3 + channel 5, Cry_23_Ch5 + channel 6, Cry_23_Ch6 + channel 8, Cry_23_Ch8 + +Cry_24: + channel_count 3 + channel 5, Cry_24_Ch5 + channel 6, Cry_24_Ch6 + channel 8, Cry_24_Ch8 + +Cry_25: + channel_count 3 + channel 5, Cry_25_Ch5 + channel 6, Cry_25_Ch6 + channel 8, Cry_25_Ch8 + +Cry_Unreferenced_Ch5: ; unreferenced + duty_cycle_pattern 3, 3, 0, 0 + square_note 15, 14, 0, 1920 + square_note 15, 15, 0, 1924 + square_note 15, 12, 3, 1504 + square_note 15, 12, 4, 1536 + square_note 10, 6, -4, 1920 + square_note 8, 7, 1, 1924 + sound_ret + +Cry_Unreferenced_Ch6: ; unreferenced + duty_cycle_pattern 0, 0, 1, 1 + square_note 15, 10, 0, 1857 + square_note 15, 11, 0, 1859 + square_note 15, 9, 3, 1457 + square_note 15, 9, 4, 1473 + square_note 10, 4, -4, 1857 + square_note 8, 3, 1, 1862 + sound_ret + +Cry_Unreferenced_Ch8: ; unreferenced + noise_note 2, 15, 2, 76 + noise_note 6, 14, 0, 58 + noise_note 15, 13, 0, 58 + noise_note 8, 13, 0, 44 + noise_note 6, 14, 6, 76 + noise_note 12, 7, -5, 76 + noise_note 15, 13, 3, 76 + sound_ret + +Cry_09_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 15, 15, 7, 1952 + square_note 6, 14, 6, 1955 + square_note 10, 15, 4, 1952 + duty_cycle_pattern 2, 2, 1, 1 + square_note 10, 15, 6, 2008 + square_note 4, 14, 3, 2007 + square_note 15, 15, 2, 2008 + sound_ret + +Cry_09_Ch6: + duty_cycle_pattern 0, 0, 1, 1 + square_note 2, 0, 8, 0 + square_note 15, 10, 7, 1697 + square_note 6, 8, 6, 1698 + square_note 10, 7, 4, 1697 + duty_cycle_pattern 1, 1, 3, 3 + square_note 10, 7, 6, 1750 + square_note 4, 8, 3, 1753 + square_note 15, 10, 2, 1751 + sound_ret + +Cry_09_Ch8: + noise_note 2, 15, 2, 60 + noise_note 8, 14, 4, 62 + noise_note 15, 13, 7, 60 + noise_note 6, 12, 5, 59 + noise_note 6, 14, 4, 61 + noise_note 8, 11, 6, 60 + noise_note 6, 13, 4, 61 + noise_note 8, 12, 1, 59 + sound_ret + +Cry_23_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 15, 15, 7, 1984 + square_note 6, 14, 4, 1985 + square_note 10, 15, 6, 1984 + square_note 4, 13, 3, 1986 + square_note 8, 12, 1, 1984 + sound_ret + +Cry_23_Ch6: + duty_cycle_pattern 1, 1, 3, 3 + square_note 15, 9, 7, 1921 + square_note 6, 8, 4, 1920 + square_note 10, 9, 6, 1921 + square_note 15, 8, 3, 1921 + sound_ret + +Cry_23_Ch8: + noise_note 3, 15, 2, 60 + noise_note 13, 14, 6, 44 + noise_note 15, 13, 7, 60 + noise_note 8, 12, 1, 44 + sound_ret + +Cry_24_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 15, 15, 7, 1664 + square_note 10, 14, 6, 1668 + square_note 15, 13, 7, 1680 + square_note 8, 13, 5, 1680 + square_note 6, 12, 4, 1672 + square_note 5, 13, 3, 1648 + square_note 4, 13, 3, 1632 + square_note 8, 12, 1, 1600 + sound_ret + +Cry_24_Ch6: + duty_cycle_pattern 0, 0, 1, 1 + square_note 15, 11, 7, 1601 + square_note 10, 9, 6, 1602 + square_note 15, 10, 7, 1617 + square_note 8, 10, 5, 1617 + square_note 6, 9, 4, 1607 + square_note 5, 10, 3, 1585 + square_note 4, 9, 3, 1570 + square_note 8, 7, 1, 1537 + sound_ret + +Cry_24_Ch8: + noise_note 15, 14, 4, 60 + noise_note 10, 12, 7, 76 + noise_note 10, 12, 7, 60 + noise_note 12, 11, 7, 76 + noise_note 15, 10, 2, 92 + sound_ret + +Cry_11_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 6, 15, 7, 1952 + square_note 8, 14, 6, 1956 + square_note 4, 13, 6, 1952 + square_note 15, 13, 3, 1824 + square_note 8, 12, 3, 1827 + square_note 2, 12, 2, 1832 + square_note 8, 11, 1, 1840 + sound_ret + +Cry_11_Ch6: + duty_cycle_pattern 0, 0, 2, 2 + square_note 4, 0, 8, 0 + square_note 6, 10, 7, 1857 + square_note 8, 8, 6, 1859 + square_note 4, 7, 6, 1857 + square_note 13, 8, 3, 1730 + square_note 7, 7, 3, 1729 + square_note 3, 8, 2, 1740 + square_note 8, 7, 1, 1752 + sound_ret + +Cry_11_Ch8: + noise_note 2, 15, 2, 76 + noise_note 6, 14, 6, 58 + noise_note 4, 13, 7, 58 + noise_note 6, 13, 6, 44 + noise_note 8, 14, 5, 60 + noise_note 12, 13, 2, 61 + noise_note 8, 13, 1, 44 + sound_ret + +Cry_25_Ch5: + duty_cycle_pattern 2, 2, 1, 1 + square_note 6, 15, 4, 1856 + square_note 15, 14, 3, 1840 + square_note 4, 15, 4, 1856 + square_note 5, 11, 3, 1864 + square_note 8, 13, 1, 1872 + sound_ret + +Cry_25_Ch6: + duty_cycle_pattern 1, 3, 1, 3 + square_note 6, 12, 3, 1810 + square_note 15, 11, 3, 1796 + square_note 3, 12, 3, 1810 + square_note 4, 12, 3, 1825 + square_note 8, 11, 1, 1842 + sound_ret + +Cry_25_Ch8: + noise_note 8, 13, 6, 44 + noise_note 12, 12, 6, 60 + noise_note 10, 11, 6, 44 + noise_note 8, 9, 1, 28 + sound_ret + +Cry_03_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 4, 15, 7, 1544 + square_note 6, 14, 6, 1536 + square_note 6, 13, 7, 1520 + square_note 6, 12, 4, 1504 + square_note 5, 13, 3, 1472 + square_note 4, 13, 3, 1440 + square_note 8, 14, 1, 1408 + sound_ret + +Cry_03_Ch6: + duty_cycle_pattern 0, 0, 2, 2 + square_note 4, 12, 7, 1284 + square_note 6, 10, 6, 1282 + square_note 6, 9, 7, 1265 + square_note 4, 11, 4, 1249 + square_note 5, 10, 3, 1218 + square_note 4, 11, 3, 1187 + square_note 8, 12, 1, 1154 + sound_ret + +Cry_03_Ch8: + noise_note 12, 14, 4, 76 + noise_note 10, 12, 7, 92 + noise_note 12, 11, 6, 76 + noise_note 15, 10, 2, 92 + sound_ret + +Cry_0f_Ch5: + duty_cycle_pattern 3, 3, 0, 1 + square_note 4, 15, 7, 1984 + square_note 12, 14, 6, 1986 + square_note 6, 11, 5, 1664 + square_note 4, 12, 4, 1648 + square_note 4, 11, 5, 1632 + square_note 8, 12, 1, 1600 + sound_ret + +Cry_0f_Ch6: + duty_cycle_pattern 3, 0, 3, 0 + square_note 3, 12, 7, 1921 + square_note 12, 11, 6, 1920 + square_note 6, 10, 5, 1601 + square_note 4, 12, 4, 1586 + square_note 6, 11, 5, 1569 + square_note 8, 10, 1, 1538 + sound_ret + +Cry_0f_Ch8: + noise_note 3, 14, 4, 60 + noise_note 12, 13, 6, 44 + noise_note 4, 14, 4, 60 + noise_note 8, 11, 7, 92 + noise_note 15, 12, 2, 93 + sound_ret + +Cry_10_Ch5: + duty_cycle_pattern 3, 0, 2, 1 + square_note 8, 15, 7, 1664 + square_note 2, 15, 7, 1632 + square_note 1, 14, 7, 1600 + square_note 1, 14, 7, 1568 + square_note 15, 13, 1, 1536 + square_note 4, 12, 7, 1856 + square_note 4, 10, 7, 1840 + square_note 15, 9, 1, 1824 + sound_ret + +Cry_10_Ch6: + duty_cycle_pattern 1, 3, 2, 1 + square_note 10, 14, 7, 1666 + square_note 2, 14, 7, 1634 + square_note 1, 13, 7, 1602 + square_note 1, 13, 7, 1570 + square_note 15, 12, 1, 1538 + square_note 4, 11, 7, 1858 + square_note 2, 9, 7, 1842 + square_note 15, 8, 1, 1826 + sound_ret + +Cry_10_Ch8: + noise_note 4, 7, 4, 33 + noise_note 4, 7, 4, 16 + noise_note 4, 7, 1, 32 + sound_ret + +Cry_00_Ch5: + duty_cycle_pattern 3, 3, 1, 1 + square_note 4, 15, 3, 1816 + square_note 15, 14, 5, 1944 + square_note 8, 9, 1, 1880 + sound_ret + +Cry_00_Ch6: + duty_cycle_pattern 2, 2, 0, 0 + square_note 5, 11, 3, 1800 + square_note 15, 12, 5, 1928 + square_note 8, 7, 1, 1864 + sound_ret + +Cry_00_Ch8: + noise_note 3, 10, 1, 28 + noise_note 14, 9, 4, 44 + noise_note 8, 8, 1, 28 + sound_ret + +Cry_0e_Ch5: + duty_cycle_pattern 2, 2, 1, 1 + square_note 4, 14, 1, 1792 + square_note 4, 15, 2, 1920 + square_note 2, 9, 2, 1856 + square_note 8, 14, 1, 1536 + sound_ret + +Cry_0e_Ch6: + duty_cycle_pattern 0, 0, 2, 2 + square_note 4, 11, 1, 1761 + square_note 3, 12, 2, 1761 + square_note 3, 6, 2, 1665 + square_note 8, 11, 1, 1505 + sound_ret + +Cry_0e_Ch8: + noise_note 2, 6, 1, 50 + noise_note 2, 6, 1, 33 + noise_note 8, 6, 1, 17 + sound_ret + +Cry_06_Ch5: + duty_cycle_pattern 3, 3, 2, 2 + square_note 6, 8, 3, 583 + square_note 15, 6, 2, 550 + square_note 4, 5, 2, 581 + square_note 9, 6, 3, 518 + square_note 15, 8, 2, 549 + square_note 15, 4, 2, 519 + +Cry_06_Ch6: + sound_ret + +Cry_06_Ch8: + noise_note 8, 13, 4, 140 + noise_note 4, 14, 2, 156 + noise_note 15, 12, 6, 140 + noise_note 8, 14, 4, 172 + noise_note 15, 13, 7, 156 + noise_note 15, 15, 2, 172 + sound_ret + +Cry_07_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 4, 15, 3, 1760 + square_note 15, 14, 4, 1600 + square_note 8, 12, 1, 1568 + sound_ret + +Cry_07_Ch6: + duty_cycle_pattern 0, 0, 2, 2 + square_note 3, 12, 3, 1667 + square_note 14, 11, 4, 1538 + square_note 8, 10, 1, 1537 + sound_ret + +Cry_07_Ch8: + noise_note 4, 13, 3, 92 + noise_note 15, 14, 6, 76 + noise_note 8, 11, 1, 92 + sound_ret + +Cry_05_Ch5: + duty_cycle_pattern 0, 0, 2, 2 + square_note 6, 14, 2, 1280 + square_note 6, 14, 3, 1408 + square_note 6, 13, 3, 1392 + square_note 8, 10, 1, 1376 + sound_ret + +Cry_05_Ch6: + duty_cycle_pattern 3, 3, 1, 1 + square_note 6, 14, 2, 1154 + square_note 6, 13, 3, 1281 + square_note 6, 11, 2, 1250 + square_note 8, 8, 1, 1217 + +Cry_05_Ch8: + sound_ret + +Cry_0b_Ch5: + duty_cycle_pattern 3, 0, 3, 0 + square_note 4, 15, 1, 1792 + square_note 4, 14, 1, 1920 + square_note 4, 13, 1, 1856 + square_note 4, 14, 1, 1856 + square_note 4, 15, 1, 1920 + square_note 4, 13, 1, 1792 + square_note 4, 15, 1, 1793 + square_note 4, 13, 1, 1922 + square_note 4, 12, 1, 1858 + square_note 8, 11, 1, 1857 + sound_ret + +Cry_0b_Ch6: + duty_cycle_pattern 1, 0, 1, 0 + square_note 12, 0, 8, 0 + square_note 4, 15, 1, 1793 + square_note 4, 14, 1, 1922 + square_note 4, 13, 1, 1857 + square_note 4, 14, 1, 1857 + square_note 4, 15, 1, 1922 + square_note 8, 13, 1, 1793 + sound_ret + +Cry_0b_Ch8: + noise_note 15, 0, 8, 0 + noise_note 4, 0, 8, 0 + noise_note 4, 13, 1, 76 + noise_note 4, 11, 1, 44 + noise_note 4, 13, 1, 60 + noise_note 4, 11, 1, 60 + noise_note 4, 12, 1, 44 + noise_note 8, 10, 1, 76 + sound_ret + +Cry_0c_Ch5: + duty_cycle_pattern 3, 0, 3, 0 + square_note 8, 15, 5, 1536 + square_note 2, 13, 2, 1592 + square_note 2, 12, 2, 1584 + square_note 2, 12, 2, 1576 + square_note 2, 11, 2, 1568 + square_note 2, 11, 2, 1552 + square_note 2, 10, 2, 1560 + square_note 2, 11, 2, 1552 + square_note 8, 12, 1, 1568 + sound_ret + +Cry_0c_Ch6: + duty_cycle_pattern 1, 0, 1, 0 + square_note 12, 12, 3, 1472 + square_note 3, 11, 1, 1529 + square_note 2, 10, 1, 1521 + square_note 2, 10, 1, 1513 + square_note 2, 9, 1, 1505 + square_note 2, 9, 1, 1497 + square_note 2, 8, 1, 1489 + square_note 2, 9, 1, 1497 + square_note 8, 9, 1, 1505 + +Cry_0c_Ch8: + sound_ret + +Cry_02_Ch5: + duty_cycle_pattern 0, 0, 0, 0 + square_note 8, 15, 5, 1152 + square_note 2, 14, 1, 1504 + square_note 8, 13, 1, 1500 + sound_ret + +Cry_02_Ch6: + duty_cycle_pattern 2, 2, 1, 1 + square_note 7, 9, 5, 1089 + square_note 2, 8, 1, 1313 + square_note 8, 6, 1, 1306 + +Cry_02_Ch8: + sound_ret + +Cry_0d_Ch5: +.loop + duty_cycle_pattern 2, 0, 2, 0 + square_note 5, 15, 2, 1616 + square_note 9, 13, 1, 1632 + square_note 5, 14, 2, 1554 + square_note 9, 12, 1, 1570 + square_note 5, 15, 2, 1552 + square_note 6, 13, 1, 1568 + sound_loop 2, .loop + sound_ret + +Cry_0d_Ch6: + duty_cycle_pattern 1, 0, 0, 0 + square_note 4, 0, 8, 0 + square_note 5, 15, 2, 1617 + square_note 9, 13, 1, 1633 + square_note 5, 14, 2, 1556 + square_note 8, 12, 1, 1572 + square_note 5, 15, 2, 1553 + square_note 12, 13, 1, 1569 + square_note 5, 14, 2, 1556 + square_note 8, 12, 1, 1572 + square_note 5, 15, 2, 1553 + square_note 4, 13, 1, 1569 + sound_ret + +Cry_0d_Ch8: + noise_note 6, 13, 2, 28 + noise_note 9, 11, 1, 44 + noise_note 8, 12, 2, 44 + noise_note 9, 11, 1, 60 + noise_note 6, 12, 2, 44 + noise_note 9, 10, 2, 60 + noise_note 7, 12, 2, 44 + noise_note 5, 10, 1, 60 + noise_note 9, 12, 2, 44 + noise_note 4, 10, 1, 60 + sound_ret + +Cry_01_Ch5: + duty_cycle_pattern 2, 2, 0, 0 + square_note 4, 15, 3, 1536 + square_note 8, 13, 5, 1888 + square_note 3, 14, 2, 1824 + square_note 8, 13, 1, 1808 + sound_ret + +Cry_01_Ch6: + duty_cycle_pattern 1, 1, 2, 2 + square_note 5, 11, 3, 1777 + square_note 7, 12, 5, 1874 + square_note 3, 10, 2, 1809 + square_note 8, 11, 1, 1537 + sound_ret + +Cry_01_Ch8: + noise_note 3, 10, 2, 60 + noise_note 12, 9, 4, 44 + noise_note 3, 8, 2, 28 + noise_note 8, 7, 1, 44 + sound_ret + +Cry_0a_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 8, 15, 7, 1760 + square_note 6, 14, 6, 1765 + square_note 3, 15, 4, 1760 + square_note 3, 15, 6, 1744 + square_note 3, 14, 3, 1728 + square_note 4, 15, 2, 1712 + square_note 15, 10, 2, 1736 + sound_ret + +Cry_0a_Ch6: + duty_cycle_pattern 0, 0, 1, 1 + square_note 3, 0, 8, 0 + square_note 8, 10, 7, 1697 + square_note 6, 8, 6, 1699 + square_note 3, 7, 4, 1697 + square_note 3, 7, 6, 1681 + square_note 3, 8, 3, 1666 + square_note 4, 10, 2, 1649 + square_note 15, 7, 2, 1673 + sound_ret + +Cry_0a_Ch8: + noise_note 2, 15, 2, 60 + noise_note 8, 14, 4, 62 + noise_note 8, 13, 7, 60 + noise_note 5, 12, 5, 59 + noise_note 3, 13, 4, 44 + noise_note 2, 11, 6, 60 + noise_note 3, 10, 4, 44 + noise_note 8, 9, 1, 60 + sound_ret + +Cry_08_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 15, 15, 6, 1381 + square_note 10, 14, 4, 1404 + square_note 3, 12, 2, 1372 + square_note 15, 11, 2, 1340 + sound_ret + +Cry_08_Ch6: + duty_cycle_pattern 1, 1, 2, 2 + square_note 14, 13, 6, 1283 + square_note 9, 11, 4, 1307 + square_note 4, 9, 2, 1274 + square_note 15, 10, 2, 1243 + sound_ret + +Cry_08_Ch8: + noise_note 12, 14, 6, 76 + noise_note 11, 13, 7, 92 + noise_note 15, 12, 2, 76 + sound_ret + +Cry_04_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 4, 15, 7, 1696 + square_note 8, 14, 6, 1700 + square_note 4, 13, 6, 1696 + square_note 12, 13, 3, 1568 + square_note 8, 12, 3, 1572 + square_note 4, 12, 2, 1568 + square_note 8, 11, 1, 1552 + sound_ret + +Cry_04_Ch6: + duty_cycle_pattern 1, 1, 2, 2 + square_note 4, 14, 7, 1537 + square_note 8, 13, 6, 1539 + square_note 4, 12, 6, 1537 + square_note 12, 12, 3, 1409 + square_note 8, 11, 3, 1411 + square_note 4, 11, 2, 1410 + square_note 8, 10, 1, 1393 + sound_ret + +Cry_04_Ch8: + noise_note 7, 13, 6, 92 + noise_note 8, 14, 6, 76 + noise_note 4, 13, 4, 92 + noise_note 4, 13, 4, 76 + noise_note 7, 12, 3, 76 + noise_note 8, 10, 1, 92 + sound_ret + +Cry_19_Ch5: + duty_cycle_pattern 0, 1, 2, 3 + square_note 7, 13, 2, 1856 + square_note 15, 14, 5, 1888 + square_note 24, 12, 1, 1840 + sound_ret + +Cry_19_Ch6: + duty_cycle_pattern 2, 0, 0, 1 + square_note 2, 12, 2, 1793 + square_note 4, 12, 2, 1800 + square_note 15, 13, 7, 1857 + square_note 24, 10, 2, 1793 + +Cry_19_Ch8: + sound_ret + +Cry_16_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 15, 13, 7, 1920 + square_note 4, 14, 6, 1952 + square_note 15, 13, 2, 1856 + sound_ret + +Cry_16_Ch6: + duty_cycle_pattern 1, 1, 2, 2 + square_note 15, 12, 7, 1875 + square_note 5, 11, 6, 1906 + square_note 15, 12, 2, 1809 + sound_ret + +Cry_16_Ch8: + noise_note 13, 15, 6, 76 + noise_note 4, 14, 6, 60 + noise_note 15, 15, 2, 76 + sound_ret + +Cry_1b_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 6, 15, 7, 1728 + square_note 15, 14, 7, 1792 + square_note 4, 15, 4, 1776 + square_note 4, 14, 4, 1760 + square_note 8, 13, 1, 1744 + sound_ret + +Cry_1b_Ch6: + duty_cycle_pattern 0, 0, 2, 2 + square_note 7, 14, 6, 1665 + square_note 14, 13, 5, 1729 + square_note 4, 12, 4, 1713 + square_note 4, 13, 4, 1697 + square_note 8, 12, 1, 1681 + sound_ret + +Cry_1b_Ch8: + noise_note 10, 10, 6, 60 + noise_note 14, 9, 4, 44 + noise_note 5, 10, 3, 60 + noise_note 8, 9, 1, 44 + sound_ret + +Cry_12_Ch5: + duty_cycle_pattern 2, 2, 1, 1 + square_note 12, 15, 2, 1088 + square_note 15, 14, 3, 1184 + square_note 4, 13, 2, 1168 + square_note 8, 13, 1, 1152 + sound_ret + +Cry_12_Ch6: + duty_cycle_pattern 3, 2, 3, 2 + square_note 11, 13, 2, 1080 + square_note 14, 12, 6, 1176 + square_note 3, 11, 2, 1160 + square_note 8, 11, 1, 1144 + sound_ret + +Cry_12_Ch8: + noise_note 10, 14, 6, 108 + noise_note 15, 13, 2, 92 + noise_note 3, 12, 2, 108 + noise_note 8, 13, 1, 92 + sound_ret + +Cry_13_Ch5: + duty_cycle_pattern 0, 3, 0, 3 + square_note 15, 15, 6, 1472 + square_note 8, 14, 3, 1468 + square_note 6, 13, 2, 1488 + square_note 6, 11, 2, 1504 + square_note 6, 12, 2, 1520 + square_note 8, 11, 1, 1536 + sound_ret + +Cry_13_Ch6: + duty_cycle_pattern 2, 1, 2, 1 + square_note 14, 12, 6, 1201 + square_note 7, 12, 3, 1197 + square_note 5, 11, 2, 1217 + square_note 8, 9, 2, 1233 + square_note 6, 10, 2, 1249 + square_note 8, 9, 1, 1265 + sound_ret + +Cry_13_Ch8: + noise_note 10, 14, 6, 92 + noise_note 10, 13, 6, 108 + noise_note 4, 12, 2, 76 + noise_note 6, 13, 3, 92 + noise_note 8, 11, 3, 76 + noise_note 8, 10, 1, 92 + sound_ret + +Cry_14_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 8, 14, 4, 1936 + square_note 15, 15, 5, 1984 + square_note 8, 13, 1, 2008 + sound_ret + +Cry_14_Ch6: + duty_cycle_pattern 2, 2, 1, 1 + square_note 10, 12, 4, 1905 + square_note 15, 11, 6, 1954 + square_note 8, 10, 1, 1975 + sound_ret + +Cry_14_Ch8: + noise_note 8, 14, 4, 76 + noise_note 14, 12, 4, 60 + noise_note 8, 13, 1, 44 + sound_ret + +Cry_1e_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 6, 15, 2, 1536 + square_note 6, 14, 2, 1600 + square_note 6, 13, 2, 1664 + square_note 6, 14, 2, 1728 + square_note 6, 13, 2, 1792 + square_note 6, 12, 2, 1856 + square_note 6, 11, 2, 1920 + square_note 8, 10, 1, 1984 + sound_ret + +Cry_1e_Ch6: + duty_cycle_pattern 0, 1, 0, 1 + square_note 3, 0, 8, 1 + square_note 6, 12, 2, 1473 + square_note 6, 11, 2, 1538 + square_note 6, 10, 2, 1601 + square_note 6, 11, 2, 1666 + square_note 6, 10, 2, 1730 + square_note 6, 9, 2, 1793 + square_note 6, 10, 2, 1858 + square_note 8, 8, 1, 1921 + sound_ret + +Cry_1e_Ch8: + noise_note 6, 0, 8, 1 + noise_note 5, 14, 2, 92 + noise_note 5, 12, 2, 76 + noise_note 5, 13, 2, 60 + noise_note 5, 11, 2, 44 + noise_note 5, 12, 2, 28 + noise_note 5, 10, 2, 27 + noise_note 5, 9, 2, 26 + noise_note 8, 8, 1, 24 + sound_ret + +Cry_15_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 4, 15, 3, 1920 + square_note 15, 14, 7, 1792 + square_note 8, 13, 3, 1808 + square_note 4, 12, 2, 1792 + square_note 4, 13, 2, 1776 + square_note 8, 12, 1, 1760 + sound_ret + +Cry_15_Ch6: + duty_cycle_pattern 1, 1, 2, 2 + square_note 6, 12, 3, 1793 + square_note 14, 11, 7, 1665 + square_note 7, 11, 3, 1682 + square_note 3, 10, 2, 1665 + square_note 4, 11, 2, 1650 + square_note 8, 10, 1, 1633 + sound_ret + +Cry_15_Ch8: + noise_note 6, 14, 3, 92 + noise_note 14, 13, 6, 76 + noise_note 6, 12, 6, 60 + noise_note 3, 11, 3, 76 + noise_note 3, 10, 2, 92 + noise_note 8, 11, 1, 108 + sound_ret + +Cry_17_Ch5: + duty_cycle_pattern 0, 0, 3, 3 + square_note 15, 15, 7, 1280 + square_note 15, 14, 7, 1288 + square_note 8, 11, 4, 1152 + square_note 15, 10, 2, 1120 + sound_ret + +Cry_17_Ch6: + duty_cycle_pattern 1, 0, 1, 0 + square_note 14, 13, 7, 1153 + square_note 14, 12, 7, 1161 + square_note 10, 11, 4, 1025 + square_note 15, 12, 2, 993 + sound_ret + +Cry_17_Ch8: + noise_note 14, 15, 7, 124 + noise_note 12, 15, 6, 108 + noise_note 9, 14, 4, 124 + noise_note 15, 14, 2, 108 + sound_ret + +Cry_1c_Ch5: + duty_cycle_pattern 3, 3, 1, 1 + square_note 7, 13, 6, 2017 + square_note 6, 12, 6, 2018 + square_note 9, 13, 6, 2017 + square_note 7, 12, 6, 2016 + square_note 5, 11, 6, 2018 + square_note 7, 12, 6, 2017 + square_note 6, 11, 6, 2016 + square_note 8, 10, 1, 2015 + sound_ret + +Cry_1c_Ch6: + duty_cycle_pattern 1, 0, 1, 0 + square_note 6, 12, 3, 1993 + square_note 6, 11, 3, 1991 + square_note 10, 12, 4, 1987 + square_note 8, 11, 4, 1991 + square_note 6, 12, 3, 1993 + square_note 15, 10, 2, 1989 + sound_ret + +Cry_1c_Ch8: + noise_note 13, 1, -1, 124 + noise_note 13, 15, 7, 140 + noise_note 12, 13, 6, 124 + noise_note 8, 12, 4, 108 + noise_note 15, 11, 3, 92 + sound_ret + +Cry_1a_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 6, 15, 7, 1856 + square_note 12, 14, 6, 1860 + square_note 6, 13, 5, 1872 + square_note 4, 12, 3, 1888 + square_note 3, 12, 3, 1920 + square_note 8, 13, 1, 1952 + sound_ret + +Cry_1a_Ch6: + duty_cycle_pattern 0, 0, 2, 2 + square_note 6, 12, 7, 1793 + square_note 11, 11, 6, 1794 + square_note 6, 10, 5, 1809 + square_note 4, 9, 3, 1825 + square_note 3, 10, 3, 1857 + square_note 8, 9, 1, 1890 + sound_ret + +Cry_1a_Ch8: + noise_note 3, 14, 2, 60 + noise_note 8, 13, 6, 76 + noise_note 5, 13, 4, 60 + noise_note 12, 12, 7, 76 + noise_note 2, 14, 2, 60 + noise_note 8, 13, 1, 44 + sound_ret + +Cry_1d_Ch5: + duty_cycle_pattern 3, 3, 1, 0 + square_note 15, 15, 0, 1797 + square_note 10, 14, 0, 1792 + square_note 6, 11, 4, 1808 + square_note 4, 13, 3, 1792 + square_note 6, 11, 2, 1568 + square_note 8, 10, 1, 1572 + sound_ret + +Cry_1d_Ch6: + duty_cycle_pattern 0, 2, 0, 2 + square_note 15, 11, 0, 1731 + square_note 10, 10, 0, 1729 + square_note 6, 8, 4, 1746 + square_note 4, 9, 3, 1729 + square_note 6, 8, 2, 1505 + square_note 8, 6, 1, 1512 + sound_ret + +Cry_1d_Ch8: + noise_note 6, 14, 6, 76 + noise_note 15, 13, 6, 60 + noise_note 10, 12, 5, 74 + noise_note 1, 11, 2, 91 + noise_note 15, 12, 2, 76 + sound_ret + +Cry_18_Ch5: + duty_cycle_pattern 1, 1, 0, 0 + square_note 10, 15, 5, 1664 + square_note 3, 14, 2, 1696 + square_note 3, 15, 2, 1728 + square_note 3, 14, 2, 1760 + square_note 3, 13, 2, 1792 + square_note 3, 12, 2, 1760 + square_note 3, 13, 2, 1728 + square_note 8, 12, 1, 1696 + sound_ret + +Cry_18_Ch6: + duty_cycle_pattern 0, 0, 3, 3 + square_note 9, 13, 5, 1585 + square_note 3, 13, 2, 1618 + square_note 3, 14, 2, 1649 + square_note 3, 11, 2, 1681 + square_note 3, 12, 2, 1714 + square_note 3, 11, 2, 1681 + square_note 3, 12, 2, 1649 + square_note 8, 11, 1, 1617 + sound_ret + +Cry_18_Ch8: + noise_note 6, 14, 3, 76 + noise_note 4, 12, 3, 60 + noise_note 5, 13, 4, 60 + noise_note 4, 12, 4, 44 + noise_note 6, 11, 4, 60 + noise_note 8, 12, 1, 44 + sound_ret + +Cry_1f_Ch5: + duty_cycle_pattern 2, 2, 1, 1 + square_note 3, 15, 4, 1601 + square_note 13, 13, 6, 1825 + square_note 8, 15, 4, 1817 + square_note 8, 12, 1, 1818 + sound_ret + +Cry_1f_Ch6: + duty_cycle_pattern 3, 0, 3, 0 + square_note 4, 15, 4, 1408 + square_note 14, 14, 6, 1760 + square_note 8, 13, 5, 1752 + square_note 8, 13, 1, 1756 + sound_ret + +Cry_1f_Ch8: + noise_note 5, 12, 4, 70 + noise_note 13, 10, 5, 68 + noise_note 8, 12, 4, 69 + noise_note 8, 11, 1, 68 + sound_ret + +Cry_20_Ch5: + duty_cycle_pattern 3, 3, 0, 0 + square_note 13, 15, 1, 1297 + square_note 13, 14, 1, 1301 + square_note 13, 14, 1, 1297 + square_note 8, 13, 1, 1297 + sound_ret + +Cry_20_Ch6: + duty_cycle_pattern 0, 1, 1, 1 + square_note 12, 14, 1, 1292 + square_note 12, 13, 1, 1296 + square_note 14, 12, 1, 1292 + square_note 8, 12, 1, 1290 + sound_ret + +Cry_20_Ch8: + noise_note 14, 15, 2, 101 + noise_note 13, 14, 2, 85 + noise_note 14, 13, 2, 86 + noise_note 8, 13, 1, 102 + sound_ret + +Cry_21_Ch5: + duty_cycle_pattern 0, 1, 2, 3 + square_note 3, 15, 3, 1380 + square_note 2, 14, 2, 1348 + square_note 5, 13, 1, 1314 + square_note 2, 11, 2, 1156 + square_note 8, 13, 1, 1186 + square_note 3, 15, 3, 1316 + square_note 4, 14, 4, 1252 + square_note 8, 13, 1, 1282 + sound_ret + +Cry_21_Ch6: + duty_cycle_pattern 3, 0, 3, 0 + square_note 3, 13, 3, 1376 + square_note 2, 12, 2, 1344 + square_note 5, 12, 1, 1312 + square_note 2, 9, 2, 1152 + square_note 8, 12, 1, 1184 + square_note 3, 13, 3, 1312 + square_note 3, 12, 4, 1248 + square_note 8, 12, 1, 1280 + +Cry_21_Ch8: + sound_ret + +Cry_22_Ch5: + duty_cycle_pattern 0, 1, 0, 1 + square_note 2, 3, -5, 897 + square_note 7, 15, 5, 1537 + square_note 1, 12, 2, 1153 + square_note 8, 9, 1, 897 + sound_ret + +Cry_22_Ch6: + duty_cycle_pattern 3, 2, 3, 2 + square_note 2, 3, -6, 1456 + square_note 7, 13, 5, 1885 + square_note 1, 11, 2, 1712 + square_note 8, 6, 1, 1456 + sound_ret + +Cry_22_Ch8: + noise_note 2, 9, 2, 73 + noise_note 7, 11, 5, 41 + noise_note 1, 10, 2, 57 + noise_note 8, 9, 1, 73 + sound_ret + diff --git a/audio/cry_pointers.asm b/audio/cry_pointers.asm new file mode 100644 index 00000000..68e00610 --- /dev/null +++ b/audio/cry_pointers.asm @@ -0,0 +1,43 @@ +INCLUDE "constants.asm" + +SECTION "audio/cry_pointers.asm", ROMX +Cries:: + dba Cry_00 + dba Cry_01 + dba Cry_02 + dba Cry_03 + dba Cry_04 + dba Cry_05 + dba Cry_06 + dba Cry_07 + dba Cry_08 + dba Cry_09 + dba Cry_0a + dba Cry_0b + dba Cry_0c + dba Cry_0d + dba Cry_0e + dba Cry_0f + dba Cry_10 + dba Cry_11 + dba Cry_12 + dba Cry_13 + dba Cry_14 + dba Cry_15 + dba Cry_16 + dba Cry_17 + dba Cry_18 + dba Cry_19 + dba Cry_1a + dba Cry_1b + dba Cry_1c + dba Cry_1d + dba Cry_1e + dba Cry_1f + dba Cry_20 + dba Cry_21 + dba Cry_22 + dba Cry_23 + dba Cry_24 + dba Cry_25 + diff --git a/audio/engine.asm b/audio/engine.asm index f7226211..565facb4 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -2563,7 +2563,7 @@ _PlayCryHeader:: inc hl ld [hl], d - ld hl, CryHeaderPointers + ld hl, Cries add hl, de add hl, de add hl, de @@ -2658,7 +2658,7 @@ _PlaySFX:: ld [hl], e inc hl ld [hl], d - ld hl, SFXPointers + ld hl, SFX ; three byte pointers add hl, de add hl, de @@ -2696,7 +2696,7 @@ _PlaySFX:: inc hl ld [hl], d - ld hl, SFXPointers + ld hl, SFX add hl, de add hl, de add hl, de @@ -2775,7 +2775,7 @@ _PlaySFX:: ld [hl], e inc hl ld [hl], d - ld hl, SFXPointers + ld hl, SFX add hl, de add hl, de add hl, de diff --git a/audio/sfx.asm b/audio/sfx.asm index edf038cc..cd226c1b 100644 --- a/audio/sfx.asm +++ b/audio/sfx.asm @@ -1,113 +1,2227 @@ INCLUDE "constants.asm" -SECTION "audio/sfx.asm@SFX Pointers", ROMX -SFXPointers:: - dba Sfx_01 - dba Sfx_02 - dba Sfx_03 - dba Sfx_04 - dba Sfx_05 - dba Sfx_06 - dba Sfx_07 - dba Sfx_08 - dba Sfx_09 - dba Sfx_0a - dba Sfx_0b - dba Sfx_0c - dba Sfx_0d - dba Sfx_0e - dba Sfx_0f - dba Sfx_10 - dba Sfx_11 - dba Sfx_12 - dba Sfx_13 - dba Sfx_14 - dba Sfx_15 - dba Sfx_16 - dba Sfx_17 - dba Sfx_18 - dba Sfx_19 - dba Sfx_1a - dba Sfx_1b - dba Sfx_1c - dba Sfx_1d - dba Sfx_1e - dba Sfx_1f - dba Sfx_20 - dba Sfx_21 - dba Sfx_22 - dba Sfx_23 - dba Sfx_24 - dba Sfx_25 - dba Sfx_26 - dba Sfx_27 - dba Sfx_28 - dba Sfx_29 - dba Sfx_2a - dba Sfx_2b - dba Sfx_2c - dba Sfx_2d - dba Sfx_2e - dba Sfx_2f - dba Sfx_30 - dba Sfx_31 - dba Sfx_32 - dba Sfx_33 - dba Sfx_34 - dba Sfx_35 - dba Sfx_36 - dba Sfx_37 - dba Sfx_38 - dba Sfx_39 - dba Sfx_3a - dba Sfx_3b - dba Sfx_3c - dba Sfx_3d - dba Sfx_3e - dba Sfx_3f - dba Sfx_40 - dba Sfx_41 - dba Sfx_42 - dba Sfx_43 - dba Sfx_44 - dba Sfx_45 - dba Sfx_46 - dba Sfx_47 - dba Sfx_48 - dba Sfx_49 - dba Sfx_4a - dba Sfx_4b - dba Sfx_4c - dba Sfx_4d - dba Sfx_4e - dba Sfx_4f - dba Sfx_50 - dba Sfx_51 - dba Sfx_52 - dba Sfx_53 - dba Sfx_54 - dba Sfx_55 - dba Sfx_56 - dba Sfx_57 - dba Sfx_58 - dba Sfx_59 - dba Sfx_5a - dba Sfx_5b - dba Sfx_5c - dba Sfx_5d - dba Sfx_5e - dba Sfx_5f - dba Sfx_60 - dba Sfx_61 - dba Sfx_62 - dba Sfx_63 - dba Sfx_64 - dba Sfx_65 - dba Sfx_66 - dba Sfx_67 - dba Sfx_68 - dba Sfx_69 - dba Sfx_6a - dba Sfx_6b - dba Sfx_6c +SECTION "audio/sfx.asm", ROMX + +Sfx_00: + channel_count 1 + channel 5, Sfx_00_Ch5 + +Sfx_Potion: + channel_count 1 + channel 5, Sfx_Potion_Ch5 + +Sfx_FullHeal: + channel_count 1 + channel 5, Sfx_FullHeal_Ch5 + +Sfx_Menu: + channel_count 1 + channel 8, Sfx_Menu_Ch8 + +Sfx_ReadText: + channel_count 1 + channel 5, Sfx_ReadText_Ch5 + +Sfx_06: + channel_count 1 + channel 5, Sfx_06_Ch5 + +Sfx_07: + channel_count 1 + channel 5, Sfx_07_Ch5 + +Sfx_08: + channel_count 1 + channel 5, Sfx_08_Ch5 + +Sfx_09: + channel_count 1 + channel 5, Sfx_09_Ch5 + +Sfx_BootPC: + channel_count 1 + channel 5, Sfx_BootPC_Ch5 + +Sfx_EscapeRope: + channel_count 1 + channel 5, Sfx_EscapeRope_Ch5 + +Sfx_0c: + channel_count 1 + channel 5, Sfx_0c_Ch5 + +Sfx_0d: + channel_count 1 + channel 5, Sfx_0d_Ch5 + +Sfx_0e: + channel_count 1 + channel 5, Sfx_0e_Ch5 + +Sfx_0f: + channel_count 1 + channel 5, Sfx_0f_Ch5 + +Sfx_10: + channel_count 1 + channel 5, Sfx_10_Ch5 + +Sfx_11: + channel_count 1 + channel 5, Sfx_11_Ch5 + +Sfx_12: + channel_count 1 + channel 8, Sfx_12_Ch8 + +Sfx_13: + channel_count 1 + channel 8, Sfx_13_Ch8 + +Sfx_Wrong: + channel_count 2 + channel 5, Sfx_Wrong_Ch5 + channel 6, Sfx_Wrong_Ch6 + +Sfx_15: + channel_count 1 + channel 5, Sfx_15_Ch5 + +Sfx_16: + channel_count 1 + channel 8, Sfx_16_Ch8 + +Sfx_17: + channel_count 2 + channel 5, Sfx_17_Ch5 + channel 6, Sfx_17_Ch6 + +Sfx_18: + channel_count 1 + channel 5, Sfx_18_Ch5 + +Sfx_19: + channel_count 1 + channel 8, Sfx_19_Ch8 + +Sfx_1a: + channel_count 1 + channel 8, Sfx_1a_Ch8 + +Sfx_SwitchPokemon: + channel_count 2 + channel 5, Sfx_SwitchPokemon_Ch5 + channel 6, Sfx_SwitchPokemon_Ch6 + +Sfx_1c: + channel_count 2 + channel 5, Sfx_1c_Ch5 + channel 6, Sfx_1c_Ch6 + +Sfx_1d: + channel_count 2 + channel 5, Sfx_1d_Ch5 + channel 6, Sfx_1d_Ch6 + +Sfx_1e: + channel_count 1 + channel 5, Sfx_1e_Ch5 + +Sfx_1f: + channel_count 1 + channel 8, Sfx_1f_Ch8 + +Sfx_20: + channel_count 2 + channel 5, Sfx_20_Ch5 + channel 6, Sfx_20_Ch6 + +Sfx_Pokeflute: + channel_count 1 + channel 7, Sfx_Pokeflute_Ch7 + +Sfx_22: + channel_count 1 + channel 5, Sfx_22_Ch5 + +Sfx_23: + channel_count 2 + channel 5, Sfx_23_Ch5 + channel 6, Sfx_23_Ch6 + +Sfx_24: + channel_count 2 + channel 5, Sfx_24_Ch5 + channel 8, Sfx_24_Ch8 + +Sfx_25: + channel_count 2 + channel 5, Sfx_25_Ch5 + channel 8, Sfx_25_Ch8 + +Sfx_26: + channel_count 1 + channel 8, Sfx_26_Ch8 + +Sfx_PokedexRegistration: + channel_count 2 + channel 5, Sfx_PokedexRegistration_Ch5 + channel 6, Sfx_PokedexRegistration_Ch6 + +Sfx_28: + channel_count 1 + channel 8, Sfx_28_Ch8 + +Sfx_29: + channel_count 1 + channel 8, Sfx_29_Ch8 + +Sfx_2a: + channel_count 1 + channel 8, Sfx_2a_Ch8 + +Sfx_2b: + channel_count 1 + channel 8, Sfx_2b_Ch8 + +Sfx_2c: + channel_count 1 + channel 8, Sfx_2c_Ch8 + +Sfx_TitleEntrance: + channel_count 1 + channel 8, Sfx_TitleEntrance_Ch8 + +Sfx_2e: + channel_count 1 + channel 5, Sfx_2e_Ch5 + +Sfx_2f: + channel_count 1 + channel 5, Sfx_2f_Ch5 + +Sfx_PayDay: + channel_count 2 + channel 5, Sfx_PayDay_Ch5 + channel 6, Sfx_PayDay_Ch6 + +Sfx_GameFreakLogoRG: + channel_count 1 + channel 5, Sfx_GameFreakLogoRG_Ch5 + +Sfx_32: + channel_count 1 + channel 8, Sfx_32_Ch8 + +Sfx_33: + channel_count 1 + channel 5, Sfx_33_Ch5 + +Sfx_34: + channel_count 1 + channel 5, Sfx_34_Ch5 + +Sfx_35: + channel_count 1 + channel 8, Sfx_35_Ch8 + +Sfx_36: + channel_count 1 + channel 8, Sfx_36_Ch8 + +Sfx_37: + channel_count 1 + channel 8, Sfx_37_Ch8 + +Sfx_38: + channel_count 1 + channel 8, Sfx_38_Ch8 + +Sfx_39: + channel_count 1 + channel 8, Sfx_39_Ch8 + +Sfx_3a: + channel_count 1 + channel 8, Sfx_3a_Ch8 + +Sfx_3b: + channel_count 1 + channel 8, Sfx_3b_Ch8 + +Sfx_3c: + channel_count 1 + channel 8, Sfx_3c_Ch8 + +Sfx_3d: + channel_count 1 + channel 8, Sfx_3d_Ch8 + +Sfx_3e: + channel_count 1 + channel 8, Sfx_3e_Ch8 + +Sfx_3f: + channel_count 1 + channel 8, Sfx_3f_Ch8 + +Sfx_40: + channel_count 1 + channel 8, Sfx_40_Ch8 + +Sfx_41: + channel_count 1 + channel 8, Sfx_41_Ch8 + +Sfx_42: + channel_count 1 + channel 8, Sfx_42_Ch8 + +Sfx_43: + channel_count 1 + channel 8, Sfx_43_Ch8 + +Sfx_44: + channel_count 1 + channel 8, Sfx_44_Ch8 + +Sfx_45: + channel_count 1 + channel 8, Sfx_45_Ch8 + +Sfx_46: + channel_count 1 + channel 8, Sfx_46_Ch8 + +Sfx_47: + channel_count 1 + channel 8, Sfx_47_Ch8 + +Sfx_48: + channel_count 1 + channel 8, Sfx_48_Ch8 + +Sfx_49: + channel_count 2 + channel 5, Sfx_49_Ch5 + channel 8, Sfx_49_Ch8 + +Sfx_4a: + channel_count 1 + channel 8, Sfx_4a_Ch8 + +Sfx_4b: + channel_count 1 + channel 8, Sfx_4b_Ch8 + +Sfx_4c: + channel_count 1 + channel 8, Sfx_4c_Ch8 + +Sfx_4d: + channel_count 1 + channel 8, Sfx_4d_Ch8 + +Sfx_4e: + channel_count 1 + channel 8, Sfx_4e_Ch8 + +Sfx_4f: + channel_count 2 + channel 5, Sfx_4f_Ch5 + channel 8, Sfx_4f_Ch8 + +Sfx_50: + channel_count 1 + channel 8, Sfx_50_Ch8 + +Sfx_51: + channel_count 1 + channel 8, Sfx_51_Ch8 + +Sfx_52: + channel_count 3 + channel 5, Sfx_52_Ch5 + channel 6, Sfx_52_Ch6 + channel 8, Sfx_52_Ch8 + +Sfx_53: + channel_count 3 + channel 5, Sfx_53_Ch5 + channel 6, Sfx_53_Ch6 + channel 8, Sfx_53_Ch8 + +Sfx_54: + channel_count 2 + channel 5, Sfx_54_Ch5 + channel 8, Sfx_54_Ch8 + +Sfx_55: + channel_count 3 + channel 5, Sfx_55_Ch5 + channel 6, Sfx_55_Ch6 + channel 8, Sfx_55_Ch8 + +Sfx_56: + channel_count 2 + channel 5, Sfx_56_Ch5 + channel 8, Sfx_56_Ch8 + +Sfx_57: + channel_count 3 + channel 5, Sfx_57_Ch5 + channel 6, Sfx_57_Ch6 + channel 8, Sfx_57_Ch8 + +Sfx_58: + channel_count 3 + channel 5, Sfx_58_Ch5 + channel 6, Sfx_58_Ch6 + channel 8, Sfx_58_Ch8 + +Sfx_59: + channel_count 3 + channel 5, Sfx_59_Ch5 + channel 6, Sfx_59_Ch6 + channel 8, Sfx_59_Ch8 + +Sfx_5a: + channel_count 3 + channel 5, Sfx_5a_Ch5 + channel 6, Sfx_5a_Ch6 + channel 8, Sfx_5a_Ch8 + +Sfx_5b: + channel_count 3 + channel 5, Sfx_5b_Ch5 + channel 6, Sfx_5b_Ch6 + channel 8, Sfx_5b_Ch8 + +Sfx_5c: + channel_count 2 + channel 5, Sfx_5c_Ch5 + channel 6, Sfx_5c_Ch6 + +Sfx_5d: + channel_count 2 + channel 5, Sfx_5d_Ch5 + channel 6, Sfx_5d_Ch6 + +Sfx_5e: + channel_count 2 + channel 5, Sfx_5e_Ch5 + channel 6, Sfx_5e_Ch6 + +Sfx_5f: + channel_count 3 + channel 5, Sfx_5f_Ch5 + channel 6, Sfx_5f_Ch6 + channel 8, Sfx_5f_Ch8 + +Sfx_60: + channel_count 2 + channel 5, Sfx_60_Ch5 + channel 6, Sfx_60_Ch6 + +Sfx_61: + channel_count 3 + channel 5, Sfx_61_Ch5 + channel 6, Sfx_61_Ch6 + channel 8, Sfx_61_Ch8 + +Sfx_62: + channel_count 1 + channel 5, Sfx_62_Ch5 + +Sfx_GetItemRG: + channel_count 3 + channel 5, Sfx_GetItemRG_Ch5 + channel 6, Sfx_GetItemRG_Ch6 + channel 8, Sfx_GetItemRG_Ch8 + +Sfx_UnusedFanfare1: + channel_count 3 + channel 5, Sfx_UnusedFanfare1_Ch5 + channel 6, Sfx_UnusedFanfare1_Ch6 + channel 8, Sfx_UnusedFanfare1_Ch8 + +Sfx_PokedexEvaluationRG: + channel_count 3 + channel 5, Sfx_PokedexEvaluationRG_Ch5 + channel 6, Sfx_PokedexEvaluationRG_Ch6 + channel 8, Sfx_PokedexEvaluationRG_Ch8 + +Sfx_LevelUpRG: + channel_count 3 + channel 5, Sfx_LevelUpRG_Ch5 + channel 6, Sfx_LevelUpRG_Ch6 + channel 8, Sfx_LevelUpRG_Ch8 + +Sfx_EvolutionCompleteRG: + channel_count 3 + channel 5, Sfx_EvolutionCompleteRG_Ch5 + channel 6, Sfx_EvolutionCompleteRG_Ch6 + channel 8, Sfx_EvolutionCompleteRG_Ch8 + +Sfx_GetKeyItemRG: + channel_count 3 + channel 5, Sfx_GetKeyItemRG_Ch5 + channel 6, Sfx_GetKeyItemRG_Ch6 + channel 8, Sfx_GetKeyItemRG_Ch8 + +Sfx_UnusedFanfare2: + channel_count 3 + channel 5, Sfx_UnusedFanfare2_Ch5 + channel 6, Sfx_UnusedFanfare2_Ch6 + channel 8, Sfx_UnusedFanfare2_Ch8 + +Sfx_CaughtPokemonRG: + channel_count 3 + channel 5, Sfx_CaughtPokemonRG_Ch5 + channel 6, Sfx_CaughtPokemonRG_Ch6 + channel 8, Sfx_CaughtPokemonRG_Ch8 + +Sfx_UnusedFanfare3: + channel_count 3 + channel 5, Sfx_UnusedFanfare3_Ch5 + channel 6, Sfx_UnusedFanfare3_Ch6 + channel 8, Sfx_UnusedFanfare3_Ch8 + +Sfx_Menu_Ch8: + noise_note 1, 14, 2, 51 + noise_note 8, 14, 1, 34 + sound_ret + +Sfx_Pokeflute_Ch7: + tempo 256 + volume 7, 7 + toggle_sfx + vibrato 16, 1, 4 + note_type 12, 1, 0 + octave 5 + note E_, 2 + note F_, 2 + note G_, 4 + note A_, 2 + note G_, 2 + octave 6 + note C_, 4 + note C_, 2 + note D_, 2 + note C_, 2 + octave 5 + note G_, 2 + note A_, 2 + note F_, 2 + note G_, 8 + rest 12 + sound_ret + +Sfx_19_Ch8: + noise_note 2, 15, 7, 36 + noise_note 2, 15, 7, 52 + noise_note 4, 15, 7, 68 + noise_note 8, 15, 4, 85 + noise_note 8, 15, 1, 68 + sound_ret + +Sfx_1a_Ch8: + noise_note 9, 15, 1, 68 + noise_note 8, 13, 1, 67 + sound_ret + +Sfx_SwitchPokemon_Ch5: + duty_cycle 2 + square_note 8, 14, 1, 1856 + sound_ret + +Sfx_SwitchPokemon_Ch6: + duty_cycle 2 + square_note 2, 0, 8, 0 + square_note 8, 11, 1, 1857 + sound_ret + +Sfx_00_Ch5: + duty_cycle 2 + pitch_sweep 3, -2 + square_note 4, 15, 2, 512 + pitch_sweep 2, 2 + square_note 8, 14, 2, 512 + pitch_sweep 0, 8 + sound_ret + +Sfx_1c_Ch5: + duty_cycle 2 + square_note 4, 15, 1, 1920 + sound_ret + +Sfx_1c_Ch6: + duty_cycle 2 + square_note 1, 0, 8, 0 + square_note 4, 10, 1, 1889 + sound_ret + +Sfx_1d_Ch5: + duty_cycle 2 + square_note 4, 14, 1, 1792 + square_note 8, 15, 2, 2016 + sound_ret + +Sfx_1d_Ch6: + duty_cycle 2 + square_note 1, 0, 8, 0 + square_note 4, 9, 1, 1729 + square_note 8, 10, 2, 1953 + sound_ret + +Sfx_1e_Ch5: + duty_cycle 2 + pitch_sweep 5, -2 + square_note 15, 15, 1, 768 + pitch_sweep 0, 8 + sound_ret + +Sfx_1f_Ch8: + noise_note 2, 15, 1, 84 + noise_note 12, 7, 1, 35 + noise_note 2, 11, 1, 84 + noise_note 12, 6, 1, 35 + noise_note 6, 4, 1, 84 + sound_ret + +Sfx_ReadText_Ch5: + duty_cycle 2 + square_note 0, 9, 1, 1984 + square_note 0, 8, 1, 2000 + square_note 0, 9, 1, 1984 + square_note 12, 10, 1, 2000 + sound_ret + +Sfx_20_Ch5: + duty_cycle 2 + square_note 2, 15, 4, 1792 + square_note 2, 14, 4, 1536 + square_note 2, 14, 4, 1664 + square_note 2, 14, 4, 1728 + square_note 2, 14, 4, 1792 + square_note 2, 14, 4, 1984 + square_note 15, 15, 2, 2016 + sound_ret + +Sfx_20_Ch6: + duty_cycle 2 + square_note 2, 0, 8, 0 + square_note 2, 13, 4, 1793 + square_note 2, 12, 4, 1537 + square_note 2, 12, 4, 1665 + square_note 2, 12, 4, 1729 + square_note 2, 12, 4, 1793 + square_note 2, 12, 4, 1985 + square_note 15, 13, 2, 2017 + sound_ret + +Sfx_Potion_Ch5: + duty_cycle 2 + pitch_sweep 1, 7 + square_note 15, 15, 0, 1264 + square_note 15, 15, 2, 1616 + pitch_sweep 0, 8 + sound_ret + +Sfx_06_Ch5: +.loop + duty_cycle 0 + pitch_sweep 1, 4 + square_note 4, 15, 2, 1536 + sound_loop 4, .loop + square_note 15, 15, 3, 1536 + pitch_sweep 0, 8 + sound_ret + +Sfx_FullHeal_Ch5: + duty_cycle 2 + pitch_sweep 1, 4 + square_note 4, 15, 2, 1536 + square_note 4, 15, 2, 1536 + pitch_sweep 1, 7 + square_note 15, 15, 2, 1536 + pitch_sweep 0, 8 + sound_ret + +Sfx_07_Ch5: + duty_cycle 2 + pitch_sweep 1, 5 + square_note 15, 15, 0, 1264 + square_note 15, 15, 2, 1616 + pitch_sweep 0, 8 + sound_ret + +Sfx_08_Ch5: + duty_cycle 2 + square_note 15, 15, 2, 1984 + square_note 15, 0, 0, 0 + square_note 3, 10, 1, 1920 + square_note 3, 10, 1, 1792 + square_note 3, 10, 1, 1856 + square_note 3, 10, 1, 1792 + square_note 3, 10, 1, 1920 + square_note 3, 10, 1, 1792 + square_note 3, 10, 1, 1984 + square_note 8, 10, 1, 1792 + sound_ret + +Sfx_09_Ch5: + duty_cycle 2 + square_note 4, 15, 0, 1536 + square_note 4, 15, 0, 1024 + square_note 4, 15, 0, 512 + square_note 1, 0, 0, 0 + sound_ret + +Sfx_BootPC_Ch5: + duty_cycle 2 + square_note 6, 15, 0, 1792 + square_note 4, 0, 0, 0 + square_note 6, 15, 0, 1792 + square_note 1, 0, 0, 0 + sound_ret + +Sfx_EscapeRope_Ch5: + duty_cycle 1 + pitch_sweep 1, 7 + square_note 15, 13, 7, 1536 + square_note 15, 11, 7, 1408 + square_note 15, 8, 7, 1280 + square_note 15, 4, 7, 1152 + square_note 15, 1, 7, 1024 + pitch_sweep 0, 8 + sound_ret + +Sfx_0c_Ch5: + duty_cycle 2 + square_note 4, 0, 0, 0 + square_note 2, 15, 1, 1664 + square_note 1, 0, 0, 0 + square_note 4, 15, 1, 1920 + square_note 4, 0, 0, 0 + sound_ret + +Sfx_0d_Ch5: + duty_cycle 2 + pitch_sweep 2, -4 + square_note 4, 15, 2, 1280 + pitch_sweep 2, 2 + square_note 2, 15, 1, 1280 + pitch_sweep 0, 8 + square_note 1, 0, 0, 0 + sound_ret + +Sfx_0e_Ch5: + duty_cycle 1 + pitch_sweep 1, 7 + square_note 15, 13, 7, 1280 + square_note 15, 11, 7, 1408 + square_note 15, 8, 7, 1536 + square_note 15, 4, 7, 1664 + square_note 15, 1, 7, 1792 + pitch_sweep 0, 8 + sound_ret + +Sfx_0f_Ch5: + duty_cycle 1 + pitch_sweep 1, 7 + square_note 15, 13, 7, 1792 + square_note 15, 11, 7, 1664 + square_note 15, 8, 7, 1536 + square_note 15, 4, 7, 1408 + square_note 15, 1, 7, 1280 + pitch_sweep 0, 8 + sound_ret + +Sfx_10_Ch5: + duty_cycle 1 + pitch_sweep 1, 6 + square_note 15, 13, 2, 1280 + pitch_sweep 0, 8 + sound_ret + +Sfx_11_Ch5: + duty_cycle 2 + pitch_sweep 9, 5 + square_note 15, 15, 2, 1024 + pitch_sweep 0, 8 + sound_ret + +Sfx_12_Ch8: + noise_note 2, 15, 1, 50 + noise_note 2, 0, 0, 0 + noise_note 2, 15, 1, 34 + noise_note 1, 0, 0, 0 + sound_ret + +Sfx_13_Ch8: + noise_note 2, 15, 1, 18 + noise_note 2, 0, 0, 0 + noise_note 2, 10, 1, 18 + noise_note 2, 0, 0, 0 + noise_note 2, 13, 1, 18 + noise_note 2, 0, 0, 0 + noise_note 2, 8, 1, 18 + noise_note 2, 0, 0, 0 + noise_note 2, 11, 1, 18 + noise_note 2, 0, 0, 0 + noise_note 2, 6, 1, 18 + noise_note 2, 0, 0, 0 + noise_note 2, 9, 1, 18 + noise_note 2, 0, 0, 0 + noise_note 2, 4, 1, 18 + noise_note 2, 0, 0, 0 + sound_ret + +Sfx_Wrong_Ch5: + duty_cycle 3 + pitch_sweep 5, -2 + square_note 4, 15, 0, 1280 + pitch_sweep 0, 8 + square_note 4, 0, 0, 0 + square_note 15, 15, 0, 1280 + square_note 1, 0, 0, 0 + sound_ret + +Sfx_Wrong_Ch6: + duty_cycle 3 + square_note 4, 15, 0, 1025 + square_note 4, 0, 0, 0 + square_note 15, 15, 0, 1025 + square_note 1, 0, 0, 0 + sound_ret + +Sfx_15_Ch5: + duty_cycle 0 + pitch_sweep 1, 7 + square_note 15, 13, 2, 1792 + pitch_sweep 0, 8 + sound_ret + +Sfx_16_Ch8: + noise_note 4, 10, 2, 35 + noise_note 8, 15, 1, 52 + noise_note 15, 0, 0, 0 + noise_note 2, 15, 7, 36 + noise_note 2, 15, 7, 52 + noise_note 4, 15, 7, 68 + noise_note 8, 15, 4, 85 + noise_note 8, 15, 1, 68 + sound_ret + +Sfx_17_Ch5: + duty_cycle 2 + square_note 15, 15, 0, 1280 + square_note 4, 0, 0, 0 + square_note 15, 15, 0, 1280 + square_note 15, 15, 0, 1280 + square_note 15, 15, 0, 1280 + square_note 15, 15, 0, 1280 + square_note 15, 15, 2, 1280 + sound_ret + +Sfx_17_Ch6: + duty_cycle 3 + square_note 15, 15, 0, 1154 + square_note 4, 0, 0, 0 + square_note 15, 15, 0, 1154 + square_note 15, 15, 0, 1154 + square_note 15, 15, 0, 1154 + square_note 15, 15, 0, 1154 + square_note 15, 15, 2, 1154 + sound_ret + +Sfx_18_Ch5: + duty_cycle 1 + pitch_sweep 3, -2 + square_note 4, 15, 2, 1280 + pitch_sweep 2, 2 + square_note 4, 14, 2, 1280 + pitch_sweep 3, -2 + square_note 4, 15, 2, 1792 + pitch_sweep 2, 2 + square_note 15, 14, 2, 1792 + pitch_sweep 0, 8 + sound_ret + +Sfx_22_Ch5: + duty_cycle 2 + square_note 15, 15, 3, 1840 + square_note 8, 6, 5, 1840 + square_note 15, 15, 4, 1792 + square_note 15, 7, 4, 1792 + square_note 15, 4, 4, 1792 + square_note 15, 2, 4, 1792 + sound_ret + +Sfx_23_Ch5: + duty_cycle 2 + pitch_sweep 2, -7 + square_note 15, 15, 2, 1920 + sound_ret + +Sfx_23_Ch6: + duty_cycle 2 + square_note 15, 12, 2, 1922 + sound_ret + +Sfx_62_Ch5: + duty_cycle 0 + square_note 0, 13, 2, 1792 + square_note 0, 13, 2, 1856 + square_note 0, 13, 2, 1920 + square_note 0, 13, 2, 1984 + square_note 10, 14, 1, 2016 + square_note 1, 0, 0, 0 + sound_ret + +Sfx_24_Ch5: + duty_cycle 2 + pitch_sweep 1, 6 + square_note 15, 15, 2, 1024 + pitch_sweep 0, 8 + sound_ret + +Sfx_24_Ch8: + noise_note 15, 10, 2, 34 + sound_ret + +Sfx_25_Ch5: + square_note 15, 13, 1, 512 + pitch_sweep 0, 8 + sound_ret + +Sfx_25_Ch8: + noise_note 4, 15, 5, 51 + noise_note 8, 15, 4, 34 + noise_note 15, 15, 2, 33 + sound_ret + +Sfx_26_Ch8: + noise_note 2, 6, 1, 35 + noise_note 2, 10, 1, 51 + noise_note 2, 12, 1, 51 + noise_note 2, 5, 1, 17 + noise_note 2, 15, 1, 51 + noise_note 2, 4, 1, 17 + noise_note 2, 12, 1, 51 + noise_note 2, 3, 1, 17 + noise_note 2, 8, 1, 51 + noise_note 2, 3, 1, 17 + noise_note 8, 4, 1, 51 + sound_ret + +Sfx_PokedexRegistration_Ch5: + duty_cycle 2 + pitch_sweep 4, 4 + square_note 15, 15, 0, 1264 + pitch_sweep 1, 7 + square_note 15, 15, 2, 1616 + pitch_sweep 0, 8 + sound_ret + +Sfx_PokedexRegistration_Ch6: + duty_cycle 2 + square_note 15, 9, 2, 1536 + square_note 15, 9, 2, 1922 + sound_ret + +Sfx_32_Ch8: + noise_note 2, 10, 1, 18 + sound_ret + +Sfx_33_Ch5: + duty_cycle 1 + pitch_sweep 10, -7 + square_note 15, 15, 2, 1920 + pitch_sweep 0, 8 + sound_ret + +Sfx_34_Ch5: + duty_cycle 1 + pitch_sweep 9, 7 + square_note 15, 15, 2, 1280 + pitch_sweep 0, 8 + sound_ret + +Sfx_35_Ch8: + noise_note 2, 10, 1, 34 + sound_ret + +Sfx_36_Ch8: + noise_note 8, 15, 1, 84 + sound_ret + +Sfx_37_Ch8: + noise_note 15, 8, -7, 17 + noise_note 4, 15, -7, 18 + noise_note 10, 15, 1, 85 + sound_ret + +Sfx_38_Ch8: + noise_note 15, 8, -7, 52 + noise_note 8, 15, 2, 53 + noise_note 10, 15, 1, 85 + sound_ret + +Sfx_39_Ch8: + noise_note 15, 9, -7, 35 + noise_note 8, 15, 1, 33 + sound_ret + +Sfx_3a_Ch8: + noise_note 2, 14, 1, 75 + noise_note 10, 15, 1, 68 + noise_note 2, 14, 1, 58 + noise_note 6, 15, 1, 52 + sound_ret + +Sfx_3b_Ch8: + noise_note 2, 15, 4, 68 + noise_note 2, 15, 4, 20 + noise_note 15, 15, 1, 50 + sound_ret + +Sfx_3c_Ch8: + noise_note 4, 8, -7, 85 + noise_note 2, 15, 4, 68 + noise_note 8, 15, 4, 34 + noise_note 15, 15, 2, 33 + sound_ret + +Sfx_3d_Ch8: +.loop + noise_note 8, 4, -7, 35 + noise_note 4, 12, 4, 34 + noise_note 6, 15, 2, 35 + sound_loop 4, .loop + sound_ret + +Sfx_3e_Ch8: + noise_note 8, 4, -7, 51 + noise_note 4, 12, 4, 34 + noise_note 6, 15, 2, 35 + noise_note 15, 15, 2, 34 + sound_ret + +Sfx_3f_Ch8: + noise_note 8, 15, -7, 50 + noise_note 8, 15, 4, 67 + noise_note 8, 15, 2, 84 + noise_note 8, 15, 1, 101 + sound_ret + +Sfx_40_Ch8: + noise_note 1, 12, 2, 51 + noise_note 2, 15, 2, 33 + noise_note 1, 14, 2, 51 + noise_note 1, 12, 2, 50 + noise_note 1, 9, 2, 18 + noise_note 1, 11, 2, 49 + noise_note 12, 9, 1, 16 + noise_note 8, 15, 2, 65 + sound_ret + +Sfx_41_Ch8: + noise_note 1, 9, 4, 35 + noise_note 1, 11, 4, 34 + noise_note 8, 15, 1, 68 + sound_ret + +Sfx_42_Ch8: + noise_note 2, 9, 4, 51 + noise_note 4, 11, 4, 34 + noise_note 4, 15, 1, 68 + noise_note 8, 15, 1, 85 + sound_ret + +Sfx_43_Ch8: + noise_note 4, 15, -7, 85 + noise_note 8, 15, 1, 101 + sound_ret + +Sfx_44_Ch8: + noise_note 2, 8, 4, 67 + noise_note 2, 12, 4, 34 + noise_note 8, 15, 2, 52 + sound_ret + +Sfx_45_Ch8: + noise_note 4, 15, 1, 52 + noise_note 15, 15, 2, 100 + sound_ret + +Sfx_46_Ch8: + noise_note 2, 15, 1, 34 + noise_note 15, 15, 2, 18 + sound_ret + +Sfx_47_Ch8: + noise_note 2, 12, 2, 1 + noise_note 15, 15, 4, 1 + noise_note 15, 15, 2, 1 + sound_ret + +Sfx_48_Ch8: + noise_note 8, 15, 1, 50 + noise_note 8, 15, 1, 51 + sound_ret + +Sfx_49_Ch5: + duty_cycle 0 + pitch_sweep 3, -2 + square_note 4, 15, 2, 512 + pitch_sweep 2, 2 + square_note 8, 14, 2, 512 + pitch_sweep 0, 8 + sound_ret + +Sfx_49_Ch8: + noise_note 0, 13, 1, 66 + noise_note 4, 10, 1, 50 + noise_note 0, 13, 1, 34 + noise_note 6, 10, 1, 50 + sound_ret + +Sfx_4a_Ch8: + noise_note 3, 9, 2, 49 + noise_note 3, 11, 2, 50 + noise_note 3, 12, 2, 51 + noise_note 8, 15, 1, 84 + sound_ret + +Sfx_4b_Ch8: + noise_note 12, 15, 1, 84 + noise_note 8, 15, 1, 100 + sound_ret + +Sfx_4c_Ch8: + noise_note 2, 15, 1, 51 + noise_note 2, 12, 1, 50 + noise_note 2, 10, 1, 49 + noise_note 15, 8, 2, 50 + noise_note 8, 15, 1, 52 + sound_ret + +Sfx_4d_Ch8: + noise_note 2, 13, 2, 50 + noise_note 15, 15, 2, 67 + sound_ret + +Sfx_4e_Ch8: + noise_note 2, 15, 2, 67 + noise_note 4, 11, 5, 50 + noise_note 9, 8, 6, 49 + noise_note 7, 6, 4, 0 + noise_note 15, 15, 2, 85 + sound_ret + +Sfx_4f_Ch5: + duty_cycle 1 + pitch_sweep 9, 7 + square_note 15, 15, 2, 1792 + pitch_sweep 0, 8 + sound_ret + +Sfx_4f_Ch8: + noise_note 15, 3, -7, 34 + noise_note 15, 15, 2, 33 + sound_ret + +Sfx_50_Ch8: + noise_note 15, 4, -7, 65 + noise_note 8, 8, -7, 65 + noise_note 8, 12, -7, 65 + noise_note 8, 15, 2, 66 + noise_note 15, 15, 2, 65 + sound_ret + +Sfx_51_Ch8: + noise_note 10, 15, -7, 80 + noise_note 15, 15, -7, 81 + noise_note 8, 15, 2, 81 + noise_note 6, 15, -7, 82 + noise_note 6, 15, -7, 83 + noise_note 8, 15, -7, 84 + noise_note 15, 15, 2, 84 + sound_ret + +Sfx_52_Ch5: + duty_cycle 2 + square_note 15, 3, -7, 1984 +.loop + square_note 15, 13, -7, 1984 + sound_loop 4, .loop + square_note 15, 13, 1, 1984 + sound_ret + +Sfx_52_Ch6: + duty_cycle_pattern 2, 3, 0, 3 + square_note 15, 2, -7, 1992 +.loop + square_note 15, 12, -7, 1991 + sound_loop 4, .loop + square_note 15, 12, 1, 1992 + sound_ret + +Sfx_52_Ch8: +.loop + noise_note 3, 9, 7, 18 + noise_note 3, 10, 1, 17 + sound_loop 10, .loop + sound_ret + +Sfx_53_Ch5: +.loop + duty_cycle 0 + square_note 0, 15, 1, 1984 + square_note 0, 15, 1, 1792 + sound_loop 12, .loop + sound_ret + +Sfx_53_Ch6: +.loop + duty_cycle_pattern 2, 3, 0, 3 + square_note 0, 14, 1, 1985 + square_note 0, 14, 1, 1793 + sound_loop 12, .loop + sound_ret + +Sfx_53_Ch8: +.loop + noise_note 1, 13, 1, 73 + noise_note 1, 13, 1, 41 + sound_loop 6, .loop + sound_ret + +Sfx_54_Ch5: +.loop + duty_cycle_pattern 3, 0, 2, 1 + square_note 11, 15, 3, 288 + square_note 9, 13, 3, 336 + sound_loop 5, .loop + square_note 8, 14, 3, 304 + square_note 15, 12, 2, 272 + sound_ret + +Sfx_54_Ch8: +.loop + noise_note 10, 15, 3, 53 + noise_note 14, 15, 6, 69 + sound_loop 4, .loop + noise_note 12, 15, 4, 188 + noise_note 12, 15, 5, 156 + noise_note 15, 15, 4, 172 + sound_ret + +Sfx_55_Ch5: +.loop + duty_cycle_pattern 0, 3, 2, 1 + square_note 4, 15, 4, 1536 + square_note 3, 12, 4, 1280 + square_note 5, 11, 5, 1536 + square_note 13, 14, 2, 1728 + sound_loop 3, .loop + square_note 8, 13, 1, 1536 + sound_ret + +Sfx_55_Ch6: +.loop + duty_cycle_pattern 2, 0, 3, 1 + square_note 5, 14, 4, 1504 + square_note 4, 11, 4, 1248 + square_note 6, 10, 5, 1512 + square_note 14, 13, 1, 1696 + sound_loop 3, .loop + sound_ret + +Sfx_55_Ch8: +.loop + noise_note 5, 12, 3, 51 + noise_note 3, 9, 2, 67 + noise_note 10, 11, 5, 51 + noise_note 15, 12, 3, 50 + sound_loop 2, .loop + sound_ret + +Sfx_56_Ch5: +.loop + duty_cycle_pattern 3, 1, 0, 2 + square_note 3, 8, 1, 768 + square_note 3, 12, 1, 1024 + square_note 3, 15, 1, 1280 + square_note 3, 11, 1, 1024 + square_note 3, 7, 1, 768 + sound_loop 5, .loop + square_note 8, 8, 1, 1024 + sound_ret + +Sfx_56_Ch8: +.loop + noise_note 3, 6, 2, 34 + noise_note 3, 10, 2, 50 + noise_note 3, 13, 2, 51 + noise_note 3, 9, 2, 35 + noise_note 3, 5, 2, 18 + sound_loop 5, .loop + noise_note 8, 8, 1, 18 + sound_ret + +Sfx_57_Ch5: +.loop + duty_cycle_pattern 0, 3, 2, 1 + square_note 15, 15, 4, 1280 + square_note 15, 12, 4, 1024 + square_note 15, 14, 2, 1472 + sound_loop 3, .loop + sound_ret + +Sfx_57_Ch6: +.loop + duty_cycle_pattern 2, 0, 3, 1 + square_note 7, 14, 4, 1072 + square_note 15, 11, 4, 816 + square_note 15, 10, 2, 1080 + sound_loop 4, .loop + sound_ret + +Sfx_57_Ch8: +.loop + noise_note 9, 15, 4, 68 + noise_note 9, 15, 2, 67 + noise_note 15, 15, 4, 66 + noise_note 15, 15, 4, 65 + sound_loop 3, .loop + sound_ret + +Sfx_58_Ch5: +.loop + duty_cycle_pattern 2, 2, 0, 1 + square_note 10, 15, 1, 1600 + square_note 10, 15, 3, 1664 + square_note 10, 15, 2, 1568 + sound_loop 4, .loop + square_note 10, 15, 1, 1600 + sound_ret + +Sfx_58_Ch6: +.loop + duty_cycle_pattern 2, 3, 0, 3 + square_note 10, 15, 3, 1393 + square_note 7, 14, 3, 1329 + square_note 10, 15, 1, 1361 + sound_loop 4, .loop + square_note 10, 15, 1, 1393 + sound_ret + +Sfx_58_Ch8: +.loop + noise_note 2, 13, 1, 74 + noise_note 2, 13, 2, 42 + sound_loop 21, .loop + sound_ret + +Sfx_59_Ch5: +.loop + duty_cycle 0 + square_note 2, 15, 1, 512 + square_note 3, 15, 1, 1792 + square_note 4, 15, 1, 1280 + square_note 5, 15, 1, 2032 + sound_loop 8, .loop + sound_ret + +Sfx_59_Ch6: +.loop + duty_cycle_pattern 2, 3, 0, 3 + square_note 2, 14, 1, 770 + square_note 3, 14, 1, 2034 + square_note 4, 14, 1, 1538 + square_note 5, 14, 1, 1794 + sound_loop 8, .loop + sound_ret + +Sfx_59_Ch8: +.loop + noise_note 2, 13, 3, 16 + noise_note 3, 13, 3, 17 + noise_note 2, 13, 2, 16 + noise_note 5, 13, 2, 18 + sound_loop 9, .loop + sound_ret + +Sfx_5a_Ch5: +.loop + duty_cycle_pattern 0, 2, 2, 3 + square_note 3, 15, 1, 2032 + square_note 4, 15, 2, 512 + sound_loop 8, .loop + sound_ret + +Sfx_5a_Ch6: +.loop + duty_cycle_pattern 2, 3, 0, 3 + square_note 4, 14, 2, 514 + square_note 4, 14, 1, 2018 + sound_loop 9, .loop + sound_ret + +Sfx_5a_Ch8: +.loop + noise_note 4, 15, -7, 67 + noise_note 4, 15, 2, 68 + sound_loop 9, .loop + sound_ret + +Sfx_5b_Ch5: + duty_cycle 2 + pitch_sweep 15, 7 + square_note 8, 12, 4, 1981 + square_note 8, 12, 4, 1982 + square_note 8, 12, 4, 1983 + square_note 8, 12, 4, 1984 + square_note 15, 12, 4, 1985 + square_note 15, 15, 2, 1984 + pitch_sweep 0, 8 + sound_ret + +Sfx_5b_Ch6: + duty_cycle 2 + square_note 8, 12, 4, 1904 + square_note 8, 12, 4, 1889 + square_note 8, 12, 4, 1890 + square_note 8, 12, 4, 1891 + square_note 15, 12, 4, 1892 + square_note 15, 15, 2, 1892 + sound_ret + +Sfx_5b_Ch8: + noise_note 15, 3, -7, 20 + noise_note 15, 12, -7, 19 + noise_note 15, 12, -7, 18 + noise_note 15, 12, -7, 17 + noise_note 15, 12, -7, 16 + noise_note 15, 12, 2, 16 + sound_ret + +Sfx_5c_Ch5: + duty_cycle 2 + square_note 15, 15, -7, 2016 + square_note 15, 15, -7, 2016 + square_note 15, 15, -7, 2016 + square_note 15, 15, -7, 2016 + square_note 15, 15, 2, 2016 + sound_ret + +Sfx_5c_Ch6: + duty_cycle 3 + square_note 15, 15, -7, 2018 + square_note 15, 15, -7, 2017 + square_note 15, 15, -7, 2018 + square_note 15, 15, -7, 2017 + square_note 15, 15, 2, 2018 + sound_ret + +Sfx_5d_Ch5: + duty_cycle 2 + pitch_sweep 10, -7 + square_note 8, 15, 1, 1792 + pitch_sweep 0, 8 + sound_ret + +Sfx_5d_Ch6: + duty_cycle 3 + square_note 8, 15, 1, 1793 + sound_ret + +Sfx_5e_Ch5: + duty_cycle 2 + square_note 6, 15, 1, 1280 + square_note 6, 15, 1, 1408 + square_note 6, 15, 1, 1536 + square_note 6, 15, 1, 1664 + square_note 8, 15, 1, 1792 + sound_ret + +Sfx_5e_Ch6: + duty_cycle 3 + square_note 6, 14, 1, 1296 + square_note 6, 14, 1, 1424 + square_note 6, 14, 1, 1552 + square_note 6, 14, 1, 1680 + square_note 8, 14, 1, 1808 + sound_ret + +Sfx_5f_Ch5: + duty_cycle_pattern 3, 2, 3, 1 + square_note 8, 15, -7, 1016 + square_note 15, 15, -7, 1024 + square_note 15, 15, 3, 1024 + sound_ret + +Sfx_5f_Ch6: + duty_cycle_pattern 2, 3, 1, 0 + square_note 8, 14, -7, 960 + square_note 15, 14, -7, 960 + square_note 15, 14, 3, 960 + sound_ret + +Sfx_5f_Ch8: + noise_note 4, 15, -7, 81 + noise_note 8, 15, -7, 84 + noise_note 15, 15, -7, 85 + noise_note 15, 15, 3, 86 + sound_ret + +Sfx_60_Ch5: + toggle_sfx + vibrato 10, 2, 4 + duty_cycle 2 + note_type 10, 8, 7 + octave 5 + note G_, 8 + octave 6 + note F_, 4 + note D#, 4 + octave 5 + note G_, 8 + sound_ret + +Sfx_60_Ch6: + toggle_sfx + vibrato 10, 2, 3 + duty_cycle 2 + note_type 11, 6, 7 + octave 5 + note G_, 8 + note_type 10, 6, 7 + octave 6 + note F_, 4 + note D#, 4 + octave 5 + note G_, 8 + sound_ret + +Sfx_61_Ch5: + duty_cycle 0 + square_note 2, 15, 1, 1920 + square_note 2, 15, 1, 1792 + square_note 2, 15, 1, 1936 + square_note 2, 15, 1, 1792 + square_note 2, 15, 1, 1952 + square_note 2, 15, 1, 1792 + square_note 2, 15, 1, 1968 + square_note 2, 15, 1, 1792 + square_note 2, 15, 1, 1984 + square_note 2, 15, 1, 1792 + square_note 2, 15, 1, 2000 +.loop + square_note 2, 15, 1, 1792 + square_note 2, 15, 1, 2016 + sound_loop 12, .loop + square_note 15, 15, 1, 1792 + sound_ret + +Sfx_61_Ch6: + duty_cycle_pattern 2, 3, 0, 3 + square_note 2, 15, 1, 1921 + square_note 2, 15, 1, 1793 + square_note 2, 15, 1, 1937 + square_note 2, 15, 1, 1793 + square_note 2, 15, 1, 1953 + square_note 2, 15, 1, 1793 + square_note 2, 15, 1, 1969 + square_note 2, 15, 1, 1793 + square_note 2, 15, 1, 1985 + square_note 2, 15, 1, 1793 + square_note 2, 15, 1, 2001 +.loop + square_note 2, 15, 1, 1793 + square_note 2, 15, 1, 2017 + sound_loop 12, .loop + square_note 15, 15, 1, 1793 + sound_ret + +Sfx_61_Ch8: +.loop + noise_note 1, 13, 1, 73 + noise_note 1, 13, 1, 41 + sound_loop 26, .loop + sound_ret + +Sfx_28_Ch8: + noise_note 6, 2, 0, 16 + noise_note 6, 2, -7, 64 + noise_note 6, 4, -7, 65 + noise_note 6, 8, -7, 65 + noise_note 6, 12, -7, 66 + noise_note 8, 13, 7, 66 + noise_note 15, 14, 7, 67 + noise_note 15, 15, 2, 67 + sound_ret + +Sfx_29_Ch8: + noise_note 4, 13, 1, 65 + sound_ret + +Sfx_2a_Ch8: + noise_note 4, 12, 1, 66 + sound_ret + +Sfx_2b_Ch8: + noise_note 2, 6, -7, 33 + noise_note 2, 10, -7, 49 + noise_note 15, 15, 2, 65 + sound_ret + +Sfx_2c_Ch8: + noise_note 2, 13, 2, 50 + noise_note 15, 15, 2, 67 + sound_ret + +Sfx_TitleEntrance_Ch8: + noise_note 8, 3, -4, 32 + noise_note 6, 10, 0, 32 + noise_note 8, 11, 0, 33 + noise_note 10, 12, 0, 34 + noise_note 15, 13, 2, 35 + sound_ret + +Sfx_2e_Ch5: + duty_cycle 2 + square_note 1, 15, 2, 1696 + square_note 1, 15, 2, 1760 + square_note 8, 15, 1, 1792 + sound_ret + +Sfx_2f_Ch5: + duty_cycle 2 + square_note 2, 15, 1, 1792 + square_note 8, 8, 1, 2016 + sound_ret + +Sfx_PayDay_Ch5: + duty_cycle 3 + square_note 5, 14, 1, 1792 + square_note 2, 14, 1, 1920 + square_note 15, 15, 1, 1984 + sound_ret + +Sfx_PayDay_Ch6: + duty_cycle 2 + square_note 4, 12, 1, 1729 + square_note 2, 12, 1, 1857 + square_note 15, 13, 1, 1921 + sound_ret + +Sfx_GameFreakLogoRG_Ch5: + duty_cycle 2 + pitch_sweep 5, -7 + square_note 4, 4, 0, 2016 + square_note 4, 6, 0, 2016 + square_note 4, 8, 0, 2016 + square_note 8, 10, 0, 2016 + square_note 8, 10, 0, 2016 + square_note 8, 8, 0, 2016 + square_note 8, 6, 0, 2016 + square_note 8, 3, 0, 2016 + square_note 15, 1, 2, 2016 + pitch_sweep 0, 8 + sound_ret + +Sfx_GetItemRG_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + vibrato 6, 2, 6 + duty_cycle 2 + pitch_offset 1 + note_type 4, 11, 1 + octave 3 + note G#, 2 + note G#, 2 + note G#, 2 + note_type 12, 11, 3 + octave 4 + note E_, 4 + sfx_priority_off + sound_ret + +Sfx_GetItemRG_Ch6: + toggle_sfx + vibrato 8, 2, 7 + duty_cycle 2 + note_type 4, 12, 1 + octave 4 + note E_, 2 + note E_, 2 + note E_, 2 + note_type 12, 12, 3 + note B_, 4 + sound_ret + +Sfx_GetItemRG_Ch8: + toggle_sfx + note_type 4, 1, 0 + octave 4 + note B_, 1 + rest 1 + note B_, 1 + rest 1 + note B_, 1 + rest 1 + note_type 12, 1, 0 + octave 4 + note B_, 2 + rest 2 + sound_ret + +Sfx_UnusedFanfare1_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + vibrato 6, 2, 6 + duty_cycle 2 + pitch_offset 1 + note_type 6, 11, 1 + octave 3 + note G#, 2 + note G#, 2 + note_type 6, 11, 3 + note G#, 2 + note B_, 2 + octave 4 + note E_, 8 + sfx_priority_off + sound_ret + +Sfx_UnusedFanfare1_Ch6: + toggle_sfx + vibrato 8, 2, 7 + duty_cycle 2 + note_type 6, 12, 1 + octave 4 + note E_, 2 + note E_, 1 + note E_, 1 + note_type 6, 12, 3 + note E_, 2 + note G#, 2 + note B_, 8 + sound_ret + +Sfx_UnusedFanfare1_Ch8: + toggle_sfx + note_type 6, 1, 0 + octave 4 + note B_, 1 + rest 1 + note_type 3, 1, 0 + note B_, 1 + rest 1 + note B_, 1 + rest 1 + note_type 6, 1, 0 + note B_, 1 + rest 1 + octave 5 + note E_, 1 + rest 1 + octave 4 + note B_, 4 + rest 4 + sound_ret + +Sfx_PokedexEvaluationRG_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + duty_cycle 2 + note_type 5, 11, 1 + octave 3 + note A_, 2 + note A_, 2 + note G_, 2 + note G_, 2 + note F_, 2 + note E_, 2 + note F_, 2 + note A_, 2 + octave 4 + note C_, 4 + note E_, 4 + octave 3 + note F_, 4 + sfx_priority_off + sound_ret + +Sfx_PokedexEvaluationRG_Ch6: + toggle_sfx + duty_cycle 2 + note_type 5, 12, 2 + octave 5 + note F_, 2 + note E_, 1 + rest 1 + note D_, 2 + note C_, 1 + rest 1 + octave 4 + note A#, 2 + octave 5 + note C_, 2 + note D_, 2 + note E_, 2 + note F_, 4 + note G_, 4 + note F_, 4 + sound_ret + +Sfx_PokedexEvaluationRG_Ch8: + toggle_sfx + note_type 5, 1, 0 + octave 5 + note C_, 1 + rest 1 + octave 4 + note F_, 2 + octave 5 + note C_, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note A_, 1 + rest 1 + note G_, 1 + rest 1 + note F_, 1 + rest 1 + note E_, 1 + rest 1 + octave 5 + note F_, 1 + rest 3 + note C_, 1 + rest 3 + octave 4 + note F_, 2 + rest 2 + sound_ret + +Sfx_LevelUpRG_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + duty_cycle 2 + pitch_offset 1 + note_type 6, 11, 4 + octave 4 + note F_, 4 + note_type 4, 11, 2 + note C_, 2 + note F_, 2 + note C_, 2 + note_type 6, 11, 3 + note D#, 2 + note D#, 2 + note E_, 2 + note_type 6, 11, 4 + note F_, 8 + sfx_priority_off + sound_ret + +Sfx_LevelUpRG_Ch6: + toggle_sfx + vibrato 4, 2, 2 + duty_cycle 2 + note_type 6, 12, 4 + octave 4 + note A_, 4 + note_type 4, 12, 2 + note A_, 2 + note A_, 2 + note A_, 2 + note_type 6, 12, 4 + note A#, 2 + note A#, 2 + note A#, 2 + note_type 6, 12, 4 + note A_, 8 + sound_ret + +Sfx_LevelUpRG_Ch8: + toggle_sfx + note_type 6, 1, 0 + octave 5 + note A_, 4 + note_type 4, 1, 0 + note F_, 1 + rest 1 + note F_, 1 + rest 1 + note F_, 1 + rest 1 + note_type 6, 1, 0 + note G_, 1 + rest 1 + note D#, 1 + rest 1 + note G_, 1 + rest 1 + note A_, 8 + sound_ret + +Sfx_EvolutionCompleteRG_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + duty_cycle 2 + pitch_offset 1 + note_type 5, 11, 4 + octave 4 + note D_, 4 + note C_, 4 + octave 3 + note A_, 8 + note_type 5, 11, 2 + octave 4 + note D#, 2 + note D#, 2 + note D_, 2 + note C_, 2 + note C_, 2 + octave 3 + note A#, 2 + note_type 5, 11, 4 + octave 4 + note C_, 8 + sfx_priority_off + sound_ret + +Sfx_EvolutionCompleteRG_Ch6: + toggle_sfx + vibrato 8, 2, 7 + duty_cycle 2 + note_type 5, 12, 5 + octave 4 + note A_, 4 + note F_, 4 + note C_, 8 + note_type 5, 12, 2 + note A#, 2 + note A#, 2 + note A#, 2 + note G_, 2 + note G_, 2 + note A#, 2 + note_type 5, 12, 4 + note A_, 8 + sound_ret + +Sfx_EvolutionCompleteRG_Ch8: + toggle_sfx + note_type 5, 1, 0 + octave 5 + note F_, 4 + note D#, 4 + note C_, 8 + note D#, 1 + rest 1 + note D#, 1 + rest 1 + note E_, 1 + rest 1 + note F_, 1 + rest 1 + note F_, 1 + rest 1 + note G_, 1 + rest 1 + note A_, 8 + sound_ret + +Sfx_GetKeyItemRG_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + duty_cycle 2 + pitch_offset 1 + note_type 5, 10, 4 + octave 3 + note A#, 4 + note_type 5, 11, 1 + octave 4 + note C_, 2 + note C_, 1 + note C_, 1 + note_type 5, 10, 4 + note D#, 4 + note_type 5, 11, 1 + note F_, 2 + note F_, 1 + note F_, 1 + note_type 5, 11, 4 + note A#, 8 + sfx_priority_off + sound_ret + +Sfx_GetKeyItemRG_Ch6: + toggle_sfx + vibrato 4, 2, 3 + duty_cycle 2 + note_type 5, 13, 1 + octave 4 + note G_, 2 + note G_, 1 + note G_, 1 + note_type 5, 12, 4 + note D#, 4 + note_type 5, 13, 1 + note G#, 2 + note G#, 1 + note G#, 1 + note A#, 2 + note A#, 1 + note A#, 1 + note_type 5, 12, 4 + octave 5 + note D#, 8 + sound_ret + +Sfx_GetKeyItemRG_Ch8: + toggle_sfx + note_type 5, 1, 0 + octave 4 + note D#, 4 + note G#, 4 + note G_, 4 + note F_, 4 + note D#, 8 + sound_ret + +Sfx_UnusedFanfare2_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + pitch_offset 1 + duty_cycle 3 + note_type 6, 11, 5 + octave 3 + note G#, 4 + note_type 4, 11, 2 + note F_, 2 + note G#, 2 + note A_, 2 + note A#, 2 + note F#, 2 + note A#, 2 + octave 4 + note C_, 4 + note C_, 2 + note_type 4, 11, 6 + note C#, 12 + sfx_priority_off + sound_ret + +Sfx_UnusedFanfare2_Ch6: + toggle_sfx + duty_cycle 2 + note_type 6, 12, 5 + octave 4 + note C#, 6 + note_type 4, 12, 1 + note C#, 1 + note C#, 1 + note C#, 1 + note_type 4, 12, 2 + note D#, 2 + note C#, 2 + note D#, 2 + note E_, 4 + note E_, 2 + note_type 4, 12, 6 + note F_, 12 + sound_ret + +Sfx_UnusedFanfare2_Ch8: + toggle_sfx + note_type 6, 1, 0 + octave 5 + note C#, 2 + rest 2 + note C#, 2 + rest 2 + note_type 4, 1, 0 + note C#, 2 + rest 2 + note C#, 2 + note D#, 2 + rest 2 + note F_, 2 + note G#, 6 + sound_ret + +Sfx_CaughtPokemonRG_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + duty_cycle 3 + pitch_offset 1 + note_type 6, 11, 2 + octave 3 + note E_, 2 + note F#, 2 + note G#, 2 + note G#, 1 + note G#, 1 + note B_, 2 + octave 4 + note C#, 2 + note D#, 2 + note D#, 1 + note D#, 1 + note_type 6, 11, 5 + note E_, 8 + sfx_priority_off + sound_ret + +Sfx_CaughtPokemonRG_Ch6: + toggle_sfx + duty_cycle 2 + note_type 6, 12, 2 + octave 4 + note G#, 2 + note G#, 1 + note G#, 1 + note E_, 2 + note E_, 1 + note E_, 1 + note B_, 2 + note B_, 1 + note B_, 1 + note A_, 2 + note A_, 1 + note A_, 1 + note_type 6, 12, 5 + note G#, 8 + sound_ret + +Sfx_CaughtPokemonRG_Ch8: + toggle_sfx + note_type 6, 1, 0 + octave 4 + note B_, 2 + rest 2 + octave 5 + note C#, 2 + rest 2 + note D#, 2 + rest 2 + note F#, 2 + note G_, 2 + note G#, 4 + sound_ret + +Sfx_UnusedFanfare3_Ch5: + toggle_sfx + sfx_priority_on + tempo 256 + volume 7, 7 + duty_cycle 3 + pitch_offset 1 + note_type 6, 11, 3 + octave 3 + note F_, 4 + note C#, 4 + note F#, 4 + note D#, 4 + note G#, 4 + note F_, 4 + note A#, 4 + note F#, 4 + note_type 4, 11, 3 + note A#, 4 + note B_, 4 + octave 4 + note C_, 4 + note C#, 4 + note D#, 4 + note C_, 4 + note_type 4, 11, 6 + note C#, 12 + sfx_priority_off + sound_ret + +Sfx_UnusedFanfare3_Ch6: + toggle_sfx + duty_cycle 2 + note_type 6, 12, 4 + octave 4 + note C#, 4 + note_type 4, 12, 4 + note C#, 2 + octave 3 + note A#, 2 + octave 4 + note C#, 2 + note D#, 6 + note D#, 2 + octave 3 + note B_, 2 + octave 4 + note D#, 2 + note F_, 6 + note F_, 2 + note C#, 2 + note F_, 2 + note F#, 6 + note F#, 2 + note D#, 2 + note F#, 2 + note C#, 4 + note D#, 4 + note E_, 4 + note F_, 4 + note F#, 4 + note G#, 4 + note_type 4, 12, 6 + note F#, 12 + sound_ret + +Sfx_UnusedFanfare3_Ch8: + toggle_sfx + note_type 6, 1, 0 + octave 4 + note A#, 4 + rest 4 + note B_, 4 + rest 4 + octave 5 + note C#, 4 + rest 4 + note D#, 4 + rest 4 + note_type 4, 1, 0 + note F_, 4 + note D#, 4 + note C#, 4 + note A#, 4 + note G#, 4 + note F_, 4 + note F#, 6 + sound_ret diff --git a/audio/sfx_pointers.asm b/audio/sfx_pointers.asm new file mode 100644 index 00000000..5ef042fa --- /dev/null +++ b/audio/sfx_pointers.asm @@ -0,0 +1,114 @@ +INCLUDE "constants.asm" + +SECTION "audio/sfx_pointers.asm", ROMX + +SFX:: +; entries correspond to SFX_* constants + dba Sfx_00 + dba Sfx_Potion + dba Sfx_FullHeal + dba Sfx_Menu + dba Sfx_ReadText + dba Sfx_ReadText + dba Sfx_06 + dba Sfx_07 + dba Sfx_08 + dba Sfx_09 + dba Sfx_BootPC + dba Sfx_EscapeRope + dba Sfx_0c + dba Sfx_0d + dba Sfx_0e + dba Sfx_0f + dba Sfx_10 + dba Sfx_11 + dba Sfx_12 + dba Sfx_13 + dba Sfx_Wrong + dba Sfx_15 + dba Sfx_16 + dba Sfx_17 + dba Sfx_18 + dba Sfx_19 + dba Sfx_1a + dba Sfx_SwitchPokemon + dba Sfx_1c + dba Sfx_1d + dba Sfx_1e + dba Sfx_1f + dba Sfx_20 + dba Sfx_Pokeflute + dba Sfx_22 + dba Sfx_23 + dba Sfx_24 + dba Sfx_25 + dba Sfx_26 + dba Sfx_PokedexRegistration + dba Sfx_28 + dba Sfx_29 + dba Sfx_2a + dba Sfx_2b + dba Sfx_2c + dba Sfx_TitleEntrance + dba Sfx_2e + dba Sfx_2f + dba Sfx_PayDay + dba Sfx_GameFreakLogoRG + dba Sfx_32 + dba Sfx_33 + dba Sfx_34 + dba Sfx_35 + dba Sfx_36 + dba Sfx_37 + dba Sfx_38 + dba Sfx_39 + dba Sfx_3a + dba Sfx_3b + dba Sfx_3c + dba Sfx_3d + dba Sfx_3e + dba Sfx_3f + dba Sfx_40 + dba Sfx_41 + dba Sfx_42 + dba Sfx_43 + dba Sfx_44 + dba Sfx_45 + dba Sfx_46 + dba Sfx_47 + dba Sfx_48 + dba Sfx_49 + dba Sfx_4a + dba Sfx_4b + dba Sfx_4c + dba Sfx_4d + dba Sfx_4e + dba Sfx_4f + dba Sfx_50 + dba Sfx_51 + dba Sfx_52 + dba Sfx_53 + dba Sfx_54 + dba Sfx_55 + dba Sfx_56 + dba Sfx_57 + dba Sfx_58 + dba Sfx_59 + dba Sfx_5a + dba Sfx_5b + dba Sfx_5c + dba Sfx_5d + dba Sfx_5e + dba Sfx_5f + dba Sfx_60 + dba Sfx_61 + dba Sfx_62 + dba Sfx_GetItemRG + dba Sfx_UnusedFanfare1 + dba Sfx_PokedexEvaluationRG + dba Sfx_LevelUpRG + dba Sfx_EvolutionCompleteRG + dba Sfx_GetKeyItemRG + dba Sfx_UnusedFanfare2 + dba Sfx_CaughtPokemonRG + dba Sfx_UnusedFanfare3 diff --git a/constants.asm b/constants.asm index 1e79e49e..b3a63657 100644 --- a/constants.asm +++ b/constants.asm @@ -36,6 +36,7 @@ INCLUDE "constants/battle_constants.asm" INCLUDE "constants/palette_constants.asm" INCLUDE "constants/music_constants.asm" INCLUDE "constants/sfx_constants.asm" +INCLUDE "constants/cry_constants.asm" INCLUDE "constants/landmark_constants.asm" INCLUDE "constants/map_constants.asm" INCLUDE "constants/map_setup_constants.asm" diff --git a/constants/cry_constants.asm b/constants/cry_constants.asm new file mode 100644 index 00000000..f8a4341d --- /dev/null +++ b/constants/cry_constants.asm @@ -0,0 +1,42 @@ +; Cries indexes (see audio/cry_pointers.asm) + const_def + + const CRY_00 ; 00 + const CRY_01 ; 01 + const CRY_02 ; 02 + const CRY_03 ; 03 + const CRY_04 ; 04 + const CRY_05 ; 05 + const CRY_06 ; 06 + const CRY_07 ; 07 + const CRY_08 ; 08 + const CRY_09 ; 09 + const CRY_0A ; 0a + const CRY_0B ; 0b + const CRY_0C ; 0c + const CRY_0D ; 0d + const CRY_0E ; 0e + const CRY_0F ; 0f + const CRY_10 ; 10 + const CRY_11 ; 11 + const CRY_12 ; 12 + const CRY_13 ; 13 + const CRY_14 ; 14 + const CRY_15 ; 15 + const CRY_16 ; 16 + const CRY_17 ; 17 + const CRY_18 ; 18 + const CRY_19 ; 19 + const CRY_1A ; 1a + const CRY_1B ; 1b + const CRY_1C ; 1c + const CRY_1D ; 1d + const CRY_1E ; 1e + const CRY_1F ; 1f + const CRY_20 ; 20 + const CRY_21 ; 21 + const CRY_22 ; 22 + const CRY_23 ; 23 + const CRY_24 ; 24 + const CRY_25 ; 25 + diff --git a/constants/map_constants.asm b/constants/map_constants.asm index da632fbe..1c5c4a06 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -1,5 +1,7 @@ newgroup: MACRO const_value = const_value + 1 +CURRENT_NUM_MAPGROUP_MAPS EQUS "NUM_\1_MAPS" +MAPGROUP_\1 EQU const_value __map_value__ = 1 ENDM @@ -14,11 +16,15 @@ __map_value__ = __map_value__ + 1 \1_HEIGHT EQU \3 ENDM +endgroup: MACRO +{CURRENT_NUM_MAPGROUP_MAPS} EQU __map_value__ - 1 +PURGE CURRENT_NUM_MAPGROUP_MAPS +ENDM + ; map ids const_def - newgroup ; 1 - + newgroup SILENT ; 1 map_const ROUTE_1_P1, 15, 9 ; 1 map_const ROUTE_1_P2, 10, 18 ; 2 map_const ROUTE_SILENT_EAST, 30, 9 ; 3 @@ -34,9 +40,9 @@ ENDM map_const SILENT_HILL_LAB_BACK, 4, 4 ; 13 map_const UNUSED_MAP_13, 4, 4 ; 14 map_const SHIZUKANA_OKA, 25, 18 ; 15 + endgroup - newgroup ; 2 - + newgroup OLD ; 2 map_const ROUTE_2, 15, 9 ; 1 map_const OLD_CITY, 20, 18 ; 2 map_const ROUTE_2_GATE_1F, 5, 4 ; 3 @@ -59,9 +65,9 @@ ENDM map_const OLD_CITY_POKECENTER_TIME_MACHINE, 8, 4 ; 20 map_const OLD_CITY_KURTS_HOUSE, 8, 4 ; 21 map_const OLD_CITY_SCHOOL, 4, 8 ; 22 + endgroup - newgroup ; 3 - + newgroup WEST ; 3 map_const WEST, 20, 18 ; 1 map_const WEST_MART_1F, 8, 4 ; 2 map_const WEST_MART_2F, 8, 4 ; 3 @@ -81,9 +87,9 @@ ENDM map_const WEST_GYM, 5, 9 ; 17 map_const WEST_HOUSE_1, 5, 4 ; 18 map_const WEST_HOUSE_2, 5, 4 ; 19 + endgroup - newgroup ; 4 - + newgroup HAITEKU ; 4 map_const HAITEKU_WEST_ROUTE, 25, 9 ; 1 map_const HAITEKU_WEST_ROUTE_OCEAN, 10, 27 ; 2 map_const HAITEKU, 20, 18 ; 3 @@ -98,9 +104,9 @@ ENDM map_const HAITEKU_IMPOSTER_OAK_HOUSE, 5, 4 ; 12 map_const HAITEKU_AQUARIUM_1F, 8, 4 ; 13 map_const HAITEKU_AQUARIUM_2F, 8, 4 ; 14 + endgroup - newgroup ; 5 - + newgroup FONTO ; 5 map_const FONTO_ROUTE_1, 35, 9 ; 1 map_const FONTO_ROUTE_2, 10, 18 ; 2 map_const FONTO_ROUTE_3, 25, 9 ; 3 @@ -117,9 +123,9 @@ ENDM map_const FONTO_POKECENTER_1F, 8, 4 ; 14 map_const FONTO_POKECENTER_2F, 8, 4 ; 15 map_const FONTO_LAB, 5, 4 ; 16 + endgroup - newgroup ; 6 - + newgroup BAADON ; 6 map_const BAADON_ROUTE_1, 10, 27 ; 1 map_const BAADON_ROUTE_2, 50, 9 ; 2 map_const BAADON_ROUTE_3, 10, 18 ; 3 @@ -134,9 +140,9 @@ ENDM map_const BAADON_HOUSE_2, 5, 4 ; 12 map_const BAADON_LEAGUE_1F, 4, 8 ; 13 map_const BAADON_LEAGUE_2F, 5, 9 ; 14 + endgroup - newgroup ; 7 - + newgroup NEWTYPE ; 7 map_const ROUTE_15, 15, 9 ; 1 map_const NEWTYPE_ROUTE, 15, 9 ; 2 map_const ROUTE_18, 10, 45 ; 3 @@ -157,9 +163,9 @@ ENDM map_const NEWTYPE_DINER, 4, 4 ; 18 map_const NEWTYPE_HOUSE_2, 5, 4 ; 19 map_const NEWTYPE_HOUSE_3, 5, 4 ; 20 + endgroup - newgroup ; 8 - + newgroup SUGAR ; 8 map_const SUGAR_ROUTE, 10, 27 ; 1 map_const SUGAR, 10, 9 ; 2 map_const SUGAR_ROUTE_GATE, 5, 4 ; 3 @@ -168,9 +174,9 @@ ENDM map_const SUGAR_MART, 8, 4 ; 6 map_const SUGAR_POKECENTER_1F, 8, 4 ; 7 map_const SUGAR_POKECENTER_2F, 8, 4 ; 8 + endgroup - newgroup ; 9 - + newgroup BULL ; 9 map_const BULL_FOREST_ROUTE_1, 25, 9 ; 1 map_const BULL_FOREST_ROUTE_2, 10, 27 ; 2 map_const BULL_FOREST_ROUTE_3, 10, 27 ; 3 @@ -186,9 +192,9 @@ ENDM map_const BULL_LEAGUE_1F, 4, 8 ; 13 map_const BULL_LEAGUE_2F, 5, 9 ; 14 map_const BULL_HOUSE_4, 5, 4 ; 15 + endgroup - newgroup ; 10 - + newgroup STAND ; 10 map_const STAND_ROUTE, 10, 27 ; 1 map_const STAND, 20, 18 ; 2 map_const STAND_ROUTE_GATE_KANTO, 5, 4 ; 3 @@ -202,9 +208,9 @@ ENDM map_const STAND_ROCKET_HOUSE_2F, 8, 4 ; 11 map_const STAND_LEAGUE_1F, 4, 8 ; 12 map_const STAND_LEAGUE_2F, 5, 9 ; 13 + endgroup - newgroup ; 11 - + newgroup KANTO ; 11 map_const KANTO_EAST_ROUTE, 20, 9 ; 1 map_const KANTO, 30, 27 ; 2 map_const KANTO_CERULEAN_HOUSE, 5, 4 ; 3 @@ -243,37 +249,37 @@ ENDM map_const KANTO_LEAGUE_2_1F, 4, 8 ; 36 map_const KANTO_LEAGUE_2_2F, 5, 9 ; 37 map_const KANTO_FISHING_GURU, 5, 4 ; 38 + endgroup - newgroup ; 12 - + newgroup PRINCE ; 12 map_const PRINCE_ROUTE, 10, 5 ; 1 map_const PRINCE, 10, 9 ; 2 + endgroup - newgroup ; 13 - + newgroup MT_FUJI ; 13 map_const MT_FUJI_ROUTE, 10, 5 ; 1 map_const MT_FUJI, 10, 9 ; 2 + endgroup - newgroup ; 14 - + newgroup SOUTH ; 14 map_const SOUTH, 20, 18 ; 1 map_const SOUTH_HOUSE_1, 5, 4 ; 2 map_const SOUTH_POKECENTER_1F, 8, 4 ; 3 map_const SOUTH_POKECENTER_2F, 8, 4 ; 4 map_const SOUTH_MART, 8, 4 ; 5 map_const SOUTH_HOUSE_2, 5, 4 ; 6 + endgroup - newgroup ; 15 - + newgroup NORTH ; 15 map_const NORTH, 10, 9 ; 1 map_const NORTH_HOUSE_1, 5, 4 ; 2 map_const NORTH_MART, 6, 4 ; 3 map_const NORTH_HOUSE_2, 5, 4 ; 4 map_const NORTH_POKECENTER_1F, 8, 4 ; 5 map_const NORTH_POKECENTER_2F, 8, 4 ; 6 + endgroup - newgroup ; 16 - + newgroup MISC ; 16 map_const POWER_PLANT_1, 10, 9 ; 1 map_const POWER_PLANT_2, 10, 9 ; 2 map_const POWER_PLANT_3, 15, 18 ; 3 @@ -292,5 +298,9 @@ ENDM map_const OFFICE_3, 10, 18 ; 16 map_const SLOWPOKE_WELL_ENTRANCE, 10, 9 ; 17 map_const SLOWPOKE_WELL_MAIN, 10, 18 ; 18 + endgroup + + newgroup EMPTY ; 17 + endgroup -NUM_MAP_GROUPS EQU const_value ; 16 +NUM_MAP_GROUPS EQU const_value diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm index cc29753f..85be2735 100644 --- a/constants/map_data_constants.asm +++ b/constants/map_data_constants.asm @@ -72,3 +72,6 @@ NUM_SPAWNS EQU 18 ; size of each spawn point data SPAWN_POINT_SIZE EQU 4 + +; size of sprite sets (see data/maps/sprite_sets.asm) +SPRITE_SET_LENGTH EQU 10 diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm index 4453f18c..248a40cb 100755 --- a/constants/palette_constants.asm +++ b/constants/palette_constants.asm @@ -1,3 +1,4 @@ +; SuperPalettes indexes (see data/sgb/super_palettes.inc) const_def const PAL_ROUTE ; 00 const PAL_TOWN_01 ; 01 diff --git a/constants/sfx_constants.asm b/constants/sfx_constants.asm index fcd1edfa..a0a3418d 100644 --- a/constants/sfx_constants.asm +++ b/constants/sfx_constants.asm @@ -1,11 +1,11 @@ ; TODO -SFX_BOOT_PC EQU $0A SFX_POTION EQU $01 SFX_FULL_HEAL EQU $02 SFX_MENU EQU $03 SFX_READ_TEXT EQU $04 SFX_READ_TEXT_2 EQU $05 +SFX_BOOT_PC EQU $0A SFX_ESCAPE_ROPE EQU $0B ; player shrink SFX_WRONG EQU $14 SFX_SWITCH_POKEMON EQU $1B @@ -26,3 +26,4 @@ SFX_GET_KEY_ITEM_RG EQU $68 SFX_UNUSED_FANFARE_2 EQU $69 SFX_CAUGHT_POKEMON_RG EQU $6A SFX_UNUSED_FANFARE_3 EQU $6B + diff --git a/constants/sgb_constants.asm b/constants/sgb_constants.asm index 31cdeb63..dfe0d514 100644 --- a/constants/sgb_constants.asm +++ b/constants/sgb_constants.asm @@ -2,122 +2,30 @@ const_def const SGB_BATTLE_GRAYSCALE const SGB_BATTLE_COLORS - const SGB_TRAINER_GEAR_PALS + const SGB_TOWN_MAP const SGB_STATS_SCREEN_HP_PALS const SGB_POKEDEX const SGB_SLOT_MACHINE - const SGB_06 + const SGB_TITLE_SCREEN const SGB_GS_INTRO const SGB_DIPLOMA - const SGB_MAPPALS + const SGB_MAP_PALS const SGB_PARTY_MENU const SGB_EVOLUTION - const SGB_GS_TITLE_SCREEN - const SGB_0D + const SGB_GF_INTRO + const SGB_TRAINER_CARD const SGB_MOVE_LIST - const SGB_BETA_PIKACHU_MINIGAME - const SGB_POKEDEX_SEARCH_OPTION - const SGB_BETA_POKER + const SGB_PIKACHU_MINIGAME + const SGB_POKEDEX_SELECTION + const SGB_POKER const SGB_POKEPIC - const SGB_TRAINER_GEAR - const SGB_PACKPALS - const SGB_TRAINER_CARD - const SGB_POKEDEX_UNOWN_MODE - const SGB_BILLS_PC - const SGB_UNOWN_PUZZLE - const SGB_GAMEFREAK_LOGO - const SGB_PLAYER_OR_MON_FRONTPIC_PALS - const SGB_TRADE_TUBE - const SGB_TRAINER_OR_MON_FRONTPIC_PALS - const SGB_MYSTERY_GIFT - const SGB_1E + const SGB_TRAINERGEAR + const SGB_TRAINERGEAR_MAP + const SGB_TRAINERGEAR_RADIO SGB_PARTY_MENU_HP_PALS EQU -4 SGB_RAM EQU -1 -; PredefPals indexes (see gfx/sgb/predef.pal) -; GetPredefPal arguments (see engine/gfx/color.asm) - const_def - const PREDEFPAL_00 - const PREDEFPAL_PALLET - const PREDEFPAL_VIRIDIAN - const PREDEFPAL_PEWTER - const PREDEFPAL_CERULEAN - const PREDEFPAL_LAVENDER - const PREDEFPAL_VERMILION - const PREDEFPAL_CELADON - const PREDEFPAL_FUCHSIA - const PREDEFPAL_CINNABAR - const PREDEFPAL_SAFFRON - const PREDEFPAL_INDIGO - const PREDEFPAL_NEW_BARK - const PREDEFPAL_CHERRYGROVE - const PREDEFPAL_VIOLET - const PREDEFPAL_AZALEA - const PREDEFPAL_GOLDENROD - const PREDEFPAL_ECRUTEAK - const PREDEFPAL_OLIVINE - const PREDEFPAL_CIANWOOD - const PREDEFPAL_MAHOGANY - const PREDEFPAL_BLACKTHORN - const PREDEFPAL_LAKE_OF_RAGE - const PREDEFPAL_SILVER_CAVE - const PREDEFPAL_DUNGEONS - const PREDEFPAL_NITE - const PREDEFPAL_BLACKOUT - const PREDEFPAL_DIPLOMA ; RB_MEWMON - const PREDEFPAL_TRADE_TUBE ; RB_BLUEMON - const PREDEFPAL_POKEDEX ; RB_REDMON - const PREDEFPAL_RB_CYANMON - const PREDEFPAL_RB_PURPLEMON - const PREDEFPAL_RB_BROWNMON - const PREDEFPAL_RB_GREENMON - const PREDEFPAL_RB_PINKMON - const PREDEFPAL_RB_YELLOWMON - const PREDEFPAL_CGB_BADGE ; RB_GRAYMON - const PREDEFPAL_BETA_SHINY_MEWMON - const PREDEFPAL_BETA_SHINY_BLUEMON - const PREDEFPAL_BETA_SHINY_REDMON - const PREDEFPAL_BETA_SHINY_CYANMON - const PREDEFPAL_BETA_SHINY_PURPLEMON - const PREDEFPAL_BETA_SHINY_BROWNMON - const PREDEFPAL_BETA_SHINY_GREENMON - const PREDEFPAL_BETA_SHINY_PINKMON - const PREDEFPAL_BETA_SHINY_YELLOWMON - const PREDEFPAL_PARTY_ICON ; BETA_SHINY_GRAYMON - const PREDEFPAL_HP_GREEN - const PREDEFPAL_HP_YELLOW - const PREDEFPAL_HP_RED - const PREDEFPAL_TRAINER_GEAR - const PREDEFPAL_BETA_LOGO_1 - const PREDEFPAL_BETA_LOGO_2 - const PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO - const PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS - const PREDEFPAL_BETA_INTRO_LAPRAS - const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG - const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB - const PREDEFPAL_GS_INTRO_STARTERS_TRANSITION - const PREDEFPAL_BETA_INTRO_VENUSAUR - const PREDEFPAL_PACK ; GS_INTRO_CHARIZARD - const PREDEFPAL_SLOT_MACHINE_0 - const PREDEFPAL_SLOT_MACHINE_1 - const PREDEFPAL_SLOT_MACHINE_2 - const PREDEFPAL_SLOT_MACHINE_3 - const PREDEFPAL_BETA_POKER_0 - const PREDEFPAL_BETA_POKER_1 - const PREDEFPAL_BETA_POKER_2 - const PREDEFPAL_BETA_POKER_3 - const PREDEFPAL_BETA_RADIO - const PREDEFPAL_BETA_TRAINER_GEAR - const PREDEFPAL_47 - const PREDEFPAL_GS_TITLE_SCREEN_0 - const PREDEFPAL_GS_TITLE_SCREEN_1 - const PREDEFPAL_GS_TITLE_SCREEN_2 - const PREDEFPAL_GS_TITLE_SCREEN_3 - const PREDEFPAL_UNOWN_PUZZLE - const PREDEFPAL_4D - const PREDEFPAL_GAMEFREAK_LOGO - ; SGB system command codes ; http://gbdev.gg8.se/wiki/articles/SGB_Functions#SGB_System_Command_Table const_def diff --git a/data/maps/sprite_sets.asm b/data/maps/sprite_sets.asm new file mode 100644 index 00000000..b4712e83 --- /dev/null +++ b/data/maps/sprite_sets.asm @@ -0,0 +1,210 @@ +; Usable sprite IDs for outdoor map groups + +; Sprites outside of whatever is defined in its map group will be rendered +; as the player sprite. + +INCLUDE "constants.asm" + +SECTION "data/maps/sprite_sets.asm", ROMX + +MapGroupSpriteSets: + db $01 ; MAPGROUP_SILENT + db $02 ; MAPGROUP_OLD + db $03 ; MAPGROUP_WEST + db $04 ; MAPGROUP_HAITEKU + db $05 ; MAPGROUP_FONTO + db $06 ; MAPGROUP_BAADON + db $07 ; MAPGROUP_NEWTYPE + db $08 ; MAPGROUP_SUGAR + db $0e ; MAPGROUP_BULL + db $09 ; MAPGROUP_STAND + db $0a ; MAPGROUP_KANTO + db $0b ; MAPGROUP_PRINCE + db $0d ; MAPGROUP_MT_FUJI + db $0c ; MAPGROUP_SOUTH + db $0e ; MAPGROUP_NORTH + db $01 ; MAPGROUP_MISC + db $01 ; MAPGROUP_EMPTY + db $01 + db $01 + db $01 + db $01 + db $01 + db $01 + db $01 + db $01 + db $01 + db $01 + db $01 + +SpriteSets: +; Each sprite set is 10 entries long, instead of 11 entries like in Gen I / II. + +; sprite set $01 + db SPRITE_BLUE + db SPRITE_SILVER + db SPRITE_OFFICER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $02 + db SPRITE_GRAMPS + db SPRITE_TWIN + db SPRITE_BUG_CATCHER_BOY + db SPRITE_YOUNGSTER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_GRANNY + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $03 + db SPRITE_LASS + db SPRITE_COOLTRAINER_F + db SPRITE_ROCKER + db SPRITE_SAILOR + db SPRITE_GENTLEMAN + db SPRITE_36 + db SPRITE_FISHER + db SPRITE_CLEFAIRY + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $04 + db SPRITE_SILVER + db SPRITE_TWIN + db SPRITE_SAILOR + db SPRITE_POKEFAN_M + db SPRITE_SWIMMER_M + db SPRITE_SWIMMER_F + db SPRITE_FISHER + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $05 + db SPRITE_LASS + db SPRITE_BUG_CATCHER_BOY + db SPRITE_YOUNGSTER + db SPRITE_SAILOR + db SPRITE_GYM_GUY + db SPRITE_SWIMMER_M + db SPRITE_SWIMMER_F + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $06 + db SPRITE_36 + db SPRITE_LASS + db SPRITE_YOUNGSTER + db SPRITE_24 + db SPRITE_POKEFAN_M + db SPRITE_ROCKET_F + db SPRITE_FISHER + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $07 + db SPRITE_SILVER + db SPRITE_YOUNGSTER + db SPRITE_GIRL + db SPRITE_ROCKER + db SPRITE_POKEFAN_M + db SPRITE_GENTLEMAN + db SPRITE_FISHER + db SPRITE_SAILOR + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $08 + db SPRITE_TWIN + db SPRITE_BUG_CATCHER_BOY + db SPRITE_GRAMPS + db SPRITE_GRANNY + db SPRITE_SWIMMER_M + db SPRITE_SWIMMER_F + db SPRITE_FISHER + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $09 + db SPRITE_SAKAKI + db SPRITE_CAPTAIN + db SPRITE_TWIN + db SPRITE_TEACHER + db SPRITE_ROCKER + db SPRITE_RHYDON + db SPRITE_CLEFAIRY + db SPRITE_PIDGEY + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $0a + db SPRITE_LASS + db SPRITE_YOUNGSTER + db SPRITE_COOLTRAINER_F + db SPRITE_24 + db SPRITE_POKEFAN_M + db SPRITE_GENTLEMAN + db SPRITE_FISHER + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $0b + db SPRITE_OKIDO + db SPRITE_TWIN + db SPRITE_BUG_CATCHER_BOY + db SPRITE_SUPER_NERD + db SPRITE_POKEFAN_F + db SPRITE_GRAMPS + db SPRITE_GRANNY + db SPRITE_CLEFAIRY + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $0c + db SPRITE_SILVER + db SPRITE_TWIN + db SPRITE_TEACHER + db SPRITE_ROCKER + db SPRITE_FISHING_GURU + db SPRITE_SWIMMER_M + db SPRITE_SWIMMER_F + db SPRITE_FISHER + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $0d + db SPRITE_YOUNGSTER + db SPRITE_GIRL + db SPRITE_24 + db SPRITE_SCIENTIST + db SPRITE_CAPTAIN + db SPRITE_46 + db SPRITE_FISHER + db SPRITE_RHYDON + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + +; sprite set $0e + db SPRITE_SILVER + db SPRITE_TWIN + db SPRITE_YOUNGSTER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_LASS + db SPRITE_SWIMMER_M + db SPRITE_SWIMMER_F + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + diff --git a/data/overworld_sprites.asm b/data/overworld_sprites.asm new file mode 100644 index 00000000..09135d0f --- /dev/null +++ b/data/overworld_sprites.asm @@ -0,0 +1,102 @@ +INCLUDE "constants.asm" + +SECTION "data/overworld_sprites.asm", ROMX + +overworld_sprite: MACRO +; pointer, length, bank + dw \1 + db \2 tiles, BANK(\1) +ENDM + +OverworldSprites:: + overworld_sprite GoldSpriteGFX, 12 + overworld_sprite GoldBikeSpriteGFX, 12 + overworld_sprite GoldSkateboardSpriteGFX, 12 + overworld_sprite SilverSpriteGFX, 12 + overworld_sprite OkidoSpriteGFX, 12 + overworld_sprite RedSpriteGFX, 12 + overworld_sprite BlueSpriteGFX, 12 + overworld_sprite MasakiSpriteGFX, 12 + overworld_sprite ElderSpriteGFX, 12 + overworld_sprite SakakiSpriteGFX, 12 + overworld_sprite GantetsuSpriteGFX, 12 + overworld_sprite MomSpriteGFX, 12 + overworld_sprite SilversMomSpriteGFX, 12 + overworld_sprite RedsMomSpriteGFX, 12 + overworld_sprite RedsMomSpriteGFX, 12 + overworld_sprite NanamiSpriteGFX, 12 + overworld_sprite EvilOkidoSpriteGFX, 12 + overworld_sprite KikukoSpriteGFX, 12 + overworld_sprite HayatoSpriteGFX, 12 + overworld_sprite TsukushiSpriteGFX, 12 + overworld_sprite TsukushiSpriteGFX, 12 + overworld_sprite EnokiSpriteGFX, 12 + overworld_sprite MikanSpriteGFX, 12 + overworld_sprite MikanSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerMSpriteGFX, 12 + overworld_sprite CooltrainerFSpriteGFX, 12 + overworld_sprite BugCatcherBoySpriteGFX, 12 + overworld_sprite TwinSpriteGFX, 12 + overworld_sprite YoungsterSpriteGFX, 12 + overworld_sprite LassSpriteGFX, 12 + overworld_sprite TeacherSpriteGFX, 12 + overworld_sprite GirlSpriteGFX, 12 + overworld_sprite SuperNerdSpriteGFX, 12 + overworld_sprite RockerSpriteGFX, 12 + overworld_sprite PokefanMSpriteGFX, 12 + overworld_sprite PokefanFSpriteGFX, 12 + overworld_sprite GrampsSpriteGFX, 12 + overworld_sprite GrannySpriteGFX, 12 + overworld_sprite SwimmerMSpriteGFX, 12 + overworld_sprite SwimmerFSpriteGFX, 12 + overworld_sprite RocketMSpriteGFX, 12 + overworld_sprite RocketMSpriteGFX, 12 + overworld_sprite RocketMSpriteGFX, 12 + overworld_sprite RocketFSpriteGFX, 12 + overworld_sprite NurseSpriteGFX, 12 + overworld_sprite LinkReceptionistSpriteGFX, 12 + overworld_sprite ClerkSpriteGFX, 12 + overworld_sprite FisherSpriteGFX, 12 + overworld_sprite FishingGuruSpriteGFX, 12 + overworld_sprite ScientistSpriteGFX, 12 + overworld_sprite MediumSpriteGFX, 12 + overworld_sprite SageSpriteGFX, 12 + overworld_sprite FrowningManSpriteGFX, 12 + overworld_sprite GentlemanSpriteGFX, 12 + overworld_sprite BlackbeltSpriteGFX, 12 + overworld_sprite ReceptionistSpriteGFX, 12 + overworld_sprite OfficerSpriteGFX, 12 + overworld_sprite CaptainSpriteGFX, 12 + overworld_sprite CaptainSpriteGFX, 12 + overworld_sprite CaptainSpriteGFX, 12 + overworld_sprite MohawkSpriteGFX, 12 + overworld_sprite GymGuySpriteGFX, 12 + overworld_sprite SailorSpriteGFX, 12 + overworld_sprite HelmetSpriteGFX, 12 + overworld_sprite BurglarSpriteGFX, 12 + overworld_sprite RhydonSpriteGFX, 12 + overworld_sprite ClefairySpriteGFX, 12 + overworld_sprite PidgeySpriteGFX, 12 + overworld_sprite CharizardSpriteGFX, 12 + overworld_sprite SnorlaxSpriteGFX, 4 + overworld_sprite SeelSpriteGFX, 12 + overworld_sprite PoliwrathSpriteGFX, 12 + overworld_sprite LaprasSpriteGFX, 12 + overworld_sprite PokeBallSpriteGFX, 4 + overworld_sprite PokedexSpriteGFX, 4 + overworld_sprite PaperSpriteGFX, 4 + overworld_sprite OldLinkReceptionistSpriteGFX, 4 + overworld_sprite OldLinkReceptionistSpriteGFX, 4 + overworld_sprite EggSpriteGFX, 4 + overworld_sprite BoulderSpriteGFX, 4 diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm new file mode 100644 index 00000000..24b85dc3 --- /dev/null +++ b/data/pokemon/cries.asm @@ -0,0 +1,266 @@ +INCLUDE "constants.asm" + +SECTION "data/pokemon/cries.asm", ROMX + +mon_cry: MACRO +; index, pitch, length + dw \1, \2, \3 +ENDM + +PokemonCries:: + mon_cry CRY_11, 0, 256 ; MON_RHYDON + mon_cry CRY_03, 0, 256 ; MON_KANGASKHAN + mon_cry CRY_00, 0, 256 ; MON_NIDORAN_M + mon_cry CRY_19, 204, 129 ; MON_CLEFAIRY + mon_cry CRY_10, 0, 256 ; MON_SPEAROW + mon_cry CRY_06, 237, 256 ; MON_VOLTORB + mon_cry CRY_09, 0, 256 ; MON_NIDOKING + mon_cry CRY_1F, 0, 256 ; MON_SLOWBRO + mon_cry CRY_0F, 32, 256 ; MON_IVYSAUR + mon_cry CRY_0D, 0, 256 ; MON_EXEGGUTOR + mon_cry CRY_0C, 0, 256 ; MON_LICKITUNG + mon_cry CRY_0B, 0, 256 ; MON_EXEGGCUTE + mon_cry CRY_05, 0, 256 ; MON_GRIMER + mon_cry CRY_07, 0, 383 ; MON_GENGAR + mon_cry CRY_01, 0, 256 ; MON_NIDORAN_F + mon_cry CRY_0A, 0, 256 ; MON_NIDOQUEEN + mon_cry CRY_19, 0, 256 ; MON_CUBONE + mon_cry CRY_04, 0, 256 ; MON_RHYHORN + mon_cry CRY_1B, 0, 256 ; MON_LAPRAS + mon_cry CRY_15, 0, 256 ; MON_ARCANINE + mon_cry CRY_1E, 238, 383 ; MON_MEW + mon_cry CRY_17, 0, 256 ; MON_GYARADOS + mon_cry CRY_18, 0, 256 ; MON_SHELLDER + mon_cry CRY_1A, 0, 256 ; MON_TENTACOOL + mon_cry CRY_1C, 0, 256 ; MON_GASTLY + mon_cry CRY_16, 0, 256 ; MON_SCYTHER + mon_cry CRY_1E, 2, 160 ; MON_STARYU + mon_cry CRY_13, 0, 256 ; MON_BLASTOISE + mon_cry CRY_14, 0, 256 ; MON_PINSIR + mon_cry CRY_12, 0, 256 ; MON_TANGELA + mon_cry CRY_00, 0, 0 ; MON_KAPOERER + mon_cry CRY_00, 0, 0 ; MON_PUDIE + mon_cry CRY_1F, 32, 192 ; MON_GROWLITHE + mon_cry CRY_17, 255, 320 ; MON_ONIX + mon_cry CRY_18, 64, 288 ; MON_FEAROW + mon_cry CRY_0E, 223, 132 ; MON_PIDGEY + mon_cry CRY_02, 0, 256 ; MON_SLOWPOKE + mon_cry CRY_1C, 168, 320 ; MON_KADABRA + mon_cry CRY_24, 0, 256 ; MON_GRAVELER + mon_cry CRY_14, 10, 320 ; MON_CHANSEY + mon_cry CRY_1F, 72, 224 ; MON_MACHOKE + mon_cry CRY_20, 8, 192 ; MON_MRMIME + mon_cry CRY_12, 128, 320 ; MON_HITMONLEE + mon_cry CRY_0C, 238, 320 ; MON_HITMONCHAN + mon_cry CRY_17, 224, 144 ; MON_ARBOK + mon_cry CRY_1E, 66, 383 ; MON_PARASECT + mon_cry CRY_21, 32, 224 ; MON_PSYDUCK + mon_cry CRY_0D, 136, 160 ; MON_DROWZEE + mon_cry CRY_12, 224, 192 ; MON_GOLEM + mon_cry CRY_00, 0, 0 ; MON_HANEKO + mon_cry CRY_04, 255, 176 ; MON_MAGMAR + mon_cry CRY_00, 0, 0 ; MON_TAIL + mon_cry CRY_06, 143, 383 ; MON_ELECTABUZZ + mon_cry CRY_1C, 32, 320 ; MON_MAGNETON + mon_cry CRY_12, 230, 349 ; MON_KOFFING + mon_cry CRY_00, 0, 0 ; MON_POPONEKO + mon_cry CRY_0A, 221, 224 ; MON_MANKEY + mon_cry CRY_0C, 136, 320 ; MON_SEEL + mon_cry CRY_0B, 170, 129 ; MON_DIGLETT + mon_cry CRY_1D, 17, 192 ; MON_TAUROS + mon_cry CRY_00, 0, 0 ; MON_WATANEKO + mon_cry CRY_00, 0, 0 ; MON_BARIRINA + mon_cry CRY_00, 0, 0 ; MON_LIP + mon_cry CRY_10, 221, 129 ; MON_FARFETCHD + mon_cry CRY_1A, 68, 192 ; MON_VENONAT + mon_cry CRY_0F, 60, 320 ; MON_DRAGONITE + mon_cry CRY_00, 128, 16 ; MON_ELEBABY + mon_cry CRY_00, 0, 0 ; MON_BOOBY + mon_cry CRY_1D, 224, 0 ; MON_KIREIHANA + mon_cry CRY_0B, 187, 129 ; MON_DODUO + mon_cry CRY_0E, 255, 383 ; MON_POLIWAG + mon_cry CRY_0D, 255, 383 ; MON_JYNX + mon_cry CRY_09, 248, 192 ; MON_MOLTRES + mon_cry CRY_09, 128, 192 ; MON_ARTICUNO + mon_cry CRY_18, 255, 256 ; MON_ZAPDOS + mon_cry CRY_0E, 255, 383 ; MON_DITTO + mon_cry CRY_19, 119, 144 ; MON_MEOWTH + mon_cry CRY_20, 32, 352 ; MON_KRABBY + mon_cry CRY_22, 255, 64 ; MON_TSUBOMITTO + mon_cry CRY_00, 0, 0 ; MON_MILTANK + mon_cry CRY_0E, 224, 96 ; MON_BOMBSEEKER + mon_cry CRY_24, 79, 144 ; MON_VULPIX + mon_cry CRY_24, 136, 224 ; MON_NINETALES + mon_cry CRY_0F, 238, 129 ; MON_PIKACHU + mon_cry CRY_09, 238, 136 ; MON_RAICHU + mon_cry CRY_00, 0, 0 ; MON_GIFT + mon_cry CRY_00, 0, 0 ; MON_KOTORA + mon_cry CRY_0F, 96, 192 ; MON_DRATINI + mon_cry CRY_0F, 64, 256 ; MON_DRAGONAIR + mon_cry CRY_16, 187, 192 ; MON_KABUTO + mon_cry CRY_18, 238, 129 ; MON_KABUTOPS + mon_cry CRY_19, 153, 144 ; MON_HORSEA + mon_cry CRY_19, 60, 129 ; MON_SEADRA + mon_cry CRY_0F, 64, 192 ; MON_RAITORA + mon_cry CRY_0F, 32, 192 ; MON_MADAME + mon_cry CRY_00, 32, 192 ; MON_SANDSHREW + mon_cry CRY_00, 255, 383 ; MON_SANDSLASH + mon_cry CRY_1F, 240, 129 ; MON_OMANYTE + mon_cry CRY_1F, 255, 192 ; MON_OMASTAR + mon_cry CRY_0E, 255, 181 ; MON_JIGGLYPUFF + mon_cry CRY_0E, 104, 224 ; MON_WIGGLYTUFF + mon_cry CRY_1A, 136, 224 ; MON_EEVEE + mon_cry CRY_1A, 16, 160 ; MON_FLAREON + mon_cry CRY_1A, 61, 256 ; MON_JOLTEON + mon_cry CRY_1A, 170, 383 ; MON_VAPOREON + mon_cry CRY_1F, 238, 129 ; MON_MACHOP + mon_cry CRY_1D, 224, 256 ; MON_ZUBAT + mon_cry CRY_17, 18, 192 ; MON_EKANS + mon_cry CRY_1E, 32, 352 ; MON_PARAS + mon_cry CRY_0E, 119, 224 ; MON_POLIWHIRL + mon_cry CRY_0E, 0, 383 ; MON_POLIWRATH + mon_cry CRY_15, 238, 129 ; MON_WEEDLE + mon_cry CRY_13, 255, 129 ; MON_KAKUNA + mon_cry CRY_13, 96, 256 ; MON_BEEDRILL + mon_cry CRY_00, 0, 0 ; MON_NOROWARA + mon_cry CRY_0B, 153, 160 ; MON_DODRIO + mon_cry CRY_0A, 175, 192 ; MON_PRIMEAPE + mon_cry CRY_0B, 42, 144 ; MON_DUGTRIO + mon_cry CRY_1A, 41, 256 ; MON_VENOMOTH + mon_cry CRY_0C, 35, 383 ; MON_DEWGONG + mon_cry CRY_00, 0, 0 ; MON_KYONPAN + mon_cry CRY_00, 0, 0 ; MON_YAMIKARASU + mon_cry CRY_16, 128, 160 ; MON_CATERPIE + mon_cry CRY_1C, 204, 129 ; MON_METAPOD + mon_cry CRY_16, 119, 192 ; MON_BUTTERFREE + mon_cry CRY_1F, 8, 320 ; MON_MACHAMP + mon_cry CRY_11, 32, 16 ; MON_HAPPI + mon_cry CRY_21, 255, 192 ; MON_GOLDUCK + mon_cry CRY_0D, 238, 192 ; MON_HYPNO + mon_cry CRY_1D, 250, 256 ; MON_GOLBAT + mon_cry CRY_1E, 153, 383 ; MON_MEWTWO + mon_cry CRY_05, 85, 129 ; MON_SNORLAX + mon_cry CRY_17, 128, 128 ; MON_MAGIKARP + mon_cry CRY_00, 0, 0 ; MON_SCISSORS + mon_cry CRY_00, 0, 0 ; MON_PURAKKUSU + mon_cry CRY_07, 239, 383 ; MON_MUK + mon_cry CRY_0F, 64, 0 ; MON_DEVIL + mon_cry CRY_20, 238, 352 ; MON_KINGLER + mon_cry CRY_18, 111, 352 ; MON_CLOYSTER + mon_cry CRY_00, 0, 0 ; MON_HELGAA + mon_cry CRY_06, 168, 272 ; MON_ELECTRODE + mon_cry CRY_19, 170, 160 ; MON_CLEFABLE + mon_cry CRY_12, 255, 383 ; MON_WEEZING + mon_cry CRY_19, 153, 383 ; MON_PERSIAN + mon_cry CRY_08, 79, 224 ; MON_MAROWAK + mon_cry CRY_00, 0, 0 ; MON_WOLFMAN + mon_cry CRY_1C, 48, 192 ; MON_HAUNTER + mon_cry CRY_1C, 192, 129 ; MON_ABRA + mon_cry CRY_1C, 152, 383 ; MON_ALAKAZAM + mon_cry CRY_14, 40, 320 ; MON_PIDGEOTTO + mon_cry CRY_14, 17, 383 ; MON_PIDGEOT + mon_cry CRY_1E, 0, 256 ; MON_STARMIE + mon_cry CRY_0F, 128, 129 ; MON_BULBASAUR + mon_cry CRY_0F, 0, 320 ; MON_VENUSAUR + mon_cry CRY_1A, 238, 383 ; MON_TENTACRUEL + mon_cry CRY_00, 0, 0 ; MON_WARWOLF + mon_cry CRY_16, 128, 192 ; MON_GOLDEEN + mon_cry CRY_16, 16, 383 ; MON_SEAKING + mon_cry CRY_00, 0, 0 ; MON_PORYGON2 + mon_cry CRY_00, 0, 0 ; MON_NAMEIL + mon_cry CRY_00, 0, 0 ; MON_HAGANEIL + mon_cry CRY_00, 0, 0 ; MON_KINGDRA + mon_cry CRY_25, 0, 256 ; MON_PONYTA + mon_cry CRY_25, 32, 320 ; MON_RAPIDASH + mon_cry CRY_22, 0, 256 ; MON_RATTATA + mon_cry CRY_22, 32, 383 ; MON_RATICATE + mon_cry CRY_00, 44, 320 ; MON_NIDORINO + mon_cry CRY_01, 44, 352 ; MON_NIDORINA + mon_cry CRY_24, 240, 144 ; MON_GEODUDE + mon_cry CRY_25, 170, 383 ; MON_PORYGON + mon_cry CRY_23, 32, 368 ; MON_AERODACTYL + mon_cry CRY_00, 0, 0 ; MON_RAI + mon_cry CRY_1C, 128, 224 ; MON_MAGNEMITE + mon_cry CRY_00, 0, 0 ; MON_EN + mon_cry CRY_00, 0, 0 ; MON_SUI + mon_cry CRY_04, 96, 192 ; MON_CHARMANDER + mon_cry CRY_1D, 96, 192 ; MON_SQUIRTLE + mon_cry CRY_04, 32, 192 ; MON_CHARMELEON + mon_cry CRY_1D, 32, 192 ; MON_WARTORTLE + mon_cry CRY_04, 0, 256 ; MON_CHARIZARD + mon_cry CRY_1D, 0, 0 ; MON_NYULA + mon_cry CRY_00, 0, 0 ; MON_HOUOU + mon_cry CRY_00, 0, 0 ; MON_TOGEPY + mon_cry CRY_00, 0, 0 ; MON_BULU + mon_cry CRY_08, 221, 129 ; MON_ODDISH + mon_cry CRY_08, 170, 192 ; MON_GLOOM + mon_cry CRY_23, 34, 383 ; MON_VILEPLUME + mon_cry CRY_21, 85, 129 ; MON_BELLSPROUT + mon_cry CRY_25, 68, 160 ; MON_WEEPINBELL + mon_cry CRY_25, 102, 332 ; MON_VICTREEBEL + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + mon_cry CRY_00, 0, 256 + diff --git a/data/predef_pointers.inc b/data/predef_pointers.inc index dad7af17..64fb55c7 100644 --- a/data/predef_pointers.inc +++ b/data/predef_pointers.inc @@ -88,7 +88,7 @@ GiveItemPredef:: add_predef Function1457a add_predef Function143e0 add_predef CheckSGB - add_predef Function928b + add_predef LoadSGBLayout add_predef Function8786 add_predef DoBattleTransition add_predef Function8c9c6 diff --git a/data/sgb/blk_packets.inc b/data/sgb/blk_packets.inc new file mode 100644 index 00000000..1ca8e340 --- /dev/null +++ b/data/sgb/blk_packets.inc @@ -0,0 +1,73 @@ +attr_blk: MACRO + db (SGB_ATTR_BLK << 3) + ((\1 * 6) / 16 + 1) + db \1 +ENDM + +attr_blk_data: MACRO + db \1 ; which regions are affected + db \2 + (\3 << 2) + (\4 << 4) ; palette for each region + db \5, \6, \7, \8 ; x1, y1, x2, y2 +ENDM + +BlkPacket_986c: + attr_blk 1 + attr_blk_data %011, 0,0,0, 00,00, 19,17 + ds 8 + +BlkPacket_GSIntroJigglypuffPikachu: + attr_blk 1 + attr_blk_data %111, 1,1,0, 00,10, 19,13 + ds 8 + +BlkPacket_Battle: + attr_blk 5 + attr_blk_data %111, 2,2,0, 00,12, 19,17 + attr_blk_data %011, 1,1,0, 01,00, 10,03 + attr_blk_data %011, 0,0,0, 10,08, 19,10 + attr_blk_data %011, 2,2,0, 00,04, 08,11 + attr_blk_data %011, 3,3,0, 11,00, 19,07 + +BlkPacket_StatsScreen: + attr_blk 1 + attr_blk_data %111, 1,1,0, 00,01, 07,07 + ds 8 + +BlkPacket_MoveList: + attr_blk 1 + attr_blk_data %111, 1,1,0, 11,01, 19,02 + ds 8 + +BlkPacket_Pokedex: + attr_blk 1 + attr_blk_data %111, 1,1,0, 01,01, 08,08 + ds 8 + +BlkPacket_SlotMachine: + attr_blk 5 + attr_blk_data %011, 1,1,0, 00,00, 19,11 + attr_blk_data %011, 2,2,0, 00,04, 19,09 + attr_blk_data %010, 3,3,0, 00,06, 19,07 + attr_blk_data %011, 0,0,0, 04,04, 15,09 + attr_blk_data %011, 0,0,0, 00,12, 19,17 + +BlkPacket_98fc: + attr_blk 7 + attr_blk_data %111, 0,0,1, 00,00, 02,12 + attr_blk_data %010, 0,0,0, 12,00, 18,01 + attr_blk_data %010, 0,0,0, 12,02, 18,03 + attr_blk_data %010, 0,0,0, 12,04, 18,05 + attr_blk_data %010, 0,0,0, 12,06, 18,07 + attr_blk_data %010, 0,0,0, 12,08, 18,09 + attr_blk_data %010, 0,0,0, 12,10, 18,11 + ds 4 + +BlkPacket_TrainerGear: + attr_blk 1 + attr_blk_data %111, 0,0,1, 00,00, 19,02 + ds 8 + +BlkPacket_TitleScreen: + attr_blk 1 + attr_blk_data %111, 0,0,1, 00,00, 19,05 + ds 8 + diff --git a/data/sgb/ctrl_packets.inc b/data/sgb/ctrl_packets.inc new file mode 100644 index 00000000..b613e7d3 --- /dev/null +++ b/data/sgb/ctrl_packets.inc @@ -0,0 +1,128 @@ +sgb_pal_trn: MACRO + db (SGB_PAL_TRN << 3) + 1 + ds 15 +ENDM + +sgb_mlt_req: MACRO + db (SGB_MLT_REG << 3) + 1 + db \1 - 1 + ds 14 +ENDM + +sgb_chr_trn: MACRO + db (SGB_CHR_TRN << 3) + 1 + db \1 + (\2 << 1) + ds 14 +ENDM + +sgb_pct_trn: MACRO + db (SGB_PCT_TRN << 3) + 1 + ds 15 +ENDM + +sgb_mask_en: MACRO + db (SGB_MASK_EN << 3) + 1 + db \1 + ds 14 +ENDM + +sgb_data_snd: MACRO + db (SGB_DATA_SND << 3) + 1 + dw \1 ; address + db \2 ; bank + db \3 ; length (1-11) +ENDM + +PalTrnPacket: sgb_pal_trn +MltReq1Packet: sgb_mlt_req 1 +MltReq2Packet: sgb_mlt_req 2 +ChrTrnPacket: sgb_chr_trn 0, 0 +PctTrnPacket: sgb_pct_trn + +MaskEnFreezePacket: sgb_mask_en 1 +MaskEnCancelPacket: sgb_mask_en 0 + +; These are packets containing SNES code. +; This set of packets is found in several Japanese SGB-compatible titles. +; It appears to be part of NCL's SGB devkit. + +DataSndPacket1: + sgb_data_snd $085d, $0, 11 + db $8c ; cpx #$8c (2) + db $d0, $f4 ; bne -$0c + db $60 ; rts + ds 7 + +DataSndPacket2: + sgb_data_snd $0852, $0, 11 + db $a9, $e7 ; lda #$e7 + db $9f, $01, $c0, $7e ; sta $7ec001, x + db $e8 ; inx + db $e8 ; inx + db $e8 ; inx + db $e8 ; inx + db $e0 ; cpx #$8c (1) + +DataSndPacket3: + sgb_data_snd $0847, $0, 11 + db $c4 ; cmp #$c4 (2) + db $d0, $16 ; bne +$16 + db $a5 ; lda dp + db $cb ; wai + db $c9, $05 ; cmp #$05 + db $d0, $10 ; bne +$10 + db $a2, $28 ; ldx #$28 + +DataSndPacket4: + sgb_data_snd $083c, $0, 11 + db $f0, $12 ; beq +$12 + db $a5 ; lda dp + db $c9, $c9 ; cmp #$c9 + db $c8 ; iny + db $d0, $1c ; bne +$1c + db $a5 ; lda dp + db $ca ; dex + db $c9 ; cmp #$c4 (1) + +DataSndPacket5: + sgb_data_snd $0831, $0, 11 + dbw $0c, $caa5 ; tsb $caa5 + db $c9, $7e ; cmp #$7e + db $d0, $06 ; bne +$06 + db $a5 ; lda dp + db $cb ; wai + db $c9, $7e ; cmp #$7e + +DataSndPacket6: + sgb_data_snd $0826, $0, 11 + db $39 ; bne +$39 (2) + dbw $cd, $0c48 ; cmp $0c48 + db $d0, $34 ; bne +$34 + db $a5 ; lda dp + db $c9, $c9 ; cmp #$c9 + db $80, $d0 ; bra -$30 + +DataSndPacket7: + sgb_data_snd $081b, $0, 11 + db $ea ; nop + db $ea ; nop + db $ea ; nop + db $ea ; nop + db $ea ; nop + ; $0820: + db $a9, $01 ; lda #01 + dbw $cd, $0c4f ; cmp $c4f + db $d0 ; bne +$39 (1) + +DataSndPacket8: + sgb_data_snd $0810, $0, 11 + dbw $4c, $0820 ; jmp $0820 + db $ea ; nop + db $ea ; nop + db $ea ; nop + db $ea ; nop + db $ea ; nop + db $60 ; rts + db $ea ; nop + db $ea ; nop + diff --git a/data/sgb/pal_packets.inc b/data/sgb/pal_packets.inc new file mode 100644 index 00000000..510cc043 --- /dev/null +++ b/data/sgb/pal_packets.inc @@ -0,0 +1,57 @@ +sgb_pal_set: MACRO + db (SGB_PAL_SET << 3) + 1 + dw PAL_\1, PAL_\2, PAL_\3, PAL_\4 + ds 7 +ENDM + +PalPacket_Poker: + sgb_pal_set POKER_1, POKER_2, POKER_3, POKER_4 + +PalPacket_995c: + sgb_pal_set ROUTE, ROUTE, ROUTE, ROUTE + +PalPacket_GSIntroShellderLapras: + sgb_pal_set INTRO_WATER, ROUTE, ROUTE, ROUTE + +PalPacket_MagikarpIntro: + sgb_pal_set INTRO_LAPRAS, ROUTE, ROUTE, ROUTE + +PalPacket_GSIntroJigglypuffPikachu: + sgb_pal_set INTRO_FOREST, INTRO_JIGGLYPUFF_PIKACHU, ROUTE, ROUTE + +PalPacket_GSIntroBlastoise: + sgb_pal_set INTRO_BLASTOISE, ROUTE, ROUTE, ROUTE + +PalPacket_GSIntroVenusaur: + sgb_pal_set INTRO_VENUSAUR, ROUTE, ROUTE, ROUTE + +PalPacket_GSIntroCharizard: + sgb_pal_set INTRO_CHARIZARD, ROUTE, ROUTE, ROUTE + +PalPacket_PikachuMinigame: + sgb_pal_set INTRO_JIGGLYPUFF_PIKACHU, ROUTE, ROUTE, ROUTE + +PalPacket_PartyMenu: + sgb_pal_set SHINY_GRAYMON, GREEN_BAR, YELLOW_BAR, RED_BAR + +PalPacket_BattleGrayscale: + sgb_pal_set BLACK, BLACK, BLACK, BLACK + +PalPacket_TownMap: + sgb_pal_set TOWN_MAP, ROUTE, ROUTE, ROUTE + +PalPacket_Pokedex: + sgb_pal_set INTRO_CHARIZARD, ROUTE, ROUTE, ROUTE + +PalPacket_SlotMachine: + sgb_pal_set SLOTS_1, SLOTS_2, SLOTS_3, SLOTS_4 + +PalPacket_TitleScreen: + sgb_pal_set LOGO_1, LOGO_2, MEWMON, PURPLEMON + +PalPacket_9a3c: + sgb_pal_set MEWMON, ROUTE, ROUTE, ROUTE + +PalPacket_GFIntro: + sgb_pal_set GAME_FREAK, ROUTE, ROUTE, ROUTE + diff --git a/data/super_palettes.inc b/data/sgb/super_palettes.inc similarity index 100% rename from data/super_palettes.inc rename to data/sgb/super_palettes.inc diff --git a/engine/dumps/bank01.asm b/engine/dumps/bank01.asm index 01f36da8..03c93baf 100755 --- a/engine/dumps/bank01.asm +++ b/engine/dumps/bank01.asm @@ -3741,9 +3741,7 @@ Function78f0: ld a, [hl] xor $08 ld [hl], a - ld hl, Function96eb - ld a, BANK(Function96eb) - call FarCall_hl + callab UpdateSGBBorder call LoadFont call LoadFontExtra ld c, $70 diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm index 38042a40..bb1528c1 100755 --- a/engine/dumps/bank02.asm +++ b/engine/dumps/bank02.asm @@ -1252,1097 +1252,3 @@ Data8a53: db $3c, $14, $3c, $20, $48, $14, $54, $1c db $54, $2c, $54, $38, $3c, $44, $48, $2c -SECTION "engine/dumps/bank02.asm@SetTitleBGDecorationBorder", ROMX - -SetTitleBGDecorationBorder: - ld de, TitleBGDecorationBorder - ld hl, vChars2 + $500 - lb bc, BANK(TitleBGDecorationBorder), $09 - call Request2bpp - coord hl, 0, 8 - ld b, $50 - call Function91ef - coord hl, 0, 16 - ld b, $54 - call Function91ef - ret - -Function91ef: - xor a - ld c, $14 -.sub_91f2 - and $03 - or b - ld [hli], a - inc a - dec c - jr nz, .sub_91f2 - ret - -SECTION "engine/dumps/bank02.asm@Function928b", ROMX - -Function928b: - ld a, b - cp $ff - jr nz, .sub_9293 - ld a, [wccd0] -.sub_9293 - cp $fc - jp z, Function9604 - ld l, a - ld h, $00 - add hl, hl - ld de, Table92a8 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Function955f - push de - jp hl - -Table92a8: - dw Function92d4 - dw Function92db - dw Function934b - dw Function9352 - dw Function9382 - dw Function93a6 - dw Function93ad - dw Function93bb - dw Function93b4 - dw Function93fe - dw Function937b - dw Function941a - dw Function93d8 - dw Function9441 - dw Function932b - dw Function93e4 - dw Function939f - dw Function93eb - dw Function9448 - dw Function948e - dw Function94ab - dw Function94c8 - -Function92d4: - ld hl, Data99ec - ld de, Data988c - ret - -Function92db: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld a, [wca3f] - ld hl, wca02 - call Function9567 - jr c, .sub_92f7 - ld e, $00 - call Function9599 -.sub_92f7 - ld b, a - ld a, [wca44] - ld hl, wcdd7 - call Function9567 - jr c, .sub_9308 - ld e, $01 - call Function9599 -.sub_9308 - ld c, a - ld hl, wcce2 - ld a, [wccd1] - add $23 - ld [hli], a - inc hl - ld a, [wccd2] - add $23 - ld [hli], a - inc hl - ld a, b - ld [hli], a - inc hl - ld a, c - ld [hl], a - ld hl, wcce1 - ld de, Data988c - ld a, $01 - ld [wccd0], a - ret - -Function932b: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld hl, wcce2 - ld [hl], $10 - inc hl - inc hl - ld a, [wccd1] - add $23 - ld [hl], a - ld hl, wcce1 - ld de, Data98bc - ret - -Function934b: - ld hl, Data99fc - ld de, Data986c - ret - -Function9352: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld a, [wMonDexIndex] - call Function956d - call Function957e - push af - ld hl, wcce2 - ld a, [wccd9] - add $23 - ld [hli], a - inc hl - pop af - ld [hl], a - ld hl, wcce1 - ld de, Data98ac - ret - -Function937b: - ld hl, Data99dc - ld de, wcce2 - ret - -Function9382: - ld hl, Data9a0c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld a, [wMonDexIndex] - call Function956d - ld hl, wcce4 - ld [hl], a - ld hl, wcce1 - ld de, Data98cc - ret - -Function939f: - ld hl, Data99bc - ld de, Data986c - ret - -Function93a6: - ld hl, Data9a1c - ld de, Data98dc - ret - -Function93ad: - ld hl, Data9a2c - ld de, Data993c - ret - -Function93b4: - ld hl, Data9a3c - ld de, Data986c - ret - -Function93bb: - ld b, $00 - ld hl, Table93cc - add hl, bc - add hl, bc - add hl, bc - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld a, [hli] - ld h, [hl] - ld l, a - ret - -Table93cc: - dw Data986c - dw Data996c - - dw Data987c - dw Data998c - - dw Data986c - dw Data999c - -Function93d8: - ld hl, Data9a4c - ld de, Data986c - ld a, $08 - ld [wccd0], a - ret - -Function93e4: - ld hl, Data99cc - ld de, Data986c - ret - -Function93eb: - ld hl, Data986c - ld de, wc51a - ld bc, $0010 - call CopyBytes - ld hl, Data994c - ld de, Data986c - ret - -Function93fe: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - call Function94e5 - ld hl, wcce2 - ld [hld], a - ld de, Data986c - ld a, $09 - ld [wccd0], a - ret - -Function941a: - push bc - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - pop bc - ld a, c - and a - ld a, $0e - jr nz, .sub_9437 - ld a, [wccd1] - call Function956d - call Function957e -.sub_9437 - ld [wcce2], a - ld hl, wcce1 - ld de, Data986c - ret - -Function9441: - ld hl, Data9a3c - ld de, Data986c - ret - -Function9448: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld hl, Data986c - ld de, wccf1 - ld bc, $0010 - call CopyBytes - call Function94e5 - ld hl, wcce2 - ld [hl], a - ld a, [wMonDexIndex] - call Function956d - ld hl, wcce4 - ld [hl], a - ld hl, wccf4 - ld a, $05 - ld [hli], a - ld a, [wMenuBorderLeftCoord] - ld [hli], a - ld a, [wMenuBorderTopCoord] - ld [hli], a - ld a, [wMenuBorderRightCoord] - ld [hli], a - ld a, [wMenuBorderBottomCoord] - ld [hl], a - ld hl, wcce1 - ld de, wccf1 - ret - -Function948e: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld a, $16 - ld [wcce2], a - ld a, $30 - ld [wcce4], a - ld hl, wcce1 - ld de, Data992c - ret - -Function94ab: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld a, $16 - ld [wcce2], a - ld a, $26 - ld [wcce4], a - ld hl, wcce1 - ld de, Data992c - ret - -Function94c8: - ld hl, Data995c - ld de, wcce1 - ld bc, $0010 - call CopyBytes - ld a, $16 - ld [wcce2], a - ld a, $39 - ld [wcce4], a - ld hl, wcce1 - ld de, Data992c - ret - -Function94e5: - ld a, [wMapPermissions] - cp $02 - jr z, .sub_950e - cp $04 - jr z, .sub_9516 - cp $06 - jr z, .sub_951e - cp $05 - jr z, .sub_9521 - cp $03 - jr z, .sub_9505 - call Function9527 - jr c, .sub_9524 - call Function9543 - ret -.sub_9505 - call Function9536 - jr c, .sub_9524 - call Function9543 - ret -.sub_950e - call Function9527 - jr c, .sub_9524 - ld a, $00 - ret -.sub_9516 - call Function9527 - jr c, .sub_9524 - ld a, $0c - ret -.sub_951e - ld a, $03 - ret -.sub_9521 - ld a, $04 - ret -.sub_9524 - ld a, $0d - ret - -Function9527: - ld a, [wTimeOfDay] - and $03 - jr z, .sub_9534 - cp $03 - jr z, .sub_9534 - scf - ret -.sub_9534 - and a - ret - -Function9536: - ld a, [wTimeOfDay] - and $03 - cp $02 - jr nz, .sub_9541 - scf - ret -.sub_9541 - and a - ret - -Function9543: - ld a, [wMapGroup] - ld e, a - ld d, $00 - ld hl, Data954f - add hl, de - ld a, [hl] - ret - -Data954f: - db $01, $07, $0c, $03, $08, $06, $0b, $04 - db $05, $0a, $02, $03, $02, $02, $09, $01 - -Function955f: - push de - call Function964b - pop hl - jp Function964b - -Function9567: - bit 3, a - ld a, $18 - ret nz - ld a, [hl] - -Function956d: - and a - jr z, .sub_957a - ld e, a - ld d, $00 - ld hl, PokemonPalettes - add hl, de - ld a, [hl] - and a - ret -.sub_957a - ld a, $0f - scf - ret - -Function957e: - push bc - push af - ld hl, wPartyMon1DVs - ld a, [wWhichPokemon] - ld bc, $0030 - call AddNTimes - call Function95b0 - ld b, $00 - jr nc, .sub_9595 - ld b, $0a -.sub_9595 - pop af - add b - pop bc - ret - -Function9599: - push bc - push af - ld a, e - and a - ld a, [wcae1] - jr z, .sub_95a4 - srl a -.sub_95a4 - srl a - ld b, $00 - jr nc, .sub_95ac - ld b, $0a -.sub_95ac - pop af - add b - pop bc - ret - -Function95b0: - ld a, [hl] - cp $a0 - jr c, .sub_95ca - ld a, [hli] - and $0f - cp $0a - jr c, .sub_95ca - ld a, [hl] - cp $a0 - jr c, .sub_95ca - ld a, [hl] - and $0f - cp $0a - jr c, .sub_95ca - scf - ret -.sub_95ca - and a - ret - -Function95cc: - ld hl, wcddf - ldh a, [hBattleTurn] - and a - jr nz, .sub_95d7 - ld hl, wca08 -.sub_95d7 - call Function95b0 - ld hl, wcae1 - jr nc, .sub_95ec - ldh a, [hBattleTurn] - and a - jr nz, .sub_95e8 - set 0, [hl] - jr .sub_95f7 -.sub_95e8 - set 1, [hl] - jr .sub_95f7 -.sub_95ec - ldh a, [hBattleTurn] - and a - jr nz, .sub_95f5 - res 0, [hl] - jr .sub_95f7 -.sub_95f5 - res 1, [hl] -.sub_95f7 - ret - -Function95f8: - ld hl, Data98fc - ld de, wcce2 - ld bc, $0030 - jp CopyBytes - -Function9604: - ld hl, wccd3 - ld a, [wcce1] - ld e, a - ld d, $00 - add hl, de - ld e, l - ld d, h - ld a, [de] - and a - ld e, $05 - jr z, .sub_961d - dec a - ld e, $0a - jr z, .sub_961d - ld e, $0f -.sub_961d - push de - ld hl, wcceb - ld bc, $0006 - ld a, [wcce1] - call AddNTimes - pop de - ld [hl], e - ret - -LoadMagikarpPalettes_Intro: - ld hl, Data997c - jp Function964b - -LoadForestPalettes2_Intro: - ld hl, Data986c - jp Function964b - -LoadVenusaurPalettes_Intro: - ld hl, Data99ac - jp Function964b - -LoadCharizardPalettes_Intro: - ld hl, Data99bc - jp Function964b - -Function9645: - ld hl, wc51a - jp Function964b - -Function964b: - ld a, [wJoypadFlags] - push af - set 7, a - ld [wJoypadFlags], a - call Function965c - pop af - ld [wJoypadFlags], a - ret - -Function965c: - ld a, [hl] - and $07 - ret z - ld b, a -.sub_9661 - push bc - xor a - ldh [rJOYP], a - ld a, $30 - ldh [rJOYP], a - ld b, $10 -.sub_966b - ld e, $08 - ld a, [hli] - ld d, a -.sub_966f - bit 0, d - ld a, $10 - jr nz, .sub_9677 - ld a, $20 -.sub_9677 - ldh [rJOYP], a - ld a, $30 - ldh [rJOYP], a - rr d - dec e - jr nz, .sub_966f - dec b - jr nz, .sub_966b - ld a, $20 - ldh [rJOYP], a - ld a, $30 - ldh [rJOYP], a - call Function9860 - pop bc - dec b - jr nz, .sub_9661 - ret - -CheckSGB: - ld a, [wJoypadFlags] - push af - set 7, a - ld [wJoypadFlags], a - xor a - ldh [rJOYP], a - ld [wSGB], a - call Function9730 - jr nc, .sub_96c0 - ld a, $01 - ld [wSGB], a - call .sub_96c5 - call Function9704 - call Function979a - call Function9725 - ld hl, Data9abc - call Function965c -.sub_96c0 - pop af - ld [wJoypadFlags], a - ret -.sub_96c5 - ld hl, Table96d9 - ld c, $09 -.sub_96ca - push bc - ld a, [hli] - push hl - ld h, [hl] - ld l, a - call Function965c - pop hl - inc hl - pop bc - dec c - jr nz, .sub_96ca - ret - -Table96d9: - dw Data9aac - dw Data9acc - dw Data9adc - dw Data9aec - dw Data9afc - dw Data9b0c - dw Data9b1c - dw Data9b2c - dw Data9b3c - -Function96eb: - ld a, [wSGB] - ret z - di - xor a - ldh [rJOYP], a - ld hl, Data9aac - call Function965c - call Function9704 - ld hl, Data9abc - call Function965c - ei - ret - -Function9704: - call Function9710 - push de - call Function980a - pop hl - call Function97be - ret - -Function9710: - ld a, [wce5f] - bit 3, a - jr nz, .sub_971e - ld hl, UnusedSGBBorderGFX - ld de, Corrupted9e1cGFX - ret -.sub_971e - ld hl, SGBBorderGFX - ld de, Corrupteda66cGFX - ret - -Function9725: - ld hl, vChars0 - ld bc, $2000 - xor a - call ByteFill - ret - -Function9730: - ld hl, Data9a7c - call Function965c - call Function9860 - ldh a, [rJOYP] - and $03 - cp $03 - jr nz, .sub_978c - ld a, $20 - ldh [rJOYP], a - ldh a, [rJOYP] - ldh a, [rJOYP] - call Function9860 - call Function9860 - ld a, $30 - ldh [rJOYP], a - call Function9860 - call Function9860 - ld a, $10 - ldh [rJOYP], a - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - call Function9860 - call Function9860 - ld a, $30 - ldh [rJOYP], a - ldh a, [rJOYP] - ldh a, [rJOYP] - ldh a, [rJOYP] - call Function9860 - call Function9860 - ldh a, [rJOYP] - and $03 - cp $03 - jr nz, .sub_978c - call .sub_9791 - and a - ret -.sub_978c - call .sub_9791 - scf - ret -.sub_9791 - ld hl, Data9a6c - call Function965c - jp Function9860 - -Function979a: - call DisableLCD - ld a, $e4 - ldh [rBGP], a - ld hl, SuperPalettes - ld de, vChars1 - ld bc, $1000 - call Function9838 - call Function984a - ld a, $e3 - ldh [rLCDC], a - ld hl, Data9a5c - call Function965c - xor a - ldh [rBGP], a - ret - -Function97be: - call DisableLCD - ld a, $e4 - ldh [rBGP], a - ld de, vChars1 - ld bc, $0140 - call Function9838 - ld b, $12 -.sub_97d0 - push bc - ld bc, $000c - call Function9838 - ld bc, $0028 - call Function9841 - ld bc, $000c - call Function9838 - pop bc - dec b - jr nz, .sub_97d0 - ld bc, $0140 - call Function9838 - ld bc, $0100 - call Function9841 - ld bc, $0080 - call Function9838 - call Function984a - ld a, $e3 - ldh [rLCDC], a - ld hl, Data9a9c - call Function965c - xor a - ldh [rBGP], a - ret - -Function980a: - call DisableLCD - ld a, $e4 - ldh [rBGP], a - ld de, vChars1 - ld b, $80 -.sub_9816 - push bc - ld bc, $0010 - call Function9838 - ld bc, $0010 - call Function9841 - pop bc - dec b - jr nz, .sub_9816 - call Function984a - ld a, $e3 - ldh [rLCDC], a - ld hl, Data9a8c - call Function965c - xor a - ldh [rBGP], a - ret - -Function9838: - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, Function9838 - ret - -Function9841: - xor a - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, Function9841 - ret - -Function984a: - ld hl, vBGMap0 - ld de, $000c - ld a, $80 - ld c, $0d -.sub_9854 - ld b, $14 -.sub_9856 - ld [hli], a - inc a - dec b - jr nz, .sub_9856 - add hl, de - dec c - jr nz, .sub_9854 - ret - -Function9860: - ld de, $1b58 -.sub_9863 - nop - nop - nop - dec de - ld a, d - or e - jr nz, .sub_9863 - ret - -Data986c: - db $21, $01, $03, $00, $00, $00, $13, $11 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data987c: - db $21, $01, $07, $05, $00, $0a, $13, $0d - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data988c: - db $22, $05, $07, $0a, $00, $0c, $13, $11 - db $03, $05, $01, $00, $0a, $03, $03, $00 - -Data989c: - db $0a, $08, $13, $0a, $03, $0a, $00, $04 - db $08, $0b, $03, $0f, $0b, $00, $13, $07 - -Data98ac: - db $21, $01, $07, $05, $00, $01, $07, $07 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data98bc: - db $21, $01, $07, $05, $0b, $01, $13, $02 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data98cc: - db $21, $01, $07, $05, $01, $01, $08, $08 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data98dc: - db $22, $05, $03, $05, $00, $00, $13, $0b - db $03, $0a, $00, $04, $13, $09, $02, $0f - -Data98ec: - db $00, $06, $13, $07, $03, $00, $04, $04 - db $0f, $09, $03, $00, $00, $0c, $13, $11 - -Data98fc: - db $23, $07, $07, $10, $00, $00, $02, $0c - db $02, $00, $0c, $00, $12, $01, $02, $00 - -Data990c: - db $0c, $02, $12, $03, $02, $00, $0c, $04 - db $12, $05, $02, $00, $0c, $06, $12, $07 - -Data991c: - db $02, $00, $0c, $08, $12, $09, $02, $00 - db $0c, $0a, $12, $0b, $00, $00, $00, $00 - -Data992c: - db $21, $01, $07, $10, $00, $00, $13, $02 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data993c: - db $21, $01, $07, $10, $00, $00, $13, $05 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data994c: - db $51, $35, $00, $36, $00, $37, $00, $38 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data995c: - db $51, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data996c: - db $51, $2a, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data997c: - db $51, $2b, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data998c: - db $51, $2c, $00, $2d, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data999c: - db $51, $2e, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data99ac: - db $51, $2f, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data99bc: - db $51, $30, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data99cc: - db $51, $2d, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data99dc: - db $51, $22, $00, $23, $00, $24, $00, $25 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data99ec: - db $51, $0e, $00, $0e, $00, $0e, $00, $0e - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data99fc: - db $51, $26, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a0c: - db $51, $30, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a1c: - db $51, $31, $00, $32, $00, $33, $00, $34 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a2c: - db $51, $27, $00, $28, $00, $0f, $00, $13 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a3c: - db $51, $0f, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a4c: - db $51, $29, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a5c: - db $59, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a6c: - db $89, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a7c: - db $89, $01, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a8c: - db $99, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9a9c: - db $a1, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9aac: - db $b9, $01, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9abc: - db $b9, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - -Data9acc: - db $79, $5d, $08, $00, $0b, $8c, $d0, $f4 - db $60, $00, $00, $00, $00, $00, $00, $00 - -Data9adc: - db $79, $52, $08, $00, $0b, $a9, $e7, $9f - db $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 - -Data9aec: - db $79, $47, $08, $00, $0b, $c4, $d0, $16 - db $a5, $cb, $c9, $05, $d0, $10, $a2, $28 - -Data9afc: - db $79, $3c, $08, $00, $0b, $f0, $12, $a5 - db $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 - -Data9b0c: - db $79, $31, $08, $00, $0b, $0c, $a5, $ca - db $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e - -Data9b1c: - db $79, $26, $08, $00, $0b, $39, $cd, $48 - db $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 - -Data9b2c: - db $79, $1b, $08, $00, $0b, $ea, $ea, $ea - db $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 - -Data9b3c: - db $79, $10, $08, $00, $0b, $4c, $20, $08 - db $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea diff --git a/engine/dumps/bank09.asm b/engine/dumps/bank09.asm index 39d902e3..5466c799 100644 --- a/engine/dumps/bank09.asm +++ b/engine/dumps/bank09.asm @@ -347,10 +347,10 @@ UpdateItemDescription:: callab ShowItemDescription ret -Function2420b: +Pokepic: ld a, $01 ldh [hBGMapMode], a - ld hl, .MenuHeader24262 + ld hl, .PokepicMenuHeader call LoadMenuHeader call MenuBox call UpdateSprites @@ -372,7 +372,7 @@ Function2420b: call Coord2Tile ld a, $80 ldh [hGraphicStartTile], a - ld bc, $0707 + lb bc, 7, 7 predef PlaceGraphic ld a, $01 ldh [hBGMapMode], a @@ -384,7 +384,7 @@ Function2420b: call LoadFont ret -.MenuHeader24262: +.PokepicMenuHeader: db MENU_BACKUP_TILES menu_coords 6, 4, $e, $d dw 0 diff --git a/engine/games/pikachu_minigame.asm b/engine/games/pikachu_minigame.asm index de930da0..42307715 100644 --- a/engine/games/pikachu_minigame.asm +++ b/engine/games/pikachu_minigame.asm @@ -36,7 +36,7 @@ PikachuMiniGame:: .Init: call DisableLCD - ld b, SGB_BETA_PIKACHU_MINIGAME + ld b, SGB_PIKACHU_MINIGAME call GetSGBLayout callab InitEffectObject call PikachuMiniGame_ClearBothTilemaps diff --git a/engine/gfx.asm b/engine/gfx/load_gfx.asm similarity index 99% rename from engine/gfx.asm rename to engine/gfx/load_gfx.asm index 57009043..c628c67e 100644 --- a/engine/gfx.asm +++ b/engine/gfx/load_gfx.asm @@ -1,6 +1,6 @@ INCLUDE "constants.asm" -SECTION "engine/gfx.asm", ROMX +SECTION "engine/gfx/load_gfx.asm", ROMX LoadFontGraphics:: ld de, FontGFX diff --git a/engine/gfx/set_title_decoration.asm b/engine/gfx/set_title_decoration.asm new file mode 100644 index 00000000..1a4f2fe3 --- /dev/null +++ b/engine/gfx/set_title_decoration.asm @@ -0,0 +1,33 @@ +INCLUDE "constants.asm" + +SECTION "engine/gfx/set_title_decoration.asm", ROMX + +SetTitleBGDecorationBorder: + ld de, TitleBGDecorationBorder + ld hl, vChars2 + $500 + lb bc, BANK(TitleBGDecorationBorder), 9 + call Request2bpp + +; top row + coord hl, 0, 8 + ld b, $50 + call .PlaceRow + +; bottom row + coord hl, 0, 16 + ld b, $54 + call .PlaceRow + ret + +.PlaceRow: + xor a + ld c, SCREEN_WIDTH +.loop + and $03 + or b + ld [hli], a + inc a + dec c + jr nz, .loop + ret + diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm new file mode 100644 index 00000000..a4faf2a2 --- /dev/null +++ b/engine/gfx/sgb_layouts.asm @@ -0,0 +1,896 @@ +INCLUDE "constants.asm" + +SECTION "engine/gfx/sgb_layouts.asm", ROMX + +LoadSGBLayout: + ld a, b + cp SGB_RAM + jr nz, .not_ram + ld a, [wccd0] +.not_ram + cp SGB_PARTY_MENU_HP_PALS + jp z, SGB_ApplyPartyMenuHPPals + ld l, a + ld h, 0 + add hl, hl + ld de, .Jumptable + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, _LoadSGBLayout_ReturnFromJumpTable + push de + jp hl + +.Jumptable: + dw SGB_BattleGrayscale + dw SGB_BattleColors + dw SGB_TownMap + dw SGB_StatsScreenHPPals + dw SGB_Pokedex + dw SGB_SlotMachine + dw SGB_TitleScreen + dw SGB_GSIntro + dw SGB_Diploma + dw SGB_MapPals + dw SGB_PartyMenu + dw SGB_Evolution + dw SGB_GFIntro + dw SGB_TrainerCard + dw SGB_MoveList + dw SGB_PikachuMinigame + dw SGB_PokedexSelection + dw SGB_Poker + dw SGB12 + dw SGB_TrainerGear + dw SGB_TrainerGearMap + dw SGB_TrainerGearRadio + +SGB_BattleGrayscale: + ld hl, PalPacket_BattleGrayscale + ld de, BlkPacket_Battle + ret + +SGB_BattleColors: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + + ld a, [wca3f] + ld hl, wca02 + call Function9567 + jr c, .sub_92f7 + + ld e, $00 + call Function9599 +.sub_92f7 + ld b, a + ld a, [wca44] + ld hl, wcdd7 + call Function9567 + jr c, .sub_9308 + ld e, $01 + call Function9599 +.sub_9308 + ld c, a + ld hl, wcce2 + ld a, [wccd1] + add $23 + ld [hli], a + inc hl + ld a, [wccd2] + add $23 + ld [hli], a + inc hl + ld a, b + ld [hli], a + inc hl + ld a, c + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_Battle + ld a, $01 + ld [wccd0], a + ret + +SGB_MoveList: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld hl, wcce2 + ld [hl], $10 + inc hl + inc hl + ld a, [wccd1] + add $23 + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_MoveList + ret + +SGB_TownMap: + ld hl, PalPacket_TownMap + ld de, BlkPacket_986c + ret + +SGB_StatsScreenHPPals: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, [wMonDexIndex] + call Function956d + call Function957e + push af + ld hl, wcce2 + ld a, [wccd9] + add $23 + ld [hli], a + inc hl + pop af + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_StatsScreen + ret + +SGB_PartyMenu: + ld hl, PalPacket_PartyMenu + ld de, wcce2 + ret + +SGB_Pokedex: + ld hl, PalPacket_Pokedex + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, [wMonDexIndex] + call Function956d + ld hl, wcce4 + ld [hl], a + ld hl, wcce1 + ld de, BlkPacket_Pokedex + ret + +SGB_PokedexSelection: + ld hl, PalPacket_GSIntroCharizard + ld de, BlkPacket_986c + ret + +SGB_SlotMachine: + ld hl, PalPacket_SlotMachine + ld de, BlkPacket_SlotMachine + ret + +SGB_TitleScreen: + ld hl, PalPacket_TitleScreen + ld de, BlkPacket_TitleScreen + ret + +SGB_Diploma: + ld hl, PalPacket_9a3c + ld de, BlkPacket_986c + ret + +SGB_GSIntro: + ld b, 0 + ld hl, .BlkPacketTable +rept 4 + add hl, bc +endr + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ret + +.BlkPacketTable: + dw BlkPacket_986c, PalPacket_GSIntroShellderLapras + dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu + dw BlkPacket_986c, PalPacket_GSIntroBlastoise + +SGB_GFIntro: + ld hl, PalPacket_GFIntro + ld de, BlkPacket_986c + ld a, $08 + ld [wccd0], a + ret + +SGB_PikachuMinigame: + ld hl, PalPacket_PikachuMinigame + ld de, BlkPacket_986c + ret + +SGB_Poker: + ld hl, BlkPacket_986c + ld de, wc51a + ld bc, PALPACKET_LENGTH + call CopyBytes + ld hl, PalPacket_Poker + ld de, BlkPacket_986c + ret + +SGB_MapPals: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + call GetMapPalsIndex + ld hl, wcce2 + ld [hld], a + ld de, BlkPacket_986c + ld a, $09 + ld [wccd0], a + ret + +SGB_Evolution: + push bc + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + pop bc + ld a, c + and a + ld a, $0e + jr nz, .sub_9437 + ld a, [wccd1] + call Function956d + call Function957e +.sub_9437 + ld [wcce2], a + ld hl, wcce1 + ld de, BlkPacket_986c + ret + +SGB_TrainerCard: + ld hl, PalPacket_9a3c + ld de, BlkPacket_986c + ret + +SGB12: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld hl, BlkPacket_986c + ld de, wccf1 + ld bc, PALPACKET_LENGTH + call CopyBytes + call GetMapPalsIndex + ld hl, wcce2 + ld [hl], a + ld a, [wMonDexIndex] + call Function956d + ld hl, wcce4 + ld [hl], a + ld hl, wccf4 + ld a, $05 + ld [hli], a + ld a, [wMenuBorderLeftCoord] + ld [hli], a + ld a, [wMenuBorderTopCoord] + ld [hli], a + ld a, [wMenuBorderRightCoord] + ld [hli], a + ld a, [wMenuBorderBottomCoord] + ld [hl], a + ld hl, wcce1 + ld de, wccf1 + ret + +SGB_TrainerGear: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, $16 + ld [wcce2], a + ld a, $30 + ld [wcce4], a + ld hl, wcce1 + ld de, BlkPacket_TrainerGear + ret + +SGB_TrainerGearMap: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, $16 + ld [wcce2], a + ld a, $26 + ld [wcce4], a + ld hl, wcce1 + ld de, BlkPacket_TrainerGear + ret + +SGB_TrainerGearRadio: + ld hl, PalPacket_995c + ld de, wcce1 + ld bc, PALPACKET_LENGTH + call CopyBytes + ld a, $16 + ld [wcce2], a + ld a, $39 + ld [wcce4], a + ld hl, wcce1 + ld de, BlkPacket_TrainerGear + ret + +GetMapPalsIndex: + ld a, [wMapPermissions] + cp ROUTE + jr z, .is_route + cp CAVE + jr z, .is_cave + cp GATE + jr z, .is_gate + cp ENVIRONMENT_5 + jr z, .env5 + cp INDOOR + jr z, .indoors + call Function9527 + jr c, .sub_9524 + call Function9543 + ret + +.indoors + call Function9536 + jr c, .sub_9524 + call Function9543 + ret + +.is_route + call Function9527 + jr c, .sub_9524 + ld a, $00 + ret + +.is_cave + call Function9527 + jr c, .sub_9524 + ld a, $0c + ret + +.is_gate + ld a, $03 + ret + +.env5 + ld a, $04 + ret + +.sub_9524 + ld a, $0d + ret + +Function9527: + ld a, [wTimeOfDay] + and $03 + jr z, .sub_9534 + cp $03 + jr z, .sub_9534 + scf + ret +.sub_9534 + and a + ret + +Function9536: + ld a, [wTimeOfDay] + and $03 + cp $02 + jr nz, .sub_9541 + scf + ret +.sub_9541 + and a + ret + +Function9543: + ld a, [wMapGroup] + ld e, a + ld d, $00 + ld hl, Data954f + add hl, de + ld a, [hl] + ret + +Data954f: + db $01, $07, $0c, $03, $08, $06, $0b, $04 + db $05, $0a, $02, $03, $02, $02, $09, $01 + +_LoadSGBLayout_ReturnFromJumpTable: + push de + call PushSGBPals + pop hl + jp PushSGBPals + +Function9567: + bit 3, a + ld a, $18 + ret nz + ld a, [hl] + +Function956d: + and a + jr z, .sub_957a + ld e, a + ld d, $00 + ld hl, PokemonPalettes + add hl, de + ld a, [hl] + and a + ret +.sub_957a + ld a, $0f + scf + ret + +Function957e: + push bc + push af + ld hl, wPartyMon1DVs + ld a, [wWhichPokemon] + ld bc, $0030 + call AddNTimes + call Function95b0 + ld b, $00 + jr nc, .sub_9595 + ld b, $0a +.sub_9595 + pop af + add b + pop bc + ret + +Function9599: + push bc + push af + ld a, e + and a + ld a, [wcae1] + jr z, .sub_95a4 + srl a +.sub_95a4 + srl a + ld b, $00 + jr nc, .sub_95ac + ld b, $0a +.sub_95ac + pop af + add b + pop bc + ret + +Function95b0: + ld a, [hl] + cp $a0 + jr c, .sub_95ca + ld a, [hli] + and $0f + cp $0a + jr c, .sub_95ca + ld a, [hl] + cp $a0 + jr c, .sub_95ca + ld a, [hl] + and $0f + cp $0a + jr c, .sub_95ca + scf + ret +.sub_95ca + and a + ret + +Function95cc: + ld hl, wcddf + ldh a, [hBattleTurn] + and a + jr nz, .sub_95d7 + ld hl, wca08 +.sub_95d7 + call Function95b0 + ld hl, wcae1 + jr nc, .sub_95ec + ldh a, [hBattleTurn] + and a + jr nz, .sub_95e8 + set 0, [hl] + jr .sub_95f7 +.sub_95e8 + set 1, [hl] + jr .sub_95f7 +.sub_95ec + ldh a, [hBattleTurn] + and a + jr nz, .sub_95f5 + res 0, [hl] + jr .sub_95f7 +.sub_95f5 + res 1, [hl] +.sub_95f7 + ret + +Function95f8: + ld hl, BlkPacket_98fc + ld de, wcce2 + ld bc, $0030 + jp CopyBytes + +SGB_ApplyPartyMenuHPPals: + ld hl, wccd3 + ld a, [wcce1] + ld e, a + ld d, $00 + add hl, de + ld e, l + ld d, h + ld a, [de] + and a + ld e, $05 + jr z, .sub_961d + dec a + ld e, $0a + jr z, .sub_961d + ld e, $0f +.sub_961d + push de + ld hl, wcceb + ld bc, $0006 + ld a, [wcce1] + call AddNTimes + pop de + ld [hl], e + ret + +LoadMagikarpPalettes_Intro: + ld hl, PalPacket_MagikarpIntro + jp PushSGBPals + +LoadForestPalettes2_Intro: + ld hl, BlkPacket_986c + jp PushSGBPals + +LoadVenusaurPalettes_Intro: + ld hl, PalPacket_GSIntroVenusaur + jp PushSGBPals + +LoadCharizardPalettes_Intro: + ld hl, PalPacket_GSIntroCharizard + jp PushSGBPals + +Function9645: + ld hl, wc51a + jp PushSGBPals + +PushSGBPals: + ld a, [wJoypadFlags] + push af + set 7, a + ld [wJoypadFlags], a + call _PushSGBPals + pop af + ld [wJoypadFlags], a + ret + +_PushSGBPals: + ld a, [hl] + and $7 + ret z + ld b, a +.loop + push bc + xor a + ldh [rJOYP], a + ld a, $30 + ldh [rJOYP], a + ld b, $10 +.loop2 + ld e, $08 + ld a, [hli] + ld d, a +.loop3 + bit 0, d + ld a, $10 + jr nz, .ok + ld a, $20 +.ok + ldh [rJOYP], a + ld a, $30 + ldh [rJOYP], a + rr d + dec e + jr nz, .loop3 + dec b + jr nz, .loop2 + ld a, $20 + ldh [rJOYP], a + ld a, $30 + ldh [rJOYP], a + call SGBDelayCycles + pop bc + dec b + jr nz, .loop + ret + +CheckSGB: + ld a, [wJoypadFlags] + push af + set 7, a + ld [wJoypadFlags], a + + xor a + ldh [rJOYP], a + ld [wSGB], a + call PushSGBBorderPalsAndWait + jr nc, .skip + ld a, 1 + ld [wSGB], a + call _InitSGBBorderPals + call PushSGBBorder + call SGBBorder_PushBGPals + call SGB_ClearVRAM + ld hl, MaskEnCancelPacket + call _PushSGBPals +.skip + pop af + ld [wJoypadFlags], a + ret + +_InitSGBBorderPals: + ld hl, .PacketPointerTable + ld c, 9 + +.loop + push bc + ld a, [hli] + push hl + ld h, [hl] + ld l, a + call _PushSGBPals + pop hl + inc hl + pop bc + dec c + jr nz, .loop + ret + +.PacketPointerTable: + dw MaskEnFreezePacket + dw DataSndPacket1 + dw DataSndPacket2 + dw DataSndPacket3 + dw DataSndPacket4 + dw DataSndPacket5 + dw DataSndPacket6 + dw DataSndPacket7 + dw DataSndPacket8 + +UpdateSGBBorder: + ld a, [wSGB] + ret z + di + xor a + ldh [rJOYP], a + ld hl, MaskEnFreezePacket + call _PushSGBPals + call PushSGBBorder + ld hl, MaskEnCancelPacket + call _PushSGBPals + ei + ret + +PushSGBBorder: + call .LoadSGBBorderPointers + push de + call SGBBorder_YetMorePalPushing + pop hl + call SGBBorder_MorePalPushing + ret + +.LoadSGBBorderPointers: + ld a, [wce5f] + bit 3, a + jr nz, .spaceworld_border + +; load alternate border + ld hl, AlternateSGBBorderGFX + ld de, AlternateSGBBorderTilemap + ret + +.spaceworld_border + ld hl, SGBBorderGFX + ld de, SGBBorderTilemap + ret + +SGB_ClearVRAM: + ld hl, vChars0 + ld bc, $2000 + xor a + call ByteFill + ret + +PushSGBBorderPalsAndWait: + ld hl, MltReq2Packet + call _PushSGBPals + call SGBDelayCycles + ldh a, [rJOYP] + and $3 + cp $3 + jr nz, .carry + ld a, $20 + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + call SGBDelayCycles + call SGBDelayCycles + ld a, $30 + ldh [rJOYP], a + call SGBDelayCycles + call SGBDelayCycles + ld a, $10 + ldh [rJOYP], a +rept 6 + ldh a, [rJOYP] +endr + call SGBDelayCycles + call SGBDelayCycles + ld a, $30 + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + call SGBDelayCycles + call SGBDelayCycles + ldh a, [rJOYP] + and $3 + cp $3 + jr nz, .carry + call .FinalPush + and a + ret + +.carry + call .FinalPush + scf + ret + +.FinalPush: + ld hl, MltReq1Packet + call _PushSGBPals + jp SGBDelayCycles + +SGBBorder_PushBGPals: + call DisableLCD + ld a, %11100100 + ldh [rBGP], a + ld hl, SuperPalettes + ld de, vChars1 + ld bc, $1000 + call CopyData + call DrawDefaultTiles + ld a, $e3 + ldh [rLCDC], a + ld hl, PalTrnPacket + call _PushSGBPals + xor a + ldh [rBGP], a + ret + +SGBBorder_MorePalPushing: + call DisableLCD + ld a, %11100100 + ldh [rBGP], a + ld de, vChars1 + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData + ld b, SCREEN_HEIGHT +.loop + push bc + ld bc, 6 * 2 + call CopyData + ld bc, SCREEN_WIDTH * 2 + call ClearBytes + ld bc, 6 * 2 + call CopyData + pop bc + dec b + jr nz, .loop + ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2 + call CopyData + ld bc, $100 + call ClearBytes + ld bc, $80 + call CopyData + call DrawDefaultTiles + ld a, $e3 + ldh [rLCDC], a + ld hl, PctTrnPacket + call _PushSGBPals + xor a + ldh [rBGP], a + ret + +SGBBorder_YetMorePalPushing: + call DisableLCD + ld a, $e4 + ldh [rBGP], a + ld de, vChars1 + ld b, $80 +.loop + push bc + ld bc, $10 + call CopyData + ld bc, $10 + call ClearBytes + pop bc + dec b + jr nz, .loop + call DrawDefaultTiles + ld a, $e3 + ldh [rLCDC], a + ld hl, ChrTrnPacket + call _PushSGBPals + xor a + ldh [rBGP], a + ret + +CopyData: + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, CopyData + ret + +ClearBytes: + xor a + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, ClearBytes + ret + +DrawDefaultTiles: + hlbgcoord 0, 0 + ld de, BG_MAP_WIDTH - SCREEN_WIDTH + ld a, $80 + ld c, 12 + 1 +.line + ld b, SCREEN_WIDTH +.tile + ld [hli], a + inc a + dec b + jr nz, .tile + add hl, de + dec c + jr nz, .line + ret + +SGBDelayCycles: + ld de, 7000 +.wait + nop + nop + nop + dec de + ld a, d + or e + jr nz, .wait + ret + +INCLUDE "data/sgb/blk_packets.inc" +INCLUDE "data/sgb/pal_packets.inc" +INCLUDE "data/sgb/ctrl_packets.inc" diff --git a/engine/movie/game_freak_intro.asm b/engine/movie/game_freak_intro.asm index 9ae95c9b..e3474a2b 100644 --- a/engine/movie/game_freak_intro.asm +++ b/engine/movie/game_freak_intro.asm @@ -23,7 +23,7 @@ GameFreakIntro:: ld c, 10 call DelayFrames - ld b, SGB_GS_TITLE_SCREEN + ld b, SGB_GF_INTRO call GetSGBLayout callab IntroCopyRightInfo diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 2323d38b..8ddf2603 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -118,7 +118,7 @@ TitleSequenceInit:: ld a, " " call ByteFill - ld b, $06 + ld b, SGB_TITLE_SCREEN call GetSGBLayout call EnableLCD ld a, $01 diff --git a/engine/sprites/sprites.asm b/engine/sprites/sprites.asm index 1c97321a..87bf7b35 100644 --- a/engine/sprites/sprites.asm +++ b/engine/sprites/sprites.asm @@ -1,6 +1,195 @@ INCLUDE "constants.asm" -SECTION "engine/sprites/sprites.asm@LoadOverworldSprite", ROMX +SECTION "engine/sprites/sprites.asm@RefreshSprites", ROMX + +RefreshSprites: + call GetPlayerSprite + call CheckInteriorMap + jr c, .outdoor + call AddIndoorSprites + call LoadUsedSpritesGfx + ret +.outdoor + call AddOutdoorSprites + call LoadUsedSpritesGfx + ret + +CheckInteriorMap: + call GetMapEnvironment + cp TOWN + jr z, .got_outdoor + cp ROUTE + jr z, .got_outdoor + xor a + ret +.got_outdoor + scf + ret + +AddIndoorSprites: + ld hl, wUsedNPCSprites + ld bc, SPRITE_SET_LENGTH + xor a + call ByteFill + ld a, [wPlayerObjectSprite] + ld [wUsedSprites], a + ld hl, wMap2ObjectSprite + ld a, 2 +.asm_14070 + push af + ld a, [hl] + and a + jr z, .asm_1408d + ld c, a + call IsAnimatedSprite + jr nc, .static_sprite + ld de, wUsedStaticSprites + ld b, 2 + call Function14099 + jr .asm_1408d +.static_sprite + ld de, wUsedNPCSprites + ld b, 8 + call Function14099 +.asm_1408d + ld de, $10 + add hl, de + pop af + inc a + cp $10 + jp nz, .asm_14070 + ret + +Function14099: +.loop + ld a, [de] + and a + jr z, .asm_140a5 + cp c + ret z + dec b + jr z, .asm_140a8 + inc de + jr .loop + +.asm_140a5 + ld a, c + ld [de], a + ret + +.asm_140a8 + scf + ret + + +AddOutdoorSprites: + ld a, [wPlayerObjectSprite] + ld [wUsedSprites], a + ld a, [wMapGroup] + dec a + ld c, a + ld b, 0 + ld hl, MapGroupSpriteSets + add hl, bc + ld a, [hl] + push af + dec a + ld hl, SpriteSets + ld bc, SPRITE_SET_LENGTH + call AddNTimes + ld de, wUsedNPCSprites + ld bc, SPRITE_SET_LENGTH + call CopyBytes + ld a, [wd642] + ld c, a + pop af + ld [wd642], a + ret + +Function140d9: + ld hl, wcdaf + ld a, [hl] + push af + res 7, [hl] + set 6, [hl] + call LoadUsedSpritesGfx + pop af + ld [wcdaf], a + ret + +Function140ea: + ld hl, wcdaf + ld a, [hl] + push af + set 7, [hl] + res 6, [hl] + call LoadUsedSpritesGfx + pop af + ld [wcdaf], a + ret + +LoadUsedSpritesGfx: + ld hl, vNPCSprites + ld de, wUsedSprites + ld b, SPRITE_SET_LENGTH + ld c, 0 +.asm_14105 + push bc + push de + push hl + ld a, [de] + and a + jr z, .asm_1410f + call LoadOverworldSprite +.asm_1410f + pop hl + ld bc, $c0 + add hl, bc + pop de + inc de + pop bc + inc c + dec b + jr nz, .asm_14105 + ld a, [de] + and a + jr z, .asm_14127 + push de + ld hl, vNPCSprites + $780 + call LoadOverworldSprite + pop de +.asm_14127 + inc de + ld a, [de] + and a + jr z, .asm_14132 + ld hl, vNPCSprites + $7c0 + call LoadOverworldSprite +.asm_14132 + ret + +Function14133: + swap b + ld a, b + and $f0 + ld e, a + ld a, b + and $f + ld d, a + ld hl, vNPCSprites + add hl, de + ld a, c + jr LoadOverworldSprite + +Function14144: + ld a, c + ld hl, vNPCSprites + jr LoadOverworldSprite + +Function1414a: + ld a, c + ld hl, vNPCSprites + $c0 + jr LoadOverworldSprite LoadOverworldSprite: push af @@ -52,104 +241,3 @@ GetOverworldSpriteData: ld b, [hl] pop hl ret - -SECTION "engine/sprites/sprites.asm@OverworldSprites", ROMX - -overworld_sprite: MACRO -; pointer, length, bank - dw \1 - db \2 tiles, BANK(\1) -ENDM - -OverworldSprites:: - overworld_sprite GoldSpriteGFX, 12 - overworld_sprite GoldBikeSpriteGFX, 12 - overworld_sprite GoldSkateboardSpriteGFX, 12 - overworld_sprite SilverSpriteGFX, 12 - overworld_sprite OkidoSpriteGFX, 12 - overworld_sprite RedSpriteGFX, 12 - overworld_sprite BlueSpriteGFX, 12 - overworld_sprite MasakiSpriteGFX, 12 - overworld_sprite ElderSpriteGFX, 12 - overworld_sprite SakakiSpriteGFX, 12 - overworld_sprite GantetsuSpriteGFX, 12 - overworld_sprite MomSpriteGFX, 12 - overworld_sprite SilversMomSpriteGFX, 12 - overworld_sprite RedsMomSpriteGFX, 12 - overworld_sprite RedsMomSpriteGFX, 12 - overworld_sprite NanamiSpriteGFX, 12 - overworld_sprite EvilOkidoSpriteGFX, 12 - overworld_sprite KikukoSpriteGFX, 12 - overworld_sprite HayatoSpriteGFX, 12 - overworld_sprite TsukushiSpriteGFX, 12 - overworld_sprite TsukushiSpriteGFX, 12 - overworld_sprite EnokiSpriteGFX, 12 - overworld_sprite MikanSpriteGFX, 12 - overworld_sprite MikanSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerMSpriteGFX, 12 - overworld_sprite CooltrainerFSpriteGFX, 12 - overworld_sprite BugCatcherBoySpriteGFX, 12 - overworld_sprite TwinSpriteGFX, 12 - overworld_sprite YoungsterSpriteGFX, 12 - overworld_sprite LassSpriteGFX, 12 - overworld_sprite TeacherSpriteGFX, 12 - overworld_sprite GirlSpriteGFX, 12 - overworld_sprite SuperNerdSpriteGFX, 12 - overworld_sprite RockerSpriteGFX, 12 - overworld_sprite PokefanMSpriteGFX, 12 - overworld_sprite PokefanFSpriteGFX, 12 - overworld_sprite GrampsSpriteGFX, 12 - overworld_sprite GrannySpriteGFX, 12 - overworld_sprite SwimmerMSpriteGFX, 12 - overworld_sprite SwimmerFSpriteGFX, 12 - overworld_sprite RocketMSpriteGFX, 12 - overworld_sprite RocketMSpriteGFX, 12 - overworld_sprite RocketMSpriteGFX, 12 - overworld_sprite RocketFSpriteGFX, 12 - overworld_sprite NurseSpriteGFX, 12 - overworld_sprite LinkReceptionistSpriteGFX, 12 - overworld_sprite ClerkSpriteGFX, 12 - overworld_sprite FisherSpriteGFX, 12 - overworld_sprite FishingGuruSpriteGFX, 12 - overworld_sprite ScientistSpriteGFX, 12 - overworld_sprite MediumSpriteGFX, 12 - overworld_sprite SageSpriteGFX, 12 - overworld_sprite FrowningManSpriteGFX, 12 - overworld_sprite GentlemanSpriteGFX, 12 - overworld_sprite BlackbeltSpriteGFX, 12 - overworld_sprite ReceptionistSpriteGFX, 12 - overworld_sprite OfficerSpriteGFX, 12 - overworld_sprite CaptainSpriteGFX, 12 - overworld_sprite CaptainSpriteGFX, 12 - overworld_sprite CaptainSpriteGFX, 12 - overworld_sprite MohawkSpriteGFX, 12 - overworld_sprite GymGuySpriteGFX, 12 - overworld_sprite SailorSpriteGFX, 12 - overworld_sprite HelmetSpriteGFX, 12 - overworld_sprite BurglarSpriteGFX, 12 - overworld_sprite RhydonSpriteGFX, 12 - overworld_sprite ClefairySpriteGFX, 12 - overworld_sprite PidgeySpriteGFX, 12 - overworld_sprite CharizardSpriteGFX, 12 - overworld_sprite SnorlaxSpriteGFX, 4 - overworld_sprite SeelSpriteGFX, 12 - overworld_sprite PoliwrathSpriteGFX, 12 - overworld_sprite LaprasSpriteGFX, 12 - overworld_sprite PokeBallSpriteGFX, 4 - overworld_sprite PokedexSpriteGFX, 4 - overworld_sprite PaperSpriteGFX, 4 - overworld_sprite OldLinkReceptionistSpriteGFX, 4 - overworld_sprite OldLinkReceptionistSpriteGFX, 4 - overworld_sprite EggSpriteGFX, 4 - overworld_sprite BoulderSpriteGFX, 4 diff --git a/engine/trainer_gear.asm b/engine/trainer_gear.asm index 32e3a912..e7ef0db4 100644 --- a/engine/trainer_gear.asm +++ b/engine/trainer_gear.asm @@ -89,7 +89,7 @@ TrainerGear_Init: call ClearBGPalettes call DisableLCD call ClearSprites - ld b, SGB_TRAINER_GEAR + ld b, SGB_TRAINERGEAR call GetSGBLayout ld hl, TrainerGearGFX @@ -282,7 +282,7 @@ TrainerGear_Map: call TrainerGear_Next call TrainerGear_ClearView call WaitForAutoBgMapTransfer - ld b, SGB_PACKPALS + ld b, SGB_TRAINERGEAR_MAP call GetSGBLayout ld de, TownMapGFX ld hl, vTilesetEnd @@ -312,7 +312,7 @@ TrainerGear_Radio: call TrainerGear_Next call TrainerGear_ClearView call WaitForAutoBgMapTransfer - ld b, SGB_TRAINER_CARD + ld b, SGB_TRAINERGEAR_RADIO call GetSGBLayout ld de, RadioGFX @@ -595,7 +595,7 @@ TrainerGear_Phone: call TrainerGear_Next call TrainerGear_ClearView call WaitForAutoBgMapTransfer - ld b, SGB_TRAINER_GEAR + ld b, SGB_TRAINERGEAR call GetSGBLayout call LoadFontExtra ld de, .OutOfRangeText diff --git a/gfx/gfx.asm b/gfx/gfx.asm index 6af0a860..6e00551f 100644 --- a/gfx/gfx.asm +++ b/gfx/gfx.asm @@ -33,16 +33,22 @@ INCBIN "gfx/title/titlebgdecoration.2bpp" SECTION "gfx.asm@SGB GFX", ROMX INCLUDE "data/pokemon/palettes.inc" -INCLUDE "data/super_palettes.inc" +INCLUDE "data/sgb/super_palettes.inc" -Corrupted9e1cGFX: -INCBIN "slack/corrupted_9e1c.2bpp" +AlternateSGBBorderTilemap:: +INCBIN "gfx/sgb/sgb_border_alt.sgb.tilemap" -UnusedSGBBorderGFX:: +AlternateSGBBorderPalettes: +INCLUDE "gfx/sgb/sgb_border_alt.pal" + +AlternateSGBBorderGFX:: INCBIN "gfx/sgb/sgb_border_alt.2bpp" -Corrupteda66cGFX: -INCBIN "slack/corrupted_a66c.2bpp" +SGBBorderTilemap:: +INCBIN "gfx/sgb/sgb_border.sgb.tilemap" + +SGBBorderPalettes: +INCLUDE "gfx/sgb/sgb_border.pal" SGBBorderGFX:: if DEF(GOLD) diff --git a/gfx/sgb/sgb_border.bin b/gfx/sgb/sgb_border.bin new file mode 100644 index 00000000..8223c68f Binary files /dev/null and b/gfx/sgb/sgb_border.bin differ diff --git a/gfx/sgb/sgb_border.pal b/gfx/sgb/sgb_border.pal new file mode 100644 index 00000000..a2613dba --- /dev/null +++ b/gfx/sgb/sgb_border.pal @@ -0,0 +1,80 @@ + RGB 24, 6, 6 + RGB 0, 0, 0 + RGB 31, 31, 29 + RGB 31, 26, 15 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 31, 26, 15 + RGB 31, 12, 0 + RGB 0, 0, 0 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 6, 31 + RGB 26, 28, 31 + RGB 19, 20, 23 + RGB 0, 0, 0 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 12, 31, 6 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + RGB 18, 24, 18 + diff --git a/gfx/sgb/sgb_border_alt.bin b/gfx/sgb/sgb_border_alt.bin new file mode 100644 index 00000000..5ad4fb00 Binary files /dev/null and b/gfx/sgb/sgb_border_alt.bin differ diff --git a/gfx/sgb/sgb_border_alt.pal b/gfx/sgb/sgb_border_alt.pal new file mode 100644 index 00000000..acae6d60 --- /dev/null +++ b/gfx/sgb/sgb_border_alt.pal @@ -0,0 +1,80 @@ + RGB 24, 6, 6 + RGB 24, 24, 26 + RGB 14, 15, 20 + RGB 4, 7, 10 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 18, 24, 18 + RGB 31, 26, 15 + RGB 26, 19, 10 + RGB 12, 7, 5 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 18, 6, 31 + RGB 31, 31, 29 + RGB 31, 12, 0 + RGB 0, 0, 0 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 12, 31, 6 + RGB 22, 26, 30 + RGB 16, 17, 21 + RGB 0, 3, 0 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + RGB 31, 31, 25 + diff --git a/home/audio.asm b/home/audio.asm index 508a7290..d79435ec 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -82,10 +82,10 @@ PlayCryHeader:: ldh a, [hROMBank] push af - ld a, BANK(CryHeaders) + ld a, BANK(PokemonCries) ld [MBC3RomBank], a ; Unsafe ldh [hROMBank], a - ld hl, CryHeaders + ld hl, PokemonCries rept 6 add hl, de endr diff --git a/home/cry.asm b/home/cry.asm index 994bc29a..706187b6 100644 --- a/home/cry.asm +++ b/home/cry.asm @@ -33,9 +33,9 @@ LoadCryHeader:: call GetCryIndex ldh a, [hROMBank] push af - ld a, BANK(CryHeaders) + ld a, BANK(PokemonCries) call Bankswitch - ld hl, CryHeaders + ld hl, PokemonCries add hl, bc add hl, bc add hl, bc diff --git a/home/tilemap.asm b/home/tilemap.asm index 3146db16..c9b5ae16 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -42,7 +42,7 @@ GetSGBLayout:: ld a, [wSGB] and a ret z - predef_jump Function928b + predef_jump LoadSGBLayout SetHPPal:: ld a, e diff --git a/layout.link b/layout.link index 402e9544..80c370ba 100644 --- a/layout.link +++ b/layout.link @@ -127,9 +127,9 @@ ROMX $02 "engine/trainer_gear.asm@OpenTrainerGear" "gfx.asm@Trainer Gear GFX" "engine/trainer_gear.asm@TrainerGear_RadioText" - "engine/dumps/bank02.asm@SetTitleBGDecorationBorder" + "engine/gfx/set_title_decoration.asm" "gfx.asm@Title Screen BG Decoration Border" - "engine/dumps/bank02.asm@Function928b" + "engine/gfx/sgb_layouts.asm" "gfx.asm@SGB GFX" "slack.asm@Unknownaebc" "slack.asm@Corrupted SGB GFX" @@ -178,10 +178,10 @@ ROMX $04 ROMX $05 org $4000 "engine/overworld/player_movement.asm@_RedrawPlayerSprite" - org $4150 - "engine/sprites/sprites.asm@LoadOverworldSprite" - org $423b - "engine/sprites/sprites.asm@OverworldSprites" + org $4036 + "engine/sprites/sprites.asm@RefreshSprites" + "data/maps/sprite_sets.asm" + "data/overworld_sprites.asm" org $477d "engine/events/pokecenter_pc.asm" @@ -914,8 +914,8 @@ ROMX $3a org $4000 "audio/engine.asm" "audio/songs/none.asm" - "audio/cries.asm@Cry Header Pointers" - "audio/sfx.asm@SFX Pointers" + "audio/cry_pointers.asm" + "audio/sfx_pointers.asm" ROMX $3b org $4000 @@ -933,14 +933,15 @@ ROMX $3b ROMX $3c org $4000 - org $51cb - "audio/cries.asm@Cries" - org $62fe + org $43be + "audio/sfx.asm" + "data/pokemon/cries.asm" + "audio/cries.asm" "audio/songs/title.asm" ROMX $3e org $4000 - "engine/gfx.asm" + "engine/gfx/load_gfx.asm" "gfx.asm@Misc GFX" ROMX $3f diff --git a/ram/wram.asm b/ram/wram.asm index 57b563b0..8683cc80 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -1519,16 +1519,19 @@ SECTION "D637", WRAM0[$D637] wd637:: db ;OW battle state? $3 wild battle, $8 is trainer battle $4 is left battle, $B is load overworld? $0 is in overworld wd638:: db ;wd637's last written-to value -SECTION "Used sprites", WRAM0[$D643] - +SECTION "Used sprites", WRAM0[$D642] +wd642:: db wBGMapAnchor:: dw wUsedSprites:: - dw ; This is for the player + ds 2 wUsedNPCSprites:: - ds 2 * 5 ; This is for the NPCs + ds 8 + +wUsedStaticSprites:: + ds 2 wUsedSpritesEnd:: diff --git a/shim.sym b/shim.sym index cabc416c..e44f4a5f 100755 --- a/shim.sym +++ b/shim.sym @@ -1,10 +1,3 @@ -05:4036 RefreshSprites -05:404C CheckInteriorMap -05:405B AddIndoorSprites -05:40AA AddOutdoorSprites -05:40D9 Function140d9 -05:40EA Function140ea -05:40FB LoadUsedSpritesGfx ; TODO: maybe there's a better name 05:43B6 InitAllSRAMBanks 05:43E0 Function143e0 05:457A Function1457a @@ -126,158 +119,6 @@ 38:4E5F Cursor_AnimateCursor 38:4EA8 Cursor_InterpretJoypad -; SFX shims -3C:43BE Sfx_01 -3C:43C1 Sfx_02 -3C:43C4 Sfx_03 -3C:43C7 Sfx_04 -3C:43CA Sfx_05 -3C:43CA Sfx_06 -3C:43CD Sfx_07 -3C:43D0 Sfx_08 -3C:43D3 Sfx_09 -3C:43D6 Sfx_0a -3C:43D9 Sfx_0b -3C:43DC Sfx_0c -3C:43DF Sfx_0d -3C:43E2 Sfx_0e -3C:43E5 Sfx_0f -3C:43E8 Sfx_10 -3C:43EB Sfx_11 -3C:43EE Sfx_12 -3C:43F1 Sfx_13 -3C:43F4 Sfx_14 -3C:43F7 Sfx_15 -3C:43FD Sfx_16 -3C:4400 Sfx_17 -3C:4403 Sfx_18 -3C:4409 Sfx_19 -3C:440C Sfx_1a -3C:440F Sfx_1b -3C:4412 Sfx_1c -3C:4418 Sfx_1d -3C:441E Sfx_1e -3C:4424 Sfx_1f -3C:4427 Sfx_20 -3C:442A Sfx_21 -3C:4430 Sfx_22 -3C:4433 Sfx_23 -3C:4436 Sfx_24 -3C:443C Sfx_25 -3C:4442 Sfx_26 -3C:4448 Sfx_27 -3C:444B Sfx_28 -3C:4451 Sfx_29 -3C:4454 Sfx_2a -3C:4457 Sfx_2b -3C:445A Sfx_2c -3C:445D Sfx_2d -3C:4460 Sfx_2e -3C:4463 Sfx_2f -3C:4466 Sfx_30 -3C:4469 Sfx_31 -3C:446F Sfx_32 -3C:4472 Sfx_33 -3C:4475 Sfx_34 -3C:4478 Sfx_35 -3C:447B Sfx_36 -3C:447E Sfx_37 -3C:4481 Sfx_38 -3C:4484 Sfx_39 -3C:4487 Sfx_3a -3C:448A Sfx_3b -3C:448D Sfx_3c -3C:4490 Sfx_3d -3C:4493 Sfx_3e -3C:4496 Sfx_3f -3C:4499 Sfx_40 -3C:449C Sfx_41 -3C:449F Sfx_42 -3C:44A2 Sfx_43 -3C:44A5 Sfx_44 -3C:44A8 Sfx_45 -3C:44AB Sfx_46 -3C:44AE Sfx_47 -3C:44B1 Sfx_48 -3C:44B4 Sfx_49 -3C:44B7 Sfx_4a -3C:44BD Sfx_4b -3C:44C0 Sfx_4c -3C:44C3 Sfx_4d -3C:44C6 Sfx_4e -3C:44C9 Sfx_4f -3C:44CC Sfx_50 -3C:44D2 Sfx_51 -3C:44D5 Sfx_52 -3C:44D8 Sfx_53 -3C:44E1 Sfx_54 -3C:44EA Sfx_55 -3C:44F0 Sfx_56 -3C:44F9 Sfx_57 -3C:44FF Sfx_58 -3C:4508 Sfx_59 -3C:4511 Sfx_5a -3C:451A Sfx_5b -3C:4523 Sfx_5c -3C:452C Sfx_5d -3C:4532 Sfx_5e -3C:4538 Sfx_5f -3C:453E Sfx_60 -3C:4547 Sfx_61 -3C:454D Sfx_62 -3C:4556 Sfx_63 -3C:4559 Sfx_64 -3C:4562 Sfx_65 -3C:456B Sfx_66 -3C:4574 Sfx_67 -3C:457D Sfx_68 -3C:4586 Sfx_69 -3C:458F Sfx_6a -3C:4598 Sfx_6b -3C:45A1 Sfx_6c - -; Cry header shims -3C:57C5 CryHeader_f17c5 -3C:57CE CryHeader_f17ce -3C:57D7 CryHeader_f17d7 -3C:57E0 CryHeader_f17e0 -3C:57E9 CryHeader_f17e9 -3C:57F2 CryHeader_f17f2 -3C:57FB CryHeader_f17fb -3C:5804 CryHeader_f1804 -3C:580D CryHeader_f180d -3C:5816 CryHeader_f1816 -3C:581F CryHeader_f181f -3C:5828 CryHeader_f1828 -3C:5831 CryHeader_f1831 -3C:583A CryHeader_f183a -3C:5843 CryHeader_f1843 -3C:584C CryHeader_f184c -3C:5855 CryHeader_f1855 -3C:585E CryHeader_f185e -3C:5867 CryHeader_f1867 -3C:5870 CryHeader_f1870 -3C:5879 CryHeader_f1879 -3C:5882 CryHeader_f1882 -3C:588B CryHeader_f188b -3C:5894 CryHeader_f1894 -3C:589D CryHeader_f189d -3C:58A6 CryHeader_f18a6 -3C:58AF CryHeader_f18af -3C:58B8 CryHeader_f18b8 -3C:58C1 CryHeader_f18c1 -3C:58CA CryHeader_f18ca -3C:58D3 CryHeader_f18d3 -3C:58DC CryHeader_f18dc -3C:58E5 CryHeader_f18e5 -3C:58EE CryHeader_f18ee -3C:58F7 CryHeader_f18f7 -3C:5900 CryHeader_f1900 -3C:5909 CryHeader_f1909 -3C:5912 CryHeader_f1912 - -3E:40D6 Functionf80d6 - 3F:40E9 InGameDebugMenu 3F:4C24 Functionfcc24 3F:4E3E Functionfce3e diff --git a/slack/corrupted_9e1c.png b/slack/corrupted_9e1c.png deleted file mode 100644 index f1240317..00000000 Binary files a/slack/corrupted_9e1c.png and /dev/null differ diff --git a/slack/corrupted_a66c.png b/slack/corrupted_a66c.png deleted file mode 100644 index a8bab25e..00000000 Binary files a/slack/corrupted_a66c.png and /dev/null differ diff --git a/slack/slack.mk b/slack/slack.mk index 0a752c75..6cfced84 100644 --- a/slack/slack.mk +++ b/slack/slack.mk @@ -1,4 +1,2 @@ -$(BUILD)/slack/corrupted_9e1c.2bpp: tools/gfx += --trim-whitespace -$(BUILD)/slack/corrupted_a66c.2bpp: tools/gfx += --trim-whitespace $(BUILD)/slack/corrupted_b1e3.2bpp: tools/gfx += --trim-whitespace $(BUILD)/slack/sgb_border_gold_corrupted.2bpp: tools/gfx += --trim-whitespace