diff --git a/MARIOBRS.g1a b/MARIOBRS.g1a new file mode 100644 index 0000000..9e9d52f Binary files /dev/null and b/MARIOBRS.g1a differ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4aae6be --- /dev/null +++ b/Makefile @@ -0,0 +1,149 @@ +#! /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 +cf := -mb -ffreestanding -nostdlib -Wall -Wextra \ + -fstrict-volatile-bitfields $(CFLAGS) +cf-fx := $(cf) -m3 -DFX9860G +cf-cg := $(cf) -m4-nofpu -DFXCG50 + +# Linker flags +lf-fx := -Tfx9860g.ld -lgint-fx $(LDFLAGS) -lgcc -Wl,-Map=build-fx/map +lf-cg := -Tfxcg50.ld -lgint-cg $(LDFLAGS) -lgcc -Wl,-Map=build-cg/map + +dflags = -MMD -MT $@ -MF $(@:.o=.d) -MP +cpflags := -R .bss -R .gint_bss + +g1af := -i "$(ICON_FX)" -n "$(NAME)" --internal="$(INTERNAL)" +g3af := -n basic:"$(NAME)" -i uns:"$(ICON_CG_UNS)" -i sel:"$(ICON_CG_SEL)" + +# +# File listings +# + +null := +filename := $(subst $(null) $(null),-,$(NAME)) + +elf = $(dir $<)$(filename).elf +bin = $(dir $<)$(filename).bin +target-fx := $(filename).g1a +target-cg := $(filename).g3a + +# 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:%.c=build-fx/%.o) $(assets-fx:assets-fx/%=build-fx/assets/%.o) +obj-cg := $(src:%.c=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) + + sh3eb-elf-gcc -o $(elf) $(obj-fx) $(cf-fx) $(lf-fx) + sh3eb-elf-objcopy -O binary $(cpflags) $(elf) $(bin) + fxg1a $(bin) -o $@ $(g1af) + +$(target-cg): $(obj-cg) $(deps-cg) + + sh4eb-elf-gcc -o $(elf) $(obj-cg) $(cf-cg) $(lf-cg) + sh4eb-elf-objcopy -O binary $(cpflags) $(elf) $(bin) + mkg3a $(g3af) $(bin) $@ + +# C sources +build-fx/%.o: %.c + @ mkdir -p $(dir $@) + sh3eb-elf-gcc -c $< -o $@ $(cf-fx) $(dflags) +build-cg/%.o: %.c + @ mkdir -p $(dir $@) + sh4eb-elf-gcc -c $< -o $@ $(cf-cg) $(dflags) + +# Assembler sources +build-fx/%.o: %.s + @ mkdir -p $(dir $@) + sh3eb-elf-gcc -c $< -o $@ +build-fx/%.o: %.S + @ mkdir -p $(dir $@) + sh3eb-elf-gcc -c $< -o $@ $(sflags) +build-cg/%.o: %.s + @ mkdir -p $(dir $@) + sh4eb-elf-gcc -c $< -o $@ +build-cg/%.o: %.S + @ mkdir -p $(dir $@) + sh4eb-elf-gcc -c $< -o $@ $(sflags) + +# Images +build-fx/assets/img/%.o: assets-fx/img/% + @ mkdir -p $(dir $@) + fxconv -i $< -o $@ --fx name:img_$(basename $*) + +build-cg/assets/img/%.o: assets-cg/img/% + @ mkdir -p $(dir $@) + fxconv -i $< -o $@ --cg name:img_$(basename $*) + +# Fonts +build-fx/assets/fonts/%.o: assets-fx/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ name:font_$(basename $*) $(FONT.$*) + +build-cg/assets/fonts/%.o: assets-cg/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ name:font_$(basename $*) $(FONT.$*) + +# +# 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: + @ rm -rf build* +distclean: clean + @ rm -f $(target-fx) $(target-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-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/assets-fx/img/level.png b/assets-fx/img/level.png new file mode 100644 index 0000000..241be41 Binary files /dev/null and b/assets-fx/img/level.png differ diff --git a/assets-fx/img/main.png b/assets-fx/img/main.png new file mode 100644 index 0000000..e31b27c Binary files /dev/null and b/assets-fx/img/main.png differ diff --git a/assets-fx/img/mario.png b/assets-fx/img/mario.png new file mode 100644 index 0000000..759e11c Binary files /dev/null and b/assets-fx/img/mario.png differ diff --git a/assets-fx/img/sprites.png b/assets-fx/img/sprites.png new file mode 100644 index 0000000..c87747d Binary files /dev/null and b/assets-fx/img/sprites.png differ diff --git a/assets-fx/img/tuyau.png b/assets-fx/img/tuyau.png new file mode 100644 index 0000000..74439f6 Binary files /dev/null and b/assets-fx/img/tuyau.png differ diff --git a/build-fx/assets/img/level.png.o b/build-fx/assets/img/level.png.o new file mode 100644 index 0000000..b115b1a Binary files /dev/null and b/build-fx/assets/img/level.png.o differ diff --git a/build-fx/assets/img/main.png.o b/build-fx/assets/img/main.png.o new file mode 100644 index 0000000..ef0541c Binary files /dev/null and b/build-fx/assets/img/main.png.o differ diff --git a/build-fx/assets/img/mario.png.o b/build-fx/assets/img/mario.png.o new file mode 100644 index 0000000..5d0192e Binary files /dev/null and b/build-fx/assets/img/mario.png.o differ diff --git a/build-fx/assets/img/sprites.png.o b/build-fx/assets/img/sprites.png.o new file mode 100644 index 0000000..fe855e6 Binary files /dev/null and b/build-fx/assets/img/sprites.png.o differ diff --git a/build-fx/assets/img/tuyau.png.o b/build-fx/assets/img/tuyau.png.o new file mode 100644 index 0000000..cb362c4 Binary files /dev/null and b/build-fx/assets/img/tuyau.png.o differ diff --git a/build-fx/map b/build-fx/map new file mode 100644 index 0000000..91a3a2b --- /dev/null +++ b/build-fx/map @@ -0,0 +1,552 @@ +Archive member included to satisfy reference by file (symbol) + +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + build-fx/src/main.o (dupdate) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) + build-fx/src/tile.o (dsubimage) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + build-fx/src/main.o (dclear) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + (start) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (gint_panic) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (gint_install) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (hw_detect) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (gint_exch_tlbh) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (tlb_mapped_memory) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) (dfont) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dprint.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) (dprint) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + build-fx/src/main.o (timer_setup) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dprint.c.o) (vsnprintf) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (memcpy) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) (t6k11_display) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (clock_freq) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) (dtext) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti-asm.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) (bopti_asm_mono) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) (topti_render) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) (bopti_render_clip) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o) (masks) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (gint_setvbr) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) (__os_version) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (gint_intlevel) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (gint_inth_7305) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (inth_tmu) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (gint_font5x7) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) (topti_asm_text) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (__movmemSI24) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (__udivdi3) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_umoddi3.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) (__umoddi3) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (__udivsi3) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (__udiv_qrnnd_16) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (__clz_tab) + +Discarded input sections + + .comment 0x0000000000000000 0x12 build-fx/src/tile.o + .comment 0x0000000000000000 0x12 build-fx/src/world.o + .comment 0x0000000000000000 0x12 build-fx/src/main.o + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dprint.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_umoddi3.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + +Memory Configuration + +Name Origin Length Attributes +rom 0x0000000000300200 0x0000000000037000 xr +ram 0x0000000008100000 0x0000000000002000 rw +vbr 0x000000008800e000 0x0000000000001400 xrw +rram 0x000000008800f400 0x0000000000000c00 xrw +ilram 0x00000000e5200000 0x0000000000001000 xrw +xram 0x00000000e5007000 0x0000000000002000 xrw +yram 0x00000000e5017000 0x0000000000002000 xrw +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD build-fx/src/tile.o +LOAD build-fx/src/world.o +LOAD build-fx/src/main.o +LOAD build-fx/assets/img/mario.png.o +LOAD build-fx/assets/img/main.png.o +LOAD build-fx/assets/img/tuyau.png.o +LOAD build-fx/assets/img/level.png.o +LOAD build-fx/assets/img/sprites.png.o +LOAD /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a +LOAD /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a + 0x0000000000300000 _brom = 0x300000 + 0x0000000000008dd0 _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + +.pretext 0x0000000000300200 0x8d0 + *(.pretext.entry) + .pretext.entry + 0x0000000000300200 0x1cc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + 0x0000000000300200 start + *(.pretext) + .pretext 0x00000000003003cc 0x30 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .pretext 0x00000000003003fc 0xd0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + 0x00000000003003fc hw_detect + .pretext 0x00000000003004cc 0x110 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x00000000003004cc dfont + 0x00000000003004e4 charset_size + 0x0000000000300510 charset_decode + 0x000000000030057e topti_offset + .pretext 0x00000000003005dc 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + 0x00000000003005dc dtext + .pretext 0x0000000000300628 0x2f0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x00000000003006ca topti_render + .pretext 0x0000000000300918 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + 0x0000000000300918 __os_version + 0x0000000000300924 malloc + 0x0000000000300930 free + 0x000000000030093c calloc + 0x0000000000300948 realloc + 0x0000000000300954 BFile_Remove + 0x0000000000300960 BFile_Create + 0x000000000030096c BFile_Open + 0x0000000000300978 BFile_Close + 0x0000000000300984 BFile_Write + 0x0000000000300990 BFile_Read + .pretext 0x00000000003009a0 0x130 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + 0x0000000000300ab0 topti_asm_text + 0x0000000000300ad0 _btors = . + *(.ctors .ctors.*) + 0x0000000000300ad0 _mtors = . + *(.dtors .dtors.*) + 0x0000000000300ad0 _etors = . + +.text 0x0000000000300ad0 0x2a78 + 0x0000000000300ad0 _gint_exch_tlbh_start = . + *(.gint.exch_tlbh) + .gint.exch_tlbh + 0x0000000000300ad0 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.s.o) + 0x0000000000300ad0 gint_exch_tlbh + 0x000000000000004c _gint_exch_tlbh_size = ABSOLUTE ((. - _gint_exch_tlbh_start)) + *(.text .text.*) + .text 0x0000000000300b1c 0x34 build-fx/src/tile.o + 0x0000000000300b1c tuyau_draw + .text 0x0000000000300b50 0x68 build-fx/src/world.o + 0x0000000000300b50 world_get + 0x0000000000300b80 display_cell + .text 0x0000000000300bb8 0x8 build-fx/src/main.o + 0x0000000000300bb8 callback + .text.startup 0x0000000000300bc0 0xc0 build-fx/src/main.o + 0x0000000000300bc0 main + .text 0x0000000000300c80 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + 0x0000000000300c80 dupdate + 0x0000000000300c98 dupdate_noint + .text 0x0000000000300ca4 0xc8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) + 0x0000000000300ca4 dimage + 0x0000000000300cf8 dsubimage + .text 0x0000000000300d6c 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + 0x0000000000300d6c dclear + .text 0x0000000000300db8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .text 0x0000000000300db8 0x1c4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) + 0x0000000000300f48 gint_panic + 0x0000000000300f58 gint_panic_set + 0x0000000000300f64 gint_exc_catch + 0x0000000000300f70 gint_exc_skip + .text 0x0000000000300f7c 0x17c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + 0x0000000000301030 gint_install + 0x00000000003010e0 gint_unload + .text 0x00000000003010f8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .text 0x00000000003010f8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.s.o) + .text 0x00000000003010f8 0x1f4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + 0x00000000003010f8 tlb_addr + 0x000000000030110c tlb_data + 0x0000000000301120 tlb_mapped_memory + 0x00000000003011f4 utlb_addr + 0x0000000000301204 utlb_data + 0x0000000000301214 utlb_mapped_memory + .text 0x00000000003012ec 0x9c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x00000000003012ec dsize + .text 0x0000000000301388 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dprint.c.o) + 0x0000000000301388 dprint + .text 0x00000000003013e0 0x56c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + 0x0000000000301700 timer_setup + 0x0000000000301790 timer_delay + 0x00000000003017f0 timer_start + 0x0000000000301824 timer_reload + 0x0000000000301844 timer_pause + 0x0000000000301878 timer_stop + 0x00000000003018d4 timer_timeout + 0x00000000003018e0 timer_address + 0x000000000030191c timer_clear + .text 0x000000000030194c 0xce4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + 0x0000000000302348 kprint_opt + 0x0000000000302490 kprint + 0x0000000000302568 kvsprint + 0x00000000003025b0 sprintf + 0x00000000003025d8 vsprintf + 0x00000000003025f8 snprintf + 0x0000000000302618 vsnprintf + .text 0x0000000000302630 0xdc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + 0x0000000000302630 memcpy + 0x00000000003026ea _memmove + 0x00000000003026ee _memcmp + 0x00000000003026f2 memset + .text 0x000000000030270c 0x1d8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + 0x00000000003027a4 t6k11_display + 0x0000000000302878 t6k11_contrast + 0x00000000003028a4 t6k11_backlight + .text 0x00000000003028e4 0x150 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x0000000000302a28 clock_freq + .text 0x0000000000302a34 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .text 0x0000000000302a34 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti-asm.s.o) + 0x0000000000302a34 bopti_asm_mono + 0x0000000000302a5a bopti_asm_mono_alpha + .text 0x0000000000302a8c 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .text 0x0000000000302a8c 0x410 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o) + 0x0000000000302a8c bopti_grid + 0x0000000000302c00 bopti_render + 0x0000000000302d30 bopti_render_clip + 0x0000000000302e44 bopti_render_noclip + .text 0x0000000000302e9c 0x9c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o) + 0x0000000000302e9c masks + .text 0x0000000000302f38 0x2c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + 0x0000000000302f38 gint_setvbr + .text 0x0000000000302f64 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .text 0x0000000000302f64 0x78 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x0000000000302f64 gint_intlevel + 0x0000000000302fb8 gint_inthandler + .text 0x0000000000302fdc 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .text 0x0000000000302fdc 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .text 0x0000000000302fdc 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .text 0x0000000000302fdc 0x78 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + 0x0000000000302fdc __movstr + 0x0000000000302fdc __movmem + 0x0000000000303010 __movmemSI64 + 0x0000000000303010 __movstrSI64 + 0x0000000000303014 __movstrSI60 + 0x0000000000303014 __movmemSI60 + 0x0000000000303018 __movmemSI56 + 0x0000000000303018 __movstrSI56 + 0x000000000030301c __movstrSI52 + 0x000000000030301c __movmemSI52 + 0x0000000000303020 __movstrSI48 + 0x0000000000303020 __movmemSI48 + 0x0000000000303024 __movstrSI44 + 0x0000000000303024 __movmemSI44 + 0x0000000000303028 __movstrSI40 + 0x0000000000303028 __movmemSI40 + 0x000000000030302c __movstrSI36 + 0x000000000030302c __movmemSI36 + 0x0000000000303030 __movmemSI32 + 0x0000000000303030 __movstrSI32 + 0x0000000000303034 __movmemSI28 + 0x0000000000303034 __movstrSI28 + 0x0000000000303038 __movstrSI24 + 0x0000000000303038 __movmemSI24 + 0x000000000030303c __movmemSI20 + 0x000000000030303c __movstrSI20 + 0x0000000000303040 __movstrSI16 + 0x0000000000303040 __movmemSI16 + 0x0000000000303044 __movmemSI12 + 0x0000000000303044 __movstrSI12 + 0x0000000000303048 __movmemSI8 + 0x0000000000303048 __movstrSI8 + 0x000000000030304c __movmemSI4 + 0x000000000030304c __movstrSI4 + .text 0x0000000000303054 0x1f0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + 0x0000000000303054 __udivdi3 + .text 0x0000000000303244 0x234 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_umoddi3.o) + 0x0000000000303244 __umoddi3 + .text 0x0000000000303478 0x6c /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + 0x000000000030349a __udivsi3 + *fill* 0x00000000003034e4 0x4 + .text 0x00000000003034e8 0x60 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + 0x00000000003034e8 __udiv_qrnnd_16 + .text 0x0000000000303548 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + *(C P) + +.gint.blocks 0x0000000000303550 0x120 + *(.gint.blocks) + .gint.blocks 0x0000000000303550 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + 0x0000000000303550 gint_inth_7305 + 0x0000000000303570 gint_inth_7705 + .gint.blocks 0x0000000000303590 0xe0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + 0x0000000000303590 inth_tmu + 0x0000000000303610 inth_etmu2 + 0x0000000000303630 inth_etmu_help + 0x0000000000303650 inth_etmux + +.gint.drivers 0x0000000000303670 0x6c + 0x0000000000303670 _bdrv = . + *(.gint.drivers.0) + *(.gint.drivers.1) + .gint.drivers.1 + 0x0000000000303670 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x0000000000303670 drv_cpg + *(.gint.drivers.2) + .gint.drivers.2 + 0x0000000000303694 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + 0x0000000000303694 drv_tmu + *(.gint.drivers.3) + *(.gint.drivers.4) + *(.gint.drivers.5) + .gint.drivers.5 + 0x00000000003036b8 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + 0x00000000003036b8 drv_t6k11 + *(.gint.drivers.6) + 0x00000000003036dc _edrv = . + +.rodata 0x00000000003036dc 0x5fcc + *(.rodata.4) + *(.rodata .rodata.*) + .rodata 0x00000000003036dc 0x5000 build-fx/src/world.o + .rodata 0x00000000003086dc 0x64 build-fx/assets/img/mario.png.o + 0x00000000003086dc img_mario + 0x0000000000308740 img_mario_end + .rodata 0x0000000000308740 0x404 build-fx/assets/img/main.png.o + 0x0000000000308740 img_main + 0x0000000000308b44 img_main_end + .rodata 0x0000000000308b44 0x44 build-fx/assets/img/tuyau.png.o + 0x0000000000308b44 img_tuyau + 0x0000000000308b88 img_tuyau_end + .rodata 0x0000000000308b88 0x404 build-fx/assets/img/level.png.o + 0x0000000000308b88 img_level + 0x0000000000308f8c img_level_end + .rodata 0x0000000000308f8c 0x84 build-fx/assets/img/sprites.png.o + 0x0000000000308f8c img_sprites + 0x0000000000309010 img_sprites_end + .rodata 0x0000000000309010 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) + .rodata.str1.4 + 0x0000000000309018 0x11a /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) + 0x11e (size before relaxing) + *fill* 0x0000000000309132 0x2 + .rodata 0x0000000000309134 0x18 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .rodata.str1.4 + 0x000000000030914c 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .rodata.str1.4 + 0x0000000000309150 0x31 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + *fill* 0x0000000000309181 0x3 + .rodata.str1.4 + 0x0000000000309184 0x6 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + *fill* 0x000000000030918a 0x2 + .rodata.str1.4 + 0x000000000030918c 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .rodata 0x0000000000309190 0x10 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o) + .rodata 0x00000000003091a0 0x408 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o) + 0x00000000003091a0 gint_font5x7 + 0x00000000003095a8 gint_font5x7_end + .rodata 0x00000000003095a8 0x100 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + 0x00000000003095a8 __clz_tab + +.rela.dyn 0x00000000003096a8 0x0 + .rela.text.startup + 0x00000000003096a8 0x0 build-fx/src/main.o + .rela.pretext.entry + 0x00000000003096a8 0x0 build-fx/src/main.o + .rela.text 0x00000000003096a8 0x0 build-fx/src/main.o + 0x0000000008100000 . = ORIGIN (ram) + +.bss 0x0000000008100000 0x520 + 0x0000000008100000 _rbss = . + *(.bss COMMON) + .bss 0x0000000008100000 0x0 build-fx/src/tile.o + .bss 0x0000000008100000 0x0 build-fx/src/world.o + .bss 0x0000000008100000 0x0 build-fx/src/main.o + .bss 0x0000000008100000 0x400 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.s.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dprint.c.o) + .bss 0x0000000008100400 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .bss 0x0000000008100400 0x114 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti-asm.s.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_umoddi3.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + .bss 0x0000000008100514 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + *(B R) + 0x0000000008100520 . = ALIGN (0x10) + *fill* 0x0000000008100514 0xc + 0x0000000000000520 _sbss = SIZEOF (.bss) + +.data 0x0000000008100520 0x70 load address 0x00000000003096a8 + 0x00000000003096a8 _ldata = LOADADDR (.data) + 0x0000000008100520 _rdata = . + *(.data .data.*) + .data 0x0000000008100520 0x0 build-fx/src/tile.o + .data 0x0000000008100520 0x0 build-fx/src/world.o + .data 0x0000000008100520 0x0 build-fx/src/main.o + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.s.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dprint.c.o) + .data 0x0000000008100520 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .data 0x0000000008100520 0x68 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + 0x0000000008100520 kprint_formatters + .data 0x0000000008100588 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .data 0x0000000008100588 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .data 0x0000000008100588 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .data 0x0000000008100588 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .data 0x0000000008100588 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti-asm.s.o) + .data 0x0000000008100588 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x0000000008100588 topti_font + 0x000000000810058c gint_default_font + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_umoddi3.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + .data 0x0000000008100590 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + *(D) + 0x0000000008100590 . = ALIGN (0x10) + +.data.4 0x0000000008100590 0x0 load address 0x0000000000309718 + *(.data.4) + 0x0000000008100590 . = ALIGN (0x10) + 0x0000000000000070 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) + 0x00000000e5200000 . = ORIGIN (ilram) + +.ilram 0x00000000e5200000 0x0 load address 0x0000000000309718 + 0x0000000000309718 _lilram = LOADADDR (.ilram) + 0x00000000e5200000 _rilram = . + *(.ilram) + 0x00000000e5200000 . = ALIGN (0x10) + 0x00000000e5007000 . = ORIGIN (xram) + +.xram 0x00000000e5007000 0x0 load address 0x0000000000309718 + 0x0000000000309718 _lxram = LOADADDR (.xram) + 0x00000000e5007000 _rxram = . + *(.xram) + 0x00000000e5007000 . = ALIGN (0x10) + 0x00000000e5017000 . = ORIGIN (yram) + +.yram 0x00000000e5017000 0x0 load address 0x0000000000309718 + 0x0000000000309718 _lyram = LOADADDR (.yram) + 0x00000000e5017000 _ryram = . + *(.yram) + 0x00000000e5017000 . = ALIGN (0x10) + 0x0000000000000000 _silram = SIZEOF (.ilram) + 0x0000000000000000 _sxram = SIZEOF (.xram) + 0x0000000000000000 _syram = SIZEOF (.yram) + 0x000000008800df00 _gint_vbr = 0x8800df00 + 0x000000008800f400 . = ORIGIN (rram) + +.gint.data 0x000000008800f400 0x120 load address 0x0000000000309718 + 0x0000000000309718 _lgdata = LOADADDR (.gint.data) + 0x000000008800f400 _rgdata = . + *(.gint.data .gint.data.*) + .gint.data 0x000000008800f400 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + 0x000000008800f400 gint_vram + .gint.data 0x000000008800f404 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.c.o) + 0x000000008800f404 gint_exc_catcher + 0x000000008800f408 gint_exc_panic + .gint.data 0x000000008800f40c 0x70 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .gint.data 0x000000008800f47c 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .gint.data 0x000000008800f484 0x10 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x000000008800f484 SH7305_INTC + .gint.data.sh3 + 0x000000008800f494 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x000000008800f494 SH7705_INTC + *fill* 0x000000008800f4b8 0x8 + .gint.data 0x000000008800f4c0 0x60 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + 0x000000008800f520 . = ALIGN (0x10) + 0x0000000000000120 _sgdata = SIZEOF (.gint.data) + +.gint.bss 0x000000008800f520 0x110 load address 0x0000000000309838 + *(.gint.bss .gint.bss.*) + .gint.bss 0x000000008800f520 0x1c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .gint.bss 0x000000008800f53c 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + 0x000000008800f53c gint + .gint.bss 0x000000008800f57c 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .gint.bss 0x000000008800f604 0x1 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + *fill* 0x000000008800f605 0x3 + .gint.bss 0x000000008800f608 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x000000008800f630 . = ALIGN (0x10) + *fill* 0x000000008800f62c 0x4 + 0x0000000000000110 _sgbss = SIZEOF (.gint.bss) + +/DISCARD/ + *(.debug_info .debug_abbrev .debug_loc .debug_aranges .debug_ranges .debug_line .debug_str) + *(.jcr) + *(.eh_frame_hdr) + *(.eh_frame) + *(.comment) +OUTPUT(build-fx/src/MARIOBRS.elf elf32-sh) diff --git a/build-fx/src/MARIOBRS.bin b/build-fx/src/MARIOBRS.bin new file mode 100755 index 0000000..33bfaf1 Binary files /dev/null and b/build-fx/src/MARIOBRS.bin differ diff --git a/build-fx/src/main.d b/build-fx/src/main.d new file mode 100644 index 0000000..1b98fec --- /dev/null +++ b/build-fx/src/main.d @@ -0,0 +1 @@ +build-fx/src/main.o: src/main.c diff --git a/build-fx/src/main.o b/build-fx/src/main.o new file mode 100644 index 0000000..99945f7 Binary files /dev/null and b/build-fx/src/main.o differ diff --git a/build-fx/src/tile.d b/build-fx/src/tile.d new file mode 100644 index 0000000..2d8fe47 --- /dev/null +++ b/build-fx/src/tile.d @@ -0,0 +1,3 @@ +build-fx/src/tile.o: src/tile.c src/tile.h + +src/tile.h: diff --git a/build-fx/src/tile.o b/build-fx/src/tile.o new file mode 100644 index 0000000..fafc5e1 Binary files /dev/null and b/build-fx/src/tile.o differ diff --git a/build-fx/src/world.d b/build-fx/src/world.d new file mode 100644 index 0000000..b09411d --- /dev/null +++ b/build-fx/src/world.d @@ -0,0 +1,5 @@ +build-fx/src/world.o: src/world.c src/world.h src/tile.h + +src/world.h: + +src/tile.h: diff --git a/build-fx/src/world.o b/build-fx/src/world.o new file mode 100644 index 0000000..ba3ca0d Binary files /dev/null and b/build-fx/src/world.o differ diff --git a/project.cfg b/project.cfg new file mode 100644 index 0000000..f96d4de --- /dev/null +++ b/project.cfg @@ -0,0 +1,20 @@ +#--- +# fxSDK project configuration file for MARIOBRS +#--- + +# Project name, should be at most 8 bytes long. +NAME = MARIOBRS +# Internal name, should be '@' followed by at most 7 uppercase letters. +INTERNAL = MARIOBR + +# 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 + +# Additional compiler flags +CFLAGS = -std=c11 -Os +# Additional linker flags. This is followed by -lgcc. When using fxlib, add +# libfx.a to the projet directory and set LDFLAGS to "-L . -lfx". +LDFLAGS = diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..8041ed4 --- /dev/null +++ b/src/main.c @@ -0,0 +1,41 @@ +#include +#include +#include + +int callback(volatile void *arg) +{ + volatile int *has_ticked = arg; + *has_ticked = 1; + return 0; +} + +int main(void) +{ + volatile int has_ticked = 1; + int game_running = 1; + + timer_setup(0, timer_delay(0, 16667), timer_Po_4, callback, &has_ticked); + timer_start(0); + + while(game_running) + { + has_ticked=0; + + dclear(C_WHITE); + + world_draw(); + //ennemies_draw(); + //mario_draw(); + //ingame_draw(); + + dupdate(); + + keyboard_reload(); + ennemies_move(); + + + if(keydown(KEY_EXIT)) game_running = 0; + } + + timer_stop(0); +} \ No newline at end of file diff --git a/src/tile.c b/src/tile.c new file mode 100644 index 0000000..23be098 --- /dev/null +++ b/src/tile.c @@ -0,0 +1,9 @@ +#include "tile.h" + +#include + +void tuyau_draw(int state, int x, int y) +{ + extern image_t img_tuyau; + dsubimage(x,y, &img_tuyau, 8*state, 0, 8*(state+1), 8,0); +} \ No newline at end of file diff --git a/src/tile.h b/src/tile.h new file mode 100644 index 0000000..1df76a2 --- /dev/null +++ b/src/tile.h @@ -0,0 +1,21 @@ +#ifndef TILE_H +#define TILE_H + +#define TUYAU_H_TOP_LE 0 +#define TUYAU_H_TOP_RI 1 + +#define TUYAU_H_MID_LE 2 +#define TUYAU_H_MID_RI 3 + + +#define TUYAU_L_TOP_DO 4 +#define TUYAU_L_TOP_UP 5 + +#define TUYAU_L_MID_UP 6 +#define TUYAU_L_MID_DO 7 + +void tuyau_draw(int state, int x, int y); + + + +#endif \ No newline at end of file diff --git a/src/world.c b/src/world.c new file mode 100644 index 0000000..8f8922e --- /dev/null +++ b/src/world.c @@ -0,0 +1,24 @@ +#include "world.h" +#include "tile.h" + + +static world global = {0}; + +world_t world_get(int x, int y) +{ + if (0<=x && x<=W_SIZE_X && 0<=y && y<=W_SIZE_Y) + return global[x][y]; + else + { + world_t cell = {W_DEATH,0}; + return cell; + } +} + +void display_cell(int cx, int cy, int sx, int sy) +{ + world_t cell=world_get(cx,cy); + if (cell.type==W_TUYAU) + tuyau_draw(cell.state, sx, sy); +} + diff --git a/src/world.h b/src/world.h new file mode 100644 index 0000000..4551510 --- /dev/null +++ b/src/world.h @@ -0,0 +1,35 @@ +#ifndef WORLD_H +#define WORLD_H + +#include + +#define W_CELL_SIZEPX 8 +#define W_SIZE_X 160 +#define W_SIZE_Y 16 + +#define W_DEATH -1 +#define W_EMPTY 0 +#define W_FLOOR 1 +#define W_EARTH 2 +#define W_STONE 3 +#define W_BRICK 4 +#define W_BOX 5 +#define W_PLATEFORM 6 +#define W_TUYAU 7 + +typedef struct +{ + char type; + int state; // numéro de tile + int state2; // visible, invisible, téléporteur/en train de tirer (canon par exemple) +} world_t; + +typedef world_t world[W_SIZE_X][W_SIZE_Y]; + +world_t world_get(int x, int y); + +void display_cell(int cx, int cy, int sx, int sy); + +void world_set(world const * const w); + +#endif \ No newline at end of file