Skip to content
This repository was archived by the owner on Nov 23, 2024. It is now read-only.

Commit c11453b

Browse files
committed
initial commit
0 parents  commit c11453b

27 files changed

+324929
-0
lines changed

Diff for: .gitignore

+931
Large diffs are not rendered by default.

Diff for: Makefile

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
2+
ifeq ($(OS),Windows_NT)
3+
EXE := .exe
4+
else
5+
EXE :=
6+
endif
7+
8+
UNAME := $(shell uname)
9+
10+
CC1 := tools/agbcc/bin/old_agbcc$(EXE)
11+
CC1_NEW := tools/agbcc/bin/agbcc$(EXE)
12+
13+
PREFIX := $(LOCAL_PREFIX)arm-none-eabi-
14+
15+
CPP := $(PREFIX)cpp$(EXE)
16+
AS := $(PREFIX)as$(EXE)
17+
LD := $(PREFIX)ld$(EXE)
18+
OBJCOPY := $(PREFIX)objcopy$(EXE)
19+
20+
SHASUM := sha1sum
21+
22+
CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
23+
CPPFLAGS := -I tools/agbcc/include -iquote include -iquote . -nostdinc -undef
24+
ASFLAGS := -mcpu=arm7tdmi -mthumb-interwork -I asm/include
25+
26+
ROM := fe6.gba
27+
ELF := $(ROM:.gba=.elf)
28+
MAP := $(ROM:.gba=.map)
29+
LDSCRIPT := ldscr.txt
30+
SYM_FILES :=
31+
CFILES := $(wildcard src/*.c)
32+
ASM_S_FILES := $(wildcard asm/*.s)
33+
LIBC_S_FILES := $(wildcard asm/libc/*.s)
34+
DATA_S_FILES := $(wildcard data/*.s)
35+
SFILES := $(ASM_S_FILES) $(LIBC_S_FILES) $(DATA_S_FILES)
36+
C_OBJECTS := $(CFILES:.c=.o)
37+
ASM_OBJECTS := $(SFILES:.s=.o)
38+
ALL_OBJECTS := $(C_OBJECTS) $(ASM_OBJECTS)
39+
DEPS_DIR := .dep
40+
41+
src/agb_sram.o: CC1FLAGS += -O1
42+
43+
compare: $(ROM)
44+
$(SHASUM) -c fe6.sha1
45+
46+
clean:
47+
$(RM) $(ROM) $(ELF) $(MAP) $(ALL_OBJECTS) src/*.s graphics/*.h
48+
$(RM) -rf $(DEPS_DIR)
49+
50+
MAKEDEP = mkdir -p $(DEPS_DIR)/$(dir $*) && $(CPP) $(CPPFLAGS) $< -MM -MG -MT $*.o > $(DEPS_DIR)/$*.d
51+
52+
-include $(addprefix $(DEPS_DIR)/,$(CFILES:.c=.d))
53+
54+
$(DEPS_DIR)/%.d: %.c
55+
@$(MAKEDEP)
56+
57+
$(ELF): $(ALL_OBJECTS) $(LDSCRIPT) $(SYM_FILES)
58+
$(LD) -T $(LDSCRIPT) -Map $(MAP) $(ALL_OBJECTS) tools/agbcc/lib/libgcc.a tools/agbcc/lib/libc.a -o $@
59+
60+
%.gba: %.elf
61+
$(OBJCOPY) --strip-debug -O binary --pad-to 0x8800000 --gap-fill=0xff $< $@
62+
63+
$(C_OBJECTS): %.o: %.c $(DEPS_DIR)/%.d
64+
@$(MAKEDEP)
65+
$(CPP) $(CPPFLAGS) $< | $(CC1) $(CC1FLAGS) -o $*.s
66+
echo '.ALIGN 2, 0' >> $*.s
67+
$(AS) $(ASFLAGS) $*.s -o $@
68+
69+
.SECONDEXPANSION:
70+
$(ASM_OBJECTS): %.o: %.s
71+
$(AS) $(ASFLAGS) -g $< -o $@
72+
73+
# Don't delete intermediate files
74+
.SECONDARY:

Diff for: asm/agb_syscall.s

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
.include "macro.inc"
2+
.include "gba.inc"
3+
4+
.syntax unified
5+
6+
THUMB_FUNC_START ArcTan2
7+
ArcTan2: @ 0x080D166C
8+
swi #0xa
9+
bx lr
10+
11+
THUMB_FUNC_START BgAffineSet
12+
BgAffineSet: @ 0x080D1670
13+
swi #0xe
14+
bx lr
15+
16+
THUMB_FUNC_START CpuFastSet
17+
CpuFastSet: @ 0x080D1674
18+
swi #0xc
19+
bx lr
20+
21+
THUMB_FUNC_START CpuSet
22+
CpuSet: @ 0x080D1678
23+
swi #0xb
24+
bx lr
25+
26+
THUMB_FUNC_START Div
27+
Div: @ 0x080D167C
28+
swi #6
29+
bx lr
30+
31+
THUMB_FUNC_START DivRem
32+
DivRem: @ 0x080D1684
33+
swi #6
34+
adds r0, r1, #0
35+
bx lr
36+
37+
THUMB_FUNC_START HuffUnComp
38+
HuffUnComp: @ 0x080D168C
39+
swi #0x13
40+
bx lr
41+
42+
THUMB_FUNC_START LZ77UnCompVram
43+
LZ77UnCompVram: @ 0x080D1690
44+
swi #0x12
45+
bx lr
46+
47+
THUMB_FUNC_START LZ77UnCompWram
48+
LZ77UnCompWram: @ 0x080D1694
49+
swi #0x11
50+
bx lr
51+
52+
THUMB_FUNC_START ObjAffineSet
53+
ObjAffineSet: @ 0x080D16A0
54+
swi #0xf
55+
bx lr
56+
57+
THUMB_FUNC_START RLUnCompVram
58+
RLUnCompVram: @ 0x080D16A4
59+
swi #0x15
60+
bx lr
61+
62+
THUMB_FUNC_START RLUnCompWram
63+
RLUnCompWram: @ 0x080D16A8
64+
swi #0x14
65+
bx lr
66+
67+
THUMB_FUNC_START SoftReset
68+
SoftReset: @ 0x080D16B0
69+
ldr r3, =REG_IME
70+
movs r2, #0
71+
strb r2, [r3]
72+
ldr r1, =0x03007F00
73+
mov sp, r1
74+
swi #1
75+
swi #0
76+
77+
.pool
78+
79+
THUMB_FUNC_START SoundBiasReset
80+
SoundBiasReset: @ 0x080D16C8
81+
movs r0, #0
82+
swi #0x19
83+
bx lr
84+
85+
THUMB_FUNC_START SoundBiasSet
86+
SoundBiasSet: @ 0x080D16D0
87+
movs r0, #1
88+
swi #0x19
89+
bx lr
90+
91+
THUMB_FUNC_START Sqrt
92+
Sqrt: @ 0x080D16D8
93+
swi #8
94+
bx lr
95+
96+
THUMB_FUNC_START VBlankIntrWait
97+
VBlankIntrWait: @ 0x080D16DC
98+
movs r2, #0
99+
swi #5
100+
bx lr
101+
102+
.align 2, 0

0 commit comments

Comments
 (0)