diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2021-06-15 08:08:11 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-15 08:08:11 -0400 |
commit | 6bb16d44745f760a8bbeacbcbd5dec1ce274d60b (patch) | |
tree | 0d53ba6d230cabcbb94a98ab9288c8edad11bd92 | |
parent | 099279a65aae4519a3941a47116e16924149ac4f (diff) | |
parent | 4e497acf92be923b9aa5794d5aa824589bba396d (diff) |
Merge pull request #823 from PikalaxALT/push_symbols
Use github workflows instead of travis; make symfiles; fix debug modern builds
-rwxr-xr-x | .github/calcrom/calcrom.pl (renamed from .travis/calcrom/calcrom.pl) | 0 | ||||
-rwxr-xr-x | .github/calcrom/webhook.sh (renamed from .travis/calcrom/webhook.sh) | 0 | ||||
-rw-r--r-- | .github/workflows/build.yml | 105 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 23 | ||||
-rw-r--r-- | src/battle_main.c | 10 | ||||
-rw-r--r-- | src/cable_club.c | 4 | ||||
-rw-r--r-- | src/debug/start_menu_debug.c | 12 |
8 files changed, 142 insertions, 13 deletions
diff --git a/.travis/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 1bc8bc74b..1bc8bc74b 100755 --- a/.travis/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl diff --git a/.travis/calcrom/webhook.sh b/.github/calcrom/webhook.sh index 86da74c87..86da74c87 100755 --- a/.travis/calcrom/webhook.sh +++ b/.github/calcrom/webhook.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..5ea79be17 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,105 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + +jobs: + build: + runs-on: ubuntu-18.04 + steps: + - name: Checkout + uses: actions/checkout@master + + - name: Checkout DE + uses: actions/checkout@master + with: + path: 'build_de' + + - name: Checkout Symbols + uses: actions/checkout@master + with: + path: 'symbols' + ref: symbols + + - name: Install binutils + run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi + # build-essential, git, and libpng-dev are already installed + # gcc-arm-none-eabi is only needed for the modern build + # as an alternative to dkP + + - name: Install agbcc + run: | + git clone https://github.com/pret/agbcc.git + cd agbcc + ./build.sh + ./install.sh ../ + ./install.sh ../build_de + + - name: Compare + run: | + make -j${nproc} compare_ruby + make -j${nproc} compare_ruby_debug + make -j${nproc} compare_ruby_rev1 + make -j${nproc} compare_ruby_rev2 + make -j${nproc} compare_sapphire + make -j${nproc} compare_sapphire_debug + make -j${nproc} compare_sapphire_rev1 + make -j${nproc} compare_sapphire_rev2 + mv *.sym symbols + + - name: Modern + run: | + make -j${nproc} ruby_modern + make -j${nproc} ruby_debug_modern + make -j${nproc} ruby_rev1_modern + make -j${nproc} ruby_rev2_modern + make -j${nproc} sapphire_modern + make -j${nproc} sapphire_debug_modern + make -j${nproc} sapphire_rev1_modern + make -j${nproc} sapphire_rev2_modern + mv *.sym symbols + + - name: German Before + run: | + cd build_de + sh de_before.sh + + - name: German + run: | + cd build_de + make -j${nproc} compare_ruby_de + make -j${nproc} compare_ruby_de_debug + make -j${nproc} compare_ruby_de_rev1 + make -j${nproc} compare_sapphire_de + make -j${nproc} compare_sapphire_de_debug + make -j${nproc} compare_sapphire_de_rev1 + mv *.sym ../symbols + + - name: German Modern + run: | + cd build_de + make -j${nproc} ruby_de_modern + make -j${nproc} ruby_de_debug_modern + make -j${nproc} ruby_de_rev1_modern + make -j${nproc} sapphire_de_modern + make -j${nproc} sapphire_de_debug_modern + make -j${nproc} sapphire_de_rev1_modern + mv *.sym ../symbols + + - name: Webhook + if: ${{ github.event_name == 'push' }} + env: + CALCROM_DISCORD_WEBHOOK_USERNAME: OK + CALCROM_DISCORD_WEBHOOK_AVATAR_URL: https://i.imgur.com/38BQHdd.png + CALCROM_DISCORD_WEBHOOK_URL: ${{ secrets.CALCROM_DISCORD_WEBHOOK_URL }} + run: sh .github/calcrom/webhook.sh pokeruby + + - name: Update symfiles + if: ${{ github.event_name == 'push' }} + uses: EndBug/add-and-commit@v7 + with: + branch: symbols + cwd: "./symbols" + add: "*.sym" diff --git a/.gitignore b/.gitignore index 64c9e3230..635e310a1 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ tools/agbcc ld_script_ruby.txt ld_script_sapphire.txt *.map +*.sym *.id0 *.id1 *.id2 @@ -7,6 +7,8 @@ OBJCOPY := $(PREFIX)objcopy CC := $(PREFIX)gcc AS := $(PREFIX)as endif +NM := $(PREFIX)nm +OBJDUMP := $(PREFIX)objdump include config.mk ifeq ($(OS),Windows_NT) @@ -60,6 +62,8 @@ endif ROM := poke$(BUILD_NAME).gba MAP := $(ROM:%.gba=%.map) +ELF := $(ROM:%.gba=%.elf) +SYM := $(ROM:%.gba=%.sym) BUILD_DIR := build/$(BUILD_NAME) @@ -79,9 +83,7 @@ GCC_VER = $(shell $(CC) -dumpversion) ifeq ($(MODERN),0) LIBDIRS := ../../tools/agbcc/lib else -LIBDIRS := \ - $(TOOLCHAIN)/lib/gcc/arm-none-eabi/$(GCC_VER)/thumb \ - $(TOOLCHAIN)/arm-none-eabi/lib/thumb +LIBDIRS := -L $(shell dirname $(shell $(CC) --print-file-name=libgcc.a)) -L $(shell dirname $(shell $(CC) --print-file-name=libc.a)) endif LDFLAGS := $(LIBDIRS:%=-L %) -lgcc -lc @@ -109,7 +111,7 @@ ALL_BUILDS := ruby ruby_debug ruby_rev1 ruby_rev2 sapphire sapphire_debug sapphi MODERN_BUILDS := $(ALL_BUILDS:%=%_modern) # Available targets -.PHONY: all clean mostlyclean tidy tools $(ALL_BUILDS) +.PHONY: all clean mostlyclean tidy tools syms $(ALL_BUILDS) infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) @@ -144,13 +146,15 @@ $(shell mkdir -p $(SUBDIRS)) AUTO_GEN_TARGETS := -all: $(ROM) +all: $(ROM) $(SYM) ifeq ($(COMPARE),1) @$(SHA1SUM) $(BUILD_NAME).sha1 endif compare: ; @$(MAKE) COMPARE=1 +syms: $(SYM) + mostlyclean: tidy find sound/direct_sound_samples \( -iname '*.bin' \) -exec rm {} + $(RM) $(ALL_OBJECTS) @@ -237,7 +241,7 @@ ruby_debug_modern: ; @$(MAKE) GAME_VERSION=RUBY DEBUG=1 MODERN=1 ruby_rev1_modern: ; @$(MAKE) GAME_VERSION=RUBY GAME_REVISION=1 MODERN=1 ruby_rev2_modern: ; @$(MAKE) GAME_VERSION=RUBY GAME_REVISION=2 MODERN=1 sapphire_modern: ; @$(MAKE) GAME_VERSION=SAPPHIRE MODERN=1 -sappphire_debug_modern: ; @$(MAKE) GAME_VERSION=SAPPHIRE DEBUG=1 MODERN=1 +sapphire_debug_modern: ; @$(MAKE) GAME_VERSION=SAPPHIRE DEBUG=1 MODERN=1 sapphire_rev1_modern: ; @$(MAKE) GAME_VERSION=SAPPHIRE GAME_REVISION=1 MODERN=1 sapphire_rev2_modern: ; @$(MAKE) GAME_VERSION=SAPPHIRE GAME_REVISION=2 MODERN=1 ruby_de_modern: ; @$(MAKE) GAME_VERSION=RUBY GAME_LANGUAGE=GERMAN MODERN=1 @@ -293,3 +297,10 @@ sound/%.bin: sound/%.aif sound/songs/%.s: sound/songs/%.mid cd $(@D) && ../../$(MID2AGB) $(<F) + +################### +### Symbol file ### +################### + +$(SYM): $(ELF) + $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" > $@ diff --git a/src/battle_main.c b/src/battle_main.c index 040d42ef9..e41b2a114 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1393,11 +1393,11 @@ void debug_sub_80132C8(u8, void *, u32); extern s16 gUnknown_Debug_2023A76[][35]; extern s16 gUnknown_Debug_2023B02[][6][4]; -extern u8 gUnknown_Debug_03004360; -extern struct Window gUnknown_Debug_03004370; -extern u8 gUnknown_Debug_030043A0; -extern u8 gUnknown_Debug_030043A4; -extern u8 gUnknown_Debug_030043A8; +u8 gUnknown_Debug_03004360; +struct Window gUnknown_Debug_03004370; +u8 gUnknown_Debug_030043A0; +u8 gUnknown_Debug_030043A4; +u8 gUnknown_Debug_030043A8; extern u8 gBattleBuffersTransferData[]; extern const u16 gUnknown_Debug_821F424[][5]; diff --git a/src/cable_club.c b/src/cable_club.c index 115f02d81..aeae50f50 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -975,8 +975,8 @@ void sub_8083C50(u8 taskId) } #if DEBUG -extern u16 unk_3004E94; -extern u32 unk_3004E98; +u16 unk_3004E94; +u32 unk_3004E98; static void debug_sub_808B7A8(u8); diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c index 2f100069d..1501fdd49 100644 --- a/src/debug/start_menu_debug.c +++ b/src/debug/start_menu_debug.c @@ -50,6 +50,18 @@ extern void Debug_SetUpFieldMove_Cut(void); extern void Debug_SetUpFieldMove_SecretPower(void); +#if (ENGLISH && REVISION == 0) +#define TYPE u8 +#else +#define TYPE u32 +#endif + +TYPE gUnknown_Debug_03004BD0; +#if (ENGLISH && REVISION == 0) +TYPE gUnknown_Debug_Murakawa2; +#endif +#undef TYPE + void debug_sub_8076BB4(u8); void DebugMenu_DisplayBuildDate(u8 x, u8 y); void DebugMenu_DisplayContinuousDate(u8 x, u8 y); |