diff options
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | include/global.h | 14 | ||||
-rw-r--r-- | src/battle_transition.c | 4 |
4 files changed, 21 insertions, 8 deletions
@@ -30,8 +30,7 @@ LDFLAGS = -Map ../../$(MAP) OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy -LIBGCC := tools/agbcc/lib/libgcc.a -LIBC := tools/agbcc/lib/libc.a +LIB := -L ../../tools/agbcc/lib -lgcc -lc SHA1 := sha1sum -c @@ -163,7 +162,7 @@ $(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_comm cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" > ld_script.ld $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) - cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) ../../$(LIBGCC) ../../$(LIBC) + cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) $(ROM): $(ELF) $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@ @@ -1,12 +1,14 @@ # Pokémon Emerald +[![Build Status][travis-badge]][travis] + This is a disassembly of Pokémon Emerald. It builds the following rom: * pokeemerald.gba `sha1: f3ae088181bf583e55daf962a92bb46f4f1d07b7` -To set up the repository, see [**INSTALL.md**](INSTALL.md). +To set up the repository, see [INSTALL.md](INSTALL.md). ## See also @@ -32,3 +34,5 @@ To set up the repository, see [**INSTALL.md**](INSTALL.md). [pokefirered]: https://github.com/pret/pokefirered [Discord]: https://discord.gg/cJxDDVP [irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret +[travis]: https://travis-ci.org/pret/pokeemerald +[travis-badge]: https://travis-ci.org/pret/pokeemerald.svg?branch=master diff --git a/include/global.h b/include/global.h index 3e260fd2a..9f6c45df1 100644 --- a/include/global.h +++ b/include/global.h @@ -1,6 +1,7 @@ #ifndef GUARD_GLOBAL_H #define GUARD_GLOBAL_H +#include <string.h> #include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines. #include "gba/gba.h" @@ -11,11 +12,16 @@ #define asm_comment(x) asm volatile("@ -- " x " -- ") #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") +// IDE support #if defined (__APPLE__) || defined (__CYGWIN__) -void *memset(void *, int, size_t); -void *memcpy(void *, const void *, size_t); -int strcmp(const char *s1, const char *s2); -char* strcpy(char *dst0, const char *src0); +#define _(x) x +#define __(x) x +#define INCBIN_U8 {0} +#define INCBIN_U16 {0} +#define INCBIN_U32 {0} +#define INCBIN_S8 {0} +#define INCBIN_S16 {0} +#define INCBIN_S32 {0} #endif // __APPLE__ #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) diff --git a/src/battle_transition.c b/src/battle_transition.c index ca2134837..e003e0fce 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -2730,6 +2730,10 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task) return FALSE; } +// This function never increments the state counter, because the loop condition +// is always false, resulting in the game being stuck in an infinite loop. +// It's possible this transition is only partially +// done and the second part was left out. static bool8 Phase2_ShredSplit_Func3(struct Task *task) { u16 i; |