From 90d52cb33128bbce14d5b7184764215a38468129 Mon Sep 17 00:00:00 2001 From: util1 Date: Sun, 21 Jul 2019 20:14:54 +0200 Subject: [PATCH] remake FxEngine --- 1v13D.dlw | 22 +- 1v13D.g1a | Bin 10900 -> 17068 bytes FXSH_Build.bat | 22 + INIT/CasioRAM.mem | Bin 0 -> 53792 bytes INIT/CasioRAMCPU.mem | Bin 0 -> 80 bytes Makefile | 6 +- build-fx/map | 792 +++++++++++++++--------- build-fx/src/1v13D.elf | Bin 17684 -> 0 bytes build-fx/src/FxEngine/1v13D.bin | Bin 0 -> 16556 bytes build-fx/src/FxEngine/1v13D.elf | Bin 0 -> 26160 bytes build-fx/src/FxEngine/FxEngine.d | 8 + build-fx/src/FxEngine/FxEngine.o | Bin 0 -> 1376 bytes build-fx/src/FxEngine/coord.d | 10 + build-fx/src/FxEngine/coord.o | Bin 0 -> 936 bytes build-fx/src/FxEngine/functions.d | 4 + build-fx/src/FxEngine/functions.o | Bin 0 -> 1504 bytes build-fx/src/FxEngine/libprof.d | 1 + build-fx/src/FxEngine/libprof.o | Bin 0 -> 1544 bytes build-fx/src/FxEngine/math/coord.d | 6 + build-fx/src/FxEngine/zbuffer.d | 4 + build-fx/src/FxEngine/zbuffer.o | Bin 0 -> 896 bytes build-fx/src/FxEngine/zbuffer/zbuffer.d | 4 + build-fx/src/FxEngine/zbuffer/zbuffer.o | Bin 0 -> 896 bytes build-fx/src/main.d | 9 +- build-fx/src/main.o | Bin 996 -> 1148 bytes src/FxEngine/FxEngine.c | 32 +- src/FxEngine/FxEngine.h | 10 +- src/FxEngine/coord.c | 57 ++ src/FxEngine/{math => }/coord.h | 6 +- src/FxEngine/{math => }/functions.c | 7 +- src/FxEngine/{math => }/functions.h | 2 +- src/FxEngine/libprof.c | 73 +++ src/FxEngine/libprof.h | 75 +++ src/FxEngine/math/coord.c | 52 -- src/FxEngine/object/coordtable.c | Bin 1024 -> 0 bytes src/FxEngine/object/coordtable.h | Bin 1024 -> 0 bytes src/FxEngine/object/face.c | Bin 1024 -> 0 bytes src/FxEngine/object/face.h | Bin 1024 -> 0 bytes src/FxEngine/object/facetable.c | Bin 1024 -> 0 bytes src/FxEngine/object/facetable.h | Bin 1024 -> 0 bytes src/FxEngine/object/object.c | Bin 1024 -> 0 bytes src/FxEngine/object/object.h | Bin 1024 -> 0 bytes src/FxEngine/object/texture.c | 14 - src/FxEngine/object/texture.h | 8 - src/FxEngine/zbuffer.c | 35 ++ src/FxEngine/zbuffer.h | 13 + src/FxEngine/zbuffer/zbuffer.c | 32 - src/FxEngine/zbuffer/zbuffer.h | 20 - src/main.c | 13 + 49 files changed, 889 insertions(+), 448 deletions(-) create mode 100644 FXSH_Build.bat create mode 100644 INIT/CasioRAM.mem create mode 100644 INIT/CasioRAMCPU.mem delete mode 100755 build-fx/src/1v13D.elf create mode 100755 build-fx/src/FxEngine/1v13D.bin create mode 100755 build-fx/src/FxEngine/1v13D.elf create mode 100644 build-fx/src/FxEngine/FxEngine.d create mode 100644 build-fx/src/FxEngine/FxEngine.o create mode 100644 build-fx/src/FxEngine/coord.d create mode 100644 build-fx/src/FxEngine/coord.o create mode 100644 build-fx/src/FxEngine/functions.d create mode 100644 build-fx/src/FxEngine/functions.o create mode 100644 build-fx/src/FxEngine/libprof.d create mode 100644 build-fx/src/FxEngine/libprof.o create mode 100644 build-fx/src/FxEngine/math/coord.d create mode 100644 build-fx/src/FxEngine/zbuffer.d create mode 100644 build-fx/src/FxEngine/zbuffer.o create mode 100644 build-fx/src/FxEngine/zbuffer/zbuffer.d create mode 100644 build-fx/src/FxEngine/zbuffer/zbuffer.o create mode 100644 src/FxEngine/coord.c rename src/FxEngine/{math => }/coord.h (77%) rename src/FxEngine/{math => }/functions.c (80%) rename src/FxEngine/{math => }/functions.h (67%) create mode 100644 src/FxEngine/libprof.c create mode 100644 src/FxEngine/libprof.h delete mode 100644 src/FxEngine/math/coord.c delete mode 100644 src/FxEngine/object/coordtable.c delete mode 100644 src/FxEngine/object/coordtable.h delete mode 100644 src/FxEngine/object/face.c delete mode 100644 src/FxEngine/object/face.h delete mode 100644 src/FxEngine/object/facetable.c delete mode 100644 src/FxEngine/object/facetable.h delete mode 100644 src/FxEngine/object/object.c delete mode 100644 src/FxEngine/object/object.h delete mode 100644 src/FxEngine/object/texture.c delete mode 100644 src/FxEngine/object/texture.h create mode 100644 src/FxEngine/zbuffer.c create mode 100644 src/FxEngine/zbuffer.h delete mode 100644 src/FxEngine/zbuffer/zbuffer.c delete mode 100644 src/FxEngine/zbuffer/zbuffer.h diff --git a/1v13D.dlw b/1v13D.dlw index b15c362..4e317c2 100644 --- a/1v13D.dlw +++ b/1v13D.dlw @@ -2,7 +2,7 @@ [_1] Type=5 -Order=5 +Order=0 Top=15 Left=2235 Height=4740 @@ -13,7 +13,7 @@ OptionA=0 [_2] Type=1 -Order=4 +Order=1 Top=15 Left=7800 Height=4740 @@ -25,7 +25,7 @@ OptionB=15 [_3] Type=6 -Order=2 +Order=5 Top=4740 Left=7800 Height=6390 @@ -36,7 +36,7 @@ OptionA=0 [_4] Type=7 -Order=1 +Order=4 Top=4740 Left=2220 Height=3165 @@ -47,7 +47,7 @@ OptionA=0 [_5] Type=8 -Order=0 +Order=3 Top=7905 Left=2220 Height=3225 @@ -80,7 +80,7 @@ OptionA=0 [_8] Type=17 -Order=3 +Order=6 Top=15 Left=-15 Height=11115 @@ -91,12 +91,12 @@ OptionA=0 [_9] Type=15 -Order=6 +Order=2 Top=4740 -Left=2232 -Height=6348 -Width=5592 -State=16 +Left=2235 +Height=6345 +Width=5595 +State=0 Flags=00000000 OptionA=0 diff --git a/1v13D.g1a b/1v13D.g1a index ae428b7c349f7769bd51464649cc91d5d79485c6..2a6358506477bd734f66f06c7e83c0f6e8933077 100644 GIT binary patch delta 8800 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 W2*&&`X1fTB|6cYg|H@^5_x}I`m;GY^ delta 2557 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

LKmR-bd}J(Alv|7W0_68?yKIM zM?>?K1=s?1a`2Xr-C!OKyD4NI4abKIHSGN;g7{K)@~>mfhrS43BwDZwdMH>Wmp0-? ziT}Q04xrzsAGnR1rj#Gx^Wo;UUm?B}Zj>{;z?(77n@DVh%X7 z0jv^mv9h-D_;8fj1YauZ88~amQjtGEp6a>x)^Tsd%?~~jnM0l`c&j!EpA=kDnMY$7 zbZ3w$y{B}u4Be4=G#qc0%WM)KPIOT?-hJXr#W9bDcsA^&FtQjrW7SA|@_>_D)dNHB zZ_De}*m}NRd41AH$u-D+F+Lophq|1_9Kd+1$bLb0%xs)l=RMDhFlo$oJG2lfZ{ zBF2YX4y?N-d<({h zdk!Y?o1+sbLk-T_Z6S`g`k6e{)koh9UlRGKpUI9}jJFE5fa2!zAxlqGlBX&*4|@?j z)d@D28!-QZ+sJsU@G)w5d^mW$_xi4heTl3FcT-52%^kPsJsn|wvPu$rk+M@}s~F}0 z+$gIeA~o42={27ZCt$$zP~uA|yE5MDZK2uWrC@!4RZ>TMDVo<=W^-u_(?hrCcWJrt zGn?SpU2Y)0l!jN2_M+|x~A`4%mL}dm$H@pcwv(g$A>fO z^>~kFYZ^F{IsTXf=7~KDHsLaxG@q}V`TNFJjgo!DG-sJj+&U_Jze0Se?cl@lGMlu& znTh=G{Vh$PSI~)-X65w{>Mw0pvA9-|)N|t>@0qxku3(abKNp;Z_wi!A(uOl*R+CS- z=P?-lj2or2iLxTkhv54lU=aLB#4DqD=JuN(CV(GlhV0f_%5EJf|LZ*?3xao>aijk6 zp2>%xcRcp>Ki)Gk+Ybg=TyB_PlYlJO;WFk+(7SyNpzZj(<~xWiyZ zC+6?^i>~87u9V_uw~ASo%YI@t=5J&{-ozOQ+>cnm=_bgEv|quzZPE+h2Z{0nf4yfg zfo|_ImgM^oJn#8-*j$lP%-i&i6KjO_aaz_MI2%$F#o zEC}6NNGwhH2EXt(-AZHL#`odbFnk}FZi0DxdSEWS+Zy1xPF#oY1Lkk?C4_Hu>3dxJ zOmoHru)M$?xdrwJvB{@zORT|r&UBN$v%)ZcH_>;CSVrpHUhtN_Yxuil9dbHmY{_h8 zx(T`kMq9D())dScx&gs=={AJEYqnKKmr6X{M?PVIUdMIHUSdzCEC^+{@O@xeE(f{l zRHx^MDGOpKSQN34=_VgeQ@6mN2cgEj@qG|4zvQS=eRcz5dF`Qhn{F9aNY|al_aT#f zPR!eQx1%hjU&dmePc{=RiNK!B_5ziLl=b5|mY3-u%-_HBJ<#>BVH~~>!=K{&PzVCp zBR7qW<9W1 zP`YqY475<++#Yq$lm-=>^Yv`kpF^`rtL7HmVc5{UG~4xYmjNv_wL#u40sNHfO`?nT zBIiO{=n+L?>215#r0;u!?fPss!MDbV?xpeVVY@!3g^qp&Zos46a2z==QITeIc!_UM z%n>B-pY8f!s(-$WoTycx`Hsi^iX+{oQQn)h(3VC0aW^%p68s>}OZ3$PKM3ENfyH1- z;@iV^ecVxNcOxf?ouT~DN~vnh=Fg%Q52V@Trq8tI45ukL+K{H%{CUKJ-jBnza4$Xm zW0LLU`txkpN6y7`5V8p!c>!|2u`|E}739q(#2>509mbDq`1SxHV!Qqli5JILBPXgb%xqt=(Cna|V_&ZOD7&7=e$Ko^Vl@h4HYe|24jLW2|1m2= z3kByzK4QB*G%h8VvVo>M@AS4l@tn`&V_GQl5?}f~iCWF=`WY?w_7F>Q5bmX=*Tk}2 zpJsF9fwl3iQ9&Mf9KJn6EIBO{ENKldZ0#=Rxm};lCat@AvUXB7VPAE$HNHK!NDIZ^ zHGW+}4{3+UecvMOaPYDtq#Y`PLpEbOx9ihvG8*5SjYzJ7C9RKLf2$hPLis#Cqh9y2 ziSI#qFFX0;`kabv!m3eVsw11=qVy@zM!z%5Tb1$njKPvN7jL|@ zS?(k8gED;X?N}sQ6hrxGZr5+lghq#)Xv9L~yYa1wT?LJn%_e_t5=)x$-5VG`s3?N^ ze5QgrtNZaZSd!eX->Y!XJTdf^bmj$uB~98Pe>TD2McSbsSkj~&&XcG(h#g`B*q4se znyzk}$?f`-M_=#_IZ0s!Bl@e8m%F0*M|p+Z;y}xxJKwL z8M&6*_0>I*F}m5Qvo#GpLuaeya3wMrgaxEHb$s)ir+T0LpyHg&c74G)_$|!`OPaC? z=NgsSuFuOpr8LOfkal?eXa7Z{9a0`0e;0Dyo>ws=uwB1GVhM8J@t?po0zWOgtC!I) z^lW^&;4q=aTJp^i^MT||+`AE|j=YyLqM+pczdmN%7x`(n>m#$E^euI8#WAa~ludXF z5A;*Qx*3$8MsLrpow&n5zPs@v?lLf&cV!FT3qk@EUPaY$w(HY<=FDy*0c47XkT*dy z!jq`Q{h-m2H_?s^QT15|>384=QlHO5uW7`Rt~>3l@|ErShP`Q*KsJG&eJY7C?oHYu z^5~=;QXc*1^?A?@Oh=Hnf=mK36-ci7=&@ZNnFZ45mVv2`8NA#v+)RQWMEyPEF`KJ- zJ>+ZW!_6)?DA*_TuzrxMKfxiXk+)0v#_jsM3gB4~OL`je-IxvDP*#C{uf217bhoDe zPa$@_PBb&~pfOb6cCX{>{-9kV(5d)AD88AIOx zfAW}o?R*t9Ipj#M(QJ+xe3mfyLFgIcYv)@v_AlsvKO}HmZL*_E*-`L=c2J+s{I+!e znZFZlWxrgYU4N-W@jh?_x6kZK^TO{HeM508;DJKp4>jz`CGC*y`q&vv2XVVT_=YYD zY}W@334BB8w+GF|FSshdKS%j)clFY6%<}Ahd69_F|SlRE}958rP0{;0NJ% zko|1zd~Y07s~e-FGwpZpe8Po8#u z6u(n?U%74-_w=8-0lDudI$dsH@9FHY0?hK$JknY;H<1=c-q9$C_=MzYlh(ZO$9+sfDkYI4bv|D|em&ifJc?vq zBI{PcOpNzbr~tD(G`Sg_(72${F)uM6rTXQEo?w>0OZ-gcB|0U4m2)^db_Hhnh2akc4Y~J~?fQRb zV!n2cT_5j$soc-lF!q=(^s#jek~Rlt(g4orAY-3)Bk2eWzLd`$Rh zty;);%h(?$eo*nC`IzPNe_@t~#-CV&OcB3Z1%DSVE7`7pzYk`4+Vzn~C%z%OA3@)c z@T}NMDa`UN=P}FQ?8Hp`Pq#`my{E>)w=v7NUcoG%AlQ&2ANPlNy9ADu*twU={y=BysQLA=;|qT4rveY%zIr*g;ahsMt~-9r^CR*eYFiuCQid0MS$ zfz#W-Þ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 z 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%0DYoYC*-$GeT=mF@!dcyhE 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 literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile index 93a942d..fdd1482 100644 --- a/Makefile +++ b/Makefile @@ -38,9 +38,9 @@ target-fx := $(filename).g1a target-cg := $(filename).g3a # Source files -src := $(wildcard src/*.c) -assets-fx := $(wildcard assets-fx/**/*) -assets-cg := $(wildcard assets-cg/**/*) +src := $(shell find src -name '*.c') +assets-fx := $(shell find assets-fx/*/) +assets-cg := $(shell find assets-cg/*/) # Object files obj-fx := $(src:%.c=build-fx/%.o) $(assets-fx:assets-fx/%=build-fx/assets/%.o) diff --git a/build-fx/map b/build-fx/map index 535a5b9..6816ba1 100644 --- a/build-fx/map +++ b/build-fx/map @@ -1,35 +1,33 @@ Archive member included to satisfy reference by file (symbol) -/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) - build-fx/src/main.o (_getkey) -/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) (_waitevent) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + build-fx/src/FxEngine/libprof.o (_clock_freq) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (_gint) + build-fx/src/FxEngine/libprof.o (_gint) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + build-fx/src/FxEngine/libprof.o (_malloc) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (_start) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (_tlb_mapped_memory) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (_timer_setup) + build-fx/src/FxEngine/libprof.o (_timer_setup) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) build-fx/src/main.o (_dupdate) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) build-fx/src/main.o (_dclear) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) build-fx/src/main.o (_dtext) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + build-fx/src/main.o (_sprintf) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) (_memcpy) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) (_t6k11_display) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (_gint_font5x7) -/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (_clock_freq) -/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (_iokbd_scan) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (_gint_install) -/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) (___os_version) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (_gint_setvbr) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) @@ -44,24 +42,57 @@ Archive member included to satisfy reference by file (symbol) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (_charset_size) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (_topti_asm_text) -/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (_memcpy) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (___movmemSI24) -/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (___udivdi3) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) - /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (___udivsi3) + build-fx/src/FxEngine/FxEngine.o (___udivsi3) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + build-fx/src/FxEngine/libprof.o (___udivdi3) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + build-fx/src/FxEngine/functions.o (___adddf3) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + build-fx/src/FxEngine/functions.o (___muldf3) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + build-fx/src/FxEngine/functions.o (___divdf3) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + build-fx/src/FxEngine/functions.o (___gtdf2) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + build-fx/src/FxEngine/functions.o (___ledf2) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + build-fx/src/FxEngine/functions.o (___floatsidf) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + build-fx/src/FxEngine/functions.o (___fixdfsi) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) (___thenan_df) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (___udiv_qrnnd_16) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (___clz_tab) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) (___clzsi2) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) (___pack_d) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) (___unpack_d) +/home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) + /home/util1/Bureau/MILAN/gcc/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/FxEngine/libprof.o + .comment 0x0000000000000000 0x12 build-fx/src/FxEngine/coord.o + .comment 0x0000000000000000 0x12 build-fx/src/FxEngine/FxEngine.o + .comment 0x0000000000000000 0x12 build-fx/src/FxEngine/functions.o + .comment 0x0000000000000000 0x12 build-fx/src/FxEngine/zbuffer.o .comment 0x0000000000000000 0x12 build-fx/src/main.o - .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) - .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) @@ -69,13 +100,12 @@ Discarded input sections .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) .debug_info 0x0000000000000000 0x737 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) .debug_abbrev 0x0000000000000000 0x218 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) .debug_loc 0x0000000000000000 0x6eb /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) @@ -86,6 +116,73 @@ Discarded input sections .debug_str 0x0000000000000000 0x586 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) .eh_frame 0x0000000000000000 0x84 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .debug_info 0x0000000000000000 0x740 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_abbrev 0x0000000000000000 0x244 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_loc 0x0000000000000000 0x6b9 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_ranges 0x0000000000000000 0x60 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_line 0x0000000000000000 0x3e7 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_str 0x0000000000000000 0x5f3 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_info 0x0000000000000000 0x6e9 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_abbrev 0x0000000000000000 0x27c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_loc 0x0000000000000000 0x4d5 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_ranges 0x0000000000000000 0xa8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_line 0x0000000000000000 0x338 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_str 0x0000000000000000 0x5c5 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_info 0x0000000000000000 0x5e6 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_abbrev 0x0000000000000000 0x25c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_loc 0x0000000000000000 0x1c0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_ranges 0x0000000000000000 0x50 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_line 0x0000000000000000 0x265 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_str 0x0000000000000000 0x5b5 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_info 0x0000000000000000 0x4f4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .debug_abbrev 0x0000000000000000 0x1b7 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .debug_loc 0x0000000000000000 0x50 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .debug_line 0x0000000000000000 0x105 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .debug_str 0x0000000000000000 0x582 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .debug_info 0x0000000000000000 0x4f4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .debug_abbrev 0x0000000000000000 0x1b7 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .debug_loc 0x0000000000000000 0x50 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .debug_line 0x0000000000000000 0x105 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .debug_str 0x0000000000000000 0x582 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .debug_info 0x0000000000000000 0x494 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_abbrev 0x0000000000000000 0x1fb /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_loc 0x0000000000000000 0xd1 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_ranges 0x0000000000000000 0x48 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_line 0x0000000000000000 0x183 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_str 0x0000000000000000 0x55d /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_info 0x0000000000000000 0x4ce /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .debug_abbrev 0x0000000000000000 0x1bb /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .debug_loc 0x0000000000000000 0x49 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .debug_line 0x0000000000000000 0x144 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .debug_str 0x0000000000000000 0x57a /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .debug_info 0x0000000000000000 0x391 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .debug_abbrev 0x0000000000000000 0x11c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .debug_aranges + 0x0000000000000000 0x18 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .debug_line 0x0000000000000000 0x96 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .debug_str 0x0000000000000000 0x510 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) .debug_info 0x0000000000000000 0x371 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) .debug_abbrev 0x0000000000000000 0xcf /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) .debug_aranges @@ -93,6 +190,39 @@ Discarded input sections .debug_line 0x0000000000000000 0xc4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) .debug_str 0x0000000000000000 0x503 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + .debug_info 0x0000000000000000 0x3de /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_abbrev 0x0000000000000000 0x129 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_loc 0x0000000000000000 0x5a /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_ranges 0x0000000000000000 0x38 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_line 0x0000000000000000 0x117 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_str 0x0000000000000000 0x520 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_info 0x0000000000000000 0x4d4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_abbrev 0x0000000000000000 0x1cb /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_loc 0x0000000000000000 0x31c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_ranges 0x0000000000000000 0x58 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_line 0x0000000000000000 0x269 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_str 0x0000000000000000 0x56e /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_info 0x0000000000000000 0x45d /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .debug_abbrev 0x0000000000000000 0x18b /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .debug_loc 0x0000000000000000 0xb5 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .debug_line 0x0000000000000000 0x18a /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .debug_str 0x0000000000000000 0x550 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .debug_info 0x0000000000000000 0x425 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) + .debug_abbrev 0x0000000000000000 0x173 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) + .debug_aranges + 0x0000000000000000 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) + .debug_line 0x0000000000000000 0x1e1 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) + .debug_str 0x0000000000000000 0x533 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) + .comment 0x0000000000000000 0x12 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) Memory Configuration @@ -105,11 +235,16 @@ rram 0x000000008800f400 0x0000000000000c00 xrw Linker script and memory map +LOAD build-fx/src/FxEngine/libprof.o +LOAD build-fx/src/FxEngine/coord.o +LOAD build-fx/src/FxEngine/FxEngine.o +LOAD build-fx/src/FxEngine/functions.o +LOAD build-fx/src/FxEngine/zbuffer.o LOAD build-fx/src/main.o LOAD /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a LOAD /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a 0x0000000000300000 _brom = 0x300000 - 0x00000000000020c4 _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + 0x000000000000389c _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) .pretext 0x0000000000300200 0x890 *(.pretext.entry) @@ -119,21 +254,21 @@ LOAD /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a *(.pretext) .pretext 0x00000000003003cc 0xd0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) 0x00000000003003cc _hw_detect - .pretext 0x000000000030049c 0x324 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - 0x000000000030053e _topti_render - 0x0000000000300780 _dtext - .pretext 0x00000000003007c0 0x88 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) - 0x00000000003007c0 ___os_version - 0x00000000003007cc _malloc - 0x00000000003007d8 _free - 0x00000000003007e4 _calloc - 0x00000000003007f0 _realloc - 0x00000000003007fc _BFile_Remove - 0x0000000000300808 _BFile_Create - 0x0000000000300814 _BFile_Open - 0x0000000000300820 _BFile_Close - 0x000000000030082c _BFile_Write - 0x0000000000300838 _BFile_Read + .pretext 0x000000000030049c 0x88 /home/util1/Bureau/MILAN/gcc/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 + .pretext 0x0000000000300524 0x324 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x00000000003005c6 _topti_render + 0x0000000000300808 _dtext .pretext 0x0000000000300848 0x110 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) 0x0000000000300848 _dfont 0x0000000000300860 _charset_size @@ -148,292 +283,370 @@ LOAD /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a *(.dtors .dtors.*) 0x0000000000300a90 _etors = . -.text 0x0000000000300a90 0x17b0 +.text 0x0000000000300a90 0x2f60 *(.text .text.*) - .text 0x0000000000300a90 0x0 build-fx/src/main.o - .text.startup 0x0000000000300a90 0x44 build-fx/src/main.o - 0x0000000000300a90 _main - .text 0x0000000000300ad4 0x1c8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) - 0x0000000000300ad4 _getkey_opt - 0x0000000000300c54 _getkey - 0x0000000000300c60 _getkey_repeat - .text 0x0000000000300c9c 0x2c8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - 0x0000000000300e40 _pollevent - 0x0000000000300f2c _waitevent - .text 0x0000000000300f64 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) - .text 0x0000000000300f64 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) - .text 0x0000000000300f64 0x1f4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) - 0x0000000000300f64 _tlb_addr - 0x0000000000300f78 _tlb_data - 0x0000000000300f8c _tlb_mapped_memory - 0x0000000000301060 _utlb_addr - 0x0000000000301070 _utlb_data - 0x0000000000301080 _utlb_mapped_memory - .text 0x0000000000301158 0x56c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) - 0x0000000000301478 _timer_setup - 0x0000000000301508 _timer_delay - 0x0000000000301568 _timer_start - 0x000000000030159c _timer_reload - 0x00000000003015bc _timer_pause - 0x00000000003015f0 _timer_stop - 0x000000000030164c _timer_timeout - 0x0000000000301658 _timer_address - 0x0000000000301694 _timer_clear - .text 0x00000000003016c4 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) - 0x00000000003016c4 _dupdate - 0x00000000003016dc _dupdate_noint - .text 0x00000000003016e8 0x4c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) - 0x00000000003016e8 _dclear - .text 0x0000000000301734 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - .text 0x0000000000301734 0x1d8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - 0x00000000003017cc _t6k11_display - 0x00000000003018a0 _t6k11_contrast - 0x00000000003018cc _t6k11_backlight - .text 0x000000000030190c 0x150 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - 0x0000000000301a50 _clock_freq - .text 0x0000000000301a5c 0x124 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) - 0x0000000000301a68 _iokbd_row - 0x0000000000301b50 _iokbd_scan - .text 0x0000000000301b80 0x170 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) - 0x0000000000301c34 _gint_install - 0x0000000000301cd8 _gint_unload - .text 0x0000000000301cf0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) - .text 0x0000000000301cf0 0x2c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) - 0x0000000000301cf0 _gint_setvbr - .text 0x0000000000301d1c 0x78 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) - 0x0000000000301d1c _gint_intlevel - 0x0000000000301d70 _gint_inthandler - .text 0x0000000000301d94 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) - .text 0x0000000000301d94 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) - .text 0x0000000000301d94 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) - .text 0x0000000000301d94 0x9c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - 0x0000000000301d94 _dsize - .text 0x0000000000301e30 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) - .text 0x0000000000301e30 0xdc /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) - 0x0000000000301e30 _memcpy - 0x0000000000301eea __memmove - 0x0000000000301eee __memcmp - 0x0000000000301ef2 _memset - .text 0x0000000000301f0c 0x78 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) - 0x0000000000301f0c ___movstr - 0x0000000000301f0c ___movmem - 0x0000000000301f40 ___movmemSI64 - 0x0000000000301f40 ___movstrSI64 - 0x0000000000301f44 ___movstrSI60 - 0x0000000000301f44 ___movmemSI60 - 0x0000000000301f48 ___movmemSI56 - 0x0000000000301f48 ___movstrSI56 - 0x0000000000301f4c ___movstrSI52 - 0x0000000000301f4c ___movmemSI52 - 0x0000000000301f50 ___movstrSI48 - 0x0000000000301f50 ___movmemSI48 - 0x0000000000301f54 ___movstrSI44 - 0x0000000000301f54 ___movmemSI44 - 0x0000000000301f58 ___movstrSI40 - 0x0000000000301f58 ___movmemSI40 - 0x0000000000301f5c ___movstrSI36 - 0x0000000000301f5c ___movmemSI36 - 0x0000000000301f60 ___movmemSI32 - 0x0000000000301f60 ___movstrSI32 - 0x0000000000301f64 ___movmemSI28 - 0x0000000000301f64 ___movstrSI28 - 0x0000000000301f68 ___movstrSI24 - 0x0000000000301f68 ___movmemSI24 - 0x0000000000301f6c ___movmemSI20 - 0x0000000000301f6c ___movstrSI20 - 0x0000000000301f70 ___movstrSI16 - 0x0000000000301f70 ___movmemSI16 - 0x0000000000301f74 ___movmemSI12 - 0x0000000000301f74 ___movstrSI12 - 0x0000000000301f78 ___movmemSI8 - 0x0000000000301f78 ___movstrSI8 - 0x0000000000301f7c ___movmemSI4 - 0x0000000000301f7c ___movstrSI4 - .text 0x0000000000301f84 0x1f0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) - 0x0000000000301f84 ___udivdi3 - .text 0x0000000000302174 0x6c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) - 0x0000000000302196 ___udivsi3 - .text 0x00000000003021e0 0x60 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) - 0x00000000003021e0 ___udiv_qrnnd_16 - .text 0x0000000000302240 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + .text 0x0000000000300a90 0x154 build-fx/src/FxEngine/libprof.o + 0x0000000000300a90 _prof_time + 0x0000000000300ad4 _prof_quit + 0x0000000000300b08 _prof_init + .text 0x0000000000300be4 0x64 build-fx/src/FxEngine/coord.o + 0x0000000000300be4 _FE_calc + 0x0000000000300bf2 _FE_set_matrice + .text 0x0000000000300c48 0xc0 build-fx/src/FxEngine/FxEngine.o + 0x0000000000300c48 _FE_new_frame + 0x0000000000300cec _FE_get_fps + .text 0x0000000000300d08 0x1b0 build-fx/src/FxEngine/functions.o + 0x0000000000300d08 _FE_cos + 0x0000000000300e90 _FE_sin + .text 0x0000000000300eb8 0x8c build-fx/src/FxEngine/zbuffer.o + 0x0000000000300eb8 _FE_zbuffer_clear + 0x0000000000300ef4 _FE_zbuffer_set_dist + .text 0x0000000000300f44 0x0 build-fx/src/main.o + .text.startup 0x0000000000300f44 0x78 build-fx/src/main.o + 0x0000000000300f44 _main + .text 0x0000000000300fbc 0x150 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x0000000000301100 _clock_freq + .text 0x000000000030110c 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .text 0x000000000030110c 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .text 0x000000000030110c 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .text 0x000000000030110c 0x1f4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + 0x000000000030110c _tlb_addr + 0x0000000000301120 _tlb_data + 0x0000000000301134 _tlb_mapped_memory + 0x0000000000301208 _utlb_addr + 0x0000000000301218 _utlb_data + 0x0000000000301228 _utlb_mapped_memory + .text 0x0000000000301300 0x56c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + 0x0000000000301620 _timer_setup + 0x00000000003016b0 _timer_delay + 0x0000000000301710 _timer_start + 0x0000000000301744 _timer_reload + 0x0000000000301764 _timer_pause + 0x0000000000301798 _timer_stop + 0x00000000003017f4 _timer_timeout + 0x0000000000301800 _timer_address + 0x000000000030183c _timer_clear + .text 0x000000000030186c 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + 0x000000000030186c _dupdate + 0x0000000000301884 _dupdate_noint + .text 0x0000000000301890 0x4c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + 0x0000000000301890 _dclear + .text 0x00000000003018dc 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .text 0x00000000003018dc 0xc00 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + 0x0000000000302204 _kprint_opt + 0x000000000030233c _kprint + 0x0000000000302414 _kvsprint + 0x000000000030245c _sprintf + 0x0000000000302484 _vsprintf + 0x00000000003024a4 _snprintf + 0x00000000003024c4 _vsnprintf + .text 0x00000000003024dc 0xdc /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + 0x00000000003024dc _memcpy + 0x0000000000302596 __memmove + 0x000000000030259a __memcmp + 0x000000000030259e _memset + .text 0x00000000003025b8 0x1d8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + 0x0000000000302650 _t6k11_display + 0x0000000000302724 _t6k11_contrast + 0x0000000000302750 _t6k11_backlight + .text 0x0000000000302790 0x170 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + 0x0000000000302844 _gint_install + 0x00000000003028e8 _gint_unload + .text 0x0000000000302900 0x2c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + 0x0000000000302900 _gint_setvbr + .text 0x000000000030292c 0x78 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x000000000030292c _gint_intlevel + 0x0000000000302980 _gint_inthandler + .text 0x00000000003029a4 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .text 0x00000000003029a4 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + .text 0x00000000003029a4 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .text 0x00000000003029a4 0x9c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x00000000003029a4 _dsize + .text 0x0000000000302a40 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .text 0x0000000000302a40 0x78 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + 0x0000000000302a40 ___movstr + 0x0000000000302a40 ___movmem + 0x0000000000302a74 ___movmemSI64 + 0x0000000000302a74 ___movstrSI64 + 0x0000000000302a78 ___movstrSI60 + 0x0000000000302a78 ___movmemSI60 + 0x0000000000302a7c ___movmemSI56 + 0x0000000000302a7c ___movstrSI56 + 0x0000000000302a80 ___movstrSI52 + 0x0000000000302a80 ___movmemSI52 + 0x0000000000302a84 ___movstrSI48 + 0x0000000000302a84 ___movmemSI48 + 0x0000000000302a88 ___movstrSI44 + 0x0000000000302a88 ___movmemSI44 + 0x0000000000302a8c ___movstrSI40 + 0x0000000000302a8c ___movmemSI40 + 0x0000000000302a90 ___movstrSI36 + 0x0000000000302a90 ___movmemSI36 + 0x0000000000302a94 ___movmemSI32 + 0x0000000000302a94 ___movstrSI32 + 0x0000000000302a98 ___movmemSI28 + 0x0000000000302a98 ___movstrSI28 + 0x0000000000302a9c ___movstrSI24 + 0x0000000000302a9c ___movmemSI24 + 0x0000000000302aa0 ___movmemSI20 + 0x0000000000302aa0 ___movstrSI20 + 0x0000000000302aa4 ___movstrSI16 + 0x0000000000302aa4 ___movmemSI16 + 0x0000000000302aa8 ___movmemSI12 + 0x0000000000302aa8 ___movstrSI12 + 0x0000000000302aac ___movmemSI8 + 0x0000000000302aac ___movstrSI8 + 0x0000000000302ab0 ___movmemSI4 + 0x0000000000302ab0 ___movstrSI4 + .text 0x0000000000302ab8 0x6c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + 0x0000000000302ada ___udivsi3 + .text 0x0000000000302b24 0x1f0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + 0x0000000000302b24 ___udivdi3 + .text 0x0000000000302d14 0x348 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + 0x0000000000302fb8 ___adddf3 + 0x0000000000303008 ___subdf3 + .text 0x000000000030305c 0x208 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + 0x000000000030305c ___muldf3 + .text 0x0000000000303264 0x130 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + 0x0000000000303264 ___divdf3 + .text 0x0000000000303394 0x58 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + 0x0000000000303394 ___gtdf2 + .text 0x00000000003033ec 0x58 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + 0x00000000003033ec ___ledf2 + .text 0x0000000000303444 0x98 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + 0x0000000000303444 ___floatsidf + .text 0x00000000003034dc 0x8c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + 0x00000000003034dc ___fixdfsi + .text 0x0000000000303568 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .text 0x0000000000303568 0x60 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000303568 ___udiv_qrnnd_16 + .text 0x00000000003035c8 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + .text 0x00000000003035c8 0x54 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + 0x00000000003035c8 ___clzsi2 + .text 0x000000000030361c 0x240 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + 0x000000000030361c ___pack_d + .text 0x000000000030385c 0xcc /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + 0x000000000030385c ___unpack_d + .text 0x0000000000303928 0xc8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) + 0x0000000000303928 ___fpcmp_parts_d *(C P) -.gint.blocks 0x0000000000302240 0x140 +.gint.blocks 0x00000000003039f0 0x140 *(.gint.blocks) - .gint.blocks 0x0000000000302240 0x40 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) - 0x0000000000302240 _inth_entry_7305 - 0x0000000000302260 _inth_entry_7705 - .gint.blocks 0x0000000000302280 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) - 0x0000000000302280 _exch_entry_7705 - 0x0000000000302280 _exch_entry_7305 - .gint.blocks 0x00000000003022a0 0xe0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) - 0x00000000003022a0 _inth_tmu - 0x0000000000302320 _inth_etmu2 - 0x0000000000302340 _inth_etmu_help - 0x0000000000302360 _inth_etmux + .gint.blocks 0x00000000003039f0 0x40 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + 0x00000000003039f0 _inth_entry_7305 + 0x0000000000303a10 _inth_entry_7705 + .gint.blocks 0x0000000000303a30 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + 0x0000000000303a30 _exch_entry_7705 + 0x0000000000303a30 _exch_entry_7305 + .gint.blocks 0x0000000000303a50 0xe0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + 0x0000000000303a50 _inth_tmu + 0x0000000000303ad0 _inth_etmu2 + 0x0000000000303af0 _inth_etmu_help + 0x0000000000303b10 _inth_etmux -.gint.drivers 0x0000000000302380 0x90 - 0x0000000000302380 _bdrv = . +.gint.drivers 0x0000000000303b30 0x6c + 0x0000000000303b30 _bdrv = . *(.gint.drivers.0) *(.gint.drivers.1) .gint.drivers.1 - 0x0000000000302380 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - 0x0000000000302380 _drv_cpg + 0x0000000000303b30 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x0000000000303b30 _drv_cpg *(.gint.drivers.2) .gint.drivers.2 - 0x00000000003023a4 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) - 0x00000000003023a4 _drv_tmu + 0x0000000000303b54 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + 0x0000000000303b54 _drv_tmu *(.gint.drivers.3) *(.gint.drivers.4) - .gint.drivers.4 - 0x00000000003023c8 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - 0x00000000003023c8 _drv_keysc *(.gint.drivers.5) .gint.drivers.5 - 0x00000000003023ec 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - 0x00000000003023ec _drv_t6k11 + 0x0000000000303b78 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + 0x0000000000303b78 _drv_t6k11 *(.gint.drivers.6) - 0x0000000000302410 _edrv = . + 0x0000000000303b9c _edrv = . -.rodata 0x0000000000302410 0x544 +.rodata 0x0000000000303b9c 0x590 *(.rodata .rodata.*) + .rodata 0x0000000000303b9c 0x8 build-fx/src/FxEngine/functions.o + 0x0000000000303b9c _pi .rodata.str1.4 - 0x0000000000302410 0xb build-fx/src/main.o - *fill* 0x000000000030241b 0x1 + 0x0000000000303ba4 0xf build-fx/src/main.o + *fill* 0x0000000000303bb3 0x1 .rodata.str1.4 - 0x000000000030241c 0x6 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - *fill* 0x0000000000302422 0x2 + 0x0000000000303bb4 0x4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) .rodata.str1.4 - 0x0000000000302424 0x4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + 0x0000000000303bb8 0x4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) .rodata.str1.4 - 0x0000000000302428 0x6 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - *fill* 0x000000000030242e 0x2 - .rodata 0x0000000000302430 0x408 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o) - 0x0000000000302430 _gint_font5x7 - 0x0000000000302838 _gint_font5x7_end + 0x0000000000303bbc 0x31 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + *fill* 0x0000000000303bed 0x3 .rodata.str1.4 - 0x0000000000302838 0x4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - .rodata 0x000000000030283c 0x18 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - .rodata 0x0000000000302854 0x100 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) - 0x0000000000302854 ___clz_tab + 0x0000000000303bf0 0x8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + 0x6 (size before relaxing) + .rodata 0x0000000000303bf8 0x408 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o) + 0x0000000000303bf8 _gint_font5x7 + 0x0000000000304000 _gint_font5x7_end + .rodata 0x0000000000304000 0x18 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .rodata 0x0000000000304018 0x14 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + 0x0000000000304018 ___thenan_df + .rodata 0x000000000030402c 0x100 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + 0x000000000030402c ___clz_tab -.rela.dyn 0x0000000000302954 0x0 +.rela.dyn 0x000000000030412c 0x0 + .rela.text 0x000000000030412c 0x0 build-fx/src/FxEngine/coord.o + .rela.text.startup + 0x000000000030412c 0x0 build-fx/src/FxEngine/coord.o .rela.pretext.entry - 0x0000000000302954 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) - .rela.text 0x0000000000302954 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + 0x000000000030412c 0x0 build-fx/src/FxEngine/coord.o 0x0000000008100000 . = ORIGIN (ram) -.bss 0x0000000008100000 0x430 +.bss 0x0000000008100000 0x560 0x0000000008100000 _rbss = . *(.bss COMMON) - .bss 0x0000000008100000 0x0 build-fx/src/main.o - .bss 0x0000000008100000 0xc /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) - .bss 0x000000000810000c 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - .bss 0x0000000008100030 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) - .bss 0x0000000008100030 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) - .bss 0x0000000008100030 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) - .bss 0x0000000008100030 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) - .bss 0x0000000008100030 0x400 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) - .bss 0x0000000008100430 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + .bss 0x0000000008100000 0x10 build-fx/src/FxEngine/libprof.o + 0x0000000008100000 _prof_tcnt + 0x0000000008100004 _prof_elapsed + 0x0000000008100008 _prof_rec + .bss 0x0000000008100010 0x0 build-fx/src/FxEngine/coord.o + .bss 0x0000000008100010 0x14 build-fx/src/FxEngine/FxEngine.o + 0x0000000008100010 _FE_user + COMMON 0x0000000008100024 0x18 build-fx/src/FxEngine/FxEngine.o + 0x0000000008100024 _FE_dh + 0x000000000810002c _FE_dv + 0x0000000008100034 _FE_roulis + .bss 0x000000000810003c 0x0 build-fx/src/FxEngine/functions.o + .bss 0x000000000810003c 0x4 build-fx/src/FxEngine/zbuffer.o + .bss 0x0000000008100040 0x0 build-fx/src/main.o + .bss 0x0000000008100040 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .bss 0x0000000008100040 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .bss 0x0000000008100040 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .bss 0x0000000008100040 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .bss 0x0000000008100040 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .bss 0x0000000008100040 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .bss 0x0000000008100040 0x400 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .bss 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .bss 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .bss 0x0000000008100440 0x114 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .bss 0x0000000008100554 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) *(B R) - 0x0000000008100430 . = ALIGN (0x10) - 0x0000000000000430 _sbss = SIZEOF (.bss) + 0x0000000008100560 . = ALIGN (0x10) + *fill* 0x0000000008100554 0xc + 0x0000000000000560 _sbss = SIZEOF (.bss) -.data 0x0000000008100430 0x10 load address 0x0000000000302954 - 0x0000000000302954 _ldata = LOADADDR (.data) - 0x0000000008100430 _rdata = . +.data 0x0000000008100560 0x70 load address 0x000000000030412c + 0x000000000030412c _ldata = LOADADDR (.data) + 0x0000000008100560 _rdata = . *(.data .data.*) - .data 0x0000000008100430 0x0 build-fx/src/main.o - .data 0x0000000008100430 0x8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) - .data 0x0000000008100438 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - .data 0x0000000008100438 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) - .data 0x0000000008100438 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) - .data 0x0000000008100438 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) - .data 0x0000000008100438 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) - .data 0x0000000008100438 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) - .data 0x0000000008100438 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) - .data 0x0000000008100438 0x8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - 0x0000000008100438 _topti_font - 0x000000000810043c _gint_default_font - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) - .data 0x0000000008100440 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + .data 0x0000000008100560 0x0 build-fx/src/FxEngine/libprof.o + .data 0x0000000008100560 0x0 build-fx/src/FxEngine/coord.o + .data 0x0000000008100560 0x0 build-fx/src/FxEngine/FxEngine.o + .data 0x0000000008100560 0x0 build-fx/src/FxEngine/functions.o + .data 0x0000000008100560 0x0 build-fx/src/FxEngine/zbuffer.o + .data 0x0000000008100560 0x0 build-fx/src/main.o + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .data 0x0000000008100560 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .data 0x0000000008100560 0x8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x0000000008100560 _topti_font + 0x0000000008100564 _gint_default_font + .data 0x0000000008100568 0x68 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(stdio.c.o) + 0x0000000008100568 _kprint_formatters + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_thenan_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .data 0x00000000081005d0 0x0 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) *(D) - 0x0000000008100440 . = ALIGN (0x10) + 0x00000000081005d0 . = ALIGN (0x10) -.data.4 0x0000000008100440 0x0 load address 0x0000000000302964 +.data.4 0x00000000081005d0 0x0 load address 0x000000000030419c *(.data.4) - 0x0000000008100440 . = ALIGN (0x10) - 0x0000000000000010 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) + 0x00000000081005d0 . = ALIGN (0x10) + 0x0000000000000070 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) 0x000000008800df00 _gint_vbr = 0x8800df00 0x000000008800f400 . = ORIGIN (rram) -.gint.data 0x000000008800f400 0x130 load address 0x0000000000302964 - 0x0000000000302964 _lgdata = LOADADDR (.gint.data) +.gint.data 0x000000008800f400 0x110 load address 0x000000000030419c + 0x000000000030419c _lgdata = LOADADDR (.gint.data) 0x000000008800f400 _rgdata = . *(.gint.data .gint.data.*) - .gint.data 0x000000008800f400 0x18 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - .gint.data 0x000000008800f418 0x70 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) - .gint.data 0x000000008800f488 0x4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) - 0x000000008800f488 _vram - .gint.data 0x000000008800f48c 0x8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - .gint.data 0x000000008800f494 0x10 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) - 0x000000008800f494 _SH7305_INTC + .gint.data 0x000000008800f400 0x70 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .gint.data 0x000000008800f470 0x4 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + 0x000000008800f470 _vram + .gint.data 0x000000008800f474 0x8 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .gint.data 0x000000008800f47c 0x10 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x000000008800f47c _SH7305_INTC .gint.data.sh3 - 0x000000008800f4a4 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) - 0x000000008800f4a4 _SH7705_INTC - *fill* 0x000000008800f4c8 0x8 - .gint.data 0x000000008800f4d0 0x60 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) - 0x000000008800f530 . = ALIGN (0x10) - 0x0000000000000130 _sgdata = SIZEOF (.gint.data) + 0x000000008800f48c 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x000000008800f48c _SH7705_INTC + .gint.data 0x000000008800f4b0 0x60 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + 0x000000008800f510 . = ALIGN (0x10) + 0x0000000000000110 _sgdata = SIZEOF (.gint.data) -.gint.bss 0x000000008800f530 0x210 load address 0x0000000000302a94 +.gint.bss 0x000000008800f510 0x110 load address 0x00000000003042ac *(.gint.bss .gint.bss.*) - .gint.bss 0x000000008800f530 0x100 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) - .gint.bss 0x000000008800f630 0x40 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) - 0x000000008800f630 _gint - .gint.bss 0x000000008800f670 0x88 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) - .gint.bss 0x000000008800f6f8 0x1 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) - *fill* 0x000000008800f6f9 0x3 - .gint.bss 0x000000008800f6fc 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) - .gint.bss 0x000000008800f720 0x1c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) - 0x000000008800f740 . = ALIGN (0x10) - *fill* 0x000000008800f73c 0x4 - 0x0000000000000210 _sgbss = SIZEOF (.gint.bss) + .gint.bss 0x000000008800f510 0x24 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .gint.bss 0x000000008800f534 0x40 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + 0x000000008800f534 _gint + .gint.bss 0x000000008800f574 0x88 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .gint.bss 0x000000008800f5fc 0x1 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + *fill* 0x000000008800f5fd 0x3 + .gint.bss 0x000000008800f600 0x1c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + 0x000000008800f620 . = ALIGN (0x10) + *fill* 0x000000008800f61c 0x4 + 0x0000000000000110 _sgbss = SIZEOF (.gint.bss) /DISCARD/ *(.debug_info .debug_abbrev .debug_loc .debug_aranges .debug_ranges .debug_line .debug_str) @@ -441,4 +654,17 @@ LOAD /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a *(.eh_frame_hdr) *(.eh_frame) *(.comment) -OUTPUT(build-fx/src/1v13D.elf elf32-sh) +OUTPUT(build-fx/src/FxEngine/1v13D.elf elf32-sh) + +.debug_frame 0x0000000000000000 0x3d4 + .debug_frame 0x0000000000000000 0x110 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_addsub_df.o) + .debug_frame 0x0000000000000110 0x98 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_mul_df.o) + .debug_frame 0x00000000000001a8 0x50 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_div_df.o) + .debug_frame 0x00000000000001f8 0x48 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_gt_df.o) + .debug_frame 0x0000000000000240 0x48 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_le_df.o) + .debug_frame 0x0000000000000288 0x3c /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_si_to_df.o) + .debug_frame 0x00000000000002c4 0x48 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_df_to_si.o) + .debug_frame 0x000000000000030c 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clzsi2.o) + .debug_frame 0x000000000000032c 0x68 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_pack_df.o) + .debug_frame 0x0000000000000394 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_unpack_df.o) + .debug_frame 0x00000000000003b4 0x20 /home/util1/Bureau/MILAN/gcc/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_fpcmp_parts_df.o) diff --git a/build-fx/src/1v13D.elf b/build-fx/src/1v13D.elf deleted file mode 100755 index bcef137552020ab24f42a13476c0cdbf19fd9fc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17684 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 literal 0 HcmV?d00001 diff --git a/build-fx/src/FxEngine/FxEngine.d b/build-fx/src/FxEngine/FxEngine.d new file mode 100644 index 0000000..47c7636 --- /dev/null +++ b/build-fx/src/FxEngine/FxEngine.d @@ -0,0 +1,8 @@ +build-fx/src/FxEngine/FxEngine.o: src/FxEngine/FxEngine.c \ + src/FxEngine/FxEngine.h src/FxEngine/coord.h src/FxEngine/zbuffer.h + +src/FxEngine/FxEngine.h: + +src/FxEngine/coord.h: + +src/FxEngine/zbuffer.h: diff --git a/build-fx/src/FxEngine/FxEngine.o b/build-fx/src/FxEngine/FxEngine.o new file mode 100644 index 0000000000000000000000000000000000000000..5846138e57a9d1c6df80c6f2a61f6d875f5f22fd GIT binary patch literal 1376 zcmb7EJxmlq6n=Ym3V48U8pR0aZVQ577Kj!=EFc7Ej28<#lXY%yj$3m-xVr~vqans< zqR|*)EG#I9jfI`D(8R*lgzJ<}qlvA?5WDkxyF16aoiBMi-}mNwZ)V@l?5%|hi&{dX zwrMm990?@Kwm2{&f7s?y0;kwsHfXhdvEGG`>^eiO61WiNV~!qYk~V zd7`i(GFC?DlT&(T=lE>;8#Rx8rCdU6<@KG^W@3aI>z6{_y=&d z?tac&Twkay+cjxeWLD~;D2rx6mg)Guw}VgVvpYmx>b%?|I;8LeqO`(~(F%ppYd!|P zJtOK-_&HIp!dpa#6@C-Zza{Dq;)Z*p>WKmwuIB_}Ss@2~GCaBNkx>+$Afw>AWLWiT zRib16Wm%|sy@O#E{|VlQmBpS#&gOO?I>xetz8B0fb%+BkMAe{U(}j_i83A^;mXwh RaIB-cB)$vHC=o_q_ZNJ{vrqs4 literal 0 HcmV?d00001 diff --git a/build-fx/src/FxEngine/coord.d b/build-fx/src/FxEngine/coord.d new file mode 100644 index 0000000..a394f7b --- /dev/null +++ b/build-fx/src/FxEngine/coord.d @@ -0,0 +1,10 @@ +build-fx/src/FxEngine/coord.o: src/FxEngine/coord.c src/FxEngine/coord.h \ + src/FxEngine/functions.h src/FxEngine/FxEngine.h src/FxEngine/zbuffer.h + +src/FxEngine/coord.h: + +src/FxEngine/functions.h: + +src/FxEngine/FxEngine.h: + +src/FxEngine/zbuffer.h: diff --git a/build-fx/src/FxEngine/coord.o b/build-fx/src/FxEngine/coord.o new file mode 100644 index 0000000000000000000000000000000000000000..cae88736789c080f40788f75ec20c74682ddb570 GIT binary patch literal 936 zcma)4J4*vW5S}|^FO}neA3LYl^DCrztRvIFV2*$opUcSAY@>L#q3# zE$4UgMqWauJE~o3SK8fk?q#Gt`7~nPu4fuI*6kXuFWGM_&CIxH+|-LlJ*T%k)9T@g zzuD@_%3`6ky49E}l*PQ5`%RPRvmf5yl9Il}9_5ka@5_+%f3a|L06F)P8;|NSKn{H` z=964A8UgyRLW}wQ4_^MkE8n>3dA=n~Xx6GtQ*TE=+CkIR1K%<2Xv33Xv|3@1PA8%# zVeq}AS^x5 zK^RhkFg@3`I{{zjf3biv`rcqHrx#_#m;%pZBE}U;V#xz8OXyTb^`y(97h}$Iy+)oi zzUM3^Q|N!`Xm(V?PmRu_`Lod;yUIz7_vnx4L+I2a^+(Tv-V%Qkp>mGP209z}H-?FX MPNn)q7GVr^9|PQ7+W-In literal 0 HcmV?d00001 diff --git a/build-fx/src/FxEngine/functions.d b/build-fx/src/FxEngine/functions.d new file mode 100644 index 0000000..5bca5e7 --- /dev/null +++ b/build-fx/src/FxEngine/functions.d @@ -0,0 +1,4 @@ +build-fx/src/FxEngine/functions.o: src/FxEngine/functions.c \ + src/FxEngine/functions.h + +src/FxEngine/functions.h: diff --git a/build-fx/src/FxEngine/functions.o b/build-fx/src/FxEngine/functions.o new file mode 100644 index 0000000000000000000000000000000000000000..8f77ee5347cc3baa6bc1a829629f0f74875c9b94 GIT binary patch literal 1504 zcmb7ET}TvB6h7nZs_STFgY+wHK8TggYWiXju5P+&>O>jzwturTJGDRMjA8Vkun_wq zK5X>VLnQPR7%U|86bL3( zW>HjfQo4(aX1#UOBT{;OaJ7HUzj02UA$`!$r$i~e+PB=d(lvlwVi){gF3NlBrUqVb zxA0T_nXT#OV0N=xPAgd{J&c}L-Z=Zho8Ujd$C^;?I>XF)8oD{hL77!}X&zTulCw%$ zV$sVlwaDztc7=ZjKJM0*$_8_p?eN#>H!*&(wc~Iw8%j?&#KvSkk&oxE=C9<{JaDmm zG%L>!bIMYToxP{>$YzE(C5P;R%FoVan9U=$-PGf5>i=;!HMpDFKka7rX)ycjz|rp` zXHV{@8}=eLZrav$e%sMHKNk{{I4n5DhGpkUxt9YM-k%e1?}XS0E^^SE;+ifK`+dIC z?k4~6rDN_6p;c%h!nxMdc80K*S8ogCZ zhmaBW8Y-}NaKv*#1vZ*bxoT{UCO2!6d5hd0=Gmbc#Y${{^R=Rf=9FQ>FxI1aR#^M% zK!JSb=fr$MjHOfz%2~}^i*f`RH+HlporTt;5~uIi_Fb`Vo3JO7^w1n~@ZYiPxf=NjcFc@q6h&Pv|yV!-6mhNKUM6?Of zLyZArJeX*V@npiyzrlkCDkgqL!9={67%x2;@XdCnEyS4k(%1R@W`6I@>%5sRo<2Lw z@f;M4gAT+c6T)NUHt4YwZBP!*HJ5)W>4> zHLX1HG~6yzmOTv_K3J0xzq+!A$i5rgq7e2?=caOcj#Ro{?`$3Kj-(BaYkbMsTHn@X zs`Sxc*^~&Pep5Mc*!)#kys)!El;Mj zSvsx7l%%1ll+DiRCgd~7hM7nLk!o}?rLisa86t}-G0awwYvvs4ujwvu0e1;arA2g7)Nq?MLMv9%1x0QNDQ1gK;f6FVv9+5oBqlMZeVvpmj<{RMOO5_c zz_YXNaH)=7S4+ic)rA}e0a?ZM%I|~g<0Sp;`Djs4(cQy$xr@B>7Iyy|AAl6 V38Kd8!>3uQ6IA5=OoXGQ`vVtg%2NOU literal 0 HcmV?d00001 diff --git a/build-fx/src/FxEngine/math/coord.d b/build-fx/src/FxEngine/math/coord.d new file mode 100644 index 0000000..062645a --- /dev/null +++ b/build-fx/src/FxEngine/math/coord.d @@ -0,0 +1,6 @@ +build-fx/src/FxEngine/math/coord.o: src/FxEngine/math/coord.c \ + src/FxEngine/math/coord.h src/FxEngine/math/functions.h + +src/FxEngine/math/coord.h: + +src/FxEngine/math/functions.h: diff --git a/build-fx/src/FxEngine/zbuffer.d b/build-fx/src/FxEngine/zbuffer.d new file mode 100644 index 0000000..ed8cd30 --- /dev/null +++ b/build-fx/src/FxEngine/zbuffer.d @@ -0,0 +1,4 @@ +build-fx/src/FxEngine/zbuffer.o: src/FxEngine/zbuffer.c \ + src/FxEngine/zbuffer.h + +src/FxEngine/zbuffer.h: diff --git a/build-fx/src/FxEngine/zbuffer.o b/build-fx/src/FxEngine/zbuffer.o new file mode 100644 index 0000000000000000000000000000000000000000..4594dea87aaeac9305d6d659d754777b10d7deb1 GIT binary patch literal 896 zcmah{&ubGw6n?u|HR)DJN)N5MWF;+8;Eo}4 zUCv4qjcHb{uivdq3g5?SUau-^c5!39%lULP->8nP*^=|vz9d)L&2ZRi29@Ai`^Kd3 zgFKJiZ{$gQtufIFa4Rjm-|6hs8v73(U8&s^EwP>3El0C{9Gd^m>1Zt9D>ur&e}Tk7 z=4!=3AEo}4 zUCv4qjcHb{uivdq3g5?SUau-^c5!39%lULP->8nP*^=|vz9d)L&2ZRi29@Ai`^Kd3 zgFKJiZ{$gQtufIFa4Rjm-|6hs8v73(U8&s^EwP>3El0C{9Gd^m>1Zt9D>ur&e}Tk7 z=4!=3A&Q8?{><#92A;9}t`b z2f@j~!QD70{+J4pu7$1+9!;~j+6qZh#o(j3t*Pp?UbFOWiZHLii#7=?ei$SY)}ySZUE-4oku z)ec?QBJI0@?fGrkZNF7-1|DqZ$aiXiJ3d|pR5Er2&=OYxmRS5%PkaCB@}tU�+936=OQ%}G*&hcxpC DKw(dE delta 257 zcmeyv@q~SXvab#U0|PUI36Nx9&|u(Z;3`Ng$xO{lPE}B3V7SQrgu!3Qk-PrSLl%9Z z=gb#5o-$tJaO8f%co9f4a9&_{0FnskEOfOf}a56%eAgj4xYzqbkRv6ocfq@&wc3@!O*__TK!pO)y zxrSMp7073BnY@HqiH&gvkZCjd46`z0%j6Ht>Z~CCg~>83%B&ecmfmC+79}ypD?nyA J5W@i2TmYiMFxUV9 diff --git a/src/FxEngine/FxEngine.c b/src/FxEngine/FxEngine.c index d7f705c..e5d9b17 100644 --- a/src/FxEngine/FxEngine.c +++ b/src/FxEngine/FxEngine.c @@ -1,15 +1,29 @@ #include "FxEngine.h" #include -#include +#include "coord.h" +#include +#include + +FE_position FE_user={0,0,0}; +double FE_dh,FE_dv,FE_roulis; static uint32_t frame_interval=0; // in milliseconds static bool loaded_before=false; -void FE_new_frame() +static void FE_move() // call at each frame +{ + // TODO with math functions, not implemented yet ! + + // TODO insert physical engine +} + +void FE_new_frame(void) { if (loaded_before) + { prof_leave(0); + } else { prof_init(1,0); @@ -20,18 +34,14 @@ void FE_new_frame() prof_enter(0); FE_move(); // Not implemented yet ! + FE_set_matrice(); FE_zbuffer_clear(); // Not implemented yet ! - dupdate(); - dclear(); + //dupdate(); + //dclear(); } -int FE_get_fps() +int FE_get_fps(void) {return 1000/frame_interval;} -static void FE_move() // call at each frame -{ - // TODO with math functions, not implemented yet ! - FE_set_matrice(FE_dh,FE_dv,FR_roulis); - // TODO insert physical engine -} + diff --git a/src/FxEngine/FxEngine.h b/src/FxEngine/FxEngine.h index 4b4f7a5..7198368 100644 --- a/src/FxEngine/FxEngine.h +++ b/src/FxEngine/FxEngine.h @@ -1,14 +1,14 @@ #ifndef FENG_H #define FENG_H -#include "math/pos.h" -#include "math/angle.h" +#include "coord.h" +#include "zbuffer.h" extern double FE_dh,FE_dv,FE_roulis; -extern FE_Position FE_user={0,0,0}; +extern FE_position FE_user; -void FE_new_frame(); // calls move function -int FE_get_fps(); +void FE_new_frame(void); // calls move function +int FE_get_fps(void); #endif \ No newline at end of file diff --git a/src/FxEngine/coord.c b/src/FxEngine/coord.c new file mode 100644 index 0000000..5d76a1b --- /dev/null +++ b/src/FxEngine/coord.c @@ -0,0 +1,57 @@ +#include "coord.h" +#include "functions.h" +#include "FxEngine.h" + +static float matrice[4][4]= +{ + {0,0,0,0}, + {0,0,0,0}, + {0,0,0,0}, + {0,0,0,1} +}; + +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.translated.x = matrice[0][0]*temp.x + matrice[0][1]*temp.y + matrice[0][2]*temp.z; + point.translated.z = matrice[1][0]*temp.x + matrice[1][1]*temp.y + matrice[1][2]*temp.z; + point.translated.y = matrice[2][0]*temp.x + matrice[2][1]*temp.y + matrice[2][2]*temp.z; + + point.translated.x*=100; + point.translated.y*=100; + + point.translated.x/=point.translated.z; + point.translated.y/=point.translated.z; +} + +void FE_set_matrice(void) +{ + const double A=FE_cos(FE_dh), B=FE_sin(FE_dh); + const double C=FE_cos(FE_dv), D=FE_sin(FE_dv); + const double E=FE_cos(FE_roulis), F=FE_sin(FE_roulis); + + const double AD=A*D, BD=B*D; + + matrice[0][0]=C*E; + matrice[0][1]=-C*F; + matrice[0][2]=D; + //matrice[0][3]=0; + + matrice[1][0]=BD*E+A*F; + matrice[1][1]=-BD*F+A*E; + matrice[1][2]=-B*C; + //matrice[1][3]=0; + + matrice[2][0]=-AD*E+B*F; + matrice[2][1]=AD*F+B*E; + matrice[2][2]=A*C; + //matrice[2][2]=0; + + //matrice[3][0]=0; + //matrice[3][1]=0; + //matrice[3][2]=0; + //matrice[3][3]=1; +} \ No newline at end of file diff --git a/src/FxEngine/math/coord.h b/src/FxEngine/coord.h similarity index 77% rename from src/FxEngine/math/coord.h rename to src/FxEngine/coord.h index c5e23d6..4f55bd1 100644 --- a/src/FxEngine/math/coord.h +++ b/src/FxEngine/coord.h @@ -14,10 +14,8 @@ struct FE_point FE_position real,translated; }; -void FE_calc(const FE_point& point); -void FE_set_matrice(); - - +void FE_calc(const FE_point point); +void FE_set_matrice(void); #endif \ No newline at end of file diff --git a/src/FxEngine/math/functions.c b/src/FxEngine/functions.c similarity index 80% rename from src/FxEngine/math/functions.c rename to src/FxEngine/functions.c index 702e007..01b087a 100644 --- a/src/FxEngine/math/functions.c +++ b/src/FxEngine/functions.c @@ -1,11 +1,12 @@ #include "functions.h" +extern const double pi=3.141592653589793238462643383279; static const double pi2=pi*2; static const double pi_sur2=pi/2; // cos (0pi2) a-=pi2; @@ -24,7 +25,7 @@ static void modulo_2pi(double& a) double FE_cos(double angle) { - modulo_2pi(angle); + angle=modulo_2pi(angle); int angle_arrondi=(int)(angle/pi_sur2); switch (angle_arrondi) { diff --git a/src/FxEngine/math/functions.h b/src/FxEngine/functions.h similarity index 67% rename from src/FxEngine/math/functions.h rename to src/FxEngine/functions.h index dc5049a..e0bbd7e 100644 --- a/src/FxEngine/math/functions.h +++ b/src/FxEngine/functions.h @@ -1,7 +1,7 @@ #ifndef FE_FUNCTIONS_H #define FE_FUNCTIONS_H -const extern double pi=3.141592653589793238462643383279 +extern const double pi; double FE_cos(double angle); double FE_sin(double angle); diff --git a/src/FxEngine/libprof.c b/src/FxEngine/libprof.c new file mode 100644 index 0000000..4ab4ad9 --- /dev/null +++ b/src/FxEngine/libprof.c @@ -0,0 +1,73 @@ +#include +#include +#include +#include +#include + +#include + +/* 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; +} diff --git a/src/FxEngine/libprof.h b/src/FxEngine/libprof.h new file mode 100644 index 0000000..804ea26 --- /dev/null +++ b/src/FxEngine/libprof.h @@ -0,0 +1,75 @@ +//--- +// libprof: A manual profiling library for gint +//--- + +#ifndef LIBPROF_LIBPROF +#define LIBPROF_LIBPROF + +#include + +//--- +// 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 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 */ diff --git a/src/FxEngine/math/coord.c b/src/FxEngine/math/coord.c deleted file mode 100644 index 729862a..0000000 --- a/src/FxEngine/math/coord.c +++ /dev/null @@ -1,52 +0,0 @@ -#include "coord.h" -#include "functions.h" - -static float matrice[4][4]= -{ - {0,0,0,0}, - {0,0,0,0}, - {0,0,0,0}, - {0,0,0,1} -}; - -void FE_calc(const FE_point& point) -{ - static FE_position temp - { - point.real.x - FE_user.x, - point.real.y - FE_user.y, - point.real.z - FE_user.z - }; - point.transformed.x = matrice[0][0]*temp.x + matrice[0][1]*temp.y + matrice[0][2]*temp.z; - point.transformed.y = matrice[1][0]*temp.x + matrice[1][1]*temp.y + matrice[1][2]*temp.z; - point.transformed.z = matrice[2][0]*temp.x + matrice[2][1]*temp.y + matrice[2][2]*temp.z; -} - -void FE_set_matrice() -{ - const double A=FE_cos(FE_dh), B=FE_sin(FE_dh); - const double C=FE_cos(FE_dv), D=FE_sin(FE_dv); - const double E=FE_cos(FE_roulis), F=FE_sin(FE_roulis); - - const double AD=A*D, BC=B*C; - - matrice[0][0]=C*E; - matrice[0][1]=-C*F; - matrice[0][2]=D; - //matrice[0][3]=0; - - matrice[1][0]=BC*E+A*F; - matrice[1][1]=-BD*F+A*E; - matrice[1][2]=-B*C; - //matrice[1][3]=0; - - matrice[2][0]=-AD*E+B*F; - matrice[2][1]=AD*F+B*E; - matrice[2][2]=A*C; - //matrice[2][2]=0; - - //matrice[3][0]=0; - //matrice[3][1]=0; - //matrice[3][2]=0; - //matrice[3][3]=1; -} \ No newline at end of file diff --git a/src/FxEngine/object/coordtable.c b/src/FxEngine/object/coordtable.c deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/coordtable.h b/src/FxEngine/object/coordtable.h deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/face.c b/src/FxEngine/object/face.c deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/face.h b/src/FxEngine/object/face.h deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/facetable.c b/src/FxEngine/object/facetable.c deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/facetable.h b/src/FxEngine/object/facetable.h deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/object.c b/src/FxEngine/object/object.c deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/object.h b/src/FxEngine/object/object.h deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/src/FxEngine/object/texture.c b/src/FxEngine/object/texture.c deleted file mode 100644 index 74c0a7c..0000000 --- a/src/FxEngine/object/texture.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "texture.h" - -static unsigned char black[1]={255}; - -static unsigned char* textures[]={black}; -static unsigned char sizes[2][]={{8,8}}; - -int FE_getPixelColor(int num, float x, float y) -{ - if (y>1 || y<0 || x>1 || x<0) return -1; - unsigned char texture=textures[num]; - int ix=x*sizes[0][num], iy=y*sizes[1][num]; - return (7-x%8 >>texture[(ix/8+iy*sizes[0][num])/8])&1); // à revoir -} \ No newline at end of file diff --git a/src/FxEngine/object/texture.h b/src/FxEngine/object/texture.h deleted file mode 100644 index 9be2772..0000000 --- a/src/FxEngine/object/texture.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef FE_TEXTURE_H -#define FE_TEXTURE_H - -int FE_getPixelColor(int num, float x, float y); - - - -#endif \ No newline at end of file diff --git a/src/FxEngine/zbuffer.c b/src/FxEngine/zbuffer.c new file mode 100644 index 0000000..6bb858d --- /dev/null +++ b/src/FxEngine/zbuffer.c @@ -0,0 +1,35 @@ +#include "zbuffer.h" +#include + +static const int size_short_native = 8192; +static const int size_uint32 = size_short_native/2; +static const int size_char = 8192*4; + +static unsigned short* address=0; + +void FE_zbuffer_clear() +{ + while (address==0) + {address=calloc(size_char);} + + int* clearVal=(int*)address; + int indice=0; + // TODO ** ajouter le DMA pour les architectures sh4 + for (indice=0; indice<4096; indice++) + clearVal[indice]=0; +} + +bool FE_zbuffer_set_dist(int x, int y, int dist) +{ + short ndist=(short)dist; + x%=FE_ZB_SIZE_X; + y%=FE_ZB_SIZE_Y; + const int indice=x*y; + if (address[indice]=0 || address[indice]>ndist) + { + address[indice]=ndist; + return true; + } + else + return false; +} \ No newline at end of file diff --git a/src/FxEngine/zbuffer.h b/src/FxEngine/zbuffer.h new file mode 100644 index 0000000..88def8d --- /dev/null +++ b/src/FxEngine/zbuffer.h @@ -0,0 +1,13 @@ +#ifndef FE_ZBUFFER +#define FE_ZBUFFER + +#include + +// nouveauté ! le zbuffer occupe tout l'écran, le rendu 3d offre donc de meilleures possibilités +#define FE_ZB_SIZE_X 128 +#define FE_ZB_SIZE_Y 64 + +void FE_zbuffer_clear(); // does not really clear the zbuffer, but changes encoding sign for the next frame ** on 1st frame, allocates data +bool FE_zbuffer_set_dist(int x, int y, int dist); // if you are allowed to draw the pixel on vram + +#endif \ No newline at end of file diff --git a/src/FxEngine/zbuffer/zbuffer.c b/src/FxEngine/zbuffer/zbuffer.c deleted file mode 100644 index d691e8e..0000000 --- a/src/FxEngine/zbuffer/zbuffer.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "zbuffer.h" - -int FE_ZBuffer::m_sign=1; -unsigned short* FE_ZBuffer::m_data=calloc(8192,sizeof(unsigned short)); - -void FE_ZBuffer::clear() -{ - m_sign*=-1; - while (m_data==NULL) - {} - int* clearVal=(int*)m_data; - int indice=0; - - // TODO ** ajouter le DMA pour les architectures sh4 - for (indice=0; indice<4096; indice++) - clearVal[indice]=0; -} - -bool FE_ZBuffer::setDist(int x, int y, int dist) -{ - short ndist=(short)dist; - x%=FE_ZB_SIZE_X; - y%=FE_ZB_SIZE_Y; - const int indice=x*y; - if (m_data[indice]=0 || m_data[indice]>ndist) - { - m_data[indice]=ndist; - return true; - } - else - return false; -} \ No newline at end of file diff --git a/src/FxEngine/zbuffer/zbuffer.h b/src/FxEngine/zbuffer/zbuffer.h deleted file mode 100644 index bb22f60..0000000 --- a/src/FxEngine/zbuffer/zbuffer.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef FE_ZBUFFER -#define FE_ZBUFFER - -// nouveuaté ! le zbuffer occupe tout l'écran, le rendu 3d offre donc de meilleures possibilités -#define FE_ZB_SIZE_X 128 -#define FE_ZB_SIZE_Y 64 - -class FE_ZBuffer -{ -public: - static void clear(); // does not really clear the zbuffer, but changes encoding sign for the next frame ** on 1st frame, allocates data - static bool setDist(int x, int y, int dist); // if you are allowed to draw the pixel on vram -private: - static unsigned short* m_data; - static int m_sign; -} - - - -#endif \ No newline at end of file diff --git a/src/main.c b/src/main.c index bd78c9d..8b7e406 100644 --- a/src/main.c +++ b/src/main.c @@ -1,11 +1,24 @@ #include #include +#include +#include "FxEngine/FxEngine.h" int main(void) { dclear(C_WHITE); dtext(1, 1, "patience !", C_BLACK, C_NONE); + char fps_ch[10]; + while (1) + { + FE_new_frame(); + dclear(C_WHITE); + int fps=FE_get_fps(); + sprintf(fps_ch,"%d",fps); + dtext(1, 1, fps_ch, C_BLACK,C_NONE); + dupdate(); + } + dupdate(); getkey();