From 4ce6ed3969d3df7b13d23e0a103179e4ea42078b Mon Sep 17 00:00:00 2001 From: Milang Date: Sat, 25 Jan 2020 21:06:34 +0100 Subject: [PATCH] add cleaner framerate management --- SuperCbr.g1a | Bin 70992 -> 71024 bytes build-fx/SuperCbr.bin | Bin 70480 -> 70512 bytes build-fx/SuperCbr.elf | Bin 88848 -> 89124 bytes build-fx/map | 1072 +++++++++++++++++---------------- build-fx/src/framerate.c.d | 1 + build-fx/src/framerate.c.o | Bin 0 -> 1060 bytes build-fx/src/levelchanger.c.d | 5 +- build-fx/src/levelchanger.c.o | Bin 4716 -> 4604 bytes include/framerate.h | 12 + src/framerate.c | 36 ++ src/levelchanger.c | 92 ++- 11 files changed, 629 insertions(+), 589 deletions(-) create mode 100644 build-fx/src/framerate.c.d create mode 100644 build-fx/src/framerate.c.o create mode 100644 include/framerate.h create mode 100644 src/framerate.c diff --git a/SuperCbr.g1a b/SuperCbr.g1a index d3628c885f0c52679a08f212c39a53f31e1e0063..06ff3b27912c527a111f8eca0b82584fc63351eb 100644 GIT binary patch delta 3729 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 W^#|EDHrLaWtmiL<-t$B$x delta 3711 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 MFOR)fW@i@mKSFT_N&o-= diff --git a/build-fx/SuperCbr.bin b/build-fx/SuperCbr.bin index ed145ae40d188449d45403d155133e0a3c744cb0..c620acb2038a18fba4406656d41344a68816efac 100755 GIT binary patch delta 3695 zcmZ8jeNa@_6+d@BV3*ykyBkbUvGQevg5fSKfm95;N(F@oDMUyl0TU=xjIPlHlF%#~ zsf%LWa5Ih5@CVZ{)|oIP^f8Syb*7Av#+f?PeU+ppr3o5TnmFlp!X$LEE&bhnD9|@^ z-o5wS^Z7gH-uFUh4dJtfp&I7rCcBvvu?BKELpPI1dtCASCixcUY;jIxh7PuvZJt;h z5wrvJ%_Q-c8;QSCOT4Xzc>7`EZ`wiq#N$F5RSjt4%V`xU*JJ(R{QFPcr+mczZ7@!g z%XV0qh$+==%l>)xFSF0?-J1Qo)~f73W`C4@OD(EMxmNUXk=NpnT&Hwrlak?7H+wCO z@2G{(I@Q8GPTd1+b#lV#?-^FBKlEC@ns4}AjP8i{t8TA_%xdm_=R-5y?EIatDCGJi z#{=F~*WYsX|0waTlK|LYvg-$lJNq!d02(3Qd6Bp` z06su1PA9%!?hy)jg?MfU^wNkwA5VOX2{Pw^et8!0BSBiR#RG*zWg^bPHeQCz1o1MA zH%f{BsgGQ-4a9Gi6Au+)et~%FoMxwLMzLB?vb;0oa==B^g6fyEn#kTh;(GAQ;AuP5 zcA);!ebtPtyK=?$8}?WbK_Ei?InC=tgt)6+sv+tCacM%TAjt0@>m+VTB>o?m$^ni$ zOvK%zFpubR!dQ=p(G?pU7d1;CoY6F291(LX{6-%_N)#RT-7BYv$5z7QB*tRmj_8hZ z$G$#uSuQ)!>!TUINr(RuC{c)e$|aQM{1#DBl}XPJqUzaMxRGJG7vILLpK+B#&WC zfMxk4H&0E6QFT%tY~M7v{W#n>i=Ts za-`^B&Wz)!1=huR+%k&iaqEBhTefrqF62PN0Iq9(9?6oOVC027v&)lhrO@( zdt{qN(}2fDPzTP;VT>qADaY6kmvzK(=Ez&{x#Nvdqs_%CcnX(S@9ro{{+z(8k8<$UW`MFtUBH52IkG2#@#AUxoUjY znUa1=e}j@!2zLanIsXmbW~rp4ZTUUR7(i^$-OQ2l1zVGz-Eo}do$KA6CS-hz zk(B`l>C6mV@}%eml#L<6YRu6MW5wcfSu1lZ?(%xJQATx63W3InKM~Y~N(wcD(%5EX z;6*d)N0rgXHtF*&$|-E>rJuW)frlhFkIxgWh$TEcHxV!!G%SmY1%Ld|`by%~fNGTG za3niY9I1{p$9h%g&D4q_19%}xTzF3$W##`-w?AZ}Nh4 zq5H;>sxJs-59VRvtGexwc|f|lKnvmpkJ3`TPPcvl$N!ELTEt79koVEEWY=(d-!2As zowi9(&Eh zcfNVyOza9M33a*57$*J;5|vMvteQ314KtuSur>{na|CFZ5kpV^!SN~aXOKmdGfTYQ zCpw?`@*Y>}!cx6Y>8O93t(3x%1%<_}tUVRFwP3g2wRLZcT-JC{x^m{Z(+k=#2sfI` zsJp_ZOZVeycUkdOv!*YNM2Y`N31gp%y5=#5Tf6`3eNtZv3Eq;wav>F&mP}7t{%MEk zXh~(&qQ7Mw-lHw4tEwwfLI!^%`vs4s`D?!cr&}IYzPDP5w0zBQ8p3r0?Wm_qzF52TRYc2M}pv#~U&?NQ}#l9CmGxp10Ls9vX-x0=-Bk~k>_`o%WkIvLf z4;Ybg+o*`Vv?e->D2Z)1bh=ik0eNJ#btj5n-dA0MR?bCUS)Gi){)bCe7`Rq z1KI`AqvvwKdRL2br|Uk(CVP+9ut`yS{MYh389Ba=rHjNszA>Hni9}HwIFNyMi|f&T z6HWl{xJK+0s=DMYi?@c{KT(L_4?(-J`&HHF9m?AwNEWxS%zH z%YRuhH-YRRd((-krfBE{0b4%6;_@7GyW|ZoR2`?A;7|VMRLgBl1QE=() zdnAuHU0BAG3;rBBs`+k- ov2N&(%1Hj*XX)H!3*v+a-@4{tn{be>zm=iqFGk+;IGLUO4|NacxBvhE delta 3677 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 F{{iYFGWP%g delta 13487 zcmZ9T3wTslwa53F%p^0JNtl^T-cbUilnN~;CA74qG*FaBXo&)CDzT)MTFR@T(2`no zf(9E3Sek=3c$@2uii#F*bMNG9v0{xSDk`5Q6>C(qX-nH!QKLm#Z}D<}>+C(r8P4~e z%=z!N_uA{V*M6LnLq`Mqp9$=r>}y!}MAej4J<5vqD5Y|^Te&S|#d?C#kgclYlv_>u zR@vk9g4T9*PO0id6k4rPSp(2K^g{LDUEj5mQJ0HwfYa-h)RBu;udC+qXKVafsgNCn zr?T>1R#s?O*-Evm^QV>l@IqyOa*ndMZ&Y^6N@Y8v%0AGl?A!r;uV~Z15Brx-ekCV4 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 diff --git a/build-fx/map b/build-fx/map index 32e95d9..cc90f4c 100644 --- a/build-fx/map +++ b/build-fx/map @@ -43,7 +43,7 @@ Archive member included to satisfy reference by file (symbol) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) (_dprint) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) - build-fx/src/levelchanger.c.o (_timer_setup) + build-fx/src/framerate.c.o (_timer_setup) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(sleep.c.o) build-fx/src/levelchanger.c.o (_sleep_us) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o) @@ -97,6 +97,7 @@ Discarded input sections .comment 0x0000000000000000 0x12 build-fx/src/plateforme.c.o .comment 0x0000000000000000 0x12 build-fx/src/box.c.o .comment 0x0000000000000000 0x12 build-fx/src/world.c.o + .comment 0x0000000000000000 0x12 build-fx/src/framerate.c.o .comment 0x0000000000000000 0x12 build-fx/src/bonus.c.o .comment 0x0000000000000000 0x12 build-fx/src/save.c.o .comment 0x0000000000000000 0x12 build-fx/src/mario.c.o @@ -180,6 +181,7 @@ LOAD build-fx/src/tile.c.o LOAD build-fx/src/plateforme.c.o LOAD build-fx/src/box.c.o LOAD build-fx/src/world.c.o +LOAD build-fx/src/framerate.c.o LOAD build-fx/src/bonus.c.o LOAD build-fx/src/save.c.o LOAD build-fx/src/mario.c.o @@ -236,7 +238,7 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a 0x0000000000300000 _brom = 0x300000 - 0x00000000000109e0 _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + 0x0000000000010a00 _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) .pretext 0x0000000000300200 0x8d0 *(.pretext.entry) @@ -276,7 +278,7 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a *(.dtors .dtors.*) 0x0000000000300ad0 _etors = . -.text 0x0000000000300ad0 0x8800 +.text 0x0000000000300ad0 0x8820 0x0000000000300ad0 _gint_exch_tlbh_start = . *(.gint.exch_tlbh) .gint.exch_tlbh @@ -284,497 +286,501 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a 0x0000000000300ad0 _gint_exch_tlbh 0x000000000000004c _gint_exch_tlbh_size = ABSOLUTE ((. - _gint_exch_tlbh_start)) *(.text .text.*) - .text 0x0000000000300b1c 0x6a4 build-fx/src/levelchanger.c.o - 0x0000000000300b1c _callback - 0x0000000000300b24 _play_level - 0x0000000000300cd8 _launch_ui - .text 0x00000000003011c0 0x2028 build-fx/src/level.c.o - 0x00000000003011c0 _malloc_error - 0x00000000003011f8 _init_level - 0x000000000030127c _init_ennemies - 0x00000000003012ec _set_level - 0x00000000003031c8 _get_lvl_id - .text 0x00000000003031e8 0xd8 build-fx/src/config.c.o - 0x00000000003031e8 _configmenu - .text 0x00000000003032c0 0x25c build-fx/src/score.c.o - 0x00000000003032c0 _new_level - 0x00000000003032e0 _new_game - 0x0000000000303334 _get_score - 0x0000000000303340 _get_coins - 0x000000000030334c _score_reset - 0x000000000030336c _score_add_coin - 0x000000000030337c _score_add - 0x00000000003033cc _score_display - 0x0000000000303510 _get_time_spent - .text 0x000000000030351c 0xe4 build-fx/src/tuyau.c.o - 0x000000000030351c _set_teleporteurs - 0x0000000000303554 _teleport_active - .text 0x0000000000303600 0x40 build-fx/src/tile.c.o - 0x0000000000303600 _draw_tile - .text 0x0000000000303640 0x318 build-fx/src/plateforme.c.o - 0x0000000000303640 _reset_plateforme - 0x000000000030364e _move_plateforme - 0x000000000030380c _display_plateformes - 0x00000000003038ac _move_plateformes - 0x0000000000303904 _plateforme_check_collide - .text 0x0000000000303958 0x4ac build-fx/src/box.c.o - 0x0000000000303958 _sgn - 0x000000000030396a _check_collision - 0x00000000003039fc _box_move - 0x0000000000303d80 _box_jump - .text 0x0000000000303e04 0x620 build-fx/src/world.c.o - 0x0000000000303e04 _world_get_width - 0x0000000000303e14 _world_get - 0x0000000000303e78 _display_cell - 0x0000000000304184 _world_get_ctg - 0x00000000003041d8 _reset_camera - 0x00000000003041f4 _world_get_real_x0 - 0x000000000030421c _reload_camera - 0x0000000000304244 _world_get_real_y0 - 0x0000000000304258 _world_draw - 0x0000000000304374 _world_move - .text 0x0000000000304424 0x56c build-fx/src/bonus.c.o - 0x0000000000304424 _bonus_set - 0x0000000000304454 _bonus_move - 0x0000000000304608 _bonus_draw - 0x000000000030471c _lance_bullet - 0x0000000000304778 _bullet_display - 0x0000000000304810 _bullet_move - .text 0x0000000000304990 0x224 build-fx/src/save.c.o - 0x0000000000304990 _load_save - 0x0000000000304994 _flash_save - 0x0000000000304998 _get_highscore - 0x00000000003049e8 _set_highscore - 0x0000000000304a44 _get_highcoins - 0x0000000000304a94 _set_highcoins - 0x0000000000304af0 _get_best_time - 0x0000000000304b40 _set_best_time - 0x0000000000304ba8 _get_progress_status - .text 0x0000000000304bb4 0x7d0 build-fx/src/mario.c.o - 0x0000000000304bc4 _mario_bigger - 0x0000000000304be0 _mario_smaller - 0x0000000000304c0c _mario_draw - 0x0000000000304dc8 _test_sol_le_plus_proche - 0x0000000000304e34 _mario_move - .text 0x0000000000305384 0x0 build-fx/src/main.c.o - .text.startup 0x0000000000305384 0x24 build-fx/src/main.c.o - 0x0000000000305384 _main - .text 0x00000000003053a8 0x2c0 build-fx/src/keyboard.c.o - 0x00000000003053a8 _keyboard_clear - 0x00000000003053c8 _getkey_custom - 0x0000000000305418 _menu_pause - 0x0000000000305570 _update_keyboard - .text 0x0000000000305668 0x7b0 build-fx/src/ennemi.c.o - 0x0000000000305668 _display_ennemi - 0x00000000003058b0 _ennemi_check_collision - 0x0000000000305914 _hurt_mario - 0x0000000000305948 _move_ennemi - 0x0000000000305dd8 _display_ennemi_table - .text 0x0000000000305e18 0xce4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) - 0x0000000000306814 _kprint_opt - 0x000000000030695c _kprint - 0x0000000000306a34 _kvsprint - 0x0000000000306a7c _sprintf - 0x0000000000306aa4 _vsprintf - 0x0000000000306ac4 _snprintf - 0x0000000000306ae4 _vsnprintf - .text 0x0000000000306afc 0xdc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) - 0x0000000000306afc _memcpy - 0x0000000000306bb6 __memmove - 0x0000000000306bba __memcmp - 0x0000000000306bbe _memset - .text 0x0000000000306bd8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o) - .text 0x0000000000306bd8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) - .text 0x0000000000306bd8 0x11c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(drect.c.o) - 0x0000000000306bd8 _drect - .text 0x0000000000306cf4 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) - 0x0000000000306cf4 _dupdate - 0x0000000000306d0c _dupdate_noint - .text 0x0000000000306d18 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o) - 0x0000000000306d18 _masks - .text 0x0000000000306db4 0xc8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) - 0x0000000000306db4 _dimage - 0x0000000000306e08 _dsubimage - .text 0x0000000000306e7c 0x4c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o) - 0x0000000000306e7c _dclear - .text 0x0000000000306ec8 0x3fc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) - 0x0000000000307070 _pollevent - 0x00000000003071b4 _waitevent - 0x0000000000307200 _clearevents - 0x0000000000307220 _keydown - 0x000000000030724c _keydown_all - 0x0000000000307288 _keydown_any - .text 0x00000000003072c4 0x124 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o) - 0x00000000003072d0 _iokbd_row - 0x00000000003073b8 _iokbd_scan - .text 0x00000000003073e8 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o) - 0x00000000003073e8 _getkey_opt - 0x0000000000307594 _getkey - 0x00000000003075a0 _getkey_repeat - .text 0x00000000003075dc 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) - .text 0x00000000003075dc 0x1c4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) - 0x000000000030776c _gint_panic - 0x000000000030777c _gint_panic_set - 0x0000000000307788 _gint_exc_catch - 0x0000000000307794 _gint_exc_skip - .text 0x00000000003077a0 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o) - .text 0x00000000003077a0 0x17c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(setup.c.o) - 0x0000000000307854 _gint_install - 0x0000000000307904 _gint_unload - .text 0x000000000030791c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o) - .text 0x000000000030791c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o) - .text 0x000000000030791c 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o) - 0x000000000030791c _tlb_addr - 0x0000000000307930 _tlb_data - 0x0000000000307944 _tlb_mapped_memory - 0x0000000000307a18 _utlb_addr - 0x0000000000307a28 _utlb_data - 0x0000000000307a38 _utlb_mapped_memory - .text 0x0000000000307b10 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) - 0x0000000000307b10 _dsize - .text 0x0000000000307bac 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) - 0x0000000000307bac _dprint - .text 0x0000000000307c04 0x56c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) - 0x0000000000307f24 _timer_setup - 0x0000000000307fb4 _timer_delay - 0x0000000000308014 _timer_start - 0x0000000000308048 _timer_reload - 0x0000000000308068 _timer_pause - 0x000000000030809c _timer_stop - 0x00000000003080f8 _timer_timeout - 0x0000000000308104 _timer_address - 0x0000000000308140 _timer_clear - .text 0x0000000000308170 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(sleep.c.o) - 0x0000000000308170 _sleep_us - .text 0x00000000003081c8 0x1d8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) - 0x0000000000308260 _t6k11_display - 0x0000000000308334 _t6k11_contrast - 0x0000000000308360 _t6k11_backlight - .text 0x00000000003083a0 0x150 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) - 0x00000000003084e4 _clock_freq - .text 0x00000000003084f0 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o) - .text 0x00000000003084f0 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o) - 0x00000000003084f0 _bopti_asm_mono - 0x0000000000308516 _bopti_asm_mono_alpha - .text 0x0000000000308548 0x410 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) - 0x0000000000308548 _bopti_grid - 0x00000000003086bc _bopti_render - 0x00000000003087ec _bopti_render_clip - 0x0000000000308900 _bopti_render_noclip - .text 0x0000000000308958 0x2c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(vbr.s.o) - 0x0000000000308958 _gint_setvbr - .text 0x0000000000308984 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(gint.c.o) - 0x0000000000308984 _gint_intlevel - 0x00000000003089d8 _gint_inthandler - .text 0x00000000003089fc 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) - .text 0x00000000003089fc 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) - .text 0x00000000003089fc 0x36c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) - 0x0000000000308adc _ll_set_size - 0x0000000000308af0 _ll_set_state - 0x0000000000308b10 _ll_get_state - 0x0000000000308b20 _ll_clear - 0x0000000000308b6c _ll_send - 0x0000000000308be0 _ll_sendp - 0x0000000000308c2c _ll_display_custom - 0x0000000000308c98 _ll_display - 0x0000000000308cac _ll_pause - 0x0000000000308d04 _ll_panic - 0x0000000000308d40 _ll_set_panic - 0x0000000000308d50 _ll_set_level - 0x0000000000308d5c _ll_get_level - .text 0x0000000000308d68 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) - 0x0000000000308d68 ___movstr - 0x0000000000308d68 ___movmem - 0x0000000000308d9c ___movmemSI64 - 0x0000000000308d9c ___movstrSI64 - 0x0000000000308da0 ___movstrSI60 - 0x0000000000308da0 ___movmemSI60 - 0x0000000000308da4 ___movmemSI56 - 0x0000000000308da4 ___movstrSI56 - 0x0000000000308da8 ___movstrSI52 - 0x0000000000308da8 ___movmemSI52 - 0x0000000000308dac ___movstrSI48 - 0x0000000000308dac ___movmemSI48 - 0x0000000000308db0 ___movstrSI44 - 0x0000000000308db0 ___movmemSI44 - 0x0000000000308db4 ___movstrSI40 - 0x0000000000308db4 ___movmemSI40 - 0x0000000000308db8 ___movstrSI36 - 0x0000000000308db8 ___movmemSI36 - 0x0000000000308dbc ___movmemSI32 - 0x0000000000308dbc ___movstrSI32 - 0x0000000000308dc0 ___movmemSI28 - 0x0000000000308dc0 ___movstrSI28 - 0x0000000000308dc4 ___movstrSI24 - 0x0000000000308dc4 ___movmemSI24 - 0x0000000000308dc8 ___movmemSI20 - 0x0000000000308dc8 ___movstrSI20 - 0x0000000000308dcc ___movstrSI16 - 0x0000000000308dcc ___movmemSI16 - 0x0000000000308dd0 ___movmemSI12 - 0x0000000000308dd0 ___movstrSI12 - 0x0000000000308dd4 ___movmemSI8 - 0x0000000000308dd4 ___movstrSI8 - 0x0000000000308dd8 ___movmemSI4 - 0x0000000000308dd8 ___movstrSI4 - .text 0x0000000000308de0 0x1f0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) - 0x0000000000308de0 ___udivdi3 - .text 0x0000000000308fd0 0x234 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) - 0x0000000000308fd0 ___umoddi3 - .text 0x0000000000309204 0x6c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) - 0x0000000000309226 ___udivsi3 - .text 0x0000000000309270 0x60 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) - 0x0000000000309270 ___udiv_qrnnd_16 - .text 0x00000000003092d0 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) + .text 0x0000000000300b1c 0x654 build-fx/src/levelchanger.c.o + 0x0000000000300b1c _play_level + 0x0000000000300c88 _launch_ui + .text 0x0000000000301170 0x2028 build-fx/src/level.c.o + 0x0000000000301170 _malloc_error + 0x00000000003011a8 _init_level + 0x000000000030122c _init_ennemies + 0x000000000030129c _set_level + 0x0000000000303178 _get_lvl_id + .text 0x0000000000303198 0xd8 build-fx/src/config.c.o + 0x0000000000303198 _configmenu + .text 0x0000000000303270 0x25c build-fx/src/score.c.o + 0x0000000000303270 _new_level + 0x0000000000303290 _new_game + 0x00000000003032e4 _get_score + 0x00000000003032f0 _get_coins + 0x00000000003032fc _score_reset + 0x000000000030331c _score_add_coin + 0x000000000030332c _score_add + 0x000000000030337c _score_display + 0x00000000003034c0 _get_time_spent + .text 0x00000000003034cc 0xe4 build-fx/src/tuyau.c.o + 0x00000000003034cc _set_teleporteurs + 0x0000000000303504 _teleport_active + .text 0x00000000003035b0 0x40 build-fx/src/tile.c.o + 0x00000000003035b0 _draw_tile + .text 0x00000000003035f0 0x318 build-fx/src/plateforme.c.o + 0x00000000003035f0 _reset_plateforme + 0x00000000003035fe _move_plateforme + 0x00000000003037bc _display_plateformes + 0x000000000030385c _move_plateformes + 0x00000000003038b4 _plateforme_check_collide + .text 0x0000000000303908 0x4ac build-fx/src/box.c.o + 0x0000000000303908 _sgn + 0x000000000030391a _check_collision + 0x00000000003039ac _box_move + 0x0000000000303d30 _box_jump + .text 0x0000000000303db4 0x620 build-fx/src/world.c.o + 0x0000000000303db4 _world_get_width + 0x0000000000303dc4 _world_get + 0x0000000000303e28 _display_cell + 0x0000000000304134 _world_get_ctg + 0x0000000000304188 _reset_camera + 0x00000000003041a4 _world_get_real_x0 + 0x00000000003041cc _reload_camera + 0x00000000003041f4 _world_get_real_y0 + 0x0000000000304208 _world_draw + 0x0000000000304324 _world_move + .text 0x00000000003043d4 0x70 build-fx/src/framerate.c.o + 0x00000000003043d4 _callback + 0x00000000003043dc _init_refresh + 0x000000000030441c _quit_refresh + 0x0000000000304428 _wait_next_frame + .text 0x0000000000304444 0x56c build-fx/src/bonus.c.o + 0x0000000000304444 _bonus_set + 0x0000000000304474 _bonus_move + 0x0000000000304628 _bonus_draw + 0x000000000030473c _lance_bullet + 0x0000000000304798 _bullet_display + 0x0000000000304830 _bullet_move + .text 0x00000000003049b0 0x224 build-fx/src/save.c.o + 0x00000000003049b0 _load_save + 0x00000000003049b4 _flash_save + 0x00000000003049b8 _get_highscore + 0x0000000000304a08 _set_highscore + 0x0000000000304a64 _get_highcoins + 0x0000000000304ab4 _set_highcoins + 0x0000000000304b10 _get_best_time + 0x0000000000304b60 _set_best_time + 0x0000000000304bc8 _get_progress_status + .text 0x0000000000304bd4 0x7d0 build-fx/src/mario.c.o + 0x0000000000304be4 _mario_bigger + 0x0000000000304c00 _mario_smaller + 0x0000000000304c2c _mario_draw + 0x0000000000304de8 _test_sol_le_plus_proche + 0x0000000000304e54 _mario_move + .text 0x00000000003053a4 0x0 build-fx/src/main.c.o + .text.startup 0x00000000003053a4 0x24 build-fx/src/main.c.o + 0x00000000003053a4 _main + .text 0x00000000003053c8 0x2c0 build-fx/src/keyboard.c.o + 0x00000000003053c8 _keyboard_clear + 0x00000000003053e8 _getkey_custom + 0x0000000000305438 _menu_pause + 0x0000000000305590 _update_keyboard + .text 0x0000000000305688 0x7b0 build-fx/src/ennemi.c.o + 0x0000000000305688 _display_ennemi + 0x00000000003058d0 _ennemi_check_collision + 0x0000000000305934 _hurt_mario + 0x0000000000305968 _move_ennemi + 0x0000000000305df8 _display_ennemi_table + .text 0x0000000000305e38 0xce4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) + 0x0000000000306834 _kprint_opt + 0x000000000030697c _kprint + 0x0000000000306a54 _kvsprint + 0x0000000000306a9c _sprintf + 0x0000000000306ac4 _vsprintf + 0x0000000000306ae4 _snprintf + 0x0000000000306b04 _vsnprintf + .text 0x0000000000306b1c 0xdc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) + 0x0000000000306b1c _memcpy + 0x0000000000306bd6 __memmove + 0x0000000000306bda __memcmp + 0x0000000000306bde _memset + .text 0x0000000000306bf8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o) + .text 0x0000000000306bf8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) + .text 0x0000000000306bf8 0x11c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(drect.c.o) + 0x0000000000306bf8 _drect + .text 0x0000000000306d14 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) + 0x0000000000306d14 _dupdate + 0x0000000000306d2c _dupdate_noint + .text 0x0000000000306d38 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o) + 0x0000000000306d38 _masks + .text 0x0000000000306dd4 0xc8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) + 0x0000000000306dd4 _dimage + 0x0000000000306e28 _dsubimage + .text 0x0000000000306e9c 0x4c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o) + 0x0000000000306e9c _dclear + .text 0x0000000000306ee8 0x3fc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) + 0x0000000000307090 _pollevent + 0x00000000003071d4 _waitevent + 0x0000000000307220 _clearevents + 0x0000000000307240 _keydown + 0x000000000030726c _keydown_all + 0x00000000003072a8 _keydown_any + .text 0x00000000003072e4 0x124 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o) + 0x00000000003072f0 _iokbd_row + 0x00000000003073d8 _iokbd_scan + .text 0x0000000000307408 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o) + 0x0000000000307408 _getkey_opt + 0x00000000003075b4 _getkey + 0x00000000003075c0 _getkey_repeat + .text 0x00000000003075fc 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) + .text 0x00000000003075fc 0x1c4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) + 0x000000000030778c _gint_panic + 0x000000000030779c _gint_panic_set + 0x00000000003077a8 _gint_exc_catch + 0x00000000003077b4 _gint_exc_skip + .text 0x00000000003077c0 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o) + .text 0x00000000003077c0 0x17c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(setup.c.o) + 0x0000000000307874 _gint_install + 0x0000000000307924 _gint_unload + .text 0x000000000030793c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o) + .text 0x000000000030793c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o) + .text 0x000000000030793c 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o) + 0x000000000030793c _tlb_addr + 0x0000000000307950 _tlb_data + 0x0000000000307964 _tlb_mapped_memory + 0x0000000000307a38 _utlb_addr + 0x0000000000307a48 _utlb_data + 0x0000000000307a58 _utlb_mapped_memory + .text 0x0000000000307b30 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) + 0x0000000000307b30 _dsize + .text 0x0000000000307bcc 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) + 0x0000000000307bcc _dprint + .text 0x0000000000307c24 0x56c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) + 0x0000000000307f44 _timer_setup + 0x0000000000307fd4 _timer_delay + 0x0000000000308034 _timer_start + 0x0000000000308068 _timer_reload + 0x0000000000308088 _timer_pause + 0x00000000003080bc _timer_stop + 0x0000000000308118 _timer_timeout + 0x0000000000308124 _timer_address + 0x0000000000308160 _timer_clear + .text 0x0000000000308190 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(sleep.c.o) + 0x0000000000308190 _sleep_us + .text 0x00000000003081e8 0x1d8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) + 0x0000000000308280 _t6k11_display + 0x0000000000308354 _t6k11_contrast + 0x0000000000308380 _t6k11_backlight + .text 0x00000000003083c0 0x150 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) + 0x0000000000308504 _clock_freq + .text 0x0000000000308510 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o) + .text 0x0000000000308510 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o) + 0x0000000000308510 _bopti_asm_mono + 0x0000000000308536 _bopti_asm_mono_alpha + .text 0x0000000000308568 0x410 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) + 0x0000000000308568 _bopti_grid + 0x00000000003086dc _bopti_render + 0x000000000030880c _bopti_render_clip + 0x0000000000308920 _bopti_render_noclip + .text 0x0000000000308978 0x2c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(vbr.s.o) + 0x0000000000308978 _gint_setvbr + .text 0x00000000003089a4 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(gint.c.o) + 0x00000000003089a4 _gint_intlevel + 0x00000000003089f8 _gint_inthandler + .text 0x0000000000308a1c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) + .text 0x0000000000308a1c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) + .text 0x0000000000308a1c 0x36c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) + 0x0000000000308afc _ll_set_size + 0x0000000000308b10 _ll_set_state + 0x0000000000308b30 _ll_get_state + 0x0000000000308b40 _ll_clear + 0x0000000000308b8c _ll_send + 0x0000000000308c00 _ll_sendp + 0x0000000000308c4c _ll_display_custom + 0x0000000000308cb8 _ll_display + 0x0000000000308ccc _ll_pause + 0x0000000000308d24 _ll_panic + 0x0000000000308d60 _ll_set_panic + 0x0000000000308d70 _ll_set_level + 0x0000000000308d7c _ll_get_level + .text 0x0000000000308d88 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) + 0x0000000000308d88 ___movstr + 0x0000000000308d88 ___movmem + 0x0000000000308dbc ___movmemSI64 + 0x0000000000308dbc ___movstrSI64 + 0x0000000000308dc0 ___movstrSI60 + 0x0000000000308dc0 ___movmemSI60 + 0x0000000000308dc4 ___movmemSI56 + 0x0000000000308dc4 ___movstrSI56 + 0x0000000000308dc8 ___movstrSI52 + 0x0000000000308dc8 ___movmemSI52 + 0x0000000000308dcc ___movstrSI48 + 0x0000000000308dcc ___movmemSI48 + 0x0000000000308dd0 ___movstrSI44 + 0x0000000000308dd0 ___movmemSI44 + 0x0000000000308dd4 ___movstrSI40 + 0x0000000000308dd4 ___movmemSI40 + 0x0000000000308dd8 ___movstrSI36 + 0x0000000000308dd8 ___movmemSI36 + 0x0000000000308ddc ___movmemSI32 + 0x0000000000308ddc ___movstrSI32 + 0x0000000000308de0 ___movmemSI28 + 0x0000000000308de0 ___movstrSI28 + 0x0000000000308de4 ___movstrSI24 + 0x0000000000308de4 ___movmemSI24 + 0x0000000000308de8 ___movmemSI20 + 0x0000000000308de8 ___movstrSI20 + 0x0000000000308dec ___movstrSI16 + 0x0000000000308dec ___movmemSI16 + 0x0000000000308df0 ___movmemSI12 + 0x0000000000308df0 ___movstrSI12 + 0x0000000000308df4 ___movmemSI8 + 0x0000000000308df4 ___movstrSI8 + 0x0000000000308df8 ___movmemSI4 + 0x0000000000308df8 ___movstrSI4 + .text 0x0000000000308e00 0x1f0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) + 0x0000000000308e00 ___udivdi3 + .text 0x0000000000308ff0 0x234 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) + 0x0000000000308ff0 ___umoddi3 + .text 0x0000000000309224 0x6c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) + 0x0000000000309246 ___udivsi3 + .text 0x0000000000309290 0x60 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000309290 ___udiv_qrnnd_16 + .text 0x00000000003092f0 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) *(C P) -.gint.blocks 0x00000000003092d0 0x120 +.gint.blocks 0x00000000003092f0 0x120 *(.gint.blocks) - .gint.blocks 0x00000000003092d0 0x40 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) - 0x00000000003092d0 _gint_inth_7305 - 0x00000000003092f0 _gint_inth_7705 - .gint.blocks 0x0000000000309310 0xe0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) - 0x0000000000309310 _inth_tmu - 0x0000000000309390 _inth_etmu2 - 0x00000000003093b0 _inth_etmu_help - 0x00000000003093d0 _inth_etmux + .gint.blocks 0x00000000003092f0 0x40 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) + 0x00000000003092f0 _gint_inth_7305 + 0x0000000000309310 _gint_inth_7705 + .gint.blocks 0x0000000000309330 0xe0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) + 0x0000000000309330 _inth_tmu + 0x00000000003093b0 _inth_etmu2 + 0x00000000003093d0 _inth_etmu_help + 0x00000000003093f0 _inth_etmux -.gint.drivers 0x00000000003093f0 0x90 - 0x00000000003093f0 _bdrv = . +.gint.drivers 0x0000000000309410 0x90 + 0x0000000000309410 _bdrv = . *(.gint.drivers.0) *(.gint.drivers.1) .gint.drivers.1 - 0x00000000003093f0 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) - 0x00000000003093f0 _drv_cpg + 0x0000000000309410 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) + 0x0000000000309410 _drv_cpg *(.gint.drivers.2) .gint.drivers.2 - 0x0000000000309414 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) - 0x0000000000309414 _drv_tmu + 0x0000000000309434 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) + 0x0000000000309434 _drv_tmu *(.gint.drivers.3) *(.gint.drivers.4) .gint.drivers.4 - 0x0000000000309438 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) - 0x0000000000309438 _drv_keysc + 0x0000000000309458 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) + 0x0000000000309458 _drv_keysc *(.gint.drivers.5) .gint.drivers.5 - 0x000000000030945c 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) - 0x000000000030945c _drv_t6k11 + 0x000000000030947c 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) + 0x000000000030947c _drv_t6k11 *(.gint.drivers.6) - 0x0000000000309480 _edrv = . + 0x00000000003094a0 _edrv = . -.rodata 0x0000000000309480 0x7e30 +.rodata 0x00000000003094a0 0x7e30 *(.rodata.4) *(.rodata .rodata.*) .rodata.str1.4 - 0x0000000000309480 0xe build-fx/src/levelchanger.c.o + 0x00000000003094a0 0xe build-fx/src/levelchanger.c.o 0x12 (size before relaxing) - *fill* 0x000000000030948e 0x2 - .rodata 0x0000000000309490 0x2e3c build-fx/src/level.c.o + *fill* 0x00000000003094ae 0x2 + .rodata 0x00000000003094b0 0x2e3c build-fx/src/level.c.o .rodata.str1.4 - 0x000000000030c2cc 0x6 build-fx/src/level.c.o - *fill* 0x000000000030c2d2 0x2 + 0x000000000030c2ec 0x6 build-fx/src/level.c.o + *fill* 0x000000000030c2f2 0x2 .rodata.str1.4 - 0x000000000030c2d4 0x22 build-fx/src/config.c.o - *fill* 0x000000000030c2f6 0x2 + 0x000000000030c2f4 0x22 build-fx/src/config.c.o + *fill* 0x000000000030c316 0x2 .rodata.str1.4 - 0x000000000030c2f8 0x1a build-fx/src/score.c.o + 0x000000000030c318 0x1a build-fx/src/score.c.o 0x1e (size before relaxing) - *fill* 0x000000000030c312 0x2 - .rodata 0x000000000030c314 0x130 build-fx/src/tile.c.o - 0x000000000030c314 _tplateforme - 0x000000000030c324 _mario_big - 0x000000000030c334 _mario_small - 0x000000000030c344 _bullet - 0x000000000030c354 _fleur - 0x000000000030c364 _mario_starman - 0x000000000030c374 _life_1up - 0x000000000030c384 _champi - 0x000000000030c394 _bloc - 0x000000000030c3a4 _end_level - 0x000000000030c3b4 _castle - 0x000000000030c3c4 _colline - 0x000000000030c3d4 _buisson - 0x000000000030c3e4 _nuage - 0x000000000030c3f4 _coin - 0x000000000030c404 _gift - 0x000000000030c414 _earth - 0x000000000030c424 _brick - 0x000000000030c434 _tuyau + *fill* 0x000000000030c332 0x2 + .rodata 0x000000000030c334 0x130 build-fx/src/tile.c.o + 0x000000000030c334 _tplateforme + 0x000000000030c344 _mario_big + 0x000000000030c354 _mario_small + 0x000000000030c364 _bullet + 0x000000000030c374 _fleur + 0x000000000030c384 _mario_starman + 0x000000000030c394 _life_1up + 0x000000000030c3a4 _champi + 0x000000000030c3b4 _bloc + 0x000000000030c3c4 _end_level + 0x000000000030c3d4 _castle + 0x000000000030c3e4 _colline + 0x000000000030c3f4 _buisson + 0x000000000030c404 _nuage + 0x000000000030c414 _coin + 0x000000000030c424 _gift + 0x000000000030c434 _earth + 0x000000000030c444 _brick + 0x000000000030c454 _tuyau .rodata.str1.4 - 0x000000000030c444 0x63 build-fx/src/world.c.o - *fill* 0x000000000030c4a7 0x1 - .rodata 0x000000000030c4a8 0x28 build-fx/src/keyboard.c.o - .rodata 0x000000000030c4d0 0x60 build-fx/src/ennemi.c.o - 0x000000000030c500 _ennemi_heights - 0x000000000030c518 _ennemi_widths - .rodata 0x000000000030c530 0x204 build-fx/assets/fonts/mario.png.o - 0x000000000030c530 _font_mario - 0x000000000030c734 _font_mario_end - .rodata 0x000000000030c734 0x20 build-fx/assets/img/bonus.png.o - 0x000000000030c734 _img_bonus - 0x000000000030c754 _img_bonus_end - .rodata 0x000000000030c754 0x24 build-fx/assets/img/bloc.png.o - 0x000000000030c754 _img_bloc - 0x000000000030c778 _img_bloc_end - .rodata 0x000000000030c778 0x404 build-fx/assets/img/ram.png.o - 0x000000000030c778 _img_ram - 0x000000000030cb7c _img_ram_end - .rodata 0x000000000030cb7c 0x58 build-fx/assets/img/w5.png.o - 0x000000000030cb7c _img_w5 - 0x000000000030cbd4 _img_w5_end - .rodata 0x000000000030cbd4 0x404 build-fx/assets/img/options.png.o - 0x000000000030cbd4 _img_options - 0x000000000030cfd8 _img_options_end - .rodata 0x000000000030cfd8 0x44 build-fx/assets/img/fleur.png.o - 0x000000000030cfd8 _img_fleur - 0x000000000030d01c _img_fleur_end - .rodata 0x000000000030d01c 0x58 build-fx/assets/img/w2.png.o - 0x000000000030d01c _img_w2 - 0x000000000030d074 _img_w2_end - .rodata 0x000000000030d074 0x404 build-fx/assets/img/main.png.o - 0x000000000030d074 _img_main - 0x000000000030d478 _img_main_end - .rodata 0x000000000030d478 0x64 build-fx/assets/img/flag.png.o - 0x000000000030d478 _img_flag - 0x000000000030d4dc _img_flag_end - .rodata 0x000000000030d4dc 0x404 build-fx/assets/img/new_level.png.o - 0x000000000030d4dc _img_new_level - 0x000000000030d8e0 _img_new_level_end - .rodata 0x000000000030d8e0 0x4c build-fx/assets/img/brick.png.o - 0x000000000030d8e0 _img_brick - 0x000000000030d92c _img_brick_end - .rodata 0x000000000030d92c 0xbc build-fx/assets/img/menu_pause.png.o - 0x000000000030d92c _img_menu_pause - 0x000000000030d9e8 _img_menu_pause_end - .rodata 0x000000000030d9e8 0x18 build-fx/assets/img/select_arrow.png.o - 0x000000000030d9e8 _img_select_arrow - 0x000000000030da00 _img_select_arrow_end - .rodata 0x000000000030da00 0x804 build-fx/assets/img/dev.png.o - 0x000000000030da00 _img_dev - 0x000000000030e204 _img_dev_end - .rodata 0x000000000030e204 0x24 build-fx/assets/img/death.png.o - 0x000000000030e204 _img_death - 0x000000000030e228 _img_death_end - .rodata 0x000000000030e228 0x404 build-fx/assets/img/mainmenu.png.o - 0x000000000030e228 _img_mainmenu - 0x000000000030e62c _img_mainmenu_end - .rodata 0x000000000030e62c 0x58 build-fx/assets/img/w3.png.o - 0x000000000030e62c _img_w3 - 0x000000000030e684 _img_w3_end - .rodata 0x000000000030e684 0x404 build-fx/assets/img/time_over.png.o - 0x000000000030e684 _img_time_over - 0x000000000030ea88 _img_time_over_end - .rodata 0x000000000030ea88 0x4c build-fx/assets/img/coin.png.o - 0x000000000030ea88 _img_coin - 0x000000000030ead4 _img_coin_end - .rodata 0x000000000030ead4 0x24 build-fx/assets/img/champi.png.o - 0x000000000030ead4 _img_champi - 0x000000000030eaf8 _img_champi_end - .rodata 0x000000000030eaf8 0xdc build-fx/assets/img/mariosmall.png.o - 0x000000000030eaf8 _img_mariosmall - 0x000000000030ebd4 _img_mariosmall_end - .rodata 0x000000000030ebd4 0x404 build-fx/assets/img/levelchanger.png.o - 0x000000000030ebd4 _img_levelchanger - 0x000000000030efd8 _img_levelchanger_end - .rodata 0x000000000030efd8 0x28 build-fx/assets/img/gift.png.o - 0x000000000030efd8 _img_gift - 0x000000000030f000 _img_gift_end - .rodata 0x000000000030f000 0x44 build-fx/assets/img/buisson.png.o - 0x000000000030f000 _img_buisson - 0x000000000030f044 _img_buisson_end - .rodata 0x000000000030f044 0x84 build-fx/assets/img/colline.png.o - 0x000000000030f044 _img_colline - 0x000000000030f0c8 _img_colline_end - .rodata 0x000000000030f0c8 0x24 build-fx/assets/img/star.png.o - 0x000000000030f0c8 _img_star - 0x000000000030f0ec _img_star_end - .rodata 0x000000000030f0ec 0x224 build-fx/assets/img/mariobig.png.o - 0x000000000030f0ec _img_mariobig - 0x000000000030f310 _img_mariobig_end - .rodata 0x000000000030f310 0x804 build-fx/assets/img/error.png.o - 0x000000000030f310 _img_error - 0x000000000030fb14 _img_error_end - .rodata 0x000000000030fb14 0x44 build-fx/assets/img/1up.png.o - 0x000000000030fb14 _img_1up - 0x000000000030fb58 _img_1up_end - .rodata 0x000000000030fb58 0xb8 build-fx/assets/img/tuyau.png.o - 0x000000000030fb58 _img_tuyau - 0x000000000030fc10 _img_tuyau_end - .rodata 0x000000000030fc10 0x24 build-fx/assets/img/bullet.png.o - 0x000000000030fc10 _img_bullet - 0x000000000030fc34 _img_bullet_end - .rodata 0x000000000030fc34 0x4c build-fx/assets/img/carapace_verte.png.o - 0x000000000030fc34 _img_carapace_verte - 0x000000000030fc80 _img_carapace_verte_end - .rodata 0x000000000030fc80 0x44 build-fx/assets/img/nuage.png.o - 0x000000000030fc80 _img_nuage - 0x000000000030fcc4 _img_nuage_end - .rodata 0x000000000030fcc4 0x10 build-fx/assets/img/plateforme.png.o - 0x000000000030fcc4 _img_plateforme - 0x000000000030fcd4 _img_plateforme_end - .rodata 0x000000000030fcd4 0xc4 build-fx/assets/img/koopa_verte.png.o - 0x000000000030fcd4 _img_koopa_verte - 0x000000000030fd98 _img_koopa_verte_end - .rodata 0x000000000030fd98 0x404 build-fx/assets/img/game_over.png.o - 0x000000000030fd98 _img_game_over - 0x000000000031019c _img_game_over_end - .rodata 0x000000000031019c 0x404 build-fx/assets/img/level.png.o - 0x000000000031019c _img_level - 0x00000000003105a0 _img_level_end - .rodata 0x00000000003105a0 0xe4 build-fx/assets/img/castle.png.o - 0x00000000003105a0 _img_castle - 0x0000000000310684 _img_castle_end - .rodata 0x0000000000310684 0x4c build-fx/assets/img/goomba.png.o - 0x0000000000310684 _img_goomba - 0x00000000003106d0 _img_goomba_end - .rodata 0x00000000003106d0 0x4c build-fx/assets/img/stone.png.o - 0x00000000003106d0 _img_stone - 0x000000000031071c _img_stone_end - .rodata 0x000000000031071c 0x24 build-fx/assets/img/tickbox.png.o - 0x000000000031071c _img_tickbox - 0x0000000000310740 _img_tickbox_end - .rodata 0x0000000000310740 0x58 build-fx/assets/img/w4.png.o - 0x0000000000310740 _img_w4 - 0x0000000000310798 _img_w4_end - .rodata 0x0000000000310798 0x58 build-fx/assets/img/w1.png.o - 0x0000000000310798 _img_w1 - 0x00000000003107f0 _img_w1_end - .rodata 0x00000000003107f0 0x404 build-fx/assets/img/lvl0.png.o - 0x00000000003107f0 _img_lvl0 - 0x0000000000310bf4 _img_lvl0_end + 0x000000000030c464 0x63 build-fx/src/world.c.o + *fill* 0x000000000030c4c7 0x1 + .rodata 0x000000000030c4c8 0x28 build-fx/src/keyboard.c.o + .rodata 0x000000000030c4f0 0x60 build-fx/src/ennemi.c.o + 0x000000000030c520 _ennemi_heights + 0x000000000030c538 _ennemi_widths + .rodata 0x000000000030c550 0x204 build-fx/assets/fonts/mario.png.o + 0x000000000030c550 _font_mario + 0x000000000030c754 _font_mario_end + .rodata 0x000000000030c754 0x20 build-fx/assets/img/bonus.png.o + 0x000000000030c754 _img_bonus + 0x000000000030c774 _img_bonus_end + .rodata 0x000000000030c774 0x24 build-fx/assets/img/bloc.png.o + 0x000000000030c774 _img_bloc + 0x000000000030c798 _img_bloc_end + .rodata 0x000000000030c798 0x404 build-fx/assets/img/ram.png.o + 0x000000000030c798 _img_ram + 0x000000000030cb9c _img_ram_end + .rodata 0x000000000030cb9c 0x58 build-fx/assets/img/w5.png.o + 0x000000000030cb9c _img_w5 + 0x000000000030cbf4 _img_w5_end + .rodata 0x000000000030cbf4 0x404 build-fx/assets/img/options.png.o + 0x000000000030cbf4 _img_options + 0x000000000030cff8 _img_options_end + .rodata 0x000000000030cff8 0x44 build-fx/assets/img/fleur.png.o + 0x000000000030cff8 _img_fleur + 0x000000000030d03c _img_fleur_end + .rodata 0x000000000030d03c 0x58 build-fx/assets/img/w2.png.o + 0x000000000030d03c _img_w2 + 0x000000000030d094 _img_w2_end + .rodata 0x000000000030d094 0x404 build-fx/assets/img/main.png.o + 0x000000000030d094 _img_main + 0x000000000030d498 _img_main_end + .rodata 0x000000000030d498 0x64 build-fx/assets/img/flag.png.o + 0x000000000030d498 _img_flag + 0x000000000030d4fc _img_flag_end + .rodata 0x000000000030d4fc 0x404 build-fx/assets/img/new_level.png.o + 0x000000000030d4fc _img_new_level + 0x000000000030d900 _img_new_level_end + .rodata 0x000000000030d900 0x4c build-fx/assets/img/brick.png.o + 0x000000000030d900 _img_brick + 0x000000000030d94c _img_brick_end + .rodata 0x000000000030d94c 0xbc build-fx/assets/img/menu_pause.png.o + 0x000000000030d94c _img_menu_pause + 0x000000000030da08 _img_menu_pause_end + .rodata 0x000000000030da08 0x18 build-fx/assets/img/select_arrow.png.o + 0x000000000030da08 _img_select_arrow + 0x000000000030da20 _img_select_arrow_end + .rodata 0x000000000030da20 0x804 build-fx/assets/img/dev.png.o + 0x000000000030da20 _img_dev + 0x000000000030e224 _img_dev_end + .rodata 0x000000000030e224 0x24 build-fx/assets/img/death.png.o + 0x000000000030e224 _img_death + 0x000000000030e248 _img_death_end + .rodata 0x000000000030e248 0x404 build-fx/assets/img/mainmenu.png.o + 0x000000000030e248 _img_mainmenu + 0x000000000030e64c _img_mainmenu_end + .rodata 0x000000000030e64c 0x58 build-fx/assets/img/w3.png.o + 0x000000000030e64c _img_w3 + 0x000000000030e6a4 _img_w3_end + .rodata 0x000000000030e6a4 0x404 build-fx/assets/img/time_over.png.o + 0x000000000030e6a4 _img_time_over + 0x000000000030eaa8 _img_time_over_end + .rodata 0x000000000030eaa8 0x4c build-fx/assets/img/coin.png.o + 0x000000000030eaa8 _img_coin + 0x000000000030eaf4 _img_coin_end + .rodata 0x000000000030eaf4 0x24 build-fx/assets/img/champi.png.o + 0x000000000030eaf4 _img_champi + 0x000000000030eb18 _img_champi_end + .rodata 0x000000000030eb18 0xdc build-fx/assets/img/mariosmall.png.o + 0x000000000030eb18 _img_mariosmall + 0x000000000030ebf4 _img_mariosmall_end + .rodata 0x000000000030ebf4 0x404 build-fx/assets/img/levelchanger.png.o + 0x000000000030ebf4 _img_levelchanger + 0x000000000030eff8 _img_levelchanger_end + .rodata 0x000000000030eff8 0x28 build-fx/assets/img/gift.png.o + 0x000000000030eff8 _img_gift + 0x000000000030f020 _img_gift_end + .rodata 0x000000000030f020 0x44 build-fx/assets/img/buisson.png.o + 0x000000000030f020 _img_buisson + 0x000000000030f064 _img_buisson_end + .rodata 0x000000000030f064 0x84 build-fx/assets/img/colline.png.o + 0x000000000030f064 _img_colline + 0x000000000030f0e8 _img_colline_end + .rodata 0x000000000030f0e8 0x24 build-fx/assets/img/star.png.o + 0x000000000030f0e8 _img_star + 0x000000000030f10c _img_star_end + .rodata 0x000000000030f10c 0x224 build-fx/assets/img/mariobig.png.o + 0x000000000030f10c _img_mariobig + 0x000000000030f330 _img_mariobig_end + .rodata 0x000000000030f330 0x804 build-fx/assets/img/error.png.o + 0x000000000030f330 _img_error + 0x000000000030fb34 _img_error_end + .rodata 0x000000000030fb34 0x44 build-fx/assets/img/1up.png.o + 0x000000000030fb34 _img_1up + 0x000000000030fb78 _img_1up_end + .rodata 0x000000000030fb78 0xb8 build-fx/assets/img/tuyau.png.o + 0x000000000030fb78 _img_tuyau + 0x000000000030fc30 _img_tuyau_end + .rodata 0x000000000030fc30 0x24 build-fx/assets/img/bullet.png.o + 0x000000000030fc30 _img_bullet + 0x000000000030fc54 _img_bullet_end + .rodata 0x000000000030fc54 0x4c build-fx/assets/img/carapace_verte.png.o + 0x000000000030fc54 _img_carapace_verte + 0x000000000030fca0 _img_carapace_verte_end + .rodata 0x000000000030fca0 0x44 build-fx/assets/img/nuage.png.o + 0x000000000030fca0 _img_nuage + 0x000000000030fce4 _img_nuage_end + .rodata 0x000000000030fce4 0x10 build-fx/assets/img/plateforme.png.o + 0x000000000030fce4 _img_plateforme + 0x000000000030fcf4 _img_plateforme_end + .rodata 0x000000000030fcf4 0xc4 build-fx/assets/img/koopa_verte.png.o + 0x000000000030fcf4 _img_koopa_verte + 0x000000000030fdb8 _img_koopa_verte_end + .rodata 0x000000000030fdb8 0x404 build-fx/assets/img/game_over.png.o + 0x000000000030fdb8 _img_game_over + 0x00000000003101bc _img_game_over_end + .rodata 0x00000000003101bc 0x404 build-fx/assets/img/level.png.o + 0x00000000003101bc _img_level + 0x00000000003105c0 _img_level_end + .rodata 0x00000000003105c0 0xe4 build-fx/assets/img/castle.png.o + 0x00000000003105c0 _img_castle + 0x00000000003106a4 _img_castle_end + .rodata 0x00000000003106a4 0x4c build-fx/assets/img/goomba.png.o + 0x00000000003106a4 _img_goomba + 0x00000000003106f0 _img_goomba_end + .rodata 0x00000000003106f0 0x4c build-fx/assets/img/stone.png.o + 0x00000000003106f0 _img_stone + 0x000000000031073c _img_stone_end + .rodata 0x000000000031073c 0x24 build-fx/assets/img/tickbox.png.o + 0x000000000031073c _img_tickbox + 0x0000000000310760 _img_tickbox_end + .rodata 0x0000000000310760 0x58 build-fx/assets/img/w4.png.o + 0x0000000000310760 _img_w4 + 0x00000000003107b8 _img_w4_end + .rodata 0x00000000003107b8 0x58 build-fx/assets/img/w1.png.o + 0x00000000003107b8 _img_w1 + 0x0000000000310810 _img_w1_end + .rodata 0x0000000000310810 0x404 build-fx/assets/img/lvl0.png.o + 0x0000000000310810 _img_lvl0 + 0x0000000000310c14 _img_lvl0_end .rodata.str1.4 - 0x0000000000310bf4 0x31 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) - *fill* 0x0000000000310c25 0x3 - .rodata 0x0000000000310c28 0x8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) + 0x0000000000310c14 0x31 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) + *fill* 0x0000000000310c45 0x3 + .rodata 0x0000000000310c48 0x8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) .rodata.str1.4 - 0x0000000000310c30 0x6 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) - *fill* 0x0000000000310c36 0x2 + 0x0000000000310c50 0x6 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) + *fill* 0x0000000000310c56 0x2 .rodata.str1.4 - 0x0000000000310c38 0x11a /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) + 0x0000000000310c58 0x11a /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) 0x11e (size before relaxing) - *fill* 0x0000000000310d52 0x2 - .rodata 0x0000000000310d54 0x18 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) + *fill* 0x0000000000310d72 0x2 + .rodata 0x0000000000310d74 0x18 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) .rodata.str1.4 - 0x0000000000310d6c 0x4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) - .rodata 0x0000000000310d70 0x408 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o) - 0x0000000000310d70 _gint_font5x7 - 0x0000000000311178 _gint_font5x7_end + 0x0000000000310d8c 0x4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) + .rodata 0x0000000000310d90 0x408 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o) + 0x0000000000310d90 _gint_font5x7 + 0x0000000000311198 _gint_font5x7_end .rodata.str1.4 - 0x0000000000311178 0x6 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) - *fill* 0x000000000031117e 0x2 + 0x0000000000311198 0x6 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) + *fill* 0x000000000031119e 0x2 .rodata.str1.4 - 0x0000000000311180 0x4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) - .rodata 0x0000000000311184 0x10 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) + 0x00000000003111a0 0x4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) + .rodata 0x00000000003111a4 0x10 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) .rodata.str1.4 - 0x0000000000311194 0x1b /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) - *fill* 0x00000000003111af 0x1 - .rodata 0x00000000003111b0 0x100 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) - 0x00000000003111b0 ___clz_tab + 0x00000000003111b4 0x1b /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) + *fill* 0x00000000003111cf 0x1 + .rodata 0x00000000003111d0 0x100 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) + 0x00000000003111d0 ___clz_tab -.rela.dyn 0x00000000003112b0 0x0 - .rela.text 0x00000000003112b0 0x0 build-fx/src/levelchanger.c.o +.rela.dyn 0x00000000003112d0 0x0 + .rela.text 0x00000000003112d0 0x0 build-fx/src/levelchanger.c.o .rela.pretext.entry - 0x00000000003112b0 0x0 build-fx/src/levelchanger.c.o + 0x00000000003112d0 0x0 build-fx/src/levelchanger.c.o 0x0000000008100000 . = ORIGIN (ram) .bss 0x0000000008100000 0x930 @@ -807,73 +813,74 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a 0x00000000081000b8 _w_current_x 0x00000000081000bc _w_fond 0x00000000081000c0 _w_current - .bss 0x00000000081000c8 0x0 build-fx/src/bonus.c.o - .bss 0x00000000081000c8 0x2d4 build-fx/src/save.c.o - 0x00000000081000c8 _progress_status - 0x00000000081000cc _level_starfrags - 0x0000000008100180 _level_coins - 0x0000000008100234 _level_times - 0x00000000081002e8 _level_scores - .bss 0x000000000810039c 0x24 build-fx/src/mario.c.o - 0x000000000810039c _global_quit - 0x00000000081003a0 _mario_star_mode - 0x00000000081003a4 _mario_immunity - 0x00000000081003a8 _mario_dead - 0x00000000081003ac _mario_has_bullets - 0x00000000081003b0 _mario_x_max - 0x00000000081003b4 _id_frame - .bss 0x00000000081003c0 0x0 build-fx/src/main.c.o - .bss 0x00000000081003c0 0x18 build-fx/src/keyboard.c.o - 0x00000000081003c0 _keys - .bss 0x00000000081003d8 0x8 build-fx/src/ennemi.c.o - 0x00000000081003d8 _ennemis_global_size - 0x00000000081003dc _ennemis_global - .bss 0x00000000081003e0 0x114 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) - .bss 0x00000000081004f4 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) - .bss 0x00000000081004f4 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o) - .bss 0x00000000081004f4 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) - .bss 0x00000000081004f4 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(drect.c.o) - .bss 0x00000000081004f4 0x400 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) - .bss 0x00000000081008f4 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o) - .bss 0x00000000081008f4 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) - .bss 0x00000000081008f4 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o) - .bss 0x00000000081008f4 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) - .bss 0x0000000008100918 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o) - .bss 0x0000000008100918 0xc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(setup.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(sleep.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(vbr.s.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(gint.c.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) - .bss 0x0000000008100924 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) - .bss 0x0000000008100924 0x4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) - .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) - .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) - .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) - .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) - .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) - .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) + .bss 0x00000000081000c8 0x4 build-fx/src/framerate.c.o + .bss 0x00000000081000cc 0x0 build-fx/src/bonus.c.o + .bss 0x00000000081000cc 0x2d4 build-fx/src/save.c.o + 0x00000000081000cc _progress_status + 0x00000000081000d0 _level_starfrags + 0x0000000008100184 _level_coins + 0x0000000008100238 _level_times + 0x00000000081002ec _level_scores + .bss 0x00000000081003a0 0x24 build-fx/src/mario.c.o + 0x00000000081003a0 _global_quit + 0x00000000081003a4 _mario_star_mode + 0x00000000081003a8 _mario_immunity + 0x00000000081003ac _mario_dead + 0x00000000081003b0 _mario_has_bullets + 0x00000000081003b4 _mario_x_max + 0x00000000081003b8 _id_frame + .bss 0x00000000081003c4 0x0 build-fx/src/main.c.o + .bss 0x00000000081003c4 0x18 build-fx/src/keyboard.c.o + 0x00000000081003c4 _keys + .bss 0x00000000081003dc 0x8 build-fx/src/ennemi.c.o + 0x00000000081003dc _ennemis_global_size + 0x00000000081003e0 _ennemis_global + .bss 0x00000000081003e4 0x114 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) + .bss 0x00000000081004f8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) + .bss 0x00000000081004f8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o) + .bss 0x00000000081004f8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) + .bss 0x00000000081004f8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(drect.c.o) + .bss 0x00000000081004f8 0x400 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) + .bss 0x00000000081008f8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o) + .bss 0x00000000081008f8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) + .bss 0x00000000081008f8 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o) + .bss 0x00000000081008f8 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) + .bss 0x000000000810091c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o) + .bss 0x000000000810091c 0xc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(start.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(syscalls.S.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(setup.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(hardware.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.s.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(sleep.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti-asm.s.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti-asm.s.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(vbr.s.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(gint.c.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) + .bss 0x0000000008100928 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) + .bss 0x0000000008100928 0x4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) + .bss 0x000000000810092c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) + .bss 0x000000000810092c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) + .bss 0x000000000810092c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) + .bss 0x000000000810092c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) + .bss 0x000000000810092c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) + .bss 0x000000000810092c 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) *(B R) 0x0000000008100930 . = ALIGN (0x10) - *fill* 0x0000000008100928 0x8 + *fill* 0x000000000810092c 0x4 0x0000000000000930 _sbss = SIZEOF (.bss) -.data 0x0000000008100930 0x160 load address 0x00000000003112b0 - 0x00000000003112b0 _ldata = LOADADDR (.data) +.data 0x0000000008100930 0x160 load address 0x00000000003112d0 + 0x00000000003112d0 _ldata = LOADADDR (.data) 0x0000000008100930 _rdata = . *(.data .data.*) .data 0x0000000008100930 0x0 build-fx/src/levelchanger.c.o @@ -888,6 +895,7 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a .data 0x000000000810098c 0x0 build-fx/src/plateforme.c.o .data 0x000000000810098c 0x0 build-fx/src/box.c.o .data 0x000000000810098c 0x0 build-fx/src/world.c.o + .data 0x000000000810098c 0x0 build-fx/src/framerate.c.o .data 0x000000000810098c 0x3c build-fx/src/bonus.c.o .data 0x00000000081009c8 0x0 build-fx/src/save.c.o .data 0x00000000081009c8 0x20 build-fx/src/mario.c.o @@ -941,28 +949,28 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a *(D) 0x0000000008100a90 . = ALIGN (0x10) -.data.4 0x0000000008100a90 0x0 load address 0x0000000000311410 +.data.4 0x0000000008100a90 0x0 load address 0x0000000000311430 *(.data.4) 0x0000000008100a90 . = ALIGN (0x10) 0x0000000000000160 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) 0x00000000e5200000 . = ORIGIN (ilram) -.ilram 0x00000000e5200000 0x0 load address 0x0000000000311410 - 0x0000000000311410 _lilram = LOADADDR (.ilram) +.ilram 0x00000000e5200000 0x0 load address 0x0000000000311430 + 0x0000000000311430 _lilram = LOADADDR (.ilram) 0x00000000e5200000 _rilram = . *(.ilram) 0x00000000e5200000 . = ALIGN (0x10) 0x00000000e5007000 . = ORIGIN (xram) -.xram 0x00000000e5007000 0x0 load address 0x0000000000311410 - 0x0000000000311410 _lxram = LOADADDR (.xram) +.xram 0x00000000e5007000 0x0 load address 0x0000000000311430 + 0x0000000000311430 _lxram = LOADADDR (.xram) 0x00000000e5007000 _rxram = . *(.xram) 0x00000000e5007000 . = ALIGN (0x10) 0x00000000e5017000 . = ORIGIN (yram) -.yram 0x00000000e5017000 0x0 load address 0x0000000000311410 - 0x0000000000311410 _lyram = LOADADDR (.yram) +.yram 0x00000000e5017000 0x0 load address 0x0000000000311430 + 0x0000000000311430 _lyram = LOADADDR (.yram) 0x00000000e5017000 _ryram = . *(.yram) 0x00000000e5017000 . = ALIGN (0x10) @@ -972,8 +980,8 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a 0x000000008800df00 _gint_vbr = 0x8800df00 0x000000008800f400 . = ORIGIN (rram) -.gint.data 0x000000008800f400 0x140 load address 0x0000000000311410 - 0x0000000000311410 _lgdata = LOADADDR (.gint.data) +.gint.data 0x000000008800f400 0x140 load address 0x0000000000311430 + 0x0000000000311430 _lgdata = LOADADDR (.gint.data) 0x000000008800f400 _rgdata = . *(.gint.data .gint.data.*) .gint.data 0x000000008800f400 0x4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) @@ -994,7 +1002,7 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a 0x000000008800f540 . = ALIGN (0x10) 0x0000000000000140 _sgdata = SIZEOF (.gint.data) -.gint.bss 0x000000008800f540 0x290 load address 0x0000000000311550 +.gint.bss 0x000000008800f540 0x290 load address 0x0000000000311570 *(.gint.bss .gint.bss.*) .gint.bss 0x000000008800f540 0x180 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) .gint.bss 0x000000008800f6c0 0x1c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(setup.c.o) diff --git a/build-fx/src/framerate.c.d b/build-fx/src/framerate.c.d new file mode 100644 index 0000000..ed73092 --- /dev/null +++ b/build-fx/src/framerate.c.d @@ -0,0 +1 @@ +build-fx/src/framerate.c.o: src/framerate.c diff --git a/build-fx/src/framerate.c.o b/build-fx/src/framerate.c.o new file mode 100644 index 0000000000000000000000000000000000000000..76c1cfd79ee5e563e9eb057754664aabe0593436 GIT binary patch literal 1060 zcma)5zi-n(6n=J6;^0;)*-#lmKqydjK*d0-3b`s!BoJi)iOsq=7bR+vw)R!DQz|j@ zUofz-GO+OvGz+YN0y8X3Nbo)T&M{%($?xv_-miQ2!=t+o?>VkRxj1wMxL|PKftToJ z8quUGd7qt&HS#~vN%bpjHzxGK3;fZqv8PHW-Z#2d`&bG535_cg8kIMew=ZS2-#^ag z={R;amM4UYknvor)@Z&geWCLW@?l$g^Alt0qpi)&wR&^w(bLQIRk0$jPfHY0-gB9L z|0p_2f9;1i!{1au%3uq|Qbr->xxhaMa@H8UT2}7@xCadkzhV5en1S0f{J{)=27Vtp zZ}K}c{uulT^jzxi#B!iwsg;N*?8+q6y=X_ZDU4*l-;&V|g}q@)7jfh`Ol$dtxPR_Q|N zd?{T5X|&|_r6dTuhcoh_hYM_ZV-xPi?H>|J>|Blin9vhHB_^3FyYZhBUf@Y-9dd=$ zUNdMEj!Ut`DeQX%fBMxnWuarW=TGrokNSJAkc=$Uy3w`nl(Zgnqu!ItD(G1cr1VZ9SGc_8?lFT{c3}ud{Mpp-^8H*vpTjAOZj1NG$lN?z47yEgiZ|i%QfAJ% z&W4HeUUN z?{WcoPG9HrP1J(-i@?@DcrS9}-*Ea{POo{|%TERT;<4BKg8r(gZT;`#nu(nDAES7- z7mdYzDLkw=%%WWUQPk!9enOVw0^Z=X!D(;Pms=$>o96V}oPLkfA5wlQz~KTuCjXH`ndS+I~j*NL}T0583$4t!YDRj>n-8?v@vLQNW8)XSXJ#f0eHx+CX=L?T=Z@4>KRHv)R{UFa%E zTJJn#V~qe|Vg;a%7|*&yybqwBxEd{#)#2IvR6PGw~Ip?sUT4R==I~p zT7Wolef1TH4b?)$Mt}sxC;*3jw#C+Jbs}!AJ_>5Du0TXrs2~wtp?4{w6Ezf%PCQGD zPCQ49PCQSHP8=adCyp|xd?7@%;usB}6E8T64S9CjX^p5MTwG9b1|uq)zgpAm*pUV{ r@8lz$c>Nl$OU|#6&d?VawBppuYRJMDy5#i9Y7;I7PT-GPdH(+a+rjvR delta 2298 zcmZ9NUrZcT6vn^VT}EJPVHYcumQYyApW1d?0i{b-&@_}HX-%zZ{FB`&GYYc6c3E1R zm@FHMDOOX$h&GX!#*oGb5*jf+Y0^Yue5lEeX)9JVMX*6bn$#v6A4u@b?3}LNo6Mcx zcki7!=YIF>?3#bIYRsQl0N_Rg^*}B1k+&#S`JmiJ;N3+j@KN`3fy>JXeARn2@ZBE> z+zi}Fbsnxv{ByIj+}olcPj{y})cYqrKXu$ez}KQI!)*WgP%GVUwJ)O1r_b*2nFm`H z?H#l2gwJeKeXe4uw4&s~Mo+1EpjAoST@NoMat~Mcr~A^8bZ`32bWa*eciMcWm0oW? z-S6AIGAhli-o*>|DoRF={n%W-s8-GgPfC?OGx$r;T9pbe1g+2`$zS*B?hZvuK2M{a zbg7@wGds=3KjmAE6~B)pTfC#WX8nx@O3-a?r#^w1tKp@i_xw#C6fME5-7{IfcNwip zGC7hwv#upO6y1G@Uc@h)`E4X=`X@@P7tG9$B-L>WFl`oDI}VSZlg_)%tvAZ-S)+g4 z+&tm7`4i;1S8R{*?UBqq(;KfzO-5Mqx(l9dnVpp0%Sj;D2S_wqN>?u7myWLH=L$1W zFX$FQcMAFyLBApBn5`4kI{_@To1@k9B#m{x{vf5$5LvowBqY)Cp+S zrrjL9Ea>}!Ui-h6HVC>z(3Rxw*OcE%#$jm}&1W{92`D`!Ja9nJFAKU`&{09ZCFo&6 zpX2z>5lCagf{z6)ST21b%nKGvKM3>J1-<0#pKCy}&dqKaM_g86{#Pr4wu;tn&iXn* zHwt>cpgWET11||$7xa*z&kFj25za4b?ouO>6KYp4LeYqNCKS<6=@EqDJ$-sCr0F!o zVo;9{MIVT`8jBkf`Q2@=$J9PO)T1HPr^b2)5IQ{&i)f*~fm1rO7E@0nq;*AfHHOe& z*Fa1UX+48hJQ^N~YHD0Jjw!XX=ape8aU95Vyp+N~KC=cq#7xzsFh_t5%u(QB<~XpC znX0RR`E5Eu=3&6gO!oMQ?JAe3+=_UDe%y~Rj{%#QKLj3Sz6caEPXZ;(mw?U8Q}p3t z{v6oCJPmARzC!WK9O1eOlrzr(+nB!xDwwYUmCPx?&rIc8#XJveXI=oRnQsF%%**s2 zXEW{JwUW)$wF=ZZi#%lG4ra13hnZ~TL_KG-iF(Mz$9N67m@PWkCThLn90T6 z2^M5yfSGLE!#tHu&O|`pgMjnr6cOa81e6BLN!pA3*6S=&eoOptnoOqI%oM>VuC-zC8FE2HjtO)W1Inm5~ z3D|FJDIAlgjOjvu4&~>rGOic;rFr9uTx=A03yHRQYp6d+{a;4ZTa&X!t5U|K*PnBZ UPWMw|&g +#include + +static volatile int has_ticked = 0; + +int callback(volatile void *arg) +{ + volatile int *has_ticked = arg; + *has_ticked = 1; + + return 0; +} + +void init_refresh() +{ + timer_setup(0, timer_delay(0, 50000), timer_Po_4, callback, &has_ticked); + timer_start(0); +} + +void quit_refresh() +{ + timer_stop(0); +} + +void wait_next_frame() +{ + while (1) + { + if (has_ticked) + { + has_ticked=0; + return; + } + sleep(); + } +} \ No newline at end of file diff --git a/src/levelchanger.c b/src/levelchanger.c index 5be2d2f..5e4e614 100644 --- a/src/levelchanger.c +++ b/src/levelchanger.c @@ -13,7 +13,7 @@ #include #include #include - +#include static void levelchanger(int w) { @@ -237,21 +237,10 @@ void launch_ui() int frame_id; -int callback(volatile void *arg) -{ - volatile int *has_ticked = arg; - *has_ticked = 1; - - return 0; -} - - int play_level(int w, int l) { - volatile int has_ticked = 1; - timer_setup(0, timer_delay(0, 50000), timer_Po_4, callback, &has_ticked); - timer_start(0); + init_refresh(); //int finish_status=0; // FAil finish_level=0; mario_dead=0; @@ -267,57 +256,48 @@ int play_level(int w, int l) while(global_quit==0) { - if (has_ticked) - { - has_ticked=0; - frame_id++; + wait_next_frame(); + + frame_id++; //mario_move(); - world_move(); - dclear(C_WHITE); - world_draw(mario.p.x,mario.p.y); - score_display(); + world_move(); + dclear(C_WHITE); + world_draw(mario.p.x,mario.p.y); + score_display(); - dupdate(); - if (mario_dead) + dupdate(); + if (mario_dead) + { + mario_immunity=0; + int i=6; + while(mario.p.y>=0) { - mario_immunity=0; - int i=6; - while(mario.p.y>=0) - { - if (has_ticked) - { - has_ticked=0; - mario.p.y+=i; - dclear(C_WHITE); - world_draw(mario.p.x,mario.p.y); - mario_draw(); - score_display(); + wait_next_frame(); + mario.p.y+=i; + dclear(C_WHITE); + world_draw(mario.p.x,mario.p.y); + mario_draw(); + score_display(); - dupdate(); - i--; - } - else - sleep_ms(3,1); - } - sleep_ms(3,1000); - - timer_stop(0); - - return 0; - } - if (finish_level) - { - timer_stop(0); - // TODO ajouter temps au score etc - if (finish_level==1) - sleep_ms(3,3000); - return finish_level; + dupdate(); + i--; } + sleep_ms(3,1000); + quit_refresh(); + + return 0; } - else - sleep_ms(3,1); + if (finish_level) + { + quit_refresh(); + // TODO ajouter temps au score etc + if (finish_level==1) + sleep_ms(3,3000); + return finish_level; + } + } return 0;