commit 635888d71f08ece88e3ca08e890f97ad651d5049 Author: KikooDX Date: Tue Feb 11 11:44:37 2020 +0100 First commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..94fd233 --- /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 -i $< -o $@ $(FXCONVFX) name:img_$(basename $*) $(IMG.$*) +build-cg/assets/img/%.o: assets-cg/img/% + @ mkdir -p $(dir $@) + fxconv -i $< -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 0000000..7137b50 Binary files /dev/null and b/assets-cg/icon-cg-sel.png differ diff --git a/assets-cg/icon-cg-uns.png b/assets-cg/icon-cg-uns.png new file mode 100644 index 0000000..3c99f62 Binary files /dev/null and b/assets-cg/icon-cg-uns.png differ diff --git a/assets-cg/img/ground.png b/assets-cg/img/ground.png new file mode 100644 index 0000000..cabab6f Binary files /dev/null and b/assets-cg/img/ground.png differ diff --git a/assets-cg/img/player.png b/assets-cg/img/player.png new file mode 100644 index 0000000..dd8ed35 Binary files /dev/null and b/assets-cg/img/player.png differ diff --git a/assets-fx/icon-fx.png b/assets-fx/icon-fx.png new file mode 100644 index 0000000..c92f12a Binary files /dev/null and b/assets-fx/icon-fx.png differ diff --git a/build-cg/assets/img/ground.png.o b/build-cg/assets/img/ground.png.o new file mode 100644 index 0000000..bdc9903 Binary files /dev/null and b/build-cg/assets/img/ground.png.o differ diff --git a/build-cg/assets/img/player.png.o b/build-cg/assets/img/player.png.o new file mode 100644 index 0000000..e50d449 Binary files /dev/null and b/build-cg/assets/img/player.png.o differ diff --git a/build-cg/map b/build-cg/map new file mode 100644 index 0000000..ffc35ae --- /dev/null +++ b/build-cg/map @@ -0,0 +1,612 @@ +Archive member included to satisfy reference by file (symbol) + +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) + (_start) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) (_gint_install) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(mmu.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) (_utlb_mapped_memory) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) (_gint_panic) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(gint.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) (_SH7305_INTC) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.s.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) (_gint_exch_tlbh) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(vbr.s.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) (_gint_setvbr) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(hardware.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) (_hw_detect) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) (_dfont) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dprint.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) (_dprint) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dimage.c.o) + build-cg/src/draw.c.o (_dimage) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dclear.c.o) + build-cg/src/main.c.o (_dclear) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dvram.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) (_gint_vram) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(drect.c.o) + build-cg/src/draw.c.o (_drect) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) (_dtext) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dupdate.c.o) + build-cg/src/main.c.o (_dupdate) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti-asm.s.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) (_topti_glyph_fg_bg) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dimage.c.o) (_bopti_render_clip) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + build-cg/src/main.c.o (_pollevent) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) (_timer_setup) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memset.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dclear.c.o) (_dma_memset) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(font8x9.png.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) (_gint_font8x9) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dupdate.c.o) (_r61524_display) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(string.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) (_strlen) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(stdio.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dprint.c.o) (_vsnprintf) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memory.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) (_memcpy) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.S.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) (_gint_inth_7305) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti-asm.s.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti.c.o) (_bopti_r5g6b5) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) (_clock_freq) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(getkey.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) (_getkey_repeat) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) (_inth_tmu) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memset.c.o) (_dma_transfer) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) (_inth_dma_te) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_movmem.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) (___movmemSI24) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) (___udivdi3) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(stdio.c.o) (___umoddi3) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) (___udiv_qrnnd_16) +/home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) (___clz_tab) + +Discarded input sections + + .comment 0x0000000000000000 0x12 build-cg/src/collide.c.o + .comment 0x0000000000000000 0x12 build-cg/src/draw.c.o + .comment 0x0000000000000000 0x12 build-cg/src/levels.c.o + .comment 0x0000000000000000 0x12 build-cg/src/main.c.o + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(mmu.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(gint.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(hardware.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dprint.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dimage.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dclear.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dvram.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(drect.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dupdate.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memset.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(string.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(stdio.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memory.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(getkey.c.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + .debug_info 0x0000000000000000 0x737 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_abbrev 0x0000000000000000 0x218 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_loc 0x0000000000000000 0x6d5 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_aranges + 0x0000000000000000 0x20 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_ranges 0x0000000000000000 0xf0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_line 0x0000000000000000 0x28f /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_str 0x0000000000000000 0x5a6 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .eh_frame 0x0000000000000000 0x84 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .debug_info 0x0000000000000000 0x746 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_abbrev 0x0000000000000000 0x229 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_loc 0x0000000000000000 0x6ef /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_aranges + 0x0000000000000000 0x20 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_ranges 0x0000000000000000 0x108 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_line 0x0000000000000000 0x2e5 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_str 0x0000000000000000 0x5a6 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .eh_frame 0x0000000000000000 0x94 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .debug_info 0x0000000000000000 0x371 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + .debug_abbrev 0x0000000000000000 0xcf /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + .debug_aranges + 0x0000000000000000 0x18 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + .debug_line 0x0000000000000000 0xe2 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + .debug_str 0x0000000000000000 0x523 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + .comment 0x0000000000000000 0x12 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + +Memory Configuration + +Name Origin Length Attributes +rom 0x0000000000300000 0x0000000000037000 xr +ram 0x0000000008102000 0x0000000000080000 rw +vbr 0x000000008c160000 0x0000000000001400 xrw +rram 0x000000008c161400 0x0000000000000c00 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/collide.c.o +LOAD build-cg/src/draw.c.o +LOAD build-cg/src/levels.c.o +LOAD build-cg/src/main.c.o +LOAD build-cg/assets/img/ground.png.o +LOAD build-cg/assets/img/player.png.o +LOAD /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a +LOAD /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a +LOAD /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a + 0x0000000000300000 _brom = 0x300000 + 0x0000000000004a34 _srom = (((SIZEOF (.text) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + +.text 0x0000000000300000 0x38f0 + *(.pretext.entry) + .pretext.entry + 0x0000000000300000 0x1a4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) + 0x0000000000300000 _start + *(.pretext) + .pretext 0x00000000003001a4 0x30 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) + .pretext 0x00000000003001d4 0x40 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(hardware.c.o) + 0x00000000003001d4 _hw_detect + .pretext 0x0000000000300214 0x110 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + 0x0000000000300214 _dfont + 0x000000000030022c _charset_size + 0x0000000000300258 _charset_decode + 0x00000000003002c6 _topti_offset + .pretext 0x0000000000300324 0x23c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + 0x0000000000300324 _topti_render + 0x0000000000300514 _dtext + .pretext 0x0000000000300560 0xc4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti-asm.s.o) + 0x0000000000300560 _topti_glyph_fg_bg + 0x000000000030059e _topti_glyph_fg + 0x00000000003005d8 _topti_glyph_bg + 0x0000000000300624 _btors = . + *(.ctors .ctors.*) + 0x0000000000300624 _mtors = . + *(.dtors .dtors.*) + 0x0000000000300624 _etors = . + 0x0000000000300624 _gint_exch_tlbh_start = . + *(.gint.exch_tlbh) + *fill* 0x0000000000300624 0xc + .gint.exch_tlbh + 0x0000000000300630 0x4c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.s.o) + 0x0000000000300630 _gint_exch_tlbh + 0x0000000000000058 _gint_exch_tlbh_size = ABSOLUTE ((. - _gint_exch_tlbh_start)) + *(.text .text.*) + .text 0x000000000030067c 0xd2 build-cg/src/collide.c.o + 0x000000000030067c _collide_with + *fill* 0x000000000030074e 0x2 + .text 0x0000000000300750 0xd0 build-cg/src/draw.c.o + 0x0000000000300750 _draw_player + 0x00000000003007a4 _draw_level + .text 0x0000000000300820 0x4 build-cg/src/levels.c.o + 0x0000000000300820 _get_level + .text 0x0000000000300824 0x34 build-cg/src/main.c.o + 0x0000000000300824 _jump_test + .text.startup 0x0000000000300858 0xec build-cg/src/main.c.o + 0x0000000000300858 _main + .text 0x0000000000300944 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) + .text 0x0000000000300944 0x104 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) + 0x00000000003009b0 _gint_install + 0x0000000000300a30 _gint_unload + .text 0x0000000000300a48 0xf8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(mmu.c.o) + 0x0000000000300a48 _utlb_addr + 0x0000000000300a58 _utlb_data + 0x0000000000300a68 _utlb_mapped_memory + .text 0x0000000000300b40 0x2dc /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) + 0x0000000000300de8 _gint_panic + 0x0000000000300df8 _gint_panic_set + 0x0000000000300e04 _gint_exc_catch + 0x0000000000300e10 _gint_exc_skip + .text 0x0000000000300e1c 0x5c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(gint.c.o) + 0x0000000000300e1c _gint_intlevel + 0x0000000000300e54 _gint_inthandler + .text 0x0000000000300e78 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.s.o) + .text 0x0000000000300e78 0x2c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(vbr.s.o) + 0x0000000000300e78 _gint_setvbr + .text 0x0000000000300ea4 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(hardware.c.o) + .text 0x0000000000300ea4 0x9c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + 0x0000000000300ea4 _dsize + .text 0x0000000000300f40 0x58 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dprint.c.o) + 0x0000000000300f40 _dprint + .text 0x0000000000300f98 0x40 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dimage.c.o) + 0x0000000000300f98 _dimage + 0x0000000000300fc0 _dsubimage + .text 0x0000000000300fd8 0x1c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dclear.c.o) + 0x0000000000300fd8 _dclear + .text 0x0000000000300ff4 0x4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dvram.c.o) + 0x0000000000300ff4 _dvram + .text 0x0000000000300ff8 0xc0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(drect.c.o) + 0x0000000000300ff8 _drect + .text 0x00000000003010b8 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + .text 0x00000000003010b8 0x30 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dupdate.c.o) + 0x00000000003010b8 _dupdate + 0x00000000003010d0 _dupdate_noint + .text 0x00000000003010e8 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti-asm.s.o) + .text 0x00000000003010e8 0x1e4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti.c.o) + 0x00000000003010e8 _bopti_render + 0x00000000003011d8 _bopti_render_clip + 0x00000000003012a0 _bopti_render_noclip + .text 0x00000000003012cc 0x3ac /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + 0x0000000000301424 _pollevent + 0x0000000000301568 _waitevent + 0x00000000003015b4 _clearevents + 0x00000000003015d4 _keydown + 0x0000000000301600 _keydown_all + 0x000000000030163c _keydown_any + .text 0x0000000000301678 0x4cc /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + 0x0000000000301900 _timer_setup + 0x0000000000301990 _timer_delay + 0x00000000003019f0 _timer_start + 0x0000000000301a24 _timer_reload + 0x0000000000301a44 _timer_pause + 0x0000000000301a78 _timer_stop + 0x0000000000301ad4 _timer_timeout + 0x0000000000301ae0 _timer_address + 0x0000000000301b14 _timer_clear + .text 0x0000000000301b44 0x4c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memset.c.o) + 0x0000000000301b44 _dma_memset + .text 0x0000000000301b90 0x2d4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + 0x0000000000301be0 _r61524_win_get + 0x0000000000301c98 _r61524_win_set + 0x0000000000301d58 _r61524_display + .text 0x0000000000301e64 0x7c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(string.c.o) + 0x0000000000301e64 _strlen + 0x0000000000301e74 _strncpy + 0x0000000000301e8c _strcat + 0x0000000000301ed0 _strcmp + .text 0x0000000000301ee0 0xce4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(stdio.c.o) + 0x00000000003028dc _kprint_opt + 0x0000000000302a24 _kprint + 0x0000000000302afc _kvsprint + 0x0000000000302b44 _sprintf + 0x0000000000302b6c _vsprintf + 0x0000000000302b8c _snprintf + 0x0000000000302bac _vsnprintf + .text 0x0000000000302bc4 0xdc /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memory.c.o) + 0x0000000000302bc4 _memcpy + 0x0000000000302c7e __memmove + 0x0000000000302c82 __memcmp + 0x0000000000302c86 _memset + .text 0x0000000000302ca0 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.S.o) + .text 0x0000000000302ca0 0x100 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti-asm.s.o) + 0x0000000000302ca0 _bopti_r5g6b5 + 0x0000000000302cf0 _bopti_r5g6b5a + 0x0000000000302d20 _bopti_p8 + 0x0000000000302d50 _bopti_p4 + .text 0x0000000000302da0 0xc8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + 0x0000000000302e5c _clock_freq + .text 0x0000000000302e68 0x1d0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(getkey.c.o) + 0x0000000000302e68 _getkey_opt + 0x0000000000302ff0 _getkey + 0x0000000000302ffc _getkey_repeat + .text 0x0000000000303038 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + .text 0x0000000000303038 0x3f8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + 0x000000000030330c _dma_transfer + 0x000000000030334c _dma_transfer_wait + 0x00000000003033c4 _dma_transfer_noint + .text 0x0000000000303430 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + .text 0x0000000000303430 0x78 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_movmem.o) + 0x0000000000303430 ___movstr + 0x0000000000303430 ___movmem + 0x0000000000303464 ___movmemSI64 + 0x0000000000303464 ___movstrSI64 + 0x0000000000303468 ___movstrSI60 + 0x0000000000303468 ___movmemSI60 + 0x000000000030346c ___movmemSI56 + 0x000000000030346c ___movstrSI56 + 0x0000000000303470 ___movstrSI52 + 0x0000000000303470 ___movmemSI52 + 0x0000000000303474 ___movstrSI48 + 0x0000000000303474 ___movmemSI48 + 0x0000000000303478 ___movstrSI44 + 0x0000000000303478 ___movmemSI44 + 0x000000000030347c ___movstrSI40 + 0x000000000030347c ___movmemSI40 + 0x0000000000303480 ___movstrSI36 + 0x0000000000303480 ___movmemSI36 + 0x0000000000303484 ___movmemSI32 + 0x0000000000303484 ___movstrSI32 + 0x0000000000303488 ___movmemSI28 + 0x0000000000303488 ___movstrSI28 + 0x000000000030348c ___movstrSI24 + 0x000000000030348c ___movmemSI24 + 0x0000000000303490 ___movmemSI20 + 0x0000000000303490 ___movstrSI20 + 0x0000000000303494 ___movstrSI16 + 0x0000000000303494 ___movmemSI16 + 0x0000000000303498 ___movmemSI12 + 0x0000000000303498 ___movstrSI12 + 0x000000000030349c ___movmemSI8 + 0x000000000030349c ___movstrSI8 + 0x00000000003034a0 ___movmemSI4 + 0x00000000003034a0 ___movstrSI4 + .text 0x00000000003034a8 0x1e0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + 0x00000000003034a8 ___udivdi3 + .text 0x0000000000303688 0x208 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + 0x0000000000303688 ___umoddi3 + .text 0x0000000000303890 0x60 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000303890 ___udiv_qrnnd_16 + .text 0x00000000003038f0 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + +.gint.blocks 0x00000000003038f0 0x140 + *(.gint.blocks) + .gint.blocks 0x00000000003038f0 0x20 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.S.o) + 0x00000000003038f0 _gint_inth_7305 + .gint.blocks 0x0000000000303910 0xe0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + 0x0000000000303910 _inth_tmu + 0x0000000000303990 _inth_etmu2 + 0x00000000003039b0 _inth_etmu_help + 0x00000000003039d0 _inth_etmux + .gint.blocks 0x00000000003039f0 0x40 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + 0x00000000003039f0 _inth_dma_te + 0x0000000000303a10 _inth_dma_ae + +.gint.drivers 0x0000000000303a30 0xb4 + 0x0000000000303a30 _bdrv = . + *(.gint.drivers.0) + *(.gint.drivers.1) + .gint.drivers.1 + 0x0000000000303a30 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + 0x0000000000303a30 _drv_cpg + *(.gint.drivers.2) + .gint.drivers.2 + 0x0000000000303a54 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + 0x0000000000303a54 _drv_tmu + .gint.drivers.2 + 0x0000000000303a78 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + 0x0000000000303a78 _drv_dma0 + *(.gint.drivers.3) + *(.gint.drivers.4) + .gint.drivers.4 + 0x0000000000303a9c 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + 0x0000000000303a9c _drv_keysc + *(.gint.drivers.5) + .gint.drivers.5 + 0x0000000000303ac0 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + 0x0000000000303ac0 _drv_r61524 + *(.gint.drivers.6) + 0x0000000000303ae4 _edrv = . + +.rodata 0x0000000000303ae4 0xf50 + *(.rodata.4) + *(.rodata .rodata.*) + .rodata 0x0000000000303ae4 0x208 build-cg/assets/img/ground.png.o + 0x0000000000303ae4 _img_ground + 0x0000000000303cec _img_ground_end + .rodata 0x0000000000303cec 0x488 build-cg/assets/img/player.png.o + 0x0000000000303cec _img_player + 0x0000000000304174 _img_player_end + .rodata.str1.4 + 0x0000000000304174 0x288 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) + 0x28c (size before relaxing) + .rodata 0x00000000003043fc 0x18 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + .rodata.str1.4 + 0x0000000000304414 0x6 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + *fill* 0x000000000030441a 0x2 + .rodata.str1.4 + 0x000000000030441c 0x4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + .rodata 0x0000000000304420 0x49c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(font8x9.png.o) + 0x0000000000304420 _gint_font8x9 + 0x00000000003048bc _gint_font8x9_end + .rodata.str1.4 + 0x00000000003048bc 0x7 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + *fill* 0x00000000003048c3 0x1 + .rodata.str1.4 + 0x00000000003048c4 0x31 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(stdio.c.o) + *fill* 0x00000000003048f5 0x3 + .rodata.str1.4 + 0x00000000003048f8 0x4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + .rodata 0x00000000003048fc 0x30 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + .rodata.str1.4 + 0x000000000030492c 0x8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + 0x5 (size before relaxing) + .rodata 0x0000000000304934 0x100 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + 0x0000000000304934 ___clz_tab + +.rela.dyn 0x0000000000304a34 0x0 + .rela.text.startup + 0x0000000000304a34 0x0 build-cg/src/main.c.o + .rela.pretext.entry + 0x0000000000304a34 0x0 build-cg/src/main.c.o + .rela.text 0x0000000000304a34 0x0 build-cg/src/main.c.o + .rela.pretext 0x0000000000304a34 0x0 build-cg/src/main.c.o + 0x0000000008102000 . = ORIGIN (ram) + +.bss 0x0000000008102000 0x150 + 0x0000000008102000 _rbss = . + *(.bss COMMON) + .bss 0x0000000008102000 0x0 build-cg/src/collide.c.o + .bss 0x0000000008102000 0x0 build-cg/src/draw.c.o + .bss 0x0000000008102000 0x0 build-cg/src/levels.c.o + .bss 0x0000000008102000 0x0 build-cg/src/main.c.o + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(mmu.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(gint.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.s.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(vbr.s.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(hardware.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dprint.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dimage.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dclear.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dvram.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(drect.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dupdate.c.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti-asm.s.o) + .bss 0x0000000008102000 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti.c.o) + .bss 0x0000000008102000 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + .bss 0x0000000008102024 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + .bss 0x0000000008102024 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memset.c.o) + .bss 0x0000000008102024 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + .bss 0x0000000008102024 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(string.c.o) + .bss 0x0000000008102024 0x114 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(stdio.c.o) + .bss 0x0000000008102138 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memory.c.o) + .bss 0x0000000008102138 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.S.o) + .bss 0x0000000008102138 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti-asm.s.o) + .bss 0x0000000008102138 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + .bss 0x0000000008102138 0xc /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(getkey.c.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_movmem.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + .bss 0x0000000008102144 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + 0x0000000008102150 . = ALIGN (0x10) + *fill* 0x0000000008102144 0xc + 0x0000000000000150 _sbss = SIZEOF (.bss) + +.data 0x0000000008102150 0x80 load address 0x0000000000304a34 + 0x0000000000304a34 _ldata = LOADADDR (.data) + 0x0000000008102150 _rdata = . + *(.data .data.*) + .data 0x0000000008102150 0x0 build-cg/src/collide.c.o + .data 0x0000000008102150 0x0 build-cg/src/draw.c.o + .data 0x0000000008102150 0x0 build-cg/src/levels.c.o + .data 0x0000000008102150 0x0 build-cg/src/main.c.o + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(start.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(mmu.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(gint.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.s.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(vbr.s.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(hardware.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dprint.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dimage.c.o) + .data 0x0000000008102150 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dclear.c.o) + .data 0x0000000008102150 0x4 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dvram.c.o) + 0x0000000008102150 _gint_vram + .data 0x0000000008102154 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(drect.c.o) + .data 0x0000000008102154 0x8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti.c.o) + 0x0000000008102154 _topti_font + 0x0000000008102158 _gint_default_font + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dupdate.c.o) + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(topti-asm.s.o) + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti.c.o) + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memset.c.o) + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + .data 0x000000000810215c 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(string.c.o) + .data 0x000000000810215c 0x68 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(stdio.c.o) + 0x000000000810215c _kprint_formatters + .data 0x00000000081021c4 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memory.c.o) + .data 0x00000000081021c4 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.S.o) + .data 0x00000000081021c4 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(bopti-asm.s.o) + .data 0x00000000081021c4 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + .data 0x00000000081021c4 0x8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(getkey.c.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(inth.s.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_movmem.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udivdi3.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_umoddi3.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_udiv_qrnnd_16.o) + .data 0x00000000081021cc 0x0 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/m4-nofpu/libgcc.a(_clz.o) + 0x00000000081021d0 . = ALIGN (0x10) + *fill* 0x00000000081021cc 0x4 + +.data.4 0x00000000081021d0 0x0 load address 0x0000000000304ab4 + *(.data.4) + 0x00000000081021d0 . = ALIGN (0x10) + 0x0000000000000080 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) + 0x00000000e5200000 . = ORIGIN (ilram) + +.ilram 0x00000000e5200000 0x20 load address 0x0000000000304ab4 + 0x0000000000304ab4 _lilram = LOADADDR (.ilram) + 0x00000000e5200000 _rilram = . + *(.ilram) + .ilram 0x00000000e5200000 0x20 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(memset.c.o) + 0x00000000e5200020 . = ALIGN (0x10) + 0x00000000e5007000 . = ORIGIN (xram) + +.xram 0x00000000e5007000 0x0 load address 0x0000000000304ad4 + 0x0000000000304ad4 _lxram = LOADADDR (.xram) + 0x00000000e5007000 _rxram = . + *(.xram) + 0x00000000e5007000 . = ALIGN (0x10) + 0x00000000e5017000 . = ORIGIN (yram) + +.yram 0x00000000e5017000 0x0 load address 0x0000000000304ad4 + 0x0000000000304ad4 _lyram = LOADADDR (.yram) + 0x00000000e5017000 _ryram = . + *(.yram) + 0x00000000e5017000 . = ALIGN (0x10) + 0x0000000000000020 _silram = SIZEOF (.ilram) + 0x0000000000000000 _sxram = SIZEOF (.xram) + 0x0000000000000000 _syram = SIZEOF (.yram) + 0x000000008c15ff00 _gint_vbr = (ORIGIN (vbr) - 0x100) + 0x000000008c161400 . = ORIGIN (rram) + +.gint.data 0x000000008c161400 0xe0 load address 0x0000000000304ad4 + 0x0000000000304ad4 _lgdata = LOADADDR (.gint.data) + 0x000000008c161400 _rgdata = . + *(.gint.data .gint.data.*) + .gint.data 0x000000008c161400 0x8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(exch.c.o) + 0x000000008c161400 _gint_exc_catcher + 0x000000008c161404 _gint_exc_panic + .gint.data 0x000000008c161408 0x10 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(gint.c.o) + 0x000000008c161408 _SH7305_INTC + .gint.data.sh3 + 0x000000008c161418 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(gint.c.o) + 0x000000008c161418 _SH7705_INTC + .gint.data 0x000000008c16143c 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + .gint.data 0x000000008c161460 0x70 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + .gint.data 0x000000008c1614d0 0x8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + 0x000000008c1614e0 . = ALIGN (0x10) + *fill* 0x000000008c1614d8 0x8 + 0x00000000000000e0 _sgdata = SIZEOF (.gint.data) + +.gint.bss 0x000000008c1614e0 0x300 load address 0x0000000000304bb4 + *(.gint.bss .gint.bss.*) + .gint.bss 0x000000008c1614e0 0x1c /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(setup.c.o) + .gint.bss 0x000000008c1614fc 0x40 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(hardware.c.o) + 0x000000008c1614fc _gint + .gint.bss 0x000000008c16153c 0x180 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(keysc.c.o) + .gint.bss 0x000000008c1616bc 0x88 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(tmu.c.o) + .gint.bss 0x000000008c161744 0x8 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(r61524.c.o) + .gint.bss 0x000000008c16174c 0x24 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(cpg.c.o) + .gint.bss 0x000000008c161770 0x68 /home/user/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-cg.a(dma.c.o) + 0x000000008c1617e0 . = ALIGN (0x10) + *fill* 0x000000008c1617d8 0x8 + 0x0000000000000300 _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/platform.elf elf32-sh) diff --git a/build-cg/platform.bin b/build-cg/platform.bin new file mode 100755 index 0000000..4f7d4d6 Binary files /dev/null and b/build-cg/platform.bin differ diff --git a/build-cg/src/collide.c.d b/build-cg/src/collide.c.d new file mode 100644 index 0000000..3b02144 --- /dev/null +++ b/build-cg/src/collide.c.d @@ -0,0 +1 @@ +build-cg/src/collide.c.o: src/collide.c diff --git a/build-cg/src/collide.c.o b/build-cg/src/collide.c.o new file mode 100644 index 0000000..d75da40 Binary files /dev/null and b/build-cg/src/collide.c.o differ diff --git a/build-cg/src/draw.c.d b/build-cg/src/draw.c.d new file mode 100644 index 0000000..a1a0f8f --- /dev/null +++ b/build-cg/src/draw.c.d @@ -0,0 +1 @@ +build-cg/src/draw.c.o: src/draw.c diff --git a/build-cg/src/draw.c.o b/build-cg/src/draw.c.o new file mode 100644 index 0000000..f2de1b8 Binary files /dev/null and b/build-cg/src/draw.c.o differ diff --git a/build-cg/src/levels.c.d b/build-cg/src/levels.c.d new file mode 100644 index 0000000..0ce3881 --- /dev/null +++ b/build-cg/src/levels.c.d @@ -0,0 +1,3 @@ +build-cg/src/levels.c.o: src/levels.c src/levels.h + +src/levels.h: diff --git a/build-cg/src/levels.c.o b/build-cg/src/levels.c.o new file mode 100644 index 0000000..d0016ed Binary files /dev/null and b/build-cg/src/levels.c.o differ diff --git a/build-cg/src/main.c.d b/build-cg/src/main.c.d new file mode 100644 index 0000000..4eae9d9 --- /dev/null +++ b/build-cg/src/main.c.d @@ -0,0 +1,7 @@ +build-cg/src/main.c.o: src/main.c src/draw.h src/collide.h src/levels.h + +src/draw.h: + +src/collide.h: + +src/levels.h: diff --git a/build-cg/src/main.c.o b/build-cg/src/main.c.o new file mode 100644 index 0000000..3fed67e Binary files /dev/null and b/build-cg/src/main.c.o differ diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..e18c47e --- /dev/null +++ b/build.sh @@ -0,0 +1,4 @@ +#/bin/#!/usr/bin/env bash +rm src/levels.c +lua5.3 levels.lua >> src/levels.c +fxsdk build-cg diff --git a/levels.lua b/levels.lua new file mode 100644 index 0000000..1654b51 --- /dev/null +++ b/levels.lua @@ -0,0 +1,29 @@ +levels = {[[ +0000000000 +0........0 +0........0 +0........0 +0........0 +0........0 +0........0 +0s.......0 +0........0 +0000000000 +]] +} + +to_write = "" + +--remove all "\n" from level strings +for i, v in ipairs(levels) do + v = string.gsub(v, "\n", "") + to_write = to_write.." case "..(i-1)..":\n level = \""..v.."\";\n break;" +end + +--finish and write +to_write = [[#include "levels.h" +void get_level(unsigned char level_id, char level[]) { + switch (level_id) + { +]]..to_write.."\n }\n}\n" +io.write(to_write) diff --git a/platform.g3a b/platform.g3a new file mode 100644 index 0000000..3e42ba4 Binary files /dev/null and b/platform.g3a differ diff --git a/project.cfg b/project.cfg new file mode 100644 index 0000000..4090d80 --- /dev/null +++ b/project.cfg @@ -0,0 +1,84 @@ +#--- +# fxSDK project configuration file for platform +#--- + +# Project name, should be at most 8 bytes long. +# (You can also specify NAME_G1A or NAME_G3A to override individually.) +NAME := platform + +# 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 := @PLATFRM + +# 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 := sh3eb-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 := + +# Base linker flags for the fxSDK, you usually want to keep these. +LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS) -lgint-fx -lgcc +LDFLAGS_CG := -T fxcg50.ld -lgint-cg $(LIBS) -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 name "hexa.png", you might write: +# +# FONT.hexa.png = charset:print grid:size:3x5 grid.padding:1 diff --git a/src/collide.c b/src/collide.c new file mode 100644 index 0000000..cd93261 --- /dev/null +++ b/src/collide.c @@ -0,0 +1,14 @@ +#define PLAYER_SIDES 11 + +char collide_with(int x, int y, char level[], char tile, unsigned int level_width) +{ + if ((level[(int)(x/8) + (int)(y/8) * level_width] == tile) || + (level[(int)(x/8) + (int)((y+PLAYER_SIDES)/8) * level_width] == tile) || + (level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES)/8) * level_width] == tile) || + (level[(int)((x+PLAYER_SIDES)/8) + (int)(y/8) * level_width] == tile) || + (level[(int)(x/8) + (int)((y+PLAYER_SIDES/2)/8) * level_width] == tile) || + (level[(int)((x+PLAYER_SIDES/2)/8) + (int)(y/8) * level_width] == tile) || + (level[(int)((x+PLAYER_SIDES/2)/8) + (int)((y+PLAYER_SIDES)/8) * level_width] == tile) || + (level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES/2)/8) * level_width] == tile)) return 1; + else return 0; +} diff --git a/src/collide.h b/src/collide.h new file mode 100644 index 0000000..f90f289 --- /dev/null +++ b/src/collide.h @@ -0,0 +1 @@ +char collide(int x, int y, char level[], char tile, unsigned int level_width); diff --git a/src/draw.c b/src/draw.c new file mode 100644 index 0000000..779fc8b --- /dev/null +++ b/src/draw.c @@ -0,0 +1,44 @@ +#include + +#define PLAYER_SIDES 11 +#define BG_COLOR 0 + +extern image_t img_player; //player texture, 24x24 + +void draw_player(int old_x, int old_y, int x, int y) +{ + if (old_x != x || old_y != y) + { + drect(old_x * 2, old_y * 2, (old_x + PLAYER_SIDES) * 2 + 1, + (old_y + PLAYER_SIDES) * 2 + 1, BG_COLOR); + dimage(x * 2, y * 2, &img_player); + } +} + +void draw_level(char level[], int *player_x, int *player_y) +{ + extern image_t img_ground; //ground texture, 16x16 + unsigned int i = 0; + unsigned int x = 0; + unsigned int y = 0; + while (i != 100) + { + switch (level[i]) + { + case '0': + dimage(x * 2, y * 2, &img_ground); + break; + case 's': + *player_x = x + 2; + *player_y = y + 4; + break; + } + x += 8; + if (x == 80) + { + x = 0; + y += 8; + } + i++; + } +} diff --git a/src/draw.h b/src/draw.h new file mode 100644 index 0000000..ba84a11 --- /dev/null +++ b/src/draw.h @@ -0,0 +1,2 @@ +void draw_player(int old_x, int old_y, int x, int y); +void draw_level(char level[], int *player_x, int *player_y); diff --git a/src/levels.c b/src/levels.c new file mode 100644 index 0000000..02694d9 --- /dev/null +++ b/src/levels.c @@ -0,0 +1,9 @@ +#include "levels.h" +void get_level(unsigned char level_id, char level[]) { + switch (level_id) + { + case 0: + level = "00000000000........00........00........00........00........00........00s.......00........00000000000"; + break; + } +} diff --git a/src/levels.h b/src/levels.h new file mode 100644 index 0000000..9c051de --- /dev/null +++ b/src/levels.h @@ -0,0 +1 @@ +void get_level(unsigned char level_id, char level[]); diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..2bec1c8 --- /dev/null +++ b/src/main.c @@ -0,0 +1,61 @@ +#include +#include "draw.h" +#include "collide.h" +#include "levels.h" + +void jump_test(char *jump_pressed, char *jump_buffer); //test if jump pressed + +int main(void) +{ + char level[100]; + char *level_ptr; + level_ptr = level; + unsigned char level_id = 0; + char jump_pressed = 0; //avoid holding jump + char jump_buffer = 0; //jump buffer, last 3 frames + double vspd = 0; //player vertical speed + char hspd = 0; //player horizontal speed + char on_ground = 6; //remember if player is on solid + int player_x = 0; + int player_y = 0; + int old_x, old_y; + const double jump_spd = -4; //default jump speed + const double grav = 0.2; + dclear(0); //0 -> black + draw_level(level, &player_x, &player_y); + old_x = player_x + 1; //offset to draw it on first cycle + old_y = player_y; + get_level(level_id, level); + while (1) { + draw_player(old_x, old_y, player_x, player_y); + dupdate(); + old_x = player_x; + old_y = player_y; + pollevent(); + //horizontal movement + hspd = 0; + if (keydown(KEY_LEFT)) hspd--; + if (keydown(KEY_RIGHT)) hspd++; + if (!collide(player_x + hspd, player_y, level, '0', 10)) + { + player_x += hspd; + } + //vertical movement + jump_test(&jump_pressed, &jump_buffer); + if (jump_buffer) {}//if jump is pressed + if (keydown(KEY_EXIT)) return 0; //exit + } +} + +void jump_test(char *jump_pressed, char *jump_buffer) +{ + if (keydown(KEY_SHIFT)) + { + if (!*jump_pressed) + { + *jump_pressed = 1; + *jump_buffer = 3; + } + } + else *jump_pressed = 0; +} diff --git a/transfer.sh b/transfer.sh new file mode 100755 index 0000000..515c56d --- /dev/null +++ b/transfer.sh @@ -0,0 +1,3 @@ +#/bin/#!/usr/bin/env bash +cp platform.g3a /media/user/disk/ +umount /media/user/disk/