mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-26 21:33:53 +01:00
Merge with master
This commit is contained in:
commit
c219776034
@ -30,7 +30,8 @@ matrix:
|
||||
- g++-7
|
||||
env: _="Build"
|
||||
script:
|
||||
- ./build_tools.sh g++-7
|
||||
- make -j2 tools CXX=g++-7
|
||||
- make -j2 compare
|
||||
- make -j2 modern
|
||||
after_success:
|
||||
- .travis/calcrom/webhook.sh pokeemerald
|
||||
|
25
INSTALL.md
25
INSTALL.md
@ -13,12 +13,6 @@ Then get the compiler from https://github.com/pret/agbcc and run the following c
|
||||
./install.sh PATH_OF_POKEEMERALD_DIRECTORY
|
||||
```
|
||||
|
||||
Then in the pokeemerald directory, build the tools.
|
||||
|
||||
```
|
||||
./build_tools.sh
|
||||
```
|
||||
|
||||
Finally, build the rom.
|
||||
|
||||
```
|
||||
@ -101,3 +95,22 @@ If you've only changed `.c` or `.s` files, you can turn off the dependency scann
|
||||
|
||||
`make NODEP=1`
|
||||
|
||||
# Building with devkitARM's C compiler
|
||||
|
||||
This project supports the `arm-none-eabi-gcc` compiler which ships with devkitARM r52. To build this target, simply run:
|
||||
|
||||
make modern
|
||||
|
||||
# Building with your own toolchain
|
||||
|
||||
To build Pokemon Emerald with a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain. Example:
|
||||
|
||||
make compare TOOLCHAIN=/usr/local/arm-none-eabi
|
||||
|
||||
The path you pass to the `TOOLCHAIN` variable must contain the subdirectory `bin`. If you compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present.
|
||||
|
||||
# Building with debug info
|
||||
|
||||
To build the ELF file with enhanced debug info, use the `DINFO` variable:
|
||||
|
||||
make compare DINFO=1
|
||||
|
97
Makefile
97
Makefile
@ -1,4 +1,13 @@
|
||||
include $(DEVKITARM)/base_tools
|
||||
TOOLCHAIN := $(DEVKITARM)
|
||||
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
|
||||
include $(TOOLCHAIN)/base_tools
|
||||
else
|
||||
export PATH := $(TOOLCHAIN)/bin:$(PATH)
|
||||
PREFIX := arm-none-eabi-
|
||||
OBJCOPY := $(PREFIX)objcopy
|
||||
export CC := $(PREFIX)gcc
|
||||
export AS := $(PREFIX)as
|
||||
endif
|
||||
export CPP := $(PREFIX)cpp
|
||||
export LD := $(PREFIX)ld
|
||||
|
||||
@ -12,12 +21,10 @@ TITLE := POKEMON EMER
|
||||
GAME_CODE := BPEE
|
||||
MAKER_CODE := 01
|
||||
REVISION := 0
|
||||
MODERN ?= 0
|
||||
|
||||
SHELL := /bin/bash -o pipefail
|
||||
|
||||
ROM := pokeemerald.gba
|
||||
OBJ_DIR := build/emerald
|
||||
|
||||
ELF = $(ROM:.gba=.elf)
|
||||
MAP = $(ROM:.gba=.map)
|
||||
|
||||
@ -34,16 +41,32 @@ DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
|
||||
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
|
||||
MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR)
|
||||
|
||||
ASFLAGS := -mcpu=arm7tdmi
|
||||
ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=$(MODERN)
|
||||
|
||||
GCC_VER = $(shell $(CC) -dumpversion)
|
||||
|
||||
ifeq ($(MODERN),0)
|
||||
CC1 := tools/agbcc/bin/agbcc$(EXE)
|
||||
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
|
||||
ROM := pokeemerald.gba
|
||||
OBJ_DIR := build/emerald
|
||||
LIBPATH := -L ../../tools/agbcc/lib
|
||||
else
|
||||
CC1 = $(shell $(CC) --print-prog-name=cc1) -quiet
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -fno-aggressive-loop-optimizations -Wno-pointer-to-int-cast
|
||||
ROM := pokeemerald_modern.gba
|
||||
OBJ_DIR := build/modern
|
||||
LIBPATH := -L $(TOOLCHAIN)/lib/gcc/arm-none-eabi/$(GCC_VER)/thumb -L $(TOOLCHAIN)/arm-none-eabi/lib/thumb
|
||||
endif
|
||||
|
||||
CPPFLAGS := -I tools/agbcc/include -I tools/agbcc -iquote include -Wno-trigraphs
|
||||
CPPFLAGS := -iquote include -Wno-trigraphs -DMODERN=$(MODERN)
|
||||
ifeq ($(MODERN),0)
|
||||
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc
|
||||
endif
|
||||
|
||||
LDFLAGS = -Map ../../$(MAP)
|
||||
|
||||
LIB := -L ../../tools/agbcc/lib -lgcc -lc
|
||||
LIB := $(LIBPATH) -lgcc -lc
|
||||
|
||||
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
||||
GFX := tools/gbagfx/gbagfx$(EXE)
|
||||
@ -56,6 +79,12 @@ FIX := tools/gbafix/gbafix$(EXE)
|
||||
MAPJSON := tools/mapjson/mapjson$(EXE)
|
||||
JSONPROC := tools/jsonproc/jsonproc$(EXE)
|
||||
|
||||
TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*))
|
||||
TOOLBASE = $(TOOLDIRS:tools/%=%)
|
||||
TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE))
|
||||
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
# Clear the default suffixes
|
||||
.SUFFIXES:
|
||||
# Don't delete intermediate files
|
||||
@ -66,7 +95,17 @@ JSONPROC := tools/jsonproc/jsonproc$(EXE)
|
||||
# Secondary expansion is required for dependency variables in object rules.
|
||||
.SECONDEXPANSION:
|
||||
|
||||
.PHONY: rom clean compare tidy
|
||||
.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS)
|
||||
|
||||
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
|
||||
|
||||
# Build tools when building the rom
|
||||
# Disable dependency scanning for clean/tidy/tools
|
||||
ifeq (,$(filter-out all compare,$(MAKECMDGOALS)))
|
||||
$(call infoshell, $(MAKE) tools)
|
||||
else
|
||||
NODEP := 1
|
||||
endif
|
||||
|
||||
C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c)
|
||||
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
|
||||
@ -92,15 +131,27 @@ AUTO_GEN_TARGETS :=
|
||||
|
||||
$(shell mkdir -p $(SUBDIRS))
|
||||
|
||||
all: rom
|
||||
|
||||
tools: $(TOOLDIRS)
|
||||
|
||||
$(TOOLDIRS):
|
||||
@$(MAKE) -C $@
|
||||
|
||||
rom: $(ROM)
|
||||
|
||||
# For contributors to make sure a change didn't affect the contents of the ROM.
|
||||
compare: $(ROM)
|
||||
compare: all
|
||||
@$(SHA1) rom.sha1
|
||||
|
||||
clean: tidy
|
||||
clean: mostlyclean clean-tools
|
||||
|
||||
clean-tools:
|
||||
@$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);)
|
||||
|
||||
mostlyclean: tidy
|
||||
rm -f sound/direct_sound_samples/*.bin
|
||||
rm -f $(SONG_OBJS) $(MID_OBJS) $(MID_SUBDIR)/*.s
|
||||
rm -f $(MID_SUBDIR)/*.s
|
||||
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
|
||||
rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc
|
||||
rm -f $(DATA_ASM_SUBDIR)/maps/connections.inc $(DATA_ASM_SUBDIR)/maps/events.inc $(DATA_ASM_SUBDIR)/maps/groups.inc $(DATA_ASM_SUBDIR)/maps/headers.inc
|
||||
@ -109,7 +160,10 @@ clean: tidy
|
||||
|
||||
tidy:
|
||||
rm -f $(ROM) $(ELF) $(MAP)
|
||||
rm -r build/*
|
||||
rm -r $(OBJ_DIR)
|
||||
ifeq ($(MODERN),0)
|
||||
@$(MAKE) tidy MODERN=1
|
||||
endif
|
||||
|
||||
include graphics_file_rules.mk
|
||||
include map_data_rules.mk
|
||||
@ -133,6 +187,7 @@ sound/direct_sound_samples/cry_%.bin: sound/direct_sound_samples/cry_%.aif ; $(A
|
||||
sound/%.bin: sound/%.aif ; $(AIF) $< $@
|
||||
|
||||
|
||||
ifeq ($(MODERN),0)
|
||||
$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc
|
||||
$(C_BUILDDIR)/libc.o: CFLAGS := -O2
|
||||
|
||||
@ -145,6 +200,7 @@ $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
|
||||
$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc
|
||||
|
||||
$(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding
|
||||
endif
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(C_BUILDDIR)/%.o: c_dep :=
|
||||
@ -192,12 +248,23 @@ $(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
|
||||
$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
|
||||
$(RAMSCRGEN) ewram_data $< ENGLISH > $@
|
||||
|
||||
$(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../ld_script.txt > ld_script.ld
|
||||
ifeq ($(MODERN),0)
|
||||
LD_SCRIPT := ld_script.txt
|
||||
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||
else
|
||||
LD_SCRIPT := ld_script_modern.txt
|
||||
LD_SCRIPT_DEPS :=
|
||||
endif
|
||||
|
||||
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
||||
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
|
||||
|
||||
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
|
||||
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
|
||||
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
|
||||
|
||||
$(ROM): $(ELF)
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
$(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
|
||||
$(FIX) $@ -p --silent
|
||||
|
||||
modern: ; @$(MAKE) MODERN=1
|
||||
|
File diff suppressed because it is too large
Load Diff
2866
asm/pokemon_jump.s
2866
asm/pokemon_jump.s
File diff suppressed because it is too large
Load Diff
1309
asm/pokenav_unk_10.s
1309
asm/pokenav_unk_10.s
File diff suppressed because it is too large
Load Diff
@ -943,7 +943,7 @@ sub_81CA0C8: @ 81CA0C8
|
||||
lsls r2, r0, 3
|
||||
subs r2, r0
|
||||
lsls r2, 2
|
||||
ldr r1, =gUnknown_08620244
|
||||
ldr r1, =gUnknown_08620240+4
|
||||
adds r0, r2, r1
|
||||
subs r1, 0x4
|
||||
adds r2, r1
|
||||
|
1752
asm/pokenav_unk_6.s
1752
asm/pokenav_unk_6.s
File diff suppressed because it is too large
Load Diff
2001
asm/pokenav_unk_7.s
2001
asm/pokenav_unk_7.s
File diff suppressed because it is too large
Load Diff
@ -5,219 +5,7 @@
|
||||
|
||||
@ File centered around AllocSubstruct(7)
|
||||
|
||||
thumb_func_start sub_81CEF3C
|
||||
sub_81CEF3C: @ 81CEF3C
|
||||
push {r4,lr}
|
||||
movs r0, 0x7
|
||||
movs r1, 0x24
|
||||
bl AllocSubstruct
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
beq _081CEF90
|
||||
ldr r1, =0x000006ac
|
||||
movs r0, 0x12
|
||||
bl AllocSubstruct
|
||||
str r0, [r4, 0x20]
|
||||
cmp r0, 0
|
||||
beq _081CEF90
|
||||
ldr r0, =sub_81CF010
|
||||
str r0, [r4]
|
||||
ldr r0, =sub_81CF11C
|
||||
movs r1, 0x1
|
||||
bl CreateLoopedTask
|
||||
str r0, [r4, 0x4]
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x18]
|
||||
bl sub_81C76AC
|
||||
ldr r1, =gUnknown_086233A0
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [r4, 0x14]
|
||||
movs r0, 0x1
|
||||
b _081CEF92
|
||||
.pool
|
||||
_081CEF90:
|
||||
movs r0, 0
|
||||
_081CEF92:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81CEF3C
|
||||
|
||||
thumb_func_start sub_81CEF98
|
||||
sub_81CEF98: @ 81CEF98
|
||||
push {r4,lr}
|
||||
movs r0, 0x7
|
||||
movs r1, 0x24
|
||||
bl AllocSubstruct
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
beq _081CEFD4
|
||||
movs r0, 0x12
|
||||
bl GetSubstructPtr
|
||||
str r0, [r4, 0x20]
|
||||
ldr r0, =sub_81CF030
|
||||
str r0, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r4, 0x18]
|
||||
bl sub_81C76AC
|
||||
ldr r1, =gUnknown_086233A0
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [r4, 0x14]
|
||||
movs r0, 0x1
|
||||
b _081CEFD6
|
||||
.pool
|
||||
_081CEFD4:
|
||||
movs r0, 0
|
||||
_081CEFD6:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81CEF98
|
||||
|
||||
thumb_func_start sub_81CEFDC
|
||||
sub_81CEFDC: @ 81CEFDC
|
||||
push {lr}
|
||||
movs r0, 0x7
|
||||
bl GetSubstructPtr
|
||||
ldr r1, [r0]
|
||||
bl _call_via_r1
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81CEFDC
|
||||
|
||||
thumb_func_start sub_81CEFF0
|
||||
sub_81CEFF0: @ 81CEFF0
|
||||
push {lr}
|
||||
movs r0, 0x7
|
||||
bl GetSubstructPtr
|
||||
ldr r0, [r0, 0x1C]
|
||||
cmp r0, 0
|
||||
bne _081CF004
|
||||
movs r0, 0x12
|
||||
bl FreePokenavSubstruct
|
||||
_081CF004:
|
||||
movs r0, 0x7
|
||||
bl FreePokenavSubstruct
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81CEFF0
|
||||
|
||||
thumb_func_start sub_81CF010
|
||||
sub_81CF010: @ 81CF010
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4, 0x4]
|
||||
bl IsLoopedTaskActive
|
||||
cmp r0, 0
|
||||
bne _081CF022
|
||||
ldr r0, =sub_81CF030
|
||||
str r0, [r4]
|
||||
_081CF022:
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_81CF010
|
||||
|
||||
thumb_func_start sub_81CF030
|
||||
sub_81CF030: @ 81CF030
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r2, =gMain
|
||||
ldrh r1, [r2, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081CF048
|
||||
movs r0, 0x1
|
||||
b _081CF0A6
|
||||
.pool
|
||||
_081CF048:
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081CF054
|
||||
movs r0, 0x2
|
||||
b _081CF0A6
|
||||
_081CF054:
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081CF062
|
||||
movs r0, 0x3
|
||||
b _081CF0A6
|
||||
_081CF062:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 16
|
||||
cmp r2, 0
|
||||
beq _081CF072
|
||||
movs r0, 0x4
|
||||
b _081CF0A6
|
||||
_081CF072:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _081CF088
|
||||
str r2, [r4, 0x1C]
|
||||
ldr r0, =sub_81CF0B0
|
||||
str r0, [r4]
|
||||
movs r0, 0x5
|
||||
b _081CF0A6
|
||||
.pool
|
||||
_081CF088:
|
||||
movs r5, 0x1
|
||||
adds r0, r5, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _081CF096
|
||||
movs r0, 0
|
||||
b _081CF0A6
|
||||
_081CF096:
|
||||
bl GetSelectedMatchCall
|
||||
ldr r1, [r4, 0x20]
|
||||
strh r0, [r1, 0x2]
|
||||
str r5, [r4, 0x1C]
|
||||
ldr r0, =sub_81CF0B8
|
||||
str r0, [r4]
|
||||
movs r0, 0x6
|
||||
_081CF0A6:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_81CF030
|
||||
|
||||
thumb_func_start sub_81CF0B0
|
||||
sub_81CF0B0: @ 81CF0B0
|
||||
ldr r0, =0x000186a3
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_81CF0B0
|
||||
|
||||
thumb_func_start sub_81CF0B8
|
||||
sub_81CF0B8: @ 81CF0B8
|
||||
ldr r0, =0x000186a9
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_81CF0B8
|
||||
|
||||
thumb_func_start sub_81CF0C0
|
||||
sub_81CF0C0: @ 81CF0C0
|
||||
push {lr}
|
||||
movs r0, 0x7
|
||||
bl GetSubstructPtr
|
||||
ldr r0, [r0, 0x18]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81CF0C0
|
||||
|
||||
thumb_func_start sub_81CF0D0
|
||||
sub_81CF0D0: @ 81CF0D0
|
||||
|
1
common_syms/ereader_screen.txt
Normal file
1
common_syms/ereader_screen.txt
Normal file
@ -0,0 +1 @@
|
||||
gUnknown_03006370
|
6
common_syms/librfu.txt
Normal file
6
common_syms/librfu.txt
Normal file
@ -0,0 +1,6 @@
|
||||
gUnknown_03007870
|
||||
gUnknown_03007880
|
||||
gUnknown_03007890
|
||||
gUnknown_03007894
|
||||
gUnknown_03007898
|
||||
gUnknown_030078A0
|
1
common_syms/librfu_stwi.txt
Normal file
1
common_syms/librfu_stwi.txt
Normal file
@ -0,0 +1 @@
|
||||
gRfuState
|
@ -1,666 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gUnknown_082F449C:: @ 82F449C
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
|
||||
.byte 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x03, 0x08
|
||||
.byte 0x09, 0x00, 0x00, 0x01, 0x02, 0x05, 0x06, 0x03
|
||||
.byte 0x04, 0x05, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
|
||||
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x02, 0x09
|
||||
.byte 0x00, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x02
|
||||
.byte 0x03, 0x04, 0x09, 0x00, 0x00, 0x01, 0x06, 0x07
|
||||
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x09, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02
|
||||
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00
|
||||
.byte 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01
|
||||
.byte 0x02, 0x03, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08
|
||||
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, 0x07
|
||||
.byte 0x08, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03
|
||||
.byte 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x02
|
||||
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00
|
||||
.byte 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08
|
||||
.byte 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
|
||||
.byte 0x08, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
|
||||
.byte 0x06, 0x07, 0x08
|
||||
|
||||
gUknnown_082F45AF::
|
||||
.byte 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03
|
||||
.byte 0x04, 0x05, 0x05, 0x06, 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05
|
||||
.byte 0x06, 0x06, 0x07, 0x02, 0x02, 0x03, 0x04, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x05
|
||||
.byte 0x05, 0x06, 0x07, 0x07, 0x08, 0x01, 0x01, 0x02
|
||||
.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x05, 0x06, 0x06
|
||||
.byte 0x07, 0x08, 0x08, 0x09, 0x00, 0x00, 0x01, 0x02
|
||||
.byte 0x02, 0x03, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01
|
||||
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02
|
||||
.byte 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04
|
||||
.byte 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x03
|
||||
.byte 0x02, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x01
|
||||
.byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00
|
||||
.byte 0x00, 0x01, 0x01, 0x00, 0x09, 0x09, 0x09, 0x09
|
||||
.byte 0x09, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01
|
||||
.byte 0x09, 0x09, 0x09, 0x03, 0x03, 0x00, 0x00, 0x01
|
||||
.byte 0x01, 0x02, 0x02, 0x03, 0x09, 0x03, 0x03, 0x04
|
||||
.byte 0x04, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03
|
||||
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00
|
||||
.byte 0x00, 0x00, 0x03, 0x05, 0x07, 0x00, 0x00, 0x02
|
||||
.byte 0x04, 0x06, 0x08, 0x00, 0x01, 0x03, 0x05, 0x06
|
||||
.byte 0x09
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7DF0_UnrefDupe:: @ 82F4698
|
||||
.incbin "graphics/link_games/dodrioberry_bg1.gbapal"
|
||||
|
||||
.align 2
|
||||
.incbin "graphics/link_games/dodrioberry_bg2.gbapal"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7E30_UnrefDupe:: @ 82F46B8
|
||||
.incbin "graphics/link_games/dodrioberry_pkmn.gbapal"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7E50_UnrefDupe:: @ 82F46D8
|
||||
.incbin "graphics/link_games/dodrioberry_shiny.gbapal"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7E70_UnrefDupe:: @ 82F46F8
|
||||
.incbin "graphics/link_games/dodrioberry_status.gbapal"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7E90_UnrefDupe:: @ 82F4718
|
||||
.incbin "graphics/link_games/dodrioberry_berrysprites.gbapal"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7EB0_UnrefDupe:: @ 82F4738
|
||||
.incbin "graphics/link_games/dodrioberry_berrysprites.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F8064_UnrefDupe:: @ 82F490C
|
||||
.incbin "graphics/link_games/dodrioberry_platform.gbapal"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F8084_UnrefDupe:: @ 82F492C
|
||||
.incbin "graphics/link_games/dodrioberry_bg1.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F8914_UnrefDupe:: @ 82F51BC
|
||||
.incbin "graphics/link_games/dodrioberry_bg2.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F96E0_UnrefDupe:: @ 82F5F88
|
||||
.incbin "graphics/link_games/dodrioberry_status.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F9774_UnrefDupe:: @ 82F601C
|
||||
.incbin "graphics/link_games/dodrioberry_platform.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F98BC_UnrefDupe:: @ 82F6164
|
||||
.incbin "graphics/link_games/dodrioberry_pkmn.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FAAD8_UnrefDupe:: @ 82F7380
|
||||
.incbin "graphics/link_games/dodrioberry_bg1.bin.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FAD44_UnrefDupe:: @ 82F75EC
|
||||
.incbin "graphics/link_games/dodrioberry_bg2right.bin.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FAF94_UnrefDupe:: @ 82F783C
|
||||
.incbin "graphics/link_games/dodrioberry_bg2left.bin.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7A88:: @ 82F7A88
|
||||
.byte 0x28, 0x18, 0x0d, 0x20, 0x13, 0x0a, 0x16, 0x0d
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7A94:: @ 82F7A94
|
||||
.byte 0x08, 0x05, 0x08, 0x0b, 0x0f, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7A9C:: @ 82F7A9C
|
||||
.byte 0x05, 0x0a, 0x14, 0x1e, 0x32, 0x46, 0x64, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7AA4:: @ 82F7AA4
|
||||
.byte 0x0f, 0x10, 0x11, 0x12, 0x13, 0x13, 0x12, 0x11
|
||||
.byte 0x10, 0x0f, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19
|
||||
.byte 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21
|
||||
.byte 0x22, 0x22, 0x21, 0x20, 0x1f, 0x1e, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7AC4:: @ 82F7AC4
|
||||
.4byte sub_8024DBC
|
||||
.4byte sub_8024E00
|
||||
.4byte sub_8024E38
|
||||
.4byte sub_8024F10
|
||||
.4byte sub_8024F38
|
||||
.4byte sub_8025198
|
||||
.4byte sub_8025324
|
||||
.4byte sub_8025470
|
||||
.4byte sub_8025644
|
||||
.4byte sub_80256AC
|
||||
.4byte sub_8025758
|
||||
.4byte sub_80250D4
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7AF4:: @ 82F7AF4
|
||||
.4byte sub_8024DBC
|
||||
.4byte sub_8024E00
|
||||
.4byte sub_8024E38
|
||||
.4byte sub_8024F10
|
||||
.4byte sub_8024FFC
|
||||
.4byte sub_8025230
|
||||
.4byte sub_8025324
|
||||
.4byte sub_8025470
|
||||
.4byte sub_8025644
|
||||
.4byte sub_80256AC
|
||||
.4byte sub_8025758
|
||||
.4byte sub_8025158
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B24:: @ 82F7B24
|
||||
.2byte 0x000a, 0x001e, 0x0032, 0x0032
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B2C:: @ 82F7B2C
|
||||
.byte 0x00, 0x05, 0x01, 0x14, 0x0b, 0x0f, 0x01, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B34:: @ 82F7B34
|
||||
.4byte gText_BerriesPicked
|
||||
.4byte gText_BestScore
|
||||
.4byte gText_BerriesInRowFivePlayers
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B40:: @ 82F7B40
|
||||
.byte 0x04, 0x07, 0x04, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B44:: @ 82F7B44
|
||||
.2byte 0x0019, 0x0029, 0x0039
|
||||
|
||||
gUnknown_082F7B4A:: @ 82F7B4A
|
||||
.2byte 0x0019, 0x0029, 0x0049
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B50:: @ 82F7B50
|
||||
.2byte 0x270f, 0x0000, 0x005a, 0x270f, 0x270f, 0x270f, 0x0046, 0x270f
|
||||
.2byte 0x270f, 0x0000, 0x270f, 0x0000, 0x270f, 0x270f, 0x003c, 0x0000
|
||||
.2byte 0x270f, 0x270f, 0x270f, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B78:: @ 82F7B78
|
||||
.string "ÀÁÂÇÈÉÊ$"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B80:: @ 82F7B80
|
||||
.string "ABCDEFG$"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B88:: @ 82F7B88
|
||||
.string "0123456$"
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7B90:: @ 82F7B90
|
||||
.4byte gUnknown_082F7B78
|
||||
.4byte gUnknown_082F7B78
|
||||
.4byte gUnknown_082F7B78
|
||||
.4byte gUnknown_082F7B80
|
||||
.4byte gUnknown_082F7B88
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7BA4:: @ 82F7BA4 struct BgTemplate
|
||||
.4byte 0x000001e0
|
||||
.4byte 0x000012c9
|
||||
.4byte 0x000012ea
|
||||
.4byte 0x000021ff
|
||||
.4byte 0x000000ff
|
||||
.4byte 0x00000000
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7BBC:: @ 82F7BBC
|
||||
window_template 0x00, 0x01, 0x01, 0x1c, 0x02, 0x0d, 0x0013
|
||||
window_template 0x00, 0x01, 0x05, 0x1c, 0x0e, 0x0d, 0x004b
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7BCC:: @ 82F7BCC
|
||||
window_template 0x00, 0x01, 0x05, 0x1c, 0x07, 0x0d, 0x004b
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7BD4:: @ 82F7BD4
|
||||
window_template 0x00, 0x01, 0x08, 0x13, 0x03, 0x0d, 0x0013
|
||||
window_template 0x00, 0x16, 0x07, 0x06, 0x04, 0x0d, 0x004c
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7BE4:: @ 82F7BE4
|
||||
window_template 0x00, 0x04, 0x06, 0x16, 0x05, 0x0d, 0x0013
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7BEC:: @ 82F7BEC
|
||||
window_template 0x00, 0x05, 0x08, 0x13, 0x03, 0x0d, 0x0013
|
||||
|
||||
.align 2
|
||||
gUnknown_082F449C_UnrefDupe:: @ 82F7BF4
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
|
||||
.byte 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x03, 0x08
|
||||
.byte 0x09, 0x00, 0x00, 0x01, 0x02, 0x05, 0x06, 0x03
|
||||
.byte 0x04, 0x05, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
|
||||
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x02, 0x09
|
||||
.byte 0x00, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x02
|
||||
.byte 0x03, 0x04, 0x09, 0x00, 0x00, 0x01, 0x06, 0x07
|
||||
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x09, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02
|
||||
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00
|
||||
.byte 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01
|
||||
.byte 0x02, 0x03, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08
|
||||
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, 0x07
|
||||
.byte 0x08, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03
|
||||
.byte 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x02
|
||||
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00
|
||||
.byte 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08
|
||||
.byte 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
|
||||
.byte 0x08, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
|
||||
.byte 0x06, 0x07, 0x08, 0x04, 0x05, 0x06, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x03, 0x04, 0x05, 0x05, 0x06, 0x03
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x04, 0x05, 0x06, 0x06, 0x07, 0x02, 0x02
|
||||
.byte 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x04, 0x05, 0x05, 0x06, 0x07, 0x07, 0x08
|
||||
.byte 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0x04
|
||||
.byte 0x05, 0x06, 0x06, 0x07, 0x08, 0x08, 0x09, 0x00
|
||||
.byte 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x01, 0x00
|
||||
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01
|
||||
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00
|
||||
.byte 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01
|
||||
.byte 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x02
|
||||
.byte 0x01, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x04
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09
|
||||
.byte 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, 0x09
|
||||
.byte 0x09, 0x09, 0x00, 0x00, 0x01, 0x01, 0x00, 0x09
|
||||
.byte 0x09, 0x09, 0x09, 0x09, 0x02, 0x02, 0x00, 0x00
|
||||
.byte 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x03, 0x03
|
||||
.byte 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x09
|
||||
.byte 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x01, 0x01
|
||||
.byte 0x02, 0x02, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x04, 0x06, 0x00, 0x00, 0x00, 0x03, 0x05, 0x07
|
||||
.byte 0x00, 0x00, 0x02, 0x04, 0x06, 0x08, 0x00, 0x01
|
||||
.byte 0x03, 0x05, 0x06, 0x09
|
||||
|
||||
.align 2
|
||||
gDodrioBerryBgPal1:: @ 82F7DF0
|
||||
.incbin "graphics/link_games/dodrioberry_bg1.gbapal"
|
||||
|
||||
.align 2
|
||||
.incbin "graphics/link_games/dodrioberry_bg2.gbapal"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryPkmnPal:: @ 82F7E30
|
||||
.incbin "graphics/link_games/dodrioberry_pkmn.gbapal"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryShinyPal:: @ 82F7E50
|
||||
.incbin "graphics/link_games/dodrioberry_shiny.gbapal"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryStatusPal:: @ 82F7E70
|
||||
.incbin "graphics/link_games/dodrioberry_status.gbapal"
|
||||
|
||||
.align 2
|
||||
gDodrioBerrySpritesPal:: @ 82F7E90
|
||||
.incbin "graphics/link_games/dodrioberry_berrysprites.gbapal"
|
||||
|
||||
.align 2
|
||||
gDodrioBerrySpritesGfx:: @ 82F7EB0
|
||||
.incbin "graphics/link_games/dodrioberry_berrysprites.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryPlatformPal:: @ 82F8064
|
||||
.incbin "graphics/link_games/dodrioberry_platform.gbapal"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryBgGfx1:: @ 82F8084
|
||||
.incbin "graphics/link_games/dodrioberry_bg1.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryBgGfx2:: @ 82F8914
|
||||
.incbin "graphics/link_games/dodrioberry_bg2.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryStatusGfx:: @ 82F96E0
|
||||
.incbin "graphics/link_games/dodrioberry_status.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryPlatformGfx:: @ 82F9774
|
||||
.incbin "graphics/link_games/dodrioberry_platform.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryPkmnGfx:: @ 82F98BC
|
||||
.incbin "graphics/link_games/dodrioberry_pkmn.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryBgTilemap1:: @ 82FAAD8
|
||||
.incbin "graphics/link_games/dodrioberry_bg1.bin.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryBgTilemap2Right:: @ 82FAD44
|
||||
.incbin "graphics/link_games/dodrioberry_bg2right.bin.lz"
|
||||
|
||||
.align 2
|
||||
gDodrioBerryBgTilemap2Left:: @ 82FAF94
|
||||
.incbin "graphics/link_games/dodrioberry_bg2left.bin.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB1E0:: @ 82FB1E0
|
||||
.byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB1E8:: @ 82FB1E8
|
||||
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB1F0:: @ 82FB1F0
|
||||
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB1F8:: @ 82FB1F8
|
||||
.byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB200:: @ 82FB200
|
||||
.2byte 0x0000, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB208:: @ 82FB208
|
||||
.2byte 0x0040, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB210:: @ 82FB210
|
||||
.2byte 0x0080, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB218:: @ 82FB218
|
||||
.2byte 0x00c0, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB220:: @ 82FB220
|
||||
.2byte 0x0100, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB228:: @ 82FB228
|
||||
.4byte gUnknown_082FB200
|
||||
.4byte gUnknown_082FB208
|
||||
.4byte gUnknown_082FB210
|
||||
.4byte gUnknown_082FB218
|
||||
.4byte gUnknown_082FB220
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB23C:: @ 82FB23C
|
||||
.2byte 0x0000, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB244:: @ 82FB244
|
||||
.2byte 0x0004, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB24C:: @ 82FB24C
|
||||
.2byte 0x0008, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB254:: @ 82FB254
|
||||
.4byte gUnknown_082FB23C
|
||||
.4byte gUnknown_082FB244
|
||||
.4byte gUnknown_082FB24C
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB260:: @ 82FB260
|
||||
.2byte 0x0000, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB268:: @ 82FB268
|
||||
.2byte 0x0004, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB270:: @ 82FB270
|
||||
.2byte 0x0008, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB278:: @ 82FB278
|
||||
.2byte 0x000c, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB280:: @ 82FB280
|
||||
.2byte 0x0010, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB288:: @ 82FB288
|
||||
.2byte 0x0014, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB290:: @ 82FB290
|
||||
.2byte 0x0018, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB298:: @ 82FB298
|
||||
.2byte 0x001c, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2A0:: @ 82FB2A0
|
||||
.2byte 0x0020, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2A8:: @ 82FB2A8
|
||||
.4byte gUnknown_082FB260
|
||||
.4byte gUnknown_082FB268
|
||||
.4byte gUnknown_082FB270
|
||||
.4byte gUnknown_082FB278
|
||||
.4byte gUnknown_082FB280
|
||||
.4byte gUnknown_082FB288
|
||||
.4byte gUnknown_082FB290
|
||||
.4byte gUnknown_082FB298
|
||||
.4byte gUnknown_082FB2A0
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2CC:: @ 82FB2CC
|
||||
.2byte 0x0000, 0x0014
|
||||
.2byte 0xfffe, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2D4:: @ 82FB2D4
|
||||
.4byte gUnknown_082FB2CC
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2D8:: @ 82FB2D8
|
||||
obj_pal gDodrioBerryPkmnPal, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2E0:: @ 82FB2E0
|
||||
obj_pal gDodrioBerryShinyPal, 0x0001
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2E8:: @ 82FB2E8
|
||||
obj_pal gDodrioBerryStatusPal, 0x0002
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB2F0:: @ 82FB2F0
|
||||
spr_template 0x0001, 0x0002, gUnknown_082FB1E8, gUnknown_082FB254, NULL, gDummySpriteAffineAnimTable, nullsub_15
|
||||
|
||||
.align 2
|
||||
.byte 0xD4, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44
|
||||
.byte 0x45, 0xFB, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB314:: @ 82FB314
|
||||
obj_pal gDodrioBerrySpritesPal, 0x0003
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB31C:: @ 82FB31C
|
||||
.2byte 0x0058, 0x0080, 0x00a8, 0x00d0
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB324:: @ 82FB324
|
||||
spr_template 0x0002, 0x0003, gUnknown_082FB1F0, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB33C:: @ 82FB33C
|
||||
spr_template 0x0002, 0x0003, gUnknown_082FB1E8, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB354:: @ 82FB354
|
||||
.byte 0x1E, 0x14
|
||||
|
||||
gUnknown_082FB356:: @ 82FB356
|
||||
.byte 0xE6, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB358:: @ 82FB358
|
||||
.2byte 0x0037, 0x001e, 0x004a, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB360:: @ 82FB360
|
||||
obj_pal gDodrioBerryPlatformPal, 0x0006
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB368:: @ 82FB368
|
||||
spr_template 0x0005, 0x0006, gUnknown_082FB1F8, gUnknown_082FB2D4, NULL, gDummySpriteAffineAnimTable, sub_8028CF4
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB380:: @ 82FB380
|
||||
.byte 0x01, 0x02, 0x03
|
||||
|
||||
gUnknown_082FB383:: @ 82FB383
|
||||
.byte 0x01, 0x04, 0x05
|
||||
.byte 0x01, 0x08, 0x09
|
||||
.byte 0x01, 0x06, 0x07
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB38C:: @ 82FB38C
|
||||
.byte 0x0c, 0x06, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB390:: @ 82FB390
|
||||
.byte 0x09, 0x0a, 0x00, 0x00, 0x0f, 0x06, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB398:: @ 82FB398
|
||||
.byte 0x0c, 0x06, 0x00, 0x00, 0x12, 0x0a, 0x00, 0x00
|
||||
.byte 0x06, 0x0a, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB3A4:: @ 82FB3A4
|
||||
.byte 0x09, 0x0a, 0x00, 0x00, 0x0f, 0x06, 0x00, 0x00
|
||||
.byte 0x15, 0x0a, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB3B4:: @ 82FB3B4
|
||||
.byte 0x0c, 0x06, 0x00, 0x00, 0x12, 0x0a, 0x00, 0x00
|
||||
.byte 0x17, 0x06, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00
|
||||
.byte 0x06, 0x0a, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB3C8:: @ 82FB3C8
|
||||
.4byte gUnknown_082FB38C
|
||||
.4byte gUnknown_082FB390
|
||||
.4byte gUnknown_082FB398
|
||||
.4byte gUnknown_082FB3A4
|
||||
.4byte gUnknown_082FB3B4
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB3DC:: @ 82FB3DC
|
||||
.4byte gText_1Colon
|
||||
.4byte gText_2Colon
|
||||
.4byte gText_3Colon
|
||||
.4byte gText_4Colon
|
||||
.4byte gText_5Colon
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB3F0:: @ 82FB3F0
|
||||
.2byte 0x005c, 0x0084, 0x00ac, 0x00d4
|
||||
|
||||
gUnknown_082FB3F8:: @ 82FB3F8
|
||||
.2byte 0x0021, 0x0031, 0x0041, 0x0051, 0x0061
|
||||
|
||||
gUnknown_082FB402:: @ 82FB402
|
||||
.2byte 0x0011, 0x0021, 0x0031, 0x0041, 0x0051
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB40C:: @ 82FB40C
|
||||
.4byte 0x00000000, sub_8029338
|
||||
.4byte 0x00000001, sub_8029440
|
||||
.4byte 0x00000002, sub_802988C
|
||||
.4byte 0x00000003, sub_802A010
|
||||
.4byte 0x00000004, sub_802A380
|
||||
.4byte 0x00000005, sub_802A454
|
||||
.4byte 0x00000006, sub_802A534
|
||||
.4byte 0x00000007, sub_802A588
|
||||
.4byte 0x00000008, unused_0
|
||||
.4byte 0x00000009, nullsub_16
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB45C:: @ 82FB45C
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00
|
@ -1,573 +0,0 @@
|
||||
#include "constants/species.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB63C:: @ 82FB63C
|
||||
.2byte 0x001a, 0x001f, 0x0024, 0x0029, 0x002e, 0x0033, 0x0038, 0x003d
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB64C:: @ 82FB64C
|
||||
.2byte 0x0000, 0x0001, 0x0001, 0x0002
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB654:: @ 82FB654
|
||||
.2byte 0x005f, 0x0066, 0x00e4, 0x0105
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB65C:: @ 82FB65C
|
||||
.byte 0xfd, 0xfa, 0xf8, 0xf6, 0xf3, 0xf1, 0xef, 0xed
|
||||
.byte 0xeb, 0xe9, 0xe7, 0xe5, 0xe4, 0xe3, 0xe2, 0xe2
|
||||
.byte 0xe2, 0xe4, 0xe5, 0xe6, 0xe7, 0xe9, 0xea, 0xec
|
||||
.byte 0xee, 0xef, 0xf1, 0xf3, 0xf5, 0xf8, 0xfa, 0xfc
|
||||
.byte 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0xfd, 0xfa, 0xf7, 0xf5, 0xf2, 0xf0, 0xee, 0xec
|
||||
.byte 0xea, 0xe8, 0xe6, 0xe4, 0xe3, 0xe2, 0xe2, 0xe4
|
||||
.byte 0xe6, 0xe8, 0xea, 0xec, 0xee, 0xf0, 0xf2, 0xf5
|
||||
.byte 0xf7, 0xfa, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0xfd, 0xfa, 0xf7, 0xf5, 0xf3, 0xf1, 0xef, 0xed
|
||||
.byte 0xeb, 0xe9, 0xe7, 0xe5, 0xe4, 0xe3, 0xe2, 0xe2
|
||||
.byte 0xe2, 0xe2, 0xe3, 0xe3, 0xe4, 0xe4, 0xe5, 0xe5
|
||||
.byte 0xe6, 0xe7, 0xe8, 0xea, 0xec, 0xee, 0xf0, 0xf2
|
||||
.byte 0xf4, 0xf5, 0xf7, 0xfa, 0xfc, 0xff, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB6EC:: @ 82FB6EC
|
||||
.4byte 0x00000000, 0x00000000, 0x00000032, 0x00000064
|
||||
.4byte 0x000000c8, 0x000001f4
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB704:: @ 82FB704
|
||||
.2byte 0x008a, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093
|
||||
|
||||
.align 2
|
||||
gUnknown_082FB714:: @ 82FB714
|
||||
.4byte 0x00001388, 0x00000001, 0x00001f40, 0x00000002
|
||||
.4byte 0x00002ee0, 0x00000003, 0x00003e80, 0x00000004
|
||||
.4byte 0x00004e20, 0x00000005
|
||||
|
||||
.align 2
|
||||
gPkmnJumpPal1:: @ 82FB73C
|
||||
.incbin "graphics/link_games/pkmnjump_pal1.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpPal2:: @ 82FB75C
|
||||
.incbin "graphics/link_games/pkmnjump_pal2.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpRopeGfx1:: @ 82FB77C
|
||||
.incbin "graphics/link_games/pkmnjump_rope1.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpRopeGfx2:: @ 82FB89C
|
||||
.incbin "graphics/link_games/pkmnjump_rope2.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpRopeGfx3:: @ 82FBA70
|
||||
.incbin "graphics/link_games/pkmnjump_rope3.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpRopeGfx4:: @ 82FBBA0
|
||||
.incbin "graphics/link_games/pkmnjump_rope4.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpStarGfx:: @ 82FBC9C
|
||||
.incbin "graphics/link_games/pkmnjump_star.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBE08:: @ 82FBE08
|
||||
obj_tiles gPkmnJumpRopeGfx1, 0x0600, 0x0005
|
||||
|
||||
.align 2
|
||||
obj_tiles gPkmnJumpRopeGfx2, 0x0c00, 0x0006
|
||||
|
||||
.align 2
|
||||
obj_tiles gPkmnJumpRopeGfx3, 0x0600, 0x0007
|
||||
|
||||
.align 2
|
||||
obj_tiles gPkmnJumpRopeGfx4, 0x0600, 0x0008
|
||||
|
||||
.align 2
|
||||
obj_tiles gPkmnJumpStarGfx, 0x0200, 0x000a
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBE30:: @ 82FBE30
|
||||
obj_pal gPkmnJumpPal1, 0x0005
|
||||
|
||||
.align 2
|
||||
obj_pal gPkmnJumpPal2, 0x0006
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBE40:: @ 82FBE40
|
||||
spr_template 0x0000, 0x0000, gUnknown_082FBEC8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_082FBE58:: @ 82FBE58
|
||||
.2byte 0x0060, 0x0060, 0x0060, 0x0072, 0x0078, 0x0078, 0x0078, 0x0072
|
||||
.2byte 0x0060, 0x0060, 0x0046, 0x0050, 0x0060, 0x0072, 0x0078, 0x0080
|
||||
.2byte 0x0078, 0x0072, 0x0060, 0x0050, 0x0032, 0x0048, 0x0060, 0x0072
|
||||
.2byte 0x0080, 0x0088, 0x0080, 0x0072, 0x0060, 0x0048, 0x002a, 0x0048
|
||||
.2byte 0x0060, 0x0072, 0x0080, 0x0088, 0x0080, 0x0072, 0x0060, 0x0048
|
||||
|
||||
gUnknown_082FBEA8:: @ 82FBEA8
|
||||
.2byte 0x0010, 0x0028, 0x0048, 0x0068, 0x0088, 0x00a8, 0x00c8, 0x00e0
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBEB8:: @ 82FBEB8
|
||||
.4byte gUnknown_082FBF78
|
||||
.4byte gUnknown_082FBF90
|
||||
.4byte gUnknown_082FBFA8
|
||||
.4byte gUnknown_082FBFC0
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBEC8:: @ 82FBED0
|
||||
.byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBED0:: @ 82FBED0
|
||||
.byte 0x00, 0x80, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBED8:: @ 82FBED8
|
||||
.byte 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBEE0:: @ 82FBEE0
|
||||
.byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBEE8:: @ 82FBEE8
|
||||
.2byte 0x0000, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBEF0:: @ 82FBEF0
|
||||
.2byte 0x0008, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBEF8:: @ 82FBEF8
|
||||
.2byte 0x0010, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF00:: @ 82FBF00
|
||||
.2byte 0x0018, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF08:: @ 82FBF08
|
||||
.2byte 0x0020, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF10:: @ 82FBF10
|
||||
.2byte 0x0028, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF18:: @ 82FBF18
|
||||
.2byte 0x0000, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF20:: @ 82FBF20
|
||||
.2byte 0x0010, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF28:: @ 82FBF28
|
||||
.2byte 0x0020, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF30:: @ 82FBF30
|
||||
.2byte 0x0030, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF38:: @ 82FBF38
|
||||
.2byte 0x0040, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF40:: @ 82FBF40
|
||||
.2byte 0x0050, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF48:: @ 82FBF48
|
||||
.4byte gUnknown_082FBEE8
|
||||
.4byte gUnknown_082FBEF0
|
||||
.4byte gUnknown_082FBEF8
|
||||
.4byte gUnknown_082FBF00
|
||||
.4byte gUnknown_082FBF08
|
||||
.4byte gUnknown_082FBF10
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF60:: @ 82FBF60
|
||||
.4byte gUnknown_082FBF18
|
||||
.4byte gUnknown_082FBF20
|
||||
.4byte gUnknown_082FBF28
|
||||
.4byte gUnknown_082FBF30
|
||||
.4byte gUnknown_082FBF38
|
||||
.4byte gUnknown_082FBF40
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF78:: @ 82FBF78
|
||||
spr_template 0x0005, 0x0005, gUnknown_082FBED0, gUnknown_082FBF48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBF90:: @ 82FBF90
|
||||
spr_template 0x0006, 0x0005, gUnknown_082FBED8, gUnknown_082FBF60, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBFA8:: @ 82FBFA8
|
||||
spr_template 0x0007, 0x0005, gUnknown_082FBEE0, gUnknown_082FBF48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBFC0:: @ 82FBFC0
|
||||
spr_template 0x0008, 0x0005, gUnknown_082FBEE0, gUnknown_082FBF48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBFD8:: @ 82FBFD8
|
||||
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBFE0:: @ 82FBFE0
|
||||
.2byte 0x0000, 0x0000
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FBFE8:: @ 82FBFE8
|
||||
.2byte 0x0000, 0x0004
|
||||
.2byte 0x0004, 0x0004
|
||||
.2byte 0x0008, 0x0004
|
||||
.2byte 0x000c, 0x0004
|
||||
.2byte 0xfffd, 0x0001
|
||||
.2byte 0x0000, 0x0004
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FC004:: @ 82FC004
|
||||
.4byte gUnknown_082FBFE0
|
||||
.4byte gUnknown_082FBFE8
|
||||
|
||||
.align 2
|
||||
gUnknown_082FC00C:: @ 82FC00C
|
||||
spr_template 0x000a, 0x0005, gUnknown_082FBFD8, gUnknown_082FC004, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gPkmnJumpPal3:: @ 82FC024
|
||||
.incbin "graphics/link_games/pkmnjump_pal3.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpBgPal:: @ 82FC044
|
||||
.incbin "graphics/link_games/pkmnjump_bg.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpBgGfx:: @ 82FC064
|
||||
.incbin "graphics/link_games/pkmnjump_bg.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpBgTilemap:: @ 82FC290
|
||||
.incbin "graphics/link_games/pkmnjump_bg.bin.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpVenusaurPal:: @ 82FC440
|
||||
.incbin "graphics/link_games/pkmnjump_venusaur.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpVenusaurGfx:: @ 82FC460
|
||||
.incbin "graphics/link_games/pkmnjump_venusaur.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpVenusaurTilemap:: @ 82FCDB0
|
||||
.incbin "graphics/link_games/pkmnjump_venusaur.bin.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpResultsPal:: @ 82FD168
|
||||
.incbin "graphics/link_games/pkmnjump_results.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpResultsGfx:: @ 82FD188
|
||||
.incbin "graphics/link_games/pkmnjump_results.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gPkmnJumpResultsTilemap:: @ 82FDC38
|
||||
.incbin "graphics/link_games/pkmnjump_results.bin.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE164:: @ 82FE164 struct BgTemplate
|
||||
.4byte 0x000001b0, 0x000025e6, 0x000016c9, 0x000031df
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE174:: @ 82FE174
|
||||
window_template 0x00, 0x13, 0x00, 0x06, 0x02, 0x02, 0x0013
|
||||
window_template 0x00, 0x08, 0x00, 0x06, 0x02, 0x02, 0x001f
|
||||
null_window_template
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE18C:: @ 82FE18C
|
||||
.4byte 0x00000000, sub_802D150
|
||||
.4byte 0x00000001, sub_802D2E4
|
||||
.4byte 0x00000002, sub_802D350
|
||||
.4byte 0x00000003, sub_802D3BC
|
||||
.4byte 0x00000004, sub_802D448
|
||||
.4byte 0x00000005, sub_802D4F4
|
||||
.4byte 0x00000006, sub_802D598
|
||||
.4byte 0x00000007, sub_802D5E4
|
||||
.4byte 0x00000009, sub_802D72C
|
||||
.4byte 0x00000008, sub_802D688
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE1DC:: @ 82FE1DC
|
||||
.byte 0x00, 0x02, 0x03
|
||||
|
||||
gUnknown_082FE1DF:: @ 82FE1DF
|
||||
.byte 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00
|
||||
.byte 0x00, 0x02, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE1EC:: @ 82FE1EC
|
||||
obj_tiles gUnknown_082FF1F8, 0x0000, 0x0320
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE1F4:: @ 82FE1F4
|
||||
obj_pal gUnknown_082FF1D8, 0x0320
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE1FC:: @ 82FE1FC
|
||||
.2byte 0x0006, 0x0008, 0x0010, 0x0008
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE204:: @ 82FE204
|
||||
.2byte 0x0006, 0x0008, 0x000b, 0x0006, 0x0010, 0x0008
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE210:: @ 82FE210
|
||||
.2byte 0x0002, 0x0006, 0x0006, 0x0008, 0x0010, 0x0008, 0x0014, 0x0006
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE220:: @ 82FE220
|
||||
.2byte 0x0002, 0x0006, 0x0006, 0x0008, 0x000b, 0x0006
|
||||
.2byte 0x0010, 0x0008, 0x0014, 0x0006
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE234:: @ 82FE234
|
||||
.4byte gUnknown_082FE1FC
|
||||
.4byte gUnknown_082FE204
|
||||
.4byte gUnknown_082FE210
|
||||
.4byte gUnknown_082FE220
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE244:: @ 82FE244
|
||||
.2byte 0x0058, 0x0098
|
||||
|
||||
gUnknown_082FE248:: @ 82FE248
|
||||
.2byte 0x0058, 0x0078, 0x0098
|
||||
|
||||
gUnknown_082FE24E:: @ 82FE24E
|
||||
.2byte 0x0038, 0x0058, 0x0098, 0x00b8
|
||||
|
||||
gUnknown_082FE256:: @ 82FE256
|
||||
.2byte 0x0038, 0x0058, 0x0078, 0x0098, 0x00b8
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE260:: @ 82FE260
|
||||
.4byte gUnknown_082FE244
|
||||
.4byte gUnknown_082FE248
|
||||
.4byte gUnknown_082FE24E
|
||||
.4byte gUnknown_082FE256
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE270:: @ 82FE270
|
||||
.4byte 0x1c010100, 0x00010f09
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE278:: @ 82FE278
|
||||
.4byte gText_JumpsInARow
|
||||
.4byte gText_BestScore2
|
||||
.4byte gText_ExcellentsInARow
|
||||
|
||||
.align 2
|
||||
gPkmnJump321StartPal1:: @ 82FE284
|
||||
.incbin "graphics/link_games/pkmnjump_321start1.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJump321StartGfx1:: @ 82FE2A4
|
||||
.incbin "graphics/link_games/pkmnjump_321start1.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE6C8:: @ 82FE6C8
|
||||
obj_tiles gPkmnJump321StartGfx1, 0x0c00, 0x2000
|
||||
null_obj_tiles
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE6D8:: @ 82FE6D8
|
||||
obj_pal gPkmnJump321StartPal1, 0x2000
|
||||
null_obj_pal
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE6E8:: @ 82FE6E8
|
||||
.2byte 0x0000, 0x0000
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE6F0:: @ 82FE6F0
|
||||
.2byte 0x0010, 0x0000
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE6F8:: @ 82FE6F8
|
||||
.2byte 0x0020, 0x0000
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE700:: @ 82FE700
|
||||
.2byte 0x0040, 0x0000
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE708:: @ 82FE708
|
||||
.2byte 0x0030, 0x0000
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE710:: @ 82FE710
|
||||
.2byte 0x0050, 0x0000
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE718:: @ 82FE718
|
||||
.4byte gUnknown_082FE6E8
|
||||
.4byte gUnknown_082FE6F0
|
||||
.4byte gUnknown_082FE6F8
|
||||
.4byte gUnknown_082FE700
|
||||
.4byte gUnknown_082FE708
|
||||
.4byte gUnknown_082FE710
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE730:: @ 82FE730
|
||||
spr_template 0x2000, 0x2000, gUnknown_08524914, gUnknown_082FE718, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
.align 2
|
||||
gUnknown_082FE748:: @ 82FE748
|
||||
.4byte sub_802E83C
|
||||
.4byte sub_802E8C8
|
||||
.4byte sub_802EA50
|
||||
.4byte sub_802EAB0
|
||||
|
||||
.align 2
|
||||
gPkmnJump321StartPal2:: @ 82FE758
|
||||
.incbin "graphics/link_games/pkmnjump_321start2.gbapal"
|
||||
|
||||
.align 2
|
||||
gPkmnJump321StartGfx2:: @ 82FE778
|
||||
.incbin "graphics/link_games/pkmnjump_321start2.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEBCC:: @ 82FEBCC
|
||||
obj_tiles gPkmnJump321StartGfx2, 0x0e00, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEBD4:: @ 82FEBD4
|
||||
obj_pal gPkmnJump321StartPal2, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEBDC:: @ 82FEBDC
|
||||
.byte 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEBE4:: @ 82FEBE4
|
||||
.byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEBEC:: @ 82FEBEC
|
||||
.2byte 0x0000, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEBF4:: @ 82FEBF4
|
||||
.2byte 0x0010, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEBFC:: @ 82FEBFC
|
||||
.2byte 0x0020, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC04:: @ 82FEC04
|
||||
.4byte gUnknown_082FEBEC
|
||||
.4byte gUnknown_082FEBF4
|
||||
.4byte gUnknown_082FEBFC
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC10:: @ 82FEC10
|
||||
.2byte 0x0030, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC18:: @ 82FEC18
|
||||
.2byte 0x0050, 0x0001
|
||||
.2byte 0xffff, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC20:: @ 82FEC20
|
||||
.4byte gUnknown_082FEC10
|
||||
.4byte gUnknown_082FEC18
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC28:: @ 82FEC28
|
||||
.2byte 0x0100, 0x0100
|
||||
.2byte 0x0000, 0x0000
|
||||
.2byte 0x7fff, 0x0000
|
||||
.2byte 0x0000, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC38:: @ 82FEC38
|
||||
.2byte 0x0100, 0x0100
|
||||
.2byte 0x0000, 0x0000
|
||||
.2byte 0x0010, 0xfff0
|
||||
.2byte 0x0800, 0x0000
|
||||
.2byte 0x7fff, 0x0000
|
||||
.2byte 0x0000, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC50:: @ 82FEC50
|
||||
.2byte 0xffee, 0x0012
|
||||
.2byte 0x0800, 0x0000
|
||||
.2byte 0x7fff, 0x0000
|
||||
.2byte 0x0000, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC60:: @ 82FEC60
|
||||
.2byte 0x0006, 0xfffa
|
||||
.2byte 0x0800, 0x0000
|
||||
.2byte 0xfffc, 0x0004
|
||||
.2byte 0x0800, 0x0000
|
||||
.2byte 0x0100, 0x0100
|
||||
.2byte 0x0000, 0x0000
|
||||
.2byte 0x7fff, 0x0000
|
||||
.2byte 0x0000, 0x0000
|
||||
|
||||
.align 2
|
||||
gUnknown_082FEC80:: @ 82FEC80
|
||||
.4byte gUnknown_082FEC28
|
||||
.4byte gUnknown_082FEC38
|
||||
.4byte gUnknown_082FEC50
|
||||
.4byte gUnknown_082FEC60
|
||||
|
||||
gUnknown_082FEC90:: @ 82FEC90
|
||||
spr_template 0x0000, 0x0000, gUnknown_082FEBDC, gUnknown_082FEC04, NULL, gUnknown_082FEC80, SpriteCallbackDummy
|
||||
|
||||
gUnknown_082FECA8:: @ 82FECA8
|
||||
spr_template 0x0000, 0x0000, gUnknown_082FEBE4, gUnknown_082FEC20, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
1658
data/pokenav.s
1658
data/pokenav.s
File diff suppressed because it is too large
Load Diff
@ -1,207 +0,0 @@
|
||||
gGiftRibbonDescriptionPart1_2003RegionalTourney:: @ 8623A74
|
||||
.string "2003 REGIONAL TOURNEY$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_Champion:: @ 8623A8A
|
||||
.string "CHAMPION RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2003NationalTourney:: @ 8623A9A
|
||||
.string "2003 NATIONAL TOURNEY$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2003GlobalCup:: @ 8623AB0
|
||||
.string "2003 GLOBAL CUP$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_RunnerUp:: @ 8623AC0
|
||||
.string "Runner-up RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_Semifinalist:: @ 8623AD1
|
||||
.string "Semifinalist RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2004RegionalTourney:: @ 8623AE5
|
||||
.string "2004 REGIONAL TOURNEY$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2004NationalTourney:: @ 8623AFB
|
||||
.string "2004 NATIONAL TOURNEY$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2004GlobalCup:: @ 8623B11
|
||||
.string "2004 GLOBAL CUP$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2005RegionalTourney:: @ 8623B21
|
||||
.string "2005 REGIONAL TOURNEY$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2005NationalTourney:: @ 8623B37
|
||||
.string "2005 NATIONAL TOURNEY$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_2005GlobalCup:: @ 8623B4D
|
||||
.string "2005 GLOBAL CUP$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonBattleCup:: @ 8623B5D
|
||||
.string "POKéMON BATTLE CUP$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_Participation:: @ 8623B70
|
||||
.string "Participation RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonLeague:: @ 8623B85
|
||||
.string "POKéMON LEAGUE$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_AdvanceCup:: @ 8623B94
|
||||
.string "ADVANCE CUP$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonTournament:: @ 8623BA0
|
||||
.string "POKéMON Tournament$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_Participation2:: @ 8623BB3
|
||||
.string "Participation RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonEvent:: @ 8623BC8
|
||||
.string "POKéMON Event$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonFestival:: @ 8623BD6
|
||||
.string "POKéMON Festival$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_DifficultyClearing:: @ 8623BE7
|
||||
.string "Difficulty-clearing$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_Commemorative:: @ 8623BFB
|
||||
.string "Commemorative RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_ClearingAllChallenges:: @ 8623C10
|
||||
.string "RIBBON awarded for$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_ClearingAllChallenges:: @ 8623C23
|
||||
.string "clearing all challenges.$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_100StraightWin:: @ 8623C3C
|
||||
.string "100-straight Win$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_DarknessTower:: @ 8623C4D
|
||||
.string "DARKNESS TOWER Clear$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_RedTower:: @ 8623C62
|
||||
.string "RED TOWER Clear$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_BlackironTower:: @ 8623C72
|
||||
.string "BLACKIRON TOWER Clear$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_FinalTower:: @ 8623C88
|
||||
.string "FINAL TOWER Clear$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_LegendMaking:: @ 8623C9A
|
||||
.string "Legend-making$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonCenterTokyo:: @ 8623CA8
|
||||
.string "POKéMON CENTER TOKYO$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonCenterOsaka:: @ 8623CBD
|
||||
.string "POKéMON CENTER OSAKA$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonCenterNagoya:: @ 8623CD2
|
||||
.string "POKéMON CENTER NAGOYA$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_PokemonCenterNY:: @ 8623CE8
|
||||
.string "POKéMON CENTER NY$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_SummerHolidays:: @ 8623CFA
|
||||
.string "Summer Holidays RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_EmptyString:: @ 8623D11
|
||||
.string "$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_WinterHolidays:: @ 8623D12
|
||||
.string "Winter Holidays RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_SpringHolidays:: @ 8623D29
|
||||
.string "Spring Holidays RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_Evergreen:: @ 8623D40
|
||||
.string "Evergreen RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_SpecialHoliday:: @ 8623D51
|
||||
.string "Special Holiday RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_HardWorker:: @ 8623D68
|
||||
.string "Hard Worker RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_LotsOfFriends:: @ 8623D7B
|
||||
.string "Lots of Friends RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_FullOfEnergy:: @ 8623D92
|
||||
.string "Full of Energy RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_LovedPokemon:: @ 8623DA8
|
||||
.string "A commemorative RIBBON$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_LovedPokemon:: @ 8623DBF
|
||||
.string "for a loved POKéMON.$"
|
||||
|
||||
gGiftRibbonDescriptionPart1_LoveForPokemon:: @ 8623DD4
|
||||
.string "RIBBON that shows$"
|
||||
|
||||
gGiftRibbonDescriptionPart2_LoveForPokemon:: @ 8623DE6
|
||||
.string "love for POKéMON.$"
|
||||
|
||||
.align 2
|
||||
gGiftRibbonDescriptionPointers:: @ 8623DF8
|
||||
.4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation
|
||||
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion
|
||||
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp
|
||||
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist
|
||||
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2
|
||||
.4byte gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges
|
||||
.4byte gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative
|
||||
.4byte gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString
|
||||
.4byte gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon
|
||||
.4byte gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon
|
@ -1,84 +0,0 @@
|
||||
gRibbonDescriptionPart1_Champion:: @ 862383C
|
||||
.string "CHAMPION-beating, HALL$"
|
||||
|
||||
gRibbonDescriptionPart2_Champion:: @ 8623853
|
||||
.string "OF FAME Member RIBBON$"
|
||||
|
||||
gRibbonDescriptionPart1_CoolContest:: @ 8623869
|
||||
.string "COOL CONTEST$"
|
||||
|
||||
gRibbonDescriptionPart1_BeautyContest:: @ 8623876
|
||||
.string "BEAUTY CONTEST$"
|
||||
|
||||
gRibbonDescriptionPart1_CuteContest:: @ 8623885
|
||||
.string "CUTE CONTEST$"
|
||||
|
||||
gRibbonDescriptionPart1_SmartContest:: @ 8623892
|
||||
.string "SMART CONTEST$"
|
||||
|
||||
gRibbonDescriptionPart1_ToughContest:: @ 86238A0
|
||||
.string "TOUGH CONTEST$"
|
||||
|
||||
gRibbonDescriptionPart2_NormalRank:: @ 86238AE
|
||||
.string "Normal Rank winner!$"
|
||||
|
||||
gRibbonDescriptionPart2_SuperRank:: @ 86238C2
|
||||
.string "Super Rank winner!$"
|
||||
|
||||
gRibbonDescriptionPart2_HyperRank:: @ 86238D5
|
||||
.string "Hyper Rank winner!$"
|
||||
|
||||
gRibbonDescriptionPart2_MasterRank:: @ 86238E8
|
||||
.string "Master Rank winner!$"
|
||||
|
||||
gRibbonDescriptionPart1_Winning:: @ 86238FC
|
||||
.string "For clearing LV50$"
|
||||
|
||||
gRibbonDescriptionPart2_Winning:: @ 862390E
|
||||
.string "at the BATTLE TOWER.$"
|
||||
|
||||
gRibbonDescriptionPart1_Victory:: @ 8623923
|
||||
.string "For clearing Open Level$"
|
||||
|
||||
gRibbonDescriptionPart2_Victory:: @ 862393B
|
||||
.string "at the BATTLE TOWER.$"
|
||||
|
||||
gRibbonDescriptionPart1_Artist:: @ 8623950
|
||||
.string "RIBBON for being chosen$"
|
||||
|
||||
gRibbonDescriptionPart2_Artist:: @ 8623968
|
||||
.string "as a super sketch model.$"
|
||||
|
||||
gRibbonDescriptionPart1_Effort:: @ 8623981
|
||||
.string "RIBBON awarded for$"
|
||||
|
||||
gRibbonDescriptionPart2_Effort:: @ 8623994
|
||||
.string "being a hard worker.$"
|
||||
|
||||
.align 2
|
||||
gRibbonDescriptionPointers:: @ 86239AC
|
||||
.4byte gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion
|
||||
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank
|
||||
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank
|
||||
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank
|
||||
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank
|
||||
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank
|
||||
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank
|
||||
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank
|
||||
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank
|
||||
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank
|
||||
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank
|
||||
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank
|
||||
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank
|
||||
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank
|
||||
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank
|
||||
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank
|
||||
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank
|
||||
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank
|
||||
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank
|
||||
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank
|
||||
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank
|
||||
.4byte gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning
|
||||
.4byte gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory
|
||||
.4byte gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist
|
||||
.4byte gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort
|
@ -1,113 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 4
|
||||
|
||||
gUnknown_085DFA60:: @ 85DFA60
|
||||
.incbin "graphics/interface/85DFA60.bin"
|
||||
|
||||
gUnknown_085DFA80:: @ 85DFA80
|
||||
.incbin "graphics/interface/85DFA80.4bpp"
|
||||
|
||||
gUnknown_085DFB60:: @ 85DFB60
|
||||
.incbin "graphics/interface/85DFB60.bin"
|
||||
|
||||
gUnknown_085DFC0C:: @ 85DFC0C
|
||||
.incbin "graphics/interface/85DFC0C.bin"
|
||||
|
||||
gUnknown_085DFCB0:: @ 85DFCB0
|
||||
.4byte 22, 47, 33, 24, 23
|
||||
|
||||
gUnknown_085DFCC4:: @ 85DFCC4
|
||||
.byte 0, 4, 3, 2, 1
|
||||
|
||||
gUnknown_085DFCC9:: @ 85DFCC9
|
||||
.byte 0, 8, 1
|
||||
|
||||
gUnknown_085DFCCC:: @ 85DFCCC
|
||||
.4byte 0x1F8
|
||||
.4byte 0x31E1
|
||||
.4byte 0x4021DF
|
||||
.4byte 0x1172
|
||||
|
||||
gUnknown_085DFCDC:: @ 85DFCDC
|
||||
window_template 0, 0xD, 1, 0xD, 4, 0xF, 1
|
||||
window_template 0, 0, 0xE, 0xB, 2, 0xF, 0x35
|
||||
window_template 0, 1, 0x11, 0x1C, 2, 0xF, 0x4B
|
||||
null_window_template
|
||||
|
||||
sUsePokeblockYesNoWinTemplate:: @ 85DFCFC
|
||||
window_template 0, 0x18, 0xB, 5, 4, 0xF, 0x83
|
||||
|
||||
sContestStatNames:: @ 85DFD04
|
||||
.4byte gText_Coolness
|
||||
.4byte gText_Toughness
|
||||
.4byte gText_Smartness
|
||||
.4byte gText_Cuteness
|
||||
.4byte gText_Beauty3
|
||||
|
||||
gSpriteSheet_ConditionUpDown:: @ 85DFD18
|
||||
obj_tiles gUsePokeblockUpDown_Gfx, 0x200, 0
|
||||
|
||||
gSpritePalette_ConditionUpDown:: @ 85DFD20
|
||||
obj_pal gUsePokeblockUpDown_Pal, 0
|
||||
|
||||
gUnknown_085DFD28:: @ 85DFD28
|
||||
.2byte 0x9c, 0x24
|
||||
.2byte 0x75, 0x3b
|
||||
.2byte 0x75, 0x76
|
||||
.2byte 0xc5, 0x76
|
||||
.2byte 0xc5, 0x3b
|
||||
|
||||
gUnknown_085DFD3C:: @ 85DFD3C
|
||||
.2byte 0x4000
|
||||
.2byte 0x8000
|
||||
.2byte 0x400
|
||||
.2byte 0
|
||||
|
||||
gUnknown_085DFD44:: @ 85DFD44
|
||||
obj_image_anim_frame 0, 5
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_085DFD4C:: @ 85DFD4C
|
||||
obj_image_anim_frame 8, 5
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_085DFD54:: @ 85DFD54
|
||||
.4byte gUnknown_085DFD44
|
||||
.4byte gUnknown_085DFD4C
|
||||
|
||||
gSpriteTemplate_085DFD5C:: @ 85DFD5C
|
||||
spr_template 0, 0, gUnknown_085DFD3C, gUnknown_085DFD54, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_085DFD74:: @ 85DFD74
|
||||
.2byte 0x4000
|
||||
.2byte 0xC000
|
||||
.2byte 0x400
|
||||
.2byte 0
|
||||
|
||||
gUnknown_085DFD7C:: @ 85DFD7C
|
||||
obj_image_anim_frame 0, 5
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_085DFD84:: @ 85DFD84
|
||||
obj_image_anim_frame 32, 5
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_085DFD8C:: @ 85DFD8C
|
||||
obj_image_anim_frame 64, 5
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_085DFD94:: @ 85DFD94
|
||||
.4byte gUnknown_085DFD7C
|
||||
.4byte gUnknown_085DFD84
|
||||
.4byte gUnknown_085DFD8C
|
||||
|
||||
gUnknown_085DFDA0:: @ 85DFDA0
|
||||
spr_template 1, 1, gUnknown_085DFD74, gUnknown_085DFD94, NULL, gDummySpriteAffineAnimTable, sub_8168374
|
||||
|
||||
gUnknown_085DFDB8:: @ 85DFDB8
|
||||
.4byte gUsePokeblockCondition_Pal
|
||||
.4byte 1
|
@ -1 +1,3 @@
|
||||
0000000000000000000000000000000 0
0000000000000000000
00000000000000000000
00000000000000000000000000000
|
||||
000000000000000000000000000000000 0 0 0 00 000000000
|
||||
00000 0 0 0 0 00 000000000
|
||||
000000 0 0 0 00 0000000000000000000000
|
@ -1,3 +1 @@
|
||||
000000000000000000000000000000000 0 0 0 00 000000000
|
||||
00000 0 0 0 0 00 000000000
|
||||
000000 0 0 0 00 0000000000000000000000
|
||||
0000000000000000000000000000000 0
0000000000000000000
00000000000000000000
00000000000000000000000000000
|
@ -1,3 +1,3 @@
|
||||
000000000000000000000000000000000000000000 00 00 0
000000
|
||||
0000000000
|
||||
00000000 0 00
00000000000000000000000000
|
||||
000000000000000000000000000000000000
|
||||
000000000 00 0 000000
|
||||
00000000000000000000000 0 0000000000000000000000
|
@ -1,3 +1,3 @@
|
||||
000000000000000000000000000000000000
|
||||
000000000 00 0 000000
|
||||
00000000000000000000000 0 0000000000000000000000
|
||||
000000000000000000000000000000000000000000 00 00 0
000000
|
||||
0000000000
|
||||
00000000 0 00
00000000000000000000000000
|
@ -1 +1,3 @@
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000
|
||||
00000000000000000000000000 0
00000000
|
||||
0000000000
|
||||
000000000 000000000000 0 000000000000000000000000000000000
|
@ -1,3 +1 @@
|
||||
00000000000000000000000000 0
00000000
|
||||
0000000000
|
||||
000000000 000000000000 0 000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000
|
@ -161,7 +161,7 @@
|
||||
{ \
|
||||
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
|
||||
textVar[1] = B_BUFF_MOVE; \
|
||||
textVar[2] = move & 0xFF; \
|
||||
textVar[2] = (move & 0xFF); \
|
||||
textVar[3] = (move & 0xFF00) >> 8; \
|
||||
textVar[4] = B_BUFF_EOS; \
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_BERRY_CRUSH_H
|
||||
#define GUARD_BERRY_CRUSH_H
|
||||
|
||||
#include "main.h"
|
||||
|
||||
void sub_8020C70(MainCallback callback);
|
||||
|
||||
#endif // GUARD_BERRY_CRUSH_H
|
||||
|
8
include/dodrio_berry_picking.h
Normal file
8
include/dodrio_berry_picking.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef GUARD_DODRIO_BERRY_PICKING_H
|
||||
#define GUARD_DODRIO_BERRY_PICKING_H
|
||||
|
||||
void sub_802493C(u16 a0, void (*callback)(void));
|
||||
void sub_8027A5C(void);
|
||||
void sub_8027AAC(void);
|
||||
|
||||
#endif // GUARD_DODRIO_BERRY_PICKING_H
|
@ -23,9 +23,9 @@ int GetMapBorderIdAt(int x, int y);
|
||||
int CanCameraMoveInDirection(int direction);
|
||||
u16 GetBehaviorByMetatileId(u16 metatileId);
|
||||
void GetCameraFocusCoords(u16 *x, u16 *y);
|
||||
u8 MapGridGetMetatileLayerTypeAt(s32 x, s32 y);
|
||||
u8 MapGridGetMetatileLayerTypeAt(int x, int y);
|
||||
u8 MapGridGetZCoordAt(int x, int y);
|
||||
u8 CameraMove(s32 deltaX, s32 deltaY);
|
||||
bool8 CameraMove(int deltaX, int deltaY);
|
||||
struct MapConnection *sub_8088950(u8 direction, int x, int y);
|
||||
bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection);
|
||||
bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset);
|
||||
|
@ -6,9 +6,16 @@
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define BSS_DATA __attribute__((section(".bss")))
|
||||
#define IWRAM_DATA __attribute__((section("iwram_data")))
|
||||
#define EWRAM_DATA __attribute__((section("ewram_data")))
|
||||
|
||||
#if MODERN
|
||||
#define NOINLINE __attribute__((noinline))
|
||||
#else
|
||||
#define NOINLINE
|
||||
#endif
|
||||
|
||||
#define ALIGNED(n) __attribute__((aligned(n)))
|
||||
|
||||
#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0)
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define GUARD_GLOBAL_H
|
||||
|
||||
#include <string.h>
|
||||
#include <limits.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"
|
||||
#include "constants/global.h"
|
||||
@ -68,6 +69,10 @@
|
||||
#define min(a, b) ((a) < (b) ? (a) : (b))
|
||||
#define max(a, b) ((a) >= (b) ? (a) : (b))
|
||||
|
||||
#if MODERN
|
||||
#define abs(x) (((x) < 0) ? -(x) : (x))
|
||||
#endif
|
||||
|
||||
// Extracts the upper 16 bits of a 32-bit number
|
||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||
|
||||
@ -164,18 +169,17 @@ struct Pokedex
|
||||
/*0x44*/ u8 seen[DEX_FLAGS_NO];
|
||||
};
|
||||
|
||||
struct PokemonJumpResults // possibly used in the game itself?
|
||||
struct PokemonJumpResults
|
||||
{
|
||||
u16 jumpsInRow;
|
||||
u16 field2;
|
||||
u16 excellentsInRow;
|
||||
u16 field6;
|
||||
u16 field8;
|
||||
u16 fieldA;
|
||||
u32 field8;
|
||||
u32 bestJumpScore;
|
||||
};
|
||||
|
||||
struct BerryPickingResults // possibly used in the game itself? Size may be wrong as well
|
||||
struct BerryPickingResults
|
||||
{
|
||||
u32 bestScore;
|
||||
u16 berriesPicked;
|
||||
|
@ -4005,10 +4005,13 @@ extern const u32 gBerryPalette_Starf[];
|
||||
extern const u32 gBerryPic_Enigma[];
|
||||
extern const u32 gBerryPalette_Enigma[];
|
||||
|
||||
//credits
|
||||
extern const u32 gCreditsCopyrightEnd_Gfx[];
|
||||
|
||||
//pokenav
|
||||
extern const u16 gPokenavCondition_Pal[];
|
||||
extern const u32 gPokenavCondition_Gfx[];
|
||||
extern const u32 gPokenavCondition_Tilemap[];
|
||||
extern const u16 gPokenavOptions_Tilemap[];
|
||||
extern const u32 gPokenavOptions_Gfx[];
|
||||
extern const u16 gPokenavOptions_Pal[];
|
||||
extern const u8 gPokenavConditionMarker_Gfx[];
|
||||
extern const u16 gPokenavConditionMarker_Pal[];
|
||||
extern const u16 gPokenavLeftHeader_Pal[];
|
||||
@ -4027,6 +4030,9 @@ extern const u32 gPokenavLeftHeaderBeauty_Gfx[];
|
||||
extern const u32 gPokenavLeftHeaderCute_Gfx[];
|
||||
extern const u32 gPokenavLeftHeaderSmart_Gfx[];
|
||||
extern const u32 gPokenavLeftHeaderTough_Gfx[];
|
||||
extern const u16 gUnknown_08DDE010[];
|
||||
extern const u32 gUnknown_08DDE030[];
|
||||
extern const u32 gUnknown_08DDE12C[];
|
||||
|
||||
extern const u32 gPageInfoTilemap[];
|
||||
extern const u32 gUnknown_08D98CC8[];
|
||||
@ -4080,7 +4086,7 @@ extern const u32 gContestConfetti_Pal[];
|
||||
extern const u32 gUnknown_08C093F0[];
|
||||
extern const u32 gSubstituteDollTilemap[];
|
||||
extern const u32 gSubstituteDollGfx[];
|
||||
extern const u16 gSubstituteDollPal[];
|
||||
extern const u32 gSubstituteDollPal[];
|
||||
extern const u32 gHealthboxSinglesPlayerGfx[];
|
||||
extern const u32 gHealthboxSinglesOpponentGfx[];
|
||||
extern const u32 gHealthboxDoublesPlayerGfx[];
|
||||
@ -4979,6 +4985,9 @@ extern const u32 gLinkMiscMenu_Tilemap[];
|
||||
// Use Pokeblock
|
||||
extern const u8 gPokenavConditionCancel_Gfx[];
|
||||
extern const u16 gPokenavConditionCancel_Pal[];
|
||||
extern const u8 gUsePokeblockUpDown_Gfx[];
|
||||
extern const u16 gUsePokeblockUpDown_Pal[];
|
||||
extern const u16 gUsePokeblockCondition_Pal[];
|
||||
|
||||
// Berry Crush
|
||||
extern const u32 gUnknown_08DE34B8[];
|
||||
|
@ -275,10 +275,10 @@ void sub_8010FCC(u32 a0, u32 a1, u32 a2);
|
||||
void sub_8011C84(void);
|
||||
void sub_8012188(const u8 *name, struct UnkLinkRfuStruct_02022B14 *structPtr, u8 a2);
|
||||
bool32 sub_8011B90(void);
|
||||
void sub_800FE50(u16 *a0);
|
||||
void sub_800FE50(void *a0);
|
||||
bool32 sub_800E540(u16 id, u8 *name);
|
||||
void sub_8011DE0(u32 arg0);
|
||||
u8 sub_801100C(int a0);
|
||||
u8 sub_801100C(s32 a0);
|
||||
void sub_800EF7C(void);
|
||||
bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx);
|
||||
bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx);
|
||||
|
@ -25,7 +25,7 @@ void InitStandardTextBoxWindows(void);
|
||||
void sub_8197200(void);
|
||||
u16 RunTextPrintersAndIsPrinter0Active(void);
|
||||
void sub_81973A4(void);
|
||||
void DrawDialogueFrame(u8, u8);
|
||||
void DrawDialogueFrame(u8 windowId, bool8 copyToVram);
|
||||
void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram);
|
||||
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
|
||||
void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
|
||||
|
@ -34,6 +34,7 @@ void sub_81D1EC0(void);
|
||||
void sub_81D1D04(u8 a0);
|
||||
void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0);
|
||||
void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0);
|
||||
void sub_81D21DC(u8 bg);
|
||||
void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0);
|
||||
void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0);
|
||||
bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0);
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_PLAYER_PC_H
|
||||
#define GUARD_PLAYER_PC_H
|
||||
|
||||
#include "menu.h"
|
||||
|
||||
// local task defines
|
||||
#define PAGE_INDEX data[0]
|
||||
#define ITEMS_ABOVE_TOP data[1]
|
||||
|
@ -559,7 +559,7 @@ void PlayBattleBGM(void);
|
||||
void PlayMapChosenOrBattleBGM(u16 songId);
|
||||
void sub_806E694(u16 songId);
|
||||
const u32 *GetMonFrontSpritePal(struct Pokemon *mon);
|
||||
const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
|
||||
const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
|
||||
bool32 IsHMMove2(u16 move);
|
||||
|
@ -3,9 +3,12 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
void sub_802EB24(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4);
|
||||
bool32 sub_802EB84(void);
|
||||
void sub_802A9A8(u16 monId, MainCallback callback);
|
||||
bool32 sub_802C908(u16 species);
|
||||
void sub_802C920(void);
|
||||
void ResetPokeJumpResults(void);
|
||||
void sub_802E3C4(void);
|
||||
void sub_802EB24(s16 tileTag, s16 palTag, s16 x, s16 y, u8 subpriority);
|
||||
bool32 sub_802EB84(void);
|
||||
|
||||
#endif //GUARD_POKEMON_JUMP_H
|
||||
#endif // GUARD_POKEMON_JUMP_H
|
||||
|
@ -3,8 +3,21 @@
|
||||
|
||||
#include "bg.h"
|
||||
#include "main.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
|
||||
typedef u32 (*LoopedTask)(int state);
|
||||
typedef u32 (*LoopedTask)(s32 state);
|
||||
|
||||
struct PokenavSub18
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
struct PokenavMonList
|
||||
{
|
||||
u8 boxId;
|
||||
u8 monId;
|
||||
u16 unk6;
|
||||
} unk4[TOTAL_BOXES_COUNT * IN_BOX_COUNT + PARTY_SIZE];
|
||||
};
|
||||
|
||||
// Return values of LoopedTask functions.
|
||||
#define LT_INC_AND_PAUSE 0
|
||||
@ -43,7 +56,7 @@ enum
|
||||
|
||||
// pokenav.c
|
||||
void sub_81C7694(u32);
|
||||
u16 sub_81C76AC(void);
|
||||
u32 sub_81C76AC(void);
|
||||
|
||||
void CB2_InitPokeNav(void);
|
||||
u32 CreateLoopedTask(LoopedTask loopedTask, u32 priority);
|
||||
@ -94,7 +107,7 @@ void sub_81C8234(void);
|
||||
|
||||
// pokenav_match_call_data.c
|
||||
bool32 sub_81D17E8(u32 idx);
|
||||
u8 sub_81D16DC(u32 idx);
|
||||
u8 MatchCallMapSecGetByIndex(u32 idx);
|
||||
bool32 sub_81D1BF8(u32 idx);
|
||||
bool32 MatchCallFlagGetByIndex(u32 idx);
|
||||
u32 MatchCall_GetRematchTableIdx(u32 idx);
|
||||
@ -111,7 +124,7 @@ void sub_81C7850(u32 a0);
|
||||
u32 sub_81C786C(void);
|
||||
void LoadLeftHeaderGfxForIndex(u32 arg0);
|
||||
void sub_81C7FA0(u32 arg0, bool32 arg1, bool32 arg2);
|
||||
void sub_81C7AC0(int a0);
|
||||
void sub_81C7AC0(s32 a0);
|
||||
bool32 sub_81C8010(void);
|
||||
void InitBgTemplates(const struct BgTemplate *templates, int count);
|
||||
bool32 IsPaletteFadeActive(void);
|
||||
@ -184,4 +197,22 @@ void sub_81CC62C(int);
|
||||
u32 sub_81CC65C(void);
|
||||
void sub_81CC670(void);
|
||||
|
||||
#endif //GUARD_POKENAV_H
|
||||
// pokenav_unk_6.c
|
||||
bool32 sub_81CD3C4(void);
|
||||
bool32 sub_81CDD5C(void);
|
||||
struct UnknownStruct_81D1ED4 *sub_81CDC70(void);
|
||||
u16 sub_81CDC60(void);
|
||||
u16 sub_81CDC50(void);
|
||||
u8 sub_81CDDB0(void);
|
||||
bool32 sub_81CD548(u8 arg0);
|
||||
u8 sub_81CDD7C(void);
|
||||
u8 *sub_81CDD04(u8 id);
|
||||
u8 *sub_81CDD24(u8 id);
|
||||
u16 sub_81CDD48(void);
|
||||
void *sub_81CDCB4(u8 id);
|
||||
void *sub_81CDCD4(u8 id);
|
||||
|
||||
// pokenav_unk_7.c
|
||||
u8 sub_81CEF14(void);
|
||||
|
||||
#endif // GUARD_POKENAV_H
|
||||
|
@ -275,6 +275,7 @@ void FreeSpriteOamMatrix(struct Sprite *sprite);
|
||||
void DestroySpriteAndFreeResources(struct Sprite *sprite);
|
||||
void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5);
|
||||
void AnimateSprite(struct Sprite *sprite);
|
||||
void sub_8007E18(struct Sprite* sprite, s16 a2, s16 a3);
|
||||
void StartSpriteAnim(struct Sprite *sprite, u8 animNum);
|
||||
void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum);
|
||||
void SeekSpriteAnim(struct Sprite *sprite, u8 animCmdIndex);
|
||||
|
@ -485,7 +485,6 @@ extern const u8 gText_CryOf[];
|
||||
extern const u8 gText_SizeComparedTo[];
|
||||
extern const u8 gText_PokedexRegistration[];
|
||||
extern const u8 gText_UnkCtrlF908Clear01[];
|
||||
extern const u8 sText_TenDashes2[];
|
||||
extern const u8 gText_5MarksPokemon[];
|
||||
extern const u8 gText_UnkHeight[];
|
||||
extern const u8 gText_UnkWeight[];
|
||||
@ -1023,6 +1022,7 @@ extern const u8 gText_PokenavMatchCall_CheckTrainerButtons[];
|
||||
extern const u8 gText_PokenavRibbons_MonListButtons[];
|
||||
extern const u8 gText_PokenavRibbons_RibbonListButtons[];
|
||||
extern const u8 gText_PokenavRibbons_RibbonCheckButtons[];
|
||||
extern const u8 gText_Number2[];
|
||||
|
||||
extern const u8 gUnknown_085EAD37[];
|
||||
extern const u8 gUnknown_085EAD41[];
|
||||
@ -2708,6 +2708,28 @@ extern const u8 gText_Symbols[];
|
||||
extern const u8 gText_Register2[];
|
||||
extern const u8 gText_Exit2[];
|
||||
|
||||
// Dodrio Berry Picking
|
||||
extern const u8 gText_BerryPickingRecords[];
|
||||
extern const u8 gText_BerriesPicked[];
|
||||
extern const u8 gText_BerriesInRowFivePlayers[];
|
||||
extern const u8 gText_BestScore[];
|
||||
extern const u8 gText_1Colon[];
|
||||
extern const u8 gText_2Colon[];
|
||||
extern const u8 gText_3Colon[];
|
||||
extern const u8 gText_4Colon[];
|
||||
extern const u8 gText_5Colon[];
|
||||
extern const u8 gText_SpacePoints[];
|
||||
extern const u8 gText_10P30P50P50P[];
|
||||
extern const u8 gText_AnnouncingPrizes[];
|
||||
extern const u8 gText_AnnouncingRankings[];
|
||||
extern const u8 gText_FirstPlacePrize[];
|
||||
extern const u8 gText_CantHoldAnyMore[];
|
||||
extern const u8 gText_FilledStorageSpace[];
|
||||
extern const u8 gText_BerryPickingResults[];
|
||||
extern const u8 gText_WantToPlayAgain[];
|
||||
extern const u8 gText_CommunicationStandby3[];
|
||||
extern const u8 gText_SomeoneDroppedOut[];
|
||||
|
||||
// Pokemon jump
|
||||
extern const u8 gText_WantToPlayAgain2[];
|
||||
extern const u8 gText_SomeoneDroppedOut2[];
|
||||
@ -2715,6 +2737,12 @@ extern const u8 gText_CommunicationStandby4[];
|
||||
extern const u8 gText_AwesomeWonF701F700[];
|
||||
extern const u8 gText_FilledStorageSpace2[];
|
||||
extern const u8 gText_CantHoldMore[];
|
||||
extern const u8 gText_SpacePoints2[];
|
||||
extern const u8 gText_SpaceTimes3[];
|
||||
extern const u8 gText_PkmnJumpRecords[];
|
||||
extern const u8 gText_JumpsInARow[];
|
||||
extern const u8 gText_BestScore2[];
|
||||
extern const u8 gText_ExcellentsInARow[];
|
||||
|
||||
// Pokenav Match Call
|
||||
extern const u8 gText_CallCantBeMadeHere[];
|
||||
@ -2723,4 +2751,35 @@ extern const u8 gText_NumberOfBattles[];
|
||||
extern const u8 gText_Unknown[];
|
||||
extern const u8 gText_TrainerCloseBy[];
|
||||
|
||||
// pokenav_unk_2
|
||||
extern const u8 gUnknown_085EBCC5[];
|
||||
extern const u8 gUnknown_085EBCE8[];
|
||||
extern const u8 gUnknown_085EBD01[];
|
||||
extern const u8 gUnknown_085EBD1C[];
|
||||
extern const u8 gUnknown_085EBD34[];
|
||||
extern const u8 gUnknown_085EBD83[];
|
||||
extern const u8 gUnknown_085EBDA2[];
|
||||
extern const u8 gUnknown_085EBDBF[];
|
||||
extern const u8 gUnknown_085EBDDB[];
|
||||
extern const u8 gUnknown_085EBDEE[];
|
||||
extern const u8 gUnknown_085EBE06[];
|
||||
extern const u8 gUnknown_085EBE19[];
|
||||
extern const u8 gUnknown_085EBE2D[];
|
||||
extern const u8 gUnknown_085EBE41[];
|
||||
|
||||
// pokenav_unk_4
|
||||
extern const u8 gUnknown_085EC017[];
|
||||
extern const u8 gUnknown_085EC01C[];
|
||||
extern const u8 gUnknown_085EC022[];
|
||||
|
||||
// pokenav_unk_10
|
||||
extern const u8 gText_RibbonsF700[];
|
||||
|
||||
// use_pokeblock
|
||||
extern const u8 gText_Coolness[];
|
||||
extern const u8 gText_Toughness[];
|
||||
extern const u8 gText_Smartness[];
|
||||
extern const u8 gText_Cuteness[];
|
||||
extern const u8 gText_Beauty3[];
|
||||
|
||||
#endif // GUARD_STRINGS_H
|
||||
|
@ -166,7 +166,11 @@ struct TextPrinter
|
||||
|
||||
void (*callback)(struct TextPrinterTemplate *, u16); // 0x10
|
||||
|
||||
union __attribute__((packed)) {
|
||||
union
|
||||
#if !MODERN
|
||||
__attribute__((packed))
|
||||
#endif
|
||||
{
|
||||
struct TextPrinterSubStruct sub;
|
||||
u8 fields[7];
|
||||
} subUnion;
|
||||
|
733
ld_script.txt
733
ld_script.txt
@ -47,294 +47,292 @@ SECTIONS {
|
||||
.text :
|
||||
ALIGN(4)
|
||||
{
|
||||
asm/crt0.o(.text);
|
||||
src/main.o(.text);
|
||||
src/alloc.o(.text);
|
||||
src/dma3_manager.o(.text);
|
||||
src/gpu_regs.o(.text);
|
||||
src/bg.o(.text);
|
||||
src/blit.o(.text);
|
||||
src/window.o(.text);
|
||||
src/text.o(.text);
|
||||
src/sprite.o(.text);
|
||||
src/string_util.o(.text);
|
||||
src/link.o(.text);
|
||||
src/link_rfu.o(.text);
|
||||
src/union_room.o(.text);
|
||||
src/mystery_gift.o(.text);
|
||||
src/union_room_player_avatar.o(.text);
|
||||
src/union_room_battle.o(.text);
|
||||
src/mevent2.o(.text);
|
||||
src/mevent_801BAAC.o(.text);
|
||||
src/mevent_server.o(.text);
|
||||
src/mevent_client.o(.text);
|
||||
src/mevent_server_helpers.o(.text);
|
||||
src/mevent_news.o(.text);
|
||||
src/union_room_chat.o(.text);
|
||||
src/berry_crush.o(.text);
|
||||
asm/berry_crush.o(.text);
|
||||
src/berry_powder.o(.text);
|
||||
src/dodrio_berry_picking.o(.text);
|
||||
asm/dodrio_berry_picking.o(.text);
|
||||
src/pokemon_jump.o(.text);
|
||||
asm/pokemon_jump.o(.text);
|
||||
src/rtc.o(.text);
|
||||
src/main_menu.o(.text);
|
||||
src/battle_controllers.o(.text);
|
||||
src/decompress.o(.text);
|
||||
src/rom_8034C54.o(.text);
|
||||
src/battle_bg.o(.text);
|
||||
src/battle_main.o(.text);
|
||||
src/battle_util.o(.text);
|
||||
src/battle_script_commands.o(.text);
|
||||
src/battle_util2.o(.text);
|
||||
src/battle_controller_player.o(.text);
|
||||
src/battle_gfx_sfx_util.o(.text);
|
||||
src/battle_controller_opponent.o(.text);
|
||||
src/battle_ai_switch_items.o(.text);
|
||||
src/battle_controller_link_opponent.o(.text);
|
||||
src/pokemon.o(.text);
|
||||
src/trig.o(.text);
|
||||
src/random.o(.text);
|
||||
src/util.o(.text);
|
||||
src/daycare.o(.text);
|
||||
src/egg_hatch.o(.text);
|
||||
src/battle_interface.o(.text);
|
||||
src/smokescreen.o(.text);
|
||||
src/pokeball.o(.text);
|
||||
src/load_save.o(.text);
|
||||
src/trade.o(.text);
|
||||
src/berry_blender.o(.text);
|
||||
src/play_time.o(.text);
|
||||
src/new_game.o(.text);
|
||||
src/overworld.o(.text);
|
||||
src/fieldmap.o(.text);
|
||||
src/metatile_behavior.o(.text);
|
||||
src/field_camera.o(.text);
|
||||
src/field_door.o(.text);
|
||||
src/field_player_avatar.o(.text);
|
||||
src/event_object_movement.o(.text);
|
||||
src/field_message_box.o(.text);
|
||||
src/event_obj_lock.o(.text);
|
||||
src/text_window.o(.text);
|
||||
src/script.o(.text);
|
||||
src/scrcmd.o(.text);
|
||||
src/field_control_avatar.o(.text);
|
||||
src/event_data.o(.text);
|
||||
src/coord_event_weather.o(.text);
|
||||
src/field_tasks.o(.text);
|
||||
src/clock.o(.text);
|
||||
src/reset_rtc_screen.o(.text);
|
||||
src/start_menu.o(.text);
|
||||
src/tileset_anims.o(.text);
|
||||
src/palette.o(.text);
|
||||
src/sound.o(.text);
|
||||
src/battle_anim.o(.text);
|
||||
src/battle_anim_mons.o(.text);
|
||||
src/task.o(.text);
|
||||
src/reshow_battle_screen.o(.text);
|
||||
src/battle_anim_status_effects.o(.text);
|
||||
src/title_screen.o(.text);
|
||||
src/field_weather.o(.text);
|
||||
src/field_weather_effect.o(.text);
|
||||
src/field_screen_effect.o(.text);
|
||||
src/battle_setup.o(.text);
|
||||
src/cable_club.o(.text);
|
||||
src/trainer_see.o(.text);
|
||||
src/wild_encounter.o(.text);
|
||||
src/field_effect.o(.text);
|
||||
src/scanline_effect.o(.text);
|
||||
src/option_menu.o(.text);
|
||||
src/pokedex.o(.text);
|
||||
src/trainer_card.o(.text);
|
||||
src/frontier_pass.o(.text);
|
||||
src/pokemon_storage_system.o(.text);
|
||||
src/pokemon_icon.o(.text);
|
||||
src/script_movement.o(.text);
|
||||
src/fldeff_cut.o(.text);
|
||||
src/mail_data.o(.text);
|
||||
src/map_name_popup.o(.text);
|
||||
src/item_menu_icons.o(.text);
|
||||
src/battle_anim_mon_movement.o(.text);
|
||||
src/item.o(.text);
|
||||
src/contest.o(.text);
|
||||
src/shop.o(.text);
|
||||
src/fldeff_escalator.o(.text);
|
||||
src/berry.o(.text);
|
||||
src/script_menu.o(.text);
|
||||
src/naming_screen.o(.text);
|
||||
src/money.o(.text);
|
||||
src/contest_effect.o(.text);
|
||||
src/record_mixing.o(.text);
|
||||
src/secret_base.o(.text);
|
||||
src/tv.o(.text);
|
||||
src/contest_link_80F57C4.o(.text);
|
||||
src/script_pokemon_util_80F87D8.o(.text);
|
||||
src/field_poison.o(.text);
|
||||
src/pokemon_size_record.o(.text);
|
||||
src/fldeff_misc.o(.text);
|
||||
src/field_special_scene.o(.text);
|
||||
src/rotating_gate.o(.text);
|
||||
src/safari_zone.o(.text);
|
||||
src/contest_link_80FC4F4.o(.text);
|
||||
src/item_use.o(.text);
|
||||
src/battle_anim_effects_1.o(.text);
|
||||
src/battle_anim_effects_2.o(.text);
|
||||
src/water.o(.text);
|
||||
src/fire.o(.text);
|
||||
src/electric.o(.text);
|
||||
src/ice.o(.text);
|
||||
src/fight.o(.text);
|
||||
src/poison.o(.text);
|
||||
src/flying.o(.text);
|
||||
src/psychic.o(.text);
|
||||
src/bug.o(.text);
|
||||
src/rock.o(.text);
|
||||
src/ghost.o(.text);
|
||||
src/dragon.o(.text);
|
||||
src/dark.o(.text);
|
||||
src/ground.o(.text);
|
||||
src/normal.o(.text);
|
||||
src/battle_anim_utility_funcs.o(.text);
|
||||
src/battle_intro.o(.text);
|
||||
src/bike.o(.text);
|
||||
src/easy_chat.o(.text);
|
||||
src/mon_markings.o(.text);
|
||||
src/mauville_old_man.o(.text);
|
||||
src/mail.o(.text);
|
||||
src/menu_helpers.o(.text);
|
||||
src/dewford_trend.o(.text);
|
||||
src/heal_location.o(.text);
|
||||
src/region_map.o(.text);
|
||||
src/contest_painting_effects.o(.text);
|
||||
src/decoration.o(.text);
|
||||
src/slot_machine.o(.text);
|
||||
src/contest_painting.o(.text);
|
||||
src/battle_ai_script_commands.o(.text);
|
||||
src/trader.o(.text);
|
||||
src/starter_choose.o(.text);
|
||||
src/wallclock.o(.text);
|
||||
src/fldeff_rocksmash.o(.text);
|
||||
src/fldeff_dig.o(.text);
|
||||
src/pokeblock.o(.text);
|
||||
src/fldeff_flash.o(.text);
|
||||
src/post_battle_event_funcs.o(.text);
|
||||
src/time_events.o(.text);
|
||||
src/birch_pc.o(.text);
|
||||
src/hof_pc.o(.text);
|
||||
src/field_specials.o(.text);
|
||||
src/battle_records.o(.text);
|
||||
src/pokedex_area_screen.o(.text);
|
||||
src/evolution_scene.o(.text);
|
||||
src/roulette.o(.text);
|
||||
src/pokedex_cry_screen.o(.text);
|
||||
src/coins.o(.text);
|
||||
src/landmark.o(.text);
|
||||
src/fldeff_strength.o(.text);
|
||||
src/battle_transition.o(.text);
|
||||
src/battle_controller_link_partner.o(.text);
|
||||
src/battle_message.o(.text);
|
||||
src/cable_car.o(.text);
|
||||
src/math_util.o(.text);
|
||||
src/roulette_util.o(.text);
|
||||
src/rom_81520A8.o(.text);
|
||||
src/save.o(.text);
|
||||
src/mystery_event_script.o(.text);
|
||||
src/field_effect_helpers.o(.text);
|
||||
src/contest_ai.o(.text);
|
||||
src/battle_anim_sound_tasks.o(.text);
|
||||
src/battle_controller_safari.o(.text);
|
||||
src/fldeff_sweetscent.o(.text);
|
||||
src/battle_anim_effects_3.o(.text);
|
||||
src/move_relearner.o(.text);
|
||||
src/fldeff_softboiled.o(.text);
|
||||
src/decoration_inventory.o(.text);
|
||||
src/roamer.o(.text);
|
||||
src/battle_tower.o(.text);
|
||||
src/use_pokeblock.o(.text);
|
||||
src/battle_controller_wally.o(.text);
|
||||
src/player_pc.o(.text);
|
||||
src/intro.o(.text);
|
||||
src/reset_save_heap.o(.text);
|
||||
src/field_region_map.o(.text);
|
||||
src/battle_anim_special.o(.text);
|
||||
src/hall_of_fame.o(.text);
|
||||
src/credits.o(.text);
|
||||
src/lottery_corner.o(.text);
|
||||
src/diploma.o(.text);
|
||||
src/berry_tag_screen.o(.text);
|
||||
src/mystery_event_menu.o(.text);
|
||||
src/save_failed_screen.o(.text);
|
||||
src/braille_puzzles.o(.text);
|
||||
src/pokeblock_feed.o(.text);
|
||||
src/clear_save_data_screen.o(.text);
|
||||
src/intro_credits_graphics.o(.text);
|
||||
src/evolution_graphics.o(.text);
|
||||
src/bard_music.o(.text);
|
||||
src/fldeff_teleport.o(.text);
|
||||
src/battle_tv.o(.text);
|
||||
src/pokemon_animation.o(.text);
|
||||
src/recorded_battle.o(.text);
|
||||
src/battle_controller_recorded_opponent.o(.text);
|
||||
src/battle_controller_recorded_player.o(.text);
|
||||
src/trainer_pokemon_sprites.o(.text);
|
||||
src/lilycove_lady.o(.text);
|
||||
src/battle_dome.o(.text);
|
||||
src/battle_palace.o(.text);
|
||||
src/match_call.o(.text);
|
||||
src/menu.o(.text);
|
||||
src/battle_factory_screen.o(.text);
|
||||
src/apprentice.o(.text);
|
||||
src/frontier_util.o(.text);
|
||||
src/battle_arena.o(.text);
|
||||
src/battle_factory.o(.text);
|
||||
src/battle_pike.o(.text);
|
||||
src/mossdeep_gym.o(.text);
|
||||
src/battle_pyramid.o(.text);
|
||||
src/item_menu.o(.text);
|
||||
src/list_menu.o(.text);
|
||||
src/dynamic_placeholder_text_util.o(.text);
|
||||
src/save_location.o(.text);
|
||||
src/item_icon.o(.text);
|
||||
src/party_menu.o(.text);
|
||||
src/battle_tent.o(.text);
|
||||
src/unk_text_util_2.o(.text);
|
||||
src/multiboot.o(.text);
|
||||
src/unk_81BAD84.o(.text);
|
||||
src/battle_controller_player_partner.o(.text);
|
||||
src/mirage_tower.o(.text);
|
||||
src/berry_fix_program.o(.text);
|
||||
src/pokemon_summary_screen.o(.text);
|
||||
src/unk_pokedex_area_screen_helper.o(.text);
|
||||
src/battle_pyramid_bag.o(.text);
|
||||
src/pokenav.o(.text);
|
||||
src/pokenav_main_menu.o(.text);
|
||||
src/pokenav_match_call_ui.o(.text);
|
||||
src/pokenav_unk_1.o(.text);
|
||||
src/pokenav_unk_2.o(.text);
|
||||
asm/pokenav_unk_2.o(.text);
|
||||
src/pokenav_unk_3.o(.text);
|
||||
src/pokenav_unk_4.o(.text);
|
||||
src/pokenav_unk_5.o(.text);
|
||||
asm/pokenav_unk_6.o(.text);
|
||||
asm/pokenav_unk_7.o(.text);
|
||||
asm/pokenav_unk_8.o(.text);
|
||||
asm/pokenav_unk_9.o(.text);
|
||||
asm/pokenav_unk_10.o(.text);
|
||||
src/pokenav_unk_10.o(.text);
|
||||
src/pokenav_match_call_data.o(.text);
|
||||
src/menu_specialized.o(.text);
|
||||
src/ereader_helpers.o(.text);
|
||||
src/faraway_island.o(.text);
|
||||
src/ereader_screen.o(.text);
|
||||
src/trainer_hill.o(.text);
|
||||
src/rayquaza_scene.o(.text);
|
||||
src/walda_phrase.o(.text);
|
||||
src/contest_link_81D9DE4.o(.text);
|
||||
src/gym_leader_rematch.o(.text);
|
||||
src/unk_transition.o(.text);
|
||||
src/international_string_util.o(.text);
|
||||
src/battle_debug.o(.text);
|
||||
asm/crt0.o(.text*);
|
||||
src/main.o(.text*);
|
||||
src/alloc.o(.text*);
|
||||
src/dma3_manager.o(.text*);
|
||||
src/gpu_regs.o(.text*);
|
||||
src/bg.o(.text*);
|
||||
src/blit.o(.text*);
|
||||
src/window.o(.text*);
|
||||
src/text.o(.text*);
|
||||
src/sprite.o(.text*);
|
||||
src/string_util.o(.text*);
|
||||
src/link.o(.text*);
|
||||
src/link_rfu.o(.text*);
|
||||
src/union_room.o(.text*);
|
||||
src/mystery_gift.o(.text*);
|
||||
src/union_room_player_avatar.o(.text*);
|
||||
src/union_room_battle.o(.text*);
|
||||
src/mevent2.o(.text*);
|
||||
src/mevent_801BAAC.o(.text*);
|
||||
src/mevent_server.o(.text*);
|
||||
src/mevent_client.o(.text*);
|
||||
src/mevent_server_helpers.o(.text*);
|
||||
src/mevent_news.o(.text*);
|
||||
src/union_room_chat.o(.text*);
|
||||
src/berry_crush.o(.text*);
|
||||
asm/berry_crush.o(.text*);
|
||||
src/berry_powder.o(.text*);
|
||||
src/dodrio_berry_picking.o(.text*);
|
||||
src/pokemon_jump.o(.text*);
|
||||
src/rtc.o(.text*);
|
||||
src/main_menu.o(.text*);
|
||||
src/battle_controllers.o(.text*);
|
||||
src/decompress.o(.text*);
|
||||
src/rom_8034C54.o(.text*);
|
||||
src/battle_bg.o(.text*);
|
||||
src/battle_main.o(.text*);
|
||||
src/battle_util.o(.text*);
|
||||
src/battle_script_commands.o(.text*);
|
||||
src/battle_util2.o(.text*);
|
||||
src/battle_controller_player.o(.text*);
|
||||
src/battle_gfx_sfx_util.o(.text*);
|
||||
src/battle_controller_opponent.o(.text*);
|
||||
src/battle_ai_switch_items.o(.text*);
|
||||
src/battle_controller_link_opponent.o(.text*);
|
||||
src/pokemon.o(.text*);
|
||||
src/trig.o(.text*);
|
||||
src/random.o(.text*);
|
||||
src/util.o(.text*);
|
||||
src/daycare.o(.text*);
|
||||
src/egg_hatch.o(.text*);
|
||||
src/battle_interface.o(.text*);
|
||||
src/smokescreen.o(.text*);
|
||||
src/pokeball.o(.text*);
|
||||
src/load_save.o(.text*);
|
||||
src/trade.o(.text*);
|
||||
src/berry_blender.o(.text*);
|
||||
src/play_time.o(.text*);
|
||||
src/new_game.o(.text*);
|
||||
src/overworld.o(.text*);
|
||||
src/fieldmap.o(.text*);
|
||||
src/metatile_behavior.o(.text*);
|
||||
src/field_camera.o(.text*);
|
||||
src/field_door.o(.text*);
|
||||
src/field_player_avatar.o(.text*);
|
||||
src/event_object_movement.o(.text*);
|
||||
src/field_message_box.o(.text*);
|
||||
src/event_obj_lock.o(.text*);
|
||||
src/text_window.o(.text*);
|
||||
src/script.o(.text*);
|
||||
src/scrcmd.o(.text*);
|
||||
src/field_control_avatar.o(.text*);
|
||||
src/event_data.o(.text*);
|
||||
src/coord_event_weather.o(.text*);
|
||||
src/field_tasks.o(.text*);
|
||||
src/clock.o(.text*);
|
||||
src/reset_rtc_screen.o(.text*);
|
||||
src/start_menu.o(.text*);
|
||||
src/tileset_anims.o(.text*);
|
||||
src/palette.o(.text*);
|
||||
src/sound.o(.text*);
|
||||
src/battle_anim.o(.text*);
|
||||
src/battle_anim_mons.o(.text*);
|
||||
src/task.o(.text*);
|
||||
src/reshow_battle_screen.o(.text*);
|
||||
src/battle_anim_status_effects.o(.text*);
|
||||
src/title_screen.o(.text*);
|
||||
src/field_weather.o(.text*);
|
||||
src/field_weather_effect.o(.text*);
|
||||
src/field_screen_effect.o(.text*);
|
||||
src/battle_setup.o(.text*);
|
||||
src/cable_club.o(.text*);
|
||||
src/trainer_see.o(.text*);
|
||||
src/wild_encounter.o(.text*);
|
||||
src/field_effect.o(.text*);
|
||||
src/scanline_effect.o(.text*);
|
||||
src/option_menu.o(.text*);
|
||||
src/pokedex.o(.text*);
|
||||
src/trainer_card.o(.text*);
|
||||
src/frontier_pass.o(.text*);
|
||||
src/pokemon_storage_system.o(.text*);
|
||||
src/pokemon_icon.o(.text*);
|
||||
src/script_movement.o(.text*);
|
||||
src/fldeff_cut.o(.text*);
|
||||
src/mail_data.o(.text*);
|
||||
src/map_name_popup.o(.text*);
|
||||
src/item_menu_icons.o(.text*);
|
||||
src/battle_anim_mon_movement.o(.text*);
|
||||
src/item.o(.text*);
|
||||
src/contest.o(.text*);
|
||||
src/shop.o(.text*);
|
||||
src/fldeff_escalator.o(.text*);
|
||||
src/berry.o(.text*);
|
||||
src/script_menu.o(.text*);
|
||||
src/naming_screen.o(.text*);
|
||||
src/money.o(.text*);
|
||||
src/contest_effect.o(.text*);
|
||||
src/record_mixing.o(.text*);
|
||||
src/secret_base.o(.text*);
|
||||
src/tv.o(.text*);
|
||||
src/contest_link_80F57C4.o(.text*);
|
||||
src/script_pokemon_util_80F87D8.o(.text*);
|
||||
src/field_poison.o(.text*);
|
||||
src/pokemon_size_record.o(.text*);
|
||||
src/fldeff_misc.o(.text*);
|
||||
src/field_special_scene.o(.text*);
|
||||
src/rotating_gate.o(.text*);
|
||||
src/safari_zone.o(.text*);
|
||||
src/contest_link_80FC4F4.o(.text*);
|
||||
src/item_use.o(.text*);
|
||||
src/battle_anim_effects_1.o(.text*);
|
||||
src/battle_anim_effects_2.o(.text*);
|
||||
src/water.o(.text*);
|
||||
src/fire.o(.text*);
|
||||
src/electric.o(.text*);
|
||||
src/ice.o(.text*);
|
||||
src/fight.o(.text*);
|
||||
src/poison.o(.text*);
|
||||
src/flying.o(.text*);
|
||||
src/psychic.o(.text*);
|
||||
src/bug.o(.text*);
|
||||
src/rock.o(.text*);
|
||||
src/ghost.o(.text*);
|
||||
src/dragon.o(.text*);
|
||||
src/dark.o(.text*);
|
||||
src/ground.o(.text*);
|
||||
src/normal.o(.text*);
|
||||
src/battle_anim_utility_funcs.o(.text*);
|
||||
src/battle_intro.o(.text*);
|
||||
src/bike.o(.text*);
|
||||
src/easy_chat.o(.text*);
|
||||
src/mon_markings.o(.text*);
|
||||
src/mauville_old_man.o(.text*);
|
||||
src/mail.o(.text*);
|
||||
src/menu_helpers.o(.text*);
|
||||
src/dewford_trend.o(.text*);
|
||||
src/heal_location.o(.text*);
|
||||
src/region_map.o(.text*);
|
||||
src/contest_painting_effects.o(.text*);
|
||||
src/decoration.o(.text*);
|
||||
src/slot_machine.o(.text*);
|
||||
src/contest_painting.o(.text*);
|
||||
src/battle_ai_script_commands.o(.text*);
|
||||
src/trader.o(.text*);
|
||||
src/starter_choose.o(.text*);
|
||||
src/wallclock.o(.text*);
|
||||
src/fldeff_rocksmash.o(.text*);
|
||||
src/fldeff_dig.o(.text*);
|
||||
src/pokeblock.o(.text*);
|
||||
src/fldeff_flash.o(.text*);
|
||||
src/post_battle_event_funcs.o(.text*);
|
||||
src/time_events.o(.text*);
|
||||
src/birch_pc.o(.text*);
|
||||
src/hof_pc.o(.text*);
|
||||
src/field_specials.o(.text*);
|
||||
src/battle_records.o(.text*);
|
||||
src/pokedex_area_screen.o(.text*);
|
||||
src/evolution_scene.o(.text*);
|
||||
src/roulette.o(.text*);
|
||||
src/pokedex_cry_screen.o(.text*);
|
||||
src/coins.o(.text*);
|
||||
src/landmark.o(.text*);
|
||||
src/fldeff_strength.o(.text*);
|
||||
src/battle_transition.o(.text*);
|
||||
src/battle_controller_link_partner.o(.text*);
|
||||
src/battle_message.o(.text*);
|
||||
src/cable_car.o(.text*);
|
||||
src/math_util.o(.text*);
|
||||
src/roulette_util.o(.text*);
|
||||
src/rom_81520A8.o(.text*);
|
||||
src/save.o(.text*);
|
||||
src/mystery_event_script.o(.text*);
|
||||
src/field_effect_helpers.o(.text*);
|
||||
src/contest_ai.o(.text*);
|
||||
src/battle_anim_sound_tasks.o(.text*);
|
||||
src/battle_controller_safari.o(.text*);
|
||||
src/fldeff_sweetscent.o(.text*);
|
||||
src/battle_anim_effects_3.o(.text*);
|
||||
src/move_relearner.o(.text*);
|
||||
src/fldeff_softboiled.o(.text*);
|
||||
src/decoration_inventory.o(.text*);
|
||||
src/roamer.o(.text*);
|
||||
src/battle_tower.o(.text*);
|
||||
src/use_pokeblock.o(.text*);
|
||||
src/battle_controller_wally.o(.text*);
|
||||
src/player_pc.o(.text*);
|
||||
src/intro.o(.text*);
|
||||
src/reset_save_heap.o(.text*);
|
||||
src/field_region_map.o(.text*);
|
||||
src/battle_anim_special.o(.text*);
|
||||
src/hall_of_fame.o(.text*);
|
||||
src/credits.o(.text*);
|
||||
src/lottery_corner.o(.text*);
|
||||
src/diploma.o(.text*);
|
||||
src/berry_tag_screen.o(.text*);
|
||||
src/mystery_event_menu.o(.text*);
|
||||
src/save_failed_screen.o(.text*);
|
||||
src/braille_puzzles.o(.text*);
|
||||
src/pokeblock_feed.o(.text*);
|
||||
src/clear_save_data_screen.o(.text*);
|
||||
src/intro_credits_graphics.o(.text*);
|
||||
src/evolution_graphics.o(.text*);
|
||||
src/bard_music.o(.text*);
|
||||
src/fldeff_teleport.o(.text*);
|
||||
src/battle_tv.o(.text*);
|
||||
src/pokemon_animation.o(.text*);
|
||||
src/recorded_battle.o(.text*);
|
||||
src/battle_controller_recorded_opponent.o(.text*);
|
||||
src/battle_controller_recorded_player.o(.text*);
|
||||
src/trainer_pokemon_sprites.o(.text*);
|
||||
src/lilycove_lady.o(.text*);
|
||||
src/battle_dome.o(.text*);
|
||||
src/battle_palace.o(.text*);
|
||||
src/match_call.o(.text*);
|
||||
src/menu.o(.text*);
|
||||
src/battle_factory_screen.o(.text*);
|
||||
src/apprentice.o(.text*);
|
||||
src/frontier_util.o(.text*);
|
||||
src/battle_arena.o(.text*);
|
||||
src/battle_factory.o(.text*);
|
||||
src/battle_pike.o(.text*);
|
||||
src/mossdeep_gym.o(.text*);
|
||||
src/battle_pyramid.o(.text*);
|
||||
src/item_menu.o(.text*);
|
||||
src/list_menu.o(.text*);
|
||||
src/dynamic_placeholder_text_util.o(.text*);
|
||||
src/save_location.o(.text*);
|
||||
src/item_icon.o(.text*);
|
||||
src/party_menu.o(.text*);
|
||||
src/battle_tent.o(.text*);
|
||||
src/unk_text_util_2.o(.text*);
|
||||
src/multiboot.o(.text*);
|
||||
src/unk_81BAD84.o(.text*);
|
||||
src/battle_controller_player_partner.o(.text*);
|
||||
src/mirage_tower.o(.text*);
|
||||
src/berry_fix_program.o(.text*);
|
||||
src/pokemon_summary_screen.o(.text*);
|
||||
src/unk_pokedex_area_screen_helper.o(.text*);
|
||||
src/battle_pyramid_bag.o(.text*);
|
||||
src/pokenav.o(.text*);
|
||||
src/pokenav_main_menu.o(.text*);
|
||||
src/pokenav_match_call_ui.o(.text*);
|
||||
src/pokenav_unk_1.o(.text*);
|
||||
src/pokenav_unk_2.o(.text*);
|
||||
asm/pokenav_unk_2.o(.text*);
|
||||
src/pokenav_unk_3.o(.text*);
|
||||
src/pokenav_unk_4.o(.text*);
|
||||
src/pokenav_unk_5.o(.text*);
|
||||
src/pokenav_unk_6.o(.text*);
|
||||
src/pokenav_unk_7.o(.text*);
|
||||
src/pokenav_unk_8.o(.text*);
|
||||
asm/pokenav_unk_8.o(.text*);
|
||||
asm/pokenav_unk_9.o(.text*);
|
||||
src/pokenav_unk_10.o(.text*);
|
||||
src/pokenav_match_call_data.o(.text*);
|
||||
src/menu_specialized.o(.text*);
|
||||
src/ereader_helpers.o(.text*);
|
||||
src/faraway_island.o(.text*);
|
||||
src/ereader_screen.o(.text*);
|
||||
src/trainer_hill.o(.text*);
|
||||
src/rayquaza_scene.o(.text*);
|
||||
src/walda_phrase.o(.text*);
|
||||
src/contest_link_81D9DE4.o(.text*);
|
||||
src/gym_leader_rematch.o(.text*);
|
||||
src/unk_transition.o(.text*);
|
||||
src/battle_debug.o(.text*);
|
||||
src/international_string_util.o(.text*);
|
||||
} =0
|
||||
|
||||
script_data :
|
||||
@ -353,70 +351,71 @@ SECTIONS {
|
||||
lib_text :
|
||||
ALIGN(4)
|
||||
{
|
||||
asm/libgcnmultiboot.o(.text);
|
||||
asm/m4a_1.o(.text);
|
||||
src/m4a.o(.text);
|
||||
src/agb_flash.o(.text);
|
||||
src/agb_flash_1m.o(.text);
|
||||
src/agb_flash_mx.o(.text);
|
||||
src/siirtc.o(.text);
|
||||
src/librfu_stwi.o(.text);
|
||||
src/librfu_intr.o(.text);
|
||||
asm/librfu_intr.o(.text);
|
||||
src/librfu_rfu.o(.text);
|
||||
asm/librfu.o(.text);
|
||||
asm/libagbsyscall.o(.text);
|
||||
*libgcc.a:_call_via_rX.o(.text);
|
||||
*libgcc.a:_divdi3.o(.text);
|
||||
*libgcc.a:_divsi3.o(.text);
|
||||
*libgcc.a:_dvmd_tls.o(.text);
|
||||
*libgcc.a:_fixunsdfsi.o(.text);
|
||||
*libgcc.a:_fixunssfsi.o(.text);
|
||||
*libgcc.a:_modsi3.o(.text);
|
||||
*libgcc.a:_muldi3.o(.text);
|
||||
*libgcc.a:_udivdi3.o(.text);
|
||||
*libgcc.a:_udivsi3.o(.text);
|
||||
*libgcc.a:_umodsi3.o(.text);
|
||||
*libgcc.a:dp-bit.o(.text);
|
||||
*libgcc.a:fp-bit.o(.text);
|
||||
*libgcc.a:_lshrdi3.o(.text);
|
||||
*libgcc.a:_negdi2.o(.text);
|
||||
*libc.a:memcpy.o(.text);
|
||||
*libc.a:memset.o(.text);
|
||||
*libc.a:strcmp.o(.text);
|
||||
*libc.a:strcpy.o(.text);
|
||||
*libc.a:vfprintf.o(.text);
|
||||
*libc.a:vsprintf.o(.text);
|
||||
*libc.a:fvwrite.o(.text);
|
||||
*libc.a:locale.o(.text);
|
||||
*libc.a:findfp.o(.text);
|
||||
*libc.a:fflush.o(.text);
|
||||
*libc.a:wsetup.o(.text);
|
||||
*libc.a:mbtowc_r.o(.text);
|
||||
*libc.a:s_isinf.o(.text);
|
||||
*libc.a:s_isnan.o(.text);
|
||||
*libc.a:memchr.o(.text);
|
||||
*libc.a:strlen.o(.text);
|
||||
*libc.a:dtoa.o(.text);
|
||||
*libc.a:memmove.o(.text);
|
||||
*libc.a:stdio.o(.text);
|
||||
*libc.a:mprec.o(.text);
|
||||
*libc.a:mallocr.o(.text);
|
||||
*libc.a:fwalk.o(.text);
|
||||
*libc.a:freer.o(.text);
|
||||
*libc.a:makebuf.o(.text);
|
||||
*libc.a:readr.o(.text);
|
||||
*libc.a:writer.o(.text);
|
||||
*libc.a:lseekr.o(.text);
|
||||
*libc.a:closer.o(.text);
|
||||
*libc.a:callocr.o(.text);
|
||||
*libc.a:sbrkr.o(.text);
|
||||
*libc.a:mlock.o(.text);
|
||||
*libc.a:fstatr.o(.text);
|
||||
*libc.a:libcfunc.o(.text);
|
||||
*libc.a:syscalls.o(.text);
|
||||
*libc.a:errno.o(.text);
|
||||
src/libisagbprn.o(.text);
|
||||
asm/libgcnmultiboot.o(.text*);
|
||||
asm/m4a_1.o(.text*);
|
||||
src/m4a.o(.text*);
|
||||
src/agb_flash.o(.text*);
|
||||
src/agb_flash_1m.o(.text*);
|
||||
src/agb_flash_mx.o(.text*);
|
||||
src/siirtc.o(.text*);
|
||||
src/librfu_stwi.o(.text*);
|
||||
src/librfu_intr.o(.text*);
|
||||
asm/librfu_intr.o(.text*);
|
||||
src/librfu_rfu.o(.text*);
|
||||
src/librfu.o(.text*);
|
||||
asm/librfu.o(.text*);
|
||||
asm/libagbsyscall.o(.text*);
|
||||
*libgcc.a:_call_via_rX.o(.text*);
|
||||
*libgcc.a:_divdi3.o(.text*);
|
||||
*libgcc.a:_divsi3.o(.text*);
|
||||
*libgcc.a:_dvmd_tls.o(.text*);
|
||||
*libgcc.a:_fixunsdfsi.o(.text*);
|
||||
*libgcc.a:_fixunssfsi.o(.text*);
|
||||
*libgcc.a:_modsi3.o(.text*);
|
||||
*libgcc.a:_muldi3.o(.text*);
|
||||
*libgcc.a:_udivdi3.o(.text*);
|
||||
*libgcc.a:_udivsi3.o(.text*);
|
||||
*libgcc.a:_umodsi3.o(.text*);
|
||||
*libgcc.a:dp-bit.o(.text*);
|
||||
*libgcc.a:fp-bit.o(.text*);
|
||||
*libgcc.a:_lshrdi3.o(.text*);
|
||||
*libgcc.a:_negdi2.o(.text*);
|
||||
*libc.a:memcpy.o(.text*);
|
||||
*libc.a:memset.o(.text*);
|
||||
*libc.a:strcmp.o(.text*);
|
||||
*libc.a:strcpy.o(.text*);
|
||||
*libc.a:vfprintf.o(.text*);
|
||||
*libc.a:vsprintf.o(.text*);
|
||||
*libc.a:fvwrite.o(.text*);
|
||||
*libc.a:locale.o(.text*);
|
||||
*libc.a:findfp.o(.text*);
|
||||
*libc.a:fflush.o(.text*);
|
||||
*libc.a:wsetup.o(.text*);
|
||||
*libc.a:mbtowc_r.o(.text*);
|
||||
*libc.a:s_isinf.o(.text*);
|
||||
*libc.a:s_isnan.o(.text*);
|
||||
*libc.a:memchr.o(.text*);
|
||||
*libc.a:strlen.o(.text*);
|
||||
*libc.a:dtoa.o(.text*);
|
||||
*libc.a:memmove.o(.text*);
|
||||
*libc.a:stdio.o(.text*);
|
||||
*libc.a:mprec.o(.text*);
|
||||
*libc.a:mallocr.o(.text*);
|
||||
*libc.a:fwalk.o(.text*);
|
||||
*libc.a:freer.o(.text*);
|
||||
*libc.a:makebuf.o(.text*);
|
||||
*libc.a:readr.o(.text*);
|
||||
*libc.a:writer.o(.text*);
|
||||
*libc.a:lseekr.o(.text*);
|
||||
*libc.a:closer.o(.text*);
|
||||
*libc.a:callocr.o(.text*);
|
||||
*libc.a:sbrkr.o(.text*);
|
||||
*libc.a:mlock.o(.text*);
|
||||
*libc.a:fstatr.o(.text*);
|
||||
*libc.a:libcfunc.o(.text*);
|
||||
*libc.a:syscalls.o(.text*);
|
||||
*libc.a:errno.o(.text*);
|
||||
src/libisagbprn.o(.text*);
|
||||
} =0
|
||||
|
||||
.rodata :
|
||||
@ -430,7 +429,9 @@ SECTIONS {
|
||||
data/io_reg.o(.rodata);
|
||||
src/string_util.o(.rodata);
|
||||
src/link.o(.rodata);
|
||||
src/link.o(.rodata.str1.4);
|
||||
src/link_rfu.o(.rodata);
|
||||
src/link_rfu.o(.rodata.str1.4);
|
||||
src/union_room.o(.rodata);
|
||||
src/mystery_gift.o(.rodata);
|
||||
src/union_room_player_avatar.o(.rodata);
|
||||
@ -441,14 +442,14 @@ SECTIONS {
|
||||
src/mevent_client.o(.rodata);
|
||||
src/mevent_scripts.o(.rodata);
|
||||
src/union_room_chat.o(.rodata);
|
||||
src/berry_crush.o(.rodata);
|
||||
data/berry_crush.o(.rodata);
|
||||
data/berry_powder.o(.rodata);
|
||||
src/dodrio_berry_picking.o(.rodata);
|
||||
data/dodrio_berry_picking.o(.rodata);
|
||||
src/pokemon_jump.o(.rodata);
|
||||
data/pokemon_jump.o(.rodata);
|
||||
src/rtc.o(.rodata);
|
||||
src/main_menu.o(.rodata);
|
||||
src/battle_controllers.o(.rodata);
|
||||
src/rom_8034C54.o(.rodata);
|
||||
src/data.o(.rodata);
|
||||
src/battle_bg.o(.rodata);
|
||||
@ -458,6 +459,7 @@ SECTIONS {
|
||||
src/battle_controller_player.o(.rodata);
|
||||
data/smokescreen.o(.rodata);
|
||||
src/battle_controller_opponent.o(.rodata);
|
||||
src/battle_ai_switch_items.o(.rodata);
|
||||
src/battle_controller_link_opponent.o(.rodata);
|
||||
src/pokemon.o(.rodata);
|
||||
src/trig.o(.rodata);
|
||||
@ -480,6 +482,7 @@ SECTIONS {
|
||||
src/event_object_movement.o(.rodata);
|
||||
src/text_window.o(.rodata);
|
||||
src/scrcmd.o(.rodata);
|
||||
src/field_control_avatar.o(.rodata);
|
||||
src/coord_event_weather.o(.rodata);
|
||||
src/field_tasks.o(.rodata);
|
||||
src/reset_rtc_screen.o(.rodata);
|
||||
@ -490,6 +493,7 @@ SECTIONS {
|
||||
src/battle_anim.o(.rodata);
|
||||
src/battle_anim_mons.o(.rodata);
|
||||
data/map_events.o(.rodata);
|
||||
src/reshow_battle_screen.o(.rodata);
|
||||
src/battle_anim_status_effects.o(.rodata);
|
||||
src/title_screen.o(.rodata);
|
||||
src/field_weather.o(.rodata);
|
||||
@ -500,6 +504,7 @@ SECTIONS {
|
||||
src/trainer_see.o(.rodata);
|
||||
src/wild_encounter.o(.rodata);
|
||||
src/field_effect.o(.rodata);
|
||||
src/scanline_effect.o(.rodata);
|
||||
src/option_menu.o(.rodata);
|
||||
src/pokedex.o(.rodata);
|
||||
src/trainer_card.o(.rodata);
|
||||
@ -522,12 +527,14 @@ SECTIONS {
|
||||
src/record_mixing.o(.rodata);
|
||||
src/secret_base.o(.rodata);
|
||||
src/tv.o(.rodata);
|
||||
src/contest_link_80F57C4.o(.rodata);
|
||||
data/contest_link_80F57C4.o(.rodata);
|
||||
src/script_pokemon_util_80F87D8.o(.rodata);
|
||||
src/pokemon_size_record.o(.rodata)
|
||||
src/fldeff_misc.o(.rodata);
|
||||
src/field_special_scene.o(.rodata);
|
||||
src/rotating_gate.o(.rodata);
|
||||
src/contest_link_80FC4F4.o(.rodata);
|
||||
src/item_use.o(.rodata);
|
||||
src/battle_anim_effects_1.o(.rodata);
|
||||
src/battle_anim_effects_2.o(.rodata);
|
||||
@ -556,6 +563,7 @@ SECTIONS {
|
||||
src/menu_helpers.o(.rodata);
|
||||
src/heal_location.o(.rodata);
|
||||
src/region_map.o(.rodata);
|
||||
src/contest_painting_effects.o(.rodata);
|
||||
data/contest_painting_effects.o(.rodata);
|
||||
src/decoration.o(.rodata);
|
||||
src/slot_machine.o(.rodata);
|
||||
@ -582,13 +590,13 @@ SECTIONS {
|
||||
src/save.o(.rodata);
|
||||
src/field_effect_helpers.o(.rodata);
|
||||
src/contest_ai.o(.rodata);
|
||||
src/battle_anim_sound_tasks.o(.rodata);
|
||||
src/battle_controller_safari.o(.rodata);
|
||||
src/battle_anim_effects_3.o(.rodata);
|
||||
src/move_relearner.o(.rodata);
|
||||
src/roamer.o(.rodata);
|
||||
src/battle_tower.o(.rodata);
|
||||
src/use_pokeblock.o(.rodata);
|
||||
data/use_pokeblock.o(.rodata);
|
||||
src/battle_controller_wally.o(.rodata);
|
||||
src/player_pc.o(.rodata);
|
||||
src/intro.o(.rodata);
|
||||
@ -624,6 +632,7 @@ SECTIONS {
|
||||
src/battle_arena.o(.rodata);
|
||||
src/battle_factory.o(.rodata);
|
||||
src/battle_pike.o(.rodata);
|
||||
src/mossdeep_gym.o(.rodata);
|
||||
data/mossdeep_gym.o(.rodata);
|
||||
src/battle_pyramid.o(.rodata);
|
||||
src/item_menu.o(.rodata);
|
||||
@ -633,6 +642,7 @@ SECTIONS {
|
||||
src/party_menu.o(.rodata);
|
||||
src/battle_tent.o(.rodata);
|
||||
src/unk_text_util_2.o(.rodata);
|
||||
src/multiboot.o(.rodata);
|
||||
src/unk_81BAD84.o(.rodata);
|
||||
src/battle_controller_player_partner.o(.rodata);
|
||||
src/mirage_tower.o(.rodata);
|
||||
@ -644,25 +654,33 @@ SECTIONS {
|
||||
src/pokenav_main_menu.o(.rodata);
|
||||
src/pokenav_match_call_ui.o(.rodata);
|
||||
src/pokenav_unk_1.o(.rodata);
|
||||
data/pokenav.o(.rodata);
|
||||
src/pokenav_unk_2.o(.rodata);
|
||||
src/pokenav_unk_3.o(.rodata);
|
||||
src/pokenav_unk_4.o(.rodata);
|
||||
src/pokenav_unk_5.o(.rodata);
|
||||
src/pokenav_unk_7.o(.rodata);
|
||||
src/pokenav_unk_8.o(.rodata);
|
||||
src/pokenav_unk_9.o(.rodata);
|
||||
src/pokenav_unk_10.o(.rodata);
|
||||
src/pokenav_match_call_data.o(.rodata);
|
||||
src/menu_specialized.o(.rodata);
|
||||
src/ereader_helpers.o(.rodata);
|
||||
data/ereader_helpers.o(.rodata);
|
||||
src/faraway_island.o(.rodata);
|
||||
src/ereader_screen.o(.rodata);
|
||||
data/ereader_screen.o(.rodata);
|
||||
src/trainer_hill.o(.rodata);
|
||||
src/rayquaza_scene.o(.rodata);
|
||||
src/walda_phrase.o(.rodata);
|
||||
src/gym_leader_rematch.o(.rodata);
|
||||
src/unk_transition.o(.rodata);
|
||||
src/battle_debug.o(.rodata);
|
||||
data/text_input_strings.o(.rodata);
|
||||
data/fonts.o(.rodata);
|
||||
src/mystery_event_msg.o(.rodata);
|
||||
data/mystery_event_msg.o(.rodata);
|
||||
src/m4a_tables.o(.rodata);
|
||||
data/sound_data.o(.rodata);
|
||||
src/battle_debug.o(.rodata);
|
||||
} =0
|
||||
|
||||
song_data :
|
||||
@ -1203,6 +1221,7 @@ SECTIONS {
|
||||
lib_rodata :
|
||||
SUBALIGN(4)
|
||||
{
|
||||
src/m4a.o(.rodata);
|
||||
src/agb_flash.o(.rodata);
|
||||
src/agb_flash_1m.o(.rodata);
|
||||
src/agb_flash_mx.o(.rodata);
|
||||
|
156
ld_script_modern.txt
Normal file
156
ld_script_modern.txt
Normal file
@ -0,0 +1,156 @@
|
||||
ENTRY(Start)
|
||||
|
||||
gNumMusicPlayers = 4;
|
||||
gMaxLines = 0;
|
||||
|
||||
SECTIONS {
|
||||
. = 0x2000000;
|
||||
|
||||
ewram (NOLOAD) :
|
||||
ALIGN(4)
|
||||
{
|
||||
gHeap = .;
|
||||
|
||||
. = 0x1C000;
|
||||
|
||||
src/*.o(ewram_data);
|
||||
|
||||
. = 0x40000;
|
||||
}
|
||||
|
||||
. = 0x3000000;
|
||||
|
||||
iwram (NOLOAD) :
|
||||
ALIGN(4)
|
||||
{
|
||||
/* .bss starts at 0x3000000 */
|
||||
src/*.o(.bss);
|
||||
asm/m4a_1.o(.bss);
|
||||
|
||||
/* .bss.code starts at 0x3001AA8 */
|
||||
src/m4a.o(.bss.code);
|
||||
|
||||
/* COMMON starts at 0x30022A8 */
|
||||
src/*.o(COMMON);
|
||||
*libc.a:sbrkr.o(COMMON);
|
||||
end = .;
|
||||
. = 0x8000;
|
||||
}
|
||||
|
||||
. = 0x8000000;
|
||||
|
||||
.text :
|
||||
ALIGN(4)
|
||||
{
|
||||
asm/crt0.o(.text);
|
||||
src/*.o(.text);
|
||||
asm/*.o(.text);
|
||||
} =0
|
||||
|
||||
script_data :
|
||||
ALIGN(4)
|
||||
{
|
||||
data/*.o(script_data);
|
||||
} =0
|
||||
|
||||
lib_text :
|
||||
ALIGN(4)
|
||||
{
|
||||
asm/libgcnmultiboot.o(.text);
|
||||
asm/m4a_1.o(.text);
|
||||
src/m4a.o(.text);
|
||||
src/agb_flash.o(.text);
|
||||
src/agb_flash_1m.o(.text);
|
||||
src/agb_flash_mx.o(.text);
|
||||
src/siirtc.o(.text);
|
||||
src/librfu_stwi.o(.text);
|
||||
src/librfu_intr.o(.text);
|
||||
asm/librfu_intr.o(.text);
|
||||
src/librfu_rfu.o(.text);
|
||||
asm/librfu.o(.text);
|
||||
asm/libagbsyscall.o(.text);
|
||||
*libgcc.a:*.o(.text*);
|
||||
*libc.a:*.o(.text*);
|
||||
src/libisagbprn.o(.text);
|
||||
} =0
|
||||
|
||||
.rodata :
|
||||
ALIGN(4)
|
||||
{
|
||||
src/*.o(.rodata*);
|
||||
data/*.o(.rodata*);
|
||||
} =0
|
||||
|
||||
song_data :
|
||||
ALIGN(4)
|
||||
{
|
||||
sound/songs/*.o(.rodata);
|
||||
} =0
|
||||
|
||||
lib_rodata :
|
||||
SUBALIGN(4)
|
||||
{
|
||||
src/m4a.o(.rodata);
|
||||
src/agb_flash.o(.rodata);
|
||||
src/agb_flash_1m.o(.rodata);
|
||||
src/agb_flash_mx.o(.rodata);
|
||||
src/agb_flash_le.o(.rodata);
|
||||
src/siirtc.o(.rodata);
|
||||
data/librfu_rodata.o(.rodata);
|
||||
*libgcc.a:*.o(.rodata*);
|
||||
*libc.a:*.o(.rodata*);
|
||||
*libc.a:*.o(.data*);
|
||||
src/libisagbprn.o(.rodata);
|
||||
} =0
|
||||
|
||||
other_data :
|
||||
ALIGN(4)
|
||||
{
|
||||
data/unknown_serial_data.o(.rodata);
|
||||
data/multiboot_berry_glitch_fix.o(.rodata);
|
||||
data/multiboot_pokemon_colosseum.o(.rodata);
|
||||
} =0
|
||||
|
||||
anim_mon_front_pic_data :
|
||||
ALIGN(4)
|
||||
{
|
||||
src/anim_mon_front_pics.o(.rodata);
|
||||
} =0
|
||||
|
||||
gfx_data :
|
||||
ALIGN(4)
|
||||
{
|
||||
src/graphics.o(.rodata);
|
||||
} =0
|
||||
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
|
||||
/* Discard everything not specifically mentioned above. */
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(*);
|
||||
}
|
||||
}
|
@ -6338,21 +6338,19 @@ static void sub_8102D8C(s16 a, s16 b, s16* c, s16* d, s8 e)
|
||||
|
||||
static void sub_8102DE4(struct Sprite* sprite)
|
||||
{
|
||||
int b;
|
||||
s16 a;
|
||||
int c;
|
||||
s16 y, yDelta;
|
||||
u8 index;
|
||||
|
||||
sprite->data[0]++;
|
||||
b = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8);
|
||||
yDelta = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8);
|
||||
sprite->data[4] += sprite->data[6];
|
||||
sprite->data[5] += sprite->data[7];
|
||||
sprite->pos1.x = sprite->data[4] >> 4;
|
||||
sprite->pos1.y = sprite->data[5] >> 4;
|
||||
sprite->pos2.y = Sin(b, 15);
|
||||
a = (u16)sprite->pos1.y;
|
||||
c = (u16)sprite->pos1.x;
|
||||
sprite->pos2.y = Sin(yDelta, 15);
|
||||
|
||||
if ((u32)((c + 16) << 16) > (0x110) << 16 || a < -16 || a > 0x80)
|
||||
y = sprite->pos1.y;
|
||||
if (sprite->pos1.x < -16 || sprite->pos1.x > 256 || y < -16 || y > 128)
|
||||
{
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
@ -6373,12 +6371,8 @@ static void sub_8102DE4(struct Sprite* sprite)
|
||||
|
||||
void sub_8102EB0(struct Sprite* sprite)
|
||||
{
|
||||
int a;
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
|
||||
{
|
||||
a = gBattleAnimArgs[1];
|
||||
(u16)gBattleAnimArgs[1] = -a;
|
||||
}
|
||||
gBattleAnimArgs[1] *= -1;
|
||||
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1];
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2];
|
||||
@ -6564,8 +6558,8 @@ static void sub_8103300(struct Sprite* sprite)
|
||||
|
||||
static void sub_8103320(struct Sprite* sprite)
|
||||
{
|
||||
s16 temp;
|
||||
s16 temp2;
|
||||
s16 x1, x2;
|
||||
|
||||
sprite->data[1] += 4;
|
||||
if (sprite->data[1] > 254)
|
||||
{
|
||||
@ -6587,20 +6581,21 @@ static void sub_8103320(struct Sprite* sprite)
|
||||
if (sprite->data[1] > 0x9F)
|
||||
sprite->subpriority = sprite->data[2];
|
||||
|
||||
temp = gSineTable[sprite->data[1]];
|
||||
sprite->pos2.x = (temp2 = temp >> 3) + (temp2 >> 1);
|
||||
x1 = gSineTable[sprite->data[1]];
|
||||
x2 = x1 >> 3;
|
||||
sprite->pos2.x = (x1 >> 3) + (x2 >> 1);
|
||||
}
|
||||
|
||||
void sub_8103390(struct Sprite* sprite)
|
||||
{
|
||||
u8 bank;
|
||||
u8 battler;
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
bank = gBattleAnimAttacker;
|
||||
battler = gBattleAnimAttacker;
|
||||
else
|
||||
bank = gBattleAnimTarget;
|
||||
battler = gBattleAnimTarget;
|
||||
|
||||
sub_810310C(bank, sprite);
|
||||
if (GetBattlerSide(bank) == B_SIDE_PLAYER)
|
||||
sub_810310C(battler, sprite);
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
{
|
||||
StartSpriteAnim(sprite, 0);
|
||||
sprite->data[0] = 2;
|
||||
|
@ -2548,13 +2548,10 @@ void sub_815BE04(struct Sprite *sprite)
|
||||
|
||||
static void sub_815BF44(struct Sprite *sprite)
|
||||
{
|
||||
int var0;
|
||||
s8 var1;
|
||||
|
||||
var0 = (u16)sprite->data[2] + (u16)sprite->data[3];
|
||||
var1 = var0 >> 8;
|
||||
sprite->pos2.y -= var1;
|
||||
sprite->data[3] = var0 & 0xFF;
|
||||
s16 delta = sprite->data[3] + sprite->data[2];
|
||||
sprite->pos2.y -= delta >> 8;
|
||||
sprite->data[3] += sprite->data[2];
|
||||
sprite->data[3] &= 0xFF;
|
||||
if (sprite->data[4] == 0 && sprite->pos2.y < -8)
|
||||
{
|
||||
gSprites[sprite->data[6]].invisible = 0;
|
||||
@ -2587,19 +2584,12 @@ static void sub_815BFF4(struct Sprite *sprite)
|
||||
|
||||
static void sub_815C050(struct Sprite *sprite)
|
||||
{
|
||||
u16 d2;
|
||||
register u16 d3 asm("r1");
|
||||
int var0;
|
||||
s8 var1;
|
||||
|
||||
if (!sprite->invisible)
|
||||
{
|
||||
d2 = sprite->data[2];
|
||||
d3 = sprite->data[3];
|
||||
var0 = d2 + d3;
|
||||
var1 = var0 >> 8;
|
||||
sprite->pos2.y -= var1;
|
||||
sprite->data[3] = var0 & 0xFF;
|
||||
s16 delta = sprite->data[3] + sprite->data[2];
|
||||
sprite->pos2.y -= delta >> 8;
|
||||
sprite->data[3] += sprite->data[2];
|
||||
sprite->data[3] &= 0xFF;
|
||||
if (--sprite->data[1] == -1)
|
||||
{
|
||||
sprite->invisible = 1;
|
||||
|
@ -2037,7 +2037,7 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority
|
||||
gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000);
|
||||
if (!isBackpic)
|
||||
{
|
||||
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||
if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->field_17C,
|
||||
@ -2053,7 +2053,7 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||
if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
|
||||
gMonSpritesGfxPtr->field_17C,
|
||||
|
@ -830,15 +830,11 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
// fix me
|
||||
void sub_8033648(void)
|
||||
{
|
||||
u8 i;
|
||||
s32 j;
|
||||
u16 r6;
|
||||
u8 *recvBuffer;
|
||||
u8 *dest;
|
||||
u8 *src;
|
||||
|
||||
if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_20))
|
||||
{
|
||||
@ -849,25 +845,24 @@ void sub_8033648(void)
|
||||
{
|
||||
ResetBlockReceivedFlag(i);
|
||||
recvBuffer = (u8 *)gBlockRecvBuffer[i];
|
||||
#ifndef NONMATCHING
|
||||
asm("");
|
||||
recvBuffer = (u8 *)&gBlockRecvBuffer[i];
|
||||
#endif
|
||||
r6 = gBlockRecvBuffer[i][2];
|
||||
|
||||
if (gTasks[sLinkReceiveTaskId].data[14] + 9 + r6 > 0x1000)
|
||||
{
|
||||
gTasks[sLinkReceiveTaskId].data[12] = gTasks[sLinkReceiveTaskId].data[14];
|
||||
gTasks[sLinkReceiveTaskId].data[14] = 0;
|
||||
u8 *dest, *src;
|
||||
u16 r6 = gBlockRecvBuffer[i][2];
|
||||
|
||||
if (gTasks[sLinkReceiveTaskId].data[14] + 9 + r6 > 0x1000)
|
||||
{
|
||||
gTasks[sLinkReceiveTaskId].data[12] = gTasks[sLinkReceiveTaskId].data[14];
|
||||
gTasks[sLinkReceiveTaskId].data[14] = 0;
|
||||
}
|
||||
|
||||
dest = &gLinkBattleRecvBuffer[gTasks[sLinkReceiveTaskId].data[14]];
|
||||
src = recvBuffer;
|
||||
|
||||
for (j = 0; j < r6 + 8; j++)
|
||||
dest[j] = src[j];
|
||||
|
||||
gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + r6 + 8;
|
||||
}
|
||||
|
||||
dest = &gLinkBattleRecvBuffer[gTasks[sLinkReceiveTaskId].data[14]];
|
||||
src = recvBuffer;
|
||||
|
||||
for (j = 0; j < r6 + 8; j++)
|
||||
dest[j] = src[j];
|
||||
|
||||
gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + r6 + 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1024,13 +1024,13 @@ static const union AnimCmd gUnknown_0860D020[] =
|
||||
|
||||
static const union AnimCmd gUnknown_0860D028[] =
|
||||
{
|
||||
ANIMCMD_FRAME(18, 129, .vFlip = TRUE),
|
||||
ANIMCMD_FRAME(18, 1, .vFlip = TRUE),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd gUnknown_0860D030[] =
|
||||
{
|
||||
ANIMCMD_FRAME(16, 65, .hFlip = TRUE),
|
||||
ANIMCMD_FRAME(16, 1, .hFlip = TRUE),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "constants/moves.h"
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA bool8 sPerformedRentalSwap;
|
||||
static bool8 sPerformedRentalSwap;
|
||||
|
||||
// This file's functions.
|
||||
static void InitFactoryChallenge(void);
|
||||
|
@ -227,9 +227,9 @@ static EWRAM_DATA u8 *sSwapMenuTilemapBuffer = NULL;
|
||||
static EWRAM_DATA u8 *sSwapMonCardBgTilemapBuffer = NULL;
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen;
|
||||
static IWRAM_DATA void (*sSwap_CurrentTableFunc)(u8 taskId);
|
||||
static IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen;
|
||||
static struct FactorySelectMonsStruct *sFactorySelectScreen;
|
||||
static void (*sSwap_CurrentTableFunc)(u8 taskId);
|
||||
static struct FactorySwapMonsStruct *sFactorySwapScreen;
|
||||
|
||||
// IWRAM common
|
||||
u8 (*gUnknown_030062E8)(void);
|
||||
|
@ -552,7 +552,7 @@ static void BattleLoadMonSpriteGfx(struct Pokemon *mon, u32 battlerId, bool32 op
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE)
|
||||
lzPaletteData = GetMonFrontSpritePal(mon);
|
||||
else
|
||||
lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
|
||||
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
|
||||
|
||||
LZDecompressWram(lzPaletteData, gDecompressionBuffer);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, 0x20);
|
||||
@ -873,7 +873,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
|
||||
dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32);
|
||||
DmaCopy32(3, src, dst, 0x800);
|
||||
paletteOffset = 0x100 + battlerAtk * 16;
|
||||
lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue);
|
||||
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue);
|
||||
LZDecompressWram(lzPaletteData, gDecompressionBuffer);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, 32);
|
||||
|
||||
@ -903,10 +903,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
|
||||
|
||||
void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
|
||||
{
|
||||
u8 position;
|
||||
s32 i;
|
||||
u32 var;
|
||||
const void *substitutePal;
|
||||
s32 i, position, palOffset;
|
||||
|
||||
if (!loadMonSprite)
|
||||
{
|
||||
@ -922,19 +919,16 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
|
||||
else
|
||||
LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]);
|
||||
|
||||
i = 1;
|
||||
var = battlerId * 16;
|
||||
substitutePal = gSubstituteDollPal;
|
||||
for (; i < 4; i++)
|
||||
for (i = 1; i < 4; i++)
|
||||
{
|
||||
register void *dmaSrc asm("r0") = gMonSpritesGfxPtr->sprites[position];
|
||||
void *dmaDst = (i * 0x800) + dmaSrc;
|
||||
u32 dmaSize = 0x800;
|
||||
DmaCopy32(3, dmaSrc, dmaDst, dmaSize);
|
||||
i++;i--;
|
||||
u8 (*ptr)[4][0x800] = gMonSpritesGfxPtr->sprites[position];
|
||||
ptr++;ptr--; // Needed to match.
|
||||
|
||||
DmaCopy32Defvars(3, (*ptr)[0], (*ptr)[i], 0x800);
|
||||
}
|
||||
|
||||
LoadCompressedPalette(substitutePal, 0x100 + var, 32);
|
||||
palOffset = (battlerId * 16) + 0x100;
|
||||
LoadCompressedPalette(gSubstituteDollPal, palOffset, 32);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -73,6 +73,9 @@ extern const u8 *const gBattlescriptsForUsingItem[];
|
||||
extern const u8 *const gBattlescriptsForSafariActions[];
|
||||
|
||||
// this file's functions
|
||||
#if !defined(NONMATCHING) && MODERN
|
||||
#define static
|
||||
#endif
|
||||
static void CB2_InitBattleInternal(void);
|
||||
static void CB2_PreInitMultiBattle(void);
|
||||
static void CB2_PreInitIngamePlayerPartnerBattle(void);
|
||||
|
@ -53,11 +53,11 @@ struct PikeWildMon
|
||||
};
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA u8 sRoomType;
|
||||
static IWRAM_DATA u8 sStatusMon;
|
||||
static IWRAM_DATA bool8 sUnknown_0300128E;
|
||||
static IWRAM_DATA u32 sStatusFlags;
|
||||
static IWRAM_DATA u8 sNpcId;
|
||||
static u8 sRoomType;
|
||||
static u8 sStatusMon;
|
||||
static bool8 sUnknown_0300128E;
|
||||
static u32 sStatusFlags;
|
||||
static u8 sNpcId;
|
||||
|
||||
// This file's functions.
|
||||
static void SetRoomType(void);
|
||||
|
@ -44,7 +44,7 @@ static void sub_81BA040(void);
|
||||
static void sub_81B9EC0(void);
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA u16 sRandMonSetId;
|
||||
static u16 sRandMonSetId;
|
||||
|
||||
// const rom data
|
||||
void static (*const gUnknown_086160B4[])(void) =
|
||||
|
@ -262,10 +262,10 @@ static bool8 sub_814842C(struct Sprite *sprite);
|
||||
static bool8 sub_8148458(struct Sprite *sprite);
|
||||
|
||||
// iwram bss vars
|
||||
IWRAM_DATA static s16 sUnusedRectangularSpiralVar;
|
||||
IWRAM_DATA static u8 sTestingTransitionId;
|
||||
IWRAM_DATA static u8 sTestingTransitionState;
|
||||
IWRAM_DATA static struct StructRectangularSpiral sRectangularSpiralTransition[4];
|
||||
static s16 sUnusedRectangularSpiralVar;
|
||||
static u8 sTestingTransitionId;
|
||||
static u8 sTestingTransitionState;
|
||||
static struct StructRectangularSpiral sRectangularSpiralTransition[4];
|
||||
|
||||
// ewram vars
|
||||
EWRAM_DATA static struct TransitionData *sTransitionStructPtr = NULL;
|
||||
|
@ -194,10 +194,10 @@ EWRAM_DATA static s32 sUnknown_020322BC[5] = {0};
|
||||
EWRAM_DATA static u32 sUnknown_020322D0 = 0;
|
||||
|
||||
// IWRAM bss
|
||||
IWRAM_DATA static s16 sUnknown_03000DE8[8];
|
||||
IWRAM_DATA static s16 sUnknown_03000DF8[6];
|
||||
IWRAM_DATA static s16 sUnknown_03000E04;
|
||||
IWRAM_DATA static s16 sUnknown_03000E06;
|
||||
static s16 sUnknown_03000DE8[8];
|
||||
static s16 sUnknown_03000DF8[6];
|
||||
static s16 sUnknown_03000E04;
|
||||
static s16 sUnknown_03000E06;
|
||||
|
||||
// IWRAM common
|
||||
u8 gInGameOpponentsNo;
|
||||
|
21
src/bg.c
21
src/bg.c
@ -37,9 +37,9 @@ struct BgConfig2
|
||||
s32 bg_y;
|
||||
};
|
||||
|
||||
static IWRAM_DATA struct BgControl sGpuBgConfigs;
|
||||
static IWRAM_DATA struct BgConfig2 sGpuBgConfigs2[4];
|
||||
static IWRAM_DATA u32 sDmaBusyBitfield[4];
|
||||
static struct BgControl sGpuBgConfigs;
|
||||
static struct BgConfig2 sGpuBgConfigs2[4];
|
||||
static u32 sDmaBusyBitfield[4];
|
||||
|
||||
u32 gUnneededFireRedVariable;
|
||||
|
||||
@ -220,7 +220,7 @@ static void ShowBgInternal(u8 bg)
|
||||
(sGpuBgConfigs.configs[bg].wraparound << 13) |
|
||||
(sGpuBgConfigs.configs[bg].screenSize << 14);
|
||||
|
||||
SetGpuReg((bg << 1) + 0x8, value);
|
||||
SetGpuReg((bg << 1) + REG_OFFSET_BG0CNT, value);
|
||||
|
||||
sGpuBgConfigs.bgVisibilityAndMode |= 1 << (bg + 8);
|
||||
sGpuBgConfigs.bgVisibilityAndMode &= DISPCNT_ALL_BG_AND_MODE_BITS;
|
||||
@ -914,7 +914,6 @@ void CopyBgTilemapBufferToVram(u8 bg)
|
||||
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height)
|
||||
{
|
||||
const void *srcCopy;
|
||||
u16 destX16;
|
||||
u16 destY16;
|
||||
u16 mode;
|
||||
@ -924,27 +923,31 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
|
||||
switch (GetBgType(bg))
|
||||
{
|
||||
case 0:
|
||||
srcCopy = src;
|
||||
{
|
||||
const u16 * srcCopy = src;
|
||||
for (destY16 = destY; destY16 < (destY + height); destY16++)
|
||||
{
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *((u16*)srcCopy)++;
|
||||
((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
srcCopy = src;
|
||||
{
|
||||
const u8 * srcCopy = src;
|
||||
mode = GetBgMetricAffineMode(bg, 0x1);
|
||||
for (destY16 = destY; destY16 < (destY + height); destY16++)
|
||||
{
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *((u8*)srcCopy)++;
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -245,7 +245,7 @@ static void CableCarMainCallback_Setup(void)
|
||||
{
|
||||
u16 imebak;
|
||||
u8 i = 0;
|
||||
int sizeOut = 0;
|
||||
u32 sizeOut = 0;
|
||||
|
||||
switch (gMain.state)
|
||||
{
|
||||
|
@ -269,8 +269,6 @@ extern const u8 gText_Contest_Fear[];
|
||||
extern const u8 gText_BDot[];
|
||||
extern const u8 gText_CDot[];
|
||||
extern const u8 *const gUnknown_08587E10[];
|
||||
extern const struct SpriteTemplate gSpriteTemplate_8587AD0;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_8587B18[];
|
||||
extern void (*const gContestEffectFuncs[])(void);
|
||||
|
||||
static const u8 gUnknown_08587A6C[] =
|
||||
@ -1268,7 +1266,7 @@ static void sub_80D8108(u8 taskId)
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
(s16)gBattle_BG1_Y += 7;
|
||||
*(s16*)&gBattle_BG1_Y += 7;
|
||||
if ((s16)gBattle_BG1_Y <= 160)
|
||||
break;
|
||||
gTasks[taskId].data[0]++;
|
||||
@ -2975,7 +2973,7 @@ static u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality);
|
||||
|
||||
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, 0);
|
||||
|
||||
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -28,11 +28,11 @@ struct ContestWinner *gUnknown_030061C0;
|
||||
u16 *gContestPaintingMonPalette;
|
||||
|
||||
// IWRAM bss
|
||||
IWRAM_DATA u8 gContestPaintingState;
|
||||
IWRAM_DATA u16 gContestPaintingMosaicVal;
|
||||
IWRAM_DATA u16 gContestPaintingFadeCounter;
|
||||
IWRAM_DATA bool8 gUnknown_030011F6;
|
||||
IWRAM_DATA u8 gContestPaintingWindowId;
|
||||
static u8 gContestPaintingState;
|
||||
static u16 gContestPaintingMosaicVal;
|
||||
static u16 gContestPaintingFadeCounter;
|
||||
static bool8 gUnknown_030011F6;
|
||||
static u8 gContestPaintingWindowId;
|
||||
|
||||
static void ShowContestPainting(void);
|
||||
static void HoldContestPainting(void);
|
||||
@ -362,7 +362,7 @@ static void VBlankCB_ContestPainting(void)
|
||||
|
||||
void sub_81302E8(u16 species, u8 arg1)
|
||||
{
|
||||
const void *pal = GetFrontSpritePalFromSpeciesAndPersonality(species, gUnknown_030061C0->trainerId, gUnknown_030061C0->personality);
|
||||
const void *pal = GetMonSpritePalFromSpeciesAndPersonality(species, gUnknown_030061C0->trainerId, gUnknown_030061C0->personality);
|
||||
LZDecompressVram(pal, gContestPaintingMonPalette);
|
||||
if (!arg1)
|
||||
{
|
||||
@ -684,7 +684,7 @@ static void sub_8130760(u8 contestResult)
|
||||
|
||||
gUnknown_030061A0.var_16 = 2;
|
||||
gUnknown_030061A0.var_0 = contestResult;
|
||||
gUnknown_030061A0.var_10 = 0x6010000;
|
||||
gUnknown_030061A0.var_10 = OBJ_VRAM0;
|
||||
|
||||
sub_8124F2C(&gUnknown_030061A0);
|
||||
sub_81261A4(&gUnknown_030061A0);
|
||||
|
113
src/data/region_map/city_map_entries.h
Normal file
113
src/data/region_map/city_map_entries.h
Normal file
@ -0,0 +1,113 @@
|
||||
const struct CityMapEntry gPokenavCityMaps[] =
|
||||
{
|
||||
{
|
||||
.mapSecId = 0,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Littleroot_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 1,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Oldale_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 2,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Dewford_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 3,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Lavarige_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 4,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Fallarbor_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 5,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Verdanturf_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 6,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Pacifidlog_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 7,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Petalburg_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 8,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Slateport_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 8,
|
||||
.index = 1,
|
||||
.tilemap = gPokenavCityMap_Slateport_1,
|
||||
},
|
||||
{
|
||||
.mapSecId = 9,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Mauville_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 9,
|
||||
.index = 1,
|
||||
.tilemap = gPokenavCityMap_Mauville_1,
|
||||
},
|
||||
{
|
||||
.mapSecId = 10,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Rustboro_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 10,
|
||||
.index = 1,
|
||||
.tilemap = gPokenavCityMap_Rustboro_1,
|
||||
},
|
||||
{
|
||||
.mapSecId = 11,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Fortree_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 12,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Lilycove_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 12,
|
||||
.index = 1,
|
||||
.tilemap = gPokenavCityMap_Lilycove_1,
|
||||
},
|
||||
{
|
||||
.mapSecId = 13,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Mossdeep_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 13,
|
||||
.index = 1,
|
||||
.tilemap = gPokenavCityMap_Mossdeep_1,
|
||||
},
|
||||
{
|
||||
.mapSecId = 14,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_Sootopolis_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 15,
|
||||
.index = 0,
|
||||
.tilemap = gPokenavCityMap_EverGrande_0,
|
||||
},
|
||||
{
|
||||
.mapSecId = 15,
|
||||
.index = 1,
|
||||
.tilemap = gPokenavCityMap_EverGrande_1,
|
||||
},
|
||||
};
|
22
src/data/region_map/city_map_tilemaps.h
Normal file
22
src/data/region_map/city_map_tilemaps.h
Normal file
@ -0,0 +1,22 @@
|
||||
const u32 gPokenavCityMap_Lavarige_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Fallarbor_0[] = INCBIN_U32("graphics/pokenav/city_maps/fallarbor_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Fortree_0[] = INCBIN_U32("graphics/pokenav/city_maps/fortree_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Slateport_0[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Slateport_1[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_1.bin.lz");
|
||||
const u32 gPokenavCityMap_Rustboro_0[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Rustboro_1[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_1.bin.lz");
|
||||
const u32 gPokenavCityMap_Pacifidlog_0[] = INCBIN_U32("graphics/pokenav/city_maps/pacifidlog_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Mauville_1[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_1.bin.lz");
|
||||
const u32 gPokenavCityMap_Mauville_0[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Oldale_0[] = INCBIN_U32("graphics/pokenav/city_maps/oldale_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Lilycove_1[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_1.bin.lz");
|
||||
const u32 gPokenavCityMap_Lilycove_0[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Littleroot_0[] = INCBIN_U32("graphics/pokenav/city_maps/littleroot_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Dewford_0[] = INCBIN_U32("graphics/pokenav/city_maps/dewford_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Sootopolis_0[] = INCBIN_U32("graphics/pokenav/city_maps/sootopolis_0.bin.lz");
|
||||
const u32 gPokenavCityMap_EverGrande_0[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_0.bin.lz");
|
||||
const u32 gPokenavCityMap_EverGrande_1[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_1.bin.lz");
|
||||
const u32 gPokenavCityMap_Verdanturf_0[] = INCBIN_U32("graphics/pokenav/city_maps/verdanturf_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Mossdeep_1[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_1.bin.lz");
|
||||
const u32 gPokenavCityMap_Mossdeep_0[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_0.bin.lz");
|
||||
const u32 gPokenavCityMap_Petalburg_0[] = INCBIN_U32("graphics/pokenav/city_maps/petalburg_0.bin.lz");
|
115
src/data/text/gift_ribbon_descriptions.h
Normal file
115
src/data/text/gift_ribbon_descriptions.h
Normal file
@ -0,0 +1,115 @@
|
||||
const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _("2003 REGIONAL TOURNEY");
|
||||
const u8 gGiftRibbonDescriptionPart2_Champion[] = _("CHAMPION RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _("2003 NATIONAL TOURNEY");
|
||||
const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _("2003 GLOBAL CUP");
|
||||
const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _("Runner-up RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _("Semifinalist RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _("2004 REGIONAL TOURNEY");
|
||||
const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _("2004 NATIONAL TOURNEY");
|
||||
const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _("2004 GLOBAL CUP");
|
||||
const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _("2005 REGIONAL TOURNEY");
|
||||
const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _("2005 NATIONAL TOURNEY");
|
||||
const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _("2005 GLOBAL CUP");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _("POKéMON BATTLE CUP");
|
||||
const u8 gGiftRibbonDescriptionPart2_Participation[] = _("Participation RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _("POKéMON LEAGUE");
|
||||
const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _("ADVANCE CUP");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _("POKéMON Tournament");
|
||||
const u8 gGiftRibbonDescriptionPart2_Participation2[] = _("Participation RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _("POKéMON Event");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _("POKéMON Festival");
|
||||
const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _("Difficulty-clearing");
|
||||
const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _("Commemorative RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_ClearingAllChallenges[] = _("RIBBON awarded for");
|
||||
const u8 gGiftRibbonDescriptionPart2_ClearingAllChallenges[] = _("clearing all challenges.");
|
||||
const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _("100-straight Win");
|
||||
const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _("DARKNESS TOWER Clear");
|
||||
const u8 gGiftRibbonDescriptionPart1_RedTower[] = _("RED TOWER Clear");
|
||||
const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _("BLACKIRON TOWER Clear");
|
||||
const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _("FINAL TOWER Clear");
|
||||
const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _("Legend-making");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _("POKéMON CENTER TOKYO");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _("POKéMON CENTER OSAKA");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _("POKéMON CENTER NAGOYA");
|
||||
const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _("POKéMON CENTER NY");
|
||||
const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _("Summer Holidays RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _("");
|
||||
const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _("Winter Holidays RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _("Spring Holidays RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _("Evergreen RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _("Special Holiday RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _("Hard Worker RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _("Lots of Friends RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _("Full of Energy RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _("A commemorative RIBBON");
|
||||
const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _("for a loved POKéMON.");
|
||||
const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _("RIBBON that shows");
|
||||
const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _("love for POKéMON.");
|
||||
|
||||
const u8 *const gGiftRibbonDescriptionPointers[][2] =
|
||||
{
|
||||
{gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation},
|
||||
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation},
|
||||
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion},
|
||||
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp},
|
||||
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist},
|
||||
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation},
|
||||
{gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2},
|
||||
{gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2},
|
||||
{gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2},
|
||||
{gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges},
|
||||
{gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative},
|
||||
{gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString},
|
||||
{gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon},
|
||||
{gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon}
|
||||
};
|
476
src/data/text/match_call_messages.h
Normal file
476
src/data/text/match_call_messages.h
Normal file
@ -0,0 +1,476 @@
|
||||
#define MCFLAVOR(name) {gMatchCallFlavorText_##name##_Strategy, \
|
||||
gMatchCallFlavorText_##name##_Pokemon, \
|
||||
gMatchCallFlavorText_##name##_Intro1, \
|
||||
gMatchCallFlavorText_##name##_Intro2}
|
||||
|
||||
const u8 gMatchCallFlavorText_AromaLady_Rose_Strategy[] = _("Becalm fighting emotions.");
|
||||
const u8 gMatchCallFlavorText_AromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON.");
|
||||
const u8 gMatchCallFlavorText_AromaLady_Rose_Intro1[] = _("Soothing aromas make the");
|
||||
const u8 gMatchCallFlavorText_AromaLady_Rose_Intro2[] = _("body and mind healthy.");
|
||||
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Andres_Strategy[] = _("I'm not very good at this.");
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners.");
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro1[] = _("I am searching for undersea");
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro2[] = _("ruins and relics.");
|
||||
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Strategy[] = _("Overwhelm with power!");
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON.");
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro1[] = _("In search of ancient lore,");
|
||||
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro2[] = _("I travel the world.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Tuber_Lola_Strategy[] = _("I'm going to try hard!");
|
||||
const u8 gMatchCallFlavorText_Tuber_Lola_Pokemon[] = _("Good swimmer POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Tuber_Lola_Intro1[] = _("I wish I could swim without");
|
||||
const u8 gMatchCallFlavorText_Tuber_Lola_Intro2[] = _("using an inner tube.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Tuber_Ricky_Strategy[] = _("I don't know. I'll try hard.");
|
||||
const u8 gMatchCallFlavorText_Tuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies.");
|
||||
const u8 gMatchCallFlavorText_Tuber_Ricky_Intro1[] = _("It's not like I can't swim.");
|
||||
const u8 gMatchCallFlavorText_Tuber_Ricky_Intro2[] = _("I just like my inner tube.");
|
||||
|
||||
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Strategy[] = _("We split our duties.");
|
||||
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON.");
|
||||
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together");
|
||||
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Strategy[] = _("I finish with power moves!");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Pokemon[] = _("A mix of different types.");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro2[] = _("TRAINER!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness.");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Pokemon[] = _("Balance is crucial.");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro1[] = _("My goal is to become the");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Strategy[] = _("Upset the opponent.");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Pokemon[] = _("Type doesn't matter.");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro1[] = _("I'm a top student at the");
|
||||
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL.");
|
||||
|
||||
const u8 gMatchCallFlavorText_HexManiac_Valerie_Strategy[] = _("Slow, steady suffering.");
|
||||
const u8 gMatchCallFlavorText_HexManiac_Valerie_Pokemon[] = _("Scary to meet at night.");
|
||||
const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro1[] = _("I see things that others");
|
||||
const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro2[] = _("can't see...");
|
||||
|
||||
const u8 gMatchCallFlavorText_Lady_Cindy_Strategy[] = _("Anything to win.");
|
||||
const u8 gMatchCallFlavorText_Lady_Cindy_Pokemon[] = _("Gorgeous type!");
|
||||
const u8 gMatchCallFlavorText_Lady_Cindy_Intro1[] = _("I have a pool specially for");
|
||||
const u8 gMatchCallFlavorText_Lady_Cindy_Intro2[] = _("my POKéMON at home.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Beauty_Thalia_Strategy[] = _("You'll fall under my spell!");
|
||||
const u8 gMatchCallFlavorText_Beauty_Thalia_Pokemon[] = _("Mature WATER type.");
|
||||
const u8 gMatchCallFlavorText_Beauty_Thalia_Intro1[] = _("I dream of cruising around");
|
||||
const u8 gMatchCallFlavorText_Beauty_Thalia_Intro2[] = _("the world on a luxury liner.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Beauty_Jessica_Strategy[] = _("I'll lead you astray.");
|
||||
const u8 gMatchCallFlavorText_Beauty_Jessica_Pokemon[] = _("Cute, of course.");
|
||||
const u8 gMatchCallFlavorText_Beauty_Jessica_Intro1[] = _("I love the SAFARI ZONE.");
|
||||
const u8 gMatchCallFlavorText_Beauty_Jessica_Intro2[] = _("I seem to end up there.");
|
||||
|
||||
const u8 gMatchCallFlavorText_RichBoy_Winston_Strategy[] = _("Strategy? Who needs it?");
|
||||
const u8 gMatchCallFlavorText_RichBoy_Winston_Pokemon[] = _("I spent big money on it!");
|
||||
const u8 gMatchCallFlavorText_RichBoy_Winston_Intro1[] = _("I, being rich, sleep in a");
|
||||
const u8 gMatchCallFlavorText_RichBoy_Winston_Intro2[] = _("custom POKéMON bed.");
|
||||
|
||||
const u8 gMatchCallFlavorText_PokeManiac_Steve_Strategy[] = _("Wrestle down with power.");
|
||||
const u8 gMatchCallFlavorText_PokeManiac_Steve_Pokemon[] = _("Took all night to catch.");
|
||||
const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro1[] = _("Big, burly, and buff");
|
||||
const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro2[] = _("POKéMON are the best...");
|
||||
|
||||
const u8 gMatchCallFlavorText_Swimmer_Tony_Strategy[] = _("Ram at full speed!");
|
||||
const u8 gMatchCallFlavorText_Swimmer_Tony_Pokemon[] = _("Funky WATER type!");
|
||||
const u8 gMatchCallFlavorText_Swimmer_Tony_Intro1[] = _("If I can't be out swimming,");
|
||||
const u8 gMatchCallFlavorText_Swimmer_Tony_Intro2[] = _("I'll be pumping weights.");
|
||||
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Nob_Strategy[] = _("Grand slam pummeling!");
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Nob_Pokemon[] = _("FIGHTING type.");
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust");
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro2[] = _("ten roof tiles!");
|
||||
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Koji_Strategy[] = _("Witness karate power!");
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Koji_Pokemon[] = _("My partners in training!");
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro1[] = _("Let us discuss matters of");
|
||||
const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro2[] = _("the world with bare fists!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Guitarist_Fernando_Strategy[] = _("Rock to stunning sounds!");
|
||||
const u8 gMatchCallFlavorText_Guitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!");
|
||||
const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro1[] = _("My compositions will shock");
|
||||
const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro2[] = _("you and stun you!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Guitarist_Dalton_Strategy[] = _("I'll electrify you!");
|
||||
const u8 gMatchCallFlavorText_Guitarist_Dalton_Pokemon[] = _("They're ELECTRIC!");
|
||||
const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro1[] = _("I want to make people cry");
|
||||
const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro2[] = _("with songs from my heart.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Kindler_Bernie_Strategy[] = _("Burn it all down!");
|
||||
const u8 gMatchCallFlavorText_Kindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Kindler_Bernie_Intro1[] = _("When you light a campfire,");
|
||||
const u8 gMatchCallFlavorText_Kindler_Bernie_Intro2[] = _("be sure there's some water.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Camper_Ethan_Strategy[] = _("Hang in and be tenacious!");
|
||||
const u8 gMatchCallFlavorText_Camper_Ethan_Pokemon[] = _("I'll raise any POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Camper_Ethan_Intro1[] = _("POKéMON raised in the wild");
|
||||
const u8 gMatchCallFlavorText_Camper_Ethan_Intro2[] = _("grow strong!");
|
||||
|
||||
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail.");
|
||||
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Pokemon[] = _("We've had them for years.");
|
||||
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've");
|
||||
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON.");
|
||||
|
||||
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Strategy[] = _("Attack in waves!");
|
||||
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool.");
|
||||
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro1[] = _("I go into the forest every");
|
||||
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Psychic_Cameron_Strategy[] = _("Daze and confuse!");
|
||||
const u8 gMatchCallFlavorText_Psychic_Cameron_Pokemon[] = _("Ones with weird powers.");
|
||||
const u8 gMatchCallFlavorText_Psychic_Cameron_Intro1[] = _("I can see through exactly");
|
||||
const u8 gMatchCallFlavorText_Psychic_Cameron_Intro2[] = _("what you're thinking!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Psychic_Jacki_Strategy[] = _("Battle at full power.");
|
||||
const u8 gMatchCallFlavorText_Psychic_Jacki_Pokemon[] = _("POKéMON of many mysteries.");
|
||||
const u8 gMatchCallFlavorText_Psychic_Jacki_Intro1[] = _("When we spoke, I was really");
|
||||
const u8 gMatchCallFlavorText_Psychic_Jacki_Intro2[] = _("using telepathy.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Gentleman_Walter_Strategy[] = _("Calm and collected.");
|
||||
const u8 gMatchCallFlavorText_Gentleman_Walter_Pokemon[] = _("POKéMON of distinction.");
|
||||
const u8 gMatchCallFlavorText_Gentleman_Walter_Intro1[] = _("We enjoy a spot of tea");
|
||||
const u8 gMatchCallFlavorText_Gentleman_Walter_Intro2[] = _("every day. It's imported.");
|
||||
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Karen_Strategy[] = _("I use my head to battle.");
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!");
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro1[] = _("My daddy gives me spending");
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro2[] = _("money if I ace a test.");
|
||||
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Strategy[] = _("My knowledge rules!");
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!");
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON");
|
||||
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro2[] = _("researcher in the future.");
|
||||
|
||||
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first.");
|
||||
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like.");
|
||||
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior");
|
||||
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Pokefan_Isabel_Strategy[] = _("Go for it, my dears!");
|
||||
const u8 gMatchCallFlavorText_Pokefan_Isabel_Pokemon[] = _("I have no likes or dislikes.");
|
||||
const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro1[] = _("While out shopping for");
|
||||
const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro2[] = _("supper, I battle too.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Pokefan_Miguel_Strategy[] = _("I battle with love!");
|
||||
const u8 gMatchCallFlavorText_Pokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!");
|
||||
const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro1[] = _("It's important to build");
|
||||
const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro2[] = _("trust with your POKéMON.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Expert_Timothy_Strategy[] = _("I see through your moves!");
|
||||
const u8 gMatchCallFlavorText_Expert_Timothy_Pokemon[] = _("The essence of FIGHTING.");
|
||||
const u8 gMatchCallFlavorText_Expert_Timothy_Intro1[] = _("I'm not ready to give way");
|
||||
const u8 gMatchCallFlavorText_Expert_Timothy_Intro2[] = _("to the young yet!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Expert_Shelby_Strategy[] = _("Attack while defending.");
|
||||
const u8 gMatchCallFlavorText_Expert_Shelby_Pokemon[] = _("The FIGHTING type.");
|
||||
const u8 gMatchCallFlavorText_Expert_Shelby_Intro1[] = _("Being old, I have my own");
|
||||
const u8 gMatchCallFlavorText_Expert_Shelby_Intro2[] = _("style of battling.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Youngster_Calvin_Strategy[] = _("I do what I can.");
|
||||
const u8 gMatchCallFlavorText_Youngster_Calvin_Pokemon[] = _("I use different types.");
|
||||
const u8 gMatchCallFlavorText_Youngster_Calvin_Intro1[] = _("I'm going to keep working");
|
||||
const u8 gMatchCallFlavorText_Youngster_Calvin_Intro2[] = _("until I beat a GYM LEADER.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Fisherman_Elliot_Strategy[] = _("I battle patiently.");
|
||||
const u8 gMatchCallFlavorText_Fisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!");
|
||||
const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro1[] = _("I'm the world's only guy to");
|
||||
const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro2[] = _("catch a huge POKéMON!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Strategy[] = _("Exploit the environment!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Pokemon[] = _("All hail the WATER type!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro1[] = _("I won't be beaten by some");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Triathlete_Maria_Strategy[] = _("Speed above all!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Maria_Pokemon[] = _("I use a speedy POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Maria_Intro1[] = _("A marathon is a challenge");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Maria_Intro2[] = _("against your own self.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Triathlete_Abigail_Strategy[] = _("Defense is crucial.");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Abigail_Pokemon[] = _("My POKéMON is solid.");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro1[] = _("I started this for dieting,");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro2[] = _("but I got right into it.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Triathlete_Dylan_Strategy[] = _("Strike before stricken!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro1[] = _("If you ran and ran, you'd");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro2[] = _("become one with the wind.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Strategy[] = _("All-out offensive!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro1[] = _("I must swim over 6 miles");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro2[] = _("every day.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Strategy[] = _("Push and push again!");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Pokemon[] = _("The strength of STEEL.");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro1[] = _("If you're sweating, get");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro2[] = _("fluids into you regularly.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Triathlete_Pablo_Strategy[] = _("Draw the power of WATER.");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro1[] = _("Training POKéMON is good,");
|
||||
const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro2[] = _("but don't neglect yourself.");
|
||||
|
||||
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!");
|
||||
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!");
|
||||
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the");
|
||||
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro2[] = _("strongest one day!");
|
||||
|
||||
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Strategy[] = _("I'll show you my technique!");
|
||||
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS.");
|
||||
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my");
|
||||
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro2[] = _("love to that girl!");
|
||||
|
||||
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!");
|
||||
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON.");
|
||||
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro1[] = _("I undertake training so");
|
||||
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro2[] = _("that I may become a ninja.");
|
||||
|
||||
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Strategy[] = _("The first strike wins!");
|
||||
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type.");
|
||||
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,");
|
||||
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!");
|
||||
|
||||
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!");
|
||||
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Pokemon[] = _("I'll raise anything.");
|
||||
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro1[] = _("UV rays are your skin's");
|
||||
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro2[] = _("enemy. Get protected.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Swimmer_Jenny_Strategy[] = _("No mercy!");
|
||||
const u8 gMatchCallFlavorText_Swimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro1[] = _("I have too many fans.");
|
||||
const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro2[] = _("I was interviewed on TV.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Picnicker_Diana_Strategy[] = _("I think about this & that.");
|
||||
const u8 gMatchCallFlavorText_Picnicker_Diana_Pokemon[] = _("I like all POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Picnicker_Diana_Intro1[] = _("What lies beyond that");
|
||||
const u8 gMatchCallFlavorText_Picnicker_Diana_Intro2[] = _("yonder hill?");
|
||||
|
||||
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Strategy[] = _("We battle together!");
|
||||
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Pokemon[] = _("We train together!");
|
||||
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,");
|
||||
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro2[] = _("but different desserts.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Sailor_Ernest_Strategy[] = _("I force things with power!");
|
||||
const u8 gMatchCallFlavorText_Sailor_Ernest_Pokemon[] = _("WATER and FIGHTING types.");
|
||||
const u8 gMatchCallFlavorText_Sailor_Ernest_Intro1[] = _("Seamen are rough spirits!");
|
||||
const u8 gMatchCallFlavorText_Sailor_Ernest_Intro2[] = _("Any complaints?");
|
||||
|
||||
const u8 gMatchCallFlavorText_Sailor_Cory_Strategy[] = _("Up for a fight anytime!");
|
||||
const u8 gMatchCallFlavorText_Sailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!");
|
||||
const u8 gMatchCallFlavorText_Sailor_Cory_Intro1[] = _("If you want to shout loud,");
|
||||
const u8 gMatchCallFlavorText_Sailor_Cory_Intro2[] = _("suck in air with your belly!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Collector_Edwin_Strategy[] = _("Protect POKéMON from harm.");
|
||||
const u8 gMatchCallFlavorText_Collector_Edwin_Pokemon[] = _("I love rare POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Collector_Edwin_Intro1[] = _("I want to collect all the");
|
||||
const u8 gMatchCallFlavorText_Collector_Edwin_Intro2[] = _("world's rare POKéMON.");
|
||||
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Strategy[] = _("I count on power.");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children.");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON.");
|
||||
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Strategy[] = _("Full-on attack!");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it.");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles.");
|
||||
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care.");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON.");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you");
|
||||
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro2[] = _("meet with respect.");
|
||||
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON.");
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON.");
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro1[] = _("I'm training for rescue");
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro2[] = _("work with my POKéMON.");
|
||||
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Strategy[] = _("Attack in waves!");
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Pokemon[] = _("I use different types.");
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro1[] = _("Those who destroy nature");
|
||||
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro2[] = _("must never be forgiven!");
|
||||
|
||||
const u8 gMatchCallFlavorText_Lass_Haley_Strategy[] = _("I'll show you some guts!");
|
||||
const u8 gMatchCallFlavorText_Lass_Haley_Pokemon[] = _("Cute POKéMON are my faves!");
|
||||
const u8 gMatchCallFlavorText_Lass_Haley_Intro1[] = _("After a battle, I always");
|
||||
const u8 gMatchCallFlavorText_Lass_Haley_Intro2[] = _("bathe with my POKéMON.");
|
||||
|
||||
const u8 gMatchCallFlavorText_BugCatcher_James_Strategy[] = _("Lightning-fast attack!");
|
||||
const u8 gMatchCallFlavorText_BugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!");
|
||||
const u8 gMatchCallFlavorText_BugCatcher_James_Intro1[] = _("If you want to catch BUG");
|
||||
const u8 gMatchCallFlavorText_BugCatcher_James_Intro2[] = _("POKéMON, wake up early.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Hiker_Trent_Strategy[] = _("I battle with power.");
|
||||
const u8 gMatchCallFlavorText_Hiker_Trent_Pokemon[] = _("Hard-bodied POKéMON.");
|
||||
const u8 gMatchCallFlavorText_Hiker_Trent_Intro1[] = _("I've been planning a month");
|
||||
const u8 gMatchCallFlavorText_Hiker_Trent_Intro2[] = _("for today's hike.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Hiker_Sawyer_Strategy[] = _("I like it hot!");
|
||||
const u8 gMatchCallFlavorText_Hiker_Sawyer_Pokemon[] = _("Hot POKéMON!");
|
||||
const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro1[] = _("As much as I love POKéMON,");
|
||||
const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro2[] = _("I surely like hiking!");
|
||||
|
||||
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!");
|
||||
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!");
|
||||
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!");
|
||||
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!");
|
||||
|
||||
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Strategy[] = _("We let it all hang out.");
|
||||
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught.");
|
||||
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown");
|
||||
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro2[] = _("stronger together.");
|
||||
|
||||
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack.");
|
||||
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON.");
|
||||
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears");
|
||||
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility.");
|
||||
|
||||
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Strategy[] = _("Direct physical action!");
|
||||
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!");
|
||||
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro1[] = _("The world awaits me as the");
|
||||
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro2[] = _("next big wave!");
|
||||
|
||||
const u8 gMatchCallFlavorText_SwellShock_Wattson_Strategy[] = _("I choose to electrify.");
|
||||
const u8 gMatchCallFlavorText_SwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!");
|
||||
const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro1[] = _("One must never throw a");
|
||||
const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro2[] = _("match. Even I must not.");
|
||||
|
||||
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Strategy[] = _("Battle aggressively.");
|
||||
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Pokemon[] = _("Burn with passion!");
|
||||
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro1[] = _("Completely wash away daily");
|
||||
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!");
|
||||
|
||||
const u8 gMatchCallFlavorText_ReliableOne_Dad_Strategy[] = _("I flexibly adapt my style.");
|
||||
const u8 gMatchCallFlavorText_ReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner.");
|
||||
const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from");
|
||||
const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro2[] = _("home to here every day.");
|
||||
|
||||
const u8 gMatchCallFlavorText_SkyTamer_Winona_Strategy[] = _("I take advantage of speed.");
|
||||
const u8 gMatchCallFlavorText_SkyTamer_Winona_Pokemon[] = _("Graceful sky dancers.");
|
||||
const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro1[] = _("The ultimate would be to");
|
||||
const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro2[] = _("live as one with nature.");
|
||||
|
||||
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation.");
|
||||
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON.");
|
||||
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling");
|
||||
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!");
|
||||
|
||||
const u8 gMatchCallFlavorText_DandyCharm_Juan_Strategy[] = _("I use splendid waterpower.");
|
||||
const u8 gMatchCallFlavorText_DandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!");
|
||||
const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro1[] = _("The adulation of beautiful");
|
||||
const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro2[] = _("ladies fills me with energy!");
|
||||
|
||||
const u8 gMatchCallFlavorText_EliteFour_Sidney_Strategy[] = _("Offense over defense!");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Sidney_Pokemon[] = _("The DARK side's beauties.");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro1[] = _("They said I was a punk, but");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!");
|
||||
|
||||
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Strategy[] = _("Confuse and confound.");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Pokemon[] = _("There's nothing definite.");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?");
|
||||
|
||||
const u8 gMatchCallFlavorText_EliteFour_Glacia_Strategy[] = _("I use items for help.");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro1[] = _("The ICE type can be better");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro2[] = _("trained in this hot land.");
|
||||
|
||||
const u8 gMatchCallFlavorText_EliteFour_Drake_Strategy[] = _("Harness strong abilities.");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Drake_Intro1[] = _("I dedicate myself to the");
|
||||
const u8 gMatchCallFlavorText_EliteFour_Drake_Intro2[] = _("POKéMON that saved me.");
|
||||
|
||||
const u8 gMatchCallFlavorText_Champion_Wallace_Strategy[] = _("Dignity and respect.");
|
||||
const u8 gMatchCallFlavorText_Champion_Wallace_Pokemon[] = _("I prefer POKéMON of grace.");
|
||||
const u8 gMatchCallFlavorText_Champion_Wallace_Intro1[] = _("I represent beauty as");
|
||||
const u8 gMatchCallFlavorText_Champion_Wallace_Intro2[] = _("well as intelligence.");
|
||||
|
||||
const u8 *const gMatchCallMessages[][4] =
|
||||
{
|
||||
[REMATCH_ROSE] = MCFLAVOR(AromaLady_Rose),
|
||||
[REMATCH_ANDRES] = MCFLAVOR(RuinManiac_Andres),
|
||||
[REMATCH_DUSTY] = MCFLAVOR(RuinManiac_Dusty),
|
||||
[REMATCH_LOLA] = MCFLAVOR(Tuber_Lola),
|
||||
[REMATCH_RICKY] = MCFLAVOR(Tuber_Ricky),
|
||||
[REMATCH_LILA_AND_ROY] = MCFLAVOR(SisAndBro_LilaAndRoy),
|
||||
[REMATCH_CRISTIN] = MCFLAVOR(Cooltrainer_Cristin),
|
||||
[REMATCH_BROOKE] = MCFLAVOR(Cooltrainer_Brooke),
|
||||
[REMATCH_WILTON] = MCFLAVOR(Cooltrainer_Wilton),
|
||||
[REMATCH_VALERIE] = MCFLAVOR(HexManiac_Valerie),
|
||||
[REMATCH_CINDY] = MCFLAVOR(Lady_Cindy),
|
||||
[REMATCH_THALIA] = MCFLAVOR(Beauty_Thalia),
|
||||
[REMATCH_JESSICA] = MCFLAVOR(Beauty_Jessica),
|
||||
[REMATCH_WINSTON] = MCFLAVOR(RichBoy_Winston),
|
||||
[REMATCH_STEVE] = MCFLAVOR(PokeManiac_Steve),
|
||||
[REMATCH_TONY] = MCFLAVOR(Swimmer_Tony),
|
||||
[REMATCH_NOB] = MCFLAVOR(BlackBelt_Nob),
|
||||
[REMATCH_KOJI] = MCFLAVOR(BlackBelt_Koji),
|
||||
[REMATCH_FERNANDO] = MCFLAVOR(Guitarist_Fernando),
|
||||
[REMATCH_DALTON] = MCFLAVOR(Guitarist_Dalton),
|
||||
[REMATCH_BERNIE] = MCFLAVOR(Kindler_Bernie),
|
||||
[REMATCH_ETHAN] = MCFLAVOR(Camper_Ethan),
|
||||
[REMATCH_JOHN_AND_JAY] = MCFLAVOR(OldCouple_JohnAndJay),
|
||||
[REMATCH_JEFFREY] = MCFLAVOR(BugManiac_Jeffrey),
|
||||
[REMATCH_CAMERON] = MCFLAVOR(Psychic_Cameron),
|
||||
[REMATCH_JACKI] = MCFLAVOR(Psychic_Jacki),
|
||||
[REMATCH_WALTER] = MCFLAVOR(Gentleman_Walter),
|
||||
[REMATCH_KAREN] = MCFLAVOR(SchoolKid_Karen),
|
||||
[REMATCH_JERRY] = MCFLAVOR(SchoolKid_Jerry),
|
||||
[REMATCH_ANNA_AND_MEG] = MCFLAVOR(SrAndJr_AnnaAndMeg),
|
||||
[REMATCH_ISABEL] = MCFLAVOR(Pokefan_Isabel),
|
||||
[REMATCH_MIGUEL] = MCFLAVOR(Pokefan_Miguel),
|
||||
[REMATCH_TIMOTHY] = MCFLAVOR(Expert_Timothy),
|
||||
[REMATCH_SHELBY] = MCFLAVOR(Expert_Shelby),
|
||||
[REMATCH_CALVIN] = MCFLAVOR(Youngster_Calvin),
|
||||
[REMATCH_ELLIOT] = MCFLAVOR(Fisherman_Elliot),
|
||||
[REMATCH_ISAIAH] = MCFLAVOR(Triathlete_Isaiah),
|
||||
[REMATCH_MARIA] = MCFLAVOR(Triathlete_Maria),
|
||||
[REMATCH_ABIGAIL] = MCFLAVOR(Triathlete_Abigail),
|
||||
[REMATCH_DYLAN] = MCFLAVOR(Triathlete_Dylan),
|
||||
[REMATCH_KATELYN] = MCFLAVOR(Triathlete_Katelyn),
|
||||
[REMATCH_BENJAMIN] = MCFLAVOR(Triathlete_Benjamin),
|
||||
[REMATCH_PABLO] = MCFLAVOR(Triathlete_Pablo),
|
||||
[REMATCH_NICOLAS] = MCFLAVOR(DragonTamer_Nicolas),
|
||||
[REMATCH_ROBERT] = MCFLAVOR(BirdKeeper_Robert),
|
||||
[REMATCH_LAO] = MCFLAVOR(NinjaBoy_Lao),
|
||||
[REMATCH_CYNDY] = MCFLAVOR(BattleGirl_Cyndy),
|
||||
[REMATCH_MADELINE] = MCFLAVOR(ParasolLady_Madeline),
|
||||
[REMATCH_JENNY] = MCFLAVOR(Swimmer_Jenny),
|
||||
[REMATCH_DIANA] = MCFLAVOR(Picnicker_Diana),
|
||||
[REMATCH_AMY_AND_LIV] = MCFLAVOR(Twins_AmyAndLiv),
|
||||
[REMATCH_ERNEST] = MCFLAVOR(Sailor_Ernest),
|
||||
[REMATCH_CORY] = MCFLAVOR(Sailor_Cory),
|
||||
[REMATCH_EDWIN] = MCFLAVOR(Collector_Edwin),
|
||||
[REMATCH_LYDIA] = MCFLAVOR(PkmnBreeder_Lydia),
|
||||
[REMATCH_ISAAC] = MCFLAVOR(PkmnBreeder_Isaac),
|
||||
[REMATCH_GABRIELLE] = MCFLAVOR(PkmnBreeder_Gabrielle),
|
||||
[REMATCH_CATHERINE] = MCFLAVOR(PkmnRanger_Catherine),
|
||||
[REMATCH_JACKSON] = MCFLAVOR(PkmnRanger_Jackson),
|
||||
[REMATCH_HALEY] = MCFLAVOR(Lass_Haley),
|
||||
[REMATCH_JAMES] = MCFLAVOR(BugCatcher_James),
|
||||
[REMATCH_TRENT] = MCFLAVOR(Hiker_Trent),
|
||||
[REMATCH_SAWYER] = MCFLAVOR(Hiker_Sawyer),
|
||||
[REMATCH_KIRA_AND_DAN] = MCFLAVOR(YoungCouple_LoisAndHal),
|
||||
[REMATCH_WALLY_3] = MCFLAVOR(PkmnTrainer_Wally),
|
||||
[REMATCH_ROXANNE] = MCFLAVOR(RockinWhiz_Roxanne),
|
||||
[REMATCH_BRAWLY] = MCFLAVOR(TheBigHit_Brawly),
|
||||
[REMATCH_WATTSON] = MCFLAVOR(SwellShock_Wattson),
|
||||
[REMATCH_FLANNERY] = MCFLAVOR(PassionBurn_Flannery),
|
||||
[REMATCH_NORMAN] = MCFLAVOR(ReliableOne_Dad),
|
||||
[REMATCH_WINONA] = MCFLAVOR(SkyTamer_Winona),
|
||||
[REMATCH_TATE_AND_LIZA] = MCFLAVOR(MysticDuo_TateAndLiza),
|
||||
[REMATCH_JUAN] = MCFLAVOR(DandyCharm_Juan),
|
||||
[REMATCH_SIDNEY] = MCFLAVOR(EliteFour_Sidney),
|
||||
[REMATCH_PHOEBE] = MCFLAVOR(EliteFour_Phoebe),
|
||||
[REMATCH_GLACIA] = MCFLAVOR(EliteFour_Glacia),
|
||||
[REMATCH_DRAKE] = MCFLAVOR(EliteFour_Drake),
|
||||
[REMATCH_WALLACE] = MCFLAVOR(Champion_Wallace),
|
||||
};
|
48
src/data/text/ribbon_descriptions.h
Normal file
48
src/data/text/ribbon_descriptions.h
Normal file
@ -0,0 +1,48 @@
|
||||
const u8 gRibbonDescriptionPart1_Champion[] = _("CHAMPION-beating, HALL");
|
||||
const u8 gRibbonDescriptionPart2_Champion[] = _("OF FAME Member RIBBON");
|
||||
const u8 gRibbonDescriptionPart1_CoolContest[] = _("COOL CONTEST");
|
||||
const u8 gRibbonDescriptionPart1_BeautyContest[] = _("BEAUTY CONTEST");
|
||||
const u8 gRibbonDescriptionPart1_CuteContest[] = _("CUTE CONTEST");
|
||||
const u8 gRibbonDescriptionPart1_SmartContest[] = _("SMART CONTEST");
|
||||
const u8 gRibbonDescriptionPart1_ToughContest[] = _("TOUGH CONTEST");
|
||||
const u8 gRibbonDescriptionPart2_NormalRank[] = _("Normal Rank winner!");
|
||||
const u8 gRibbonDescriptionPart2_SuperRank[] = _("Super Rank winner!");
|
||||
const u8 gRibbonDescriptionPart2_HyperRank[] = _("Hyper Rank winner!");
|
||||
const u8 gRibbonDescriptionPart2_MasterRank[] = _("Master Rank winner!");
|
||||
const u8 gRibbonDescriptionPart1_Winning[] = _("For clearing LV50");
|
||||
const u8 gRibbonDescriptionPart2_Winning[] = _("at the BATTLE TOWER.");
|
||||
const u8 gRibbonDescriptionPart1_Victory[] = _("For clearing Open Level");
|
||||
const u8 gRibbonDescriptionPart2_Victory[] = _("at the BATTLE TOWER.");
|
||||
const u8 gRibbonDescriptionPart1_Artist[] = _("RIBBON for being chosen");
|
||||
const u8 gRibbonDescriptionPart2_Artist[] = _("as a super sketch model.");
|
||||
const u8 gRibbonDescriptionPart1_Effort[] = _("RIBBON awarded for");
|
||||
const u8 gRibbonDescriptionPart2_Effort[] = _("being a hard worker.");
|
||||
|
||||
const u8 *const gRibbonDescriptionPointers[][2] =
|
||||
{
|
||||
{gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion},
|
||||
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank},
|
||||
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank},
|
||||
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank},
|
||||
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank},
|
||||
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank},
|
||||
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank},
|
||||
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank},
|
||||
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank},
|
||||
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank},
|
||||
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank},
|
||||
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank},
|
||||
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank},
|
||||
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank},
|
||||
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank},
|
||||
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank},
|
||||
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank},
|
||||
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank},
|
||||
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank},
|
||||
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank},
|
||||
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank},
|
||||
{gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning},
|
||||
{gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory},
|
||||
{gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist},
|
||||
{gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort},
|
||||
};
|
@ -8,7 +8,7 @@
|
||||
#define DMA_REQUEST_COPY16 3
|
||||
#define DMA_REQUEST_FILL16 4
|
||||
|
||||
IWRAM_DATA struct
|
||||
BSS_DATA struct
|
||||
{
|
||||
const u8 *src;
|
||||
u8 *dest;
|
||||
@ -17,7 +17,7 @@ IWRAM_DATA struct
|
||||
u32 value;
|
||||
} gDma3Requests[MAX_DMA_REQUESTS];
|
||||
|
||||
static bool8 gDma3ManagerLocked;
|
||||
static volatile bool8 gDma3ManagerLocked;
|
||||
static u8 gDma3RequestCursor;
|
||||
|
||||
void ClearDma3Requests(void)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -73,7 +73,7 @@ static void CreateRandomEggShardSprite(void);
|
||||
static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex);
|
||||
|
||||
// IWRAM bss
|
||||
static IWRAM_DATA struct EggHatchData *sEggHatchData;
|
||||
static struct EggHatchData *sEggHatchData;
|
||||
|
||||
// rom data
|
||||
static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal");
|
||||
|
@ -26,17 +26,17 @@ static void sub_81D414C(void);
|
||||
static void sub_81D3F1C(u32, u32*, u32*);
|
||||
static void sub_81D3F68(void);
|
||||
|
||||
IWRAM_DATA struct Unknown030012C8 gUnknown_030012C8;
|
||||
IWRAM_DATA u16 gUnknown_030012E0;
|
||||
IWRAM_DATA u16 gUnknown_030012E2;
|
||||
IWRAM_DATA u16 gUnknown_030012E4;
|
||||
IWRAM_DATA u16 gUnknown_030012E6;
|
||||
IWRAM_DATA u32 gUnknown_030012E8;
|
||||
IWRAM_DATA u16 gUnknown_030012EC;
|
||||
IWRAM_DATA u16 gUnknown_030012EE;
|
||||
IWRAM_DATA u16 gUnknown_030012F0;
|
||||
IWRAM_DATA u16 gUnknown_030012F2;
|
||||
IWRAM_DATA u16 gUnknown_030012F4;
|
||||
static struct Unknown030012C8 gUnknown_030012C8;
|
||||
static u16 gUnknown_030012E0;
|
||||
static u16 gUnknown_030012E2;
|
||||
static u16 gUnknown_030012E4;
|
||||
static u16 gUnknown_030012E6;
|
||||
static u32 gUnknown_030012E8;
|
||||
static u16 gUnknown_030012EC;
|
||||
static u16 gUnknown_030012EE;
|
||||
static u16 gUnknown_030012F0;
|
||||
static u16 gUnknown_030012F2;
|
||||
static u16 gUnknown_030012F4;
|
||||
|
||||
extern const u8 gUnknown_08625B6C[][0x148];
|
||||
|
||||
|
@ -38,7 +38,7 @@ struct Unk03006370
|
||||
|
||||
static void sub_81D5084(u8);
|
||||
|
||||
extern struct Unk03006370 gUnknown_03006370;
|
||||
struct Unk03006370 gUnknown_03006370;
|
||||
|
||||
extern const u8 gUnknown_089A3470[];
|
||||
extern const u8 gMultiBootProgram_BerryGlitchFix_Start[];
|
||||
|
@ -36,11 +36,11 @@ static void DrawMetatile(s32 a, u16 *b, u16 c);
|
||||
static void CameraPanningCB_PanAhead(void);
|
||||
|
||||
// IWRAM bss vars
|
||||
static IWRAM_DATA struct FieldCameraOffset sFieldCameraOffset;
|
||||
static IWRAM_DATA s16 sHorizontalCameraPan;
|
||||
static IWRAM_DATA s16 sVerticalCameraPan;
|
||||
static IWRAM_DATA u8 gUnknown_03000E2C;
|
||||
static IWRAM_DATA void (*sFieldCameraPanningCallback)(void);
|
||||
static struct FieldCameraOffset sFieldCameraOffset;
|
||||
static s16 sHorizontalCameraPan;
|
||||
static s16 sVerticalCameraPan;
|
||||
static u8 gUnknown_03000E2C;
|
||||
static void (*sFieldCameraPanningCallback)(void);
|
||||
|
||||
struct CameraObject gFieldCamera;
|
||||
u16 gTotalCameraPixelOffsetY;
|
||||
|
@ -232,7 +232,7 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId);
|
||||
|
||||
// Static RAM declarations
|
||||
|
||||
static IWRAM_DATA u8 sActiveList[32];
|
||||
static u8 sActiveList[32];
|
||||
|
||||
// External declarations
|
||||
extern struct CompressedSpritePalette gMonPaletteTable[]; // GF made a mistake and did not extern it as const.
|
||||
|
@ -336,14 +336,9 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys)
|
||||
|
||||
static bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u8 r5 = direction;
|
||||
u8 r6 = direction;
|
||||
#else
|
||||
u8 r5 = direction;
|
||||
register u8 r6 asm("r6") = direction;
|
||||
#endif
|
||||
//a very bad HACK
|
||||
u8 r5 = direction;
|
||||
u8 r6 = direction;
|
||||
r6++; r6--;
|
||||
|
||||
if (EventObjectIsMovementOverridden(playerEventObj)
|
||||
&& !EventObjectClearHeldMovementIfFinished(playerEventObj))
|
||||
|
@ -68,7 +68,7 @@ static u8 None_Finish(void);
|
||||
EWRAM_DATA struct Weather gWeather = {0};
|
||||
EWRAM_DATA static u8 sFieldEffectPaletteGammaTypes[32] = {0};
|
||||
|
||||
IWRAM_DATA static const u8 *sPaletteGammaTypes;
|
||||
static const u8 *sPaletteGammaTypes;
|
||||
|
||||
// The drought weather effect uses a precalculated color lookup table. Presumably this
|
||||
// is because the underlying color shift calculation is slow.
|
||||
|
@ -957,6 +957,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,11 +59,11 @@ static void CutGrassSpriteCallbackEnd(struct Sprite *);
|
||||
static void HandleLongGrassOnHyper(u8, s16, s16);
|
||||
|
||||
// IWRAM variables
|
||||
static IWRAM_DATA u8 sCutSquareSide;
|
||||
static IWRAM_DATA u8 sTileCountFromPlayer_X;
|
||||
static IWRAM_DATA u8 sTileCountFromPlayer_Y;
|
||||
static IWRAM_DATA u32 sUnused;
|
||||
static IWRAM_DATA bool8 sHyperCutTiles[CUT_HYPER_AREA];
|
||||
static u8 sCutSquareSide;
|
||||
static u8 sTileCountFromPlayer_X;
|
||||
static u8 sTileCountFromPlayer_Y;
|
||||
static u32 sUnused;
|
||||
static bool8 sHyperCutTiles[CUT_HYPER_AREA];
|
||||
|
||||
// EWRAM variables
|
||||
static EWRAM_DATA u8 *sCutGrassSpriteArrayPtr = NULL;
|
||||
|
@ -219,8 +219,8 @@ static void sub_8137404(u8 taskId)
|
||||
static void sub_8137420(u8 taskId)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000);
|
||||
LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800);
|
||||
LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000));
|
||||
LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800));
|
||||
LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20);
|
||||
LoadPalette(gUnknown_085B28A0, 0xE0, 0x10);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0
|
||||
@ -304,8 +304,8 @@ static void sub_81375BC(u8 taskId)
|
||||
static void sub_81375D8(u8 taskId)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000);
|
||||
LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800);
|
||||
LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000));
|
||||
LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800));
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
|
@ -1180,7 +1180,8 @@ void sub_8112B78(struct Sprite *sprite)
|
||||
|
||||
if (++coeffB > 16)
|
||||
coeffB = 16;
|
||||
if (--(s16)coeffA < 0)
|
||||
--coeffA;
|
||||
if ((s16)coeffA < 0)
|
||||
coeffA = 0;
|
||||
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(coeffA, coeffB));
|
||||
|
@ -10,9 +10,9 @@
|
||||
|
||||
static u8 sGpuRegBuffer[GPU_REG_BUF_SIZE];
|
||||
static u8 sGpuRegWaitingList[GPU_REG_BUF_SIZE];
|
||||
static bool8 sGpuRegBufferLocked;
|
||||
static bool8 sShouldSyncRegIE;
|
||||
static u16 sRegIE;
|
||||
static volatile bool8 sGpuRegBufferLocked;
|
||||
static volatile bool8 sShouldSyncRegIE;
|
||||
static vu16 sRegIE;
|
||||
|
||||
static void CopyBufferedValueToGpuReg(u8 regOffset);
|
||||
static void SyncRegIE(void);
|
||||
|
@ -18,6 +18,9 @@
|
||||
extern u16 gUnknown_0203CF30[];
|
||||
|
||||
// this file's functions
|
||||
#if !defined(NONMATCHING) && MODERN
|
||||
#define static
|
||||
#endif
|
||||
static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count);
|
||||
static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count);
|
||||
|
||||
|
@ -127,7 +127,7 @@ void sub_81ABAE0(void);
|
||||
u8 sub_81AB1F0(u8);
|
||||
void sub_81AC23C(u8);
|
||||
void BagMenu_MoveCursorCallback(s32 a, bool8 b, struct ListMenu*);
|
||||
void PrintItemQuantityPlusGFX(u8 rboxId, int item_index_in_pocket, u8 a);
|
||||
void PrintItemQuantityPlusGFX(u8 rboxId, s32 item_index_in_pocket, u8 a);
|
||||
void ItemMenu_UseOutOfBattle(u8 taskId);
|
||||
void ItemMenu_Toss(u8 taskId);
|
||||
void ItemMenu_Register(u8 taskId);
|
||||
@ -830,7 +830,7 @@ void BagMenu_MoveCursorCallback(s32 a, bool8 b, struct ListMenu *unused)
|
||||
}
|
||||
}
|
||||
|
||||
void PrintItemQuantityPlusGFX(u8 rboxId, int item_index_in_pocket, u8 a)
|
||||
void PrintItemQuantityPlusGFX(u8 rboxId, s32 item_index_in_pocket, u8 a)
|
||||
{
|
||||
u16 itemId;
|
||||
u16 itemQuantity;
|
||||
|
9
src/librfu.c
Normal file
9
src/librfu.c
Normal file
@ -0,0 +1,9 @@
|
||||
#include "global.h"
|
||||
#include "librfu.h"
|
||||
|
||||
struct RfuUnk1* gUnknown_03007870[4];
|
||||
struct RfuUnk2* gUnknown_03007880[4];
|
||||
struct RfuUnk5 *gUnknown_03007890;
|
||||
u32 *gUnknown_03007894;
|
||||
struct RfuUnk3* gUnknown_03007898;
|
||||
u8 gUnknown_030078A0[12];
|
@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "librfu.h"
|
||||
|
||||
//TODO: decompile asm/librfu_intr.s to here
|
||||
|
@ -1,6 +1,8 @@
|
||||
#include "global.h"
|
||||
#include "librfu.h"
|
||||
|
||||
struct RfuStruct *gRfuState;
|
||||
|
||||
extern IntrFunc IntrSIO32(void);
|
||||
|
||||
extern void STWI_stop_timer(void);
|
||||
|
31
src/link.c
31
src/link.c
@ -52,22 +52,21 @@ struct LinkTestBGInfo
|
||||
|
||||
// Static RAM declarations
|
||||
|
||||
IWRAM_DATA struct BlockTransfer sBlockSend;
|
||||
IWRAM_DATA u32 link_c_unused_03000d1c;
|
||||
IWRAM_DATA struct BlockTransfer sBlockRecv[MAX_LINK_PLAYERS];
|
||||
IWRAM_DATA u32 sBlockSendDelayCounter;
|
||||
IWRAM_DATA u32 gUnknown_03000D54;
|
||||
IWRAM_DATA u8 gUnknown_03000D58;
|
||||
IWRAM_DATA u32 sPlayerDataExchangeStatus;
|
||||
IWRAM_DATA u32 gUnknown_03000D60;
|
||||
IWRAM_DATA u8 sLinkTestLastBlockSendPos;
|
||||
ALIGNED() IWRAM_DATA u8 sLinkTestLastBlockRecvPos[MAX_LINK_PLAYERS];
|
||||
IWRAM_DATA u8 sNumVBlanksWithoutSerialIntr;
|
||||
IWRAM_DATA bool8 sSendBufferEmpty;
|
||||
IWRAM_DATA u16 sSendNonzeroCheck;
|
||||
IWRAM_DATA u16 sRecvNonzeroCheck;
|
||||
IWRAM_DATA u8 sChecksumAvailable;
|
||||
IWRAM_DATA u8 sHandshakePlayerCount;
|
||||
static struct BlockTransfer sBlockSend;
|
||||
static struct BlockTransfer sBlockRecv[MAX_LINK_PLAYERS];
|
||||
static u32 sBlockSendDelayCounter;
|
||||
static u32 gUnknown_03000D54;
|
||||
static u8 gUnknown_03000D58;
|
||||
static u32 sPlayerDataExchangeStatus;
|
||||
static u32 gUnknown_03000D60;
|
||||
static u8 sLinkTestLastBlockSendPos;
|
||||
static u8 sLinkTestLastBlockRecvPos[MAX_LINK_PLAYERS];
|
||||
static u8 sNumVBlanksWithoutSerialIntr;
|
||||
static bool8 sSendBufferEmpty;
|
||||
static u16 sSendNonzeroCheck;
|
||||
static u16 sRecvNonzeroCheck;
|
||||
static u8 sChecksumAvailable;
|
||||
static u8 sHandshakePlayerCount;
|
||||
|
||||
u16 gLinkPartnersHeldKeys[6];
|
||||
u32 gLinkDebugSeed;
|
||||
|
@ -24,10 +24,10 @@ extern u16 gHeldKeyCodeToSend;
|
||||
struct UnkRfuStruct_1 gUnknown_03004140;
|
||||
struct UnkRfuStruct_2 gUnknown_03005000;
|
||||
|
||||
IWRAM_DATA u8 gUnknown_03000D74;
|
||||
ALIGNED(4) IWRAM_DATA u8 gUnknown_03000D78[8];
|
||||
IWRAM_DATA u8 gUnknown_03000D80[16];
|
||||
IWRAM_DATA u16 gUnknown_03000D90[8];
|
||||
BSS_DATA u8 gUnknown_03000D74;
|
||||
ALIGNED(4) BSS_DATA u8 gUnknown_03000D78[8];
|
||||
BSS_DATA u8 gUnknown_03000D80[16];
|
||||
BSS_DATA u16 gUnknown_03000D90[8];
|
||||
|
||||
EWRAM_DATA u8 gWirelessStatusIndicatorSpriteId = 0;
|
||||
EWRAM_DATA ALIGNED(4) struct UnkLinkRfuStruct_02022B14 gUnknown_02022B14 = {};
|
||||
@ -2021,6 +2021,8 @@ void sub_800DBF8(u8 *q1, u8 mode)
|
||||
}
|
||||
}
|
||||
|
||||
// File boundary here maybe?
|
||||
|
||||
void PkmnStrToASCII(u8 *q1, const u8 *q2)
|
||||
{
|
||||
s32 i;
|
||||
@ -2413,7 +2415,7 @@ void RecordMixTrainerNames(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Save the connected trainers first, at the top of the list.
|
||||
nextSpace = 0;
|
||||
for (i = 0; i < GetLinkPlayerCount(); i++)
|
||||
@ -2444,7 +2446,7 @@ void RecordMixTrainerNames(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Finalize the new list, and clean up.
|
||||
memcpy(gSaveBlock1Ptr->trainerNameRecords, newRecords, 20 * sizeof(struct TrainerNameRecord));
|
||||
free(newRecords);
|
||||
@ -3493,7 +3495,7 @@ void sub_800FD14(u16 command)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800FE50(u16 *a0)
|
||||
void sub_800FE50(void *a0)
|
||||
{
|
||||
if (gSendCmd[0] == 0 && !sub_8011A80())
|
||||
{
|
||||
@ -5142,4 +5144,3 @@ u32 GetRfuRecvQueueLength(void)
|
||||
{
|
||||
return gUnknown_03005000.unk_124.unk_8c2;
|
||||
}
|
||||
|
||||
|
@ -42,10 +42,10 @@ EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
|
||||
EWRAM_DATA u32 gLastEncryptionKey = 0;
|
||||
|
||||
// IWRAM common
|
||||
IWRAM_DATA bool32 gFlashMemoryPresent;
|
||||
IWRAM_DATA struct SaveBlock1 *gSaveBlock1Ptr;
|
||||
IWRAM_DATA struct SaveBlock2 *gSaveBlock2Ptr;
|
||||
IWRAM_DATA struct PokemonStorage *gPokemonStoragePtr;
|
||||
bool32 gFlashMemoryPresent;
|
||||
struct SaveBlock1 *gSaveBlock1Ptr;
|
||||
struct SaveBlock2 *gSaveBlock2Ptr;
|
||||
struct PokemonStorage *gPokemonStoragePtr;
|
||||
|
||||
// code
|
||||
void CheckForFlashMemory(void)
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include <string.h>
|
||||
#include "gba/m4a_internal.h"
|
||||
|
||||
extern const u8 gCgb3Vol[];
|
||||
|
20
src/main.c
20
src/main.c
@ -85,7 +85,27 @@ void EnableVCountIntrAtLine150(void);
|
||||
|
||||
void AgbMain()
|
||||
{
|
||||
#if MODERN
|
||||
// Modern compilers are liberal with the stack on entry to this function,
|
||||
// so RegisterRamReset may crash if it resets IWRAM.
|
||||
RegisterRamReset(RESET_ALL & ~RESET_IWRAM);
|
||||
asm("mov\tr1, #0xC0\n"
|
||||
"\tlsl\tr1, r1, #0x12\n"
|
||||
"\tmov r2, #0xFC\n"
|
||||
"\tlsl r2, r2, #0x7\n"
|
||||
"\tadd\tr2, r1, r2\n"
|
||||
"\tmov\tr0, #0\n"
|
||||
"\tmov\tr3, r0\n"
|
||||
"\tmov\tr4, r0\n"
|
||||
"\tmov\tr5, r0\n"
|
||||
".LCU0:\n"
|
||||
"\tstmia r1!, {r0, r3, r4, r5}\n"
|
||||
"\tcmp\tr1, r2\n"
|
||||
"\tbcc\t.LCU0\n"
|
||||
);
|
||||
#else
|
||||
RegisterRamReset(RESET_ALL);
|
||||
#endif //MODERN
|
||||
*(vu16 *)BG_PLTT = 0x7FFF;
|
||||
InitGpuRegManager();
|
||||
REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
|
||||
|
@ -176,7 +176,7 @@
|
||||
static EWRAM_DATA u8 gUnknown_02022D04 = 0;
|
||||
static EWRAM_DATA u16 sCurrItemAndOptionMenuCheck = 0;
|
||||
|
||||
static IWRAM_DATA u8 sBirchSpeechMainTaskId;
|
||||
static u8 sBirchSpeechMainTaskId;
|
||||
|
||||
// Static ROM declarations
|
||||
|
||||
|
@ -33,7 +33,7 @@ static void Task_BardSong(u8 taskId);
|
||||
static void StorytellerSetup(void);
|
||||
static void Storyteller_ResetFlag(void);
|
||||
|
||||
IWRAM_DATA u8 sSelectedStory;
|
||||
static u8 sSelectedStory;
|
||||
|
||||
struct BardSong gBardSong;
|
||||
|
||||
|
356
src/menu.c
356
src/menu.c
@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "bg.h"
|
||||
#include "blit.h"
|
||||
#include "dma3.h"
|
||||
#include "event_data.h"
|
||||
#include "graphics.h"
|
||||
@ -2013,337 +2014,82 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 *src, u16 x, u16 y)
|
||||
AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, 0xFF, 0);
|
||||
}
|
||||
|
||||
//Screw this function, it's long and unreferenced and ugh
|
||||
|
||||
struct UnkStruct_819A080 {
|
||||
u8 *unk00;
|
||||
u16 unk04;
|
||||
u16 unk06;
|
||||
};
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_819A080(struct UnkStruct_819A080 *a0, struct UnkStruct_819A080 *a1, u16 a2, u16 a3, u16 a4, u16 a5, u16 a6, u16 a7)
|
||||
// Unused. Similar to BlitBitmapRect4Bit.
|
||||
void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height)
|
||||
{
|
||||
// r3 = a3
|
||||
// r4 = a5
|
||||
// r1 = a6
|
||||
// r5 = a7
|
||||
// sp+00 = a0
|
||||
// sp+04 = a1
|
||||
// sp+08 = a2
|
||||
// sp+0c = a4
|
||||
int sp10 = a1->unk04 - a4 < a6 ? a1->unk04 - a4 + a2 : a6 + a2;
|
||||
int sp14 = a0->unk06 - a5 < a7 ? a3 + a0->unk06 - a5 : a3 + a7;
|
||||
int sp18 = (a0->unk04 + (a0->unk04 & 0x7)) / 8;
|
||||
int sp1c = (a1->unk04 + (a1->unk04 & 0x7)) / 8;
|
||||
int r12; // sp+20
|
||||
int r8; // sp+24
|
||||
int r5;
|
||||
int r6;
|
||||
u16 r2;
|
||||
int loopSrcY, loopDstY, loopSrcX, loopDstX, xEnd, yEnd, multiplierSrcY, multiplierDstY;
|
||||
const u8 *pixelsSrc;
|
||||
u16 *pixelsDst;
|
||||
u16 toOrr;
|
||||
|
||||
for (r12 = a3, r8 = a5; r12 < sp14; r12++, r8++)
|
||||
if (dst->width - dstX < width)
|
||||
xEnd = dst->width - dstX + srcX;
|
||||
else
|
||||
xEnd = width + srcX;
|
||||
|
||||
if (dst->height - dstY < height)
|
||||
yEnd = srcY + dst->height - dstY;
|
||||
else
|
||||
yEnd = srcY + height;
|
||||
|
||||
multiplierSrcY = (src->width + (src->width & 7)) >> 3;
|
||||
multiplierDstY = (dst->width + (dst->width & 7)) >> 3;
|
||||
|
||||
for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++)
|
||||
{
|
||||
for (r5 = a2, r6 = a4; a5 < sp10; a5++, a6++)
|
||||
for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++)
|
||||
{
|
||||
u8 *r3 = a0->unk00 + ((r5 >> 1) & 0x3) + ((r5 >> 3) << 5) + (((r12 >> 3) * sp18) << 5) + ((r12 & 0x7) << 2);
|
||||
u8 *r4 = a1->unk00 + ((r6 >> 1) & 0x3) + ((r6 >> 3) << 5) + (((r8 >> 3) * sp1c) << 5) + ((r8 & 0x7) << 2);
|
||||
if (((uintptr_t)r4) & 0x1)
|
||||
pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1B);
|
||||
pixelsDst = (void*) dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + ((( loopDstY >> 3) * multiplierDstY) << 5) + ((u32)( loopDstY << 0x1d) >> 0x1B);
|
||||
|
||||
if ((uintptr_t )pixelsDst & 0x1)
|
||||
{
|
||||
u16 *r4_2 = (u16 *)(r4 - 1);
|
||||
if (r6 & 0x1)
|
||||
pixelsDst = (void*)(pixelsDst) - 1;
|
||||
if (loopDstX & 0x1)
|
||||
{
|
||||
r2 = *r4_2 & 0x0fff;
|
||||
if (r5 & 0x1)
|
||||
*r4_2 = r2 | ((*r3 & 0xf0) << 8);
|
||||
toOrr = *pixelsDst & 0x0fff;
|
||||
if (loopSrcX & 0x1)
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0xf0) << 8);
|
||||
else
|
||||
*r4_2 = r2 | ((*r3 & 0x0f) << 12);
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0x0f) << 12);
|
||||
}
|
||||
else
|
||||
{
|
||||
r2 = *r4_2 * 0xf0ff;
|
||||
if (r5 & 0x1)
|
||||
*r4_2 = r2 | ((*r3 & 0xf0) << 4);
|
||||
toOrr = *pixelsDst & 0xf0ff;
|
||||
if (loopSrcX & 0x1)
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0xf0) << 4);
|
||||
else
|
||||
*r4_2 = r2 | ((*r3 & 0x0f) << 8);
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0x0f) << 8);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
u16 *r4_2 = (u16 *)r4;
|
||||
if (r6 & 1)
|
||||
if (loopDstX & 1)
|
||||
{
|
||||
r2 = *r4_2 & 0xff0f;
|
||||
if (r5 & 1)
|
||||
*r4_2 = r2 | ((*r3 & 0xf0) << 0);
|
||||
toOrr = *pixelsDst & 0xff0f;
|
||||
if (loopSrcX & 1)
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0xf0) << 0);
|
||||
else
|
||||
*r4_2 = r2 | ((*r3 & 0x0f) << 4);
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0x0f) << 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
r2 = *r4_2 & 0xfff0;
|
||||
if (r5 & 1)
|
||||
*r4_2 = r2 | ((*r3 & 0xf0) >> 4);
|
||||
toOrr = *pixelsDst & 0xfff0;
|
||||
if (loopSrcX & 1)
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0xf0) >> 4);
|
||||
else
|
||||
*r4_2 = r2 | ((*r3 & 0x0f) >> 0);
|
||||
*pixelsDst = toOrr | ((*pixelsSrc & 0x0f) >> 0);
|
||||
}
|
||||
}
|
||||
|
||||
// Needed to match, urgh.
|
||||
#ifndef NONMATCHING
|
||||
asm("":::"r4");
|
||||
pixelsDst++;pixelsDst--;
|
||||
#endif // NONMATCHING
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_819A080(struct UnkStruct_819A080 *a0, struct UnkStruct_819A080 *a1, u16 a2, u16 a3, u16 a4, u16 a5, u16 a6, u16 a7)
|
||||
{
|
||||
asm("push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, #0x28\n\
|
||||
str r0, [sp]\n\
|
||||
str r1, [sp, #0x4]\n\
|
||||
ldr r0, [sp, #0x48]\n\
|
||||
ldr r4, [sp, #0x4C]\n\
|
||||
ldr r1, [sp, #0x50]\n\
|
||||
ldr r5, [sp, #0x54]\n\
|
||||
lsl r2, #16\n\
|
||||
lsr r2, #16\n\
|
||||
str r2, [sp, #0x8]\n\
|
||||
lsl r3, #16\n\
|
||||
lsr r3, #16\n\
|
||||
lsl r0, #16\n\
|
||||
lsr r0, #16\n\
|
||||
str r0, [sp, #0xC]\n\
|
||||
lsl r4, #16\n\
|
||||
lsr r4, #16\n\
|
||||
lsl r1, #16\n\
|
||||
lsr r1, #16\n\
|
||||
lsl r5, #16\n\
|
||||
lsr r5, #16\n\
|
||||
ldr r2, [sp, #0x4]\n\
|
||||
ldrh r0, [r2, #0x4]\n\
|
||||
ldr r2, [sp, #0xC]\n\
|
||||
sub r0, r2\n\
|
||||
ldr r2, [sp, #0x8]\n\
|
||||
add r2, r1, r2\n\
|
||||
str r2, [sp, #0x10]\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0819A0CC\n\
|
||||
ldr r1, [sp, #0x8]\n\
|
||||
add r0, r1\n\
|
||||
str r0, [sp, #0x10]\n\
|
||||
_0819A0CC:\n\
|
||||
ldr r2, [sp, #0x4]\n\
|
||||
ldrh r1, [r2, #0x6]\n\
|
||||
sub r0, r1, r4\n\
|
||||
cmp r0, r5\n\
|
||||
bge _0819A0DE\n\
|
||||
add r0, r3, r1\n\
|
||||
sub r0, r4\n\
|
||||
str r0, [sp, #0x14]\n\
|
||||
b _0819A0E2\n\
|
||||
_0819A0DE:\n\
|
||||
add r5, r3, r5\n\
|
||||
str r5, [sp, #0x14]\n\
|
||||
_0819A0E2:\n\
|
||||
ldr r0, [sp]\n\
|
||||
ldrh r1, [r0, #0x4]\n\
|
||||
mov r2, #0x7\n\
|
||||
add r0, r1, #0\n\
|
||||
and r0, r2\n\
|
||||
add r1, r0\n\
|
||||
asr r1, #3\n\
|
||||
str r1, [sp, #0x18]\n\
|
||||
ldr r0, [sp, #0x4]\n\
|
||||
ldrh r1, [r0, #0x4]\n\
|
||||
add r0, r1, #0\n\
|
||||
and r0, r2\n\
|
||||
add r1, r0\n\
|
||||
asr r1, #3\n\
|
||||
str r1, [sp, #0x1C]\n\
|
||||
mov r12, r3\n\
|
||||
mov r8, r4\n\
|
||||
ldr r1, [sp, #0x14]\n\
|
||||
cmp r12, r1\n\
|
||||
blt _0819A10C\n\
|
||||
b _0819A24A\n\
|
||||
_0819A10C:\n\
|
||||
ldr r5, [sp, #0x8]\n\
|
||||
ldr r6, [sp, #0xC]\n\
|
||||
mov r2, r12\n\
|
||||
add r2, #0x1\n\
|
||||
str r2, [sp, #0x20]\n\
|
||||
mov r0, r8\n\
|
||||
add r0, #0x1\n\
|
||||
str r0, [sp, #0x24]\n\
|
||||
ldr r1, [sp, #0x10]\n\
|
||||
cmp r5, r1\n\
|
||||
blt _0819A124\n\
|
||||
b _0819A23A\n\
|
||||
_0819A124:\n\
|
||||
mov r7, #0x1\n\
|
||||
mov r2, #0xF0\n\
|
||||
mov r10, r2\n\
|
||||
mov r0, #0xF\n\
|
||||
mov r9, r0\n\
|
||||
_0819A12E:\n\
|
||||
asr r0, r5, #1\n\
|
||||
mov r1, #0x3\n\
|
||||
and r0, r1\n\
|
||||
ldr r2, [sp]\n\
|
||||
ldr r1, [r2]\n\
|
||||
add r1, r0\n\
|
||||
asr r0, r5, #3\n\
|
||||
lsl r0, #5\n\
|
||||
add r1, r0\n\
|
||||
mov r2, r12\n\
|
||||
asr r0, r2, #3\n\
|
||||
ldr r2, [sp, #0x18]\n\
|
||||
mul r0, r2\n\
|
||||
lsl r0, #5\n\
|
||||
add r1, r0\n\
|
||||
mov r2, r12\n\
|
||||
lsl r0, r2, #29\n\
|
||||
lsr r0, #27\n\
|
||||
add r3, r1, r0\n\
|
||||
asr r0, r6, #1\n\
|
||||
mov r1, #0x3\n\
|
||||
and r0, r1\n\
|
||||
ldr r2, [sp, #0x4]\n\
|
||||
ldr r1, [r2]\n\
|
||||
add r1, r0\n\
|
||||
asr r0, r6, #3\n\
|
||||
lsl r0, #5\n\
|
||||
add r1, r0\n\
|
||||
mov r2, r8\n\
|
||||
asr r0, r2, #3\n\
|
||||
ldr r2, [sp, #0x1C]\n\
|
||||
mul r0, r2\n\
|
||||
lsl r0, #5\n\
|
||||
add r1, r0\n\
|
||||
mov r2, r8\n\
|
||||
lsl r0, r2, #29\n\
|
||||
lsr r0, #27\n\
|
||||
add r4, r1, r0\n\
|
||||
add r0, r4, #0\n\
|
||||
and r0, r7\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0819A1DA\n\
|
||||
sub r4, #0x1\n\
|
||||
add r0, r6, #0\n\
|
||||
and r0, r7\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0819A1B2\n\
|
||||
ldrh r0, [r4]\n\
|
||||
ldr r2, =0x00000fff\n\
|
||||
and r2, r0\n\
|
||||
add r0, r5, #0\n\
|
||||
and r0, r7\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0819A1A8\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r10\n\
|
||||
and r0, r1\n\
|
||||
lsl r0, #8\n\
|
||||
b _0819A22A\n\
|
||||
.pool\n\
|
||||
_0819A1A8:\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r9\n\
|
||||
and r0, r1\n\
|
||||
lsl r0, #12\n\
|
||||
b _0819A22A\n\
|
||||
_0819A1B2:\n\
|
||||
ldrh r0, [r4]\n\
|
||||
ldr r2, =0x0000f0ff\n\
|
||||
and r2, r0\n\
|
||||
add r0, r5, #0\n\
|
||||
and r0, r7\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0819A1D0\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r10\n\
|
||||
and r0, r1\n\
|
||||
lsl r0, #4\n\
|
||||
b _0819A22A\n\
|
||||
.pool\n\
|
||||
_0819A1D0:\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r9\n\
|
||||
and r0, r1\n\
|
||||
lsl r0, #8\n\
|
||||
b _0819A22A\n\
|
||||
_0819A1DA:\n\
|
||||
add r0, r6, #0\n\
|
||||
and r0, r7\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0819A206\n\
|
||||
ldrh r0, [r4]\n\
|
||||
ldr r2, =0x0000ff0f\n\
|
||||
and r2, r0\n\
|
||||
add r0, r5, #0\n\
|
||||
and r0, r7\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0819A1FC\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r10\n\
|
||||
b _0819A228\n\
|
||||
.pool\n\
|
||||
_0819A1FC:\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r9\n\
|
||||
and r0, r1\n\
|
||||
lsl r0, #4\n\
|
||||
b _0819A22A\n\
|
||||
_0819A206:\n\
|
||||
ldrh r0, [r4]\n\
|
||||
ldr r2, =0x0000fff0\n\
|
||||
and r2, r0\n\
|
||||
add r0, r5, #0\n\
|
||||
and r0, r7\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0819A224\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r10\n\
|
||||
and r0, r1\n\
|
||||
lsr r0, #4\n\
|
||||
b _0819A22A\n\
|
||||
.pool\n\
|
||||
_0819A224:\n\
|
||||
ldrb r1, [r3]\n\
|
||||
mov r0, r9\n\
|
||||
_0819A228:\n\
|
||||
and r0, r1\n\
|
||||
_0819A22A:\n\
|
||||
orr r2, r0\n\
|
||||
strh r2, [r4]\n\
|
||||
add r5, #0x1\n\
|
||||
add r6, #0x1\n\
|
||||
ldr r0, [sp, #0x10]\n\
|
||||
cmp r5, r0\n\
|
||||
bge _0819A23A\n\
|
||||
b _0819A12E\n\
|
||||
_0819A23A:\n\
|
||||
ldr r1, [sp, #0x20]\n\
|
||||
mov r12, r1\n\
|
||||
ldr r2, [sp, #0x24]\n\
|
||||
mov r8, r2\n\
|
||||
ldr r0, [sp, #0x14]\n\
|
||||
cmp r12, r0\n\
|
||||
bge _0819A24A\n\
|
||||
b _0819A10C\n\
|
||||
_0819A24A:\n\
|
||||
add sp, #0x28\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_819A25C(u8 palOffset, u16 speciesId)
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ EWRAM_DATA static struct YesNoFuncTable gUnknown_0203A138 = {0};
|
||||
EWRAM_DATA static u8 gUnknown_0203A140 = 0;
|
||||
|
||||
// IWRAM bss vars
|
||||
IWRAM_DATA static TaskFunc gUnknown_0300117C;
|
||||
static TaskFunc gUnknown_0300117C;
|
||||
|
||||
// const rom data
|
||||
static const struct OamData sOamData_859F4E8 =
|
||||
|
@ -458,338 +458,106 @@ void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0)
|
||||
arg0->unk354 = 1;
|
||||
}
|
||||
|
||||
/* TODO
|
||||
static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 arg1[66][2], struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 arg5[66][2])
|
||||
static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 *arg5)
|
||||
{
|
||||
s32 var_2C = 0;
|
||||
u16 r8;
|
||||
s32 r10, r4, r2, r0, r1, var_30;
|
||||
u16 i, r8, r10, r0, var_30;
|
||||
u16 *ptr;
|
||||
s32 r4, var_2C;
|
||||
|
||||
var_2C = 0;
|
||||
if (arg2->unk2 < arg3->unk2)
|
||||
{
|
||||
r2 = arg2->unk2;
|
||||
r10 = arg2->unk2;
|
||||
r0 = arg3->unk2;
|
||||
r1 = arg2->unk0;
|
||||
r4 = r1 << 10;
|
||||
r4 = arg2->unk0 << 10;
|
||||
var_30 = arg3->unk0;
|
||||
r8 = r0 - r10;
|
||||
if (r8 != 0)
|
||||
var_2C = ((var_30 - arg2->unk0) << 10) / r8;
|
||||
}
|
||||
else
|
||||
{
|
||||
r0 = arg2->unk0;
|
||||
r0 = arg2->unk2;
|
||||
r10 = arg3->unk2;
|
||||
r1 = arg3->unk0;
|
||||
r4 = r1 << 10;
|
||||
r4 = arg3->unk0 << 10;
|
||||
var_30 = arg2->unk0;
|
||||
r2 = arg3->unk2;
|
||||
r8 = r0 - r10;
|
||||
if (r8 != 0)
|
||||
var_2C = ((var_30 - arg3->unk0) << 10) / r8;
|
||||
}
|
||||
r8 = r0 - r2;
|
||||
if (r8 != 0)
|
||||
var_2C = ((var_30 - r1) << 10) / r8;
|
||||
|
||||
r8++;
|
||||
if (arg5 == NULL)
|
||||
{
|
||||
arg1 += (r10 - 56) * 2;
|
||||
for (i = 0; i < r8; i++)
|
||||
{
|
||||
arg1[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4;
|
||||
r4 += var_2C;
|
||||
arg1 += 2;
|
||||
}
|
||||
|
||||
ptr = arg1 - 2;
|
||||
}
|
||||
}
|
||||
*/
|
||||
NAKED
|
||||
static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 arg1[66][2], struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 arg5[66][2])
|
||||
{
|
||||
asm_unified("\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x18\n\
|
||||
str r0, [sp]\n\
|
||||
adds r6, r1, 0\n\
|
||||
adds r5, r2, 0\n\
|
||||
str r3, [sp, 0x4]\n\
|
||||
ldr r0, [sp, 0x38]\n\
|
||||
ldr r7, [sp, 0x3C]\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r9, r0\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [sp, 0xC]\n\
|
||||
ldrh r0, [r5, 0x2]\n\
|
||||
ldrh r1, [r3, 0x2]\n\
|
||||
cmp r0, r1\n\
|
||||
bcs _081D22B2\n\
|
||||
adds r2, r0, 0\n\
|
||||
mov r10, r2\n\
|
||||
ldrh r0, [r3, 0x2]\n\
|
||||
ldrh r1, [r5]\n\
|
||||
lsls r4, r1, 10\n\
|
||||
ldrh r3, [r3]\n\
|
||||
str r3, [sp, 0x8]\n\
|
||||
b _081D22C6\n\
|
||||
_081D22B2:\n\
|
||||
ldrh r0, [r5, 0x2]\n\
|
||||
ldr r1, [sp, 0x4]\n\
|
||||
ldrh r1, [r1, 0x2]\n\
|
||||
mov r10, r1\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
ldrh r1, [r2]\n\
|
||||
lsls r4, r1, 10\n\
|
||||
ldrh r3, [r5]\n\
|
||||
str r3, [sp, 0x8]\n\
|
||||
mov r2, r10\n\
|
||||
_081D22C6:\n\
|
||||
subs r0, r2\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r8, r0\n\
|
||||
cmp r0, 0\n\
|
||||
beq _081D22DE\n\
|
||||
subs r0, r3, r1\n\
|
||||
lsls r0, 10\n\
|
||||
mov r1, r8\n\
|
||||
bl __divsi3\n\
|
||||
str r0, [sp, 0xC]\n\
|
||||
_081D22DE:\n\
|
||||
mov r0, r8\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r8, r0\n\
|
||||
cmp r7, 0\n\
|
||||
bne _081D2328\n\
|
||||
mov r0, r10\n\
|
||||
subs r0, 0x38\n\
|
||||
lsls r0, 2\n\
|
||||
adds r6, r0\n\
|
||||
movs r5, 0\n\
|
||||
mov r3, r9\n\
|
||||
lsls r3, 1\n\
|
||||
mov r12, r3\n\
|
||||
ldr r0, [sp, 0x8]\n\
|
||||
add r0, r9\n\
|
||||
str r0, [sp, 0x10]\n\
|
||||
cmp r7, r8\n\
|
||||
bcs _081D23B6\n\
|
||||
movs r7, 0x1\n\
|
||||
_081D2308:\n\
|
||||
adds r2, r3, r6\n\
|
||||
asrs r1, r4, 10\n\
|
||||
asrs r0, r4, 9\n\
|
||||
ands r0, r7\n\
|
||||
adds r1, r0\n\
|
||||
add r1, r9\n\
|
||||
strh r1, [r2]\n\
|
||||
ldr r1, [sp, 0xC]\n\
|
||||
adds r4, r1\n\
|
||||
adds r6, 0x4\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
cmp r5, r8\n\
|
||||
bcc _081D2308\n\
|
||||
b _081D23B6\n\
|
||||
_081D2328:\n\
|
||||
ldr r2, [sp, 0xC]\n\
|
||||
cmp r2, 0\n\
|
||||
ble _081D23C0\n\
|
||||
mov r0, r10\n\
|
||||
subs r0, 0x38\n\
|
||||
lsls r0, 2\n\
|
||||
adds r7, r0\n\
|
||||
movs r5, 0\n\
|
||||
mov r3, r9\n\
|
||||
lsls r3, 1\n\
|
||||
mov r12, r3\n\
|
||||
ldr r0, [sp, 0x8]\n\
|
||||
add r0, r9\n\
|
||||
str r0, [sp, 0x10]\n\
|
||||
cmp r5, r8\n\
|
||||
bcs _081D237A\n\
|
||||
ldr r0, =0x00026bff\n\
|
||||
cmp r4, r0\n\
|
||||
bgt _081D237A\n\
|
||||
mov r1, r12\n\
|
||||
str r1, [sp, 0x14]\n\
|
||||
_081D2352:\n\
|
||||
ldr r3, [sp, 0x14]\n\
|
||||
adds r2, r3, r7\n\
|
||||
asrs r1, r4, 10\n\
|
||||
asrs r0, r4, 9\n\
|
||||
movs r3, 0x1\n\
|
||||
ands r0, r3\n\
|
||||
adds r1, r0\n\
|
||||
add r1, r9\n\
|
||||
strh r1, [r2]\n\
|
||||
ldr r0, [sp, 0xC]\n\
|
||||
adds r4, r0\n\
|
||||
adds r7, 0x4\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
cmp r5, r8\n\
|
||||
bcs _081D237A\n\
|
||||
ldr r1, =0x00026bff\n\
|
||||
cmp r4, r1\n\
|
||||
ble _081D2352\n\
|
||||
_081D237A:\n\
|
||||
mov r2, r10\n\
|
||||
adds r1, r2, r5\n\
|
||||
ldr r3, [sp]\n\
|
||||
movs r2, 0xD4\n\
|
||||
lsls r2, 2\n\
|
||||
adds r0, r3, r2\n\
|
||||
strh r1, [r0]\n\
|
||||
ldrh r0, [r0]\n\
|
||||
subs r0, 0x38\n\
|
||||
lsls r0, 2\n\
|
||||
adds r6, r0\n\
|
||||
cmp r5, r8\n\
|
||||
bcs _081D23B6\n\
|
||||
mov r3, r12\n\
|
||||
movs r7, 0x1\n\
|
||||
_081D2398:\n\
|
||||
adds r2, r3, r6\n\
|
||||
asrs r1, r4, 10\n\
|
||||
asrs r0, r4, 9\n\
|
||||
ands r0, r7\n\
|
||||
adds r1, r0\n\
|
||||
add r1, r9\n\
|
||||
strh r1, [r2]\n\
|
||||
ldr r0, [sp, 0xC]\n\
|
||||
adds r4, r0\n\
|
||||
adds r6, 0x4\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
cmp r5, r8\n\
|
||||
bcc _081D2398\n\
|
||||
_081D23B6:\n\
|
||||
subs r0, r6, 0x4\n\
|
||||
b _081D248C\n\
|
||||
.pool\n\
|
||||
_081D23C0:\n\
|
||||
ldr r1, [sp, 0xC]\n\
|
||||
cmp r1, 0\n\
|
||||
bge _081D2464\n\
|
||||
mov r0, r10\n\
|
||||
subs r0, 0x38\n\
|
||||
lsls r0, 2\n\
|
||||
adds r6, r0\n\
|
||||
movs r5, 0\n\
|
||||
mov r2, r9\n\
|
||||
lsls r2, 1\n\
|
||||
mov r12, r2\n\
|
||||
ldr r3, [sp, 0x8]\n\
|
||||
add r3, r9\n\
|
||||
str r3, [sp, 0x10]\n\
|
||||
cmp r5, r8\n\
|
||||
bcs _081D241E\n\
|
||||
adds r3, r2, r6\n\
|
||||
asrs r1, r4, 10\n\
|
||||
asrs r0, r4, 9\n\
|
||||
movs r2, 0x1\n\
|
||||
ands r0, r2\n\
|
||||
adds r1, r0\n\
|
||||
add r1, r9\n\
|
||||
strh r1, [r3]\n\
|
||||
b _081D2414\n\
|
||||
_081D23F2:\n\
|
||||
ldr r0, [sp, 0xC]\n\
|
||||
adds r4, r0\n\
|
||||
adds r6, 0x4\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
cmp r5, r8\n\
|
||||
bcs _081D241E\n\
|
||||
mov r1, r12\n\
|
||||
adds r3, r1, r6\n\
|
||||
asrs r2, r4, 10\n\
|
||||
asrs r0, r4, 9\n\
|
||||
movs r1, 0x1\n\
|
||||
ands r0, r1\n\
|
||||
adds r2, r0\n\
|
||||
add r2, r9\n\
|
||||
strh r2, [r3]\n\
|
||||
_081D2414:\n\
|
||||
ldr r0, =0x00026bff\n\
|
||||
cmp r4, r0\n\
|
||||
bgt _081D23F2\n\
|
||||
movs r0, 0x9B\n\
|
||||
strh r0, [r3]\n\
|
||||
_081D241E:\n\
|
||||
mov r2, r10\n\
|
||||
adds r1, r2, r5\n\
|
||||
ldr r3, [sp]\n\
|
||||
movs r2, 0xD4\n\
|
||||
lsls r2, 2\n\
|
||||
adds r0, r3, r2\n\
|
||||
strh r1, [r0]\n\
|
||||
ldrh r0, [r0]\n\
|
||||
subs r0, 0x38\n\
|
||||
lsls r0, 2\n\
|
||||
adds r7, r0\n\
|
||||
cmp r5, r8\n\
|
||||
bcs _081D245A\n\
|
||||
mov r3, r12\n\
|
||||
movs r6, 0x1\n\
|
||||
_081D243C:\n\
|
||||
adds r2, r3, r7\n\
|
||||
asrs r1, r4, 10\n\
|
||||
asrs r0, r4, 9\n\
|
||||
ands r0, r6\n\
|
||||
adds r1, r0\n\
|
||||
add r1, r9\n\
|
||||
strh r1, [r2]\n\
|
||||
ldr r0, [sp, 0xC]\n\
|
||||
adds r4, r0\n\
|
||||
adds r7, 0x4\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
cmp r5, r8\n\
|
||||
bcc _081D243C\n\
|
||||
_081D245A:\n\
|
||||
subs r0, r7, 0x4\n\
|
||||
b _081D248C\n\
|
||||
.pool\n\
|
||||
_081D2464:\n\
|
||||
ldr r1, [sp]\n\
|
||||
movs r2, 0xD4\n\
|
||||
lsls r2, 2\n\
|
||||
adds r0, r1, r2\n\
|
||||
mov r3, r10\n\
|
||||
strh r3, [r0]\n\
|
||||
mov r0, r10\n\
|
||||
subs r0, 0x38\n\
|
||||
lsls r0, 2\n\
|
||||
adds r6, r0\n\
|
||||
adds r7, r0\n\
|
||||
ldrh r0, [r5]\n\
|
||||
adds r0, 0x1\n\
|
||||
strh r0, [r6, 0x2]\n\
|
||||
ldr r1, [sp, 0x4]\n\
|
||||
ldrh r0, [r1]\n\
|
||||
strh r0, [r7]\n\
|
||||
movs r0, 0x9B\n\
|
||||
strh r0, [r7, 0x2]\n\
|
||||
b _081D2494\n\
|
||||
_081D248C:\n\
|
||||
add r0, r12\n\
|
||||
mov r2, sp\n\
|
||||
ldrh r2, [r2, 0x10]\n\
|
||||
strh r2, [r0]\n\
|
||||
_081D2494:\n\
|
||||
add sp, 0x18\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
");
|
||||
else if (var_2C > 0)
|
||||
{
|
||||
arg5 += (r10 - 56) * 2;
|
||||
// Less readable than the other loops, but it has to be written this way to match.
|
||||
for (i = 0; i < r8; arg5[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4, r4 += var_2C, arg5 += 2, i++)
|
||||
{
|
||||
if (r4 >= (155 << 10))
|
||||
break;
|
||||
}
|
||||
|
||||
arg0->unk350 = r10 + i;
|
||||
arg1 += (arg0->unk350 - 56) * 2;
|
||||
for (; i < r8; i++)
|
||||
{
|
||||
arg1[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4;
|
||||
r4 += var_2C;
|
||||
arg1 += 2;
|
||||
}
|
||||
|
||||
ptr = arg1 - 2;
|
||||
}
|
||||
else if (var_2C < 0)
|
||||
{
|
||||
arg1 += (r10 - 56) * 2;
|
||||
for (i = 0; i < r8; i++)
|
||||
{
|
||||
arg1[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4;
|
||||
if (r4 < (155 << 10))
|
||||
{
|
||||
arg1[arg4] = 155;
|
||||
break;
|
||||
}
|
||||
r4 += var_2C;
|
||||
arg1 += 2;
|
||||
}
|
||||
|
||||
arg0->unk350 = r10 + i;
|
||||
arg5 += (arg0->unk350 - 56) * 2;
|
||||
for (; i < r8; i++)
|
||||
{
|
||||
arg5[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4;
|
||||
r4 += var_2C;
|
||||
arg5 += 2;
|
||||
}
|
||||
|
||||
ptr = arg5 - 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
arg0->unk350 = r10;
|
||||
arg1 += (r10 - 56) * 2;
|
||||
arg5 += (r10 - 56) * 2;
|
||||
arg1[1] = arg2->unk0 + 1;
|
||||
arg5[0] = arg3->unk0;
|
||||
arg5[1] = 155;
|
||||
return;
|
||||
}
|
||||
|
||||
ptr[arg4] = arg4 + var_30;
|
||||
}
|
||||
|
||||
static void sub_81D24A4(struct UnknownStruct_81D1ED4 *arg0)
|
||||
@ -799,18 +567,18 @@ static void sub_81D24A4(struct UnknownStruct_81D1ED4 *arg0)
|
||||
if (arg0->unk12C[0].unk2 < arg0->unk12C[1].unk2)
|
||||
{
|
||||
r6 = arg0->unk12C[0].unk2;
|
||||
sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[0], &arg0->unk12C[1], 1, NULL);
|
||||
sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[0], &arg0->unk12C[1], 1, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
r6 = arg0->unk12C[1].unk2;
|
||||
sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[1], &arg0->unk12C[0], 0, NULL);
|
||||
sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[1], &arg0->unk12C[0], 0, NULL);
|
||||
}
|
||||
|
||||
sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[1], &arg0->unk12C[2], 1, NULL);
|
||||
sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[1], &arg0->unk12C[2], 1, NULL);
|
||||
|
||||
i = (arg0->unk12C[2].unk2 <= arg0->unk12C[3].unk2);
|
||||
sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[2], &arg0->unk12C[3], i, arg0->unk248);
|
||||
sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[2], &arg0->unk12C[3], i, arg0->unk248[0]);
|
||||
for (i = 56; i < r6; i++)
|
||||
{
|
||||
arg0->unk140[i - 56][0] = 0;
|
||||
@ -841,15 +609,15 @@ static void sub_81D2634(struct UnknownStruct_81D1ED4 *arg0)
|
||||
if (arg0->unk12C[0].unk2 < arg0->unk12C[4].unk2)
|
||||
{
|
||||
r6 = arg0->unk12C[0].unk2;
|
||||
sub_81D2278(arg0, arg0->unk248, &arg0->unk12C[0], &arg0->unk12C[4], 0, NULL);
|
||||
sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[0], &arg0->unk12C[4], 0, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
r6 = arg0->unk12C[4].unk2;
|
||||
sub_81D2278(arg0, arg0->unk248, &arg0->unk12C[4], &arg0->unk12C[0], 1, NULL);
|
||||
sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[4], &arg0->unk12C[0], 1, NULL);
|
||||
}
|
||||
|
||||
sub_81D2278(arg0, arg0->unk248, &arg0->unk12C[4], &arg0->unk12C[3], 0, NULL);
|
||||
sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[4], &arg0->unk12C[3], 0, NULL);
|
||||
|
||||
for (i = 56; i < r6; i++)
|
||||
{
|
||||
@ -1290,7 +1058,7 @@ void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u
|
||||
u32 personality = GetBoxOrPartyMonData(boxId, monId, MON_DATA_PERSONALITY, NULL);
|
||||
|
||||
LoadSpecialPokePic(&gMonFrontPicTable[species], tilesDst, species, personality, TRUE);
|
||||
LZ77UnCompWram(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), palDst);
|
||||
LZ77UnCompWram(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), palDst);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -258,7 +258,7 @@ EWRAM_DATA static struct Struct203CF10 *sUnknown_0203CF10 = NULL;
|
||||
EWRAM_DATA static struct BgRegOffsets *sBgShakeOffsets = NULL;
|
||||
EWRAM_DATA struct MirageTowerPulseBlend *sMirageTowerPulseBlend = NULL;
|
||||
|
||||
IWRAM_DATA static u16 gUnknown_030012A8[8];
|
||||
static u16 gUnknown_030012A8[8];
|
||||
|
||||
bool8 IsMirageTowerVisible(void)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "gba/gba.h"
|
||||
#include "multiboot.h"
|
||||
|
||||
IWRAM_DATA static u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
|
||||
static u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
|
||||
|
||||
static int MultiBootSend(struct MultiBootParam *mp, u16 data);
|
||||
static int MultiBootHandShake(struct MultiBootParam *mp);
|
||||
@ -435,7 +435,7 @@ static int MultiBootHandShake(struct MultiBootParam *mp)
|
||||
#undef must_data
|
||||
}
|
||||
|
||||
static void MultiBootWaitCycles(u32 cycles)
|
||||
static NOINLINE void MultiBootWaitCycles(u32 cycles)
|
||||
{
|
||||
asm("mov r2, pc");
|
||||
asm("lsr r2, #24");
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "contest.h"
|
||||
#include "item_menu.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "pokemon_jump.h"
|
||||
#include "decoration_inventory.h"
|
||||
#include "secret_base.h"
|
||||
#include "player_pc.h"
|
||||
@ -45,8 +46,6 @@
|
||||
#include "mevent.h"
|
||||
#include "union_room_chat.h"
|
||||
|
||||
extern void ResetPokeJumpResults(void);
|
||||
|
||||
extern const u8 EventScript_ResetAllMapFlags[];
|
||||
|
||||
// this file's functions
|
||||
|
@ -186,15 +186,15 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr
|
||||
static u16 GetCenterScreenMetatileBehavior(void);
|
||||
|
||||
// IWRAM bss vars
|
||||
IWRAM_DATA static void *sUnusedOverworldCallback;
|
||||
IWRAM_DATA static u8 sPlayerTradingStates[4];
|
||||
static void *sUnusedOverworldCallback;
|
||||
static u8 sPlayerTradingStates[4];
|
||||
// This callback is called with a player's key code. It then returns an
|
||||
// adjusted key code, effectively intercepting the input before anything
|
||||
// can process it.
|
||||
IWRAM_DATA static u16 (*sPlayerKeyInterceptCallback)(u32);
|
||||
IWRAM_DATA static bool8 sUnknown_03000E18;
|
||||
IWRAM_DATA static u8 sRfuKeepAliveTimer;
|
||||
IWRAM_DATA static u32 sUnusedVar;
|
||||
static u16 (*sPlayerKeyInterceptCallback)(u32);
|
||||
static bool8 sUnknown_03000E18;
|
||||
static u8 sRfuKeepAliveTimer;
|
||||
static u32 sUnusedVar;
|
||||
|
||||
// IWRAM common
|
||||
u16 *gBGTilemapBuffers1;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user