diff --git a/GBA-Dash.elf b/GBA-Dash.elf new file mode 100755 index 0000000..0e01822 Binary files /dev/null and b/GBA-Dash.elf differ diff --git a/GBA-Dash.gba b/GBA-Dash.gba new file mode 100755 index 0000000..8eb6649 Binary files /dev/null and b/GBA-Dash.gba differ diff --git a/GBA-Dash.sav b/GBA-Dash.sav new file mode 100644 index 0000000..e69de29 diff --git a/build/GBA-Dash.map b/build/GBA-Dash.map new file mode 100644 index 0000000..230c95b --- /dev/null +++ b/build/GBA-Dash.map @@ -0,0 +1,611 @@ +Archive member included to satisfy reference by file (symbol) + +/opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-init.o) + /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o (__libc_init_array) +/opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memcpy-stub.o) + main.o (memcpy) +/opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o (fake_heap_end) + +Discarded input sections + + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crti.o + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crti.o + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crti.o + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .data.__dso_handle + 0x0000000000000000 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .data 0x0000000000000000 0x0 playerObject.o + .bss 0x0000000000000000 0x0 playerObject.o + .data 0x0000000000000000 0x0 camera.o + .bss 0x0000000000000000 0x0 camera.o + .text 0x0000000000000000 0x0 main.o + .text 0x0000000000000000 0x0 sinlut.o + .data 0x0000000000000000 0x0 sinlut.o + .bss 0x0000000000000000 0x0 sinlut.o + .text 0x0000000000000000 0x0 map.o + .data 0x0000000000000000 0x0 map.o + .bss 0x0000000000000000 0x0 map.o + .data 0x0000000000000000 0x0 toolbox.o + .text 0x0000000000000000 0x0 player.o + .data 0x0000000000000000 0x0 player.o + .bss 0x0000000000000000 0x0 player.o + .text 0x0000000000000000 0x0 block.o + .data 0x0000000000000000 0x0 block.o + .bss 0x0000000000000000 0x0 block.o + .text 0x0000000000000000 0x0 spike.o + .data 0x0000000000000000 0x0 spike.o + .bss 0x0000000000000000 0x0 spike.o + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-init.o) + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-init.o) + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-init.o) + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memcpy-stub.o) + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memcpy-stub.o) + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memcpy-stub.o) + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + .bss.fake_heap_start + 0x0000000000000000 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o + .text 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtn.o + .data 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtn.o + .bss 0x0000000000000000 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtn.o + +Memory Configuration + +Name Origin Length Attributes +rom 0x0000000008000000 0x0000000002000000 +iwram 0x0000000003000000 0x0000000000008000 +ewram 0x0000000002000000 0x0000000000040000 +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + + 0x0000000008000000 __text_start = ORIGIN (rom) + 0x0000000002040000 __eheap_end = (ORIGIN (ewram) + LENGTH (ewram)) + 0x0000000003000000 __iwram_start = ORIGIN (iwram) + 0x0000000003008000 __iwram_top = (ORIGIN (iwram) + LENGTH (iwram)) + 0x0000000003007fa0 __sp_irq = (__iwram_top - 0x60) + 0x0000000003007f00 __sp_usr = (__sp_irq - 0xa0) + 0x0000000003007ff8 __irq_flags = 0x3007ff8 + 0x0000000008000000 . = __text_start + +.crt0 0x0000000008000000 0x210 + *(.crt0) + .crt0 0x0000000008000000 0x210 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + 0x0000000008000000 _start + 0x00000000080000c4 __boot_method + 0x00000000080000c5 __slave_number + 0x00000000080000e0 start_vector + 0x0000000008000210 . = ALIGN (0x4) + +.init 0x0000000008000210 0xc + *(SORT_NONE(.init)) + .init 0x0000000008000210 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crti.o + 0x0000000008000210 _init + .init 0x0000000008000214 0x8 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtn.o + +.plt 0x000000000800021c 0x0 + *(.plt) + 0x000000000800021c . = ALIGN (0x4) + +.text 0x000000000800021c 0x638 + *(EXCLUDE_FILE(*.iwram*) .text*) + .text.deregister_tm_clones + 0x000000000800021c 0x2c /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .text.register_tm_clones + 0x0000000008000248 0x34 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .text.__do_global_dtors_aux + 0x000000000800027c 0x30 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .text.frame_dummy + 0x00000000080002ac 0x28 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .text 0x00000000080002d4 0x1ac playerObject.o + 0x00000000080002d4 initializePlayerObject + 0x00000000080002e4 createPlayerObject + 0x0000000008000330 applyGravity + 0x0000000008000338 scalePlayer + 0x0000000008000348 rotatePlayer + 0x0000000008000378 rotateToNearest90Degrees + 0x00000000080003d8 updatePlayer + .text 0x0000000008000480 0x20 camera.o + 0x0000000008000480 createCamera + 0x0000000008000488 applyCameraShift + .text.startup 0x00000000080004a0 0x1fc main.o + 0x00000000080004a0 main + .text 0x000000000800069c 0xc0 toolbox.o + 0x000000000800069c oam_init + 0x00000000080006dc oam_copy + 0x00000000080006fc obj_copy + 0x000000000800071c obj_affine_copy + 0x000000000800074c obj_affine_identity + .text.__libc_init_array + 0x000000000800075c 0x50 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-init.o) + 0x000000000800075c __libc_init_array + .text.memcpy 0x00000000080007ac 0xa8 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memcpy-stub.o) + 0x00000000080007ac memcpy + *(.gnu.linkonce.t.*) + *(.text.*personality*) + *(.gnu.warning) + *(.glue_7t) + .glue_7t 0x0000000008000854 0x0 linker stubs + *(.glue_7) + .glue_7 0x0000000008000854 0x0 linker stubs + *(.vfp11_veneer) + .vfp11_veneer 0x0000000008000854 0x0 linker stubs + 0x0000000008000854 . = ALIGN (0x4) + 0x0000000008000854 __text_end = . + +.v4_bx 0x0000000008000854 0x0 + .v4_bx 0x0000000008000854 0x0 linker stubs + +.iplt 0x0000000008000854 0x0 + .iplt 0x0000000008000854 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + +.fini 0x0000000008000854 0xc + *(.fini) + .fini 0x0000000008000854 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crti.o + 0x0000000008000854 _fini + .fini 0x0000000008000858 0x8 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtn.o + 0x0000000008000860 . = ALIGN (0x4) + +.rodata 0x0000000008000860 0xe50 + *(.rodata) + .rodata 0x0000000008000860 0x400 sinlut.o + 0x0000000008000860 sin_lut + .rodata 0x0000000008000c60 0x2d0 map.o + 0x0000000008000c60 map1 + .rodata 0x0000000008000f30 0x280 player.o + 0x0000000008000f30 playerTiles + 0x0000000008000fb0 playerPal + .rodata 0x00000000080011b0 0x280 block.o + 0x00000000080011b0 blockTiles + 0x0000000008001230 blockPal + .rodata 0x0000000008001430 0x280 spike.o + 0x0000000008001430 spikeTiles + 0x00000000080014b0 spikePal + *all.rodata*(*) + *(.roda) + *(.rodata.*) + *(.gnu.linkonce.r*) + 0x00000000080016b0 . = ALIGN (0x4) + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x00000000080016b0 __exidx_start = . + +.ARM.exidx + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x00000000080016b0 __exidx_end = . + +.ctors 0x00000000080016b0 0x0 + *crtbegin.o(.ctors) + *(EXCLUDE_FILE(*crtend.o) .ctors) + *(SORT_BY_NAME(.ctors.*)) + *(.ctors) + 0x00000000080016b0 . = ALIGN (0x4) + +.dtors 0x00000000080016b0 0x0 + *crtbegin.o(.dtors) + *(EXCLUDE_FILE(*crtend.o) .dtors) + *(SORT_BY_NAME(.dtors.*)) + *(.dtors) + 0x00000000080016b0 . = ALIGN (0x4) + +.eh_frame 0x00000000080016b0 0x4 + *(.eh_frame) + .eh_frame 0x00000000080016b0 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .eh_frame 0x00000000080016b0 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o + 0x00000000080016b4 . = ALIGN (0x4) + +.rel.dyn 0x00000000080016b4 0x0 + .rel.iplt 0x00000000080016b4 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + +.gcc_except_table + 0x00000000080016b4 0x0 + *(.gcc_except_table) + 0x00000000080016b4 . = ALIGN (0x4) + 0x00000000080016b4 __iwram_lma = . + +.iwram 0x0000000003000000 0x0 load address 0x00000000080016b4 + 0x0000000003000000 __iwram_start__ = ABSOLUTE (.) + *(.iwram .iwram*) + *iwram.*(.text* .data*) + 0x0000000003000000 . = ALIGN (0x4) + 0x0000000003000000 __iwram_end__ = ABSOLUTE (.) + 0x00000000080016b4 __data_lma = (__iwram_lma + SIZEOF (.iwram)) + +.bss 0x0000000003000000 0x424 + 0x0000000003000000 __bss_start = ABSOLUTE (.) + 0x0000000003000000 __bss_start__ = ABSOLUTE (.) + *(.dynbss) + *(.gnu.linkonce.b*) + *(.bss*) + .bss.completed.1 + 0x0000000003000000 0x1 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + *fill* 0x0000000003000001 0x3 + .bss.object.0 0x0000000003000004 0x18 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .bss 0x000000000300001c 0x400 main.o + 0x000000000300001c obj_buffer + .bss 0x000000000300041c 0x4 toolbox.o + 0x000000000300041c __key_prev + 0x000000000300041e __key_curr + .bss.fake_heap_end + 0x0000000003000420 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + 0x0000000003000420 fake_heap_end + *(COMMON) + 0x0000000003000424 . = ALIGN (0x4) + 0x0000000003000424 __bss_end__ = ABSOLUTE (.) + +.data 0x0000000003000424 0x4 load address 0x00000000080016b4 + 0x0000000003000424 __data_start__ = ABSOLUTE (.) + *(.data*) + .data 0x0000000003000424 0x4 main.o + 0x0000000003000424 obj_aff_buffer + *(.gnu.linkonce.d*) + 0x0000000003000428 . = ALIGN (0x4) + 0x00000000080016b8 __preinit_lma = (__data_lma + SIZEOF (.data)) + +.igot.plt 0x0000000003000428 0x0 load address 0x00000000080016b8 + .igot.plt 0x0000000003000428 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + +.tm_clone_table + 0x0000000003000428 0x0 load address 0x00000000080016b8 + .tm_clone_table + 0x0000000003000428 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .tm_clone_table + 0x0000000003000428 0x0 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o + +.preinit_array 0x0000000003000428 0x0 load address 0x00000000080016b8 + 0x0000000003000428 __preinit_array_start = ABSOLUTE (.) + *(.preinit_array) + 0x0000000003000428 __preinit_array_end = ABSOLUTE (.) + 0x00000000080016b8 __init_lma = (__preinit_lma + SIZEOF (.preinit_array)) + +.init_array 0x0000000003000428 0x4 load address 0x00000000080016b8 + 0x0000000003000428 __init_array_start = ABSOLUTE (.) + *(SORT_BY_NAME(.init_array.*)) + *(.init_array) + .init_array 0x0000000003000428 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + 0x000000000300042c __init_array_end = ABSOLUTE (.) + 0x00000000080016bc __fini_lma = (__init_lma + SIZEOF (.init_array)) + +.fini_array 0x000000000300042c 0x4 load address 0x00000000080016bc + 0x000000000300042c __fini_array_start = ABSOLUTE (.) + *(SORT_BY_NAME(.fini_array.*)) + *(.fini_array) + .fini_array 0x000000000300042c 0x4 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + 0x0000000003000430 __fini_array_end = ABSOLUTE (.) + 0x00000000080016c0 __jcr_lma = (__fini_lma + SIZEOF (.fini_array)) + +.jcr 0x0000000003000430 0x0 load address 0x00000000080016c0 + *(.jcr) + 0x0000000003000430 __data_end__ = ABSOLUTE (.) + 0x00000000080016c0 __iwram_overlay_lma = (__jcr_lma + SIZEOF (.jcr)) + 0x0000000003000430 __iwram_overlay_start = . + +.iwram0 0x0000000003000430 0x0 load address 0x00000000080016c0 + *(.iwram0) + 0x0000000003000430 . = ALIGN (0x4) + 0x00000000080016c0 PROVIDE (__load_start_iwram0 = LOADADDR (.iwram0)) + 0x00000000080016c0 PROVIDE (__load_stop_iwram0 = (LOADADDR (.iwram0) + SIZEOF (.iwram0))) + +.iwram1 0x0000000003000430 0x0 + *(.iwram1) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram1 = LOADADDR (.iwram1)) + [!provide] PROVIDE (__load_stop_iwram1 = (LOADADDR (.iwram1) + SIZEOF (.iwram1))) + +.iwram2 0x0000000003000430 0x0 + *(.iwram2) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram2 = LOADADDR (.iwram2)) + [!provide] PROVIDE (__load_stop_iwram2 = (LOADADDR (.iwram2) + SIZEOF (.iwram2))) + +.iwram3 0x0000000003000430 0x0 + *(.iwram3) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram3 = LOADADDR (.iwram3)) + [!provide] PROVIDE (__load_stop_iwram3 = (LOADADDR (.iwram3) + SIZEOF (.iwram3))) + +.iwram4 0x0000000003000430 0x0 + *(.iwram4) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram4 = LOADADDR (.iwram4)) + [!provide] PROVIDE (__load_stop_iwram4 = (LOADADDR (.iwram4) + SIZEOF (.iwram4))) + +.iwram5 0x0000000003000430 0x0 + *(.iwram5) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram5 = LOADADDR (.iwram5)) + [!provide] PROVIDE (__load_stop_iwram5 = (LOADADDR (.iwram5) + SIZEOF (.iwram5))) + +.iwram6 0x0000000003000430 0x0 + *(.iwram6) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram6 = LOADADDR (.iwram6)) + [!provide] PROVIDE (__load_stop_iwram6 = (LOADADDR (.iwram6) + SIZEOF (.iwram6))) + +.iwram7 0x0000000003000430 0x0 + *(.iwram7) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram7 = LOADADDR (.iwram7)) + [!provide] PROVIDE (__load_stop_iwram7 = (LOADADDR (.iwram7) + SIZEOF (.iwram7))) + +.iwram8 0x0000000003000430 0x0 + *(.iwram8) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram8 = LOADADDR (.iwram8)) + [!provide] PROVIDE (__load_stop_iwram8 = (LOADADDR (.iwram8) + SIZEOF (.iwram8))) + +.iwram9 0x0000000003000430 0x0 + *(.iwram9) + 0x0000000003000430 . = ALIGN (0x4) + [!provide] PROVIDE (__load_start_iwram9 = LOADADDR (.iwram9)) + [!provide] PROVIDE (__load_stop_iwram9 = (LOADADDR (.iwram9) + SIZEOF (.iwram9))) + 0x0000000003000430 __iwram_overlay_end = . + 0x00000000080016c0 __ewram_lma = (__iwram_overlay_lma + (__iwram_overlay_end - __iwram_overlay_start)) + 0x0000000003000430 __iheap_start = . + 0x0000000002000000 __ewram_start = ORIGIN (ewram) + +.ewram 0x0000000002000000 0x0 load address 0x00000000080016c0 + *(.ewram*) + 0x0000000002000000 . = ALIGN (0x4) + 0x0000000002000000 __ewram_end = ABSOLUTE (.) + 0x00000000080016c0 __pad_lma = (__ewram_lma + SIZEOF (.ewram)) + +.sbss 0x0000000002000000 0x0 + 0x0000000002000000 __sbss_start__ = ABSOLUTE (.) + *(.sbss*) + 0x0000000002000000 . = ALIGN (0x4) + 0x0000000002000000 __sbss_end__ = ABSOLUTE (.) + 0x0000000002000000 __end__ = ABSOLUTE (.) + 0x0000000002000000 __eheap_start = ABSOLUTE (.) + +.pad 0x0000000002000000 0x8 load address 0x00000000080016c0 + 0x0000000002000000 0x4 LONG 0x52416b64 + 0x0000000002000004 0x4 LONG 0x4d + 0x0000000002000008 . = ALIGN (0x4) + 0x00000000080016c8 __rom_end__ = (__pad_lma + SIZEOF (.pad)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x0000000000000000 0x23 + *(.comment) + .comment 0x0000000000000000 0x23 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + 0x24 (size before relaxing) + .comment 0x0000000000000023 0x24 playerObject.o + .comment 0x0000000000000023 0x24 camera.o + .comment 0x0000000000000023 0x24 main.o + .comment 0x0000000000000023 0x24 sinlut.o + .comment 0x0000000000000023 0x24 map.o + .comment 0x0000000000000023 0x24 toolbox.o + .comment 0x0000000000000023 0x24 player.o + .comment 0x0000000000000023 0x24 block.o + .comment 0x0000000000000023 0x24 spike.o + .comment 0x0000000000000023 0x24 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-init.o) + .comment 0x0000000000000023 0x24 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memcpy-stub.o) + .comment 0x0000000000000023 0x24 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + .comment 0x0000000000000023 0x24 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x0000000000000000 0xf8 + *(.debug_aranges) + .debug_aranges + 0x0000000000000000 0x20 playerObject.o + .debug_aranges + 0x0000000000000020 0x20 camera.o + .debug_aranges + 0x0000000000000040 0x20 main.o + .debug_aranges + 0x0000000000000060 0x18 sinlut.o + .debug_aranges + 0x0000000000000078 0x18 map.o + .debug_aranges + 0x0000000000000090 0x20 toolbox.o + .debug_aranges + 0x00000000000000b0 0x18 player.o + .debug_aranges + 0x00000000000000c8 0x18 block.o + .debug_aranges + 0x00000000000000e0 0x18 spike.o + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x0000000000000000 0x195b + *(.debug_info) + .debug_info 0x0000000000000000 0x938 playerObject.o + .debug_info 0x0000000000000938 0x122 camera.o + .debug_info 0x0000000000000a5a 0x8b4 main.o + .debug_info 0x000000000000130e 0x8b sinlut.o + .debug_info 0x0000000000001399 0x90 map.o + .debug_info 0x0000000000001429 0x3b5 toolbox.o + .debug_info 0x00000000000017de 0x7f player.o + .debug_info 0x000000000000185d 0x7f block.o + .debug_info 0x00000000000018dc 0x7f spike.o + +.debug_abbrev 0x0000000000000000 0x95d + *(.debug_abbrev) + .debug_abbrev 0x0000000000000000 0x2b8 playerObject.o + .debug_abbrev 0x00000000000002b8 0xec camera.o + .debug_abbrev 0x00000000000003a4 0x27c main.o + .debug_abbrev 0x0000000000000620 0x61 sinlut.o + .debug_abbrev 0x0000000000000681 0x61 map.o + .debug_abbrev 0x00000000000006e2 0x1a6 toolbox.o + .debug_abbrev 0x0000000000000888 0x47 player.o + .debug_abbrev 0x00000000000008cf 0x47 block.o + .debug_abbrev 0x0000000000000916 0x47 spike.o + +.debug_line 0x0000000000000000 0xd40 + *(.debug_line) + .debug_line 0x0000000000000000 0x4d5 playerObject.o + .debug_line 0x00000000000004d5 0xc8 camera.o + .debug_line 0x000000000000059d 0x363 main.o + .debug_line 0x0000000000000900 0x80 sinlut.o + .debug_line 0x0000000000000980 0x7a map.o + .debug_line 0x00000000000009fa 0x26a toolbox.o + .debug_line 0x0000000000000c64 0x4a player.o + .debug_line 0x0000000000000cae 0x49 block.o + .debug_line 0x0000000000000cf7 0x49 spike.o + +.debug_frame 0x0000000000000000 0x1a4 + *(.debug_frame) + .debug_frame 0x0000000000000000 0xa8 playerObject.o + .debug_frame 0x00000000000000a8 0x38 camera.o + .debug_frame 0x00000000000000e0 0x3c main.o + .debug_frame 0x000000000000011c 0x88 toolbox.o + +.debug_str 0x0000000000000000 0x589 + *(.debug_str) + .debug_str 0x0000000000000000 0x301 playerObject.o + 0x31a (size before relaxing) + .debug_str 0x0000000000000301 0x47 camera.o + 0x13f (size before relaxing) + .debug_str 0x0000000000000348 0x12a main.o + 0x33a (size before relaxing) + .debug_str 0x0000000000000472 0x29 sinlut.o + 0x116 (size before relaxing) + .debug_str 0x000000000000049b 0x26 map.o + 0x110 (size before relaxing) + .debug_str 0x00000000000004c1 0x39 toolbox.o + 0x1ad (size before relaxing) + .debug_str 0x00000000000004fa 0x34 player.o + 0xdc (size before relaxing) + .debug_str 0x000000000000052e 0x29 block.o + 0xd9 (size before relaxing) + .debug_str 0x0000000000000557 0x32 spike.o + 0xd9 (size before relaxing) + +.debug_loc 0x0000000000000000 0xa55 + *(.debug_loc) + .debug_loc 0x0000000000000000 0x50c playerObject.o + .debug_loc 0x000000000000050c 0x50 camera.o + .debug_loc 0x000000000000055c 0x18d main.o + .debug_loc 0x00000000000006e9 0x36c toolbox.o + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.stack 0x0000000000080000 0x0 + 0x0000000000080000 _stack = . + *(.stack) + +.note.gnu.arm.ident + *(.note.gnu.arm.ident) + +.ARM.attributes + 0x0000000000000000 0x2c + *(.ARM.attributes) + .ARM.attributes + 0x0000000000000000 0x20 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o + .ARM.attributes + 0x0000000000000020 0x1c /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crti.o + .ARM.attributes + 0x000000000000003c 0x2a /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o + .ARM.attributes + 0x0000000000000066 0x2a playerObject.o + .ARM.attributes + 0x0000000000000090 0x2a camera.o + .ARM.attributes + 0x00000000000000ba 0x2a main.o + .ARM.attributes + 0x00000000000000e4 0x30 sinlut.o + .ARM.attributes + 0x0000000000000114 0x30 map.o + .ARM.attributes + 0x0000000000000144 0x2a toolbox.o + .ARM.attributes + 0x000000000000016e 0x30 player.o + .ARM.attributes + 0x000000000000019e 0x30 block.o + .ARM.attributes + 0x00000000000001ce 0x30 spike.o + .ARM.attributes + 0x00000000000001fe 0x2a /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-init.o) + .ARM.attributes + 0x0000000000000228 0x2a /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memcpy-stub.o) + .ARM.attributes + 0x0000000000000252 0x30 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a(malloc_vars.o) + .ARM.attributes + 0x0000000000000282 0x30 /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o + .ARM.attributes + 0x00000000000002b2 0x1c /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtn.o + +/DISCARD/ + *(.note.GNU-stack) +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/gba_crt0.o +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crti.o +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtbegin.o +LOAD playerObject.o +LOAD camera.o +LOAD main.o +LOAD sinlut.o +LOAD map.o +LOAD toolbox.o +LOAD player.o +LOAD block.o +LOAD spike.o +LOAD /opt/devkitpro/libgba/lib/libmm.a +LOAD /opt/devkitpro/libgba/lib/libgba.a +START GROUP +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/libgcc.a +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libg.a +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libc.a +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/lib/thumb/libsysbase.a +END GROUP +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtend.o +LOAD /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/10.1.0/thumb/crtn.o +OUTPUT(/home/logan/git/GBA-Dash/GBA-Dash.elf elf32-littlearm) + +.debug_ranges 0x0000000000000000 0x270 + .debug_ranges 0x0000000000000000 0x188 playerObject.o + .debug_ranges 0x0000000000000188 0x10 camera.o + .debug_ranges 0x0000000000000198 0xc0 main.o + .debug_ranges 0x0000000000000258 0x18 toolbox.o diff --git a/build/block.d b/build/block.d new file mode 100644 index 0000000..83bf331 --- /dev/null +++ b/build/block.d @@ -0,0 +1 @@ +block.o: /home/logan/git/GBA-Dash/sprites/block.c diff --git a/build/block.o b/build/block.o new file mode 100644 index 0000000..5baf3de Binary files /dev/null and b/build/block.o differ diff --git a/build/camera.d b/build/camera.d new file mode 100644 index 0000000..be8fc82 --- /dev/null +++ b/build/camera.d @@ -0,0 +1,5 @@ +camera.o: /home/logan/git/GBA-Dash/source/camera.c \ + /home/logan/git/GBA-Dash/source/../include/camera.h \ + /home/logan/git/GBA-Dash/source/../include/types.h +/home/logan/git/GBA-Dash/source/../include/camera.h: +/home/logan/git/GBA-Dash/source/../include/types.h: diff --git a/build/camera.o b/build/camera.o new file mode 100644 index 0000000..fb5fc17 Binary files /dev/null and b/build/camera.o differ diff --git a/build/main.d b/build/main.d new file mode 100644 index 0000000..1eef2c1 --- /dev/null +++ b/build/main.d @@ -0,0 +1,47 @@ +main.o: /home/logan/git/GBA-Dash/source/main.c \ + /home/logan/git/GBA-Dash/source/../include/input.h \ + /home/logan/git/GBA-Dash/source/../include/memmap.h \ + /home/logan/git/GBA-Dash/source/../include/types.h \ + /home/logan/git/GBA-Dash/source/../include/memdef.h \ + /home/logan/git/GBA-Dash/source/../include/toolbox.h \ + /home/logan/git/GBA-Dash/source/../include/input.h \ + /home/logan/git/GBA-Dash/source/../include/memmap.h \ + /home/logan/git/GBA-Dash/source/../include/types.h \ + /home/logan/git/GBA-Dash/source/../include/memdef.h \ + /home/logan/git/GBA-Dash/source/../include/point.h \ + /home/logan/git/GBA-Dash/source/../include/fixed.h \ + /home/logan/git/GBA-Dash/source/../include/velocity.h \ + /home/logan/git/GBA-Dash/source/../include/point.h \ + /home/logan/git/GBA-Dash/source/../include/playerObject.h \ + /home/logan/git/GBA-Dash/source/../include/velocity.h \ + /home/logan/git/GBA-Dash/source/../include/toolbox.h \ + /home/logan/git/GBA-Dash/source/../include/sinlut.h \ + /home/logan/git/GBA-Dash/source/../include/camera.h \ + /home/logan/git/GBA-Dash/source/../include/map.h \ + /home/logan/git/GBA-Dash/source/../include/camera.h \ + /home/logan/git/GBA-Dash/source/../sprites/player.h \ + /home/logan/git/GBA-Dash/source/../sprites/block.h \ + /home/logan/git/GBA-Dash/source/../sprites/spike.h +/home/logan/git/GBA-Dash/source/../include/input.h: +/home/logan/git/GBA-Dash/source/../include/memmap.h: +/home/logan/git/GBA-Dash/source/../include/types.h: +/home/logan/git/GBA-Dash/source/../include/memdef.h: +/home/logan/git/GBA-Dash/source/../include/toolbox.h: +/home/logan/git/GBA-Dash/source/../include/input.h: +/home/logan/git/GBA-Dash/source/../include/memmap.h: +/home/logan/git/GBA-Dash/source/../include/types.h: +/home/logan/git/GBA-Dash/source/../include/memdef.h: +/home/logan/git/GBA-Dash/source/../include/point.h: +/home/logan/git/GBA-Dash/source/../include/fixed.h: +/home/logan/git/GBA-Dash/source/../include/velocity.h: +/home/logan/git/GBA-Dash/source/../include/point.h: +/home/logan/git/GBA-Dash/source/../include/playerObject.h: +/home/logan/git/GBA-Dash/source/../include/velocity.h: +/home/logan/git/GBA-Dash/source/../include/toolbox.h: +/home/logan/git/GBA-Dash/source/../include/sinlut.h: +/home/logan/git/GBA-Dash/source/../include/camera.h: +/home/logan/git/GBA-Dash/source/../include/map.h: +/home/logan/git/GBA-Dash/source/../include/camera.h: +/home/logan/git/GBA-Dash/source/../sprites/player.h: +/home/logan/git/GBA-Dash/source/../sprites/block.h: +/home/logan/git/GBA-Dash/source/../sprites/spike.h: diff --git a/build/main.o b/build/main.o new file mode 100644 index 0000000..1126ffb Binary files /dev/null and b/build/main.o differ diff --git a/build/map.d b/build/map.d new file mode 100644 index 0000000..f19f4c7 --- /dev/null +++ b/build/map.d @@ -0,0 +1,5 @@ +map.o: /home/logan/git/GBA-Dash/source/map.c \ + /home/logan/git/GBA-Dash/source/../include/map.h \ + /home/logan/git/GBA-Dash/source/../include/types.h +/home/logan/git/GBA-Dash/source/../include/map.h: +/home/logan/git/GBA-Dash/source/../include/types.h: diff --git a/build/map.o b/build/map.o new file mode 100644 index 0000000..02ad09b Binary files /dev/null and b/build/map.o differ diff --git a/build/player.d b/build/player.d new file mode 100644 index 0000000..d176045 --- /dev/null +++ b/build/player.d @@ -0,0 +1 @@ +player.o: /home/logan/git/GBA-Dash/sprites/player.c diff --git a/build/player.o b/build/player.o new file mode 100644 index 0000000..88141fa Binary files /dev/null and b/build/player.o differ diff --git a/build/playerObject.d b/build/playerObject.d new file mode 100644 index 0000000..1e85a77 --- /dev/null +++ b/build/playerObject.d @@ -0,0 +1,23 @@ +playerObject.o: /home/logan/git/GBA-Dash/source/playerObject.c \ + /home/logan/git/GBA-Dash/source/../include/playerObject.h \ + /home/logan/git/GBA-Dash/source/../include/types.h \ + /home/logan/git/GBA-Dash/source/../include/point.h \ + /home/logan/git/GBA-Dash/source/../include/fixed.h \ + /home/logan/git/GBA-Dash/source/../include/velocity.h \ + /home/logan/git/GBA-Dash/source/../include/toolbox.h \ + /home/logan/git/GBA-Dash/source/../include/memmap.h \ + /home/logan/git/GBA-Dash/source/../include/memdef.h \ + /home/logan/git/GBA-Dash/source/../include/input.h \ + /home/logan/git/GBA-Dash/source/../include/sinlut.h \ + /home/logan/git/GBA-Dash/source/../include/camera.h +/home/logan/git/GBA-Dash/source/../include/playerObject.h: +/home/logan/git/GBA-Dash/source/../include/types.h: +/home/logan/git/GBA-Dash/source/../include/point.h: +/home/logan/git/GBA-Dash/source/../include/fixed.h: +/home/logan/git/GBA-Dash/source/../include/velocity.h: +/home/logan/git/GBA-Dash/source/../include/toolbox.h: +/home/logan/git/GBA-Dash/source/../include/memmap.h: +/home/logan/git/GBA-Dash/source/../include/memdef.h: +/home/logan/git/GBA-Dash/source/../include/input.h: +/home/logan/git/GBA-Dash/source/../include/sinlut.h: +/home/logan/git/GBA-Dash/source/../include/camera.h: diff --git a/build/playerObject.o b/build/playerObject.o new file mode 100644 index 0000000..6d36b66 Binary files /dev/null and b/build/playerObject.o differ diff --git a/build/sinlut.d b/build/sinlut.d new file mode 100644 index 0000000..b421383 --- /dev/null +++ b/build/sinlut.d @@ -0,0 +1,5 @@ +sinlut.o: /home/logan/git/GBA-Dash/source/sinlut.c \ + /home/logan/git/GBA-Dash/source/../include/sinlut.h \ + /home/logan/git/GBA-Dash/source/../include/types.h +/home/logan/git/GBA-Dash/source/../include/sinlut.h: +/home/logan/git/GBA-Dash/source/../include/types.h: diff --git a/build/sinlut.o b/build/sinlut.o new file mode 100644 index 0000000..a0bc598 Binary files /dev/null and b/build/sinlut.o differ diff --git a/build/spike.d b/build/spike.d new file mode 100644 index 0000000..c8b52d3 --- /dev/null +++ b/build/spike.d @@ -0,0 +1 @@ +spike.o: /home/logan/git/GBA-Dash/sprites/spike.c diff --git a/build/spike.o b/build/spike.o new file mode 100644 index 0000000..7fcde30 Binary files /dev/null and b/build/spike.o differ diff --git a/build/toolbox.d b/build/toolbox.d new file mode 100644 index 0000000..d484bed --- /dev/null +++ b/build/toolbox.d @@ -0,0 +1,11 @@ +toolbox.o: /home/logan/git/GBA-Dash/source/toolbox.c \ + /home/logan/git/GBA-Dash/source/../include/toolbox.h \ + /home/logan/git/GBA-Dash/source/../include/types.h \ + /home/logan/git/GBA-Dash/source/../include/memmap.h \ + /home/logan/git/GBA-Dash/source/../include/memdef.h \ + /home/logan/git/GBA-Dash/source/../include/input.h +/home/logan/git/GBA-Dash/source/../include/toolbox.h: +/home/logan/git/GBA-Dash/source/../include/types.h: +/home/logan/git/GBA-Dash/source/../include/memmap.h: +/home/logan/git/GBA-Dash/source/../include/memdef.h: +/home/logan/git/GBA-Dash/source/../include/input.h: diff --git a/build/toolbox.o b/build/toolbox.o new file mode 100644 index 0000000..9bcd4eb Binary files /dev/null and b/build/toolbox.o differ diff --git a/include/camera.h b/include/camera.h new file mode 100644 index 0000000..7984763 --- /dev/null +++ b/include/camera.h @@ -0,0 +1,14 @@ +#include "types.h" + +#ifndef CAMERA_H +#define CAMERA_H + +typedef struct CAMERA { + int x; + int y; +} ALIGN(4) CAMERA; + +CAMERA createCamera(); +void applyCameraShift(); + +#endif // CAMERA_H diff --git a/include/map.h b/include/map.h index 9a8a264..1bef313 100644 --- a/include/map.h +++ b/include/map.h @@ -3,6 +3,6 @@ #ifndef MAP_H #define MAP_H -extern const int map1[7][20]; +extern const int map1[9][20]; #endif // MAP_H diff --git a/include/playerObject.h b/include/playerObject.h index 7feb894..acfadbc 100644 --- a/include/playerObject.h +++ b/include/playerObject.h @@ -4,6 +4,7 @@ #include "toolbox.h" #include "fixed.h" #include "sinlut.h" +#include "camera.h" #ifndef PLAYEROBJECT_H #define PLAYEROBJECT_H @@ -11,6 +12,7 @@ #define GRAVITY 0.75 typedef struct playerObject { + CAMERA camera; VELOCITY vel; POINT pt; u32 rotation; // Rotation amount diff --git a/source/.toolbox.c.swp b/source/.toolbox.c.swp deleted file mode 100644 index 6d0cad3..0000000 Binary files a/source/.toolbox.c.swp and /dev/null differ diff --git a/source/camera.c b/source/camera.c new file mode 100644 index 0000000..c905d74 --- /dev/null +++ b/source/camera.c @@ -0,0 +1,15 @@ +#include "../include/camera.h" + +CAMERA createCamera (int x, int y) { + // Create camera from a point + CAMERA temp; + temp.x = x; + temp.y = y; + return temp; +} + +void applyCameraShift (CAMERA *camera, int *x, int *y) { + // Apply camera shift to a coordinate + *x = *x - camera->x; + *y = *y - camera->y; +} diff --git a/source/main.c b/source/main.c index eca5ea2..589db1a 100644 --- a/source/main.c +++ b/source/main.c @@ -8,23 +8,27 @@ #include "../include/velocity.h" #include "../include/playerObject.h" #include "../include/map.h" +#include "../include/camera.h" #include "../sprites/player.h" #include "../sprites/block.h" +#include "../sprites/spike.h" OBJ_ATTR obj_buffer[128]; OBJ_AFFINE *obj_aff_buffer= (OBJ_AFFINE*)obj_buffer; // Object affine-buffer int main() { + memcpy(pal_obj_mem, blockPal, blockPalLen); memcpy(&tile_mem[4][0], playerTiles, playerTilesLen); - memcpy(pal_obj_mem, playerPal, playerPalLen); memcpy(&tile_mem[4][4], blockTiles, blockTilesLen); + memcpy(&tile_mem[4][8], spikeTiles, spikeTilesLen); oam_init(obj_buffer, 128); REG_DISPCNT= DCNT_OBJ | DCNT_OBJ_1D; playerObject player = createPlayerObject(&obj_buffer[0], &obj_aff_buffer[0],0, 0); + player.camera = createCamera(10, 0); while(1) { vid_vsync(); @@ -34,22 +38,34 @@ int main() { player.vel.dy -= 9 << FIX_SHIFT; } - - updatePlayer(&player, 120); + updatePlayer(&player, 80); obj_affine_copy(obj_aff_mem, player.affine, 1); obj_copy(obj_mem, player.obj, 1); - OBJ_ATTR tileObject; - for (int i = 0; i < 7; i++) { - for (int j = 0; j < 12; j++){ - obj_set_attr(&tileObject, - ATTR0_SQUARE, - ATTR1_SIZE_16, - ATTR2_PALBANK(0) | 4 - ); - obj_set_pos(&tileObject, (j * 16), (i * 16)); - if (map1[i][j]) { - obj_copy(obj_mem + (17 * i + j) + 1, &tileObject, 1); + OBJ_ATTR blockObject, spikeObject; + obj_set_attr(&blockObject, + ATTR0_SQUARE, + ATTR1_SIZE_16, + ATTR2_PALBANK(0) | 4 + ); + obj_set_attr(&spikeObject, + ATTR0_SQUARE, + ATTR1_SIZE_16, + ATTR2_PALBANK(0) | 8 + ); + int x, y; + for (int i = 0; i < 9; i++) { + for (int j = 0; j < 15; j++){ + x = (j * 16); + y = (i * 16); + applyCameraShift(&player.camera, &x, &y); + if (map1[i][j] == 1) { + obj_set_pos(&blockObject, x, y); + obj_copy(obj_mem + (17 * i + j) + 1, &blockObject, 1); + } + else if (map1[i][j] == 2) { + obj_set_pos(&spikeObject, x, y); + obj_copy(obj_mem + (17 * i + j) + 1, &spikeObject, 1); } } } diff --git a/source/map.c b/source/map.c index 41048d0..88bf41c 100644 --- a/source/map.c +++ b/source/map.c @@ -1,21 +1,12 @@ #include "../include/map.h" -/* -const int map1[7][20] = { +const int map1[9][20] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, -}; -*/ -const int map1[7][20] = { - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, }; diff --git a/source/playerObject.c b/source/playerObject.c index 3d7ec05..98135a2 100644 --- a/source/playerObject.c +++ b/source/playerObject.c @@ -3,7 +3,7 @@ void initializePlayerObject (playerObject *object) { // Initialize the point and velocity of a player object object->vel = createVelocity(0, 0); - object->pt = createPoint(20 << FIX_SHIFT, 100 << FIX_SHIFT); + object->pt = createPoint(15 << FIX_SHIFT, 0 << FIX_SHIFT); } playerObject createPlayerObject (OBJ_ATTR *obj_buffer, OBJ_AFFINE *affine_buffer, int pallete_bank, int tile_id) { @@ -13,15 +13,15 @@ playerObject createPlayerObject (OBJ_ATTR *obj_buffer, OBJ_AFFINE *affine_buffer initializePlayerObject(&temp); temp.rotation = 0; temp.obj = obj_buffer; - temp.affine = affine_buffer; + temp.affine = affine_buffer; temp.pallete_bank = pallete_bank; temp.tile_id = tile_id; temp.isJumping = 0; obj_set_attr(temp.obj, - ATTR0_SQUARE | ATTR0_AFF | ATTR0_AFF_DBL_BIT, // Set attribute 1 to be a square using affine - ATTR1_SIZE_16 | ATTR1_AFF_ID(0), // Set size to 16 x 16 - ATTR2_PALBANK(pallete_bank) | tile_id // Which pallete to use, as we are in - // 16-color mode + ATTR0_SQUARE | ATTR0_AFF | ATTR0_AFF_DBL_BIT, // Set attribute 1 to be a square using affine and double size + ATTR1_SIZE_16 | ATTR1_AFF_ID(0), // Set size to 16 x 16 + ATTR2_PALBANK(pallete_bank) | tile_id // Which pallete to use, as we are in + // 16-color mode ); obj_set_pos(temp.obj, temp.pt.x >> FIX_SHIFT, temp.pt.y >> FIX_SHIFT); return temp; @@ -50,28 +50,27 @@ void rotatePlayer (playerObject *object) { object->affine->pc = sinAlpha; object->affine->pd = cosAlpha; } -u32 roundToNearest90Degrees(u32 rotation) { +void rotateToNearest90Degrees(playerObject *object) { // Round a rotation to the nearest 90 degree equivalent of "binary radians" // (Where 2pi = 0xFFFF and 0pi = 0) + u32 rotation = object->rotation; u32 twoPi = 0xFFFF << 4; u32 pi = 0x8000 << 4; u32 halfPi = 0x4000 << 4; u32 quarterPi = 0x2000 << 4; - if (rotation > quarterPi && rotation < 3 * quarterPi) { - return halfPi; + object->rotation = halfPi; } else if (rotation > 3 * quarterPi && rotation < (pi + quarterPi)) { - return pi; + object->rotation = pi; } else if (rotation > (pi + quarterPi) && rotation < (pi + 3*quarterPi)) { - return pi + halfPi; + object->rotation = pi + halfPi; } else if (rotation < quarterPi || rotation > (twoPi - quarterPi)) { - return 1; + object->rotation = 0; } - return 1; } void updatePlayer (playerObject *object, u32 GROUND_LEVEL) { @@ -82,7 +81,7 @@ void updatePlayer (playerObject *object, u32 GROUND_LEVEL) { object->isJumping = 0; object->pt.y = GROUND_LEVEL << FIX_SHIFT; // Don't go through ground object->vel.dy = 0; - object->rotation = roundToNearest90Degrees(object->rotation); + rotateToNearest90Degrees(object); } else { object->isJumping = 1; @@ -90,9 +89,9 @@ void updatePlayer (playerObject *object, u32 GROUND_LEVEL) { object->rotation += 100 << 8; } rotatePlayer(object); - // Update the player object's attributes' position - obj_set_pos(object->obj, object->pt.x >> FIX_SHIFT, object->pt.y >> FIX_SHIFT); + // Update the player object's attributes' position and subtract 8 pixels in + // both axes because the sprite is using the DBL_BIT for attr0 + obj_set_pos(object->obj, (object->pt.x >> FIX_SHIFT) - 8, (object->pt.y >> FIX_SHIFT) - 9); // Update the player's second attribute (tile and pallete bank) object->obj->attr2 = ATTR2_BUILD(object->tile_id, object->pallete_bank, 0); } - diff --git a/sprites/block.c b/sprites/block.c index dcffdd6..86c08a2 100644 --- a/sprites/block.c +++ b/sprites/block.c @@ -5,7 +5,7 @@ // + 4 tiles not compressed // Total size: 512 + 128 = 640 // -// Time-stamp: 2020-08-11, 14:57:03 +// Time-stamp: 2020-08-11, 20:45:09 // Exported by Cearn's Usenti v1.7.6 // (comments, kudos, flames to "daytshen@hotmail.com") // @@ -52,13 +52,13 @@ const unsigned short blockPal[256]= const unsigned short blockTiles[64]= { - 0x1111,0x1111,0x0001,0x0000,0x1101,0x0001,0x0101,0x0000, - 0x0101,0x0000,0x0001,0x0000,0x0001,0x0000,0x0001,0x0000, - 0x1111,0x1111,0x0000,0x1000,0x0000,0x1000,0x0000,0x1000, - 0x0000,0x1000,0x0000,0x1000,0x0000,0x1000,0x0000,0x1000, - 0x0001,0x0000,0x0001,0x0000,0x0001,0x0000,0x0001,0x0000, - 0x0001,0x0000,0x0001,0x0000,0x0001,0x0000,0x1111,0x1111, - 0x0000,0x1000,0x0000,0x1000,0x0000,0x1000,0x0000,0x1000, - 0x0000,0x1010,0x0000,0x1011,0x0000,0x1000,0x1111,0x1111, + 0x7777,0x7777,0x0007,0x0000,0xFF07,0x000F,0x0F07,0x0000, + 0x0F07,0x0000,0x0007,0x0000,0x0007,0x0000,0x0007,0x0000, + 0x7777,0x7777,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000, + 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000, + 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x0007,0x0000, + 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x7777,0x7777, + 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000, + 0x0000,0x70F0,0x0000,0x70FF,0x0000,0x7000,0x7777,0x7777, }; diff --git a/sprites/block.h b/sprites/block.h index 2a1fbec..e96a965 100644 --- a/sprites/block.h +++ b/sprites/block.h @@ -1,11 +1,11 @@ //====================================================================== // -// block, 16x16@4, +// block, 16x16@4, // + palette 256 entries, not compressed // + 4 tiles not compressed // Total size: 512 + 128 = 640 // -// Time-stamp: 2020-08-11, 14:57:03 +// Time-stamp: 2020-08-11, 20:45:09 // Exported by Cearn's Usenti v1.7.6 // (comments, kudos, flames to "daytshen@hotmail.com") // @@ -21,3 +21,4 @@ extern const unsigned short blockPal[256]; extern const unsigned short blockTiles[64]; #endif // __BLOCK__ + diff --git a/sprites/player.c b/sprites/player.c index 1dafa3a..f196c62 100644 --- a/sprites/player.c +++ b/sprites/player.c @@ -5,7 +5,7 @@ // + 4 tiles not compressed // Total size: 512 + 128 = 640 // -// Time-stamp: 2020-08-07, 16:34:01 +// Time-stamp: 2020-08-11, 20:48:56 // Exported by Cearn's Usenti v1.7.6 // (comments, kudos, flames to "daytshen@hotmail.com") // @@ -13,7 +13,25 @@ const unsigned short playerPal[256]= { - 0x0000,0x031F,0x7C00,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0010,0x0200,0x0210,0x4000,0x4010,0x4200,0x6318, + 0x4210,0x001F,0x03E0,0x03FF,0x7C00,0x7C1F,0x7FE0,0x7FFF, + 0x0004,0x0007,0x000B,0x000F,0x0013,0x0017,0x001B,0x001F, + 0x0080,0x00E0,0x0160,0x01E0,0x0260,0x02E0,0x0360,0x03E0, + 0x0084,0x00E7,0x016B,0x01EF,0x0273,0x02F7,0x037B,0x03FF, + 0x1000,0x1C00,0x2C00,0x3C00,0x4C00,0x5C00,0x6C00,0x7C00, + 0x1004,0x1C07,0x2C0B,0x3C0F,0x4C13,0x5C17,0x6C1B,0x7C1F, + 0x1080,0x1CE0,0x2D60,0x3DE0,0x4E60,0x5EE0,0x6F60,0x7FE0, + + 0x0842,0x0C63,0x14A5,0x1CE7,0x2529,0x2D6B,0x35AD,0x3DEF, + 0x4631,0x4E73,0x56B5,0x5EF7,0x6739,0x6F7B,0x77BD,0x7FFF, + 0x001F,0x007F,0x00FF,0x017F,0x01FF,0x027F,0x02FF,0x037F, + 0x03FF,0x03FC,0x03F8,0x03F4,0x03F0,0x03EC,0x03E8,0x03E4, + 0x03E0,0x0FE0,0x1FE0,0x2FE0,0x3FE0,0x4FE0,0x5FE0,0x6FE0, + 0x7FE0,0x7F80,0x7F00,0x7E80,0x7E00,0x7D80,0x7D00,0x7C80, + 0x7C00,0x7C03,0x7C07,0x7C0B,0x7C0F,0x7C13,0x7C17,0x7C1B, + 0x7C1F,0x701F,0x601F,0x501F,0x401F,0x301F,0x201F,0x101F, + + 0x001F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, @@ -26,39 +44,21 @@ const unsigned short playerPal[256]= 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, - 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0421,0x0842,0x0C63,0x1084,0x14A5,0x18C6,0x1CE7, + 0x2108,0x2529,0x294A,0x2D6B,0x318C,0x35AD,0x39CE,0x3DEF, + 0x4210,0x4631,0x4A52,0x4E73,0x5294,0x56B5,0x5AD6,0x5EF7, + 0x6318,0x6739,0x6B5A,0x6F7B,0x739C,0x77BD,0x7BDE,0x7FFF, }; const unsigned short playerTiles[64]= { - 0x0005,0x0000,0x1110,0x1111,0x1110,0x1111,0x1110,0x1111, - 0x1110,0x1222,0x1110,0x1222,0x1110,0x1222,0x1110,0x1111, - 0x0000,0x0000,0x1111,0x0111,0x1111,0x0111,0x1111,0x0111, - 0x2221,0x0111,0x2221,0x0111,0x2221,0x0111,0x1111,0x0111, - 0x1110,0x1111,0x1110,0x1111,0x1110,0x2222,0x1110,0x2221, - 0x1110,0x1111,0x1110,0x1111,0x1110,0x1111,0x0000,0x0000, - 0x1111,0x0111,0x1111,0x0111,0x2222,0x0111,0x1222,0x0111, - 0x1111,0x0111,0x1111,0x0111,0x1111,0x0111,0x0000,0x0000, + 0x7777,0x7777,0x0007,0x0000,0x0007,0x0000,0x0007,0x0000, + 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0xD007,0x0000, + 0x7777,0x7777,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000, + 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x0000,0x700D, + 0x7707,0x0007,0x0007,0x0000,0x0007,0x0600,0x0007,0x6000, + 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x7777,0x7777, + 0x7000,0x7077,0x0000,0x7000,0x0060,0x7000,0x0006,0x7000, + 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x7777,0x7777, }; diff --git a/sprites/player.h b/sprites/player.h index 65f840a..8346852 100644 --- a/sprites/player.h +++ b/sprites/player.h @@ -5,7 +5,7 @@ // + 4 tiles not compressed // Total size: 512 + 128 = 640 // -// Time-stamp: 2020-08-07, 16:34:01 +// Time-stamp: 2020-08-11, 20:48:56 // Exported by Cearn's Usenti v1.7.6 // (comments, kudos, flames to "daytshen@hotmail.com") // diff --git a/sprites/spike.c b/sprites/spike.c new file mode 100644 index 0000000..b40f936 --- /dev/null +++ b/sprites/spike.c @@ -0,0 +1,64 @@ +//====================================================================== +// +// spike, 16x16@4, +// + palette 256 entries, not compressed +// + 4 tiles not compressed +// Total size: 512 + 128 = 640 +// +// Time-stamp: 2020-08-11, 20:50:16 +// Exported by Cearn's Usenti v1.7.6 +// (comments, kudos, flames to "daytshen@hotmail.com") +// +//====================================================================== + +const unsigned short spikePal[256]= +{ + 0x0000,0x0010,0x0200,0x0210,0x4000,0x4010,0x4200,0x6318, + 0x4210,0x001F,0x03E0,0x03FF,0x7C00,0x7C1F,0x7FE0,0x7FFF, + 0x0004,0x0007,0x000B,0x000F,0x0013,0x0017,0x001B,0x001F, + 0x0080,0x00E0,0x0160,0x01E0,0x0260,0x02E0,0x0360,0x03E0, + 0x0084,0x00E7,0x016B,0x01EF,0x0273,0x02F7,0x037B,0x03FF, + 0x1000,0x1C00,0x2C00,0x3C00,0x4C00,0x5C00,0x6C00,0x7C00, + 0x1004,0x1C07,0x2C0B,0x3C0F,0x4C13,0x5C17,0x6C1B,0x7C1F, + 0x1080,0x1CE0,0x2D60,0x3DE0,0x4E60,0x5EE0,0x6F60,0x7FE0, + + 0x0842,0x0C63,0x14A5,0x1CE7,0x2529,0x2D6B,0x35AD,0x3DEF, + 0x4631,0x4E73,0x56B5,0x5EF7,0x6739,0x6F7B,0x77BD,0x7FFF, + 0x001F,0x007F,0x00FF,0x017F,0x01FF,0x027F,0x02FF,0x037F, + 0x03FF,0x03FC,0x03F8,0x03F4,0x03F0,0x03EC,0x03E8,0x03E4, + 0x03E0,0x0FE0,0x1FE0,0x2FE0,0x3FE0,0x4FE0,0x5FE0,0x6FE0, + 0x7FE0,0x7F80,0x7F00,0x7E80,0x7E00,0x7D80,0x7D00,0x7C80, + 0x7C00,0x7C03,0x7C07,0x7C0B,0x7C0F,0x7C13,0x7C17,0x7C1B, + 0x7C1F,0x701F,0x601F,0x501F,0x401F,0x301F,0x201F,0x101F, + + 0x001F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0421,0x0842,0x0C63,0x1084,0x14A5,0x18C6,0x1CE7, + 0x2108,0x2529,0x294A,0x2D6B,0x318C,0x35AD,0x39CE,0x3DEF, + 0x4210,0x4631,0x4A52,0x4E73,0x5294,0x56B5,0x5AD6,0x5EF7, + 0x6318,0x6739,0x6B5A,0x6F7B,0x739C,0x77BD,0x7BDE,0x7FFF, +}; + +const unsigned short spikeTiles[64]= +{ + 0x0000,0x7000,0x0000,0x7000,0x0000,0x0700,0x0000,0x0700, + 0x0000,0xF070,0x0000,0xF070,0x0000,0x0F07,0x0000,0x0F07, + 0x0007,0x0000,0x0007,0x0000,0x0070,0x0000,0x0070,0x0000, + 0x0700,0x0000,0x0700,0x0000,0x7000,0x0000,0x7000,0x0000, + 0x7000,0x0000,0x7000,0x00F0,0x0700,0x0000,0x0700,0x0000, + 0x0070,0x0000,0x0070,0x0000,0x0007,0x0000,0x7777,0x7777, + 0x0000,0x0007,0x0000,0x0007,0x0000,0x0070,0x0000,0x0070, + 0x0000,0x0700,0x0000,0x0700,0x0000,0x7000,0x7777,0x7777, +}; + diff --git a/sprites/spike.h b/sprites/spike.h new file mode 100644 index 0000000..504d56a --- /dev/null +++ b/sprites/spike.h @@ -0,0 +1,24 @@ +//====================================================================== +// +// spike, 16x16@4, +// + palette 256 entries, not compressed +// + 4 tiles not compressed +// Total size: 512 + 128 = 640 +// +// Time-stamp: 2020-08-11, 20:50:16 +// Exported by Cearn's Usenti v1.7.6 +// (comments, kudos, flames to "daytshen@hotmail.com") +// +//====================================================================== + +#ifndef __SPIKE__ +#define __SPIKE__ + +#define spikePalLen 512 +extern const unsigned short spikePal[256]; + +#define spikeTilesLen 128 +extern const unsigned short spikeTiles[64]; + +#endif // __SPIKE__ +