This commit is contained in:
Goacolou Pierre 2021-04-09 14:02:40 +02:00
commit 1f3eabcdcb
21 changed files with 1382 additions and 0 deletions

202
Makefile Normal file
View File

@ -0,0 +1,202 @@
#! /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 "$(TARGET_FX)" .g1a).elf
BIN_FX := $(ELF_FX:.elf=.bin)
ELF_CG := build-cg/$(shell basename "$(TARGET_CG)" .g3a).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)-g++ -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)-g++ -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)-g++ -c $< -o $@ $(CFLAGSFX) $(depflags)
build-cg/%.c.o: %.c
@ mkdir -p $(dir $@)
$(TOOLCHAIN_CG)-g++ -c $< -o $@ $(CFLAGSCG) $(depflags)
# Assembler sources
build-fx/%.s.o: %.s
@ mkdir -p $(dir $@)
$(TOOLCHAIN_FX)-g++ -c $< -o $@
build-cg/%.s.o: %.s
@ mkdir -p $(dir $@)
$(TOOLCHAIN_CG)-g++ -c $< -o $@
# Preprocessed assembler sources
build-fx/%.S.o: %.S
@ mkdir -p $(dir $@)
$(TOOLCHAIN_FX)-g++ -c $< -o $@ $(INCLUDE)
build-cg/%.S.o: %.S
@ mkdir -p $(dir $@)
$(TOOLCHAIN_CG)-g++ -c $< -o $@ $(INCLUDE)
# Images
build-fx/assets/img/%.o: assets-fx/img/%
@ mkdir -p $(dir $@)
fxconv --bopti-image $< -o $@ $(FXCONVFX) name:img_$(basename $*) $(IMG.$*)
build-cg/assets/img/%.o: assets-cg/img/%
@ mkdir -p $(dir $@)
fxconv --bopti-image $< -o $@ $(FXCONVCG) name:img_$(basename $*) $(IMG.$*)
# Fonts
build-fx/assets/fonts/%.o: assets-fx/fonts/%
@ mkdir -p $(dir $@)
fxconv -f $< -o $@ $(FXCONVFX) name:font_$(basename $*) $(FONT.$*)
build-cg/assets/fonts/%.o: assets-cg/fonts/%
@ mkdir -p $(dir $@)
fxconv -f $< -o $@ $(FXCONVCG) name:font_$(basename $*) $(FONT.$*)
# Binaries
build-fx/assets/bin/%.o: assets-fx/bin/%
@ mkdir -p $(dir $@)
fxconv -b $< -o $@ $(FXCONVFX) name:bin_$(basename $*) $(BIN.$*)
build-cg/assets/bin/%.o: assets-cg/bin/%
@ mkdir -p $(dir $@)
fxconv -b $< -o $@ $(FXCONVCG) name:bin_$(basename $*) $(BIN.$*)
# Custom conversions
build-fx/assets/%.o: assets-fx/%
@ mkdir -p $(dir $@)
fxconv --custom $< -o $@ $(FXCONVFX) type:$(subst /,,$(dir $*)) name:$(subst /,_,$(basename $*))
build-cg/assets/%.o: assets-cg/%
@ mkdir -p $(dir $@)
fxconv --custom $< -o $@ $(FXCONVCG) type:$(subst /,,$(dir $*)) name:$(subst /,_,$(basename $*))
#
# 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

202
Makefile (copie) Normal file
View File

@ -0,0 +1,202 @@
#! /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 "$(TARGET_FX)" .g1a).elf
BIN_FX := $(ELF_FX:.elf=.bin)
ELF_CG := build-cg/$(shell basename "$(TARGET_CG)" .g3a).elf
BIN_CG := $(ELF_CG:.elf=.bin)
# Source files
src := $(wildcard src/*.[csS] \
src/*/*.[csS] \
src/*/*/*.[csS] \
src/*/*/*/*.[csS])
assets-fx := $(wildcard assets-fx/*/*)
assets-cg := $(wildcard assets-cg/*/*)
# Object files
obj-fx := $(src:%=build-fx/%.o) \
$(assets-fx:assets-fx/%=build-fx/assets/%.o)
obj-cg := $(src:%=build-cg/%.o) \
$(assets-cg:assets-cg/%=build-cg/assets/%.o)
# Additional dependencies
deps-fx := $(ICON_FX)
deps-cg := $(ICON_CG_UNS) $(ICON_CG_SEL)
# All targets
all :=
ifneq "$(wildcard build-fx)" ""
all += all-fx
endif
ifneq "$(wildcard build-cg)" ""
all += all-cg
endif
#
# Build rules
#
all: $(all)
all-fx: $(TARGET_FX)
all-cg: $(TARGET_CG)
$(TARGET_FX): $(obj-fx) $(deps-fx)
@ mkdir -p $(dir $@)
$(TOOLCHAIN_FX)-gcc -o $(ELF_FX) $(obj-fx) $(CFLAGSFX) $(LDFLAGSFX)
$(TOOLCHAIN_FX)-objcopy -O binary $(BINFLAGS) $(ELF_FX) $(BIN_FX)
fxg1a $(BIN_FX) -o $@ $(G1AF)
$(TARGET_CG): $(obj-cg) $(deps-cg)
@ mkdir -p $(dir $@)
$(TOOLCHAIN_CG)-gcc -o $(ELF_CG) $(obj-cg) $(CFLAGSCG) $(LDFLAGSCG)
$(TOOLCHAIN_CG)-objcopy -O binary $(BINFLAGS) $(ELF_CG) $(BIN_CG)
mkg3a $(G3AF) $(BIN_CG) $@
# C sources
build-fx/%.c.o: %.c
@ mkdir -p $(dir $@)
$(TOOLCHAIN_FX)-gcc -c $< -o $@ $(CFLAGSFX) $(depflags)
build-cg/%.c.o: %.c
@ mkdir -p $(dir $@)
$(TOOLCHAIN_CG)-gcc -c $< -o $@ $(CFLAGSCG) $(depflags)
# Assembler sources
build-fx/%.s.o: %.s
@ mkdir -p $(dir $@)
$(TOOLCHAIN_FX)-gcc -c $< -o $@
build-cg/%.s.o: %.s
@ mkdir -p $(dir $@)
$(TOOLCHAIN_CG)-gcc -c $< -o $@
# Preprocessed assembler sources
build-fx/%.S.o: %.S
@ mkdir -p $(dir $@)
$(TOOLCHAIN_FX)-gcc -c $< -o $@ $(INCLUDE)
build-cg/%.S.o: %.S
@ mkdir -p $(dir $@)
$(TOOLCHAIN_CG)-gcc -c $< -o $@ $(INCLUDE)
# Images
build-fx/assets/img/%.o: assets-fx/img/%
@ mkdir -p $(dir $@)
fxconv --bopti-image $< -o $@ $(FXCONVFX) name:img_$(basename $*) $(IMG.$*)
build-cg/assets/img/%.o: assets-cg/img/%
@ mkdir -p $(dir $@)
fxconv --bopti-image $< -o $@ $(FXCONVCG) name:img_$(basename $*) $(IMG.$*)
# Fonts
build-fx/assets/fonts/%.o: assets-fx/fonts/%
@ mkdir -p $(dir $@)
fxconv -f $< -o $@ $(FXCONVFX) name:font_$(basename $*) $(FONT.$*)
build-cg/assets/fonts/%.o: assets-cg/fonts/%
@ mkdir -p $(dir $@)
fxconv -f $< -o $@ $(FXCONVCG) name:font_$(basename $*) $(FONT.$*)
# Binaries
build-fx/assets/bin/%.o: assets-fx/bin/%
@ mkdir -p $(dir $@)
fxconv -b $< -o $@ $(FXCONVFX) name:bin_$(basename $*) $(BIN.$*)
build-cg/assets/bin/%.o: assets-cg/bin/%
@ mkdir -p $(dir $@)
fxconv -b $< -o $@ $(FXCONVCG) name:bin_$(basename $*) $(BIN.$*)
# Custom conversions
build-fx/assets/%.o: assets-fx/%
@ mkdir -p $(dir $@)
fxconv --custom $< -o $@ $(FXCONVFX) type:$(subst /,,$(dir $*)) name:$(subst /,_,$(basename $*))
build-cg/assets/%.o: assets-cg/%
@ mkdir -p $(dir $@)
fxconv --custom $< -o $@ $(FXCONVCG) type:$(subst /,,$(dir $*)) name:$(subst /,_,$(basename $*))
#
# 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

BIN
assets-cg/icon-cg-sel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
assets-cg/icon-cg-uns.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
assets-fx/icon-fx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
assets-fx/img/button.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

BIN
assets-fx/img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

BIN
assets-fx/img/nature.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

BIN
assets-fx/img/player.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
build-fx/link.bin Executable file

Binary file not shown.

BIN
build-fx/link.elf Executable file

Binary file not shown.

713
build-fx/map Normal file
View File

@ -0,0 +1,713 @@
Archive member included to satisfy reference by file (symbol)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o)
build-fx/src/main.c.o (_dprint)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o)
build-fx/src/main.c.o (_dimage)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o)
(_start)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o)
build-fx/src/main.c.o (_dupdate)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o)
build-fx/src/main.c.o (_dclear)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) (_dtext_opt)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dsubimage.c.o)
build-fx/src/main.c.o (_dsubimage)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) (_t6k11_display)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o)
build-fx/src/main.c.o (_getkey_opt)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) (_vsnprintf)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) (_gint_font5x7)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) (_mmu_uram)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) (_dtext)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) (_topti_glyph_index)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(osmenu.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) (_gint_osmenu)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(osmenu.c.o) (___Timer_Install)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) (_hw_detect)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) (_kinit)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tlbh.S.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o) (_gint_tlbh)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) (_topti_asm_text)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dsubimage.c.o) (_bopti_render)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray-scsp.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) (_bopti_gasm_mono_scsp)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o) (_pollevent)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) (_iokbd_scan)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memcpy.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) (_memcpy)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memset.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) (_memset)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o) (_drv_intc)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) (_timer_setup)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o) (_gint_exch)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o) (_gint_inth_7305)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o) (_gint_exc_panic)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpu.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o) (_cpu_setVBR)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) (_bopti_gasm_mono)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) (_masks)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-mono-scsp.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) (_bopti_asm_mono_scsp)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) (_bopti_asm_mono)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) (_clock_freq)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-tmu.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) (_inth_tmu)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-etmu.s.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) (_inth_etmu4)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o)
build-fx/src/main.c.o (___movmemSI20)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) (___udivdi3)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) (___umoddi3)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) (___udivsi3)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) (___udiv_qrnnd_16)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
/home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) (___clz_tab)
Discarded input sections
.group 0x0000000000000000 0xc build-fx/src/main.c.o
.group 0x0000000000000000 0xc build-fx/src/main.c.o
.comment 0x0000000000000000 0x12 build-fx/src/main.c.o
.eh_frame 0x0000000000000000 0x9c build-fx/src/main.c.o
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dsubimage.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(osmenu.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
.debug_info 0x0000000000000000 0x737 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.debug_abbrev 0x0000000000000000 0x218 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.debug_loc 0x0000000000000000 0x6eb /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.debug_aranges
0x0000000000000000 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.debug_ranges 0x0000000000000000 0xe0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.debug_line 0x0000000000000000 0x293 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.debug_str 0x0000000000000000 0x592 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.eh_frame 0x0000000000000000 0x84 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.debug_info 0x0000000000000000 0x746 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.debug_abbrev 0x0000000000000000 0x229 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.debug_loc 0x0000000000000000 0x679 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.debug_aranges
0x0000000000000000 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.debug_ranges 0x0000000000000000 0xf0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.debug_line 0x0000000000000000 0x2fe /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.debug_str 0x0000000000000000 0x592 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.eh_frame 0x0000000000000000 0xb0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.debug_info 0x0000000000000000 0x371 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
.debug_abbrev 0x0000000000000000 0xcf /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
.debug_aranges
0x0000000000000000 0x18 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
.debug_line 0x0000000000000000 0xd6 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
.debug_str 0x0000000000000000 0x50f /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
.comment 0x0000000000000000 0x12 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
Memory Configuration
Name Origin Length Attributes
rom 0x0000000000300200 0x000000000007d000 xr
ram 0x0000000008100200 0x0000000000001800 rw
rram 0x0000000000000000 0x0000000000000200 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/main.c.o
LOAD build-fx/assets/img/button.png.o
LOAD build-fx/assets/img/logo.png.o
LOAD build-fx/assets/img/nature.png.o
LOAD build-fx/assets/img/player.png.o
LOAD /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a
LOAD /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a
LOAD /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a
0x0000000000300000 _brom = 0x300000
0x0000000000006370 _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks))
.text 0x0000000000300200 0x4ce0
*(.text.entry)
.text.entry 0x0000000000300200 0x1ac /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o)
0x0000000000300200 _start
0x00000000003003ac _bctors = .
*(.ctors .ctors.*)
0x00000000003003ac _ectors = .
0x00000000003003ac _bdtors = .
*(.dtors .dtors.*)
0x00000000003003ac _edtors = .
0x00000000003003ac _gint_exch_start = .
*(.gint.exch)
*fill* 0x00000000003003ac 0x4
.gint.exch 0x00000000003003b0 0x90 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o)
0x00000000003003b0 _gint_exch
0x0000000000000094 _gint_exch_size = ABSOLUTE ((. - _gint_exch_start))
0x0000000000300440 _gint_tlbh_start = .
*(.gint.tlbh)
.gint.tlbh 0x0000000000300440 0x70 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tlbh.S.o)
0x0000000000300440 _gint_tlbh
0x0000000000000070 _gint_tlbh_size = ABSOLUTE ((. - _gint_tlbh_start))
*(.text .text.*)
.text 0x00000000003004b0 0x0 build-fx/src/main.c.o
.text._ZN6Player10check_animEv
0x00000000003004b0 0xb8 build-fx/src/main.c.o
0x00000000003004b0 __ZN6Player10check_animEv
.text._ZN6Player5printEv
0x0000000000300568 0x58 build-fx/src/main.c.o
0x0000000000300568 __ZN6Player5printEv
.text.startup 0x00000000003005c0 0x288 build-fx/src/main.c.o
0x00000000003005c0 _main
.text 0x0000000000300848 0xbc /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o)
0x0000000000300848 _dprint_opt
0x00000000003008b4 _dprint
.text 0x0000000000300904 0x30 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o)
0x0000000000300904 _dimage
.text 0x0000000000300934 0x3c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o)
0x0000000000300964 _gint_setrestart
.text 0x0000000000300970 0x3c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o)
0x0000000000300970 _dupdate
.text 0x00000000003009ac 0x64 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o)
0x00000000003009ac _dclear
.text 0x0000000000300a10 0x3b0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
0x0000000000300ab2 _topti_render
0x0000000000300cd8 _dtext_opt
.text 0x0000000000300dc0 0xc8 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dsubimage.c.o)
0x0000000000300dc0 _dsubimage
.text 0x0000000000300e88 0x240 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
0x0000000000300f00 _t6k11_display_v1
0x0000000000300fa4 _t6k11_display_v2
0x000000000030103c _t6k11_display
0x0000000000301060 _t6k11_contrast
0x0000000000301088 _t6k11_backlight
.text 0x00000000003010c8 0x29c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o)
0x00000000003010c8 _getkey_opt
0x0000000000301310 _getkey
0x000000000030131c _getkey_repeat
0x0000000000301358 _getkey_repeat_filter
.text 0x0000000000301364 0xcec /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o)
0x0000000000301d60 _kprint_opt
0x0000000000301ea8 _kprint
0x0000000000301f88 _kvsprint
0x0000000000301fd0 _sprintf
0x0000000000301ff8 _vsprintf
0x0000000000302018 _snprintf
0x0000000000302038 _vsnprintf
.text 0x0000000000302050 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o)
.text 0x0000000000302050 0x348 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
0x00000000003020ac _tlb_addr
0x00000000003020c0 _tlb_data
0x00000000003020d4 _tlb_mapped_memory
0x00000000003021a0 _tlb_translate
0x0000000000302220 _utlb_addr
0x0000000000302230 _utlb_data
0x0000000000302240 _utlb_mapped_memory
0x0000000000302310 _utlb_translate
0x000000000030235c _mmu_translate
0x0000000000302378 _mmu_uram
.text 0x0000000000302398 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o)
0x0000000000302398 _dtext
.text 0x00000000003023b8 0x208 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
0x00000000003023b8 _dfont
0x00000000003023d0 _topti_glyph_index
0x0000000000302418 _topti_offset
0x0000000000302474 _topti_utf8_next
0x0000000000302522 _dsize
.text 0x00000000003025c0 0xbc /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(osmenu.c.o)
0x000000000030266c _gint_osmenu
*fill* 0x000000000030267c 0x4
.text 0x0000000000302680 0x170 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o)
0x0000000000302680 _malloc
0x0000000000302694 _free
0x00000000003026a4 _calloc
0x00000000003026b4 _realloc
0x00000000003026c4 _BFile_Remove
0x00000000003026d4 _BFile_Create
0x00000000003026e4 _BFile_Open
0x00000000003026f4 _BFile_Close
0x0000000000302704 _BFile_Size
0x0000000000302714 _BFile_Write
0x0000000000302724 _BFile_Read
0x0000000000302734 _BFile_FindFirst
0x0000000000302744 _BFile_FindNext
0x0000000000302754 _BFile_FindClose
0x0000000000302764 ___Timer_Install
0x0000000000302774 ___Timer_Start
0x0000000000302784 ___Timer_Stop
0x0000000000302794 ___Timer_Deinstall
0x00000000003027a4 ___PutKeyCode
0x00000000003027b4 ___GetKeyWait
0x00000000003027c4 ___ClearKeyBuffer
0x00000000003027d4 ___GetVRAMAddress
.text 0x00000000003027f0 0xec /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o)
0x00000000003027f0 _hw_detect
.text 0x00000000003028dc 0x39c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o)
0x0000000000302af8 _kinit
0x0000000000302ba0 _gint_inthandler
0x0000000000302c00 _gint_switch
0x0000000000302c50 _kquit
.text 0x0000000000302c78 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tlbh.S.o)
*fill* 0x0000000000302c78 0x8
.text 0x0000000000302c80 0x130 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o)
0x0000000000302d90 _topti_asm_text
.text 0x0000000000302db0 0x52c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o)
0x0000000000302db0 _bopti_grid
0x0000000000302fe8 _bopti_render
0x0000000000303138 _bopti_render_scsp
0x0000000000303238 _bopti_clip
.text 0x00000000003032dc 0x88 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray-scsp.s.o)
0x00000000003032dc _bopti_gasm_mono_scsp
0x00000000003032f8 _bopti_gasm_mono_alpha_scsp
0x000000000030331a _bopti_gasm_gray_scsp
0x000000000030333c _bopti_gasm_gray_alpha_scsp
.text 0x0000000000303364 0x444 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
0x000000000030355c _pollevent
0x0000000000303698 _waitevent
0x00000000003036e4 _clearevents
0x0000000000303704 _keydown
0x0000000000303730 _keydown_all
0x000000000030376c _keydown_any
.text 0x00000000003037a8 0x124 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o)
0x00000000003037b4 _iokbd_row
0x000000000030389c _iokbd_scan
*fill* 0x00000000003038cc 0x4
.text 0x00000000003038d0 0xc0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memcpy.s.o)
0x00000000003038d0 _memcpy
.text 0x0000000000303990 0x56 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memset.s.o)
0x0000000000303990 _memset
*fill* 0x00000000003039e6 0x2
.text 0x00000000003039e8 0x1a0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
0x0000000000303ad4 _intc_priority
.text 0x0000000000303b88 0x7f4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
0x0000000000303edc _timer_delay
0x0000000000303f88 _timer_setup
0x0000000000304198 _timer_start
0x00000000003041d0 _timer_reload
0x0000000000304208 _timer_pause
0x0000000000304244 _timer_stop
0x00000000003042c0 _timer_wait
0x0000000000304328 _timer_spinwait
0x000000000030436c _timer_timeout
.text 0x000000000030437c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o)
.text 0x000000000030437c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o)
.text 0x000000000030437c 0x1ec /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o)
0x000000000030452c _gint_panic
0x000000000030453c _gint_panic_set
0x0000000000304550 _gint_exc_catch
0x000000000030455c _gint_exc_skip
*fill* 0x0000000000304568 0x8
.text 0x0000000000304570 0x30 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpu.s.o)
0x0000000000304570 _cpu_setCPUOPM
0x0000000000304582 _cpu_getCPUOPM
0x0000000000304594 _cpu_getSR
0x000000000030459a _cpu_setSR
.text 0x00000000003045a0 0x150 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray.s.o)
0x00000000003045a0 _bopti_gasm_mono
0x00000000003045dc _bopti_gasm_mono_alpha
0x000000000030462c _bopti_gasm_gray
0x0000000000304680 _bopti_gasm_gray_alpha
.text 0x00000000003046f0 0x8c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o)
0x00000000003046f0 _masks
.text 0x000000000030477c 0x2a /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-mono-scsp.s.o)
0x000000000030477c _bopti_asm_mono_scsp
0x000000000030478e _bopti_asm_mono_alpha_scsp
.text 0x00000000003047a6 0x58 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o)
0x00000000003047a6 _bopti_asm_mono
0x00000000003047cc _bopti_asm_mono_alpha
*fill* 0x00000000003047fe 0x2
.text 0x0000000000304800 0x178 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
0x000000000030496c _clock_freq
.text 0x0000000000304978 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-tmu.s.o)
.text 0x0000000000304978 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-etmu.s.o)
.text 0x0000000000304978 0x78 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o)
0x0000000000304978 ___movstr
0x0000000000304978 ___movmem
0x00000000003049ac ___movmemSI64
0x00000000003049ac ___movstrSI64
0x00000000003049b0 ___movstrSI60
0x00000000003049b0 ___movmemSI60
0x00000000003049b4 ___movmemSI56
0x00000000003049b4 ___movstrSI56
0x00000000003049b8 ___movstrSI52
0x00000000003049b8 ___movmemSI52
0x00000000003049bc ___movstrSI48
0x00000000003049bc ___movmemSI48
0x00000000003049c0 ___movstrSI44
0x00000000003049c0 ___movmemSI44
0x00000000003049c4 ___movstrSI40
0x00000000003049c4 ___movmemSI40
0x00000000003049c8 ___movstrSI36
0x00000000003049c8 ___movmemSI36
0x00000000003049cc ___movmemSI32
0x00000000003049cc ___movstrSI32
0x00000000003049d0 ___movmemSI28
0x00000000003049d0 ___movstrSI28
0x00000000003049d4 ___movstrSI24
0x00000000003049d4 ___movmemSI24
0x00000000003049d8 ___movmemSI20
0x00000000003049d8 ___movstrSI20
0x00000000003049dc ___movstrSI16
0x00000000003049dc ___movmemSI16
0x00000000003049e0 ___movmemSI12
0x00000000003049e0 ___movstrSI12
0x00000000003049e4 ___movmemSI8
0x00000000003049e4 ___movstrSI8
0x00000000003049e8 ___movmemSI4
0x00000000003049e8 ___movstrSI4
.text 0x00000000003049f0 0x1f0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
0x00000000003049f0 ___udivdi3
.text 0x0000000000304be0 0x234 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
0x0000000000304be0 ___umoddi3
.text 0x0000000000304e14 0x6c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o)
0x0000000000304e36 ___udivsi3
.text 0x0000000000304e80 0x60 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o)
0x0000000000304e80 ___udiv_qrnnd_16
.text 0x0000000000304ee0 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
*(C P)
.gint.blocks 0x0000000000304ee0 0x180
*(.gint.blocks)
.gint.blocks 0x0000000000304ee0 0x80 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o)
0x0000000000304ee0 _gint_inth_7305
0x0000000000304f20 _gint_inth_7705
.gint.blocks 0x0000000000304f60 0x80 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-tmu.s.o)
0x0000000000304f60 _inth_tmu
.gint.blocks 0x0000000000304fe0 0x80 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-etmu.s.o)
0x0000000000304fe0 _inth_etmu4
0x0000000000305040 _inth_etmux
.gint.drivers 0x0000000000305060 0xc0
0x0000000000305060 _bdrv = .
*(.gint.drivers.0)
.gint.drivers.0
0x0000000000305060 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
0x0000000000305060 _drv_intc
*(.gint.drivers.1)
.gint.drivers.1
0x0000000000305080 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
0x0000000000305080 _drv_mmu
.gint.drivers.1
0x00000000003050a0 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
0x00000000003050a0 _drv_cpg
*(.gint.drivers.2)
.gint.drivers.2
0x00000000003050c0 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
0x00000000003050c0 _drv_tmu
*(.gint.drivers.3)
*(.gint.drivers.4)
.gint.drivers.4
0x00000000003050e0 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
0x00000000003050e0 _drv_keysc
*(.gint.drivers.5)
.gint.drivers.5
0x0000000000305100 0x20 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
0x0000000000305100 _drv_t6k11
*(.gint.drivers.6)
0x0000000000305120 _edrv = .
.rodata 0x0000000000305120 0x1250
*(.rodata.4)
*(.rodata .rodata.*)
.rodata._ZN6Player5printEv.str1.4
0x0000000000305120 0xa build-fx/src/main.c.o
*fill* 0x000000000030512a 0x2
.rodata.str1.4
0x000000000030512c 0x1a build-fx/src/main.c.o
*fill* 0x0000000000305146 0x2
.rodata 0x0000000000305148 0x64 build-fx/src/main.c.o
.rodata 0x00000000003051ac 0x2e4 build-fx/assets/img/button.png.o
0x00000000003051ac _img_button
0x0000000000305490 _img_button_end
.rodata 0x0000000000305490 0xe4 build-fx/assets/img/logo.png.o
0x0000000000305490 _img_logo
0x0000000000305574 _img_logo_end
.rodata 0x0000000000305574 0x404 build-fx/assets/img/nature.png.o
0x0000000000305574 _img_nature
0x0000000000305978 _img_nature_end
.rodata 0x0000000000305978 0x1f4 build-fx/assets/img/player.png.o
0x0000000000305978 _img_player
0x0000000000305b6c _img_player_end
.rodata.str1.4
0x0000000000305b6c 0x6 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
*fill* 0x0000000000305b72 0x2
.rodata.str1.4
0x0000000000305b74 0x31 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o)
*fill* 0x0000000000305ba5 0x3
.rodata 0x0000000000305ba8 0x424 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o)
0x0000000000305ba8 _gint_font5x7_data
0x0000000000305fad _gint_font5x7_data_end
0x0000000000305fb0 _gint_font5x7
.rodata.str1.4
0x0000000000305fcc 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
.rodata 0x0000000000305fd0 0x18 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o)
.rodata 0x0000000000305fe8 0x40 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o)
.rodata.str1.4
0x0000000000306028 0x6 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
*fill* 0x000000000030602e 0x2
.rodata.str1.4
0x0000000000306030 0x5 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
*fill* 0x0000000000306035 0x3
.rodata 0x0000000000306038 0xfc /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
.rodata 0x0000000000306134 0xc /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
.rodata.str1.4
0x0000000000306140 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
.rodata.str1.4
0x0000000000306144 0x126 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o)
0x12a (size before relaxing)
*fill* 0x000000000030626a 0x2
.rodata.str1.4
0x000000000030626c 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
.rodata 0x0000000000306270 0x100 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
0x0000000000306270 ___clz_tab
0x0000000008100200 . = ORIGIN (ram)
.bss 0x0000000008100200 0x4f0
0x0000000008100200 _rbss = .
*(.bss COMMON)
.bss 0x0000000008100200 0x0 build-fx/src/main.c.o
.bss 0x0000000008100200 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o)
.bss 0x0000000008100200 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o)
.bss 0x0000000008100200 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o)
0x0000000008100200 _gint_restart
.bss 0x0000000008100204 0x404 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o)
0x0000000008100204 _dmode
.bss 0x0000000008100608 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o)
.bss 0x0000000008100608 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
.bss 0x0000000008100608 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dsubimage.c.o)
.bss 0x0000000008100608 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
.bss 0x0000000008100608 0x14 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o)
.bss 0x000000000810061c 0x54 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o)
.bss 0x0000000008100670 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o)
.bss 0x0000000008100670 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
.bss 0x0000000008100670 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o)
.bss 0x0000000008100670 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
.bss 0x0000000008100670 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(osmenu.c.o)
.bss 0x0000000008100674 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o)
.bss 0x0000000008100674 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o)
.bss 0x0000000008100674 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o)
.bss 0x0000000008100674 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tlbh.S.o)
.bss 0x0000000008100674 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o)
.bss 0x0000000008100674 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o)
.bss 0x0000000008100674 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray-scsp.s.o)
.bss 0x0000000008100674 0x48 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
.bss 0x00000000081006bc 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o)
.bss 0x00000000081006bc 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memcpy.s.o)
.bss 0x00000000081006bc 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memset.s.o)
.bss 0x00000000081006bc 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
.bss 0x00000000081006bc 0x24 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
.bss 0x00000000081006e0 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o)
.bss 0x00000000081006e0 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o)
.bss 0x00000000081006e0 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o)
0x00000000081006e0 _gint_exc_catcher
.bss 0x00000000081006e4 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpu.s.o)
.bss 0x00000000081006e4 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray.s.o)
.bss 0x00000000081006e4 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o)
.bss 0x00000000081006e4 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-mono-scsp.s.o)
.bss 0x00000000081006e4 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o)
.bss 0x00000000081006e4 0x8 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-tmu.s.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-etmu.s.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o)
.bss 0x00000000081006ec 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
*(B R)
0x00000000081006f0 . = ALIGN (0x10)
*fill* 0x00000000081006ec 0x4
0x00000000000004f0 _sbss = SIZEOF (.bss)
.data 0x00000000081006f0 0x140 load address 0x0000000000306370
0x0000000000306370 _ldata = LOADADDR (.data)
0x00000000081006f0 _rdata = .
0x00000000081006f0 _lreloc = .
*(.gint.mappedrel)
.gint.mappedrel
0x00000000081006f0 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o)
0x00000000081006f0 _gint_inth_callback
.gint.mappedrel
0x00000000081006f4 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpu.s.o)
0x00000000081006f4 _cpu_setVBR
0x0000000000000008 _sreloc = ABSOLUTE ((. - _lreloc))
*(.data .data.*)
.data 0x00000000081006f8 0x4 build-fx/src/main.c.o
0x00000000081006f8 _select
.data 0x00000000081006fc 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o)
.data 0x00000000081006fc 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o)
.data 0x00000000081006fc 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o)
.data 0x00000000081006fc 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o)
0x00000000081006fc _gint_vram
.data 0x0000000008100700 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o)
.data 0x0000000008100700 0x8 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
0x0000000008100700 _topti_font
0x0000000008100704 _gint_default_font
.data 0x0000000008100708 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dsubimage.c.o)
.data 0x0000000008100708 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
.data 0x000000000810070c 0x8 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o)
.data 0x0000000008100714 0x68 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o)
0x0000000008100714 _kprint_formatters
.data 0x000000000810077c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o)
.data 0x000000000810077c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
.data 0x000000000810077c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o)
.data 0x000000000810077c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o)
.data 0x000000000810077c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(osmenu.c.o)
.data 0x000000000810077c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o)
.data 0x000000000810077c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o)
.data 0x000000000810077c 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o)
0x000000000810077c _gint_required_intc
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tlbh.S.o)
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o)
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o)
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray-scsp.s.o)
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o)
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memcpy.s.o)
.data 0x0000000008100780 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memset.s.o)
.data 0x0000000008100780 0x10 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
0x0000000008100780 _SH7305_INTC
.data 0x0000000008100790 0xc /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
.data 0x000000000810079c 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o)
*fill* 0x000000000810079c 0x4
.data 0x00000000081007a0 0x60 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o)
.data 0x0000000008100800 0x4 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o)
0x0000000008100800 _gint_exc_panic
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpu.s.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-gray.s.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm-mono-scsp.s.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-tmu.s.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth-etmu.s.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o)
.data 0x0000000008100804 0x0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o)
*(D)
*(.gint.data.sh3)
.gint.data.sh3
0x0000000008100804 0x24 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
0x0000000008100804 _SH7705_INTC
0x0000000008100830 . = ALIGN (0x10)
*fill* 0x0000000008100828 0x8
.data.4 0x0000000008100830 0x0 load address 0x00000000003064b0
*(.data.4)
0x0000000008100830 . = ALIGN (0x10)
0x0000000000000140 _sdata = (SIZEOF (.data) + SIZEOF (.data.4))
.gint.bss 0x0000000008100830 0x240 load address 0x00000000003064b0
*(.gint.bss .gint.bss.sh3)
.gint.bss 0x0000000008100830 0x2 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o)
*fill* 0x0000000008100832 0x2
.gint.bss 0x0000000008100834 0x10 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o)
.gint.bss 0x0000000008100844 0x40 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o)
0x0000000008100844 _gint
.gint.bss 0x0000000008100884 0x18 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(kernel.c.o)
.gint.bss 0x000000000810089c 0x80 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o)
.gint.bss 0x000000000810091c 0x4c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(intc.c.o)
.gint.bss 0x0000000008100968 0xe0 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o)
.gint.bss 0x0000000008100a48 0x24 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o)
0x0000000008100a70 . = ALIGN (0x10)
*fill* 0x0000000008100a6c 0x4
0x0000000000000240 _sgbss = SIZEOF (.gint.bss)
0x00000000e5200000 . = ORIGIN (ilram)
.ilram 0x00000000e5200000 0x0 load address 0x00000000003064b0
0x00000000003064b0 _lilram = LOADADDR (.ilram)
0x00000000e5200000 _rilram = .
*(.ilram)
0x00000000e5200000 . = ALIGN (0x10)
0x00000000e5007000 . = ORIGIN (xram)
.xram 0x00000000e5007000 0x0 load address 0x00000000003064b0
0x00000000003064b0 _lxram = LOADADDR (.xram)
0x00000000e5007000 _rxram = .
*(.xram)
0x00000000e5007000 . = ALIGN (0x10)
0x00000000e5017000 . = ORIGIN (yram)
.yram 0x00000000e5017000 0x0 load address 0x00000000003064b0
0x00000000003064b0 _lyram = LOADADDR (.yram)
0x00000000e5017000 _ryram = .
*(.yram)
0x00000000e5017000 . = ALIGN (0x10)
0x0000000000000000 _silram = SIZEOF (.ilram)
0x0000000000000000 _sxram = SIZEOF (.xram)
0x0000000000000000 _syram = SIZEOF (.yram)
0x0000000000000000 . = ORIGIN (rram)
.gint.mapped 0x0000000000000000 0xa0 load address 0x00000000003064b0
0x00000000003064b0 _lgmapped = LOADADDR (.gint.mapped)
*(.gint.mapped)
.gint.mapped 0x0000000000000000 0x70 /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o)
.gint.mapped 0x0000000000000070 0x2c /home/pierre/opt/sh-elf-2.32-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpu.s.o)
0x00000000000000a0 . = ALIGN (0x10)
*fill* 0x000000000000009c 0x4
0x00000000000000a0 _sgmapped = SIZEOF (.gint.mapped)
.rela.dyn 0x00000000000000a0 0x0 load address 0x0000000000306550
.rela.text.startup
0x00000000000000a0 0x0 build-fx/src/main.c.o
.rela.text 0x00000000000000a0 0x0 build-fx/src/main.c.o
.rela.text.entry
0x00000000000000a0 0x0 build-fx/src/main.c.o
.rela.gint.tlbh
0x00000000000000a0 0x0 build-fx/src/main.c.o
/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/link.elf elf32-sh)

1
build-fx/src/main.c.d Normal file
View File

@ -0,0 +1 @@
build-fx/src/main.c.o: src/main.c

BIN
build-fx/src/main.c.o Normal file

Binary file not shown.

BIN
link.g1a Normal file

Binary file not shown.

90
project.cfg Normal file
View File

@ -0,0 +1,90 @@
#---
# fxSDK project configuration file for link
#---
# Project name, should be at most 8 bytes long.
# (You can also specify NAME_G1A or NAME_G3A to override individually.)
NAME := link
# 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 := @link
# Output file name. The default is to take <NAME>, replace spaces with dashes,
# and add .g1a (or .g3a). You can specify a different folder if you want.
TARGET_FX :=
TARGET_CG :=
# fx-9860G icon location
ICON_FX = assets-fx/icon-fx.png
# fx-CG 50 icon locations
ICON_CG_UNS = assets-cg/icon-cg-uns.png
ICON_CG_SEL = assets-cg/icon-cg-sel.png
#---
# Toolchain selection
#---
# Toolchain for fx9860g. Please see also CFLAGS_FX below.
TOOLCHAIN_FX := sh-elf
# Toolchain for fxcg50. Please see also CFLAGS_CG below.
TOOLCHAIN_CG := sh-elf
#---
# Compiler flags
#---
# Base compiler flags for the fxSDK, you usually want to keep these.
CFLAGS := -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields
# Platform-specific compiler flags.
# <> If you are using sh3eb-elf, use -m3. (You can do this on both FX and CG.)
# <> If you are using sh4eb-elf, use -m4-nofpu. (Not ideal on FX but works.)
# <> If you are using sh4eb-nofpu-elf, then your compiler will likely use the
# FPU and cause problems on the calculator. Consider another configuration.
# <> If you are using an sh-elf with several targets, specify whichever you
# support. I recommend -m3 on FX and -m4-nofpu on CG.
# Please see also TOOLCHAIN_FX and TOOLCHAIN_CG above.
CFLAGS_FX := -D FX9860G -m3
CFLAGS_CG := -D FXCG50 -m4-nofpu
# Additional compiler flags, change to your own taste!
CFLAGS += -Wall -Wextra -Wno-missing-field-initializers -Os
# Include paths. Add one -I option for each folder from which you want to
# be able to include files with #include<>.
INCLUDE := -I include
# Libraries. Add one -l option for each library you are using, and also
# suitable -L options if you have library files in custom folders. To use
# fxlib, add libfx.a to the project directory and use "-L . -lfx".
LIBS_FX :=
LIBS_CG :=
# Base linker flags for the fxSDK, you usually want to keep these.
LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS_FX) -lgint-fx -lgcc
LDFLAGS_CG := -T fxcg50.ld -lgint-cg $(LIBS_CG) -lgint-cg -lgcc
# Additional linker flags, if you need any.
LDFLAGS :=
# Additional platform-specific linker flags.
LDFLAGS_FX += -Wl,-Map=build-fx/map
LDFLAGS_CG += -Wl,-Map=build-cg/map
#---
# File conversion parameters
#---
# Here you can add fxconv options for each converted file, individually.
# The syntax is "<type>.<file>". For example, to specify the parameters for a
# font named "hexa.png", you might write:
#
# FONT.hexa.png = charset:print grid.size:3x5 grid.padding:1
IMG.logo.png :=
IMG.player1.png :=
IMG.button.png :=
IMG.nature.png :=

174
src/main.c Normal file
View File

@ -0,0 +1,174 @@
extern "C" {
#include <gint/display.h>
#include <gint/keyboard.h>
#include <gint/timer.h>
#include <gint/clock.h>
}
extern bopti_image_t img_player;
class Animation{
public:
int frame_1;
int frame_2;
int frame_3;
int frame_4;
int frame_5;
int get_data(int frame){
int f;
if(frame==0){f=frame_1;}
if(frame==1){f=frame_2;}
if(frame==2){f=frame_3;}
if(frame==3){f=frame_4;}
if(frame==4){f=frame_5;}
return f;
}
};
class Player{
public:
/* Position in map */
int x = 0;
int y = 0;
/* Direction currently facing */
int dir;// 0: left, 1: right
int vdir;
int rwalk;
//int animdata[10][5][2];
Animation anim_walk_left;
Animation anim_walk_right;
/* Animation and frame */
Animation anim_playing;
Animation anim_none_right;
Animation anim_none_left;
Animation anim_jump_right;
int twait;
int frame;
int anim =0;
int status; //1: normal, 2: roket, 3: code manipulation
int can_move;
void init(){
anim_walk_right = {0,1,2,3,4};
anim_walk_left = {5,6,7,8,9};
anim_none_right = {0,1,1,0,0};
anim_none_left = {5,6,6,5,5};
anim_jump_right = {1,3,3,3,3};
anim_playing = anim_none_right;
status = 1;
dir = 1;
vdir = 1; // 1:right 2:down 3:left 4:up
twait = 0;
frame = 0;
rwalk = 0;
can_move = 1;
}
void check_anim(){
if(status==1){
if(dir==0){anim_playing = anim_walk_left;}
if(dir==1){anim_playing = anim_walk_right;}
if(can_move==1&&dir==1){anim_playing = anim_none_right;}
if(can_move==1&&dir==0){anim_playing = anim_none_left;}
}
if(twait == 120){
twait = 0;
frame = frame + 1;
if(frame > 4){
frame = 0;
}
}
twait = twait + 1;
anim = anim_playing.get_data(frame);
}
void print(){
dsubimage(x, y,&img_player,0,anim*12,11, 11, DIMAGE_NONE);
dprint(1, 50, C_BLACK, "x=%d y=%d", x, y);
}
};
int select = 1;
int main(void){
extern bopti_image_t img_logo;
extern bopti_image_t img_button;
extern bopti_image_t img_nature;
int playing = 1;
int key = 0;
Player player;
player.init();
int opt = GETKEY_DEFAULT | GETKEY_REP_ARROWS | GETKEY_MENU;
int timeout = 1;
while(playing==1){
while(key != KEY_OPTN){
dclear(C_WHITE);
dimage(25, 3, &img_logo);
//dsubimage(40, 40,&img_player,0* 11, 0, 11, 11, DIMAGE_NONE);
if(select==1){dsubimage(35, 33,&img_button,0, 10, 42, 10, DIMAGE_NONE);}
else{dsubimage(35, 33,&img_button,0, 0, 42, 10, DIMAGE_NONE);}
if(select==2){dsubimage(35, 45,&img_button,0, 30, 42, 10, DIMAGE_NONE);}
else{dsubimage(35, 45,&img_button,0, 20, 42, 10, DIMAGE_NONE);}
dupdate();
key = getkey_opt(opt, NULL).key;
if(key == KEY_UP){select=1;}
if(key == KEY_DOWN){select=2;}
}
if(select==2){
key = 0;
while(1==1){
player.check_anim();
dclear(C_WHITE);
dprint(0, 3, C_BLACK, "anim=%d twait=%d frame=%d", player.anim,player.twait,player.frame);
//dtext(45, 3, C_BLACK, player.twait);
//dtext(55, 3, C_BLACK, player.frame);
player.print();
dupdate();
key = getkey_opt(opt, &timeout).key;
if(player.can_move == 1){
if(key == KEY_RIGHT){player.dir=1;player.vdir=1;player.rwalk=5;player.can_move=0;}
if(key == KEY_LEFT){player.dir=0;player.vdir=3;player.rwalk=5;player.can_move=0;}
if(key == KEY_UP){player.vdir=4;player.rwalk=5;player.can_move=0;}
if(key == KEY_DOWN){player.vdir=2;player.rwalk=5;player.can_move=0;}
}
if(player.can_move == 0 && player.rwalk>0 && player.twait== 50){
player.rwalk--;
if(player.vdir==1){player.x = player.x + 2;}
if(player.vdir==2){player.y = player.y + 2;}
if(player.vdir==3){player.x = player.x - 2;}
if(player.vdir==4){player.y = player.y - 2;}
if(player.rwalk==0){player.can_move = 1;}
}
}
}
if(select==1){
player.x = 30;
player.y = 30;
player.status = 2;
while(1==1){
player.check_anim();
dclear(C_WHITE);
dimage(0, 0, &img_nature);
player.print();
dupdate();
key = getkey_opt(opt, &timeout).key;
}
}
}
return 1;
}