mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 19:54:21 +01:00
libagbsyscall as an actual lib
This commit is contained in:
parent
306ce048ad
commit
888cbd634c
15
Makefile
15
Makefile
@ -82,7 +82,7 @@ endif
|
|||||||
|
|
||||||
LDFLAGS = -Map ../../$(MAP)
|
LDFLAGS = -Map ../../$(MAP)
|
||||||
|
|
||||||
LIB := $(LIBPATH) -lgcc -lc
|
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
|
||||||
|
|
||||||
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
||||||
GFX := tools/gbagfx/gbagfx$(EXE)
|
GFX := tools/gbagfx/gbagfx$(EXE)
|
||||||
@ -111,7 +111,7 @@ MAKEFLAGS += --no-print-directory
|
|||||||
# Secondary expansion is required for dependency variables in object rules.
|
# Secondary expansion is required for dependency variables in object rules.
|
||||||
.SECONDEXPANSION:
|
.SECONDEXPANSION:
|
||||||
|
|
||||||
.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix
|
.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall
|
||||||
|
|
||||||
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
|
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ tools: $(TOOLDIRS)
|
|||||||
$(TOOLDIRS):
|
$(TOOLDIRS):
|
||||||
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX)
|
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX)
|
||||||
|
|
||||||
rom: berry_fix $(ROM)
|
rom: $(ROM)
|
||||||
ifeq ($(COMPARE),1)
|
ifeq ($(COMPARE),1)
|
||||||
@$(SHA1) rom.sha1
|
@$(SHA1) rom.sha1
|
||||||
endif
|
endif
|
||||||
@ -182,7 +182,9 @@ mostlyclean: tidy
|
|||||||
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
|
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
|
||||||
find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} +
|
find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} +
|
||||||
rm -f $(AUTO_GEN_TARGETS)
|
rm -f $(AUTO_GEN_TARGETS)
|
||||||
|
rm -f $(OBJ_DIR)/libagbsyscall.a
|
||||||
@$(MAKE) clean -C berry_fix
|
@$(MAKE) clean -C berry_fix
|
||||||
|
@$(MAKE) clean -C libagbsyscall
|
||||||
|
|
||||||
tidy:
|
tidy:
|
||||||
rm -f $(ROM) $(ELF) $(MAP)
|
rm -f $(ROM) $(ELF) $(MAP)
|
||||||
@ -310,7 +312,7 @@ endif
|
|||||||
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
||||||
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
|
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
|
||||||
|
|
||||||
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
|
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall
|
||||||
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
|
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
|
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
|
||||||
|
|
||||||
@ -323,4 +325,7 @@ modern: ; @$(MAKE) MODERN=1
|
|||||||
berry_fix/berry_fix.gba: berry_fix
|
berry_fix/berry_fix.gba: berry_fix
|
||||||
|
|
||||||
berry_fix:
|
berry_fix:
|
||||||
@$(MAKE) -C berry_fix COMPARE=$(COMPARE)
|
@$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN)
|
||||||
|
|
||||||
|
libagbsyscall:
|
||||||
|
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN)
|
||||||
|
@ -1,7 +1,29 @@
|
|||||||
include $(DEVKITARM)/base_tools
|
TOOLCHAIN := $(DEVKITARM)
|
||||||
|
COMPARE ?= 0
|
||||||
|
|
||||||
|
ifeq ($(CC),)
|
||||||
|
HOSTCC := gcc
|
||||||
|
else
|
||||||
|
HOSTCC := $(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CXX),)
|
||||||
|
HOSTCXX := g++
|
||||||
|
else
|
||||||
|
HOSTCXX := $(CXX)
|
||||||
|
endif
|
||||||
|
|
||||||
|
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 CPP := $(PREFIX)cpp
|
||||||
export LD := $(PREFIX)ld
|
export LD := $(PREFIX)ld
|
||||||
COMPARE ?= 0
|
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
EXE := .exe
|
EXE := .exe
|
||||||
@ -144,7 +166,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
payload:
|
payload:
|
||||||
@$(MAKE) -C payload COMPARE=$(COMPARE)
|
@$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN)
|
||||||
|
|
||||||
payload/payload.gba: payload
|
payload/payload.gba: payload
|
||||||
|
|
||||||
|
@ -1,7 +1,29 @@
|
|||||||
include $(DEVKITARM)/base_tools
|
TOOLCHAIN := $(DEVKITARM)
|
||||||
|
COMPARE ?= 0
|
||||||
|
|
||||||
|
ifeq ($(CC),)
|
||||||
|
HOSTCC := gcc
|
||||||
|
else
|
||||||
|
HOSTCC := $(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CXX),)
|
||||||
|
HOSTCXX := g++
|
||||||
|
else
|
||||||
|
HOSTCXX := $(CXX)
|
||||||
|
endif
|
||||||
|
|
||||||
|
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 CPP := $(PREFIX)cpp
|
||||||
export LD := $(PREFIX)ld
|
export LD := $(PREFIX)ld
|
||||||
COMPARE ?= 0
|
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
EXE := .exe
|
EXE := .exe
|
||||||
|
@ -361,6 +361,21 @@ SECTIONS {
|
|||||||
src/librfu_rfu.o(.text);
|
src/librfu_rfu.o(.text);
|
||||||
asm/librfu.o(.text);
|
asm/librfu.o(.text);
|
||||||
src/libisagbprn.o(.text);
|
src/libisagbprn.o(.text);
|
||||||
|
*libagbsyscall.a:ArcTan2.o(.text);
|
||||||
|
*libagbsyscall.a:BgAffineSet.o(.text);
|
||||||
|
*libagbsyscall.a:CpuFastSet.o(.text);
|
||||||
|
*libagbsyscall.a:CpuSet.o(.text);
|
||||||
|
*libagbsyscall.a:Div.o(.text);
|
||||||
|
*libagbsyscall.a:LZ77UnCompVram.o(.text);
|
||||||
|
*libagbsyscall.a:LZ77UnCompWram.o(.text);
|
||||||
|
*libagbsyscall.a:MultiBoot.o(.text);
|
||||||
|
*libagbsyscall.a:ObjAffineSet.o(.text);
|
||||||
|
*libagbsyscall.a:RLUnCompVram.o(.text);
|
||||||
|
*libagbsyscall.a:RLUnCompWram.o(.text);
|
||||||
|
*libagbsyscall.a:RegisterRamReset.o(.text);
|
||||||
|
*libagbsyscall.a:SoftReset.o(.text);
|
||||||
|
*libagbsyscall.a:Sqrt.o(.text);
|
||||||
|
*libagbsyscall.a:VBlankIntrWait.o(.text);
|
||||||
src/libagbsyscall.o(.text);
|
src/libagbsyscall.o(.text);
|
||||||
*libgcc.a:_call_via_rX.o(.text);
|
*libgcc.a:_call_via_rX.o(.text);
|
||||||
*libgcc.a:_divdi3.o(.text);
|
*libgcc.a:_divdi3.o(.text);
|
||||||
|
98
libagbsyscall/Makefile
Normal file
98
libagbsyscall/Makefile
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
TOOLCHAIN := $(DEVKITARM)
|
||||||
|
COMPARE ?= 0
|
||||||
|
|
||||||
|
ifeq ($(CC),)
|
||||||
|
HOSTCC := gcc
|
||||||
|
else
|
||||||
|
HOSTCC := $(CC)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CXX),)
|
||||||
|
HOSTCXX := g++
|
||||||
|
else
|
||||||
|
HOSTCXX := $(CXX)
|
||||||
|
endif
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
ifeq ($(OS),Windows_NT)
|
||||||
|
EXE := .exe
|
||||||
|
else
|
||||||
|
EXE :=
|
||||||
|
endif
|
||||||
|
|
||||||
|
ASFLAGS := -mcpu=arm7tdmi
|
||||||
|
ARFLAGS := rc
|
||||||
|
|
||||||
|
SYSCALLS := IntrWait \
|
||||||
|
RegisterRamReset \
|
||||||
|
Sqrt \
|
||||||
|
MusicPlayerOpen \
|
||||||
|
SoundBiasReset \
|
||||||
|
SoundDriverVSyncOn \
|
||||||
|
Mod \
|
||||||
|
VBlankIntrWait \
|
||||||
|
MusicPlayerStart \
|
||||||
|
SoundDriverVSyncOff \
|
||||||
|
HuffUnComp \
|
||||||
|
SoftResetExram \
|
||||||
|
MusicPlayerFadeOut \
|
||||||
|
LZ77UnCompWram \
|
||||||
|
SoundDriverMain \
|
||||||
|
SoundBiasChange \
|
||||||
|
LZ77UnCompVram \
|
||||||
|
ArcTan2 \
|
||||||
|
MusicPlayerStop \
|
||||||
|
DivArm \
|
||||||
|
ModArm \
|
||||||
|
SoundDriverVSync \
|
||||||
|
SoundDriverInit \
|
||||||
|
BgAffineSet \
|
||||||
|
Diff8bitUnFilterWram \
|
||||||
|
MultiBoot \
|
||||||
|
MidiKey2Freq \
|
||||||
|
Div \
|
||||||
|
Diff8bitUnFilterVram \
|
||||||
|
ArcTan \
|
||||||
|
ObjAffineSet \
|
||||||
|
SoftResetRom \
|
||||||
|
SoundDriverMode \
|
||||||
|
RLUnCompWram \
|
||||||
|
BitUnPack \
|
||||||
|
SoundChannelClear \
|
||||||
|
CpuFastSet \
|
||||||
|
CpuSet \
|
||||||
|
Diff16bitUnFilter \
|
||||||
|
SoundBiasSet \
|
||||||
|
MusicPlayerContinue \
|
||||||
|
SoftReset \
|
||||||
|
RLUnCompVram
|
||||||
|
|
||||||
|
ASM_SRCS := libagbsyscall.s
|
||||||
|
ASM_OBJS := $(foreach syscall, $(SYSCALLS), $(syscall).o)
|
||||||
|
|
||||||
|
LIB := libagbsyscall.a
|
||||||
|
|
||||||
|
.PHONY: all clean
|
||||||
|
|
||||||
|
all: $(LIB)
|
||||||
|
@:
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(LIB) $(ASM_OBJS)
|
||||||
|
|
||||||
|
$(LIB): $(ASM_OBJS)
|
||||||
|
$(AR) $(ARFLAGS) $@ $^
|
||||||
|
|
||||||
|
$(ASM_OBJS): libagbsyscall.s
|
||||||
|
$(AS) $(ASFLAGS) --defsym L_$(*F)=1 -o $@ $<
|
432
libagbsyscall/libagbsyscall.s
Normal file
432
libagbsyscall/libagbsyscall.s
Normal file
@ -0,0 +1,432 @@
|
|||||||
|
.include "../constants/gba_constants.inc"
|
||||||
|
.include "../asm/macros/function.inc"
|
||||||
|
|
||||||
|
.text
|
||||||
|
|
||||||
|
.set SOFT_RESET_DIRECT_BUF, 0x03007FFA
|
||||||
|
.set RESET_EX_WRAM_FLAG, 0x1
|
||||||
|
|
||||||
|
.ifdef NO_GRANULAR_AGBSYSCALL
|
||||||
|
.set L_IntrWait, 1
|
||||||
|
.set L_RegisterRamReset, 1
|
||||||
|
.set L_Sqrt, 1
|
||||||
|
.set L_MusicPlayerOpen, 1
|
||||||
|
.set L_SoundBiasReset, 1
|
||||||
|
.set L_SoundDriverVSyncOn, 1
|
||||||
|
.set L_Mod, 1
|
||||||
|
.set L_VBlankIntrWait, 1
|
||||||
|
.set L_MusicPlayerStart, 1
|
||||||
|
.set L_SoundDriverVSyncOff, 1
|
||||||
|
.set L_HuffUnComp, 1
|
||||||
|
.set L_SoftResetExram, 1
|
||||||
|
.set L_MusicPlayerFadeOut, 1
|
||||||
|
.set L_LZ77UnCompWram, 1
|
||||||
|
.set L_SoundDriverMain, 1
|
||||||
|
.set L_SoundBiasChange, 1
|
||||||
|
.set L_LZ77UnCompVram, 1
|
||||||
|
.set L_ArcTan2, 1
|
||||||
|
.set L_MusicPlayerStop, 1
|
||||||
|
.set L_DivArm, 1
|
||||||
|
.set L_ModArm, 1
|
||||||
|
.set L_SoundDriverVSync, 1
|
||||||
|
.set L_SoundDriverInit, 1
|
||||||
|
.set L_BgAffineSet, 1
|
||||||
|
.set L_Diff8bitUnFilterWram, 1
|
||||||
|
.set L_MultiBoot, 1
|
||||||
|
.set L_MidiKey2Freq, 1
|
||||||
|
.set L_Div, 1
|
||||||
|
.set L_Diff8bitUnFilterVram, 1
|
||||||
|
.set L_ArcTan, 1
|
||||||
|
.set L_ObjAffineSet, 1
|
||||||
|
.set L_SoftResetRom, 1
|
||||||
|
.set L_SoundDriverMode, 1
|
||||||
|
.set L_RLUnCompWram, 1
|
||||||
|
.set L_BitUnPack, 1
|
||||||
|
.set L_SoundChannelClear, 1
|
||||||
|
.set L_CpuFastSet, 1
|
||||||
|
.set L_CpuSet, 1
|
||||||
|
.set L_Diff16bitUnFilter, 1
|
||||||
|
.set L_SoundBiasSet, 1
|
||||||
|
.set L_MusicPlayerContinue, 1
|
||||||
|
.set L_SoftReset, 1
|
||||||
|
.set L_RLUnCompVram, 1
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_IntrWait
|
||||||
|
thumb_func_start IntrWait
|
||||||
|
IntrWait:
|
||||||
|
mov r2, #0
|
||||||
|
swi 4
|
||||||
|
bx lr
|
||||||
|
thumb_func_end IntrWait
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_RegisterRamReset
|
||||||
|
thumb_func_start RegisterRamReset
|
||||||
|
RegisterRamReset:
|
||||||
|
swi 1
|
||||||
|
bx lr
|
||||||
|
thumb_func_end RegisterRamReset
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_Sqrt
|
||||||
|
thumb_func_start Sqrt
|
||||||
|
Sqrt:
|
||||||
|
swi 8
|
||||||
|
bx lr
|
||||||
|
thumb_func_end Sqrt
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_MusicPlayerOpen
|
||||||
|
thumb_func_start MusicPlayerOpen
|
||||||
|
MusicPlayerOpen:
|
||||||
|
swi 32
|
||||||
|
bx lr
|
||||||
|
thumb_func_end MusicPlayerOpen
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundBiasReset
|
||||||
|
thumb_func_start SoundBiasReset
|
||||||
|
SoundBiasReset:
|
||||||
|
mov r0, #0
|
||||||
|
swi 25
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundBiasReset
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundDriverVSyncOn
|
||||||
|
thumb_func_start SoundDriverVSyncOn
|
||||||
|
SoundDriverVSyncOn:
|
||||||
|
swi 41
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundDriverVSyncOn
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_Mod
|
||||||
|
thumb_func_start Mod
|
||||||
|
Mod:
|
||||||
|
swi 6
|
||||||
|
mov r0, r1
|
||||||
|
bx lr
|
||||||
|
thumb_func_end Mod
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_VBlankIntrWait
|
||||||
|
thumb_func_start VBlankIntrWait
|
||||||
|
VBlankIntrWait:
|
||||||
|
mov r2, #0
|
||||||
|
swi 5
|
||||||
|
bx lr
|
||||||
|
thumb_func_end VBlankIntrWait
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_MusicPlayerStart
|
||||||
|
thumb_func_start MusicPlayerStart
|
||||||
|
MusicPlayerStart:
|
||||||
|
swi 33
|
||||||
|
bx lr
|
||||||
|
thumb_func_end MusicPlayerStart
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundDriverVSyncOff
|
||||||
|
thumb_func_start SoundDriverVSyncOff
|
||||||
|
SoundDriverVSyncOff:
|
||||||
|
swi 40
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundDriverVSyncOff
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_HuffUnComp
|
||||||
|
thumb_func_start HuffUnComp
|
||||||
|
HuffUnComp:
|
||||||
|
swi 19
|
||||||
|
bx lr
|
||||||
|
thumb_func_end HuffUnComp
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoftResetExram
|
||||||
|
thumb_func_start SoftResetExram
|
||||||
|
SoftResetExram:
|
||||||
|
ldr r3, =REG_IME
|
||||||
|
mov r2, #0
|
||||||
|
strb r2, [r3, #0]
|
||||||
|
ldr r3, =SOFT_RESET_DIRECT_BUF
|
||||||
|
mov r2, #1
|
||||||
|
strb r2, [r3, #0]
|
||||||
|
sub r3, #SOFT_RESET_DIRECT_BUF - 0x3007f00
|
||||||
|
mov sp, r3
|
||||||
|
mov r2, #RESET_EX_WRAM_FLAG
|
||||||
|
bic r0, r2
|
||||||
|
swi 1
|
||||||
|
swi 0
|
||||||
|
.pool
|
||||||
|
thumb_func_end SoftResetExram
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_MusicPlayerFadeOut
|
||||||
|
thumb_func_start MusicPlayerFadeOut
|
||||||
|
MusicPlayerFadeOut:
|
||||||
|
swi 36
|
||||||
|
bx lr
|
||||||
|
thumb_func_end MusicPlayerFadeOut
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_LZ77UnCompWram
|
||||||
|
thumb_func_start LZ77UnCompWram
|
||||||
|
LZ77UnCompWram:
|
||||||
|
swi 17
|
||||||
|
bx lr
|
||||||
|
thumb_func_end LZ77UnCompWram
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundDriverMain
|
||||||
|
thumb_func_start SoundDriverMain
|
||||||
|
SoundDriverMain:
|
||||||
|
swi 28
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundDriverMain
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundBiasChange
|
||||||
|
thumb_func_start SoundBiasChange
|
||||||
|
SoundBiasChange:
|
||||||
|
swi 25
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundBiasChange
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_LZ77UnCompVram
|
||||||
|
thumb_func_start LZ77UnCompVram
|
||||||
|
LZ77UnCompVram:
|
||||||
|
swi 18
|
||||||
|
bx lr
|
||||||
|
thumb_func_end LZ77UnCompVram
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_ArcTan2
|
||||||
|
thumb_func_start ArcTan2
|
||||||
|
ArcTan2:
|
||||||
|
swi 10
|
||||||
|
bx lr
|
||||||
|
thumb_func_end ArcTan2
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_MusicPlayerStop
|
||||||
|
thumb_func_start MusicPlayerStop
|
||||||
|
MusicPlayerStop:
|
||||||
|
swi 34
|
||||||
|
bx lr
|
||||||
|
thumb_func_end MusicPlayerStop
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_DivArm
|
||||||
|
thumb_func_start DivArm
|
||||||
|
DivArm:
|
||||||
|
swi 7
|
||||||
|
bx lr
|
||||||
|
thumb_func_end DivArm
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_ModArm
|
||||||
|
thumb_func_start ModArm
|
||||||
|
ModArm:
|
||||||
|
swi 7
|
||||||
|
mov r0, r1
|
||||||
|
bx lr
|
||||||
|
thumb_func_end ModArm
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundDriverVSync
|
||||||
|
thumb_func_start SoundDriverVSync
|
||||||
|
SoundDriverVSync:
|
||||||
|
swi 29
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundDriverVSync
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundDriverInit
|
||||||
|
thumb_func_start SoundDriverInit
|
||||||
|
SoundDriverInit:
|
||||||
|
swi 26
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundDriverInit
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_BgAffineSet
|
||||||
|
thumb_func_start BgAffineSet
|
||||||
|
BgAffineSet:
|
||||||
|
swi 14
|
||||||
|
bx lr
|
||||||
|
thumb_func_end BgAffineSet
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_Diff8bitUnFilterWram
|
||||||
|
thumb_func_start Diff8bitUnFilterWram
|
||||||
|
Diff8bitUnFilterWram:
|
||||||
|
swi 22
|
||||||
|
bx lr
|
||||||
|
thumb_func_end Diff8bitUnFilterWram
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_MultiBoot
|
||||||
|
thumb_func_start MultiBoot
|
||||||
|
MultiBoot:
|
||||||
|
mov r1, #1
|
||||||
|
swi 37
|
||||||
|
bx lr
|
||||||
|
thumb_func_end MultiBoot
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_MidiKey2Freq
|
||||||
|
thumb_func_start MidiKey2Freq
|
||||||
|
MidiKey2Freq:
|
||||||
|
swi 31
|
||||||
|
bx lr
|
||||||
|
thumb_func_end MidiKey2Freq
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_Div
|
||||||
|
thumb_func_start Div
|
||||||
|
Div:
|
||||||
|
swi 6
|
||||||
|
bx lr
|
||||||
|
thumb_func_end Div
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_Diff8bitUnFilterVram
|
||||||
|
thumb_func_start Diff8bitUnFilterVram
|
||||||
|
Diff8bitUnFilterVram:
|
||||||
|
swi 23
|
||||||
|
bx lr
|
||||||
|
thumb_func_end Diff8bitUnFilterVram
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_ArcTan
|
||||||
|
thumb_func_start ArcTan
|
||||||
|
ArcTan:
|
||||||
|
swi 9
|
||||||
|
bx lr
|
||||||
|
thumb_func_end ArcTan
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_ObjAffineSet
|
||||||
|
thumb_func_start ObjAffineSet
|
||||||
|
ObjAffineSet:
|
||||||
|
swi 15
|
||||||
|
bx lr
|
||||||
|
thumb_func_end ObjAffineSet
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoftResetRom
|
||||||
|
thumb_func_start SoftResetRom
|
||||||
|
SoftResetRom:
|
||||||
|
ldr r3, =REG_IME
|
||||||
|
mov r2, #0
|
||||||
|
strb r2, [r3, #0]
|
||||||
|
ldr r3, =SOFT_RESET_DIRECT_BUF
|
||||||
|
mov r2, #0
|
||||||
|
strb r2, [r3, #0]
|
||||||
|
sub r3, #SOFT_RESET_DIRECT_BUF - 0x3007f00
|
||||||
|
mov sp, r3
|
||||||
|
swi 1
|
||||||
|
swi 0
|
||||||
|
.pool
|
||||||
|
thumb_func_end SoftResetRom
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundDriverMode
|
||||||
|
thumb_func_start SoundDriverMode
|
||||||
|
SoundDriverMode:
|
||||||
|
swi 27
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundDriverMode
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_RLUnCompWram
|
||||||
|
thumb_func_start RLUnCompWram
|
||||||
|
RLUnCompWram:
|
||||||
|
swi 20
|
||||||
|
bx lr
|
||||||
|
thumb_func_end RLUnCompWram
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_BitUnPack
|
||||||
|
thumb_func_start BitUnPack
|
||||||
|
BitUnPack:
|
||||||
|
swi 16
|
||||||
|
bx lr
|
||||||
|
thumb_func_end BitUnPack
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundChannelClear
|
||||||
|
thumb_func_start SoundChannelClear
|
||||||
|
SoundChannelClear:
|
||||||
|
swi 30
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundChannelClear
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_CpuFastSet
|
||||||
|
thumb_func_start CpuFastSet
|
||||||
|
CpuFastSet:
|
||||||
|
swi 12
|
||||||
|
bx lr
|
||||||
|
thumb_func_end CpuFastSet
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_CpuSet
|
||||||
|
thumb_func_start CpuSet
|
||||||
|
CpuSet:
|
||||||
|
swi 11
|
||||||
|
bx lr
|
||||||
|
thumb_func_end CpuSet
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_Diff16bitUnFilter
|
||||||
|
thumb_func_start Diff16bitUnFilter
|
||||||
|
Diff16bitUnFilter:
|
||||||
|
swi 24
|
||||||
|
bx lr
|
||||||
|
thumb_func_end Diff16bitUnFilter
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoundBiasSet
|
||||||
|
thumb_func_start SoundBiasSet
|
||||||
|
SoundBiasSet:
|
||||||
|
mov r0, #1
|
||||||
|
swi 25
|
||||||
|
bx lr
|
||||||
|
thumb_func_end SoundBiasSet
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_MusicPlayerContinue
|
||||||
|
thumb_func_start MusicPlayerContinue
|
||||||
|
MusicPlayerContinue:
|
||||||
|
swi 35
|
||||||
|
bx lr
|
||||||
|
thumb_func_end MusicPlayerContinue
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_SoftReset
|
||||||
|
thumb_func_start SoftReset
|
||||||
|
SoftReset:
|
||||||
|
ldr r3, =REG_IME
|
||||||
|
mov r2, #0
|
||||||
|
strb r2, [r3, #0]
|
||||||
|
ldr r1, =0x3007f00
|
||||||
|
mov sp, r1
|
||||||
|
swi 1
|
||||||
|
swi 0
|
||||||
|
.pool
|
||||||
|
thumb_func_end SoftReset
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.ifdef L_RLUnCompVram
|
||||||
|
thumb_func_start RLUnCompVram
|
||||||
|
RLUnCompVram:
|
||||||
|
swi 21
|
||||||
|
bx lr
|
||||||
|
thumb_func_end RLUnCompVram
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.align 2, 0 @ Don't pad with nop
|
Loading…
Reference in New Issue
Block a user