Added basic camera controls

This commit is contained in:
Simponic 2020-08-11 22:13:56 -06:00
parent e84e232f8d
commit 723f879f85
36 changed files with 924 additions and 88 deletions

BIN
GBA-Dash.elf Executable file

Binary file not shown.

BIN
GBA-Dash.gba Executable file

Binary file not shown.

0
GBA-Dash.sav Normal file
View File

611
build/GBA-Dash.map Normal file
View File

@ -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

1
build/block.d Normal file
View File

@ -0,0 +1 @@
block.o: /home/logan/git/GBA-Dash/sprites/block.c

BIN
build/block.o Normal file

Binary file not shown.

5
build/camera.d Normal file
View File

@ -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:

BIN
build/camera.o Normal file

Binary file not shown.

47
build/main.d Normal file
View File

@ -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:

BIN
build/main.o Normal file

Binary file not shown.

5
build/map.d Normal file
View File

@ -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:

BIN
build/map.o Normal file

Binary file not shown.

1
build/player.d Normal file
View File

@ -0,0 +1 @@
player.o: /home/logan/git/GBA-Dash/sprites/player.c

BIN
build/player.o Normal file

Binary file not shown.

23
build/playerObject.d Normal file
View File

@ -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:

BIN
build/playerObject.o Normal file

Binary file not shown.

5
build/sinlut.d Normal file
View File

@ -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:

BIN
build/sinlut.o Normal file

Binary file not shown.

1
build/spike.d Normal file
View File

@ -0,0 +1 @@
spike.o: /home/logan/git/GBA-Dash/sprites/spike.c

BIN
build/spike.o Normal file

Binary file not shown.

11
build/toolbox.d Normal file
View File

@ -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:

BIN
build/toolbox.o Normal file

Binary file not shown.

14
include/camera.h Normal file
View File

@ -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

View File

@ -3,6 +3,6 @@
#ifndef MAP_H #ifndef MAP_H
#define MAP_H #define MAP_H
extern const int map1[7][20]; extern const int map1[9][20];
#endif // MAP_H #endif // MAP_H

View File

@ -4,6 +4,7 @@
#include "toolbox.h" #include "toolbox.h"
#include "fixed.h" #include "fixed.h"
#include "sinlut.h" #include "sinlut.h"
#include "camera.h"
#ifndef PLAYEROBJECT_H #ifndef PLAYEROBJECT_H
#define PLAYEROBJECT_H #define PLAYEROBJECT_H
@ -11,6 +12,7 @@
#define GRAVITY 0.75 #define GRAVITY 0.75
typedef struct playerObject { typedef struct playerObject {
CAMERA camera;
VELOCITY vel; VELOCITY vel;
POINT pt; POINT pt;
u32 rotation; // Rotation amount u32 rotation; // Rotation amount

Binary file not shown.

15
source/camera.c Normal file
View File

@ -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;
}

View File

@ -8,23 +8,27 @@
#include "../include/velocity.h" #include "../include/velocity.h"
#include "../include/playerObject.h" #include "../include/playerObject.h"
#include "../include/map.h" #include "../include/map.h"
#include "../include/camera.h"
#include "../sprites/player.h" #include "../sprites/player.h"
#include "../sprites/block.h" #include "../sprites/block.h"
#include "../sprites/spike.h"
OBJ_ATTR obj_buffer[128]; OBJ_ATTR obj_buffer[128];
OBJ_AFFINE *obj_aff_buffer= (OBJ_AFFINE*)obj_buffer; // Object affine-buffer OBJ_AFFINE *obj_aff_buffer= (OBJ_AFFINE*)obj_buffer; // Object affine-buffer
int main() { int main() {
memcpy(pal_obj_mem, blockPal, blockPalLen);
memcpy(&tile_mem[4][0], playerTiles, playerTilesLen); memcpy(&tile_mem[4][0], playerTiles, playerTilesLen);
memcpy(pal_obj_mem, playerPal, playerPalLen);
memcpy(&tile_mem[4][4], blockTiles, blockTilesLen); memcpy(&tile_mem[4][4], blockTiles, blockTilesLen);
memcpy(&tile_mem[4][8], spikeTiles, spikeTilesLen);
oam_init(obj_buffer, 128); oam_init(obj_buffer, 128);
REG_DISPCNT= DCNT_OBJ | DCNT_OBJ_1D; REG_DISPCNT= DCNT_OBJ | DCNT_OBJ_1D;
playerObject player = createPlayerObject(&obj_buffer[0], &obj_aff_buffer[0],0, 0); playerObject player = createPlayerObject(&obj_buffer[0], &obj_aff_buffer[0],0, 0);
player.camera = createCamera(10, 0);
while(1) { while(1) {
vid_vsync(); vid_vsync();
@ -34,22 +38,34 @@ int main() {
player.vel.dy -= 9 << FIX_SHIFT; player.vel.dy -= 9 << FIX_SHIFT;
} }
updatePlayer(&player, 80);
updatePlayer(&player, 120);
obj_affine_copy(obj_aff_mem, player.affine, 1); obj_affine_copy(obj_aff_mem, player.affine, 1);
obj_copy(obj_mem, player.obj, 1); obj_copy(obj_mem, player.obj, 1);
OBJ_ATTR tileObject; OBJ_ATTR blockObject, spikeObject;
for (int i = 0; i < 7; i++) { obj_set_attr(&blockObject,
for (int j = 0; j < 12; j++){ ATTR0_SQUARE,
obj_set_attr(&tileObject, ATTR1_SIZE_16,
ATTR0_SQUARE, ATTR2_PALBANK(0) | 4
ATTR1_SIZE_16, );
ATTR2_PALBANK(0) | 4 obj_set_attr(&spikeObject,
); ATTR0_SQUARE,
obj_set_pos(&tileObject, (j * 16), (i * 16)); ATTR1_SIZE_16,
if (map1[i][j]) { ATTR2_PALBANK(0) | 8
obj_copy(obj_mem + (17 * i + j) + 1, &tileObject, 1); );
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);
} }
} }
} }

View File

@ -1,21 +1,12 @@
#include "../include/map.h" #include "../include/map.h"
/* const int map1[9][20] = {
const int map1[7][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},
{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}, {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},
*/
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},
{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},
}; };

View File

@ -3,7 +3,7 @@
void initializePlayerObject (playerObject *object) { void initializePlayerObject (playerObject *object) {
// Initialize the point and velocity of a player object // Initialize the point and velocity of a player object
object->vel = createVelocity(0, 0); 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) { playerObject createPlayerObject (OBJ_ATTR *obj_buffer, OBJ_AFFINE *affine_buffer, int pallete_bank, int tile_id) {
@ -18,10 +18,10 @@ playerObject createPlayerObject (OBJ_ATTR *obj_buffer, OBJ_AFFINE *affine_buffer
temp.tile_id = tile_id; temp.tile_id = tile_id;
temp.isJumping = 0; temp.isJumping = 0;
obj_set_attr(temp.obj, obj_set_attr(temp.obj,
ATTR0_SQUARE | ATTR0_AFF | ATTR0_AFF_DBL_BIT, // Set attribute 1 to be a square using affine 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 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 ATTR2_PALBANK(pallete_bank) | tile_id // Which pallete to use, as we are in
// 16-color mode // 16-color mode
); );
obj_set_pos(temp.obj, temp.pt.x >> FIX_SHIFT, temp.pt.y >> FIX_SHIFT); obj_set_pos(temp.obj, temp.pt.x >> FIX_SHIFT, temp.pt.y >> FIX_SHIFT);
return temp; return temp;
@ -50,28 +50,27 @@ void rotatePlayer (playerObject *object) {
object->affine->pc = sinAlpha; object->affine->pd = cosAlpha; 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" // Round a rotation to the nearest 90 degree equivalent of "binary radians"
// (Where 2pi = 0xFFFF and 0pi = 0) // (Where 2pi = 0xFFFF and 0pi = 0)
u32 rotation = object->rotation;
u32 twoPi = 0xFFFF << 4; u32 twoPi = 0xFFFF << 4;
u32 pi = 0x8000 << 4; u32 pi = 0x8000 << 4;
u32 halfPi = 0x4000 << 4; u32 halfPi = 0x4000 << 4;
u32 quarterPi = 0x2000 << 4; u32 quarterPi = 0x2000 << 4;
if (rotation > quarterPi && rotation < 3 * quarterPi) { if (rotation > quarterPi && rotation < 3 * quarterPi) {
return halfPi; object->rotation = halfPi;
} }
else if (rotation > 3 * quarterPi && rotation < (pi + quarterPi)) { else if (rotation > 3 * quarterPi && rotation < (pi + quarterPi)) {
return pi; object->rotation = pi;
} }
else if (rotation > (pi + quarterPi) && rotation < (pi + 3*quarterPi)) { else if (rotation > (pi + quarterPi) && rotation < (pi + 3*quarterPi)) {
return pi + halfPi; object->rotation = pi + halfPi;
} }
else if (rotation < quarterPi || rotation > (twoPi - quarterPi)) { else if (rotation < quarterPi || rotation > (twoPi - quarterPi)) {
return 1; object->rotation = 0;
} }
return 1;
} }
void updatePlayer (playerObject *object, u32 GROUND_LEVEL) { void updatePlayer (playerObject *object, u32 GROUND_LEVEL) {
@ -82,7 +81,7 @@ void updatePlayer (playerObject *object, u32 GROUND_LEVEL) {
object->isJumping = 0; object->isJumping = 0;
object->pt.y = GROUND_LEVEL << FIX_SHIFT; // Don't go through ground object->pt.y = GROUND_LEVEL << FIX_SHIFT; // Don't go through ground
object->vel.dy = 0; object->vel.dy = 0;
object->rotation = roundToNearest90Degrees(object->rotation); rotateToNearest90Degrees(object);
} }
else { else {
object->isJumping = 1; object->isJumping = 1;
@ -90,9 +89,9 @@ void updatePlayer (playerObject *object, u32 GROUND_LEVEL) {
object->rotation += 100 << 8; object->rotation += 100 << 8;
} }
rotatePlayer(object); rotatePlayer(object);
// Update the player object's attributes' position // Update the player object's attributes' position and subtract 8 pixels in
obj_set_pos(object->obj, object->pt.x >> FIX_SHIFT, object->pt.y >> FIX_SHIFT); // 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) // Update the player's second attribute (tile and pallete bank)
object->obj->attr2 = ATTR2_BUILD(object->tile_id, object->pallete_bank, 0); object->obj->attr2 = ATTR2_BUILD(object->tile_id, object->pallete_bank, 0);
} }

View File

@ -5,7 +5,7 @@
// + 4 tiles not compressed // + 4 tiles not compressed
// Total size: 512 + 128 = 640 // 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 // Exported by Cearn's Usenti v1.7.6
// (comments, kudos, flames to "daytshen@hotmail.com") // (comments, kudos, flames to "daytshen@hotmail.com")
// //
@ -52,13 +52,13 @@ const unsigned short blockPal[256]=
const unsigned short blockTiles[64]= const unsigned short blockTiles[64]=
{ {
0x1111,0x1111,0x0001,0x0000,0x1101,0x0001,0x0101,0x0000, 0x7777,0x7777,0x0007,0x0000,0xFF07,0x000F,0x0F07,0x0000,
0x0101,0x0000,0x0001,0x0000,0x0001,0x0000,0x0001,0x0000, 0x0F07,0x0000,0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,
0x1111,0x1111,0x0000,0x1000,0x0000,0x1000,0x0000,0x1000, 0x7777,0x7777,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,
0x0000,0x1000,0x0000,0x1000,0x0000,0x1000,0x0000,0x1000, 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,
0x0001,0x0000,0x0001,0x0000,0x0001,0x0000,0x0001,0x0000, 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,
0x0001,0x0000,0x0001,0x0000,0x0001,0x0000,0x1111,0x1111, 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x7777,0x7777,
0x0000,0x1000,0x0000,0x1000,0x0000,0x1000,0x0000,0x1000, 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,
0x0000,0x1010,0x0000,0x1011,0x0000,0x1000,0x1111,0x1111, 0x0000,0x70F0,0x0000,0x70FF,0x0000,0x7000,0x7777,0x7777,
}; };

View File

@ -5,7 +5,7 @@
// + 4 tiles not compressed // + 4 tiles not compressed
// Total size: 512 + 128 = 640 // 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 // Exported by Cearn's Usenti v1.7.6
// (comments, kudos, flames to "daytshen@hotmail.com") // (comments, kudos, flames to "daytshen@hotmail.com")
// //
@ -21,3 +21,4 @@ extern const unsigned short blockPal[256];
extern const unsigned short blockTiles[64]; extern const unsigned short blockTiles[64];
#endif // __BLOCK__ #endif // __BLOCK__

View File

@ -5,7 +5,7 @@
// + 4 tiles not compressed // + 4 tiles not compressed
// Total size: 512 + 128 = 640 // 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 // Exported by Cearn's Usenti v1.7.6
// (comments, kudos, flames to "daytshen@hotmail.com") // (comments, kudos, flames to "daytshen@hotmail.com")
// //
@ -13,7 +13,25 @@
const unsigned short playerPal[256]= 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, 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,0x0421,0x0842,0x0C63,0x1084,0x14A5,0x18C6,0x1CE7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x2108,0x2529,0x294A,0x2D6B,0x318C,0x35AD,0x39CE,0x3DEF,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x4210,0x4631,0x4A52,0x4E73,0x5294,0x56B5,0x5AD6,0x5EF7,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x6318,0x6739,0x6B5A,0x6F7B,0x739C,0x77BD,0x7BDE,0x7FFF,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
}; };
const unsigned short playerTiles[64]= const unsigned short playerTiles[64]=
{ {
0x0005,0x0000,0x1110,0x1111,0x1110,0x1111,0x1110,0x1111, 0x7777,0x7777,0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,
0x1110,0x1222,0x1110,0x1222,0x1110,0x1222,0x1110,0x1111, 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0xD007,0x0000,
0x0000,0x0000,0x1111,0x0111,0x1111,0x0111,0x1111,0x0111, 0x7777,0x7777,0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,
0x2221,0x0111,0x2221,0x0111,0x2221,0x0111,0x1111,0x0111, 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x0000,0x700D,
0x1110,0x1111,0x1110,0x1111,0x1110,0x2222,0x1110,0x2221, 0x7707,0x0007,0x0007,0x0000,0x0007,0x0600,0x0007,0x6000,
0x1110,0x1111,0x1110,0x1111,0x1110,0x1111,0x0000,0x0000, 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x7777,0x7777,
0x1111,0x0111,0x1111,0x0111,0x2222,0x0111,0x1222,0x0111, 0x7000,0x7077,0x0000,0x7000,0x0060,0x7000,0x0006,0x7000,
0x1111,0x0111,0x1111,0x0111,0x1111,0x0111,0x0000,0x0000, 0x0000,0x7000,0x0000,0x7000,0x0000,0x7000,0x7777,0x7777,
}; };

View File

@ -5,7 +5,7 @@
// + 4 tiles not compressed // + 4 tiles not compressed
// Total size: 512 + 128 = 640 // 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 // Exported by Cearn's Usenti v1.7.6
// (comments, kudos, flames to "daytshen@hotmail.com") // (comments, kudos, flames to "daytshen@hotmail.com")
// //

64
sprites/spike.c Normal file
View File

@ -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,
};

24
sprites/spike.h Normal file
View File

@ -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__