Merge remote-tracking branch 'upstream/master'

This commit is contained in:
paul
2018-10-03 19:36:11 +02:00
8 changed files with 305 additions and 191 deletions
+52
View File
@@ -0,0 +1,52 @@
Install [devkitARM](https://devkitpro.org/wiki/Getting_Started) (if you are on **Windows 10**, [do this instead](#windows-10)).
Run the following commands (first, see [this](#macos) if you are on **macOS** or [this](#old-windows) if you are on **old Windows**):
export DEVKITPRO=/opt/devkitpro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
git clone https://github.com/pret/pokefirered
git clone https://github.com/pret/agbcc
cd agbcc
./build.sh
./install.sh ../pokefirered
cd ../pokefirered
To build **pokefirered.gba**:
make -j$(nproc)
If you have only changed `.c` or `.s` files, you can turn off the dependency scanning temporarily. Changes to any other files will be ignored, and the build will either fail or not reflect those changes.
make -j$(nproc) NODEP=1
## macOS
Run `xcode-select --install` in Terminal, then proceed by executing the commands.
## Old Windows
*For Windows 8.1 and earlier*
Download and run the [Cygwin](https://www.cygwin.com/install.html) setup, leaving the default settings intact. At "Select Packages", set the view to "Full" and choose to install the following:
- `make`
- `git`
- `gcc-core`
- `gcc-g++`
- `libpng-devel`
In the Cygwin command prompt, enter the commands.
If the command for building pokefirered.gba does not work, run `nproc` and use that value instead of `$(nproc)` for `make`.
## Windows 10
Install the [Windows Subsystem for Linux](https://docs.microsoft.com/windows/wsl/install-win10), then install [devkitARM](https://devkitpro.org/wiki/Getting_Started) inside the subsystem, and run the commands.
+128 -61
View File
@@ -1,108 +1,175 @@
AS := $(DEVKITARM)/bin/arm-none-eabi-as
include $(DEVKITARM)/base_tools
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
TITLE := POKEMON FIRE
GAME_CODE := BPRE
MAKER_CODE := 01
REVISION := 0
SHELL := /bin/bash -o pipefail
ROM := pokefirered.gba
OBJ_DIR := build/firered
ELF = $(ROM:.gba=.elf)
MAP = $(ROM:.gba=.map)
C_SUBDIR = src
ASM_SUBDIR = asm
DATA_ASM_SUBDIR = data
SONG_SUBDIR = sound/songs
C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR)
ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
ASFLAGS := -mcpu=arm7tdmi
CC1 := tools/agbcc/bin/agbcc
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm
CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp
CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef
LD := $(DEVKITARM)/bin/arm-none-eabi-ld
LDFLAGS = -Map ../../$(MAP)
OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy
LIBGCC := tools/agbcc/lib/libgcc.a
LIBC := tools/agbcc/lib/libc.a
SHA1 := sha1sum -c
LIB := -L ../../tools/agbcc/lib -lgcc -lc
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx
AIF := tools/aif2pcm/aif2pcm
MID := tools/mid2agb/mid2agb
SCANINC := tools/scaninc/scaninc
PREPROC := tools/preproc/preproc
RAMSCRGEN := tools/ramscrgen/ramscrgen
FIX := tools/gbafix/gbafix
REVISION := 0
# Clear the default suffixes.
# Clear the default suffixes
.SUFFIXES:
# Don't delete intermediate files
.SECONDARY:
# Delete files that weren't built properly
.DELETE_ON_ERROR:
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
.PRECIOUS: %.1bpp %.4bpp %.8bpp %.gbapal %.lz %.rl %.pcm %.bin
.PHONY: rom clean compare tidy
.PHONY: all clean tidy
$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SONG_BUILDDIR))
C_SRCS := $(wildcard src/*.c)
C_OBJS := $(C_SRCS:%.c=%.o)
C_SRCS := $(wildcard $(C_SUBDIR)/*.c)
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
ASM_SRCS := $(wildcard asm/*.s)
ASM_OBJS := $(ASM_SRCS:%.s=%.o)
ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS))
DATA_ASM_SRCS := $(wildcard data/*.s)
DATA_ASM_OBJS := $(DATA_ASM_SRCS:%.s=%.o)
DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s)
DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS))
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS)
SONG_SRCS := $(wildcard $(SONG_SUBDIR)/*.s)
SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS))
all: pokefirered.gba
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS)
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
rom: $(ROM)
# For contributors to make sure a change didn't affect the contents of the ROM.
compare: all
@$(SHA1) firered.sha1
compare: $(ROM)
@$(SHA1) rom.sha1
clean: tidy
rm -f sound/direct_sound_samples/*.bin
rm -f $(SONG_OBJS)
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 {} +
tidy:
rm -f pokefirered.gba pokefirered.elf pokefirered.map
rm -f $(ASM_OBJS)
rm -f $(DATA_ASM_OBJS)
rm -f $(C_OBJS)
rm -f $(ASM_OBJS)
rm -f $(DATA_ASM_OBJS)
rm -f $(C_SRCS:%.c=%.i)
rm -f $(C_SRCS:%.c=%.s)
rm -f *.ld
rm -f $(ROM) $(ELF) $(MAP)
rm -r build/*
src/agb_flash.o: CFLAGS := -O -mthumb-interwork
src/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
src/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
%.s: ;
%.png: ;
%.pal: ;
%.aif: ;
src/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
src/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
%.1bpp: %.png ; $(GFX) $< $@
%.4bpp: %.png ; $(GFX) $< $@
%.8bpp: %.png ; $(GFX) $< $@
%.gbapal: %.pal ; $(GFX) $< $@
%.gbapal: %.png ; $(GFX) $< $@
%.lz: % ; $(GFX) $< $@
%.rl: % ; $(GFX) $< $@
sound/direct_sound_samples/cry_%.bin: sound/direct_sound_samples/cry_%.aif ; $(AIF) $< $@ --compress
sound/%.bin: sound/%.aif ; $(AIF) $< $@
sound/songs/%.s: sound/songs/%.mid
cd $(@D) && ../../$(MID) $(<F)
src/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc
src/isagbprn.o: CFLAGS := -mthumb-interwork
$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc
$(C_BUILDDIR)/libc.o: CFLAGS := -O2
$(C_OBJS): %.o : %.c
@$(CPP) $(CPPFLAGS) $< -o $*.i
@$(PREPROC) $*.i charmap.txt | $(CC1) $(CFLAGS) -o $*.s
@printf ".text\n\t.align\t2, 0\n" >> $*.s
$(AS) $(ASFLAGS) -o $@ $*.s
$(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork
$(ASM_OBJS): %.o: %.s
$(AS) $(ASFLAGS) --defsym REVISION=$(REVISION) -o $@ $<
$(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
$(DATA_ASM_OBJS): %.o: %.s
$(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) --defsym REVISION=$(REVISION) -o $@
$(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
sym_bss.ld: sym_bss.txt
$(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc
$(C_BUILDDIR)/isagbprn.o: CFLAGS := -mthumb-interwork
ifeq ($(NODEP),)
$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c)
else
$(C_BUILDDIR)/%.o: c_dep :=
endif
$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep)
@$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i
@$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s
@echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s
$(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s
ifeq ($(NODEP),)
$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s)
else
$(ASM_BUILDDIR)/%.o: asm_dep :=
endif
$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep)
$(AS) $(ASFLAGS) -o $@ $<
ifeq ($(NODEP),)
$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
else
$(DATA_ASM_BUILDDIR)/%.o: data_dep :=
endif
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
$(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
$(AS) $(ASFLAGS) -I sound -o $@ $<
$(OBJ_DIR)/sym_bss.ld: sym_bss.txt
$(RAMSCRGEN) .bss $< ENGLISH > $@
sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(RAMSCRGEN) COMMON $< ENGLISH -c src,common_syms > $@
$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@
sym_ewram.ld: sym_ewram.txt
$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
$(RAMSCRGEN) ewram_data $< ENGLISH > $@
ld_script.ld: ld_script.txt sym_bss.ld sym_common.ld sym_ewram.ld
sed -f ld_script.sed ld_script.txt >ld_script.ld
$(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 -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" > ld_script.ld
pokefirered.elf: ld_script.ld $(OBJS)
$(LD) -T ld_script.ld -Map pokefirered.map -o $@ $(OBJS) $(LIBGCC) $(LIBC)
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
$(ROM): $(ELF)
$(OBJCOPY) -O binary $< $@
$(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
pokefirered.gba: pokefirered.elf
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
+6 -6
View File
@@ -1,8 +1,8 @@
# Pokémon Fire Red
# Pokémon FireRed and LeafGreen
This is a disassembly of Pokémon Fire Red.
This is a disassembly of Pokémon FireRed and LeafGreen.
It builds the following rom:
It builds the following ROM:
* pokefirered.gba `sha1: 41cb23d8dccc8ebd7c649cd8fbb58eeace6e2fdc`
@@ -11,13 +11,13 @@ To set up the repository, see [**INSTALL.md**](INSTALL.md).
## See also
* Disassembly of [**Pokémon Red/Blue**][pokered]
* Disassembly of [**Pokémon Red and Blue**][pokered]
* Disassembly of [**Pokémon Yellow**][pokeyellow]
* Disassembly of [**Pokémon Gold**][pokegold]
* Disassembly of [**Pokémon Gold and Silver**][pokegold]
* Disassembly of [**Pokémon Crystal**][pokecrystal]
* Disassembly of [**Pokémon Pinball**][pokepinball]
* Disassembly of [**Pokémon TCG**][poketcg]
* Disassembly of [**Pokémon Ruby**][pokeruby]
* Disassembly of [**Pokémon Ruby and Sapphire**][pokeruby]
* Disassembly of [**Pokémon Emerald**][pokeemerald]
* Discord: [**pret**][Discord]
* irc: **irc.freenode.net** [**#pret**][irc]
+7 -26
View File
@@ -1,38 +1,19 @@
.global RomHeaderNintendoLogo
RomHeaderNintendoLogo:
.byte 0x24,0xff,0xae,0x51,0x69,0x9a,0xa2,0x21
.byte 0x3d,0x84,0x82,0x0a,0x84,0xe4,0x09,0xad
.byte 0x11,0x24,0x8b,0x98,0xc0,0x81,0x7f,0x21
.byte 0xa3,0x52,0xbe,0x19,0x93,0x09,0xce,0x20
.byte 0x10,0x46,0x4a,0x4a,0xf8,0x27,0x31,0xec
.byte 0x58,0xc7,0xe8,0x33,0x82,0xe3,0xce,0xbf
.byte 0x85,0xf4,0xdf,0x94,0xce,0x4b,0x09,0xc1
.byte 0x94,0x56,0x8a,0xc0,0x13,0x72,0xa7,0xfc
.byte 0x9f,0x84,0x4d,0x73,0xa3,0xca,0x9a,0x61
.byte 0x58,0x97,0xa3,0x27,0xfc,0x03,0x98,0x76
.byte 0x23,0x1d,0xc7,0x61,0x03,0x04,0xae,0x56
.byte 0xbf,0x38,0x84,0x00,0x40,0xa7,0x0e,0xfd
.byte 0xff,0x52,0xfe,0x03,0x6f,0x95,0x30,0xf1
.byte 0x97,0xfb,0xc0,0x85,0x60,0xd6,0x80,0x25
.byte 0xa9,0x63,0xbe,0x03,0x01,0x4e,0x38,0xe2
.byte 0xf9,0xa2,0x34,0xff,0xbb,0x3e,0x03,0x44
.byte 0x78,0x00,0x90,0xcb,0x88,0x11,0x3a,0x94
.byte 0x65,0xc0,0x7c,0x63,0x87,0xf0,0x3c,0xaf
.byte 0xd6,0x25,0xe4,0x8b,0x38,0x0a,0xac,0x72
.byte 0x21,0xd4,0xf8,0x07
.space 156
RomHeaderGameTitle:
.ascii "POKEMON FIRE"
.space 12
.global RomHeaderGameCode
RomHeaderGameCode:
.ascii "BPRE"
.space 4
RomHeaderMakerCode:
.ascii "01"
.space 2
RomHeaderMagic:
.byte 0x96
.byte 0
RomHeaderMainUnitCode:
.byte 0
@@ -45,10 +26,10 @@ RomHeaderReserved1:
.global RomHeaderSoftwareVersion
RomHeaderSoftwareVersion:
.byte REVISION
.byte 0
RomHeaderChecksum:
.byte 0x68 - REVISION
.byte 0
RomHeaderReserved2:
.space 2
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
make -C tools/aif2pcm CXX=${1:-g++}
make -C tools/bin2c CXX=${1:-g++}
make -C tools/gbafix CXX=${1:-g++}
make -C tools/gbagfx CXX=${1:-g++}
make -C tools/preproc CXX=${1:-g++}
make -C tools/ramscrgen CXX=${1:-g++}
make -C tools/rsfont CXX=${1:-g++}
make -C tools/scaninc CXX=${1:-g++}
+100 -95
View File
@@ -15,9 +15,9 @@ SECTIONS {
<EWRAM>
tools/agbcc/lib/libc.a:impure.o(.data);
tools/agbcc/lib/libc.a:locale.o(.data);
tools/agbcc/lib/libc.a:mallocr.o(.data);
*libc.a:impure.o(.data);
*libc.a:locale.o(.data);
*libc.a:mallocr.o(.data);
. = 0x40000;
}
@@ -35,7 +35,7 @@ SECTIONS {
/* COMMON starts at 0x30030E0 */
<COMMON>
tools/agbcc/lib/libc.a:sbrkr.o(COMMON);
*libc.a:sbrkr.o(COMMON);
end = .;
. = 0x8000;
@@ -302,57 +302,57 @@ SECTIONS {
asm/librfu.o(.text);
src/isagbprn.o(.text);
asm/libagbsyscall.o(.text);
tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text);
tools/agbcc/lib/libgcc.a:_divdi3.o(.text);
tools/agbcc/lib/libgcc.a:_divsi3.o(.text);
tools/agbcc/lib/libgcc.a:_dvmd_tls.o(.text);
tools/agbcc/lib/libgcc.a:_fixunsdfsi.o(.text);
tools/agbcc/lib/libgcc.a:_modsi3.o(.text);
tools/agbcc/lib/libgcc.a:_muldi3.o(.text);
tools/agbcc/lib/libgcc.a:_udivdi3.o(.text);
tools/agbcc/lib/libgcc.a:_udivsi3.o(.text);
tools/agbcc/lib/libgcc.a:_umodsi3.o(.text);
tools/agbcc/lib/libgcc.a:dp-bit.o(.text);
tools/agbcc/lib/libgcc.a:fp-bit.o(.text);
tools/agbcc/lib/libgcc.a:_lshrdi3.o(.text);
tools/agbcc/lib/libgcc.a:_negdi2.o(.text);
tools/agbcc/lib/libc.a:memcpy.o(.text);
tools/agbcc/lib/libc.a:memset.o(.text);
tools/agbcc/lib/libc.a:strcmp.o(.text);
tools/agbcc/lib/libc.a:strcpy.o(.text);
tools/agbcc/lib/libc.a:impure.o(.text);
tools/agbcc/lib/libc.a:vsprintf.o(.text);
tools/agbcc/lib/libc.a:vfprintf.o(.text);
tools/agbcc/lib/libc.a:wsetup.o(.text);
tools/agbcc/lib/libc.a:dtoa.o(.text);
tools/agbcc/lib/libc.a:fflush.o(.text);
tools/agbcc/lib/libc.a:findfp.o(.text);
tools/agbcc/lib/libc.a:freer.o(.text);
tools/agbcc/lib/libc.a:mtrim.o(.text);
tools/agbcc/lib/libc.a:fvwrite.o(.text);
tools/agbcc/lib/libc.a:fwalk.o(.text);
tools/agbcc/lib/libc.a:locale.o(.text);
tools/agbcc/lib/libc.a:makebuf.o(.text);
tools/agbcc/lib/libc.a:mallocr.o(.text);
tools/agbcc/lib/libc.a:mbtowc_r.o(.text);
tools/agbcc/lib/libc.a:memchr.o(.text);
tools/agbcc/lib/libc.a:memmove.o(.text);
tools/agbcc/lib/libc.a:mlock.o(.text);
tools/agbcc/lib/libc.a:mprec.o(.text);
tools/agbcc/lib/libc.a:s_isinf.o(.text);
tools/agbcc/lib/libc.a:s_isnan.o(.text);
tools/agbcc/lib/libc.a:sbrkr.o(.text);
tools/agbcc/lib/libc.a:stdio.o(.text);
tools/agbcc/lib/libc.a:strlen.o(.text);
tools/agbcc/lib/libc.a:syscalls.o(.text);
tools/agbcc/lib/libc.a:writer.o(.text);
tools/agbcc/lib/libc.a:callocr.o(.text);
tools/agbcc/lib/libc.a:closer.o(.text);
tools/agbcc/lib/libc.a:errno.o(.text);
tools/agbcc/lib/libc.a:fstatr.o(.text);
tools/agbcc/lib/libc.a:libcfunc.o(.text);
tools/agbcc/lib/libc.a:lseekr.o(.text);
tools/agbcc/lib/libc.a:readr.o(.text);
*libgcc.a:_call_via_rX.o(.text);
*libgcc.a:_divdi3.o(.text);
*libgcc.a:_divsi3.o(.text);
*libgcc.a:_dvmd_tls.o(.text);
*libgcc.a:_fixunsdfsi.o(.text);
*libgcc.a:_modsi3.o(.text);
*libgcc.a:_muldi3.o(.text);
*libgcc.a:_udivdi3.o(.text);
*libgcc.a:_udivsi3.o(.text);
*libgcc.a:_umodsi3.o(.text);
*libgcc.a:dp-bit.o(.text);
*libgcc.a:fp-bit.o(.text);
*libgcc.a:_lshrdi3.o(.text);
*libgcc.a:_negdi2.o(.text);
*libc.a:memcpy.o(.text);
*libc.a:memset.o(.text);
*libc.a:strcmp.o(.text);
*libc.a:strcpy.o(.text);
*libc.a:impure.o(.text);
*libc.a:vsprintf.o(.text);
*libc.a:vfprintf.o(.text);
*libc.a:wsetup.o(.text);
*libc.a:dtoa.o(.text);
*libc.a:fflush.o(.text);
*libc.a:findfp.o(.text);
*libc.a:freer.o(.text);
*libc.a:mtrim.o(.text);
*libc.a:fvwrite.o(.text);
*libc.a:fwalk.o(.text);
*libc.a:locale.o(.text);
*libc.a:makebuf.o(.text);
*libc.a:mallocr.o(.text);
*libc.a:mbtowc_r.o(.text);
*libc.a:memchr.o(.text);
*libc.a:memmove.o(.text);
*libc.a:mlock.o(.text);
*libc.a:mprec.o(.text);
*libc.a:s_isinf.o(.text);
*libc.a:s_isnan.o(.text);
*libc.a:sbrkr.o(.text);
*libc.a:stdio.o(.text);
*libc.a:strlen.o(.text);
*libc.a:syscalls.o(.text);
*libc.a:writer.o(.text);
*libc.a:callocr.o(.text);
*libc.a:closer.o(.text);
*libc.a:errno.o(.text);
*libc.a:fstatr.o(.text);
*libc.a:libcfunc.o(.text);
*libc.a:lseekr.o(.text);
*libc.a:readr.o(.text);
} =0
.rodata :
@@ -382,45 +382,45 @@ SECTIONS {
src/agb_flash_le.o(.rodata);
data/librfu_rodata.o(.rodata);
src/isagbprn.o(.rodata);
tools/agbcc/lib/libgcc.a:_divdi3.o(.rodata);
tools/agbcc/lib/libgcc.a:_udivdi3.o(.rodata);
tools/agbcc/lib/libc.a:memcpy.o(.rodata);
tools/agbcc/lib/libc.a:memset.o(.rodata);
tools/agbcc/lib/libc.a:strcmp.o(.rodata);
tools/agbcc/lib/libc.a:strcpy.o(.rodata);
tools/agbcc/lib/libc.a:impure.o(.rodata);
tools/agbcc/lib/libc.a:vsprintf.o(.rodata);
tools/agbcc/lib/libc.a:vfprintf.o(.rodata);
tools/agbcc/lib/libc.a:wsetup.o(.rodata);
tools/agbcc/lib/libc.a:dtoa.o(.rodata);
tools/agbcc/lib/libc.a:fflush.o(.rodata);
tools/agbcc/lib/libc.a:findfp.o(.rodata);
tools/agbcc/lib/libc.a:freer.o(.rodata);
tools/agbcc/lib/libc.a:mtrim.o(.rodata);
tools/agbcc/lib/libc.a:fvwrite.o(.rodata);
tools/agbcc/lib/libc.a:fwalk.o(.rodata);
tools/agbcc/lib/libc.a:locale.o(.rodata);
tools/agbcc/lib/libc.a:makebuf.o(.rodata);
tools/agbcc/lib/libc.a:mallocr.o(.rodata);
tools/agbcc/lib/libc.a:mbtowc_r.o(.rodata);
tools/agbcc/lib/libc.a:memchr.o(.rodata);
tools/agbcc/lib/libc.a:memmove.o(.rodata);
tools/agbcc/lib/libc.a:mlock.o(.rodata);
tools/agbcc/lib/libc.a:mprec.o(.rodata);
tools/agbcc/lib/libc.a:s_isinf.o(.rodata);
tools/agbcc/lib/libc.a:s_isnan.o(.rodata);
tools/agbcc/lib/libc.a:sbrkr.o(.rodata);
tools/agbcc/lib/libc.a:stdio.o(.rodata);
tools/agbcc/lib/libc.a:strlen.o(.rodata);
tools/agbcc/lib/libc.a:syscalls.o(.rodata);
tools/agbcc/lib/libc.a:writer.o(.rodata);
tools/agbcc/lib/libc.a:callocr.o(.rodata);
tools/agbcc/lib/libc.a:closer.o(.rodata);
tools/agbcc/lib/libc.a:errno.o(.rodata);
tools/agbcc/lib/libc.a:fstatr.o(.rodata);
tools/agbcc/lib/libc.a:libcfunc.o(.rodata);
tools/agbcc/lib/libc.a:lseekr.o(.rodata);
tools/agbcc/lib/libc.a:readr.o(.rodata);
*libgcc.a:_divdi3.o(.rodata);
*libgcc.a:_udivdi3.o(.rodata);
*libc.a:memcpy.o(.rodata);
*libc.a:memset.o(.rodata);
*libc.a:strcmp.o(.rodata);
*libc.a:strcpy.o(.rodata);
*libc.a:impure.o(.rodata);
*libc.a:vsprintf.o(.rodata);
*libc.a:vfprintf.o(.rodata);
*libc.a:wsetup.o(.rodata);
*libc.a:dtoa.o(.rodata);
*libc.a:fflush.o(.rodata);
*libc.a:findfp.o(.rodata);
*libc.a:freer.o(.rodata);
*libc.a:mtrim.o(.rodata);
*libc.a:fvwrite.o(.rodata);
*libc.a:fwalk.o(.rodata);
*libc.a:locale.o(.rodata);
*libc.a:makebuf.o(.rodata);
*libc.a:mallocr.o(.rodata);
*libc.a:mbtowc_r.o(.rodata);
*libc.a:memchr.o(.rodata);
*libc.a:memmove.o(.rodata);
*libc.a:mlock.o(.rodata);
*libc.a:mprec.o(.rodata);
*libc.a:s_isinf.o(.rodata);
*libc.a:s_isnan.o(.rodata);
*libc.a:sbrkr.o(.rodata);
*libc.a:stdio.o(.rodata);
*libc.a:strlen.o(.rodata);
*libc.a:syscalls.o(.rodata);
*libc.a:writer.o(.rodata);
*libc.a:callocr.o(.rodata);
*libc.a:closer.o(.rodata);
*libc.a:errno.o(.rodata);
*libc.a:fstatr.o(.rodata);
*libc.a:libcfunc.o(.rodata);
*libc.a:lseekr.o(.rodata);
*libc.a:readr.o(.rodata);
. = ALIGN(4);
} =0
@@ -433,7 +433,12 @@ SECTIONS {
data/multiboot_pokemon_colosseum.o(.rodata);
} =0
. = 0x8D00000;
gap1 :
{
gap1_start = ABSOLUTE(.);
BYTE(0xFF)
. = 0x8D00000 - gap1_start;
} =0xFF
gfx_data :
ALIGN(4)
View File
+3 -3
View File
@@ -284,6 +284,6 @@ gUnknown_3002080: @ 3002080
.space 0x4 @ This isn't needed for Ruby/Sapphire or Emerald.
.include "tools/agbcc/lib/libgcc.a:dp-bit.o"
.include "tools/agbcc/lib/libgcc.a:fp-bit.o"
.include "tools/agbcc/lib/libc.a:syscalls.o"
.include "*libgcc.a:dp-bit.o"
.include "*libgcc.a:fp-bit.o"
.include "*libc.a:syscalls.o"