From 9d51c31873ef37c793b93bf608f94e8b9cfb1ae1 Mon Sep 17 00:00:00 2001 From: Tituya Date: Thu, 25 Jun 2020 23:53:57 +0200 Subject: [PATCH] First commit --- AST3.g3a | Bin 0 -> 50372 bytes Makefile | 194 +++++++++ assets-cg/icon-cg-sel.png | Bin 0 -> 8388 bytes assets-cg/icon-cg-uns.png | Bin 0 -> 4629 bytes assets-cg/img/player.png | Bin 0 -> 97 bytes assets-cg/img/solid_0.png | Bin 0 -> 102 bytes assets-cg/img/solid_1.png | Bin 0 -> 102 bytes build-cg/AST3.bin | Bin 0 -> 21696 bytes build-cg/AST3.elf | Bin 0 -> 33776 bytes build-cg/assets/img/player.png.o | Bin 0 -> 712 bytes build-cg/assets/img/solid_0.png.o | Bin 0 -> 936 bytes build-cg/assets/img/solid_1.png.o | Bin 0 -> 936 bytes build-cg/map | 667 ++++++++++++++++++++++++++++++ build-cg/src/drawlevel.c.d | 3 + build-cg/src/drawlevel.c.o | Bin 0 -> 1044 bytes build-cg/src/main.c.d | 5 + build-cg/src/main.c.o | Bin 0 -> 1200 bytes build-cg/src/setlevel.c.d | 3 + build-cg/src/setlevel.c.o | Bin 0 -> 1268 bytes include/drawlevel.h | 2 + include/setlevel.h | 1 + project.cfg | 85 ++++ src/drawlevel.c | 39 ++ src/main.c | 50 +++ src/setlevel.c | 19 + 25 files changed, 1068 insertions(+) create mode 100644 AST3.g3a create mode 100644 Makefile create mode 100644 assets-cg/icon-cg-sel.png create mode 100644 assets-cg/icon-cg-uns.png create mode 100644 assets-cg/img/player.png create mode 100644 assets-cg/img/solid_0.png create mode 100644 assets-cg/img/solid_1.png create mode 100755 build-cg/AST3.bin create mode 100755 build-cg/AST3.elf create mode 100644 build-cg/assets/img/player.png.o create mode 100644 build-cg/assets/img/solid_0.png.o create mode 100644 build-cg/assets/img/solid_1.png.o create mode 100644 build-cg/map create mode 100644 build-cg/src/drawlevel.c.d create mode 100644 build-cg/src/drawlevel.c.o create mode 100644 build-cg/src/main.c.d create mode 100644 build-cg/src/main.c.o create mode 100644 build-cg/src/setlevel.c.d create mode 100644 build-cg/src/setlevel.c.o create mode 100644 include/drawlevel.h create mode 100644 include/setlevel.h create mode 100644 project.cfg create mode 100644 src/drawlevel.c create mode 100644 src/main.c create mode 100644 src/setlevel.c diff --git a/AST3.g3a b/AST3.g3a new file mode 100644 index 0000000000000000000000000000000000000000..3edea9dde103e81f30e7e1cb7082be5f09bb5e84 GIT binary patch literal 50372 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 DtC*eV literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1106c98 --- /dev/null +++ b/Makefile @@ -0,0 +1,194 @@ +#! /usr/bin/make -f +# Default Makefile for fxSDK add-ins. This file was probably copied there by +# the [fxsdk] program. +#--- + +# +# Configuration +# + +include project.cfg + +# Compiler flags +CFLAGSFX := $(CFLAGS) $(CFLAGS_FX) $(INCLUDE) +CFLAGSCG := $(CFLAGS) $(CFLAGS_CG) $(INCLUDE) + +# Linker flags +LDFLAGSFX := $(LDFLAGS) $(LDFLAGS_FX) +LDFLAGSCG := $(LDFLAGS) $(LDFLAGS_CG) + +# Dependency list generation flags +depflags = -MMD -MT $@ -MF $(@:.o=.d) -MP +# ELF to binary flags +BINFLAGS := -R .bss -R .gint_bss + +# G1A and G3A generation flags +NAME_G1A ?= $(NAME) +NAME_G3A ?= $(NAME) +G1AF := -i "$(ICON_FX)" -n "$(NAME_G1A)" --internal="$(INTERNAL)" +G3AF := -n basic:"$(NAME_G3A)" -i uns:"$(ICON_CG_UNS)" -i sel:"$(ICON_CG_SEL)" + +ifeq "$(TOOLCHAIN_FX)" "" +TOOLCHAIN_FX := sh3eb-elf +endif + +ifeq "$(TOOLCHAIN_CG)" "" +TOOLCHAIN_CG := sh4eb-elf +endif + +# fxconv flags +FXCONVFX := --fx --toolchain=$(TOOLCHAIN_FX) +FXCONVCG := --cg --toolchain=$(TOOLCHAIN_CG) + +# +# File listings +# + +NULL := +TARGET := $(subst $(NULL) $(NULL),-,$(NAME)) + +ifeq "$(TARGET_FX)" "" +TARGET_FX := $(TARGET).g1a +endif + +ifeq "$(TARGET_CG)" "" +TARGET_CG := $(TARGET).g3a +endif + +ELF_FX := build-fx/$(shell basename -s .g1a $(TARGET_FX)).elf +BIN_FX := $(ELF_FX:.elf=.bin) + +ELF_CG := build-cg/$(shell basename -s .g3a $(TARGET_CG)).elf +BIN_CG := $(ELF_CG:.elf=.bin) + +# Source files +src := $(wildcard src/*.[csS] \ + src/*/*.[csS] \ + src/*/*/*.[csS] \ + src/*/*/*/*.[csS]) +assets-fx := $(wildcard assets-fx/*/*) +assets-cg := $(wildcard assets-cg/*/*) + +# Object files +obj-fx := $(src:%=build-fx/%.o) \ + $(assets-fx:assets-fx/%=build-fx/assets/%.o) +obj-cg := $(src:%=build-cg/%.o) \ + $(assets-cg:assets-cg/%=build-cg/assets/%.o) + +# Additional dependencies +deps-fx := $(ICON_FX) +deps-cg := $(ICON_CG_UNS) $(ICON_CG_SEL) + +# All targets +all := +ifneq "$(wildcard build-fx)" "" +all += all-fx +endif +ifneq "$(wildcard build-cg)" "" +all += all-cg +endif + +# +# Build rules +# + +all: $(all) + +all-fx: $(TARGET_FX) +all-cg: $(TARGET_CG) + +$(TARGET_FX): $(obj-fx) $(deps-fx) + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -o $(ELF_FX) $(obj-fx) $(CFLAGSFX) $(LDFLAGSFX) + $(TOOLCHAIN_FX)-objcopy -O binary $(BINFLAGS) $(ELF_FX) $(BIN_FX) + fxg1a $(BIN_FX) -o $@ $(G1AF) + +$(TARGET_CG): $(obj-cg) $(deps-cg) + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -o $(ELF_CG) $(obj-cg) $(CFLAGSCG) $(LDFLAGSCG) + $(TOOLCHAIN_CG)-objcopy -O binary $(BINFLAGS) $(ELF_CG) $(BIN_CG) + mkg3a $(G3AF) $(BIN_CG) $@ + +# C sources +build-fx/%.c.o: %.c + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -c $< -o $@ $(CFLAGSFX) $(depflags) +build-cg/%.c.o: %.c + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -c $< -o $@ $(CFLAGSCG) $(depflags) + +# Assembler sources +build-fx/%.s.o: %.s + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -c $< -o $@ +build-cg/%.s.o: %.s + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -c $< -o $@ + +# Preprocessed assembler sources +build-fx/%.S.o: %.S + @ mkdir -p $(dir $@) + $(TOOLCHAIN_FX)-gcc -c $< -o $@ $(INCLUDE) +build-cg/%.S.o: %.S + @ mkdir -p $(dir $@) + $(TOOLCHAIN_CG)-gcc -c $< -o $@ $(INCLUDE) + +# Images +build-fx/assets/img/%.o: assets-fx/img/% + @ mkdir -p $(dir $@) + fxconv --bopti-image $< -o $@ $(FXCONVFX) name:img_$(basename $*) $(IMG.$*) +build-cg/assets/img/%.o: assets-cg/img/% + @ mkdir -p $(dir $@) + fxconv --bopti-image $< -o $@ $(FXCONVCG) name:img_$(basename $*) $(IMG.$*) + +# Fonts +build-fx/assets/fonts/%.o: assets-fx/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ $(FXCONVFX) name:font_$(basename $*) $(FONT.$*) +build-cg/assets/fonts/%.o: assets-cg/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ $(FXCONVCG) name:font_$(basename $*) $(FONT.$*) + +# Binaries +build-fx/assets/bin/%.o: assets-fx/bin/% + @ mkdir -p $(dir $@) + fxconv -b $< -o $@ $(FXCONVFX) name:bin_$(basename $*) $(BIN.$*) +build-cg/assets/bin/%.o: assets-cg/bin/% + @ mkdir -p $(dir $@) + fxconv -b $< -o $@ $(FXCONVCG) name:bin_$(basename $*) $(BIN.$*) + +# +# Cleaning and utilities +# + +# Dependency information +-include $(shell find build* -name *.d 2> /dev/null) +build-fx/%.d: ; +build-cg/%.d: ; +.PRECIOUS: build-fx build-cg build-fx/%.d build-cg/%.d %/ + +clean-fx: + @ rm -rf build-fx/ +clean-cg: + @ rm -rf build-cg/ + +distclean-fx: clean-fx + @ rm -f $(TARGET_FX) +distclean-cg: clean-cg + @ rm -f $(TARGET_CG) + +clean: clean-fx clean-cg + +distclean: distclean-fx distclean-cg + +install-fx: $(TARGET_FX) + p7 send -f $< +install-cg: $(TARGET_CG) + @ while [[ ! -h /dev/Prizm1 ]]; do sleep 0.25; done + @ while ! mount /dev/Prizm1; do sleep 0.25; done + @ rm -f /mnt/prizm/$< + @ cp $< /mnt/prizm + @ umount /dev/Prizm1 + @- eject /dev/Prizm1 + +.PHONY: all all-fx all-cg clean distclean install-fx install-cg diff --git a/assets-cg/icon-cg-sel.png b/assets-cg/icon-cg-sel.png new file mode 100644 index 0000000000000000000000000000000000000000..7137b504cfd44f62f3105ce7a203b9100a557d0f GIT binary patch literal 8388 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 ag#Q8hHNm}t`+-sb0000 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 LNkvXXu0mjfMjhGA literal 0 HcmV?d00001 diff --git a/assets-cg/img/player.png b/assets-cg/img/player.png new file mode 100644 index 0000000000000000000000000000000000000000..91da6d77e36aed3bd3017432e0136b40974f6918 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kmSQK*5Dp-y;YjHK@+CZ7978lF rCa28!^xvMDv!PSu=wd0iNo)*%gTe~DWM4fuu&Ke literal 0 HcmV?d00001 diff --git a/assets-cg/img/solid_0.png b/assets-cg/img/solid_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6a508f3850e42459c9313e8c94ebd4d3ff9fe9ac GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfFVdQ&MBb@08g$N^#A|> literal 0 HcmV?d00001 diff --git a/assets-cg/img/solid_1.png b/assets-cg/img/solid_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5789d78b3bdaef45467407c6b05b1dfafa6c6179 GIT binary patch literal 102 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⁡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 ZpI`>Kzvu;9qTmhq)hGBuP5=4l{{YMLKHdNT literal 0 HcmV?d00001 diff --git a/build-cg/AST3.elf b/build-cg/AST3.elf new file mode 100755 index 0000000000000000000000000000000000000000..93ecb0ba83d2173ed175699458aebe0c7847ee91 GIT binary patch literal 33776 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 LDbdiIK=;1@AofGp literal 0 HcmV?d00001 diff --git a/build-cg/assets/img/player.png.o b/build-cg/assets/img/player.png.o new file mode 100644 index 0000000000000000000000000000000000000000..bfc1527b1dedaa47dcc370e3a12373064cc71d6f GIT binary patch literal 712 zcmb<-^>JflVq|~=Mg}b)8%cl(B4q-mG#FSJSimeE1|F9EqYz&RKmras$qWf&csL6{ z_`E<$1Ed4WmqqaZe`JWy%uSCk$VseBEkb6;r{<-g@QX96QW+TZiYs$V5|e;*NfCt3 zfU%15QxZ!OvAYbXs5DRp~2CD-A;A4`X literal 0 HcmV?d00001 diff --git a/build-cg/assets/img/solid_0.png.o b/build-cg/assets/img/solid_0.png.o new file mode 100644 index 0000000000000000000000000000000000000000..107ad997fc750d3bcb90c90c4a53f5af3caaa345 GIT binary patch literal 936 zcmb<-^>JflVq|~=Mg}b)8%coa0a(riOlmN&GO&PI0t^C99HVd~hX6Po;2@YGX$YQ< z1R#7q1_mY$kQOLk9>M?rks&@aH$A>MKPNLK-T;LYpPH9~Do~tRmCC@NS6rD}l9&Xf zONtmdpORRTh{JVQg{6U_AonssWq~Ok;#Mdh<`-l&AmuhdA^?biUIyz0mJflVq|~=Mg}b)8%coa0a(riOlmN&GO&PI0t^B_7)Iep4gqjFz(FuW(hxiy z2|)OK3=B*hAT3b7Jc9rKBSU;d2@KP9mw5r^xr3QGe;LGERO$^uh7#H~<1%rD4lK+0`^L;w&2y$se1${#@Q mF>pe~fD{NY^#BP&FcU(+%o7B1L3*KpX)lnW4C4W5usQ&Z^&O7@ literal 0 HcmV?d00001 diff --git a/build-cg/map b/build-cg/map new file mode 100644 index 0000000..fc3645b --- /dev/null +++ b/build-cg/map @@ -0,0 +1,667 @@ +Archive member included to satisfy reference by file (symbol) + +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + build-cg/src/setlevel.c.o (_memcpy) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + build-cg/src/drawlevel.c.o (_strlen) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + build-cg/src/main.c.o (_dupdate) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + build-cg/src/drawlevel.c.o (_dclear) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + build-cg/src/drawlevel.c.o (_dimage) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) (_gint_vram) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) (_bopti_render_clip) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + build-cg/src/setlevel.c.o (_dprint) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) (_r61524_display) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) (_dma_transfer) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) (_inth_dma_te) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) (_dma_memset) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) (_intc_priority) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + (_start) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) (_gint_panic) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) (_hw_detect) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) (_kinit) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tlbh.S.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) (_gint_tlbh) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + build-cg/src/main.c.o (_pollevent) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) (_getkey_repeat) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) (_timer_setup) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) (_inth_tmu) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) (_vsnprintf) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) (_clock_freq) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) (_bopti_r5g6b5) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) (_dtext_opt) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) (_dfont) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpu.s.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) (_cpu_setVBR) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) (_gint_exch) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(osmenu.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) (_gint_osmenu) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(syscalls.S.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(osmenu.c.o) (___Timer_Install) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) (_gint_inth_7305) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(font8x9.png.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (_gint_font8x9) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (_drect) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) (_topti_glyph_fg_bg) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) (___movmemSI24) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) (___udivdi3) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) (___umoddi3) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) (___udiv_qrnnd_16) +/home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) (___clz_tab) + +Discarded input sections + + .comment 0x0000000000000000 0x12 build-cg/src/drawlevel.c.o + .comment 0x0000000000000000 0x12 build-cg/src/main.c.o + .comment 0x0000000000000000 0x12 build-cg/src/setlevel.c.o + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(osmenu.c.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + .debug_info 0x0000000000000000 0x737 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_abbrev 0x0000000000000000 0x218 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_loc 0x0000000000000000 0x6d5 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_aranges + 0x0000000000000000 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_ranges 0x0000000000000000 0xf0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_line 0x0000000000000000 0x28f /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_str 0x0000000000000000 0x5aa /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .eh_frame 0x0000000000000000 0x80 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_info 0x0000000000000000 0x746 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_abbrev 0x0000000000000000 0x229 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_loc 0x0000000000000000 0x6ef /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_aranges + 0x0000000000000000 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_ranges 0x0000000000000000 0x108 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_line 0x0000000000000000 0x2e5 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_str 0x0000000000000000 0x5aa /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .eh_frame 0x0000000000000000 0x90 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_info 0x0000000000000000 0x371 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_abbrev 0x0000000000000000 0xcf /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_aranges + 0x0000000000000000 0x18 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_line 0x0000000000000000 0xe2 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .debug_str 0x0000000000000000 0x527 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + .comment 0x0000000000000000 0x12 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + +Memory Configuration + +Name Origin Length Attributes +rom 0x0000000000300000 0x0000000000200000 xr +ram 0x0000000008101400 0x000000000007ec00 rw +vbr50 0x000000008c160000 0x0000000000001400 xrw +vbr20 0x0000000088160000 0x0000000000001400 xrw +ilram 0x00000000e5200000 0x0000000000001000 xrw +xram 0x00000000e5007000 0x0000000000002000 xrw +yram 0x00000000e5017000 0x0000000000002000 xrw +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD build-cg/src/drawlevel.c.o +LOAD build-cg/src/main.c.o +LOAD build-cg/src/setlevel.c.o +LOAD build-cg/assets/img/solid_1.png.o +LOAD build-cg/assets/img/player.png.o +LOAD build-cg/assets/img/solid_0.png.o +LOAD /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a +LOAD /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a +LOAD /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a + 0x0000000000300000 _brom = 0x300000 + 0x0000000000005150 _srom = (((SIZEOF (.text) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + +.text 0x0000000000300000 0x3fa0 + *(.text.entry) + .text.entry 0x0000000000300000 0x12c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + 0x0000000000300000 _start + 0x000000000030012c _bctors = . + *(.ctors .ctors.*) + 0x000000000030012c _ectors = . + 0x000000000030012c _bdtors = . + *(.dtors .dtors.*) + 0x000000000030012c _edtors = . + 0x000000000030012c _gint_exch_start = . + *(.gint.exch) + *fill* 0x000000000030012c 0x4 + .gint.exch 0x0000000000300130 0x64 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + 0x0000000000300130 _gint_exch + 0x0000000000000068 _gint_exch_size = ABSOLUTE ((. - _gint_exch_start)) + 0x0000000000300194 _gint_tlbh_start = . + *(.gint.tlbh) + *fill* 0x0000000000300194 0xc + .gint.tlbh 0x00000000003001a0 0x68 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tlbh.S.o) + 0x00000000003001a0 _gint_tlbh + 0x0000000000000074 _gint_tlbh_size = ABSOLUTE ((. - _gint_tlbh_start)) + *(.text .text.*) + .text 0x0000000000300208 0x90 build-cg/src/drawlevel.c.o + 0x0000000000300208 _draw_player + 0x0000000000300218 _draw_level + .text 0x0000000000300298 0x0 build-cg/src/main.c.o + .text.startup 0x0000000000300298 0xf4 build-cg/src/main.c.o + 0x0000000000300298 _main + .text 0x000000000030038c 0x4c build-cg/src/setlevel.c.o + 0x000000000030038c _set_level + .text 0x00000000003003d8 0xdc /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + 0x00000000003003d8 _memcpy + 0x0000000000300492 __memmove + 0x0000000000300496 __memcmp + 0x000000000030049a _memset + .text 0x00000000003004b4 0x7c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + 0x00000000003004b4 _strlen + 0x00000000003004c4 _strncpy + 0x00000000003004dc _strcat + 0x0000000000300520 _strcmp + .text 0x0000000000300530 0x3c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + 0x0000000000300530 _dupdate + 0x0000000000300554 _dupdate_noint + .text 0x000000000030056c 0x1c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + 0x000000000030056c _dclear + .text 0x0000000000300588 0x40 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + 0x0000000000300588 _dimage + 0x00000000003005b0 _dsubimage + .text 0x00000000003005c8 0x6c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + 0x00000000003005c8 _dsetvram + 0x00000000003005f4 _dgetvram + 0x0000000000300614 _dvram_switch + .text 0x0000000000300634 0x1e4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + 0x0000000000300634 _bopti_render + 0x0000000000300724 _bopti_render_clip + 0x00000000003007ec _bopti_render_noclip + .text 0x0000000000300818 0xbc /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + 0x0000000000300818 _dprint_opt + 0x0000000000300884 _dprint + .text 0x00000000003008d4 0x2d4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + 0x0000000000300924 _r61524_win_get + 0x00000000003009dc _r61524_win_set + 0x0000000000300a9c _r61524_display + .text 0x0000000000300ba8 0x420 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + 0x0000000000300e78 _dma_transfer + 0x0000000000300eb8 _dma_transfer_wait + 0x0000000000300f5c _dma_transfer_noint + .text 0x0000000000300fc8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .text 0x0000000000300fc8 0x4c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + 0x0000000000300fc8 _dma_memset + .text 0x0000000000301014 0xf4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + 0x0000000000301090 _intc_priority + .text 0x0000000000301108 0x30 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .text 0x0000000000301138 0x29c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + 0x00000000003013a4 _gint_panic + 0x00000000003013b4 _gint_panic_set + 0x00000000003013c8 _gint_exc_catch + .text 0x00000000003013d4 0x40 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + 0x00000000003013d4 _hw_detect + .text 0x0000000000301414 0x2b8 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) + 0x0000000000301590 _kinit + 0x0000000000301624 _gint_inthandler + 0x0000000000301654 _gint_switch + 0x00000000003016a4 _kquit + .text 0x00000000003016cc 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tlbh.S.o) + .text 0x00000000003016cc 0x424 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + 0x00000000003018a4 _pollevent + 0x00000000003019e0 _waitevent + 0x0000000000301a2c _clearevents + 0x0000000000301a4c _keydown + 0x0000000000301a78 _keydown_all + 0x0000000000301ab4 _keydown_any + .text 0x0000000000301af0 0x1f8 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + 0x0000000000301af0 _getkey_opt + 0x0000000000301ca0 _getkey + 0x0000000000301cac _getkey_repeat + .text 0x0000000000301ce8 0x69c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000301fb4 _timer_delay + 0x0000000000302060 _timer_setup + 0x0000000000302260 _timer_start + 0x0000000000302298 _timer_reload + 0x00000000003022d0 _timer_pause + 0x000000000030230c _timer_wait + 0x0000000000302374 _timer_timeout + .text 0x0000000000302384 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .text 0x0000000000302384 0xcec /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + 0x0000000000302d80 _kprint_opt + 0x0000000000302ec8 _kprint + 0x0000000000302fa8 _kvsprint + 0x0000000000302ff0 _sprintf + 0x0000000000303018 _vsprintf + 0x0000000000303038 _snprintf + 0x0000000000303058 _vsnprintf + .text 0x0000000000303070 0xb8 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + 0x000000000030311c _clock_freq + *fill* 0x0000000000303128 0x8 + .text 0x0000000000303130 0x100 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + 0x0000000000303130 _bopti_r5g6b5 + 0x0000000000303180 _bopti_r5g6b5a + 0x00000000003031b0 _bopti_p8 + 0x00000000003031e0 _bopti_p4 + .text 0x0000000000303230 0x2b4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + 0x0000000000303230 _topti_render + 0x0000000000303420 _dtext_opt + 0x00000000003034c4 _dtext + .text 0x00000000003034e4 0x1ac /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + 0x00000000003034e4 _dfont + 0x00000000003034fc _charset_size + 0x0000000000303528 _charset_decode + 0x0000000000303596 _topti_offset + 0x00000000003035f4 _dsize + .text 0x0000000000303690 0x30 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpu.s.o) + 0x0000000000303690 _cpu_setCPUOPM + 0x00000000003036a2 _cpu_getCPUOPM + .text 0x00000000003036c0 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + .text 0x00000000003036c0 0xfc /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(osmenu.c.o) + 0x00000000003037ac _gint_osmenu + *fill* 0x00000000003037bc 0x4 + .text 0x00000000003037c0 0x190 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(syscalls.S.o) + 0x00000000003037c0 _malloc + 0x00000000003037d4 _free + 0x00000000003037e4 _calloc + 0x00000000003037f4 _realloc + 0x0000000000303804 _BFile_Remove + 0x0000000000303814 _BFile_Create + 0x0000000000303824 _BFile_Open + 0x0000000000303834 _BFile_Close + 0x0000000000303844 _BFile_Size + 0x0000000000303854 _BFile_Write + 0x0000000000303864 _BFile_Read + 0x0000000000303874 _BFile_FindFirst + 0x0000000000303884 _BFile_FindNext + 0x0000000000303894 _BFile_FindClose + 0x00000000003038a4 ___Timer_Install + 0x00000000003038b4 ___Timer_Start + 0x00000000003038c4 ___Timer_Stop + 0x00000000003038d4 ___Timer_Deinstall + 0x00000000003038e4 ___PutKeyCode + 0x00000000003038f4 ___GetKeyWait + 0x0000000000303904 ___ClearKeyBuffer + 0x0000000000303914 ___GetVRAMAddress + 0x0000000000303924 ___ConfigureStatusArea + 0x0000000000303934 ___SpecialMatrixCodeProcessing + .text 0x0000000000303950 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + .text 0x0000000000303950 0xc0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + 0x0000000000303950 _drect + .text 0x0000000000303a10 0xd0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + 0x0000000000303a10 _topti_glyph_fg_bg + 0x0000000000303a4e _topti_glyph_fg + 0x0000000000303a88 _topti_glyph_bg + .text 0x0000000000303ae0 0x78 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + 0x0000000000303ae0 ___movstr + 0x0000000000303ae0 ___movmem + 0x0000000000303b14 ___movmemSI64 + 0x0000000000303b14 ___movstrSI64 + 0x0000000000303b18 ___movstrSI60 + 0x0000000000303b18 ___movmemSI60 + 0x0000000000303b1c ___movmemSI56 + 0x0000000000303b1c ___movstrSI56 + 0x0000000000303b20 ___movstrSI52 + 0x0000000000303b20 ___movmemSI52 + 0x0000000000303b24 ___movstrSI48 + 0x0000000000303b24 ___movmemSI48 + 0x0000000000303b28 ___movstrSI44 + 0x0000000000303b28 ___movmemSI44 + 0x0000000000303b2c ___movstrSI40 + 0x0000000000303b2c ___movmemSI40 + 0x0000000000303b30 ___movstrSI36 + 0x0000000000303b30 ___movmemSI36 + 0x0000000000303b34 ___movmemSI32 + 0x0000000000303b34 ___movstrSI32 + 0x0000000000303b38 ___movmemSI28 + 0x0000000000303b38 ___movstrSI28 + 0x0000000000303b3c ___movstrSI24 + 0x0000000000303b3c ___movmemSI24 + 0x0000000000303b40 ___movmemSI20 + 0x0000000000303b40 ___movstrSI20 + 0x0000000000303b44 ___movstrSI16 + 0x0000000000303b44 ___movmemSI16 + 0x0000000000303b48 ___movmemSI12 + 0x0000000000303b48 ___movstrSI12 + 0x0000000000303b4c ___movmemSI8 + 0x0000000000303b4c ___movstrSI8 + 0x0000000000303b50 ___movmemSI4 + 0x0000000000303b50 ___movstrSI4 + .text 0x0000000000303b58 0x1e0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + 0x0000000000303b58 ___udivdi3 + .text 0x0000000000303d38 0x208 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + 0x0000000000303d38 ___umoddi3 + .text 0x0000000000303f40 0x60 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000303f40 ___udiv_qrnnd_16 + .text 0x0000000000303fa0 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + +.gint.blocks 0x0000000000303fa0 0x160 + *(.gint.blocks) + .gint.blocks 0x0000000000303fa0 0x40 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + 0x0000000000303fa0 _inth_dma_te + 0x0000000000303fc0 _inth_dma_ae + .gint.blocks 0x0000000000303fe0 0xe0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + 0x0000000000303fe0 _inth_tmu + 0x0000000000304060 _inth_etmu2 + 0x0000000000304080 _inth_etmu_help + 0x00000000003040a0 _inth_etmux + .gint.blocks 0x00000000003040c0 0x40 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + 0x00000000003040c0 _gint_inth_7305 + +.gint.drivers 0x0000000000304100 0xc0 + 0x0000000000304100 _bdrv = . + *(.gint.drivers.0) + .gint.drivers.0 + 0x0000000000304100 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + 0x0000000000304100 _drv_intc + *(.gint.drivers.1) + .gint.drivers.1 + 0x0000000000304120 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + 0x0000000000304120 _drv_cpg + *(.gint.drivers.2) + .gint.drivers.2 + 0x0000000000304140 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + 0x0000000000304140 _drv_dma0 + .gint.drivers.2 + 0x0000000000304160 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000304160 _drv_tmu + *(.gint.drivers.3) + *(.gint.drivers.4) + .gint.drivers.4 + 0x0000000000304180 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + 0x0000000000304180 _drv_keysc + *(.gint.drivers.5) + .gint.drivers.5 + 0x00000000003041a0 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + 0x00000000003041a0 _drv_r61524 + *(.gint.drivers.6) + 0x00000000003041c0 _edrv = . + +.rodata 0x00000000003041c0 0xf90 + *(.rodata.4) + *(.rodata .rodata.*) + .rodata.str1.4 + 0x00000000003041c0 0x182 build-cg/src/setlevel.c.o + *fill* 0x0000000000304342 0x2 + .rodata 0x0000000000304344 0x208 build-cg/assets/img/solid_1.png.o + 0x0000000000304344 _img_solid_1 + 0x000000000030454c _img_solid_1_end + .rodata 0x000000000030454c 0x128 build-cg/assets/img/player.png.o + 0x000000000030454c _img_player + 0x0000000000304674 _img_player_end + .rodata 0x0000000000304674 0x208 build-cg/assets/img/solid_0.png.o + 0x0000000000304674 _img_solid_0 + 0x000000000030487c _img_solid_0_end + .rodata.str1.4 + 0x000000000030487c 0x7 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + *fill* 0x0000000000304883 0x1 + .rodata 0x0000000000304884 0x30 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .rodata.str1.4 + 0x00000000003048b4 0x5 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + *fill* 0x00000000003048b9 0x3 + .rodata.str1.4 + 0x00000000003048bc 0x5 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + *fill* 0x00000000003048c1 0x3 + .rodata.str1.4 + 0x00000000003048c4 0x288 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + 0x28c (size before relaxing) + .rodata.str1.4 + 0x0000000000304b4c 0x6 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + *fill* 0x0000000000304b52 0x2 + .rodata 0x0000000000304b54 0xc /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .rodata.str1.4 + 0x0000000000304b60 0x4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .rodata.str1.4 + 0x0000000000304b64 0x31 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + *fill* 0x0000000000304b95 0x3 + .rodata.str1.4 + 0x0000000000304b98 0x4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .rodata 0x0000000000304b9c 0x18 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .rodata 0x0000000000304bb4 0x49c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(font8x9.png.o) + 0x0000000000304bb4 _gint_font8x9 + 0x0000000000305050 _gint_font8x9_end + .rodata 0x0000000000305050 0x100 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + 0x0000000000305050 ___clz_tab + +.rela.dyn 0x0000000000305150 0x0 + .rela.text 0x0000000000305150 0x0 build-cg/src/drawlevel.c.o + .rela.text.entry + 0x0000000000305150 0x0 build-cg/src/drawlevel.c.o + 0x0000000008101400 . = ORIGIN (ram) + +.bss 0x0000000008101400 0x150 + 0x0000000008101400 _rbss = . + *(.bss COMMON) + .bss 0x0000000008101400 0x0 build-cg/src/drawlevel.c.o + .bss 0x0000000008101400 0x0 build-cg/src/main.c.o + .bss 0x0000000008101400 0x0 build-cg/src/setlevel.c.o + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) + .bss 0x0000000008101400 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tlbh.S.o) + .bss 0x0000000008101400 0x24 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .bss 0x0000000008101424 0xc /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + .bss 0x0000000008101430 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .bss 0x0000000008101430 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .bss 0x0000000008101430 0x114 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + .bss 0x0000000008101544 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .bss 0x0000000008101544 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + .bss 0x0000000008101544 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .bss 0x0000000008101544 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .bss 0x0000000008101544 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpu.s.o) + .bss 0x0000000008101544 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + .bss 0x0000000008101544 0x4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(osmenu.c.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(syscalls.S.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + .bss 0x0000000008101548 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + 0x0000000008101550 . = ALIGN (0x10) + *fill* 0x0000000008101548 0x8 + 0x0000000000000150 _sbss = SIZEOF (.bss) + +.data 0x0000000008101550 0x170 load address 0x0000000000305150 + 0x0000000000305150 _ldata = LOADADDR (.data) + 0x0000000008101550 _rdata = . + *(.data .data.*) + .data 0x0000000008101550 0x0 build-cg/src/drawlevel.c.o + .data 0x0000000008101550 0x0 build-cg/src/main.c.o + .data 0x0000000008101550 0x0 build-cg/src/setlevel.c.o + .data 0x0000000008101550 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memory.c.o) + .data 0x0000000008101550 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(string.c.o) + .data 0x0000000008101550 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dupdate.c.o) + .data 0x0000000008101550 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dclear.c.o) + .data 0x0000000008101550 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dimage.c.o) + .data 0x0000000008101550 0xc /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dvram.c.o) + 0x0000000008101550 _gint_vram + .data 0x000000000810155c 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti.c.o) + .data 0x000000000810155c 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dprint.c.o) + .data 0x000000000810155c 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .data 0x000000000810155c 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .data 0x000000000810155c 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .data 0x000000000810155c 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + .data 0x000000000810155c 0xe4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + 0x000000000810155c _info + .data 0x0000000008101640 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(start.c.o) + .data 0x0000000008101640 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + .data 0x0000000008101640 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + .data 0x0000000008101640 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) + .data 0x0000000008101640 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tlbh.S.o) + .data 0x0000000008101640 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .data 0x0000000008101640 0x8 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(getkey.c.o) + .data 0x0000000008101648 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .data 0x0000000008101648 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.s.o) + .data 0x0000000008101648 0x68 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(stdio.c.o) + 0x0000000008101648 _kprint_formatters + .data 0x00000000081016b0 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + .data 0x00000000081016b0 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(bopti-asm.s.o) + .data 0x00000000081016b0 0x8 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + 0x00000000081016b0 _topti_font + 0x00000000081016b4 _gint_default_font + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti.c.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpu.s.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.s.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(osmenu.c.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(syscalls.S.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(drect.c.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(topti-asm.s.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_movmem.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udivdi3.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_umoddi3.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + .data 0x00000000081016b8 0x0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/m4-nofpu/libgcc.a(_clz.o) + 0x00000000081016c0 . = ALIGN (0x10) + *fill* 0x00000000081016b8 0x8 + +.data.4 0x00000000081016c0 0x0 load address 0x00000000003052c0 + *(.data.4) + 0x00000000081016c0 . = ALIGN (0x10) + 0x0000000000000170 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) + 0x00000000e5200000 . = ORIGIN (ilram) + +.ilram 0x00000000e5200000 0x160 load address 0x00000000003052c0 + 0x00000000003052c0 _lilram = LOADADDR (.ilram) + 0x00000000e5200000 _rilram = . + *(.ilram) + .ilram 0x00000000e5200000 0x20 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(memset.c.o) + *(.gint.mapped) + .gint.mapped 0x00000000e5200020 0xc /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + 0x00000000e5200020 _gint_exc_skip + .gint.mapped 0x00000000e520002c 0xa4 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + 0x00000000e520002c _timer_stop + 0x00000000e52000a8 _timer_clear + .gint.mapped 0x00000000e52000d0 0x24 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpu.s.o) + 0x00000000e52000d0 _cpu_setVBR + *fill* 0x00000000e52000f4 0xc + .gint.mapped 0x00000000e5200100 0x54 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(inth.S.o) + 0x00000000e5200100 _gint_inth_callback + 0x00000000e5200160 . = ALIGN (0x10) + *fill* 0x00000000e5200154 0xc + 0x00000000e5007000 . = ORIGIN (xram) + +.xram 0x00000000e5007000 0x0 load address 0x0000000000305420 + 0x0000000000305420 _lxram = LOADADDR (.xram) + 0x00000000e5007000 _rxram = . + *(.xram) + 0x00000000e5007000 . = ALIGN (0x10) + 0x00000000e5017000 . = ORIGIN (yram) + +.yram 0x00000000e5017000 0x0 load address 0x0000000000305420 + 0x0000000000305420 _lyram = LOADADDR (.yram) + 0x00000000e5017000 _ryram = . + *(.yram) + 0x00000000e5017000 . = ALIGN (0x10) + 0x0000000000000160 _silram = SIZEOF (.ilram) + 0x0000000000000000 _sxram = SIZEOF (.xram) + 0x0000000000000000 _syram = SIZEOF (.yram) + 0x000000008c15ff00 _gint_vbr_fxcg50 = (ORIGIN (vbr50) - 0x100) + 0x000000008815ff00 _gint_vbr_fxcg20 = (ORIGIN (vbr20) - 0x100) + 0x00000000081016c0 . = ((ORIGIN (ram) + _sbss) + _sdata) + +.gint.data 0x00000000081016c0 0xa0 load address 0x0000000000305420 + 0x0000000000305420 _lgdata = LOADADDR (.gint.data) + 0x00000000081016c0 _rgdata = . + *(.gint.data .gint.data.*) + .gint.data 0x00000000081016c0 0x8 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .gint.data 0x00000000081016c8 0x10 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + 0x00000000081016c8 _SH7305_INTC + .gint.data.sh3 + 0x00000000081016d8 0x24 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + 0x00000000081016d8 _SH7705_INTC + .gint.data 0x00000000081016fc 0x8 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(exch.c.o) + 0x00000000081016fc _gint_exc_catcher + 0x0000000008101700 _gint_exc_panic + .gint.data 0x0000000008101704 0x24 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + .gint.data 0x0000000008101728 0x30 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + 0x0000000008101760 . = ALIGN (0x10) + *fill* 0x0000000008101758 0x8 + 0x00000000000000a0 _sgdata = SIZEOF (.gint.data) + +.gint.bss 0x0000000008101760 0x530 load address 0x00000000003054c0 + *(.gint.bss .gint.bss.*) + .gint.bss 0x0000000008101760 0x10 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(r61524.c.o) + .gint.bss 0x0000000008101770 0xd0 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(dma.c.o) + .gint.bss 0x0000000008101840 0x4c /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(intc.c.o) + .gint.bss 0x000000000810188c 0x40 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(hardware.c.o) + 0x000000000810188c _gint + .gint.bss 0x00000000081018cc 0x10 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(kernel.c.o) + .gint.bss 0x00000000081018dc 0x180 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(keysc.c.o) + *fill* 0x0000000008101a5c 0x4 + .gint.bss 0x0000000008101a60 0x200 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(tmu.c.o) + .gint.bss 0x0000000008101c60 0x24 /home/benjamingr/Documents/casio/gcc/lib/gcc/sh3eb-elf/9.3.0/libgint-cg.a(cpg.c.o) + 0x0000000008101c90 . = ALIGN (0x10) + *fill* 0x0000000008101c84 0xc + 0x0000000000000530 _sgbss = SIZEOF (.gint.bss) + +/DISCARD/ + *(.gint.bss.sh3) + *(.gint.data.sh3) + *(.debug_info .debug_abbrev .debug_loc .debug_aranges .debug_ranges .debug_line .debug_str) + *(.jcr) + *(.eh_frame_hdr) + *(.eh_frame) + *(.comment) +OUTPUT(build-cg/AST3.elf elf32-sh) diff --git a/build-cg/src/drawlevel.c.d b/build-cg/src/drawlevel.c.d new file mode 100644 index 0000000..8aabb43 --- /dev/null +++ b/build-cg/src/drawlevel.c.d @@ -0,0 +1,3 @@ +build-cg/src/drawlevel.c.o: src/drawlevel.c include/drawlevel.h + +include/drawlevel.h: diff --git a/build-cg/src/drawlevel.c.o b/build-cg/src/drawlevel.c.o new file mode 100644 index 0000000000000000000000000000000000000000..ecec28c0682a6d696ce49e68dc47d23e6c277f15 GIT binary patch literal 1044 zcma)5&ubG=5T0FYle!VMQaz}LkVC0Ic$?TBYEQi(*<7lfVE-dK!W5uXNcg5 zZ_lHQ>W#*7n%*Zdrj5VnsTf}(CxCt$UpH`39_5n``-aJw^IUvDo;L3JJUa2tlKJ_U zjxLvScvMM;W04rec(iw=#ZR^4`Cb2D@%x*hQpH*~OY5%YMgQvZO6l{) z&MSA|UgS*DOqjYkZ{9WMOh~h)P{o>1z+>S73UC9BhIPXIK9ix)xW_wr$xuhIJl#PhSW4flMX-un2QC(Zq^d?T}YF?v6Ml)LRY$~oA8lv-BKEAL-vr`K? zo0BxG9lp}h_}x_iH^)_=m*W~Baa;%bIQ|VB=J*fLZ(})=PZ;V9_5iF?8|FB*~I+4_tTvv z9eeMCbQhcJb?&=OF>bt%Mk&DXgq;u{(Rh>m5IKu8?;{V8vs#-iE_ex3yS0qvxOeoh raE0P@|5nX>P1ct5Z?(=qP-J!7Cg;Z1Vm3g|&q`3Fp1^f-ZkFyJCx53s literal 0 HcmV?d00001 diff --git a/build-cg/src/setlevel.c.d b/build-cg/src/setlevel.c.d new file mode 100644 index 0000000..6c487cc --- /dev/null +++ b/build-cg/src/setlevel.c.d @@ -0,0 +1,3 @@ +build-cg/src/setlevel.c.o: src/setlevel.c include/setlevel.h + +include/setlevel.h: diff --git a/build-cg/src/setlevel.c.o b/build-cg/src/setlevel.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c825ae80e1d2eff41576aaf8b5e0fda693f48afc GIT binary patch literal 1268 zcmeHHy-ve05I(0AQa}|&NFXr~7)trG8ejm#5LAApiVldmq^+eQHGq-`!31K0fwePl zz`}#TP_ZxqJG=ngC2^VpRbPNlJ^TCa&d&Mb^kO5w$rJ`57)&FNIARslDOmI}GSCZ& zgWNSMOx(sRd)LZMvXF*8NYs-J^-(pDJ*)5Vq`t9Nwl-5p*Of;1{U;>Y3nap40IT_& zo$2i`r)U4fyxuO7{f}g+2kihmnrUfOVGC^>yxwAF7GNuvThTIGyZckxGGE~6`Hk>C zbivn0G#qQWD*&kR*93~Lrt*UEAG#ZLf8fgx`uh#boB^MVwP;7UHE}9xybML;MNdG{ z5?1--9Ez0_`|!y1RxAO;W$mi~s^mt*zYcgkgZ;NdKX=Y8*DL{dT-%?klG&nWa#x(W zz$>O}0xvlZaQm19rR#hVc=_0}L{Nn+zVobM3e`eAA<$Qs_n1G(UXG$9ZuoBH1!p`T z^q|pticwF~ftK&&5_J^v+_UIZ(K_Ynm_uvk(Fm6)uRP`t^jwM?!5myBML~_PHU#BJ uqgViC2+189)k0^X{pbqNe}}9Msq%osB$@>6MM$AV@?s;XcPJ3R%liiTfs%Ou literal 0 HcmV?d00001 diff --git a/include/drawlevel.h b/include/drawlevel.h new file mode 100644 index 0000000..b09f7fa --- /dev/null +++ b/include/drawlevel.h @@ -0,0 +1,2 @@ +void draw_level(char level[]); +void draw_player(int x, int y); diff --git a/include/setlevel.h b/include/setlevel.h new file mode 100644 index 0000000..7770078 --- /dev/null +++ b/include/setlevel.h @@ -0,0 +1 @@ +void set_level(int id_level, char level[]); diff --git a/project.cfg b/project.cfg new file mode 100644 index 0000000..4af7bec --- /dev/null +++ b/project.cfg @@ -0,0 +1,85 @@ +#--- +# fxSDK project configuration file for cube +#--- + +# Project name, should be at most 8 bytes long. +# (You can also specify NAME_G1A or NAME_G3A to override individually.) +NAME := AST3 + +# Internal name, should be '@' followed by at most 7 uppercase letters. +# WARNING: If this convention is not followed, the add-in might not appear in +# the main menu of the calculator! +INTERNAL := ASTTT + +# Output file name. The default is to take , replace spaces with dashes, +# and add .g1a (or .g3a). You can specify a different folder if you want. +TARGET_FX := +TARGET_CG := + +# fx-9860G icon location +ICON_FX = assets-fx/icon-fx.png +# fx-CG 50 icon locations +ICON_CG_UNS = assets-cg/icon-cg-uns.png +ICON_CG_SEL = assets-cg/icon-cg-sel.png + +#--- +# Toolchain selection +#--- + +# Toolchain for fx9860g. Please see also CFLAGS_FX below. +TOOLCHAIN_FX := sh-elf + +# Toolchain for fxcg50. Please see also CFLAGS_CG below. +TOOLCHAIN_CG := sh-elf + +#--- +# Compiler flags +#--- + +# Base compiler flags for the fxSDK, you usually want to keep these. +CFLAGS := -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields + +# Platform-specific compiler flags. +# <> If you are using sh3eb-elf, use -m3. (You can do this on both FX and CG.) +# <> If you are using sh4eb-elf, use -m4-nofpu. (Not ideal on FX but works.) +# <> If you are using sh4eb-nofpu-elf, then your compiler will likely use the +# FPU and cause problems on the calculator. Consider another configuration. +# <> If you are using an sh-elf with several targets, specify whichever you +# support. I recommend -m3 on FX and -m4-nofpu on CG. +# Please see also TOOLCHAIN_FX and TOOLCHAIN_CG above. +CFLAGS_FX := -D FX9860G -m3 +CFLAGS_CG := -D FXCG50 -m4-nofpu + +# Additional compiler flags, change to your own taste! +CFLAGS += -Wall -Wextra -Os + +# Include paths. Add one -I option for each folder from which you want to +# be able to include files with #include<>. +INCLUDE := -I include + +# Libraries. Add one -l option for each library you are using, and also +# suitable -L options if you have library files in custom folders. To use +# fxlib, add libfx.a to the project directory and use "-L . -lfx". +LIBS_FX := +LIBS_CG := + +# Base linker flags for the fxSDK, you usually want to keep these. +LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS_FX) -lgint-fx -lgcc +LDFLAGS_CG := -T fxcg50.ld -lgint-cg $(LIBS_CG) -lgint-cg -lgcc + +# Additional linker flags, if you need any. +LDFLAGS := + +# Additional platform-specific linker flags. +LDFLAGS_FX += -Wl,-Map=build-fx/map +LDFLAGS_CG += -Wl,-Map=build-cg/map + +#--- +# File conversion parameters +#--- + +# Here you can add fxconv options for each converted file, individually. +# The syntax is ".". For example, to specify the parameters for a +# font named "hexa.png", you might write: +# +# FONT.hexa.png = charset:print grid.size:3x5 grid.padding:1 diff --git a/src/drawlevel.c b/src/drawlevel.c new file mode 100644 index 0000000..43cfa5e --- /dev/null +++ b/src/drawlevel.c @@ -0,0 +1,39 @@ +#include "drawlevel.h" +#include +#include +#include + +extern bopti_image_t img_solid_0; +extern bopti_image_t img_solid_1; +extern bopti_image_t img_player; + +void draw_player(int x, int y) +{ + dimage(x,y,&img_player); +} +void draw_level(char level[]) +{ + dclear(C_WHITE); + unsigned int x = 0; + unsigned int y = 0; + unsigned int i = 0; + while (i!=strlen(level)) + { + switch(level[i]) + { + case '1': + dimage(x,y,&img_solid_0); + break; + case '2': + dimage(x,y,&img_solid_1); + break; + } + x+=16; + if(x==16*26) + { + x=0; + y+=16; + } + i++; + } +} diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..7a4a528 --- /dev/null +++ b/src/main.c @@ -0,0 +1,50 @@ +#include +#include +#include "setlevel.h" +#include "drawlevel.h" + +#define PLAYER_SPEED 2 + +int main(void) +{ + dclear(C_WHITE); + int player_x=0, player_y=0; + char level[477]; + int id_level = 1; + set_level(id_level,level); + draw_level(level); + draw_player(player_x,player_y); + while(1) + { + dupdate(); + pollevent(); + if(keydown(KEY_RIGHT)) + { + player_x+=PLAYER_SPEED; + if(player_x>390) player_x=0; + + } + else if(keydown(KEY_LEFT)) + { + player_x-=PLAYER_SPEED; + if(player_x<-9) player_x=386; + } + else if(keydown(KEY_UP)) + { + player_y-=PLAYER_SPEED; + if(player_y<-9) player_y=219; + } + else if(keydown(KEY_DOWN)) + { + player_y+=PLAYER_SPEED; + if(player_y>219) player_y=-9; + } + if(keydown(KEY_EXIT)) + { + break; + } + draw_level(level); + draw_player(player_x,player_y); + } + return 1; +} diff --git a/src/setlevel.c b/src/setlevel.c new file mode 100644 index 0000000..201e26b --- /dev/null +++ b/src/setlevel.c @@ -0,0 +1,19 @@ +#include "setlevel.h" +#include +#include +#include + +void set_level(int id_level, char level[]) +{ + switch(id_level) + { + case 1: + memcpy(level,"1111111111111111111111111-1000000000000000000000021-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1000000000000000000000001-1111111111111111111111111",476); + dprint(1,1,C_BLACK,"I am here !"); + break; + case 2: + memcpy(level,"000001110",476); + dprint(1,1,C_BLACK,"I am here !"); + break; + } +}