summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimponic <loganthebean222@gmail.com>2020-08-11 22:13:56 -0600
committerSimponic <loganthebean222@gmail.com>2020-08-11 22:13:56 -0600
commit723f879f85f25c2d466146e08261e0ae993c72b6 (patch)
tree185f367c712554f92c14b0074503ff0667e098c3
parente84e232f8d003f3cf3340517d8bf6b65ba430143 (diff)
downloadgeometry-dash-gba-723f879f85f25c2d466146e08261e0ae993c72b6.tar.gz
geometry-dash-gba-723f879f85f25c2d466146e08261e0ae993c72b6.zip
Added basic camera controls
-rwxr-xr-xGBA-Dash.elfbin0 -> 221508 bytes
-rwxr-xr-xGBA-Dash.gbabin0 -> 5832 bytes
-rw-r--r--GBA-Dash.sav0
-rw-r--r--build/GBA-Dash.map611
-rw-r--r--build/block.d1
-rw-r--r--build/block.obin0 -> 2504 bytes
-rw-r--r--build/camera.d5
-rw-r--r--build/camera.obin0 -> 3180 bytes
-rw-r--r--build/main.d47
-rw-r--r--build/main.obin0 -> 9956 bytes
-rw-r--r--build/map.d5
-rw-r--r--build/map.obin0 -> 2724 bytes
-rw-r--r--build/player.d1
-rw-r--r--build/player.obin0 -> 2512 bytes
-rw-r--r--build/playerObject.d23
-rw-r--r--build/playerObject.obin0 -> 12724 bytes
-rw-r--r--build/sinlut.d5
-rw-r--r--build/sinlut.obin0 -> 3044 bytes
-rw-r--r--build/spike.d1
-rw-r--r--build/spike.obin0 -> 2504 bytes
-rw-r--r--build/toolbox.d11
-rw-r--r--build/toolbox.obin0 -> 6096 bytes
-rw-r--r--include/camera.h14
-rw-r--r--include/map.h2
-rw-r--r--include/playerObject.h2
-rw-r--r--source/.toolbox.c.swpbin12288 -> 0 bytes
-rw-r--r--source/camera.c15
-rw-r--r--source/main.c44
-rw-r--r--source/map.c15
-rw-r--r--source/playerObject.c33
-rw-r--r--sprites/block.c18
-rw-r--r--sprites/block.h5
-rw-r--r--sprites/player.c60
-rw-r--r--sprites/player.h2
-rw-r--r--sprites/spike.c64
-rw-r--r--sprites/spike.h24
36 files changed, 922 insertions, 86 deletions
diff --git a/GBA-Dash.elf b/GBA-Dash.elf
new file mode 100755
index 0000000..0e01822
--- /dev/null
+++ b/GBA-Dash.elf
Binary files differ
diff --git a/GBA-Dash.gba b/GBA-Dash.gba
new file mode 100755
index 0000000..8eb6649
--- /dev/null
+++ b/GBA-Dash.gba
Binary files differ
diff --git a/GBA-Dash.sav b/GBA-Dash.sav
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/GBA-Dash.sav
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
--- /dev/null
+++ b/build/block.o
Binary files 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
--- /dev/null
+++ b/build/camera.o
Binary files 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
--- /dev/null
+++ b/build/main.o
Binary files 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
--- /dev/null
+++ b/build/map.o
Binary files 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
--- /dev/null
+++ b/build/player.o
Binary files 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
--- /dev/null
+++ b/build/playerObject.o
Binary files 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
--- /dev/null
+++ b/build/sinlut.o
Binary files 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
--- /dev/null
+++ b/build/spike.o
Binary files 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
--- /dev/null
+++ b/build/toolbox.o
Binary files 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
--- a/source/.toolbox.c.swp
+++ /dev/null
Binary files 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,25 +13,25 @@
const unsigned short playerPal[256]=
{
- 0x0000,0x031F,0x7C00,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,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,
- 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,
+ 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,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
+ 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,
@@ -44,21 +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,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__
+