diff --git a/SuperCbr.g1a b/SuperCbr.g1a index fac659e..5414bfc 100644 Binary files a/SuperCbr.g1a and b/SuperCbr.g1a differ diff --git a/build-fx/SuperCbr.bin b/build-fx/SuperCbr.bin index 800a254..4bf57f4 100755 Binary files a/build-fx/SuperCbr.bin and b/build-fx/SuperCbr.bin differ diff --git a/build-fx/SuperCbr.elf b/build-fx/SuperCbr.elf index f21be64..c3e0c54 100755 Binary files a/build-fx/SuperCbr.elf and b/build-fx/SuperCbr.elf differ diff --git a/build-fx/map b/build-fx/map index 69ca73d..46ac1dc 100644 --- a/build-fx/map +++ b/build-fx/map @@ -70,12 +70,12 @@ Archive member included to satisfy reference by file (symbol) build-fx/src/world.c.o (_ll_sendp) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) build-fx/src/level.c.o (___movmemSI60) +/home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) + build-fx/src/camera.c.o (___udivsi3) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) (___udivdi3) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) (___umoddi3) -/home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) - /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) (___udivsi3) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) (___udiv_qrnnd_16) /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) @@ -88,11 +88,13 @@ frame_id 0x4 build-fx/src/levelchanger.c.o Discarded input sections + .comment 0x0000000000000000 0x12 build-fx/src/base.c.o .comment 0x0000000000000000 0x12 build-fx/src/levelchanger.c.o .comment 0x0000000000000000 0x12 build-fx/src/level.c.o .comment 0x0000000000000000 0x12 build-fx/src/config.c.o .comment 0x0000000000000000 0x12 build-fx/src/score.c.o .comment 0x0000000000000000 0x12 build-fx/src/tuyau.c.o + .comment 0x0000000000000000 0x12 build-fx/src/bullet.c.o .comment 0x0000000000000000 0x12 build-fx/src/tile.c.o .comment 0x0000000000000000 0x12 build-fx/src/plateforme.c.o .comment 0x0000000000000000 0x12 build-fx/src/box.c.o @@ -100,10 +102,11 @@ Discarded input sections .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 + .comment 0x0000000000000000 0x12 build-fx/src/camera.c.o .comment 0x0000000000000000 0x12 build-fx/src/main.c.o .comment 0x0000000000000000 0x12 build-fx/src/keyboard.c.o .comment 0x0000000000000000 0x12 build-fx/src/ennemi.c.o + .comment 0x0000000000000000 0x12 build-fx/src/mario.c.o .comment 0x0000000000000000 0x12 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) .comment 0x0000000000000000 0x12 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) .comment 0x0000000000000000 0x12 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dtext.c.o) @@ -172,11 +175,13 @@ yram 0x00000000e5017000 0x0000000000002000 xrw Linker script and memory map +LOAD build-fx/src/base.c.o LOAD build-fx/src/levelchanger.c.o LOAD build-fx/src/level.c.o LOAD build-fx/src/config.c.o LOAD build-fx/src/score.c.o LOAD build-fx/src/tuyau.c.o +LOAD build-fx/src/bullet.c.o LOAD build-fx/src/tile.c.o LOAD build-fx/src/plateforme.c.o LOAD build-fx/src/box.c.o @@ -184,10 +189,11 @@ 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 +LOAD build-fx/src/camera.c.o LOAD build-fx/src/main.c.o LOAD build-fx/src/keyboard.c.o LOAD build-fx/src/ennemi.c.o +LOAD build-fx/src/mario.c.o LOAD build-fx/assets/fonts/mario.png.o LOAD build-fx/assets/img/bonus.png.o LOAD build-fx/assets/img/bloc.png.o @@ -240,7 +246,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 - 0x000000000001424c _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + 0x000000000001406c _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) .pretext 0x0000000000300200 0x8d0 *(.pretext.entry) @@ -280,7 +286,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 0x8f80 +.text 0x0000000000300ad0 0x8da0 0x0000000000300ad0 _gint_exch_tlbh_start = . *(.gint.exch_tlbh) .gint.exch_tlbh @@ -288,513 +294,522 @@ 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 0x654 build-fx/src/levelchanger.c.o - 0x0000000000300b1c _play_level - 0x0000000000300c88 _launch_ui - .text 0x0000000000301170 0x251c build-fx/src/level.c.o - 0x0000000000301170 _malloc_error - 0x00000000003011a8 _init_level - 0x000000000030122c _init_ennemies - 0x000000000030129c _set_level - 0x000000000030366c _get_lvl_id - .text 0x000000000030368c 0xd8 build-fx/src/config.c.o - 0x000000000030368c _configmenu - .text 0x0000000000303764 0x25c build-fx/src/score.c.o - 0x0000000000303764 _new_level - 0x0000000000303784 _new_game - 0x00000000003037d8 _get_score - 0x00000000003037e4 _get_coins - 0x00000000003037f0 _score_reset - 0x0000000000303810 _score_add_coin - 0x0000000000303820 _score_add - 0x0000000000303870 _score_display - 0x00000000003039b4 _get_time_spent - .text 0x00000000003039c0 0x180 build-fx/src/tuyau.c.o - 0x00000000003039c0 _set_teleporteurs - 0x00000000003039f8 _teleport_active - .text 0x0000000000303b40 0x40 build-fx/src/tile.c.o - 0x0000000000303b40 _draw_tile - .text 0x0000000000303b80 0x324 build-fx/src/plateforme.c.o - 0x0000000000303b80 _reset_plateforme - 0x0000000000303b8e _move_plateforme - 0x0000000000303d58 _display_plateformes - 0x0000000000303df8 _move_plateformes - 0x0000000000303e50 _plateforme_check_collide - .text 0x0000000000303ea4 0x470 build-fx/src/box.c.o - 0x0000000000303ea4 _sgn - 0x0000000000303eb6 _check_collision - 0x0000000000303f48 _box_move - 0x0000000000304290 _box_jump - .text 0x0000000000304314 0x620 build-fx/src/world.c.o - 0x0000000000304314 _world_get_width - 0x0000000000304324 _world_get - 0x0000000000304388 _display_cell - 0x0000000000304694 _world_get_ctg - 0x00000000003046e8 _reset_camera - 0x0000000000304704 _world_get_real_x0 - 0x000000000030472c _reload_camera - 0x0000000000304754 _world_get_real_y0 - 0x0000000000304768 _world_draw - 0x0000000000304884 _world_move - .text 0x0000000000304934 0x70 build-fx/src/framerate.c.o - 0x0000000000304934 _callback - 0x000000000030493c _init_refresh - 0x000000000030497c _quit_refresh - 0x0000000000304988 _wait_next_frame - .text 0x00000000003049a4 0x56c build-fx/src/bonus.c.o - 0x00000000003049a4 _bonus_set - 0x00000000003049d4 _bonus_move - 0x0000000000304b88 _bonus_draw - 0x0000000000304c9c _lance_bullet - 0x0000000000304cf8 _bullet_display - 0x0000000000304d90 _bullet_move - .text 0x0000000000304f10 0x224 build-fx/src/save.c.o - 0x0000000000304f10 _load_save - 0x0000000000304f14 _flash_save - 0x0000000000304f18 _get_highscore - 0x0000000000304f68 _set_highscore - 0x0000000000304fc4 _get_highcoins - 0x0000000000305014 _set_highcoins - 0x0000000000305070 _get_best_time - 0x00000000003050c0 _set_best_time - 0x0000000000305128 _get_progress_status - .text 0x0000000000305134 0x7b8 build-fx/src/mario.c.o - 0x0000000000305144 _mario_bigger - 0x0000000000305160 _mario_smaller - 0x000000000030518c _mario_draw - 0x0000000000305348 _test_sol_le_plus_proche - 0x00000000003053b4 _mario_move - .text 0x00000000003058ec 0x0 build-fx/src/main.c.o - .text.startup 0x00000000003058ec 0x5c build-fx/src/main.c.o - 0x00000000003058ec _main - .text 0x0000000000305948 0x2c0 build-fx/src/keyboard.c.o - 0x0000000000305948 _keyboard_clear - 0x0000000000305968 _getkey_custom - 0x00000000003059b8 _menu_pause - 0x0000000000305b10 _update_keyboard - .text 0x0000000000305c08 0x98c build-fx/src/ennemi.c.o - 0x0000000000305c08 _display_ennemi - 0x0000000000305f38 _ennemi_check_collision - 0x0000000000305f9c _hurt_mario - 0x0000000000305fd0 _move_ennemi - 0x0000000000306554 _display_ennemi_table - .text 0x0000000000306594 0xce4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) - 0x0000000000306f90 _kprint_opt - 0x00000000003070d8 _kprint - 0x00000000003071b0 _kvsprint - 0x00000000003071f8 _sprintf - 0x0000000000307220 _vsprintf - 0x0000000000307240 _snprintf - 0x0000000000307260 _vsnprintf - .text 0x0000000000307278 0xdc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) - 0x0000000000307278 _memcpy - 0x0000000000307332 __memmove - 0x0000000000307336 __memcmp - 0x000000000030733a _memset - .text 0x0000000000307354 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 0x0000000000307354 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 0x0000000000307354 0x11c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(drect.c.o) - 0x0000000000307354 _drect - .text 0x0000000000307470 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) - 0x0000000000307470 _dupdate - 0x0000000000307488 _dupdate_noint - .text 0x0000000000307494 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o) - 0x0000000000307494 _masks - .text 0x0000000000307530 0xc8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) - 0x0000000000307530 _dimage - 0x0000000000307584 _dsubimage - .text 0x00000000003075f8 0x4c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o) - 0x00000000003075f8 _dclear - .text 0x0000000000307644 0x3fc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) - 0x00000000003077ec _pollevent - 0x0000000000307930 _waitevent - 0x000000000030797c _clearevents - 0x000000000030799c _keydown - 0x00000000003079c8 _keydown_all - 0x0000000000307a04 _keydown_any - .text 0x0000000000307a40 0x124 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o) - 0x0000000000307a4c _iokbd_row - 0x0000000000307b34 _iokbd_scan - .text 0x0000000000307b64 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o) - 0x0000000000307b64 _getkey_opt - 0x0000000000307d10 _getkey - 0x0000000000307d1c _getkey_repeat - .text 0x0000000000307d58 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 0x0000000000307d58 0x1c4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) - 0x0000000000307ee8 _gint_panic - 0x0000000000307ef8 _gint_panic_set - 0x0000000000307f04 _gint_exc_catch - 0x0000000000307f10 _gint_exc_skip - .text 0x0000000000307f1c 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 0x0000000000307f1c 0x17c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(setup.c.o) - 0x0000000000307fd0 _gint_install - 0x0000000000308080 _gint_unload - .text 0x0000000000308098 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 0x0000000000308098 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 0x0000000000308098 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o) - 0x0000000000308098 _tlb_addr - 0x00000000003080ac _tlb_data - 0x00000000003080c0 _tlb_mapped_memory - 0x0000000000308194 _utlb_addr - 0x00000000003081a4 _utlb_data - 0x00000000003081b4 _utlb_mapped_memory - .text 0x000000000030828c 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) - 0x000000000030828c _dsize - .text 0x0000000000308328 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) - 0x0000000000308328 _dprint - .text 0x0000000000308380 0x56c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) - 0x00000000003086a0 _timer_setup - 0x0000000000308730 _timer_delay - 0x0000000000308790 _timer_start - 0x00000000003087c4 _timer_reload - 0x00000000003087e4 _timer_pause - 0x0000000000308818 _timer_stop - 0x0000000000308874 _timer_timeout - 0x0000000000308880 _timer_address - 0x00000000003088bc _timer_clear - .text 0x00000000003088ec 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(sleep.c.o) - 0x00000000003088ec _sleep_us - .text 0x0000000000308944 0x1d8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) - 0x00000000003089dc _t6k11_display - 0x0000000000308ab0 _t6k11_contrast - 0x0000000000308adc _t6k11_backlight - .text 0x0000000000308b1c 0x150 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) - 0x0000000000308c60 _clock_freq - .text 0x0000000000308c6c 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 0x0000000000308c6c 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) - 0x0000000000308c6c _bopti_asm_mono - 0x0000000000308c92 _bopti_asm_mono_alpha - .text 0x0000000000308cc4 0x410 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) - 0x0000000000308cc4 _bopti_grid - 0x0000000000308e38 _bopti_render - 0x0000000000308f68 _bopti_render_clip - 0x000000000030907c _bopti_render_noclip - .text 0x00000000003090d4 0x2c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(vbr.s.o) - 0x00000000003090d4 _gint_setvbr - .text 0x0000000000309100 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(gint.c.o) - 0x0000000000309100 _gint_intlevel - 0x0000000000309154 _gint_inthandler - .text 0x0000000000309178 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 0x0000000000309178 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 0x0000000000309178 0x36c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) - 0x0000000000309258 _ll_set_size - 0x000000000030926c _ll_set_state - 0x000000000030928c _ll_get_state - 0x000000000030929c _ll_clear - 0x00000000003092e8 _ll_send - 0x000000000030935c _ll_sendp - 0x00000000003093a8 _ll_display_custom - 0x0000000000309414 _ll_display - 0x0000000000309428 _ll_pause - 0x0000000000309480 _ll_panic - 0x00000000003094bc _ll_set_panic - 0x00000000003094cc _ll_set_level - 0x00000000003094d8 _ll_get_level - .text 0x00000000003094e4 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) - 0x00000000003094e4 ___movstr - 0x00000000003094e4 ___movmem - 0x0000000000309518 ___movmemSI64 - 0x0000000000309518 ___movstrSI64 - 0x000000000030951c ___movstrSI60 - 0x000000000030951c ___movmemSI60 - 0x0000000000309520 ___movmemSI56 - 0x0000000000309520 ___movstrSI56 - 0x0000000000309524 ___movstrSI52 - 0x0000000000309524 ___movmemSI52 - 0x0000000000309528 ___movstrSI48 - 0x0000000000309528 ___movmemSI48 - 0x000000000030952c ___movstrSI44 - 0x000000000030952c ___movmemSI44 - 0x0000000000309530 ___movstrSI40 - 0x0000000000309530 ___movmemSI40 - 0x0000000000309534 ___movstrSI36 - 0x0000000000309534 ___movmemSI36 - 0x0000000000309538 ___movmemSI32 - 0x0000000000309538 ___movstrSI32 - 0x000000000030953c ___movmemSI28 - 0x000000000030953c ___movstrSI28 - 0x0000000000309540 ___movstrSI24 - 0x0000000000309540 ___movmemSI24 - 0x0000000000309544 ___movmemSI20 - 0x0000000000309544 ___movstrSI20 - 0x0000000000309548 ___movstrSI16 - 0x0000000000309548 ___movmemSI16 - 0x000000000030954c ___movmemSI12 - 0x000000000030954c ___movstrSI12 - 0x0000000000309550 ___movmemSI8 - 0x0000000000309550 ___movstrSI8 - 0x0000000000309554 ___movmemSI4 - 0x0000000000309554 ___movstrSI4 - .text 0x000000000030955c 0x1f0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) - 0x000000000030955c ___udivdi3 - .text 0x000000000030974c 0x234 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) - 0x000000000030974c ___umoddi3 - .text 0x0000000000309980 0x6c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) - 0x00000000003099a2 ___udivsi3 - *fill* 0x00000000003099ec 0x4 - .text 0x00000000003099f0 0x60 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) - 0x00000000003099f0 ___udiv_qrnnd_16 - .text 0x0000000000309a50 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) + .text 0x0000000000300b1c 0x28 build-fx/src/base.c.o + 0x0000000000300b1c _max + 0x0000000000300b28 _min + 0x0000000000300b34 _sgn + .text 0x0000000000300b44 0x660 build-fx/src/levelchanger.c.o + 0x0000000000300b44 _play_level + 0x0000000000300cb0 _launch_ui + .text 0x00000000003011a4 0x2380 build-fx/src/level.c.o + 0x00000000003011a4 _malloc_error + 0x00000000003011dc _init_level + 0x0000000000301260 _init_ennemies + 0x00000000003012d0 _set_level + 0x0000000000303504 _get_lvl_id + .text 0x0000000000303524 0xd4 build-fx/src/config.c.o + 0x0000000000303524 _configmenu + .text 0x00000000003035f8 0x288 build-fx/src/score.c.o + 0x00000000003035f8 _new_level + 0x0000000000303618 _new_game + 0x000000000030366c _get_score + 0x0000000000303678 _get_coins + 0x0000000000303684 _score_reset + 0x00000000003036a4 _score_add_coin + 0x00000000003036b4 _score_add + 0x0000000000303704 _score_display + 0x0000000000303848 _get_time_spent + 0x0000000000303854 _lifes_get + 0x0000000000303860 _lifes_lose + 0x0000000000303870 _lifes_add + .text 0x0000000000303880 0x178 build-fx/src/tuyau.c.o + 0x0000000000303880 _set_teleporteurs + 0x00000000003038b8 _teleport_active + .text 0x00000000003039f8 0x278 build-fx/src/bullet.c.o + 0x00000000003039f8 _bullet_throw + 0x0000000000303a54 _bullet_display + 0x0000000000303af0 _bullet_move + .text 0x0000000000303c70 0x40 build-fx/src/tile.c.o + 0x0000000000303c70 _draw_tile + .text 0x0000000000303cb0 0x324 build-fx/src/plateforme.c.o + 0x0000000000303cb0 _reset_plateforme + 0x0000000000303cbe _move_plateforme + 0x0000000000303e88 _display_plateformes + 0x0000000000303f28 _move_plateformes + 0x0000000000303f80 _plateforme_check_collide + .text 0x0000000000303fd4 0x460 build-fx/src/box.c.o + 0x0000000000303fd4 _check_collision + 0x0000000000304068 _box_move + 0x00000000003043b0 _box_jump + .text 0x0000000000304434 0x5a4 build-fx/src/world.c.o + 0x0000000000304434 _world_get_width + 0x0000000000304444 _world_get + 0x00000000003044a8 _display_cell + 0x00000000003047b4 _world_get_ctg + 0x0000000000304808 _world_draw + 0x0000000000304914 _world_move + .text 0x00000000003049d8 0x70 build-fx/src/framerate.c.o + 0x00000000003049d8 _callback + 0x00000000003049e0 _init_refresh + 0x0000000000304a20 _quit_refresh + 0x0000000000304a2c _wait_next_frame + .text 0x0000000000304a48 0x298 build-fx/src/bonus.c.o + 0x0000000000304a48 _bonus_set + 0x0000000000304a78 _bonus_move + 0x0000000000304be8 _bonus_draw + .text 0x0000000000304ce0 0x224 build-fx/src/save.c.o + 0x0000000000304ce0 _load_save + 0x0000000000304ce4 _flash_save + 0x0000000000304ce8 _get_highscore + 0x0000000000304d38 _set_highscore + 0x0000000000304d94 _get_highcoins + 0x0000000000304de4 _set_highcoins + 0x0000000000304e40 _get_best_time + 0x0000000000304e90 _set_best_time + 0x0000000000304ef8 _get_progress_status + .text 0x0000000000304f04 0x8c build-fx/src/camera.c.o + 0x0000000000304f04 _camera_x + 0x0000000000304f34 _camera_y + 0x0000000000304f40 _camera_move + 0x0000000000304f70 _camera_adjust + 0x0000000000304f84 _camera_reset + .text 0x0000000000304f90 0x0 build-fx/src/main.c.o + .text.startup 0x0000000000304f90 0x5c build-fx/src/main.c.o + 0x0000000000304f90 _main + .text 0x0000000000304fec 0x290 build-fx/src/keyboard.c.o + 0x0000000000304fec _mkb_getstate + 0x0000000000305004 _mkb_clear + 0x0000000000305024 _mkb_getkey + 0x0000000000305060 _mkb_update + .text 0x000000000030527c 0x97c build-fx/src/ennemi.c.o + 0x000000000030527c _display_ennemi + 0x00000000003055ac _ennemi_check_collision + 0x0000000000305610 _hurt_mario + 0x0000000000305644 _move_ennemi + 0x0000000000305bb8 _display_ennemi_table + .text 0x0000000000305bf8 0x7c0 build-fx/src/mario.c.o + 0x0000000000305c08 _mario_bigger + 0x0000000000305c24 _mario_smaller + 0x0000000000305c50 _mario_draw + 0x0000000000305e0c _test_sol_le_plus_proche + 0x0000000000305e78 _mario_move + .text 0x00000000003063b8 0xce4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) + 0x0000000000306db4 _kprint_opt + 0x0000000000306efc _kprint + 0x0000000000306fd4 _kvsprint + 0x000000000030701c _sprintf + 0x0000000000307044 _vsprintf + 0x0000000000307064 _snprintf + 0x0000000000307084 _vsnprintf + .text 0x000000000030709c 0xdc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) + 0x000000000030709c _memcpy + 0x0000000000307156 __memmove + 0x000000000030715a __memcmp + 0x000000000030715e _memset + .text 0x0000000000307178 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 0x0000000000307178 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 0x0000000000307178 0x11c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(drect.c.o) + 0x0000000000307178 _drect + .text 0x0000000000307294 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dupdate.c.o) + 0x0000000000307294 _dupdate + 0x00000000003072ac _dupdate_noint + .text 0x00000000003072b8 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(masks.c.o) + 0x00000000003072b8 _masks + .text 0x0000000000307354 0xc8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) + 0x0000000000307354 _dimage + 0x00000000003073a8 _dsubimage + .text 0x000000000030741c 0x4c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dclear.c.o) + 0x000000000030741c _dclear + .text 0x0000000000307468 0x3fc /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) + 0x0000000000307610 _pollevent + 0x0000000000307754 _waitevent + 0x00000000003077a0 _clearevents + 0x00000000003077c0 _keydown + 0x00000000003077ec _keydown_all + 0x0000000000307828 _keydown_any + .text 0x0000000000307864 0x124 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(iokbd.c.o) + 0x0000000000307870 _iokbd_row + 0x0000000000307958 _iokbd_scan + .text 0x0000000000307988 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(getkey.c.o) + 0x0000000000307988 _getkey_opt + 0x0000000000307b34 _getkey + 0x0000000000307b40 _getkey_repeat + .text 0x0000000000307b7c 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 0x0000000000307b7c 0x1c4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) + 0x0000000000307d0c _gint_panic + 0x0000000000307d1c _gint_panic_set + 0x0000000000307d28 _gint_exc_catch + 0x0000000000307d34 _gint_exc_skip + .text 0x0000000000307d40 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 0x0000000000307d40 0x17c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(setup.c.o) + 0x0000000000307df4 _gint_install + 0x0000000000307ea4 _gint_unload + .text 0x0000000000307ebc 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 0x0000000000307ebc 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 0x0000000000307ebc 0x1f4 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(mmu.c.o) + 0x0000000000307ebc _tlb_addr + 0x0000000000307ed0 _tlb_data + 0x0000000000307ee4 _tlb_mapped_memory + 0x0000000000307fb8 _utlb_addr + 0x0000000000307fc8 _utlb_data + 0x0000000000307fd8 _utlb_mapped_memory + .text 0x00000000003080b0 0x9c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(topti.c.o) + 0x00000000003080b0 _dsize + .text 0x000000000030814c 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dprint.c.o) + 0x000000000030814c _dprint + .text 0x00000000003081a4 0x56c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) + 0x00000000003084c4 _timer_setup + 0x0000000000308554 _timer_delay + 0x00000000003085b4 _timer_start + 0x00000000003085e8 _timer_reload + 0x0000000000308608 _timer_pause + 0x000000000030863c _timer_stop + 0x0000000000308698 _timer_timeout + 0x00000000003086a4 _timer_address + 0x00000000003086e0 _timer_clear + .text 0x0000000000308710 0x58 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(sleep.c.o) + 0x0000000000308710 _sleep_us + .text 0x0000000000308768 0x1d8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) + 0x0000000000308800 _t6k11_display + 0x00000000003088d4 _t6k11_contrast + 0x0000000000308900 _t6k11_backlight + .text 0x0000000000308940 0x150 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) + 0x0000000000308a84 _clock_freq + .text 0x0000000000308a90 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 0x0000000000308a90 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) + 0x0000000000308a90 _bopti_asm_mono + 0x0000000000308ab6 _bopti_asm_mono_alpha + .text 0x0000000000308ae8 0x410 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) + 0x0000000000308ae8 _bopti_grid + 0x0000000000308c5c _bopti_render + 0x0000000000308d8c _bopti_render_clip + 0x0000000000308ea0 _bopti_render_noclip + .text 0x0000000000308ef8 0x2c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(vbr.s.o) + 0x0000000000308ef8 _gint_setvbr + .text 0x0000000000308f24 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(gint.c.o) + 0x0000000000308f24 _gint_intlevel + 0x0000000000308f78 _gint_inthandler + .text 0x0000000000308f9c 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 0x0000000000308f9c 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 0x0000000000308f9c 0x36c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) + 0x000000000030907c _ll_set_size + 0x0000000000309090 _ll_set_state + 0x00000000003090b0 _ll_get_state + 0x00000000003090c0 _ll_clear + 0x000000000030910c _ll_send + 0x0000000000309180 _ll_sendp + 0x00000000003091cc _ll_display_custom + 0x0000000000309238 _ll_display + 0x000000000030924c _ll_pause + 0x00000000003092a4 _ll_panic + 0x00000000003092e0 _ll_set_panic + 0x00000000003092f0 _ll_set_level + 0x00000000003092fc _ll_get_level + .text 0x0000000000309308 0x78 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) + 0x0000000000309308 ___movstr + 0x0000000000309308 ___movmem + 0x000000000030933c ___movmemSI64 + 0x000000000030933c ___movstrSI64 + 0x0000000000309340 ___movstrSI60 + 0x0000000000309340 ___movmemSI60 + 0x0000000000309344 ___movmemSI56 + 0x0000000000309344 ___movstrSI56 + 0x0000000000309348 ___movstrSI52 + 0x0000000000309348 ___movmemSI52 + 0x000000000030934c ___movstrSI48 + 0x000000000030934c ___movmemSI48 + 0x0000000000309350 ___movstrSI44 + 0x0000000000309350 ___movmemSI44 + 0x0000000000309354 ___movstrSI40 + 0x0000000000309354 ___movmemSI40 + 0x0000000000309358 ___movstrSI36 + 0x0000000000309358 ___movmemSI36 + 0x000000000030935c ___movmemSI32 + 0x000000000030935c ___movstrSI32 + 0x0000000000309360 ___movmemSI28 + 0x0000000000309360 ___movstrSI28 + 0x0000000000309364 ___movstrSI24 + 0x0000000000309364 ___movmemSI24 + 0x0000000000309368 ___movmemSI20 + 0x0000000000309368 ___movstrSI20 + 0x000000000030936c ___movstrSI16 + 0x000000000030936c ___movmemSI16 + 0x0000000000309370 ___movmemSI12 + 0x0000000000309370 ___movstrSI12 + 0x0000000000309374 ___movmemSI8 + 0x0000000000309374 ___movstrSI8 + 0x0000000000309378 ___movmemSI4 + 0x0000000000309378 ___movstrSI4 + .text 0x0000000000309380 0x6c /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) + 0x00000000003093a2 ___udivsi3 + .text 0x00000000003093ec 0x1f0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) + 0x00000000003093ec ___udivdi3 + .text 0x00000000003095dc 0x234 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) + 0x00000000003095dc ___umoddi3 + .text 0x0000000000309810 0x60 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000309810 ___udiv_qrnnd_16 + .text 0x0000000000309870 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 0x0000000000309a50 0x120 +.gint.blocks 0x0000000000309870 0x120 *(.gint.blocks) - .gint.blocks 0x0000000000309a50 0x40 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) - 0x0000000000309a50 _gint_inth_7305 - 0x0000000000309a70 _gint_inth_7705 - .gint.blocks 0x0000000000309a90 0xe0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) - 0x0000000000309a90 _inth_tmu - 0x0000000000309b10 _inth_etmu2 - 0x0000000000309b30 _inth_etmu_help - 0x0000000000309b50 _inth_etmux + .gint.blocks 0x0000000000309870 0x40 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.S.o) + 0x0000000000309870 _gint_inth_7305 + 0x0000000000309890 _gint_inth_7705 + .gint.blocks 0x00000000003098b0 0xe0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) + 0x00000000003098b0 _inth_tmu + 0x0000000000309930 _inth_etmu2 + 0x0000000000309950 _inth_etmu_help + 0x0000000000309970 _inth_etmux -.gint.drivers 0x0000000000309b70 0x90 - 0x0000000000309b70 _bdrv = . +.gint.drivers 0x0000000000309990 0x90 + 0x0000000000309990 _bdrv = . *(.gint.drivers.0) *(.gint.drivers.1) .gint.drivers.1 - 0x0000000000309b70 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) - 0x0000000000309b70 _drv_cpg + 0x0000000000309990 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(cpg.c.o) + 0x0000000000309990 _drv_cpg *(.gint.drivers.2) .gint.drivers.2 - 0x0000000000309b94 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) - 0x0000000000309b94 _drv_tmu + 0x00000000003099b4 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(tmu.c.o) + 0x00000000003099b4 _drv_tmu *(.gint.drivers.3) *(.gint.drivers.4) .gint.drivers.4 - 0x0000000000309bb8 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) - 0x0000000000309bb8 _drv_keysc + 0x00000000003099d8 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(keysc.c.o) + 0x00000000003099d8 _drv_keysc *(.gint.drivers.5) .gint.drivers.5 - 0x0000000000309bdc 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) - 0x0000000000309bdc _drv_t6k11 + 0x00000000003099fc 0x24 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(t6k11.c.o) + 0x00000000003099fc _drv_t6k11 *(.gint.drivers.6) - 0x0000000000309c00 _edrv = . + 0x0000000000309a20 _edrv = . -.rodata 0x0000000000309c00 0xaf1c +.rodata 0x0000000000309a20 0xaf1c *(.rodata.4) *(.rodata .rodata.*) .rodata.str1.4 - 0x0000000000309c00 0xe build-fx/src/levelchanger.c.o + 0x0000000000309a20 0xe build-fx/src/levelchanger.c.o 0x12 (size before relaxing) - *fill* 0x0000000000309c0e 0x2 - .rodata 0x0000000000309c10 0x5de8 build-fx/src/level.c.o + *fill* 0x0000000000309a2e 0x2 + .rodata 0x0000000000309a30 0x5de8 build-fx/src/level.c.o .rodata.str1.4 - 0x000000000030f9f8 0x6 build-fx/src/level.c.o - *fill* 0x000000000030f9fe 0x2 + 0x000000000030f818 0x6 build-fx/src/level.c.o + *fill* 0x000000000030f81e 0x2 .rodata.str1.4 - 0x000000000030fa00 0x22 build-fx/src/config.c.o - *fill* 0x000000000030fa22 0x2 + 0x000000000030f820 0x22 build-fx/src/config.c.o + *fill* 0x000000000030f842 0x2 .rodata.str1.4 - 0x000000000030fa24 0x1a build-fx/src/score.c.o + 0x000000000030f844 0x1a build-fx/src/score.c.o 0x1e (size before relaxing) - *fill* 0x000000000030fa3e 0x2 - .rodata 0x000000000030fa40 0x130 build-fx/src/tile.c.o - 0x000000000030fa40 _tplateforme - 0x000000000030fa50 _mario_big - 0x000000000030fa60 _mario_small - 0x000000000030fa70 _bullet - 0x000000000030fa80 _fleur - 0x000000000030fa90 _mario_starman - 0x000000000030faa0 _life_1up - 0x000000000030fab0 _champi - 0x000000000030fac0 _bloc - 0x000000000030fad0 _end_level - 0x000000000030fae0 _castle - 0x000000000030faf0 _colline - 0x000000000030fb00 _buisson - 0x000000000030fb10 _nuage - 0x000000000030fb20 _coin - 0x000000000030fb30 _gift - 0x000000000030fb40 _earth - 0x000000000030fb50 _brick - 0x000000000030fb60 _tuyau + *fill* 0x000000000030f85e 0x2 + .rodata 0x000000000030f860 0x130 build-fx/src/tile.c.o + 0x000000000030f860 _tplateforme + 0x000000000030f870 _mario_big + 0x000000000030f880 _mario_small + 0x000000000030f890 _bullet + 0x000000000030f8a0 _fleur + 0x000000000030f8b0 _mario_starman + 0x000000000030f8c0 _life_1up + 0x000000000030f8d0 _champi + 0x000000000030f8e0 _bloc + 0x000000000030f8f0 _end_level + 0x000000000030f900 _castle + 0x000000000030f910 _colline + 0x000000000030f920 _buisson + 0x000000000030f930 _nuage + 0x000000000030f940 _coin + 0x000000000030f950 _gift + 0x000000000030f960 _earth + 0x000000000030f970 _brick + 0x000000000030f980 _tuyau .rodata.str1.4 - 0x000000000030fb70 0x63 build-fx/src/world.c.o - *fill* 0x000000000030fbd3 0x1 - .rodata 0x000000000030fbd4 0x28 build-fx/src/keyboard.c.o - .rodata 0x000000000030fbfc 0x30 build-fx/src/ennemi.c.o - 0x000000000030fbfc _ennemi_heights - 0x000000000030fc14 _ennemi_widths - .rodata 0x000000000030fc2c 0x204 build-fx/assets/fonts/mario.png.o - 0x000000000030fc2c _font_mario - 0x000000000030fe30 _font_mario_end - .rodata 0x000000000030fe30 0x20 build-fx/assets/img/bonus.png.o - 0x000000000030fe30 _img_bonus - 0x000000000030fe50 _img_bonus_end - .rodata 0x000000000030fe50 0x24 build-fx/assets/img/bloc.png.o - 0x000000000030fe50 _img_bloc - 0x000000000030fe74 _img_bloc_end - .rodata 0x000000000030fe74 0x404 build-fx/assets/img/ram.png.o - 0x000000000030fe74 _img_ram - 0x0000000000310278 _img_ram_end - .rodata 0x0000000000310278 0x58 build-fx/assets/img/w5.png.o - 0x0000000000310278 _img_w5 - 0x00000000003102d0 _img_w5_end - .rodata 0x00000000003102d0 0x404 build-fx/assets/img/options.png.o - 0x00000000003102d0 _img_options - 0x00000000003106d4 _img_options_end - .rodata 0x00000000003106d4 0x44 build-fx/assets/img/fleur.png.o - 0x00000000003106d4 _img_fleur - 0x0000000000310718 _img_fleur_end - .rodata 0x0000000000310718 0x58 build-fx/assets/img/w2.png.o - 0x0000000000310718 _img_w2 - 0x0000000000310770 _img_w2_end - .rodata 0x0000000000310770 0x404 build-fx/assets/img/main.png.o - 0x0000000000310770 _img_main - 0x0000000000310b74 _img_main_end - .rodata 0x0000000000310b74 0xc4 build-fx/assets/img/flag.png.o - 0x0000000000310b74 _img_flag - 0x0000000000310c38 _img_flag_end - .rodata 0x0000000000310c38 0x404 build-fx/assets/img/new_level.png.o - 0x0000000000310c38 _img_new_level - 0x000000000031103c _img_new_level_end - .rodata 0x000000000031103c 0x4c build-fx/assets/img/brick.png.o - 0x000000000031103c _img_brick - 0x0000000000311088 _img_brick_end - .rodata 0x0000000000311088 0xc4 build-fx/assets/img/koopa_rouge.png.o - 0x0000000000311088 _img_koopa_rouge - 0x000000000031114c _img_koopa_rouge_end - .rodata 0x000000000031114c 0xbc build-fx/assets/img/menu_pause.png.o - 0x000000000031114c _img_menu_pause - 0x0000000000311208 _img_menu_pause_end - .rodata 0x0000000000311208 0x18 build-fx/assets/img/select_arrow.png.o - 0x0000000000311208 _img_select_arrow - 0x0000000000311220 _img_select_arrow_end - .rodata 0x0000000000311220 0x804 build-fx/assets/img/dev.png.o - 0x0000000000311220 _img_dev - 0x0000000000311a24 _img_dev_end - .rodata 0x0000000000311a24 0x24 build-fx/assets/img/death.png.o - 0x0000000000311a24 _img_death - 0x0000000000311a48 _img_death_end - .rodata 0x0000000000311a48 0x404 build-fx/assets/img/mainmenu.png.o - 0x0000000000311a48 _img_mainmenu - 0x0000000000311e4c _img_mainmenu_end - .rodata 0x0000000000311e4c 0x58 build-fx/assets/img/w3.png.o - 0x0000000000311e4c _img_w3 - 0x0000000000311ea4 _img_w3_end - .rodata 0x0000000000311ea4 0x404 build-fx/assets/img/time_over.png.o - 0x0000000000311ea4 _img_time_over - 0x00000000003122a8 _img_time_over_end - .rodata 0x00000000003122a8 0x4c build-fx/assets/img/coin.png.o - 0x00000000003122a8 _img_coin - 0x00000000003122f4 _img_coin_end - .rodata 0x00000000003122f4 0x24 build-fx/assets/img/champi.png.o - 0x00000000003122f4 _img_champi - 0x0000000000312318 _img_champi_end - .rodata 0x0000000000312318 0xdc build-fx/assets/img/mariosmall.png.o - 0x0000000000312318 _img_mariosmall - 0x00000000003123f4 _img_mariosmall_end - .rodata 0x00000000003123f4 0x404 build-fx/assets/img/levelchanger.png.o - 0x00000000003123f4 _img_levelchanger - 0x00000000003127f8 _img_levelchanger_end - .rodata 0x00000000003127f8 0x28 build-fx/assets/img/gift.png.o - 0x00000000003127f8 _img_gift - 0x0000000000312820 _img_gift_end - .rodata 0x0000000000312820 0x44 build-fx/assets/img/buisson.png.o - 0x0000000000312820 _img_buisson - 0x0000000000312864 _img_buisson_end - .rodata 0x0000000000312864 0x84 build-fx/assets/img/colline.png.o - 0x0000000000312864 _img_colline - 0x00000000003128e8 _img_colline_end - .rodata 0x00000000003128e8 0x24 build-fx/assets/img/star.png.o - 0x00000000003128e8 _img_star - 0x000000000031290c _img_star_end - .rodata 0x000000000031290c 0x224 build-fx/assets/img/mariobig.png.o - 0x000000000031290c _img_mariobig - 0x0000000000312b30 _img_mariobig_end - .rodata 0x0000000000312b30 0x804 build-fx/assets/img/error.png.o - 0x0000000000312b30 _img_error - 0x0000000000313334 _img_error_end - .rodata 0x0000000000313334 0x44 build-fx/assets/img/1up.png.o - 0x0000000000313334 _img_1up - 0x0000000000313378 _img_1up_end - .rodata 0x0000000000313378 0x4c build-fx/assets/img/carapace_rouge.png.o - 0x0000000000313378 _img_carapace_rouge - 0x00000000003133c4 _img_carapace_rouge_end - .rodata 0x00000000003133c4 0xb8 build-fx/assets/img/tuyau.png.o - 0x00000000003133c4 _img_tuyau - 0x000000000031347c _img_tuyau_end - .rodata 0x000000000031347c 0x24 build-fx/assets/img/bullet.png.o - 0x000000000031347c _img_bullet - 0x00000000003134a0 _img_bullet_end - .rodata 0x00000000003134a0 0x4c build-fx/assets/img/carapace_verte.png.o - 0x00000000003134a0 _img_carapace_verte - 0x00000000003134ec _img_carapace_verte_end - .rodata 0x00000000003134ec 0x44 build-fx/assets/img/nuage.png.o - 0x00000000003134ec _img_nuage - 0x0000000000313530 _img_nuage_end - .rodata 0x0000000000313530 0x10 build-fx/assets/img/plateforme.png.o - 0x0000000000313530 _img_plateforme - 0x0000000000313540 _img_plateforme_end - .rodata 0x0000000000313540 0xc4 build-fx/assets/img/koopa_verte.png.o - 0x0000000000313540 _img_koopa_verte - 0x0000000000313604 _img_koopa_verte_end - .rodata 0x0000000000313604 0x404 build-fx/assets/img/game_over.png.o - 0x0000000000313604 _img_game_over - 0x0000000000313a08 _img_game_over_end - .rodata 0x0000000000313a08 0x404 build-fx/assets/img/level.png.o - 0x0000000000313a08 _img_level - 0x0000000000313e0c _img_level_end - .rodata 0x0000000000313e0c 0xe4 build-fx/assets/img/castle.png.o - 0x0000000000313e0c _img_castle - 0x0000000000313ef0 _img_castle_end - .rodata 0x0000000000313ef0 0x4c build-fx/assets/img/goomba.png.o - 0x0000000000313ef0 _img_goomba - 0x0000000000313f3c _img_goomba_end - .rodata 0x0000000000313f3c 0x4c build-fx/assets/img/stone.png.o - 0x0000000000313f3c _img_stone - 0x0000000000313f88 _img_stone_end - .rodata 0x0000000000313f88 0x24 build-fx/assets/img/tickbox.png.o - 0x0000000000313f88 _img_tickbox - 0x0000000000313fac _img_tickbox_end - .rodata 0x0000000000313fac 0x58 build-fx/assets/img/w4.png.o - 0x0000000000313fac _img_w4 - 0x0000000000314004 _img_w4_end - .rodata 0x0000000000314004 0x58 build-fx/assets/img/w1.png.o - 0x0000000000314004 _img_w1 - 0x000000000031405c _img_w1_end - .rodata 0x000000000031405c 0x404 build-fx/assets/img/lvl0.png.o - 0x000000000031405c _img_lvl0 - 0x0000000000314460 _img_lvl0_end + 0x000000000030f990 0x63 build-fx/src/world.c.o + *fill* 0x000000000030f9f3 0x1 + .rodata 0x000000000030f9f4 0x28 build-fx/src/keyboard.c.o + .rodata 0x000000000030fa1c 0x30 build-fx/src/ennemi.c.o + 0x000000000030fa1c _ennemi_heights + 0x000000000030fa34 _ennemi_widths + .rodata 0x000000000030fa4c 0x204 build-fx/assets/fonts/mario.png.o + 0x000000000030fa4c _font_mario + 0x000000000030fc50 _font_mario_end + .rodata 0x000000000030fc50 0x20 build-fx/assets/img/bonus.png.o + 0x000000000030fc50 _img_bonus + 0x000000000030fc70 _img_bonus_end + .rodata 0x000000000030fc70 0x24 build-fx/assets/img/bloc.png.o + 0x000000000030fc70 _img_bloc + 0x000000000030fc94 _img_bloc_end + .rodata 0x000000000030fc94 0x404 build-fx/assets/img/ram.png.o + 0x000000000030fc94 _img_ram + 0x0000000000310098 _img_ram_end + .rodata 0x0000000000310098 0x58 build-fx/assets/img/w5.png.o + 0x0000000000310098 _img_w5 + 0x00000000003100f0 _img_w5_end + .rodata 0x00000000003100f0 0x404 build-fx/assets/img/options.png.o + 0x00000000003100f0 _img_options + 0x00000000003104f4 _img_options_end + .rodata 0x00000000003104f4 0x44 build-fx/assets/img/fleur.png.o + 0x00000000003104f4 _img_fleur + 0x0000000000310538 _img_fleur_end + .rodata 0x0000000000310538 0x58 build-fx/assets/img/w2.png.o + 0x0000000000310538 _img_w2 + 0x0000000000310590 _img_w2_end + .rodata 0x0000000000310590 0x404 build-fx/assets/img/main.png.o + 0x0000000000310590 _img_main + 0x0000000000310994 _img_main_end + .rodata 0x0000000000310994 0xc4 build-fx/assets/img/flag.png.o + 0x0000000000310994 _img_flag + 0x0000000000310a58 _img_flag_end + .rodata 0x0000000000310a58 0x404 build-fx/assets/img/new_level.png.o + 0x0000000000310a58 _img_new_level + 0x0000000000310e5c _img_new_level_end + .rodata 0x0000000000310e5c 0x4c build-fx/assets/img/brick.png.o + 0x0000000000310e5c _img_brick + 0x0000000000310ea8 _img_brick_end + .rodata 0x0000000000310ea8 0xc4 build-fx/assets/img/koopa_rouge.png.o + 0x0000000000310ea8 _img_koopa_rouge + 0x0000000000310f6c _img_koopa_rouge_end + .rodata 0x0000000000310f6c 0xbc build-fx/assets/img/menu_pause.png.o + 0x0000000000310f6c _img_menu_pause + 0x0000000000311028 _img_menu_pause_end + .rodata 0x0000000000311028 0x18 build-fx/assets/img/select_arrow.png.o + 0x0000000000311028 _img_select_arrow + 0x0000000000311040 _img_select_arrow_end + .rodata 0x0000000000311040 0x804 build-fx/assets/img/dev.png.o + 0x0000000000311040 _img_dev + 0x0000000000311844 _img_dev_end + .rodata 0x0000000000311844 0x24 build-fx/assets/img/death.png.o + 0x0000000000311844 _img_death + 0x0000000000311868 _img_death_end + .rodata 0x0000000000311868 0x404 build-fx/assets/img/mainmenu.png.o + 0x0000000000311868 _img_mainmenu + 0x0000000000311c6c _img_mainmenu_end + .rodata 0x0000000000311c6c 0x58 build-fx/assets/img/w3.png.o + 0x0000000000311c6c _img_w3 + 0x0000000000311cc4 _img_w3_end + .rodata 0x0000000000311cc4 0x404 build-fx/assets/img/time_over.png.o + 0x0000000000311cc4 _img_time_over + 0x00000000003120c8 _img_time_over_end + .rodata 0x00000000003120c8 0x4c build-fx/assets/img/coin.png.o + 0x00000000003120c8 _img_coin + 0x0000000000312114 _img_coin_end + .rodata 0x0000000000312114 0x24 build-fx/assets/img/champi.png.o + 0x0000000000312114 _img_champi + 0x0000000000312138 _img_champi_end + .rodata 0x0000000000312138 0xdc build-fx/assets/img/mariosmall.png.o + 0x0000000000312138 _img_mariosmall + 0x0000000000312214 _img_mariosmall_end + .rodata 0x0000000000312214 0x404 build-fx/assets/img/levelchanger.png.o + 0x0000000000312214 _img_levelchanger + 0x0000000000312618 _img_levelchanger_end + .rodata 0x0000000000312618 0x28 build-fx/assets/img/gift.png.o + 0x0000000000312618 _img_gift + 0x0000000000312640 _img_gift_end + .rodata 0x0000000000312640 0x44 build-fx/assets/img/buisson.png.o + 0x0000000000312640 _img_buisson + 0x0000000000312684 _img_buisson_end + .rodata 0x0000000000312684 0x84 build-fx/assets/img/colline.png.o + 0x0000000000312684 _img_colline + 0x0000000000312708 _img_colline_end + .rodata 0x0000000000312708 0x24 build-fx/assets/img/star.png.o + 0x0000000000312708 _img_star + 0x000000000031272c _img_star_end + .rodata 0x000000000031272c 0x224 build-fx/assets/img/mariobig.png.o + 0x000000000031272c _img_mariobig + 0x0000000000312950 _img_mariobig_end + .rodata 0x0000000000312950 0x804 build-fx/assets/img/error.png.o + 0x0000000000312950 _img_error + 0x0000000000313154 _img_error_end + .rodata 0x0000000000313154 0x44 build-fx/assets/img/1up.png.o + 0x0000000000313154 _img_1up + 0x0000000000313198 _img_1up_end + .rodata 0x0000000000313198 0x4c build-fx/assets/img/carapace_rouge.png.o + 0x0000000000313198 _img_carapace_rouge + 0x00000000003131e4 _img_carapace_rouge_end + .rodata 0x00000000003131e4 0xb8 build-fx/assets/img/tuyau.png.o + 0x00000000003131e4 _img_tuyau + 0x000000000031329c _img_tuyau_end + .rodata 0x000000000031329c 0x24 build-fx/assets/img/bullet.png.o + 0x000000000031329c _img_bullet + 0x00000000003132c0 _img_bullet_end + .rodata 0x00000000003132c0 0x4c build-fx/assets/img/carapace_verte.png.o + 0x00000000003132c0 _img_carapace_verte + 0x000000000031330c _img_carapace_verte_end + .rodata 0x000000000031330c 0x44 build-fx/assets/img/nuage.png.o + 0x000000000031330c _img_nuage + 0x0000000000313350 _img_nuage_end + .rodata 0x0000000000313350 0x10 build-fx/assets/img/plateforme.png.o + 0x0000000000313350 _img_plateforme + 0x0000000000313360 _img_plateforme_end + .rodata 0x0000000000313360 0xc4 build-fx/assets/img/koopa_verte.png.o + 0x0000000000313360 _img_koopa_verte + 0x0000000000313424 _img_koopa_verte_end + .rodata 0x0000000000313424 0x404 build-fx/assets/img/game_over.png.o + 0x0000000000313424 _img_game_over + 0x0000000000313828 _img_game_over_end + .rodata 0x0000000000313828 0x404 build-fx/assets/img/level.png.o + 0x0000000000313828 _img_level + 0x0000000000313c2c _img_level_end + .rodata 0x0000000000313c2c 0xe4 build-fx/assets/img/castle.png.o + 0x0000000000313c2c _img_castle + 0x0000000000313d10 _img_castle_end + .rodata 0x0000000000313d10 0x4c build-fx/assets/img/goomba.png.o + 0x0000000000313d10 _img_goomba + 0x0000000000313d5c _img_goomba_end + .rodata 0x0000000000313d5c 0x4c build-fx/assets/img/stone.png.o + 0x0000000000313d5c _img_stone + 0x0000000000313da8 _img_stone_end + .rodata 0x0000000000313da8 0x24 build-fx/assets/img/tickbox.png.o + 0x0000000000313da8 _img_tickbox + 0x0000000000313dcc _img_tickbox_end + .rodata 0x0000000000313dcc 0x58 build-fx/assets/img/w4.png.o + 0x0000000000313dcc _img_w4 + 0x0000000000313e24 _img_w4_end + .rodata 0x0000000000313e24 0x58 build-fx/assets/img/w1.png.o + 0x0000000000313e24 _img_w1 + 0x0000000000313e7c _img_w1_end + .rodata 0x0000000000313e7c 0x404 build-fx/assets/img/lvl0.png.o + 0x0000000000313e7c _img_lvl0 + 0x0000000000314280 _img_lvl0_end .rodata.str1.4 - 0x0000000000314460 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* 0x0000000000314491 0x3 - .rodata 0x0000000000314494 0x8 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(dimage.c.o) + 0x0000000000314280 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* 0x00000000003142b1 0x3 + .rodata 0x00000000003142b4 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 - 0x000000000031449c 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* 0x00000000003144a2 0x2 + 0x00000000003142bc 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* 0x00000000003142c2 0x2 .rodata.str1.4 - 0x00000000003144a4 0x11a /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(exch.c.o) + 0x00000000003142c4 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* 0x00000000003145be 0x2 - .rodata 0x00000000003145c0 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* 0x00000000003143de 0x2 + .rodata 0x00000000003143e0 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 - 0x00000000003145d8 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 0x00000000003145dc 0x408 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o) - 0x00000000003145dc _gint_font5x7 - 0x00000000003149e4 _gint_font5x7_end + 0x00000000003143f8 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 0x00000000003143fc 0x408 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(font5x7.png.o) + 0x00000000003143fc _gint_font5x7 + 0x0000000000314804 _gint_font5x7_end .rodata.str1.4 - 0x00000000003149e4 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* 0x00000000003149ea 0x2 + 0x0000000000314804 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* 0x000000000031480a 0x2 .rodata.str1.4 - 0x00000000003149ec 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 0x00000000003149f0 0x10 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(bopti.c.o) + 0x000000000031480c 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 0x0000000000314810 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 - 0x0000000000314a00 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* 0x0000000000314a1b 0x1 - .rodata 0x0000000000314a1c 0x100 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) - 0x0000000000314a1c ___clz_tab + 0x0000000000314820 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* 0x000000000031483b 0x1 + .rodata 0x000000000031483c 0x100 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) + 0x000000000031483c ___clz_tab -.rela.dyn 0x0000000000314b1c 0x0 - .rela.text 0x0000000000314b1c 0x0 build-fx/src/levelchanger.c.o +.rela.dyn 0x000000000031493c 0x0 + .rela.text 0x000000000031493c 0x0 build-fx/src/levelchanger.c.o .rela.pretext.entry - 0x0000000000314b1c 0x0 build-fx/src/levelchanger.c.o + 0x000000000031493c 0x0 build-fx/src/levelchanger.c.o 0x0000000008100000 . = ORIGIN (ram) .bss 0x0000000008100000 0x930 0x0000000008100000 _rbss = . *(.bss COMMON) + .bss 0x0000000008100000 0x0 build-fx/src/base.c.o .bss 0x0000000008100000 0x0 build-fx/src/levelchanger.c.o COMMON 0x0000000008100000 0x4 build-fx/src/levelchanger.c.o 0x0000000008100000 _frame_id @@ -808,13 +823,14 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a 0x0000000008100014 _pieces 0x0000000008100018 _combo .bss 0x0000000008100020 0x7c build-fx/src/tuyau.c.o + .bss 0x000000000810009c 0x0 build-fx/src/bullet.c.o .bss 0x000000000810009c 0x4 build-fx/src/tile.c.o 0x000000000810009c _dark_theme .bss 0x00000000081000a0 0x8 build-fx/src/plateforme.c.o 0x00000000081000a0 _plateformes 0x00000000081000a4 _plateforme_table_size .bss 0x00000000081000a8 0x0 build-fx/src/box.c.o - .bss 0x00000000081000a8 0x20 build-fx/src/world.c.o + .bss 0x00000000081000a8 0x1c build-fx/src/world.c.o 0x00000000081000a8 _death 0x00000000081000ac _w_mario_starty 0x00000000081000b0 _w_mario_startx @@ -822,28 +838,28 @@ 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 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 0x00000000081000c4 0x4 build-fx/src/framerate.c.o + .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 0x4 build-fx/src/camera.c.o + .bss 0x00000000081003a0 0x0 build-fx/src/main.c.o + .bss 0x00000000081003a0 0x18 build-fx/src/keyboard.c.o + .bss 0x00000000081003b8 0x8 build-fx/src/ennemi.c.o + 0x00000000081003b8 _ennemis_global_size + 0x00000000081003bc _ennemis_global + .bss 0x00000000081003c0 0x24 build-fx/src/mario.c.o + 0x00000000081003c0 _global_quit + 0x00000000081003c4 _mario_star_mode + 0x00000000081003c8 _mario_immunity + 0x00000000081003cc _mario_dead + 0x00000000081003d0 _mario_has_bullets + 0x00000000081003d4 _mario_x_max + 0x00000000081003d8 _id_frame .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) @@ -878,9 +894,9 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a .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(_udivsi3.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) @@ -888,31 +904,33 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a *fill* 0x000000000810092c 0x4 0x0000000000000930 _sbss = SIZEOF (.bss) -.data 0x0000000008100930 0x160 load address 0x0000000000314b1c - 0x0000000000314b1c _ldata = LOADADDR (.data) +.data 0x0000000008100930 0x160 load address 0x000000000031493c + 0x000000000031493c _ldata = LOADADDR (.data) 0x0000000008100930 _rdata = . *(.data .data.*) + .data 0x0000000008100930 0x0 build-fx/src/base.c.o .data 0x0000000008100930 0x0 build-fx/src/levelchanger.c.o .data 0x0000000008100930 0x0 build-fx/src/level.c.o .data 0x0000000008100930 0x54 build-fx/src/config.c.o 0x0000000008100930 _loglevels .data 0x0000000008100984 0x8 build-fx/src/score.c.o 0x0000000008100984 _combo_id - 0x0000000008100988 _lifes .data 0x000000000810098c 0x0 build-fx/src/tuyau.c.o - .data 0x000000000810098c 0x0 build-fx/src/tile.c.o - .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 0x000000000810098c 0x28 build-fx/src/bullet.c.o + .data 0x00000000081009b4 0x0 build-fx/src/tile.c.o + .data 0x00000000081009b4 0x0 build-fx/src/plateforme.c.o + .data 0x00000000081009b4 0x0 build-fx/src/box.c.o + .data 0x00000000081009b4 0x0 build-fx/src/world.c.o + .data 0x00000000081009b4 0x0 build-fx/src/framerate.c.o + .data 0x00000000081009b4 0x14 build-fx/src/bonus.c.o .data 0x00000000081009c8 0x0 build-fx/src/save.c.o + .data 0x00000000081009c8 0x0 build-fx/src/camera.c.o + .data 0x00000000081009c8 0x0 build-fx/src/main.c.o + .data 0x00000000081009c8 0x0 build-fx/src/keyboard.c.o + .data 0x00000000081009c8 0x0 build-fx/src/ennemi.c.o .data 0x00000000081009c8 0x20 build-fx/src/mario.c.o 0x00000000081009c8 _last_vx_sign 0x00000000081009cc _mario - .data 0x00000000081009e8 0x0 build-fx/src/main.c.o - .data 0x00000000081009e8 0x0 build-fx/src/keyboard.c.o - .data 0x00000000081009e8 0x0 build-fx/src/ennemi.c.o .data 0x00000000081009e8 0x68 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(stdio.c.o) 0x00000000081009e8 _kprint_formatters .data 0x0000000008100a50 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(memory.c.o) @@ -950,36 +968,36 @@ LOAD /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a .data 0x0000000008100a60 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgint-fx.a(inth.s.o) .data 0x0000000008100a60 0x30 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/liblog-fx.a(liblog.c.o) .data 0x0000000008100a90 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_movmem.o) + .data 0x0000000008100a90 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) .data 0x0000000008100a90 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivdi3.o) .data 0x0000000008100a90 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_umoddi3.o) - .data 0x0000000008100a90 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udivsi3.o) .data 0x0000000008100a90 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_udiv_qrnnd_16.o) .data 0x0000000008100a90 0x0 /home/gmilan/opt/sh-elf-2.33-9.2.0/lib/gcc/sh3eb-elf/9.2.0/libgcc.a(_clz.o) *(D) 0x0000000008100a90 . = ALIGN (0x10) -.data.4 0x0000000008100a90 0x0 load address 0x0000000000314c7c +.data.4 0x0000000008100a90 0x0 load address 0x0000000000314a9c *(.data.4) 0x0000000008100a90 . = ALIGN (0x10) 0x0000000000000160 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) 0x00000000e5200000 . = ORIGIN (ilram) -.ilram 0x00000000e5200000 0x0 load address 0x0000000000314c7c - 0x0000000000314c7c _lilram = LOADADDR (.ilram) +.ilram 0x00000000e5200000 0x0 load address 0x0000000000314a9c + 0x0000000000314a9c _lilram = LOADADDR (.ilram) 0x00000000e5200000 _rilram = . *(.ilram) 0x00000000e5200000 . = ALIGN (0x10) 0x00000000e5007000 . = ORIGIN (xram) -.xram 0x00000000e5007000 0x0 load address 0x0000000000314c7c - 0x0000000000314c7c _lxram = LOADADDR (.xram) +.xram 0x00000000e5007000 0x0 load address 0x0000000000314a9c + 0x0000000000314a9c _lxram = LOADADDR (.xram) 0x00000000e5007000 _rxram = . *(.xram) 0x00000000e5007000 . = ALIGN (0x10) 0x00000000e5017000 . = ORIGIN (yram) -.yram 0x00000000e5017000 0x0 load address 0x0000000000314c7c - 0x0000000000314c7c _lyram = LOADADDR (.yram) +.yram 0x00000000e5017000 0x0 load address 0x0000000000314a9c + 0x0000000000314a9c _lyram = LOADADDR (.yram) 0x00000000e5017000 _ryram = . *(.yram) 0x00000000e5017000 . = ALIGN (0x10) @@ -989,8 +1007,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 0x0000000000314c7c - 0x0000000000314c7c _lgdata = LOADADDR (.gint.data) +.gint.data 0x000000008800f400 0x140 load address 0x0000000000314a9c + 0x0000000000314a9c _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) @@ -1011,7 +1029,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 0x0000000000314dbc +.gint.bss 0x000000008800f540 0x290 load address 0x0000000000314bdc *(.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/bonus.c.d b/build-fx/src/bonus.c.d index 8a291e0..7eab02c 100644 --- a/build-fx/src/bonus.c.d +++ b/build-fx/src/bonus.c.d @@ -1,6 +1,6 @@ build-fx/src/bonus.c.o: src/bonus.c include/bonus.h include/box.h \ include/mario.h include/box.h include/world.h include/tile.h \ - include/score.h include/ennemi.h include/constants.h + include/score.h include/ennemi.h include/constants.h include/base.h include/bonus.h: @@ -19,3 +19,5 @@ include/score.h: include/ennemi.h: include/constants.h: + +include/base.h: diff --git a/build-fx/src/bonus.c.o b/build-fx/src/bonus.c.o index 41ea74b..87624b4 100644 Binary files a/build-fx/src/bonus.c.o and b/build-fx/src/bonus.c.o differ diff --git a/build-fx/src/box.c.d b/build-fx/src/box.c.d index 9d05717..fc952ce 100644 --- a/build-fx/src/box.c.d +++ b/build-fx/src/box.c.d @@ -1,5 +1,6 @@ build-fx/src/box.c.o: src/box.c include/box.h include/world.h \ - include/ennemi.h include/box.h include/score.h include/constants.h + include/ennemi.h include/box.h include/score.h include/constants.h \ + include/base.h include/box.h: @@ -12,3 +13,5 @@ include/box.h: include/score.h: include/constants.h: + +include/base.h: diff --git a/build-fx/src/box.c.o b/build-fx/src/box.c.o index 9482d00..55b8fef 100644 Binary files a/build-fx/src/box.c.o and b/build-fx/src/box.c.o differ diff --git a/build-fx/src/config.c.d b/build-fx/src/config.c.d index d48ba03..9cbc798 100644 --- a/build-fx/src/config.c.d +++ b/build-fx/src/config.c.d @@ -1,3 +1,5 @@ -build-fx/src/config.c.o: src/config.c include/config.h +build-fx/src/config.c.o: src/config.c include/config.h include/keyboard.h include/config.h: + +include/keyboard.h: diff --git a/build-fx/src/config.c.o b/build-fx/src/config.c.o index b418728..3d877ae 100644 Binary files a/build-fx/src/config.c.o and b/build-fx/src/config.c.o differ diff --git a/build-fx/src/ennemi.c.d b/build-fx/src/ennemi.c.d index e7c6549..2430088 100644 --- a/build-fx/src/ennemi.c.d +++ b/build-fx/src/ennemi.c.d @@ -1,6 +1,6 @@ build-fx/src/ennemi.c.o: src/ennemi.c include/ennemi.h include/box.h \ include/mario.h include/box.h include/tile.h include/world.h \ - include/score.h + include/score.h include/camera.h include/ennemi.h: @@ -15,3 +15,5 @@ include/tile.h: include/world.h: include/score.h: + +include/camera.h: diff --git a/build-fx/src/ennemi.c.o b/build-fx/src/ennemi.c.o index 4e07b29..9fbc9cd 100644 Binary files a/build-fx/src/ennemi.c.o and b/build-fx/src/ennemi.c.o differ diff --git a/build-fx/src/keyboard.c.o b/build-fx/src/keyboard.c.o index ff03d31..ec51588 100644 Binary files a/build-fx/src/keyboard.c.o and b/build-fx/src/keyboard.c.o differ diff --git a/build-fx/src/level.c.o b/build-fx/src/level.c.o index 2406411..e0ea115 100644 Binary files a/build-fx/src/level.c.o and b/build-fx/src/level.c.o differ diff --git a/build-fx/src/levelchanger.c.o b/build-fx/src/levelchanger.c.o index 394fcfb..ca3aa69 100644 Binary files a/build-fx/src/levelchanger.c.o and b/build-fx/src/levelchanger.c.o differ diff --git a/build-fx/src/mario.c.d b/build-fx/src/mario.c.d index e8f965a..b05c8f5 100644 --- a/build-fx/src/mario.c.d +++ b/build-fx/src/mario.c.d @@ -1,6 +1,6 @@ build-fx/src/mario.c.o: src/mario.c include/mario.h include/box.h \ include/tile.h include/world.h include/keyboard.h include/box.h \ - include/score.h include/bonus.h + include/score.h include/bonus.h include/bullets.h include/camera.h include/mario.h: @@ -17,3 +17,7 @@ include/box.h: include/score.h: include/bonus.h: + +include/bullets.h: + +include/camera.h: diff --git a/build-fx/src/mario.c.o b/build-fx/src/mario.c.o index debd9a3..2236abb 100644 Binary files a/build-fx/src/mario.c.o and b/build-fx/src/mario.c.o differ diff --git a/build-fx/src/plateforme.c.d b/build-fx/src/plateforme.c.d index 645359b..ea750a2 100644 --- a/build-fx/src/plateforme.c.d +++ b/build-fx/src/plateforme.c.d @@ -1,6 +1,6 @@ build-fx/src/plateforme.c.o: src/plateforme.c include/plateforme.h \ include/world.h include/mario.h include/box.h include/tile.h \ - include/score.h + include/score.h include/camera.h include/plateforme.h: @@ -13,3 +13,5 @@ include/box.h: include/tile.h: include/score.h: + +include/camera.h: diff --git a/build-fx/src/plateforme.c.o b/build-fx/src/plateforme.c.o index 7825e5a..b17bb32 100644 Binary files a/build-fx/src/plateforme.c.o and b/build-fx/src/plateforme.c.o differ diff --git a/build-fx/src/score.c.o b/build-fx/src/score.c.o index 18dce68..da3c677 100644 Binary files a/build-fx/src/score.c.o and b/build-fx/src/score.c.o differ diff --git a/build-fx/src/tuyau.c.d b/build-fx/src/tuyau.c.d index e970658..8cff29f 100644 --- a/build-fx/src/tuyau.c.d +++ b/build-fx/src/tuyau.c.d @@ -1,5 +1,6 @@ build-fx/src/tuyau.c.o: src/tuyau.c include/tuyau.h include/mario.h \ - include/box.h include/keyboard.h include/world.h include/framerate.h + include/box.h include/keyboard.h include/world.h include/framerate.h \ + include/camera.h include/tuyau.h: @@ -12,3 +13,5 @@ include/keyboard.h: include/world.h: include/framerate.h: + +include/camera.h: diff --git a/build-fx/src/tuyau.c.o b/build-fx/src/tuyau.c.o index b75c9b5..53974fe 100644 Binary files a/build-fx/src/tuyau.c.o and b/build-fx/src/tuyau.c.o differ diff --git a/build-fx/src/world.c.d b/build-fx/src/world.c.d index 847c0e7..fffac81 100644 --- a/build-fx/src/world.c.d +++ b/build-fx/src/world.c.d @@ -1,6 +1,7 @@ build-fx/src/world.c.o: src/world.c include/world.h include/tile.h \ include/mario.h include/box.h include/ennemi.h include/bonus.h \ - include/constants.h include/plateforme.h include/tuyau.h + include/box.h include/constants.h include/plateforme.h include/tuyau.h \ + include/bullets.h include/keyboard.h include/base.h include/camera.h include/world.h: @@ -14,8 +15,18 @@ include/ennemi.h: include/bonus.h: +include/box.h: + include/constants.h: include/plateforme.h: include/tuyau.h: + +include/bullets.h: + +include/keyboard.h: + +include/base.h: + +include/camera.h: diff --git a/build-fx/src/world.c.o b/build-fx/src/world.c.o index c1a28d4..048d899 100644 Binary files a/build-fx/src/world.c.o and b/build-fx/src/world.c.o differ diff --git a/include/bonus.h b/include/bonus.h index 74aea6b..e473c1e 100644 --- a/include/bonus.h +++ b/include/bonus.h @@ -1,18 +1,32 @@ +// v0.3 #ifndef BONUS_H #define BONUS_H -#define BONUS_NONE 0 -#define BONUS_CHAMPI 1 -#define BONUS_1UP 2 -#define BONUS_STAR 3 +#include +// Bonus +// Come from boxes -void bonus_set(int type, int x, int y); +typedef enum +{ + BONUS_NONE=0, + BONUS_CHAMPI, + BONUS_FLEUR, + BONUS_1UP, + BONUS_STAR +} bonus_id; // TODO add fragment -void lance_bullet(); -void bullet_display(); +typedef struct +{ + int type; + box_t b; + int p1; +} bonus_t; + +void bonus_set(bonus_id t, int x, int y); void bonus_draw(); + void bonus_move(); #endif \ No newline at end of file diff --git a/include/box.h b/include/box.h index 2835a6f..70526d0 100755 --- a/include/box.h +++ b/include/box.h @@ -1,6 +1,10 @@ +// v0.3 #ifndef BOX_H #define BOX_H +// Box type +// Used to simulate gravity and collides + typedef struct { int x :16; @@ -12,11 +16,12 @@ typedef struct int vx :8; int vy :8; int last_vy :8; - int gravity :2; + int gravity :8; //int is_mario; } box_t; -int box_move(box_t * b); -int box_jump(box_t * b, int height); // hauteur du saut +void box_move(box_t * b); + +void box_jump(box_t * b, int height); #endif \ No newline at end of file diff --git a/include/ennemi.h b/include/ennemi.h index 13efec1..aceb69a 100644 --- a/include/ennemi.h +++ b/include/ennemi.h @@ -42,4 +42,6 @@ extern ennemi_t * ennemis_global; extern int ennemis_global_size; void display_ennemi_table(); +void move_ennemi(ennemi_t *e); + #endif \ No newline at end of file diff --git a/include/keyboard.h b/include/keyboard.h index f30bde8..3882855 100755 --- a/include/keyboard.h +++ b/include/keyboard.h @@ -1,22 +1,39 @@ -#ifndef KEYBOARD_CUSTOM_H -#define KEYBOARD_CUSTOM_H +// v0.3 +#ifndef MARIO_KEYBOARD_H +#define MARIO_KEYBOARD_H +#define KONAMI + +/* Reduced keyboard + It simulates a nes controller */ typedef enum { MK_NONE=-1, - MK_LEFT, + MK_LEFT=0, MK_RIGHT, - MK_JUMP1, - MK_UP, - MK_RUN, - MK_LITTLE -} mkey_t; -extern mkey_t keys[6]; + MK_DOWN, + MK_UP, + MK_JUMP, // Shift + MK_RUN // Alpha +} mkb_t; -void update_keyboard(); +/* This function has been coded to replace the following array + `extern mkey_t keys[6];` + It returns the specific key state + 2=newly pressed + 1=currently down + 0=up +*/ +int mkb_getstate(mkb_t const k); -void keyboard_clear(); +// Update the keyboard, should be called at each frame +void mkb_update(); -int getkey_custom(); +// Reset followed keys' states +void mkb_clear(); + +// Experimental getkey, designed to compensate for a strange bug introduced by original getkey +// /!\ return gint keycodes +int mkb_getkey(); #endif \ No newline at end of file diff --git a/include/score.h b/include/score.h index 787fe11..a5328a0 100644 --- a/include/score.h +++ b/include/score.h @@ -1,8 +1,10 @@ -#ifndef SCORE -#define SCORE +#ifndef SCORE_H +#define SCORE_H + +#define KILL_ENNEMI 105 //extern int score; -extern int lifes; +//extern int lifes; extern int finish_level; // si ==-1, continue, si 0==retry, si ==1 ou + next extern int time_id; @@ -14,6 +16,9 @@ void score_display(); void score_add_coin(); void new_level(); void new_game(); +int lifes_get(); +void lifes_lose(); +void lifes_add(); int get_time_spent(); diff --git a/include/world.h b/include/world.h index 80ec206..9e89a3d 100755 --- a/include/world.h +++ b/include/world.h @@ -105,7 +105,7 @@ void display_cell(int cx, int cy, int sx, int sy, int plan); void world_set(world_t * w); -void world_draw(int x, int y); +void world_draw(); void world_move(); int world_get_real_x0(); diff --git a/src/bonus.c b/src/bonus.c index 053a083..3626277 100644 --- a/src/bonus.c +++ b/src/bonus.c @@ -7,33 +7,14 @@ #include "ennemi.h" #include "constants.h" #include - -#define BONUS_FLEUR 4 // interne, généré depuis champi -#define BULLET 1 -typedef struct -{ - int type; - box_t b; - int p1; -} bonus_t; - -static int sgn(int x) -{ - if (x>0) - return 1; - else if (x<0) - return -1; - else - return 0; -} - +#include static bonus_t bonus ={BONUS_NONE, {0,0,TILE_W,TILE_H,0,0,0,1}, 0}; -void bonus_set(int type, int x, int y) +void bonus_set(bonus_id t, int x, int y) { - bonus.type=type; - if (mario.size==M_BIG && type==BONUS_CHAMPI) + bonus.type=t; + if (mario.size==M_BIG && t==BONUS_CHAMPI) bonus.type=BONUS_FLEUR; bonus.b.x=x; bonus.b.y=y; @@ -44,8 +25,6 @@ void bonus_set(int type, int x, int y) void bonus_move() //+collision { - if (bonus.b.x<=world_get_real_x0()-bonus.b.w || bonus.b.x>=world_get_real_x0()+127) - bonus_set(BONUS_NONE,0,0); if (bonus.type==BONUS_NONE) return; @@ -94,7 +73,7 @@ void bonus_move() //+collision { bonus_set(BONUS_NONE,0,0); score_add(1000); - lifes++; + lifes_add(); } if (bonus.type==BONUS_STAR) { @@ -111,87 +90,11 @@ void bonus_draw() if (bonus.type==BONUS_NONE) return; if (bonus.type==BONUS_CHAMPI) - draw_tile(bonus.b.x-world_get_real_x0(), bonus.b.y-world_get_real_y0(mario.p.y), &champi, 0,0); + draw_tile(bonus.b.x-camera_x(), bonus.b.y-camera_y(), &champi, 0,0); if (bonus.type==BONUS_FLEUR) - draw_tile(bonus.b.x-world_get_real_x0(), bonus.b.y-world_get_real_y0(mario.p.y), &fleur, 0,0); + draw_tile(bonus.b.x-camera_x(), bonus.b.y-camera_y(), &fleur, 0,0); if (bonus.type==BONUS_1UP) - draw_tile(bonus.b.x-world_get_real_x0(), bonus.b.y-world_get_real_y0(mario.p.y), &life_1up, 0,0); + draw_tile(bonus.b.x-camera_x(), bonus.b.y-camera_y(), &life_1up, 0,0); if (bonus.type==BONUS_STAR) - draw_tile(bonus.b.x-world_get_real_x0(), bonus.b.y-world_get_real_y0(mario.p.y), &mario_starman, 0,0); -} - - - - -/* Les balles ont les memes propriétés que les boulets et sont donc gérées ici */ - -static bonus_t bullets[2] = -{ - {0, {0,0,TILE_W/2,TILE_H/2,0,0,0,1}, 0}, - {0, {0,0,TILE_W/2,TILE_H/2,0,0,0,1}, 0} -}; - -void lance_bullet() -{ - for (int i=0; i<2; i++) - { - if (bullets[i].type==0) - { - bullets[i].type=BULLET; - bullets[i].b.x=mario.p.x; - bullets[i].b.y=mario.p.y+8; - if (last_vx_sign==0) - bullets[i].b.vx=-6; - else - bullets[i].b.vx=6; - bullets[i].b.vy=0; - bullets[i].p1=last_vx_sign; - return; - } - } -} - -void bullet_display() -{ - for (int i=0; i<2; i++) - { - if (bullets[i].type==BULLET) - draw_tile(bullets[i].b.x-world_get_real_x0(), bullets[i].b.y-world_get_real_y0(), &bullet, (1+sgn(bullets[i].b.vy))/2, 0); - } -} - -void bullet_move() -{ - for (int i=0; i<2; i++) - { - if (bullets[i].type==BULLET) - { - box_jump(&bullets[i].b,4); - box_move(&bullets[i].b); - if (bullets[i].b.vx==0) - bullets[i].type=0; - if (bullets[i].b.y<0) - bullets[i].type=0; - if (bullets[i].b.x<=world_get_real_x0()-bullets[i].b.w || bullets[i].b.x>=world_get_real_x0()+127) - bullets[i].type=0; - for (int a=0; adiscovered && t->type!=NONE) - { - bool x_collide= (bullets[i].b.x<=t->b.x && t->b.xb.x+t->b.w-1 && t->b.x+t->b.wb.y && t->b.yb.y+t->b.h-1 && t->b.y+t->b.hlife=DEAD; - bullets[i].type=0; - score_add(100); - break; - } - } - } - } - - } - + draw_tile(bonus.b.x-camera_x(), bonus.b.y-camera_y(), &mario_starman, 0,0); } \ No newline at end of file diff --git a/src/box.c b/src/box.c index 5291c15..9b5496e 100755 --- a/src/box.c +++ b/src/box.c @@ -3,16 +3,7 @@ #include "ennemi.h" #include "score.h" #include - -int sgn(int x) -{ - if (x==0) - return 0; - else if (x>0) - return 1; - return -1; -} - +#include int check_collision(box_t *b) { @@ -49,25 +40,19 @@ static void move_x(box_t * b) { for (int i=sgn_vx; i<=sgn_vx*t_vx; i++) { - int previous_tested_y=-545; - int type=CTG_EMPTY; for (int j=0; jh; j++) { - int t=(b->y+j)/8; - //if (t!=previous_tested_y) - //{ - previous_tested_y=t; - int typetemp; - if (sgn_vx>0) - typetemp=world_get_ctg(b->x+b->w-1+i*sgn_vx,b->y+j); - else - typetemp=world_get_ctg(b->x+i*sgn_vx,b->y+j); - if (/*typetemp==CTG_DEATH ||*/ typetemp==CTG_SOIL) - { - b->x+=(i-1)*sgn_vx; - b->vx=0; - return; - } + int typetemp; + if (sgn_vx>0) + typetemp=world_get_ctg(b->x+b->w-1+i*sgn_vx,b->y+j); + else + typetemp=world_get_ctg(b->x+i*sgn_vx,b->y+j); + if (typetemp==CTG_SOIL) + { + b->x+=(i-1)*sgn_vx; + b->vx=0; + return; + } //} } @@ -92,50 +77,45 @@ static void move_y(box_t * b) { for (int i=sgn_vy; i<=sgn_vy*b->vy; i++) { - int previous_tested_x=-545; for (int j=0; jw; j++) { - int t=(b->x+j)/8; - //if (t!=previous_tested_x) - //{ - previous_tested_x=t; - int typetemp; - if (sgn_vy>0) - typetemp=world_get_ctg(b->x+j ,b->y+b->h-1+i); - else - typetemp=world_get_ctg(b->x+j ,b->y-i); - if (/*typetemp==CTG_DEATH ||*/ typetemp==CTG_SOIL) + int typetemp; + if (sgn_vy>0) + typetemp=world_get_ctg(b->x+j ,b->y+b->h-1+i); + else + typetemp=world_get_ctg(b->x+j ,b->y-i); + if (typetemp==CTG_SOIL) + { + if (b->vy>0) { - if (b->vy>0) - { - int old=b->x; - if (world_get_ctg(b->x+2, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+3, b->y+b->h-1+i)==CTG_EMPTY) - b->x++; - if (world_get_ctg(b->x+1, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+2, b->y+b->h-1+i)==CTG_EMPTY) - b->x++; - if (world_get_ctg(b->x, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+1, b->y+b->h-1+i)==CTG_EMPTY) - b->x++; + int old=b->x; + if (world_get_ctg(b->x+2, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+3, b->y+b->h-1+i)==CTG_EMPTY) + b->x++; + if (world_get_ctg(b->x+1, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+2, b->y+b->h-1+i)==CTG_EMPTY) + b->x++; + if (world_get_ctg(b->x, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+1, b->y+b->h-1+i)==CTG_EMPTY) + b->x++; - if (world_get_ctg(b->x+b->w-3, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+b->w-4, b->y+b->h-1+i)==CTG_EMPTY) - b->x--; - if (world_get_ctg(b->x+b->w-2, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+b->w-3, b->y+b->h-1+i)==CTG_EMPTY) - b->x--; - if (world_get_ctg(b->x+b->w-1, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+b->w-2, b->y+b->h-1+i)==CTG_EMPTY) - b->x--; - if (old==b->x) - { - b->y+=(i-1)*sgn_vy; - b->vy=0; - return; - } - } - else + if (world_get_ctg(b->x+b->w-3, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+b->w-4, b->y+b->h-1+i)==CTG_EMPTY) + b->x--; + if (world_get_ctg(b->x+b->w-2, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+b->w-3, b->y+b->h-1+i)==CTG_EMPTY) + b->x--; + if (world_get_ctg(b->x+b->w-1, b->y+b->h-1+i)==CTG_SOIL && world_get_ctg(b->x+b->w-2, b->y+b->h-1+i)==CTG_EMPTY) + b->x--; + if (old==b->x) { b->y+=(i-1)*sgn_vy; b->vy=0; return; } } + else + { + b->y+=(i-1)*sgn_vy; + b->vy=0; + return; + } + } //} } } @@ -146,14 +126,14 @@ static void move_y(box_t * b) } -int box_move(box_t * b) +void box_move(box_t * b) { //velx move_x(b); move_y(b); } -int box_jump(box_t * b, int height) +void box_jump(box_t * b, int height) { int sgn_vy=-1*sgn(height); if (sgn_vy) diff --git a/src/config.c b/src/config.c index 5d813a4..52b146d 100644 --- a/src/config.c +++ b/src/config.c @@ -2,6 +2,7 @@ #include #include +#include #include extern image_t img_tickbox; @@ -10,8 +11,8 @@ char loglevels[6][14]={"--all","--information","--warning","--critical","--fatal void configmenu() { - keyboard_clear(); - font_t* f=dfont(0); + mkb_clear(); + font_t const * const f=dfont(0); while (1) { dclear(C_WHITE); @@ -23,11 +24,11 @@ void configmenu() dtext(40,9,&loglevels[ll_get_level()][0],C_BLACK,C_NONE); dupdate(); - int key=getkey().key; + int key=mkb_getkey(); if (key==KEY_EXIT) break; } - keyboard_clear(); + mkb_clear(); dfont(f); } \ No newline at end of file diff --git a/src/ennemi.c b/src/ennemi.c index 07e723e..afed298 100644 --- a/src/ennemi.c +++ b/src/ennemi.c @@ -4,6 +4,7 @@ #include "tile.h" #include "world.h" #include "score.h" +#include #include @@ -37,7 +38,7 @@ void display_ennemi(ennemi_t * e) } if (e->type==NONE) return; - if (e->b.x<=world_get_real_x0(0)-e->b.w || e->b.x>=world_get_real_x0(0)+127) + if (e->b.x<=camera_x(0)-e->b.w || e->b.x>=camera_x(0)+127) return; else e->discovered=1; @@ -47,35 +48,35 @@ void display_ennemi(ennemi_t * e) extern image_t img_goomba; tileset_t goomba={&img_goomba, ennemi_widths[GOOMBA_ID], ennemi_heights[GOOMBA_ID], 1}; if (e->life==1) - draw_tile(e->b.x-world_get_real_x0(0), e->b.y-world_get_real_y0(mario.p.y), &goomba, 1+(time_id/10)%2, 0); + draw_tile(e->b.x-camera_x(0), e->b.y-camera_y(mario.p.y), &goomba, 1+(time_id/10)%2, 0); if (e->life==0) - draw_tile(e->b.x-world_get_real_x0(0), e->b.y-world_get_real_y0(mario.p.y), &goomba, 0, 0); + draw_tile(e->b.x-camera_x(0), e->b.y-camera_y(mario.p.y), &goomba, 0, 0); } if (e->type==KOOPA_V_ID) { extern image_t img_koopa_verte; tileset_t koopa_verte={&img_koopa_verte, ennemi_widths[KOOPA_V_ID], ennemi_heights[KOOPA_V_ID], 1}; if (e->life==1) - draw_tile(e->b.x-world_get_real_x0(0), e->b.y-world_get_real_y0(mario.p.y), &koopa_verte, (1+e->p1)+(time_id/8)%2, 0); + draw_tile(e->b.x-camera_x(0), e->b.y-camera_y(mario.p.y), &koopa_verte, (1+e->p1)+(time_id/8)%2, 0); } if (e->type==KOOPA_R_ID) { extern image_t img_koopa_rouge; tileset_t koopa_rouge={&img_koopa_rouge, ennemi_widths[KOOPA_R_ID], ennemi_heights[KOOPA_R_ID], 1}; if (e->life==1) - draw_tile(e->b.x-world_get_real_x0(0), e->b.y-world_get_real_y0(mario.p.y), &koopa_rouge, (1+e->p1)+(time_id/8)%2, 0); + draw_tile(e->b.x-camera_x(0), e->b.y-camera_y(mario.p.y), &koopa_rouge, (1+e->p1)+(time_id/8)%2, 0); } if (e->type==CARAPACE_VERTE) { extern image_t img_carapace_verte; tileset_t carapace_verte={&img_carapace_verte, ennemi_widths[CARAPACE_VERTE], ennemi_heights[CARAPACE_VERTE], 1}; - draw_tile(e->b.x-world_get_real_x0(0), e->b.y-world_get_real_y0(mario.p.y), &carapace_verte, 0, 0); + draw_tile(e->b.x-camera_x(0), e->b.y-camera_y(mario.p.y), &carapace_verte, 0, 0); } if (e->type==CARAPACE_ROUGE) { extern image_t img_carapace_rouge; tileset_t carapace_rouge={&img_carapace_rouge, ennemi_widths[CARAPACE_ROUGE], ennemi_heights[CARAPACE_ROUGE], 1}; - draw_tile(e->b.x-world_get_real_x0(0), e->b.y-world_get_real_y0(mario.p.y), &carapace_rouge, 0, 0); + draw_tile(e->b.x-camera_x(0), e->b.y-camera_y(mario.p.y), &carapace_rouge, 0, 0); } } @@ -96,7 +97,7 @@ void hurt_mario() void move_ennemi(ennemi_t *e) { - if (e->b.xb.x>world_get_real_x0()-30) + if (e->b.xb.x>camera_x()-30) e->discovered=1; //if (e->b.x+e->b.w<=world_get_real_x0()) // e->type=NONE; diff --git a/src/keyboard.c b/src/keyboard.c index ae24cd2..d4e4834 100755 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1,26 +1,43 @@ -#include "keyboard.h" -#include "mario.h" -#include "score.h" +#include +#include +#include #include #include -#include +//#include #include -#include "config.h" +#include -mkey_t keys[6]={0}; +static mkb_t keys[6]={0}; +int mkb_getstate(mkb_t const k) +{ + if (k!=MK_NONE) + return keys[k]; + return 0; +} - -static int konami[]={KEY_UP,KEY_UP,KEY_DOWN,KEY_DOWN,KEY_LEFT,KEY_RIGHT,KEY_LEFT,KEY_RIGHT,KEY_ALPHA,KEY_SHIFT}; - -void keyboard_clear() +void mkb_clear() { for (int i=0; i<6; i++) keys[i]=0; clearevents(); } -int menu_pause() // 1 exit, 0 continue +int mkb_getkey() +{ + mkb_clear(); + + while (1) + { + key_event_t const e=pollevent(); + if (e.type==KEYEV_DOWN) // Returns only whan a key is down + return e.key; + else + sleep(); // Processor friendly :) + } +} + +static int menu_pause() // 1 exit, 0 continue { extern image_t img_menu_pause; extern image_t img_select_arrow; @@ -39,7 +56,7 @@ int menu_pause() // 1 exit, 0 continue dimage(x+2, y+2+7*choice, &img_select_arrow); dupdate(); - switch (getkey_custom()) + switch (mkb_getkey()) { case KEY_EXIT: return 0; @@ -49,7 +66,7 @@ int menu_pause() // 1 exit, 0 continue case KEY_OPTN: choice=2; - + // fall through case KEY_EXE: if (choice==2) configmenu(); @@ -64,7 +81,7 @@ int menu_pause() // 1 exit, 0 continue if (choice<2) choice++; break; - +#ifdef KONAMI case KEY_F1: for (int a=0; a<10; a++) @@ -72,6 +89,7 @@ int menu_pause() // 1 exit, 0 continue key_event_t e=pollevent(); if (e.type==KEYEV_DOWN) { + static int const konami[]={KEY_UP,KEY_UP,KEY_DOWN,KEY_DOWN,KEY_LEFT,KEY_RIGHT,KEY_LEFT,KEY_RIGHT,KEY_ALPHA,KEY_SHIFT}; if (e.key!=konami[a]) break; } @@ -81,7 +99,8 @@ int menu_pause() // 1 exit, 0 continue { mario_bigger(); mario_has_bullets=1; - lifes=50; + for (int i=0; i<20; i++) + lifes_add(); extern image_t img_dev; dimage(0,0,&img_dev); dupdate(); @@ -91,11 +110,12 @@ int menu_pause() // 1 exit, 0 continue else e=pollevent(); } +#endif } } } -void update_keyboard() +void mkb_update() { key_event_t e; e=pollevent(); @@ -104,7 +124,7 @@ void update_keyboard() if (keys[i]==2) keys[i]=1; while(e.type!=KEYEV_NONE) { - mkey_t k = MK_NONE; + mkb_t k = MK_NONE; if(e.key==KEY_LEFT) k=MK_LEFT; @@ -112,18 +132,18 @@ void update_keyboard() k=MK_RIGHT; if(e.key==KEY_SHIFT) - k=MK_JUMP1; + k=MK_JUMP; if(e.key==KEY_UP) k=MK_UP; if(e.key==KEY_DOWN) - k=MK_LITTLE; + k=MK_DOWN; if(e.key==KEY_ALPHA) k=MK_RUN; if(keydown(KEY_EXIT)) - menu=1; + menu=1; // Displays menu after updating the keyboard @@ -144,25 +164,12 @@ void update_keyboard() { int t=menu_pause(); if (t==1) - finish_level=-1; + finish_level=-1; // Exits the level return; } } -int getkey_custom() -{ - key_event_t e; - for (int i=0; i<6; i++) - keys[i]=0; - clearevents(); - while (1) - { - e=pollevent(); - if (e.type==KEYEV_DOWN) - return e.key; - else - sleep(); - } -} \ No newline at end of file + + diff --git a/src/level.c b/src/level.c index 2819384..47c8f3c 100644 --- a/src/level.c +++ b/src/level.c @@ -376,7 +376,7 @@ void set_level(int w, int l) teleport_t t[]= { - {57,6, 212,12, MK_LITTLE}, + {57,6, 212,12, MK_DOWN}, {222,2, 178,3, MK_RIGHT} }; @@ -651,10 +651,10 @@ init_ennemies(ennemies0); teleport_t t[]= { - {6,4, 21,12, MK_LITTLE}, - {106,5, 188,12, MK_LITTLE}, - {197,2, 118,4, MK_LEFT}, - {180,5, 206,2, MK_LEFT}, + {6,4, 21,12, MK_DOWN}, + {106,5, 188,12, MK_DOWN}, + {197,2, 118,4, MK_RIGHT}, + {180,5, 206,2, MK_RIGHT}, }; set_teleporteurs(t, sizeof(t)/sizeof(teleport_t)); @@ -985,8 +985,8 @@ init_ennemies(ennemies0); teleport_t t[]= { - {106,4, 222,9, MK_LITTLE}, - {243,3, 174,4, MK_LITTLE}, + {106,4, 222,9, MK_DOWN}, + {243,3, 174,4, MK_DOWN}, {216,3, 248,2, MK_UP}, }; diff --git a/src/levelchanger.c b/src/levelchanger.c index 5e4e614..5b458eb 100644 --- a/src/levelchanger.c +++ b/src/levelchanger.c @@ -28,7 +28,7 @@ static void levelchanger(int w) while (1) { - keyboard_clear(); + mkb_clear(); dimage(0,0,&img_levelchanger); drect(xt+(2+wt)*choice, yt, xt+(wt+2)*choice+wt,yt+ht, C_INVERT); @@ -71,7 +71,7 @@ static void levelchanger(int w) //int key=getkey_opt(GETKEY_REP_ARROWS,0).key; - int key=getkey_custom(); + int key=mkb_getkey(); if (key==KEY_LEFT && choice>0) choice--; @@ -94,19 +94,19 @@ static void levelchanger(int w) get_lvl_id(w, i, lvl); dtext(53,28, lvl, C_WHITE, C_BLACK); - sprintf(lvl, "%d", lifes); + sprintf(lvl, "%d", lifes_get()); dtext(65,54, lvl, C_WHITE, C_BLACK); dupdate(); sleep_ms(3,2000); int a=play_level(w, i); if (a==0) - lifes--; + lifes_lose(); if (a==1) i++; if (a==-1) break; - if (lifes==0) + if (lifes_get()==0) { extern image_t img_game_over; dimage(0,0,&img_game_over); @@ -126,7 +126,7 @@ static void levelchanger(int w) get_lvl_id(w, choice, lvl); dtext(53,28, lvl, C_WHITE, C_BLACK); - sprintf(lvl, "%d", lifes); + sprintf(lvl, "%d", lifes_get()); dtext(65,54, lvl, C_WHITE, C_BLACK); dupdate(); sleep_ms(3,2000); @@ -161,14 +161,13 @@ static void levelchanger(int w) void launch_ui() { - keyboard_clear(); extern image_t img_mainmenu; const int xt=17,yt=9; int choice_x=0, choice_y=0; while (1) { - keyboard_clear(); + mkb_clear(); dimage(0,0,&img_mainmenu); //Show unlocked worlds @@ -178,16 +177,16 @@ void launch_ui() { case 4: dimage(xt, yt+24, &img_w5); - + // fall through case 3: dimage(xt+72, yt, &img_w4); - + // fall through case 2: dimage(xt+48, yt, &img_w3); - + // fall through case 1: dimage(xt+24, yt, &img_w2); - + // fall through case 0: dimage(xt, yt, &img_w1); } @@ -196,7 +195,7 @@ void launch_ui() dupdate(); //int key=getkey_opt(GETKEY_REP_ARROWS,0).key; - int key=getkey_custom(); + int key=mkb_getkey(); if (key==KEY_UP && choice_y>0) choice_y--; if (key==KEY_LEFT && choice_x>0) @@ -250,7 +249,7 @@ int play_level(int w, int l) timer_stop(0); return -1; } - reset_camera(); + camera_adjust(); diff --git a/src/mario.c b/src/mario.c index 63e25a4..c2d9bbb 100755 --- a/src/mario.c +++ b/src/mario.c @@ -2,11 +2,12 @@ #include "tile.h" #include "world.h" #include -#include -#include "keyboard.h" +#include #include "box.h" #include "score.h" #include "bonus.h" +#include +#include static int sgn(int x) { @@ -63,20 +64,20 @@ void mario_draw() if (mario.size==M_SMALL) { if (mario.p.vx*sgn(mario.p.vx)>=3) - draw_tile(mario.p.x-world_get_real_x0(mario.p.x), mario.p.y-world_get_real_y0(mario.p.y), &mario_small, 2*last_vx_sign+(id_frame/4)%2, 0); + draw_tile(mario.p.x-camera_x(mario.p.x), mario.p.y-camera_y(mario.p.y), &mario_small, 2*last_vx_sign+(id_frame/4)%2, 0); else if (mario.p.vx*sgn(mario.p.vx)>=1) - draw_tile(mario.p.x-world_get_real_x0(mario.p.x), mario.p.y-world_get_real_y0(mario.p.y), &mario_small, 2*last_vx_sign+(id_frame/8)%2, 0); + draw_tile(mario.p.x-camera_x(mario.p.x), mario.p.y-camera_y(mario.p.y), &mario_small, 2*last_vx_sign+(id_frame/8)%2, 0); else - draw_tile(mario.p.x-world_get_real_x0(mario.p.x), mario.p.y-world_get_real_y0(mario.p.y), &mario_small, 2*last_vx_sign, 0); + draw_tile(mario.p.x-camera_x(mario.p.x), mario.p.y-camera_y(mario.p.y), &mario_small, 2*last_vx_sign, 0); } else { if (mario.p.vx*sgn(mario.p.vx)>=3) - draw_tile(mario.p.x-world_get_real_x0(mario.p.x), mario.p.y-world_get_real_y0(mario.p.y), &mario_big, 4*last_vx_sign+(id_frame/4)%2, mario_has_bullets); + draw_tile(mario.p.x-camera_x(mario.p.x), mario.p.y-camera_y(mario.p.y), &mario_big, 4*last_vx_sign+(id_frame/4)%2, mario_has_bullets); else if (mario.p.vx*sgn(mario.p.vx)>=1) - draw_tile(mario.p.x-world_get_real_x0(mario.p.x), mario.p.y-world_get_real_y0(mario.p.y), &mario_big, 4*last_vx_sign+(id_frame/8)%2, mario_has_bullets); + draw_tile(mario.p.x-camera_x(mario.p.x), mario.p.y-camera_y(mario.p.y), &mario_big, 4*last_vx_sign+(id_frame/8)%2, mario_has_bullets); else - draw_tile(mario.p.x-world_get_real_x0(mario.p.x), mario.p.y-world_get_real_y0(mario.p.y), &mario_big, 3*last_vx_sign, mario_has_bullets); + draw_tile(mario.p.x-camera_x(mario.p.x), mario.p.y-camera_y(mario.p.y), &mario_big, 3*last_vx_sign, mario_has_bullets); } } } @@ -122,23 +123,22 @@ void mario_move() } id_frame++; - update_keyboard(); - if (mario_has_bullets==1 && keys[MK_RUN]==2) + if (mario_has_bullets==1 && mkb_getstate(MK_RUN)==2) { - lance_bullet(); + bullet_throw(); } - int jump = keys[MK_JUMP1];// || keys[MK_JUMP2]; - if (keys[MK_JUMP1]==2) //|| keys[MK_JUMP2]==2) + + if (mkb_getstate(MK_JUMP)==2) //|| keys[MK_JUMP2]==2) { if (mario.p.vx*sgn(mario.p.vx)>=6) box_jump(&mario.p, 9); else box_jump(&mario.p, 8); } - else if (mario.p.vy>=6 && jump==0) - mario.p.vy=5; + else if (mario.p.vy>=2 && mkb_getstate(MK_JUMP)==0) + mario.p.vy--; - int vx=sgn(keys[MK_RIGHT] - keys[MK_LEFT]); + int vx=sgn(mkb_getstate(MK_RIGHT) - mkb_getstate(MK_LEFT)); int c1=world_get_ctg(mario.p.x, mario.p.y-1/*+mario.p.h*/); int c2=world_get_ctg(mario.p.x+mario.p.w-1, mario.p.y-1/*+mario.p.h*/); @@ -153,7 +153,7 @@ void mario_move() mario_time_accel%=2; if (mario_time_accel==0) { - if (keys[MK_RUN] && (c1==CTG_SOIL || c2==CTG_SOIL)) + if (mkb_getstate(MK_RUN) && (c1==CTG_SOIL || c2==CTG_SOIL)) { if(mario.p.vx*sgn(mario.p.vx)<=8) mario.p.vx+=vx; @@ -164,7 +164,7 @@ void mario_move() mario.p.vx+=vx; } - if (keys[MK_RUN]==0) + if (mkb_getstate(MK_RUN)==0) { if (mario.p.vx*vx>4) mario.p.vx-=vx; @@ -201,10 +201,10 @@ void mario_move() if (vx<0 && (c1==CTG_SOIL || c2==CTG_SOIL)) last_vx_sign=0; - if (mario.p.x+mario.p.vx + gravity diff --git a/src/plateforme.c b/src/plateforme.c index 42ce748..8e9f880 100644 --- a/src/plateforme.c +++ b/src/plateforme.c @@ -4,6 +4,7 @@ #include #include #include +#include int plateforme_table_size=0; plateforme_t* plateformes=0; @@ -99,7 +100,7 @@ void display_plateformes() { p=&plateformes[i]; for (int j=p->x; j < p->x+p->width; j+=3) - draw_tile(j-world_get_real_x0(),p->y-world_get_real_y0(), &tplateforme, 0,0); + draw_tile(j-camera_x(),p->y-camera_y(), &tplateforme, 0,0); //drect(p->x-world_get_real_x0(),64-(p->y-world_get_real_y0()),p->x-world_get_real_x0()+p->width,64-(p->y-world_get_real_y0()-3), C_BLACK); } } diff --git a/src/score.c b/src/score.c index 2aa780f..3cee747 100644 --- a/src/score.c +++ b/src/score.c @@ -7,7 +7,7 @@ #include static int score=0; -int lifes=3; +static int lifes=3; int combo=0; int combo_id=-10; @@ -124,4 +124,21 @@ void score_display() int get_time_spent() { return time_spent; +} + + + +int lifes_get() +{ + return lifes; +} + +void lifes_lose() +{ + lifes --; +} + +void lifes_add() +{ + lifes ++; } \ No newline at end of file diff --git a/src/tuyau.c b/src/tuyau.c index afcb46d..7e3fa7b 100644 --- a/src/tuyau.c +++ b/src/tuyau.c @@ -3,7 +3,7 @@ #include #include #include - +#include #include static teleport_t teleporteurs[6]={0}; // 6 max @@ -35,12 +35,12 @@ void teleport_active() { if (t.key>=0) { - if (!keys[t.key]) + if (mkb_getstate(t.key)) continue; } // Animation section - if (t.key==MK_LITTLE) + if (t.key==MK_DOWN) { while (mario.p.y+mario.p.h>=8*t.y) { @@ -69,7 +69,7 @@ void teleport_active() mario.p.x=t.tx*8+4; mario.p.y=t.ty*8; mario.p.vx=0; mario.p.vy=0; - reset_camera(); + camera_adjust(); } } } \ No newline at end of file diff --git a/src/world.c b/src/world.c index 843b9fa..99c5166 100755 --- a/src/world.c +++ b/src/world.c @@ -9,6 +9,10 @@ #include "ennemi.h" #include #include +#include +#include +#include +#include world_t * w_current=0; image_t * w_fond=0; @@ -112,7 +116,7 @@ void display_cell(int cx, int cy, int sx, int sy, int plan) { if (cell->type==COIN) { - coin_t* i=cell; + coin_t const * i=(coin_t*)cell; draw_tile(sx, sy, &coin, i->taken, 0); } @@ -155,52 +159,11 @@ int world_get_ctg(int x, int y) } } -static int max(const int x, const int y) +void world_draw() { - return (xy?y:x); -} - -static int max_cy=0; - -void reset_camera() -{ - max_cy=mario.p.y; - mario_x_max=mario.p.x; -} - -int world_get_real_x0() //mario delta en 0,0 -{ //if (mario.p.x>mario_x_max) - // mario_x_max=mario.p.x; - //if (mario_x_max-40>mario.p.x) - // mario_x_max=mario.p.x; - //return min(max(mario_x_max-40,0),w_current_x*8-128); - return min(max(mario.p.x-40,0),w_current_x*8-128); -} - -void reload_camera() -{ - const int step=3; // on ajoute 1/3 - max_cy+=(mario.p.y-max_cy)/step; -} - -int world_get_real_y0() //mario delta en 0,0 -{ - //static int y=mario.p.y; - return /*min(*/max(max_cy-24,0)/*,w_current_y*8-64)*/; -} - - - -void world_draw(int x, int y) -{ - reload_camera(); - int mx0=world_get_real_x0(); - int my0=world_get_real_y0(); + + int mx0=camera_x(); + int my0=camera_x(); int sx0=mx0%8; int sy0=my0%8; int mx=mx0; @@ -242,6 +205,8 @@ void world_draw(int x, int y) void world_move() { + camera_move(0); + mkb_update(); ll_sendp(LEVEL_INFO,"\n[I;%d] Refresh wrld",frame_id); for (int i=0; i