reform project and separe fxengine

This commit is contained in:
milang 2019-08-27 20:44:33 +02:00
parent 558dd5670b
commit 0913b3da3a
34 changed files with 362 additions and 1419 deletions

BIN
1v13D.g1a

Binary file not shown.

View File

@ -1,33 +1,19 @@
Archive member included to satisfy reference by file (symbol)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
build-fx/src/FxEngine/FxEngine.o (pollevent)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
build-fx/src/FxEngine/libprof.o (clock_freq)
build-fx/src/FxEngine/keyboard/keyboard.o (pollevent)
/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(dtext.c.o)
build-fx/src/FxEngine/zbuffer.o (dtext)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dpixel.c.o)
build-fx/src/main.o (dpixel)
/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/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(dupdate.c.o)
build-fx/src/FxEngine/FxEngine.o (dupdate)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o)
build-fx/src/controls.o (dimage)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
build-fx/src/controls.o (dfont)
build-fx/src/main.o (dupdate)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
build-fx/src/FxEngine/libprof.o (timer_setup)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (timer_setup)
/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(hardware.c.o)
build-fx/src/FxEngine/libprof.o (gint)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
build-fx/src/FxEngine/zbuffer.o (malloc)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (gint)
/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(setup.c.o)
@ -35,21 +21,13 @@ Archive member included to satisfy reference by file (symbol)
/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(memory.c.o)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) (memcpy)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o)
build-fx/src/FxEngine/FxEngine.o (sprintf)
/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)
build-fx/src/main.o (memcpy)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (getkey_repeat)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (iokbd_scan)
/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(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(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(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(exch.S.o)
@ -58,36 +36,36 @@ Archive member included to satisfy reference by file (symbol)
/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(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(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(inth.S.o)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (inth_entry_7305)
/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(_sdivsi3.o)
build-fx/src/FxEngine/face.o (__sdivsi3)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o)
build-fx/src/FxEngine/FxEngine.o (__udivsi3)
build-fx/src/FxEngine/render/translate.o (__sdivsi3)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o)
build-fx/src/FxEngine/libprof.o (__udivdi3)
/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(_addsub_df.o)
build-fx/src/FxEngine/coord.o (__adddf3)
build-fx/src/FxEngine/render/translate.o (__adddf3)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o)
build-fx/src/FxEngine/coord.o (__muldf3)
build-fx/src/FxEngine/render/translate.o (__muldf3)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o)
build-fx/src/FxEngine/coord.o (__divdf3)
build-fx/src/FxEngine/render/translate.o (__divdf3)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o)
build-fx/src/FxEngine/coord.o (__gtdf2)
build-fx/src/FxEngine/render/translate.o (__gtdf2)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_ge_df.o)
build-fx/src/FxEngine/coord.o (__gedf2)
build-fx/src/FxEngine/render/translate.o (__gedf2)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_lt_df.o)
build-fx/src/FxEngine/coord.o (__ltdf2)
build-fx/src/FxEngine/render/translate.o (__ltdf2)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o)
build-fx/src/FxEngine/coord.o (__ledf2)
build-fx/src/FxEngine/render/translate.o (__ledf2)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o)
build-fx/src/FxEngine/coord.o (__floatsidf)
build-fx/src/FxEngine/render/translate.o (__floatsidf)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o)
build-fx/src/FxEngine/coord.o (__fixdfsi)
build-fx/src/FxEngine/render/translate.o (__fixdfsi)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) (__thenan_df)
/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)
@ -101,33 +79,17 @@ Archive member included to satisfy reference by file (symbol)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o)
/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) (__fpcmp_parts_d)
Allocating common symbols
Common symbol size file
FE_dh 0x8 build-fx/src/FxEngine/FxEngine.o
FE_dv 0x8 build-fx/src/FxEngine/FxEngine.o
FE_roulis 0x8 build-fx/src/FxEngine/FxEngine.o
Discarded input sections
.comment 0x0000000000000000 0x12 build-fx/src/main.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/face.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/zbuffer.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/texture.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/coord.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/libprof.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/FxEngine.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/keyboard.o
.comment 0x0000000000000000 0x12 build-fx/src/controls.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/keyboard/keyboard.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/render/bitmap.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/render/translate.o
.comment 0x0000000000000000 0x12 build-fx/src/FxEngine/render/zbuffer.o
.comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.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(dclear.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(dpixel.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(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(topti.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(gint.c.o)
.comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
@ -135,11 +97,9 @@ Discarded input sections
.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(t6k11.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(stdio.c.o)
.comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
.comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.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(cpg.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/libgcc.a(_udivdi3.o)
.comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o)
@ -170,495 +130,344 @@ rram 0x000000008800f400 0x0000000000000c00 xrw
Linker script and memory map
LOAD build-fx/src/main.o
LOAD build-fx/src/FxEngine/face.o
LOAD build-fx/src/FxEngine/zbuffer.o
LOAD build-fx/src/FxEngine/texture.o
LOAD build-fx/src/FxEngine/coord.o
LOAD build-fx/src/FxEngine/libprof.o
LOAD build-fx/src/FxEngine/FxEngine.o
LOAD build-fx/src/FxEngine/keyboard.o
LOAD build-fx/src/controls.o
LOAD build-fx/src/FxEngine/keyboard/keyboard.o
LOAD build-fx/src/FxEngine/render/bitmap.o
LOAD build-fx/src/FxEngine/render/translate.o
LOAD build-fx/src/FxEngine/render/zbuffer.o
LOAD build-fx/assets/img/fps.png.o
LOAD build-fx/assets/fonts/FxEngine.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
0x0000000000005434 _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks))
0x00000000000032cc _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks))
.pretext 0x0000000000300200 0x8a8
.pretext 0x0000000000300200 0x324
*(.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 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o)
0x00000000003003cc dtext
*fill* 0x0000000000300418 0x8
.pretext 0x0000000000300420 0x130 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o)
0x0000000000300530 topti_asm_text
.pretext 0x0000000000300550 0x2f0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
0x00000000003005f2 topti_render
.pretext 0x0000000000300840 0x110 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
0x0000000000300840 dfont
0x0000000000300858 charset_size
0x0000000000300884 charset_decode
0x00000000003008f2 topti_offset
.pretext 0x0000000000300950 0xd0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
0x0000000000300950 hw_detect
.pretext 0x0000000000300a20 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
0x0000000000300a20 __os_version
0x0000000000300a2c malloc
0x0000000000300a38 free
0x0000000000300a44 calloc
0x0000000000300a50 realloc
0x0000000000300a5c BFile_Remove
0x0000000000300a68 BFile_Create
0x0000000000300a74 BFile_Open
0x0000000000300a80 BFile_Close
0x0000000000300a8c BFile_Write
0x0000000000300a98 BFile_Read
0x0000000000300aa8 _btors = .
.pretext 0x00000000003003cc 0xd0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
0x00000000003003cc hw_detect
.pretext 0x000000000030049c 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
0x000000000030049c __os_version
0x00000000003004a8 malloc
0x00000000003004b4 free
0x00000000003004c0 calloc
0x00000000003004cc realloc
0x00000000003004d8 BFile_Remove
0x00000000003004e4 BFile_Create
0x00000000003004f0 BFile_Open
0x00000000003004fc BFile_Close
0x0000000000300508 BFile_Write
0x0000000000300514 BFile_Read
0x0000000000300524 _btors = .
*(.ctors .ctors.*)
0x0000000000300aa8 _mtors = .
0x0000000000300524 _mtors = .
*(.dtors .dtors.*)
0x0000000000300aa8 _etors = .
0x0000000000300524 _etors = .
.text 0x0000000000300aa8 0x4850
.text 0x0000000000300528 0x2b30
*(.text .text.*)
.text 0x0000000000300aa8 0x0 build-fx/src/main.o
.text.startup 0x0000000000300aa8 0xdc build-fx/src/main.o
0x0000000000300aa8 main
.text 0x0000000000300b84 0x3fc build-fx/src/FxEngine/face.o
0x0000000000300c14 FE_draw_face
.text 0x0000000000300f80 0xc0 build-fx/src/FxEngine/zbuffer.o
0x0000000000300f80 FE_zbuffer_clear
0x0000000000300fec FE_zbuffer_set_dist
.text 0x0000000000301040 0x48 build-fx/src/FxEngine/texture.o
0x0000000000301040 FE_get_pixel
.text 0x0000000000301088 0x54c build-fx/src/FxEngine/coord.o
0x0000000000301088 FE_modulo_2pi
0x0000000000301138 FE_cos
0x0000000000301278 FE_sin
0x00000000003012a0 FE_calc
0x000000000030142c FE_set_matrice
.text 0x00000000003015d4 0x154 build-fx/src/FxEngine/libprof.o
0x00000000003015d4 prof_time
0x0000000000301618 prof_quit
0x000000000030164c prof_init
.text 0x0000000000301728 0x394 build-fx/src/FxEngine/FxEngine.o
0x0000000000301728 FE_new_frame
0x0000000000301a00 FE_get_fps_history
0x0000000000301a5c FE_get_fps_current
0x0000000000301a7c FE_get_fps_min
0x0000000000301a9c FE_get_fps_max
.text 0x0000000000301abc 0x74 build-fx/src/FxEngine/keyboard.o
0x0000000000301abc FE_keyboard_reload
0x0000000000301b08 FE_keyboard_set_key
.text 0x0000000000301b30 0x74 build-fx/src/controls.o
0x0000000000301b30 init_controls
0x0000000000301b40 reload_fps_displaying
0x0000000000301b64 display_fps
.text 0x0000000000301ba4 0x2c8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
0x0000000000301d48 pollevent
0x0000000000301e34 waitevent
.text 0x0000000000301e6c 0x150 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
0x0000000000301fb0 clock_freq
.text 0x0000000000301fbc 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o)
0x0000000000301fbc dclear
.text 0x0000000000302008 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o)
.text 0x0000000000302008 0x50 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dpixel.c.o)
0x0000000000302008 dpixel
.text 0x0000000000302058 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o)
.text 0x0000000000302058 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
.text 0x0000000000302058 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o)
0x0000000000302058 dupdate
0x0000000000302070 dupdate_noint
.text 0x000000000030207c 0xc8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o)
0x000000000030207c dimage
0x00000000003020d0 dsubimage
.text 0x0000000000302144 0x9c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
0x0000000000302144 dsize
.text 0x00000000003021e0 0x56c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
0x0000000000302500 timer_setup
0x0000000000302590 timer_delay
0x00000000003025f0 timer_start
0x0000000000302624 timer_reload
0x0000000000302644 timer_pause
0x0000000000302678 timer_stop
0x00000000003026d4 timer_timeout
0x00000000003026e0 timer_address
0x000000000030271c timer_clear
.text 0x000000000030274c 0x78 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
0x000000000030274c gint_intlevel
0x00000000003027a0 gint_inthandler
.text 0x00000000003027c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
.text 0x00000000003027c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
.text 0x00000000003027c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o)
.text 0x00000000003027c4 0x170 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
0x0000000000302878 gint_install
0x000000000030291c gint_unload
.text 0x0000000000302934 0x1d8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
0x00000000003029cc t6k11_display
0x0000000000302aa0 t6k11_contrast
0x0000000000302acc t6k11_backlight
.text 0x0000000000302b0c 0xdc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o)
0x0000000000302b0c memcpy
0x0000000000302bc6 _memmove
0x0000000000302bca _memcmp
0x0000000000302bce memset
.text 0x0000000000302be8 0xc00 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o)
0x0000000000303510 kprint_opt
0x0000000000303648 kprint
0x0000000000303720 kvsprint
0x0000000000303768 sprintf
0x0000000000303790 vsprintf
0x00000000003037b0 snprintf
0x00000000003037d0 vsnprintf
.text 0x00000000003037e8 0x1c8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
0x00000000003037e8 getkey_opt
0x0000000000303968 getkey
0x0000000000303974 getkey_repeat
.text 0x00000000003039b0 0x124 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o)
0x00000000003039bc iokbd_row
0x0000000000303aa4 iokbd_scan
.text 0x0000000000303ad4 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti-asm.s.o)
0x0000000000303ad4 bopti_asm_mono
0x0000000000303afa bopti_asm_mono_alpha
.text 0x0000000000303b2c 0x410 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o)
0x0000000000303b2c bopti_grid
0x0000000000303ca0 bopti_render
0x0000000000303dd0 bopti_render_clip
0x0000000000303ee4 bopti_render_noclip
.text 0x0000000000303f3c 0x9c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o)
0x0000000000303f3c masks
.text 0x0000000000303fd8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
.text 0x0000000000303fd8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
.text 0x0000000000303fd8 0x2c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o)
0x0000000000303fd8 gint_setvbr
.text 0x0000000000304004 0x1f4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o)
0x0000000000304004 tlb_addr
0x0000000000304018 tlb_data
0x000000000030402c tlb_mapped_memory
0x0000000000304100 utlb_addr
0x0000000000304110 utlb_data
0x0000000000304120 utlb_mapped_memory
.text 0x00000000003041f8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
.text 0x00000000003041f8 0x78 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o)
0x00000000003041f8 __movstr
0x00000000003041f8 __movmem
0x000000000030422c __movmemSI64
0x000000000030422c __movstrSI64
0x0000000000304230 __movstrSI60
0x0000000000304230 __movmemSI60
0x0000000000304234 __movmemSI56
0x0000000000304234 __movstrSI56
0x0000000000304238 __movstrSI52
0x0000000000304238 __movmemSI52
0x000000000030423c __movstrSI48
0x000000000030423c __movmemSI48
0x0000000000304240 __movstrSI44
0x0000000000304240 __movmemSI44
0x0000000000304244 __movstrSI40
0x0000000000304244 __movmemSI40
0x0000000000304248 __movstrSI36
0x0000000000304248 __movmemSI36
0x000000000030424c __movmemSI32
0x000000000030424c __movstrSI32
0x0000000000304250 __movmemSI28
0x0000000000304250 __movstrSI28
0x0000000000304254 __movstrSI24
0x0000000000304254 __movmemSI24
0x0000000000304258 __movmemSI20
0x0000000000304258 __movstrSI20
0x000000000030425c __movstrSI16
0x000000000030425c __movmemSI16
0x0000000000304260 __movmemSI12
0x0000000000304260 __movstrSI12
0x0000000000304264 __movmemSI8
0x0000000000304264 __movstrSI8
0x0000000000304268 __movmemSI4
0x0000000000304268 __movstrSI4
.text 0x0000000000304270 0xa0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_sdivsi3.o)
0x0000000000304270 __sdivsi3
.text 0x0000000000304310 0x6c /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o)
0x0000000000304332 __udivsi3
.text 0x000000000030437c 0x1f0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o)
0x000000000030437c __udivdi3
.text 0x000000000030456c 0x348 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o)
0x0000000000304810 __adddf3
0x0000000000304860 __subdf3
.text 0x00000000003048b4 0x208 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o)
0x00000000003048b4 __muldf3
.text 0x0000000000304abc 0x130 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o)
0x0000000000304abc __divdf3
.text 0x0000000000304bec 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o)
0x0000000000304bec __gtdf2
.text 0x0000000000304c44 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_ge_df.o)
0x0000000000304c44 __gedf2
.text 0x0000000000304c9c 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_lt_df.o)
0x0000000000304c9c __ltdf2
.text 0x0000000000304cf4 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o)
0x0000000000304cf4 __ledf2
.text 0x0000000000304d4c 0x98 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o)
0x0000000000304d4c __floatsidf
.text 0x0000000000304de4 0x8c /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o)
0x0000000000304de4 __fixdfsi
.text 0x0000000000304e70 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
.text 0x0000000000304e70 0x60 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o)
0x0000000000304e70 __udiv_qrnnd_16
.text 0x0000000000304ed0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
.text 0x0000000000304ed0 0x54 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o)
0x0000000000304ed0 __clzsi2
.text 0x0000000000304f24 0x240 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o)
0x0000000000304f24 __pack_d
.text 0x0000000000305164 0xcc /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o)
0x0000000000305164 __unpack_d
.text 0x0000000000305230 0xc8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o)
0x0000000000305230 __fpcmp_parts_d
.text 0x0000000000300528 0x0 build-fx/src/main.o
.text.startup 0x0000000000300528 0x68 build-fx/src/main.o
0x0000000000300528 main
.text 0x0000000000300590 0x74 build-fx/src/FxEngine/keyboard/keyboard.o
0x0000000000300590 FE_keyboard_reload
0x00000000003005dc FE_keyboard_set_key
.text 0x0000000000300604 0x0 build-fx/src/FxEngine/render/bitmap.o
.text 0x0000000000300604 0x554 build-fx/src/FxEngine/render/translate.o
0x0000000000300604 modulo_2pi
0x00000000003006b4 cos
0x00000000003007f4 sin
0x000000000030081c render_translate
0x00000000003009ac render_set
.text 0x0000000000300b58 0x88 build-fx/src/FxEngine/render/zbuffer.o
0x0000000000300b58 render_zbuffer_clear
0x0000000000300b80 render_zbuffer_set_px
.text 0x0000000000300be0 0x2c8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
0x0000000000300d84 pollevent
0x0000000000300e70 waitevent
.text 0x0000000000300ea8 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o)
0x0000000000300ea8 dclear
.text 0x0000000000300ef4 0x50 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dpixel.c.o)
0x0000000000300ef4 dpixel
.text 0x0000000000300f44 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o)
0x0000000000300f44 dupdate
0x0000000000300f5c dupdate_noint
.text 0x0000000000300f68 0x56c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
0x0000000000301288 timer_setup
0x0000000000301318 timer_delay
0x0000000000301378 timer_start
0x00000000003013ac timer_reload
0x00000000003013cc timer_pause
0x0000000000301400 timer_stop
0x000000000030145c timer_timeout
0x0000000000301468 timer_address
0x00000000003014a4 timer_clear
.text 0x00000000003014d4 0x78 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
0x00000000003014d4 gint_intlevel
0x0000000000301528 gint_inthandler
.text 0x000000000030154c 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
.text 0x000000000030154c 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o)
.text 0x000000000030154c 0x170 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
0x0000000000301600 gint_install
0x00000000003016a4 gint_unload
.text 0x00000000003016bc 0x1d8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
0x0000000000301754 t6k11_display
0x0000000000301828 t6k11_contrast
0x0000000000301854 t6k11_backlight
.text 0x0000000000301894 0xdc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o)
0x0000000000301894 memcpy
0x000000000030194e _memmove
0x0000000000301952 _memcmp
0x0000000000301956 memset
.text 0x0000000000301970 0x1c8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
0x0000000000301970 getkey_opt
0x0000000000301af0 getkey
0x0000000000301afc getkey_repeat
.text 0x0000000000301b38 0x124 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o)
0x0000000000301b44 iokbd_row
0x0000000000301c2c iokbd_scan
.text 0x0000000000301c5c 0x150 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
0x0000000000301da0 clock_freq
.text 0x0000000000301dac 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
.text 0x0000000000301dac 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
.text 0x0000000000301dac 0x2c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o)
0x0000000000301dac gint_setvbr
.text 0x0000000000301dd8 0x1f4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o)
0x0000000000301dd8 tlb_addr
0x0000000000301dec tlb_data
0x0000000000301e00 tlb_mapped_memory
0x0000000000301ed4 utlb_addr
0x0000000000301ee4 utlb_data
0x0000000000301ef4 utlb_mapped_memory
.text 0x0000000000301fcc 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
.text 0x0000000000301fcc 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
.text 0x0000000000301fcc 0xa0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_sdivsi3.o)
0x0000000000301fcc __sdivsi3
.text 0x000000000030206c 0x1f0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o)
0x000000000030206c __udivdi3
.text 0x000000000030225c 0x348 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o)
0x0000000000302500 __adddf3
0x0000000000302550 __subdf3
.text 0x00000000003025a4 0x208 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o)
0x00000000003025a4 __muldf3
.text 0x00000000003027ac 0x130 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o)
0x00000000003027ac __divdf3
.text 0x00000000003028dc 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o)
0x00000000003028dc __gtdf2
.text 0x0000000000302934 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_ge_df.o)
0x0000000000302934 __gedf2
.text 0x000000000030298c 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_lt_df.o)
0x000000000030298c __ltdf2
.text 0x00000000003029e4 0x58 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o)
0x00000000003029e4 __ledf2
.text 0x0000000000302a3c 0x98 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o)
0x0000000000302a3c __floatsidf
.text 0x0000000000302ad4 0x8c /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o)
0x0000000000302ad4 __fixdfsi
.text 0x0000000000302b60 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
.text 0x0000000000302b60 0x6c /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o)
0x0000000000302b82 __udivsi3
*fill* 0x0000000000302bcc 0x4
.text 0x0000000000302bd0 0x60 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o)
0x0000000000302bd0 __udiv_qrnnd_16
.text 0x0000000000302c30 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
.text 0x0000000000302c30 0x54 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o)
0x0000000000302c30 __clzsi2
.text 0x0000000000302c84 0x240 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o)
0x0000000000302c84 __pack_d
.text 0x0000000000302ec4 0xcc /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o)
0x0000000000302ec4 __unpack_d
.text 0x0000000000302f90 0xc8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o)
0x0000000000302f90 __fpcmp_parts_d
*(C P)
.gint.blocks 0x0000000000305300 0x140
.gint.blocks 0x0000000000303060 0x140
*(.gint.blocks)
.gint.blocks 0x0000000000305300 0xe0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
0x0000000000305300 inth_tmu
0x0000000000305380 inth_etmu2
0x00000000003053a0 inth_etmu_help
0x00000000003053c0 inth_etmux
.gint.blocks 0x00000000003053e0 0x20 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
0x00000000003053e0 exch_entry_7705
0x00000000003053e0 exch_entry_7305
.gint.blocks 0x0000000000305400 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
0x0000000000305400 inth_entry_7305
0x0000000000305420 inth_entry_7705
.gint.blocks 0x0000000000303060 0xe0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
0x0000000000303060 inth_tmu
0x00000000003030e0 inth_etmu2
0x0000000000303100 inth_etmu_help
0x0000000000303120 inth_etmux
.gint.blocks 0x0000000000303140 0x20 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
0x0000000000303140 exch_entry_7705
0x0000000000303140 exch_entry_7305
.gint.blocks 0x0000000000303160 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
0x0000000000303160 inth_entry_7305
0x0000000000303180 inth_entry_7705
.gint.drivers 0x0000000000305440 0x90
0x0000000000305440 _bdrv = .
.gint.drivers 0x00000000003031a0 0x90
0x00000000003031a0 _bdrv = .
*(.gint.drivers.0)
*(.gint.drivers.1)
.gint.drivers.1
0x0000000000305440 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
0x0000000000305440 drv_cpg
0x00000000003031a0 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
0x00000000003031a0 drv_cpg
*(.gint.drivers.2)
.gint.drivers.2
0x0000000000305464 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
0x0000000000305464 drv_tmu
0x00000000003031c4 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
0x00000000003031c4 drv_tmu
*(.gint.drivers.3)
*(.gint.drivers.4)
.gint.drivers.4
0x0000000000305488 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
0x0000000000305488 drv_keysc
0x00000000003031e8 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
0x00000000003031e8 drv_keysc
*(.gint.drivers.5)
.gint.drivers.5
0x00000000003054ac 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
0x00000000003054ac drv_t6k11
0x000000000030320c 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
0x000000000030320c drv_t6k11
*(.gint.drivers.6)
0x00000000003054d0 _edrv = .
0x0000000000303230 _edrv = .
.rodata 0x00000000003054d0 0x814
.rodata 0x0000000000303230 0x3cc
*(.rodata .rodata.*)
.rodata 0x0000000000303230 0x60 build-fx/src/main.o
.rodata 0x0000000000303290 0x18 build-fx/src/FxEngine/render/translate.o
0x0000000000303290 pi_sur_2
0x0000000000303298 pi2
0x00000000003032a0 pi
.rodata 0x00000000003032a8 0x24 build-fx/assets/img/fps.png.o
0x00000000003032a8 img_fps
0x00000000003032cc img_fps_end
.rodata 0x00000000003032cc 0x204 build-fx/assets/fonts/FxEngine.png.o
0x00000000003032cc font_FxEngine
0x00000000003034d0 font_FxEngine_end
.rodata.str1.4
0x00000000003054d0 0x12 build-fx/src/FxEngine/zbuffer.o
*fill* 0x00000000003054e2 0x2
.rodata 0x00000000003054e4 0x18 build-fx/src/FxEngine/texture.o
0x00000000003054e4 FE_textures
.rodata 0x00000000003054fc 0x18 build-fx/src/FxEngine/coord.o
0x00000000003054fc pi_sur2
0x0000000000305504 pi2
0x000000000030550c pi
0x00000000003034d0 0x6 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
*fill* 0x00000000003034d6 0x2
.rodata.str1.4
0x0000000000305514 0x9 build-fx/src/FxEngine/FxEngine.o
*fill* 0x000000000030551d 0x3
0x00000000003034d8 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.rodata.str1.4
0x0000000000305520 0x3 build-fx/src/controls.o
*fill* 0x0000000000305523 0x1
.rodata 0x0000000000305524 0x24 build-fx/assets/img/fps.png.o
0x0000000000305524 img_fps
0x0000000000305548 img_fps_end
.rodata 0x0000000000305548 0x204 build-fx/assets/fonts/FxEngine.png.o
0x0000000000305548 font_FxEngine
0x000000000030574c font_FxEngine_end
0x00000000003034dc 0x6 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
*fill* 0x00000000003034e2 0x2
.rodata.str1.4
0x000000000030574c 0x6 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
*fill* 0x0000000000305752 0x2
.rodata.str1.4
0x0000000000305754 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
.rodata 0x0000000000305758 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o)
.rodata 0x0000000000305760 0x18 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
.rodata.str1.4
0x0000000000305778 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.rodata.str1.4
0x000000000030577c 0x6 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
*fill* 0x0000000000305782 0x2
.rodata.str1.4
0x0000000000305784 0x34 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o)
0x31 (size before relaxing)
.rodata 0x00000000003057b8 0x408 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o)
0x00000000003057b8 gint_font5x7
0x0000000000305bc0 gint_font5x7_end
.rodata 0x0000000000305bc0 0x10 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o)
.rodata 0x0000000000305bd0 0x14 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
0x0000000000305bd0 __thenan_df
.rodata 0x0000000000305be4 0x100 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
0x0000000000305be4 __clz_tab
0x00000000003034e4 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
.rodata 0x00000000003034e8 0x14 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
0x00000000003034e8 __thenan_df
.rodata 0x00000000003034fc 0x100 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
0x00000000003034fc __clz_tab
.rela.dyn 0x0000000000305ce4 0x0
.rela.text 0x0000000000305ce4 0x0 build-fx/src/FxEngine/coord.o
.rela.dyn 0x00000000003035fc 0x0
.rela.text 0x00000000003035fc 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
.rela.pretext.entry
0x0000000000305ce4 0x0 build-fx/src/FxEngine/coord.o
0x00000000003035fc 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
0x0000000008100000 . = ORIGIN (ram)
.bss 0x0000000008100000 0x8d0
.bss 0x0000000008100000 0x760
0x0000000008100000 _rbss = .
*(.bss COMMON)
.bss 0x0000000008100000 0x0 build-fx/src/main.o
.bss 0x0000000008100000 0x0 build-fx/src/FxEngine/face.o
.bss 0x0000000008100000 0x4 build-fx/src/FxEngine/zbuffer.o
.bss 0x0000000008100004 0x0 build-fx/src/FxEngine/texture.o
.bss 0x0000000008100004 0x48 build-fx/src/FxEngine/coord.o
.bss 0x000000000810004c 0x10 build-fx/src/FxEngine/libprof.o
0x000000000810004c prof_tcnt
0x0000000008100050 prof_elapsed
0x0000000008100054 prof_rec
.bss 0x000000000810005c 0x30 build-fx/src/FxEngine/FxEngine.o
0x000000000810005c FE_user
COMMON 0x000000000810008c 0x18 build-fx/src/FxEngine/FxEngine.o
0x000000000810008c FE_dh
0x0000000008100094 FE_dv
0x000000000810009c FE_roulis
.bss 0x00000000081000a4 0x2d0 build-fx/src/FxEngine/keyboard.o
.bss 0x0000000008100374 0xa build-fx/src/controls.o
*fill* 0x000000000810037e 0x2
.bss 0x0000000008100380 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
.bss 0x00000000081003a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
.bss 0x00000000081003a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o)
.bss 0x00000000081003a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o)
.bss 0x00000000081003a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dpixel.c.o)
.bss 0x00000000081003a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o)
.bss 0x00000000081003a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
.bss 0x00000000081003a4 0x400 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
.bss 0x00000000081007a4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o)
.bss 0x00000000081007a4 0x114 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o)
.bss 0x00000000081008b8 0xc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti-asm.s.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_sdivsi3.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_ge_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_lt_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o)
.bss 0x00000000081008c4 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o)
.bss 0x0000000008100000 0x2d0 build-fx/src/FxEngine/keyboard/keyboard.o
.bss 0x00000000081002d0 0x0 build-fx/src/FxEngine/render/bitmap.o
.bss 0x00000000081002d0 0x54 build-fx/src/FxEngine/render/translate.o
.bss 0x0000000008100324 0x0 build-fx/src/FxEngine/render/zbuffer.o
.bss 0x0000000008100324 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
.bss 0x0000000008100348 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o)
.bss 0x0000000008100348 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dpixel.c.o)
.bss 0x0000000008100348 0x400 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o)
.bss 0x0000000008100748 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.bss 0x0000000008100748 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
.bss 0x0000000008100748 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
.bss 0x0000000008100748 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o)
.bss 0x0000000008100748 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
.bss 0x0000000008100748 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
.bss 0x0000000008100748 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o)
.bss 0x0000000008100748 0xc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_sdivsi3.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_ge_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_lt_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o)
.bss 0x0000000008100754 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o)
*(B R)
0x00000000081008d0 . = ALIGN (0x10)
*fill* 0x00000000081008c4 0xc
0x00000000000008d0 _sbss = SIZEOF (.bss)
0x0000000008100760 . = ALIGN (0x10)
*fill* 0x0000000008100754 0xc
0x0000000000000760 _sbss = SIZEOF (.bss)
.data 0x00000000081008d0 0x80 load address 0x0000000000305ce4
0x0000000000305ce4 _ldata = LOADADDR (.data)
0x00000000081008d0 _rdata = .
.data 0x0000000008100760 0x10 load address 0x00000000003035fc
0x00000000003035fc _ldata = LOADADDR (.data)
0x0000000008100760 _rdata = .
*(.data .data.*)
.data 0x00000000081008d0 0x0 build-fx/src/main.o
.data 0x00000000081008d0 0x0 build-fx/src/FxEngine/face.o
.data 0x00000000081008d0 0x0 build-fx/src/FxEngine/zbuffer.o
.data 0x00000000081008d0 0x0 build-fx/src/FxEngine/texture.o
.data 0x00000000081008d0 0x0 build-fx/src/FxEngine/coord.o
.data 0x00000000081008d0 0x0 build-fx/src/FxEngine/libprof.o
.data 0x00000000081008d0 0x8 build-fx/src/FxEngine/FxEngine.o
.data 0x00000000081008d8 0x0 build-fx/src/FxEngine/keyboard.o
.data 0x00000000081008d8 0x0 build-fx/src/controls.o
.data 0x00000000081008d8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
.data 0x00000000081008d8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
.data 0x00000000081008d8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o)
.data 0x00000000081008d8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o)
.data 0x00000000081008d8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dpixel.c.o)
.data 0x00000000081008d8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o)
.data 0x00000000081008d8 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
0x00000000081008d8 topti_font
0x00000000081008dc gint_default_font
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dimage.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
.data 0x00000000081008e0 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o)
.data 0x00000000081008e0 0x68 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o)
0x00000000081008e0 kprint_formatters
.data 0x0000000008100948 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti-asm.s.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(bopti.c.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(masks.c.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_sdivsi3.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_ge_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_lt_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o)
.data 0x0000000008100950 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o)
.data 0x0000000008100760 0x0 build-fx/src/main.o
.data 0x0000000008100760 0x0 build-fx/src/FxEngine/keyboard/keyboard.o
.data 0x0000000008100760 0x0 build-fx/src/FxEngine/render/bitmap.o
.data 0x0000000008100760 0x0 build-fx/src/FxEngine/render/translate.o
.data 0x0000000008100760 0x0 build-fx/src/FxEngine/render/zbuffer.o
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dpixel.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
.data 0x0000000008100760 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o)
.data 0x0000000008100760 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_sdivsi3.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_ge_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_lt_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o)
.data 0x0000000008100768 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o)
*(D)
0x0000000008100950 . = ALIGN (0x10)
0x0000000008100770 . = ALIGN (0x10)
*fill* 0x0000000008100768 0x8
.data.4 0x0000000008100950 0x0 load address 0x0000000000305d64
.data.4 0x0000000008100770 0x0 load address 0x000000000030360c
*(.data.4)
0x0000000008100950 . = ALIGN (0x10)
0x0000000000000080 _sdata = (SIZEOF (.data) + SIZEOF (.data.4))
0x0000000008100770 . = ALIGN (0x10)
0x0000000000000010 _sdata = (SIZEOF (.data) + SIZEOF (.data.4))
0x000000008800df00 _gint_vbr = 0x8800df00
0x000000008800f400 . = ORIGIN (rram)
.gint.data 0x000000008800f400 0x130 load address 0x0000000000305d64
0x0000000000305d64 _lgdata = LOADADDR (.gint.data)
.gint.data 0x000000008800f400 0x130 load address 0x000000000030360c
0x000000000030360c _lgdata = LOADADDR (.gint.data)
0x000000008800f400 _rgdata = .
*(.gint.data .gint.data.*)
.gint.data 0x000000008800f400 0x18 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
@ -676,17 +485,18 @@ LOAD /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a
0x000000008800f530 . = ALIGN (0x10)
0x0000000000000130 _sgdata = SIZEOF (.gint.data)
.gint.bss 0x000000008800f530 0x210 load address 0x0000000000305e94
.gint.bss 0x000000008800f530 0x210 load address 0x000000000030373c
*(.gint.bss .gint.bss.*)
.gint.bss 0x000000008800f530 0x100 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o)
.gint.bss 0x000000008800f630 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
.gint.bss 0x000000008800f654 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.gint.bss 0x000000008800f6dc 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
0x000000008800f6dc gint
.gint.bss 0x000000008800f71c 0x1c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
.gint.bss 0x000000008800f738 0x1 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
.gint.bss 0x000000008800f630 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o)
.gint.bss 0x000000008800f6b8 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o)
0x000000008800f6b8 gint
.gint.bss 0x000000008800f6f8 0x1c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o)
.gint.bss 0x000000008800f714 0x1 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o)
*fill* 0x000000008800f715 0x3
.gint.bss 0x000000008800f718 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o)
0x000000008800f740 . = ALIGN (0x10)
*fill* 0x000000008800f739 0x7
*fill* 0x000000008800f73c 0x4
0x0000000000000210 _sgbss = SIZEOF (.gint.bss)
/DISCARD/

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
build-fx/src/FxEngine/keyboard/keyboard.o: \
src/FxEngine/keyboard/keyboard.c src/FxEngine/keyboard/keyboard.h
src/FxEngine/keyboard/keyboard.h:

Binary file not shown.

View File

@ -0,0 +1 @@
build-fx/src/FxEngine/render/bitmap.o: src/FxEngine/render/bitmap.c

Binary file not shown.

View File

@ -0,0 +1,4 @@
build-fx/src/FxEngine/render/parameters.o: \
src/FxEngine/render/parameters.c src/FxEngine/render/parameters.h
src/FxEngine/render/parameters.h:

Binary file not shown.

View File

@ -0,0 +1,6 @@
build-fx/src/FxEngine/render/translate.o: src/FxEngine/render/translate.c \
src/FxEngine/render/translate.h src/FxEngine/render/parameters.h
src/FxEngine/render/translate.h:
src/FxEngine/render/parameters.h:

Binary file not shown.

View File

@ -0,0 +1,6 @@
build-fx/src/FxEngine/render/zbuffer.o: src/FxEngine/render/zbuffer.c \
src/FxEngine/render/zbuffer.h src/FxEngine/render/parameters.h
src/FxEngine/render/zbuffer.h:
src/FxEngine/render/parameters.h:

Binary file not shown.

View File

@ -1,15 +1,6 @@
build-fx/src/main.o: src/main.c src/FxEngine/FxEngine.h \
src/FxEngine/coord.h src/FxEngine/zbuffer.h src/FxEngine/face.h \
src/FxEngine/FxEngine.h src/controls.h
build-fx/src/main.o: src/main.c src/FxEngine/render/translate.h \
src/FxEngine/render/parameters.h
src/FxEngine/FxEngine.h:
src/FxEngine/render/translate.h:
src/FxEngine/coord.h:
src/FxEngine/zbuffer.h:
src/FxEngine/face.h:
src/FxEngine/FxEngine.h:
src/controls.h:
src/FxEngine/render/parameters.h:

Binary file not shown.

View File

@ -1,124 +0,0 @@
#include "FxEngine.h"
FE_position FE_user = {0,0,0};
double FE_dh, FE_dv, FE_roulis;
static double px, py, pz; // instance flottante des coordonnées des joueurs
static uint32_t frame_interval = 0, frame_interval_min = 1000001, frame_interval_max = 1 ; // in milliseconds
static bool loaded_before = false;
static double dh_vel = 0.05;
static double dv_vel = 0.05;
static double roulis_vel = 0.05;
static void FE_move()
{
key_event_t event;
while (true)
{
event=pollevent();
if (event.type&KEYEV_DOWN)
{
if (event.key==KEY_LEFT)
FE_dh -= dh_vel;
if (event.key==KEY_RIGHT)
FE_dh += dh_vel;
if (event.key==KEY_UP)
FE_dv += dv_vel;
if (event.key==KEY_DOWN)
FE_dv -= dv_vel;
if (event.key==KEY_PLUS)
FE_roulis += roulis_vel;
FE_dh = FE_modulo_2pi(FE_dh);
FE_dv = FE_modulo_2pi(FE_dv);
FE_roulis = FE_modulo_2pi(FE_roulis);
if (event.key==KEY_8)
{
py += FE_cos(FE_dh);
px += FE_sin(FE_dh);
}
if (event.key==KEY_5)
{
py += FE_cos(FE_dh + pi);
px += FE_sin(FE_dh + pi);
}
if (event.key==KEY_4)
{
py += FE_cos(FE_dh - pi_sur2);
px += FE_sin(FE_dh - pi_sur2);
}
if (event.key==KEY_6)
{
py += FE_cos(FE_dh + pi_sur2);
px += FE_sin(FE_dh + pi_sur2);
}
}
if (event.type==KEYEV_NONE) // si tous les évènements ont été traités
break;
}
FE_user.x = px; // actualisation des coordonnées de position
FE_user.y = py;
FE_user.z = pz;
}
void FE_new_frame()
{
dupdate(); // fin du cycle précédent
// gestion du temps avec libprof
if (loaded_before)
{
prof_leave(0);
frame_interval = prof_time(0);
if (frame_interval<frame_interval_min)
frame_interval_min = frame_interval;
if (frame_interval>frame_interval_max)
frame_interval_max = frame_interval;
}
else
{
prof_init(1, 0);
loaded_before=true;
}
prof_clear(0);
prof_enter(0);
FE_zbuffer_clear();
//actualisation de la position, de la direction et des données liées
FE_move();
FE_set_matrice();
dclear(C_WHITE);
}
#define MICROSECOND 1000000
unsigned uint32_t FE_get_fps_current()
{
return MICROSECOND / frame_interval;
}
unsigned uint32_t FE_get_fps_min()
{
return MICROSECOND / frame_interval_max;
}
unsigned uint32_t FE_get_fps_max()
{
return MICROSECOND / frame_interval_min;
}
static char fps_history[15];
char* FE_get_fps_history()
{
sprintf(fps_history, "%d/%d/%d", FE_get_fps_min(), FE_get_fps_current(), FE_get_fps_max());
return fps_history;
}

View File

@ -1,62 +0,0 @@
#ifndef FENG_H
#define FENG_H
#include "coord.h"
#include "zbuffer.h"
#include <libprof.h>
#include <stdbool.h>
#include <gint/keyboard.h>
#include <gint/clock.h>
#include <gint/display.h>
/* Coordonnées de la caméra
on utilise des double pour la direction
et des int pour la position (bien qu'une copie flottante cachée existe)
*/
extern double FE_dh, FE_dv, FE_roulis;
extern FE_position FE_user;
/* FE_new_frame():
affiche l'image précedemment dessinée et lance un nouveau cycle de dessin
Dépend de :
"FxEngine.h"
FE_move()
"coord.h"
FE_set_matrice()
"zbuffer.h"
FE_zbuffer_clear()
<libprof.h>
prof_init()
prof_clear()
prof_enter()
prof_leave()
prof_time() */
void FE_new_frame(void); // calls move function
/* FE_get_fps_current():
obtient le nombre d'Images Par Seconde (IPS) calculé à partir du dernier cycle */
unsigned int FE_get_fps_current(void);
/* FE_get_fps_min():
obtient le nombre d'images par seconde le plus bas ayant existé depuis le démarrage du moteur 3d */
unsigned int FE_get_fps_min(void);
/* FE_get_fps_max():
obtient le nombre d'images par seconde le plus haut ayant existé depuis le démarrage du moteur 3d */
unsigned int FE_get_fps_max(void);
/* FE_get_fps_history():
renvoie, dans une version compactée, les nombres minimum, actuel et maximum d'images par seconde
Dépend de :
"FxEngine.h"
FE_get_fps_min()
FE_get_fps_max()
FE_get_fps_max()
<gint/std/stdio.h>
sprintf() */
char* FE_get_fps_history(void);
#endif

View File

@ -1,114 +0,0 @@
#include "coord.h"
const double FE_PI = 3.141592653589793238462643383279;
const double FE_2_PI = FE_PI * 2;
const double FE_PI_SUR_2 = FE_PI / 2;
static const int32_t precision=15; // précision (nombre obligatoirement impair) choisie de façon arbitraire
static double reducted_cos(const double a)
{
double u= 1.0;
const double a2 = a * a;
for(int32_t p = precision; p>=1; p -= 2)
u = 1 - a2 / (p * p + p) * u;
return u;
}
// return a with -pi<=a<pi
double FE_modulo_2pi(double a)
{
while (a<=-pi)
a += pi2;
while (a>pi)
a -= pi2;
return a;
}
static double cos_recursive(double angle)
{
if (angle<0)
return cos_recursive(-angle);
if (angle>=FE_PI_SUR_2)
return -reducted_cos(angle - pi);
return reducted_cos(angle); // OK
}
double FE_cos(double angle)
{
angle = FE_modulo_2pi(angle);
return cos_recursive(angle);
}
double FE_sin(double angle)
{
return FE_cos(angle - pi_sur2);
}
#define sgn(x) (x>=0?x:-x)
static double matrice[3][3]=
{
{0,0,0},
{0,0,0},
{0,0,0}
};
void FE_calc(FE_point* point)
{
static FE_position temp;
temp.x = point->real.x - FE_user.x;
temp.y = point->real.y - FE_user.y;
temp.z = point->real.z - FE_user.z;
point->rotated.x = (double)(matrice[0][0]*(double)temp.x + matrice[0][1]*(double)temp.y + matrice[0][2]*(double)temp.z);
point->rotated.z = (double)(matrice[1][0]*(double)temp.x + matrice[1][1]*(double)temp.y + matrice[1][2]*(double)temp.z);
point->rotated.y = (double)(matrice[2][0]*(double)temp.x + matrice[2][1]*(double)temp.y + matrice[2][2]*(double)temp.z);
//point->translated.x*=10;
//point->translated.y*=10;
point->rotated.x*=64;
point->rotated.y*=64;
point->translated.z=point->rotated.z;
if (point->translated.z>0)
{
point->translated.x=point->rotated.x/point->translated.z;
point->translated.y=point->rotated.y/point->translated.z;
}
else
{
point->translated.x=point->rotated.x*10000*sgn(point->translated.z);
point->translated.y=point->rotated.y*10000*sgn(point->translated.z);
}
(point->translated.x*1000)/point->translated.z;
(point->translated.y*1000)/point->translated.z;
point->translated.x+=63;
point->translated.y+=31;
}
// FIABLE
void FE_set_matrice(void)
{
const double A=FE_cos(FE_dv), B=FE_sin(FE_dv);
const double C=FE_cos(FE_roulis), D=FE_sin(FE_roulis);
const double E=FE_cos(FE_dh), F=FE_sin(FE_dh);
const double AD=A*D, BD=B*D;
matrice[0][0]=C*E;
matrice[0][1]=-C*F;
matrice[0][2]=D;
matrice[1][0]=BD*E+A*F;
matrice[1][1]=-BD*F+A*E;
matrice[1][2]=-B*C;
matrice[2][0]=-AD*E+B*F;
matrice[2][1]=AD*F+B*E;
matrice[2][2]=A*C;
}

View File

@ -1,61 +0,0 @@
#ifndef FE_COORD_H
#define FE_COORD_H
#include "FxEngine.h"
/* FE_position:
notion de point dans l'espace simple */
typedef struct FE_position FE_position;
struct FE_position
{int32_t x,y,z;};
/* FE_point:
notion de point dans l'espace destiné à etre utilisé dans l'affichage
Dépend de
"coord.h"
FE_position */
typedef struct FE_point FE_point;
struct FE_point
{FE_position real,translated,rotated};
/* FE_calc():
applique la matrice de rotation sur les coordonnées d'un point
Dépend de :
"coord.h"
FE_cos()
FE_sin()
FE_point */
void FE_calc(FE_point* point);
/* FE_set_matrice():
change la matrice de rotation pour le cycle à venir
Dépend de :
"coord.h"
FE_cos()
FE_sin() */
void FE_set_matrice(void);
/* constantes mathématiques */
extern const double FE_PI, FE_2_PI, FE_PI_SUR_2;
/* FE_modulo_2pi():
ramener la mesure d'un angle orienté à la valeur comprise entre 0 et 2 pi */
double FE_modulo_2pi(double a);
/* FE_cos():
implémentation du cosinus */
double FE_cos(double angle);
/* FE_sin():
implémentation du sinus
Dépend de :
"coord.h"
FE_cos() */
double FE_sin(const double angle);
#endif

View File

@ -1,135 +0,0 @@
#include "face.h"
#include "texture.h"
#include "zbuffer.h"
#include <stdbool.h>
#include <gint/display.h>
#define min(x,y) (x<y?x:y)
#define max(x,y) (x>y?x:y)
#define abs(x) (x>0?x:-x)
static bool sens_horaire(FE_face const * face)
{
int area = 0;
area+=face->s1->translated.x*face->s2->translated.y;
area-=face->s2->translated.x*face->s1->translated.y;
area+=face->s2->translated.x*face->s3->translated.y;
area-=face->s3->translated.x*face->s2->translated.y;
area+=face->s3->translated.x*face->s1->translated.y;
area-=face->s1->translated.x*face->s3->translated.y;
return (area < 0);
}
// gestion des lignes
typedef struct line line;
struct line
{
int x,y,z;
int dx,dy,dz;
bool no_line; // si les deux points sont confondus
};
static void set_line(line* segment,FE_point const * s1, FE_point const * s2)
{
segment->x=s1->translated.x;
segment->y=s1->translated.y;
segment->z=s1->translated.z;
segment->dx=s2->translated.x-s1->translated.x;
segment->dy=s2->translated.y-s1->translated.y;
segment->dz=s2->translated.z-s1->translated.z;
segment->no_line=(segment->dx==0&&segment->dy==0);
}
static bool get_x(int y, line const * segment, int * x)
{
y-=segment->y;
if (y<0 && segment->dy>0)
return false;
if (y>0 && segment->dy<0)
return false;
if (abs(y)>abs(segment->dy))
return false;
if (segment->dy!=0)
*x=segment->x+(y*segment->dx)/segment->dy;
else if (y==0)
*x=segment->x+segment->dx;
else
return false;
return true;
}
void FE_draw_face(FE_face const * face)
{
if (sens_horaire(face)!=face->visible)
return;
if (face->s1->translated.x<0 && face->s2->translated.x<0 && face->s3->translated.x<0)
return;
if (face->s1->translated.x>127 && face->s2->translated.x>127 && face->s3->translated.x>127)
return;
if (face->s1->translated.y<0 && face->s2->translated.y<0 && face->s3->translated.y<0)
return;
if (face->s1->translated.y>63 && face->s2->translated.y>63 && face->s3->translated.y>63)
return;
if (face->s1->translated.z<=0 && face->s2->translated.z<=0 && face->s3->translated.z<=0)
return;
line cotes[3];
set_line(&cotes[0],face->s1,face->s2);
set_line(&cotes[1],face->s1,face->s3);
set_line(&cotes[2],face->s2,face->s3);
if (cotes[0].no_line||cotes[1].no_line||cotes[2].no_line)
return;
const int ymin=max(min(face->s1->translated.y,min(face->s2->translated.y,face->s3->translated.y)),0);
const int ymax=min(max(face->s1->translated.y,max(face->s2->translated.y,face->s3->translated.y)),63);
const int xAB=face->s2->translated.x-face->s1->translated.x, yAB=face->s2->translated.y-face->s1->translated.y, zAB=face->s2->translated.z-face->s1->translated.z;
const int xAC=face->s3->translated.x-face->s1->translated.x, yAC=face->s3->translated.y-face->s1->translated.y, zAC=face->s3->translated.z-face->s1->translated.z;
const int diviseur_commun=(xAB*yAC-yAB*xAC); //(multiplier par 10000)
const int fact_1=(10000*yAC)/diviseur_commun, fact_2=(10000*xAC)/diviseur_commun;
const int fact_3=(10000*xAB)/diviseur_commun, fact_4=(10000*yAB)/diviseur_commun;
for (int y=ymin; y<=ymax; y++)
{
// détermination du xmin et du xmax de la ligne
int tx1,tx2;
for (int t=0;t<3;t++)
{if (get_x(y,&cotes[t],&tx1)) break;}
for (int t=0;t<3;t++)
{if (get_x(y,&cotes[t],&tx2)&&tx1!=tx2) break;}
const int txmin=max(min(tx1,tx2),0), txmax=min(max(tx1,tx2),127);
for (int x=txmin; x<=txmax; x++)
{
double vx, vy, z;
// calcul de vx, vy
vx=(xcalc*fact_1-ycalc*fact_2); // 0 <vx< 10_000
vy=(ycalc*fact_3-xcalc*fact_4); // idem
z=face->s1->translated.z + (vx*zAB+vy*zAC)/10000;
vx/=10000;
vy/=10000;
vx /= (double)face->s2->translated.z / ((1-vx) / face->s1->translated.z + vx / (double)face->s2->translated.z);
vy /= (double)face->s3->translated.z / ((1-vy) / face->s1->translated.z + vy / (double)face->s3->translated.z);
// Affichage du point
if (FE_zbuffer_set_dist(x,y,z))
dpixel(x, y, 3*FE_get_pixel(face->texturenum, 8*vx, 8*vy)); // 3* means cast to black and white, and vx,and vy casted between 0 and 7
}
}
// x=Det(AM,AC)/det(AB,AC)
// y=det(AM,AB)/det(AC,AB)
// x=(xAM*yAC-yAM*xAC)/(xAB*yAC-yAB*xAC)
// y=(xAM*yAB-yAM*xAB)/(xAC*yAB-yAC*xAB)
// soit diviseur_commun = (xAB*yAC-yAB*xAC)
// x=xAM*yAC/diviseur_commun-yAM*xAC/diviseur_commun
// y=yAM*xAB/diviseur_commun-xAM*yAB/diciseur_commun
}

View File

@ -1,17 +0,0 @@
#ifndef FE_FACE_H
#define FE_FACE_H
#include "coord.h"
#include "FxEngine.h"
typedef struct FE_face FE_face;
struct FE_face
{
FE_point *s1,*s2,*s3;
bool visible; // true => clockwised
int texturenum;
};
void FE_draw_face(FE_face const * face);
#endif

View File

@ -1,33 +0,0 @@
#include "keyboard.h"
static callback callbacks[3][6][10]={0};
static inline uint32_t get_x(const uint32_t matrix_code)
{
return (matrix_code-1) % 0x10;
}
static inline uint32_t get_y(const uint32_t matrix_code)
{
return (matrix_code-1) / 0x10;
}
void FE_keyboard_reload()
{
key_event_t event;
while (1)
{
event=pollevent();
event.type--;
if (event.type==-1)
break;
callback action = callbacks[event.type][get_x(event.key)][get_y(event.key)];
if (action)
action();
}
}
void FE_keyboard_set_key(uint32_t matrix_code, uint32_t ev_type, callback function)
{
callbacks[ev_type-1][get_x(matrix_code)][get_y(matrix_code)]=function;
}

View File

@ -1,22 +0,0 @@
#ifndef FE_KEYBOARD
#define FE_KEYBOARD
#include <gint/keyboard.h>
#include <gint/keycodes.h>
#include <stdint.h>
/* FE_keyboard: gestion evenementielle du clavier
on peut assigner des callbacks à certains evènements définis dans gint
les arguments envoyés sont le code de la touche en question (event.key)
le type d'evenement (event.type)
void (*callback)(void)
la fonction à exécuter en cas de pression sur une touche
la fonction reload est appelée à la demande de l'utilisateur et appelle tous les callbacks dans l'ordre */
typedef void (*callback)(void);
void FE_keyboard_set_key(uint32_t matrix_code, uint32_t ev_type, callback function);
void FE_keyboard_reload();
#endif

View File

@ -1,73 +0,0 @@
#include <gint/timer.h>
#include <gint/clock.h>
#include <gint/mpu/tmu.h>
#include <gint/std/stdlib.h>
#include <gint/hardware.h>
#include <libprof.h>
/* Recursion depth of each function currently being executed */
uint8_t *prof_rec = NULL;
/* Time that has elapsed within each function; the value for a given function
is only relevant when it is not executing, due to optimizations */
uint32_t *prof_elapsed = NULL;
/* Timer counter */
uint32_t volatile *prof_tcnt = NULL;
/* Timer ID */
static int prof_timer;
/* prof_init(): Initialize the profiler's data and timer */
int prof_init(int n, int timer)
{
if((unsigned)timer >= 3) return 1;
prof_rec = malloc(n * sizeof *prof_rec);
prof_elapsed = malloc(n * sizeof *prof_elapsed);
int status = timer_setup(timer, 0xffffffff, timer_Po_4, NULL, NULL);
if(!prof_rec || !prof_elapsed || status < 0)
{
prof_quit();
return 1;
}
/* Fix the configuration done by gint by disabling the interrupt */
if(isSH3())
{
SH7705_TMU.TMU[timer].TCR.UNIE = 0;
prof_tcnt = &SH7705_TMU.TMU[timer].TCNT;
}
else
{
SH7305_TMU.TMU[timer].TCR.UNIE = 0;
prof_tcnt = &SH7305_TMU.TMU[timer].TCNT;
}
timer_start(timer);
prof_timer = timer;
return 0;
}
/* prof_quit(): Free the profiler's data and timer */
void prof_quit(void)
{
timer_stop(prof_timer);
free(prof_rec);
free(prof_time);
}
//---
// Post-measurement analysis
//---
/* prof_time(): Time spent in a given context, in microseconds */
uint32_t prof_time(int ctx)
{
int Pphi = clock_freq()->Pphi_f;
uint64_t time = prof_elapsed[ctx];
return (time * 4 * 1000000) / Pphi;
}

View File

@ -1,75 +0,0 @@
//---
// libprof: A manual profiling library for gint
//---
#ifndef LIBPROF_LIBPROF
#define LIBPROF_LIBPROF
#include <stdint.h>
//---
// Initialization
//---
/* prof_init(): Initialize the profiler's data and timer
Initializes [prof_rec] and [prof_time] (see below) with enough elements to
hold all the context IDs. Context IDs should be numbered from 0 to [n-1];
due to speed requirements array bounds are not checked so be careful.
Also starts a timer to count time. The timer ID must be set to 0, 1 or 2 as
the standard TMU is the most tweakable and precise. libprof automatically
selects an accurate timer configuration.
@n Number of different contexts (functions) that will be measured
@timer Timer ID, see <gint/timer.h> to select one
Returns non-zero if a setup error occurs. */
int prof_init(int n, int timer);
/* prof_quit(): Free the profiler's data and timer */
void prof_quit(void);
//---
// Runtime time measurement
//---
/* Recursion depth of each function currently being executed */
extern uint8_t *prof_rec;
/* Time that has elapsed within each function; the value for a given function
is only relevant when it is not executing, due to optimizations */
extern uint32_t *prof_elapsed;
/* Timer counter */
extern uint32_t volatile *prof_tcnt;
/* prof_enter(): Start counting time for a function
This macro should be called at the start of the context scope. If the
function was already executing then the deepest instance in the stack is
used instead of creating a new counter. */
#define prof_enter(ctx) { \
if(!prof_rec[ctx]++) prof_elapsed[ctx] += *prof_tcnt; \
}
/* prof_leave(): Stop counting time for a function
This should be called at the end of the context scope; it only actually
stops if there is no deeper instance of the context in the stack. If there
are not as exactly as many prof_leave()'s as prof_enter()'s then the
resulting time measure will not be relevant at all. */
#define prof_leave(ctx) { \
if(!--prof_rec[ctx]) prof_elapsed[ctx] -= *prof_tcnt; \
}
/* prof_clear(): Clear a context's counter
This operation is defined only if the context is not being profiled. */
#define prof_clear(ctx) { \
prof_elapsed[ctx] = 0; \
}
//---
// Post-measurement analysis
//---
/* prof_time(): Time spent in a given context, in microseconds
Should only be called when the context is not currently executing. */
uint32_t prof_time(int ctx);
#endif /* LIBPROF_LIBPROF */

View File

@ -1,13 +0,0 @@
#include "texture.h"
unsigned char const FE_textures[3][8]=
{
{0,0,0,0,0,0,0,0}, // full white
{255,255,255,255,255,255,255,255}, // full black
{255,193,161,145,137,133,131,255} // borders and diagonal
};
bool FE_get_pixel(int num,int x, int y)
{
return ((1<<(7-x)) & (FE_textures[num][y]));
}

View File

@ -1,26 +0,0 @@
#ifndef FE_TEXTURE_H
#define FE_TEXTURE_H
#include <stdbool.h>
/** Header pour les textures de FxEngine
* format - textures monochromes au format 8x8 => stocké sur 8 unsigned char
* accès - une texture est définie par son numéro
* l'accès à un pixel se fait avec FE_get_pixel
**/
/** numéros d'accès des textures : **/
#define FE_T_BLANC 0
#define FE_T_NOIR 1
#define FE_T_CAISSE 2
/** tableau des textures : défini dans <texture.c> **/
extern unsigned char const FE_textures[][8];
/** FE_get_pixel - accès à un pixel individuel d'une texture
* x et y sont compris entre 0 et 7
* numéro de texture classique
* retourne la couleur sur un bit
**/
bool FE_get_pixel(int texture_num, int x, int y);
#endif

View File

@ -1,60 +0,0 @@
#include "zbuffer.h"
#include <stdbool.h>
#include <gint/display.h>
#include <gint/std/stdio.h>
#include <gint/std/stdlib.h>
#include <gint/keyboard.h>
/** size_uint32
* taille du zbuffer exprimée en uint32_t
* utile pour l'effacement du zbuffer sur sh3
**/
static const int size_uint32 = FE_ZB_SIZE_X*FE_ZB_SIZE_X;
/** size_char
* taille du zbuffer exprimée en octets
* sera utile pour le DMA Controller
**/
static const int size_char = size_uint32*sizeof(uint32_t);
/** address
* addresse du zbuffer
**/
static uint32_t* address=0;
void FE_zbuffer_clear()
{
while (address==0)
{
address = malloc(size_octets);
if (address==0) // cas de figure où il n'y a plus assez de RAM
{
dclear(C_WHITE);
dtext(1, 1, "Not enough RAM...", C_BLACK, C_NONE);
}
}
// TODO déterminer le type d'effacement
// effacement fait par le CPU
uint32_t indice = 0;
for (indice = 0; indice < size_uint32; indice ++)
address[indice] = 3000;
// effacement fait par le DMA
// TODO
}
bool FE_zbuffer_set_dist(int x, int y, int dist)
{
x %= FE_ZB_SIZE_X;
y %= FE_ZB_SIZE_Y;
const int indice = x * 64 + y;
if (address[indice]>dist && dist>0)
{
address[indice] = dist;
return true;
}
else
return false;
}

View File

@ -1,22 +0,0 @@
#ifndef FE_ZBUFFER
#define FE_ZBUFFER
/** Taille du z_buffer **/
#define FE_ZB_SIZE_X 128
#define FE_ZB_SIZE_Y 64
/** FE_zbuffer_clear
* effacer le z buffer pour un nouveau cycle de dessin
* TODO : ajouter effacement avec le DMA Controller pour les modèles ayant un processeur SH4-A
**/
void FE_zbuffer_clear();
#include <stdbool.h>
/** FE_zbuffer_set_dist
* change la distance d'un pixel du zbuffer
* retourne true si il faut dessiner le pixel
* retourne false si le pixel est déjà existant
**/
bool FE_zbuffer_set_dist(int x, int y, int dist); // if you are allowed to draw the pixel on vram
#endif

View File

@ -1,25 +0,0 @@
#include "controls.h"
#include <gint/display.h>
#include <gint/std/stdlib.h>
#include <gint/std/stdio.h>
#include <stdbool.h>
#include "FxEngine/FxEngine.h"
void init_controls()
{
dfont(&font_FxEngine);
}
static bool fps_visibility;
static char fps[10];
void reload_fps_displaying()
{
sprintf(fps,"%d",FE_get_fps_current());
}
void display_fps(int x, int y)
{
dimage(x,y,&img_fps);
dtext(x+11, y+2, fps, C_BLACK, C_NONE);
}

View File

@ -1,11 +0,0 @@
#ifndef CONTROLS_H
#define CONTROLS_H
#include <gint/display.h>
extern font_t font_FxEngine;
extern image_t img_fps;
void init_controls();
void reload_fps_displaying();
void display_fps(int x, int y);
#endif

View File

@ -1,8 +0,0 @@
#ifndef CREDITS_H
#define CREDITS_H
#define AUTHOR "Milang"
#define NAME "1v1 3D"
#define VERSION "Alpha Build 1.00"
#endif

View File

@ -3,35 +3,37 @@
#include <gint/std/stdio.h>
#include <gint/std/stdlib.h>
#include <gint/clock.h>
#include "FxEngine/FxEngine.h"
#include "FxEngine/face.h"
#include "controls.h"
#include "fxengine/render/translate.h"
int main(void)
{
init_controls();
//init_controls();
dclear(C_WHITE);
FE_point point[4]={{{10,0,0},{0,0,0}},{{10,10,0},{0,0,0}},{{10,0,10},{0,0,0}},{{10,10,10},{0,0,0}}};
FE_face face={&point[0],&point[1],&point[2],1,2};
FE_face face2={&point[3],&point[1],&point[2],0,2};
FE_integer_point point[4]={{{10,0,0},{0,0,0}},{{10,10,0},{0,0,0}},{{10,0,10},{0,0,0}},{{10,10,10},{0,0,0}}};
//FE_face face={&point[0],&point[1],&point[2],1,2};
//FE_face face2={&point[3],&point[1],&point[2],0,2};
while (1)
{
FE_new_frame();
reload_fps_displaying();
//FE_new_frame();
dclear(C_WHITE);
//reload_fps_displaying();
for (int i=0;i<4;i++)
{
FE_calc(&point[i]);
render_translate(&point[i]);
if (point[i].translated.z>0)
{
dpixel(point[i].translated.x,point[i].translated.y,C_BLACK);
}
}
FE_draw_face(&face);
FE_draw_face(&face2);
display_fps(100,56);
dupdate();
//FE_draw_face(&face);
//FE_draw_face(&face2);
//display_fps(100,56);
}
getkey();
return 1;