From be46574c3e6ef39c33e0f1ac64321377ed4f61ee Mon Sep 17 00:00:00 2001 From: tibz Date: Sat, 16 May 2026 15:39:52 -0500 Subject: [PATCH] updated title screen --- out/res/resources.d | 1 + out/res/resources.o | Bin 9452 -> 18716 bytes out/rom.bin | Bin 131072 -> 131072 bytes out/rom.out | Bin 100508 -> 110128 bytes out/src/Main.o | Bin 4140 -> 4140 bytes out/src/title_screen.o | Bin 14604 -> 17404 bytes out/symbol.txt | 631 ++++++++++++++++++++++++----------------- res/resources.h | 1 + res/resources.res | 3 +- src/title_screen.c | 100 ++++++- 10 files changed, 457 insertions(+), 279 deletions(-) diff --git a/out/res/resources.d b/out/res/resources.d index e935d6f..0860bd3 100644 --- a/out/res/resources.d +++ b/out/res/resources.d @@ -2,4 +2,5 @@ out/res/resources.o: res/resources.res \ C:/Users/ttibb/Dev/SGDK-Game/res/background1.png \ C:/Users/ttibb/Dev/SGDK-Game/res/btwade_bg1_1.png \ C:/Users/ttibb/Dev/SGDK-Game/res/btwade_bg2_1.png \ +C:/Users/ttibb/Dev/SGDK-Game/res/BTW-TitleSign-merged.png \ C:/Users/ttibb/Dev/SGDK-Game/res/Sprites/BTW-1.png \ No newline at end of file diff --git a/out/res/resources.o b/out/res/resources.o index 57ef5bad094ab7ed07d4c3b633e58f0ba48f8ef3..33ccd50bc365dcb99b08401cf526070db4702edf 100644 GIT binary patch delta 9657 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 delta 777 zcmYk4O(;ZB6vxlK@A()p86s&CkBw<49}6|hnHZ6Uv9Pev)R>f{NET`&$-;uU7LsHk zgawV*%FaTO6lGyyBQ}za4gd2#ntSVZ|G)FU@1FDSx!YOs*}G=R#?JMot6YWAAaV)Q zs8tU}P@RMhGUN?|s0ez=W30@ZL~_cB{e59Q%d_oY6N#ASKM@({4%_}a{C>^6`Zy@a(arqw1IobE|0gupoYNdTOm+0sfDjWG}Nv3B~ z(=(JDPY53?B)78hVEjkAxMi2eZ;wqI@l diff --git a/out/rom.bin b/out/rom.bin index 363b4cfede5c74bd6ad809a7796fc188bb94f3b0..fda0594b33bd2ffef64cc440760c8f528af4a84a 100644 GIT binary patch delta 13810 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 diff --git a/out/rom.out b/out/rom.out index 3e188e6b8e707019bf5338be68e55c5bd07e672a..e8bd1ed08030fde0c7220f29511f854a6d2f1167 100644 GIT binary patch delta 24805 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 delta 15444 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 diff --git a/out/src/Main.o b/out/src/Main.o index 2abad2cec67ebc294fa303b414764984edb66421..e74c42b4a4347bf1e4d2bac4cd1fd9e0a99b13a8 100644 GIT binary patch delta 396 zcmZ|KI|{=v3cE5*f@jUSLsxlkyDUa(#=1k_a@(*J8|m-h2M z%-74g@9ww0fd>_^*$Xgg1a2IpNKvvx)(~>?bYU!{5@(@AoRz1PIW;xTc^#20Q;RZ7 zP8x!a0Z1=5cq_0=_`a9 diff --git a/out/src/title_screen.o b/out/src/title_screen.o index bd6770273e78a3ebe7e1217734bd335a740dd46d..4a425b0102f904f5d1823ebec4c4763c08617b02 100644 GIT binary patch literal 17404 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 literal 14604 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 bZ6OI?AYV`c@Bf`VaWfF=;w;-0j`#ln2*B=5 diff --git a/out/symbol.txt b/out/symbol.txt index 81b4237..3465a16 100644 --- a/out/symbol.txt +++ b/out/symbol.txt @@ -4,11 +4,30 @@ 00000020 a bigTex1_palette_data_size 00000020 a font_pal_default_data_size 00000020 a sgdk_logo_palette_data_size +00000020 a titleSignSprite_palette_data_size 00000048 A _sdata +00000064 a titleSignSprite_animation0_frame5_tileset_data_size +00000064 a titleSignSprite_animation2_frame3_tileset_data_size +00000066 a titleSignSprite_animation0_frame0_tileset_data_size +00000068 a titleSignSprite_animation2_frame4_tileset_data_size +0000007a a titleSignSprite_animation2_frame2_tileset_data_size 00000080 a bg1_palette_data_size 00000080 a bgtest_palette_data_size +00000084 a titleSignSprite_animation2_frame1_tileset_data_size +00000096 a titleSignSprite_animation2_frame0_tileset_data_size +0000009c a titleSignSprite_animation2_frame5_tileset_data_size +000000a8 a titleSignSprite_animation1_frame1_tileset_data_size 000000ac A stop_xgm_size +000000b2 a titleSignSprite_animation1_frame5_tileset_data_size +000000ba a titleSignSprite_animation1_frame3_tileset_data_size +000000c4 a titleSignSprite_animation1_frame4_tileset_data_size +000000d2 a titleSignSprite_animation1_frame2_tileset_data_size +000000d6 a titleSignSprite_animation1_frame0_tileset_data_size +000000e8 a titleSignSprite_animation0_frame1_tileset_data_size +000000f4 a titleSignSprite_animation0_frame3_tileset_data_size +000000fa a titleSignSprite_animation0_frame2_tileset_data_size 00000100 T rom_header +0000011c a titleSignSprite_animation0_frame4_tileset_data_size 00000144 a bg1_tilemap_data_size 0000014c a fg1_tilemap_data_size 00000200 t _Entry_Point @@ -395,198 +414,273 @@ 00003b5c t VRAM_createRegion.constprop.0 00003bba t VRAM_alloc.constprop.0 00003c88 t SPR_defragVRAM -00003d32 t VDP_setTileMapDataEx.constprop.0 -00003e06 t releaseSprite.part.0.isra.0 -00003e6e t SPR_addSpriteEx.constprop.0 -00003fd8 t JOY_update -000044a0 t Z80_clear -00004562 t Z80_upload -0000467c t Z80_upload.constprop.0 -00004758 t Z80_upload.constprop.1 -00004834 t PAL_doFadeStep -0000484e t SPR_end -000048dc t SND_NULL_loadDriver -000049d4 t Z80_loadDriverInternal -00004ae4 t getAccess -00004c34 t setFMVolume -00004ccc t setPSGVolume -00004d64 t setMusicTempo.constprop.0 -00004dfa t setLoopNumber.constprop.0 -00004e48 t setTileMapDataRowEx.constprop.1 -00004f74 t VDP_drawText -000050d0 t setTileMapDataColumnEx.constprop.0 -00005224 t VDP_setTileMapDataRectEx.constprop.0 -0000559e t unpack.isra.0 -000055d4 t SPR_update -00005ddc t VDP_waitVBlank -00005f86 T BMP_doVBlankProcess -00005f90 T memset -00005faa t XGM2_loadDriver -0000612a t Z80_loadDriver -0000620c t Z80_init -00006272 t XGM2_stop -000062f8 t XGM2_pause -0000636a t SYS_doVBlankProcessEx.constprop.0.isra.0 -000068a8 t waitSubTick.part.0 -00006a66 t XGM_loadDriver -00006d14 t SND_DPCM2_loadDriver -00006ebc t SND_PCM_loadDriver -00007064 t SND_PCM4_loadDriver -00007214 t POOL_reset.constprop.0 -0000728a t SPR_initEx.constprop.0 -000073ee T memcpy -000073fe T VDP_setAutoInc -00007418 t DMA_doDmaFast -0000759e t DMA_doCPUCopyDirect -000076dc t DMA_transfer.isra.0 -00007868 t PAL_setPalette -00007890 t VDP_loadTileSet -0000798a t updateMapsAddress -00007a12 t VDP_setReg.constprop.0 -00007a2c t JOY_setSupport -00007a50 t JOY_reset -0000811c t VDP_resetScreen -0000836c t VDP_init -0000846e t internal_reset -000085b4 t VDP_drawImageEx.constprop.0.isra.0 -000086fc t main.isra.0 -00008bba T _start_entry -00008c80 T _reset_entry -00008c88 T XGM_doVBlankProcess -00008cf0 T MDDBG__SymbolDataPtr -00008cf4 t __ErrorHandler -00008cf4 t MDDBG__ErrorHandler -00008e1c t MDDBG__Error_IdleLoop -00008e36 t MDDBG__Error_InitConsole -00008e42 t MDDBG__Error_MaskStackBoundaries -00008eac t MDDBG__Error_DrawOffsetLocation -00008eb0 t MDDBG__Error_DrawOffsetLocation2 -00008eb6 t MDDBG__Error_DrawOffsetLocation__inj -00008f44 t MDDBG__ErrorHandler_SetupVDP -00008f7a t MDDBG__ErrorHandler_VDPConfig -00008f90 t MDDBG__ErrorHandler_VDPConfig_Nametables -00008fcc t MDDBG__ErrorHandler_ConsoleConfig_Initial -00008fd0 t MDDBG__ErrorHandler_ConsoleConfig_Shared -00009000 t MDDBG__Str_OffsetLocation_24bit -00009009 t MDDBG__Str_OffsetLocation_32bit -00009044 t MDDBG__Art1bpp_Font -0000933e t MDDBG__GetSymbolByOffset -00009658 t MDDBG__FormatString -00009732 t MDDBG__Console_Init -00009770 t MDDBG__Console_Reset -00009772 t MDDBG__Console_InitShared -000097bc t MDDBG__Console_SetPosAsXY_Stack -000097c2 t MDDBG__Console_SetPosAsXY -000097f6 t MDDBG__Console_GetPosAsXY -0000981c t MDDBG__Console_StartNewLine -0000984a t MDDBG__Console_SetBasePattern -00009866 t MDDBG__Console_SetWidth -00009884 t MDDBG__Console_WriteLine_WithPattern -00009886 t MDDBG__Console_WriteLine -0000988a t MDDBG__Console_Write -00009950 t MDDBG__Console_WriteLine_Formatted -00009954 t MDDBG__Console_Write_Formatted -00009984 t MDDBG__Decomp1bpp -000099a0 t MDDBG__KDebug_WriteLine_Formatted -000099a4 t MDDBG__KDebug_Write_Formatted -000099f8 t MDDBG__KDebug_FlushLine -00009a02 t MDDBG__KDebug_WriteLine -00009a06 t MDDBG__KDebug_Write -00009a34 t MDDBG__ErrorHandler_ConsoleOnly -00009a5a t MDDBG__ErrorHandler_ClearConsole -00009a84 t MDDBG__ErrorHandler_PauseConsole -00009abe t MDDBG__ErrorHandler_PagesController -00009b1e t MDDBG__VSync -00009b58 t MDDBG__ErrorHandler_ExtraDebuggerList -00009b64 t MDDBG__Debugger_AddressRegisters -00009bb0 t MDDBG__Debugger_Backtrace -00009c4e T _Bus_Error -00009c4e t MDDBG__BusError -00009c62 T _Address_Error -00009c62 t MDDBG__AddressError -00009c7a T _Illegal_Instruction -00009c7a t MDDBG__IllegalInstr -00009c98 T _Zero_Divide -00009c98 t MDDBG__ZeroDivide -00009cae T _Chk_Instruction -00009cae t MDDBG__ChkInstr -00009cc8 T _Trapv_Instruction -00009cc8 t MDDBG__TrapvInstr -00009ce4 T _Privilege_Violation -00009ce4 t MDDBG__PrivilegeViol -00009d02 T _Trace -00009d02 t MDDBG__Trace -00009d12 T _Line_1010_Emulation -00009d12 t MDDBG__Line1010Emu -00009d2e T _Line_1111_Emulation -00009d2e t MDDBG__Line1111Emu -00009d4a T _Error_Exception -00009d4a t MDDBG__ErrorExcept +00003d32 t SPR_addSpriteEx.constprop.0 +00003f5c t VDP_setTileMapDataEx.constprop.0 +00004030 t JOY_update +000044f8 t Z80_clear +000045ba t Z80_upload +000046d4 t Z80_upload.constprop.0 +000047b0 t Z80_upload.constprop.1 +0000488c t PAL_doFadeStep +000048a6 t SPR_end +00004934 t SND_NULL_loadDriver +00004a2c t Z80_loadDriverInternal +00004b3c t getAccess +00004c8c t setFMVolume +00004d24 t setPSGVolume +00004dbc t setMusicTempo.constprop.0 +00004e52 t setLoopNumber.constprop.0 +00004ea0 t setTileMapDataRowEx.constprop.1 +00004fcc t VDP_drawText +00005128 t setTileMapDataColumnEx.constprop.0 +0000527c t VDP_setTileMapDataRectEx.constprop.0 +000055f6 t unpack.isra.0 +0000562c t SPR_update +00005e34 t VDP_waitVBlank +00005fde T BMP_doVBlankProcess +00005fe8 T memset +00006002 t XGM2_loadDriver +00006182 t Z80_loadDriver +00006264 t Z80_init +000062ca t XGM2_stop +00006350 t XGM2_pause +000063c2 t SYS_doVBlankProcessEx.constprop.0.isra.0 +00006900 t waitSubTick.part.0 +00006abe t XGM_loadDriver +00006d6c t SND_DPCM2_loadDriver +00006f14 t SND_PCM_loadDriver +000070bc t SND_PCM4_loadDriver +0000726c t POOL_reset.constprop.0 +000072e2 t SPR_initEx.constprop.0 +00007446 T memcpy +00007456 T VDP_setAutoInc +00007470 t DMA_doDmaFast +000075f6 t DMA_doCPUCopyDirect +00007734 t DMA_transfer.isra.0 +000078c0 t PAL_setPalette +000078e8 t VDP_loadTileSet +000079e2 t updateMapsAddress +00007a6a t VDP_setReg.constprop.0 +00007a84 t JOY_setSupport +00007aa8 t JOY_reset +00008174 t VDP_resetScreen +000083c4 t VDP_init +000084c6 t internal_reset +0000860c t VDP_drawImageEx.constprop.0.isra.0 +00008754 t main.isra.0 +00008bc8 T _start_entry +00008c8e T _reset_entry +00008c96 T XGM_doVBlankProcess +00008cfc T MDDBG__SymbolDataPtr +00008d00 t __ErrorHandler +00008d00 t MDDBG__ErrorHandler +00008e28 t MDDBG__Error_IdleLoop +00008e42 t MDDBG__Error_InitConsole +00008e4e t MDDBG__Error_MaskStackBoundaries +00008eb8 t MDDBG__Error_DrawOffsetLocation +00008ebc t MDDBG__Error_DrawOffsetLocation2 +00008ec2 t MDDBG__Error_DrawOffsetLocation__inj +00008f50 t MDDBG__ErrorHandler_SetupVDP +00008f86 t MDDBG__ErrorHandler_VDPConfig +00008f9c t MDDBG__ErrorHandler_VDPConfig_Nametables +00008fd8 t MDDBG__ErrorHandler_ConsoleConfig_Initial +00008fdc t MDDBG__ErrorHandler_ConsoleConfig_Shared +0000900c t MDDBG__Str_OffsetLocation_24bit +00009015 t MDDBG__Str_OffsetLocation_32bit +00009050 t MDDBG__Art1bpp_Font +0000934a t MDDBG__GetSymbolByOffset +00009664 t MDDBG__FormatString +0000973e t MDDBG__Console_Init +0000977c t MDDBG__Console_Reset +0000977e t MDDBG__Console_InitShared +000097c8 t MDDBG__Console_SetPosAsXY_Stack +000097ce t MDDBG__Console_SetPosAsXY +00009802 t MDDBG__Console_GetPosAsXY +00009828 t MDDBG__Console_StartNewLine +00009856 t MDDBG__Console_SetBasePattern +00009872 t MDDBG__Console_SetWidth +00009890 t MDDBG__Console_WriteLine_WithPattern +00009892 t MDDBG__Console_WriteLine +00009896 t MDDBG__Console_Write +0000995c t MDDBG__Console_WriteLine_Formatted +00009960 t MDDBG__Console_Write_Formatted +00009990 t MDDBG__Decomp1bpp +000099ac t MDDBG__KDebug_WriteLine_Formatted +000099b0 t MDDBG__KDebug_Write_Formatted +00009a04 t MDDBG__KDebug_FlushLine +00009a0e t MDDBG__KDebug_WriteLine +00009a12 t MDDBG__KDebug_Write +00009a40 t MDDBG__ErrorHandler_ConsoleOnly +00009a66 t MDDBG__ErrorHandler_ClearConsole +00009a90 t MDDBG__ErrorHandler_PauseConsole +00009aca t MDDBG__ErrorHandler_PagesController +00009b2a t MDDBG__VSync +00009b64 t MDDBG__ErrorHandler_ExtraDebuggerList +00009b70 t MDDBG__Debugger_AddressRegisters +00009bbc t MDDBG__Debugger_Backtrace +00009c5a T _Bus_Error +00009c5a t MDDBG__BusError +00009c6e T _Address_Error +00009c6e t MDDBG__AddressError +00009c86 T _Illegal_Instruction +00009c86 t MDDBG__IllegalInstr +00009ca4 T _Zero_Divide +00009ca4 t MDDBG__ZeroDivide +00009cba T _Chk_Instruction +00009cba t MDDBG__ChkInstr +00009cd4 T _Trapv_Instruction +00009cd4 t MDDBG__TrapvInstr +00009cf0 T _Privilege_Violation +00009cf0 t MDDBG__PrivilegeViol +00009d0e T _Trace +00009d0e t MDDBG__Trace +00009d1e T _Line_1010_Emulation +00009d1e t MDDBG__Line1010Emu +00009d3a T _Line_1111_Emulation +00009d3a t MDDBG__Line1111Emu +00009d56 T _Error_Exception +00009d56 t MDDBG__ErrorExcept 00009e00 T smp_null 00009f00 T smp_null_dpcm 00009f80 T __mulsi3 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:442 00009f80 T __mulsi3_internal /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:442 -00009fa4 T __CTOR_LIST__ -00009fac T __CTOR_END__ -00009fac T __DTOR_LIST__ -00009fb4 T __DTOR_END__ -00009fb4 t bgtest_tileset -00009fbc t bgtest_tilemap -00009fc6 t bgtest_palette -00009fcc T bgtest -00009fd8 t bigTex1_palette -00009fde t bigTex1_animation0_frame0_tileset -00009fe6 t bigTex1_animation0_frame0 -0000a002 t bigTex1_animation0_frames -0000a006 t bigTex1_animation0 -0000a00c t bigTex1_animations -0000a010 T bigTex1 -0000a022 t bg1_tileset -0000a02a t bg1_tilemap -0000a034 t bg1_palette -0000a03a T bg1 -0000a046 t fg1_tileset -0000a04e t fg1_tilemap -0000a058 T fg1 -0000a0ea t tab_vol -0000b0ea t psgVolTable -0000b14e t fmVolTable -0000b1b2 t palette_blue -0000b1d2 t palette_green -0000b1f2 t palette_red -0000b212 t palette_grey -0000b232 t visibilityMask.0 -0000b254 t xlt.1 -0000b25c t xlt_all.0 -0000b26c t sgdk_logo_palette -0000b272 T sgdk_logo -0000b280 T font_default -0000b288 T font_pal_default -0000b28e T drv_null -0000b2c8 T drv_xgm -0000c9c8 T drv_dpcm2 -0000d7c8 T drv_pcm -0000e2f8 T drv_pcm4 -0000ed66 T drv_xgm2 -00010d68 T __INIT_SECTION__ -00010d6a T __FINI_SECTION__ -00010d6c T _etext -00010d6c t bgtest_palette_data -00010dec t bigTex1_palette_data -00010e0c t bg1_palette_data -00010e8c t sgdk_logo_palette_data -00010eac t font_pal_default_data -00010ecc T stop_xgm -00010f78 t font_default_data -000111da t sgdk_logo_data -00011614 t bgtest_tilemap_data -00011884 t bg1_tilemap_data -000119c8 t fg1_tilemap_data -00011b14 t bgtest_tileset_data -000124ca t bigTex1_animation0_frame0_tileset_data -0001274c t bg1_tileset_data -00012b70 t fg1_tileset_data -00013018 A _stext +00009fa4 T __modsi3 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:611 +00009fd4 T __udivsi3 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:469 +00009fd4 T __udivsi3_internal /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:469 +00009ffc t L3 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:486 +00009ffe t L4 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:487 +0000a02a t L5 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:508 +0000a02c t L6 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:510 +0000a030 T __divsi3 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:547 +0000a030 T __divsi3_internal /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:547 +0000a03e t L1 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:558 +0000a048 t L2 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:567 +0000a05a t L3 /home/runner/work/m68k-elf-gcc/m68k-elf-gcc/.build/HOST-i686-w64-mingw32/m68k-elf/src/gcc/libgcc/config/m68k/lb1sf68.S:576 +0000a060 T __CTOR_LIST__ +0000a068 T __CTOR_END__ +0000a068 T __DTOR_LIST__ +0000a070 T __DTOR_END__ +0000a070 t bgtest_tileset +0000a078 t bgtest_tilemap +0000a082 t bgtest_palette +0000a088 T bgtest +0000a094 t bigTex1_palette +0000a09a t bigTex1_animation0_frame0_tileset +0000a0a2 t bigTex1_animation0_frame0 +0000a0be t bigTex1_animation0_frames +0000a0c2 t bigTex1_animation0 +0000a0c8 t bigTex1_animations +0000a0cc T bigTex1 +0000a0de t bg1_tileset +0000a0e6 t bg1_tilemap +0000a0f0 t bg1_palette +0000a0f6 T bg1 +0000a102 t fg1_tileset +0000a10a t fg1_tilemap +0000a114 T fg1 +0000a120 t titleSignSprite_palette +0000a126 t titleSignSprite_animation0_frame0_tileset +0000a12e t titleSignSprite_animation0_frame0 +0000a13e t titleSignSprite_animation0_frame1_tileset +0000a146 t titleSignSprite_animation0_frame1 +0000a156 t titleSignSprite_animation0_frame2_tileset +0000a15e t titleSignSprite_animation0_frame2 +0000a16e t titleSignSprite_animation0_frame3_tileset +0000a176 t titleSignSprite_animation0_frame3 +0000a186 t titleSignSprite_animation0_frame4_tileset +0000a18e t titleSignSprite_animation0_frame4 +0000a19e t titleSignSprite_animation0_frame5_tileset +0000a1a6 t titleSignSprite_animation0_frame5 +0000a1b6 t titleSignSprite_animation0_frames +0000a1ce t titleSignSprite_animation0 +0000a1d4 t titleSignSprite_animation1_frame0_tileset +0000a1dc t titleSignSprite_animation1_frame0 +0000a1ec t titleSignSprite_animation1_frame1_tileset +0000a1f4 t titleSignSprite_animation1_frame1 +0000a204 t titleSignSprite_animation1_frame2_tileset +0000a20c t titleSignSprite_animation1_frame2 +0000a21c t titleSignSprite_animation1_frame3_tileset +0000a224 t titleSignSprite_animation1_frame3 +0000a234 t titleSignSprite_animation1_frame4_tileset +0000a23c t titleSignSprite_animation1_frame4 +0000a24c t titleSignSprite_animation1_frame5_tileset +0000a254 t titleSignSprite_animation1_frame5 +0000a264 t titleSignSprite_animation1_frames +0000a27c t titleSignSprite_animation1 +0000a282 t titleSignSprite_animation2_frame0_tileset +0000a28a t titleSignSprite_animation2_frame0 +0000a29a t titleSignSprite_animation2_frame1_tileset +0000a2a2 t titleSignSprite_animation2_frame1 +0000a2b2 t titleSignSprite_animation2_frame2_tileset +0000a2ba t titleSignSprite_animation2_frame2 +0000a2ca t titleSignSprite_animation2_frame3_tileset +0000a2d2 t titleSignSprite_animation2_frame3 +0000a2e2 t titleSignSprite_animation2_frame4_tileset +0000a2ea t titleSignSprite_animation2_frame4 +0000a2fa t titleSignSprite_animation2_frame5_tileset +0000a302 t titleSignSprite_animation2_frame5 +0000a312 t titleSignSprite_animation2_frames +0000a32a t titleSignSprite_animation2 +0000a330 t titleSignSprite_animations +0000a33c T titleSignSprite +0000a3d4 t tab_vol +0000b3d4 t psgVolTable +0000b438 t fmVolTable +0000b49c t palette_blue +0000b4bc t palette_green +0000b4dc t palette_red +0000b4fc t palette_grey +0000b51c t visibilityMask.0 +0000b53e t xlt.1 +0000b546 t xlt_all.0 +0000b556 t sgdk_logo_palette +0000b55c T sgdk_logo +0000b56a T font_default +0000b572 T font_pal_default +0000b578 T drv_null +0000b5b2 T drv_xgm +0000ccb2 T drv_dpcm2 +0000dab2 T drv_pcm +0000e5e2 T drv_pcm4 +0000f050 T drv_xgm2 +00011050 T __INIT_SECTION__ +00011052 T __FINI_SECTION__ +00011054 T _etext +00011054 t bgtest_palette_data +000110d4 t bigTex1_palette_data +000110f4 t bg1_palette_data +00011174 t titleSignSprite_palette_data +00011194 t sgdk_logo_palette_data +000111b4 t font_pal_default_data +000111d4 T stop_xgm +00011280 t font_default_data +000114e2 t sgdk_logo_data +0001191c t bgtest_tilemap_data +00011b8c t bg1_tilemap_data +00011cd0 t fg1_tilemap_data +00011e1c t bgtest_tileset_data +000127d2 t bigTex1_animation0_frame0_tileset_data +00012a54 t bg1_tileset_data +00012e78 t fg1_tileset_data +00013320 t titleSignSprite_animation0_frame0_tileset_data +00013386 t titleSignSprite_animation0_frame1_tileset_data +0001346e t titleSignSprite_animation0_frame2_tileset_data +00013568 t titleSignSprite_animation0_frame3_tileset_data +0001365c t titleSignSprite_animation0_frame4_tileset_data +00013778 t titleSignSprite_animation0_frame5_tileset_data +000137dc t titleSignSprite_animation1_frame0_tileset_data +000138b2 t titleSignSprite_animation1_frame1_tileset_data +0001395a t titleSignSprite_animation1_frame2_tileset_data +00013a2c t titleSignSprite_animation1_frame3_tileset_data +00013ae6 t titleSignSprite_animation1_frame4_tileset_data +00013baa t titleSignSprite_animation1_frame5_tileset_data +00013c5c t titleSignSprite_animation2_frame0_tileset_data +00013cf2 t titleSignSprite_animation2_frame1_tileset_data +00013d76 t titleSignSprite_animation2_frame2_tileset_data +00013df0 t titleSignSprite_animation2_frame3_tileset_data +00013e54 t titleSignSprite_animation2_frame4_tileset_data +00013ebc t titleSignSprite_animation2_frame5_tileset_data +00013f58 A _stext e0ff0000 d ind e0ff0004 D task_sr e0ff0006 D task_pc @@ -605,86 +699,89 @@ e0ff0064 B intLevelSave e0ff0066 B intTrace e0ff0068 B dmaQueues e0ff006c b state -e0ff006e b player_hflip +e0ff006e b start_pressed +e0ff006f b start_press_ready e0ff0070 b tile_scroll_array e0ff00a8 b scrollFrameDelayHalved e0ff00ac b scrollFrameDelay -e0ff00b0 b player_sprite -e0ff00b4 b player_y -e0ff00b8 b player_x -e0ff00bc b vscroll_update -e0ff00bd b hscroll_update -e0ff00be b fadePSGVol -e0ff00c0 b fadeFMVol -e0ff00c2 b fadeCount -e0ff00c4 b usedVDPSprite -e0ff00c6 b xgm2WaitTab -e0ff00ce b xgm2IdleTab -e0ff00d6 b xgmTempoCnt -e0ff00d8 b xgmWaitTab -e0ff0118 b xgmIdleTab -e0ff0158 b xgmTempoDef -e0ff015a b xgmTempo -e0ff015c b busProtectSignalAddress -e0ff015e b driverFlags -e0ff0160 b currentDriver -e0ff0162 b allocStack -e0ff02a2 b lastVTimer.0 -e0ff02a4 b text_plan -e0ff02a8 b text_basetile -e0ff02aa b lastVCnt -e0ff02ac b windowWidthSft -e0ff02ae b planeWidthSft -e0ff02b0 b windowWidth -e0ff02b2 b planeHeight -e0ff02b4 b planeWidth -e0ff02b6 b hscrl_addr -e0ff02b8 b bgb_addr -e0ff02ba b bga_addr -e0ff02bc b window_addr -e0ff02be b lastTick -e0ff02c2 b cpuFrameLoad -e0ff02c4 b frameLoadIndex -e0ff02c6 b frameLoads -e0ff02d6 b vblankCB -e0ff02da b flags -e0ff02dc b screenHeight -e0ff02de b screenWidth -e0ff02e0 b maps_addr -e0ff02e2 b slist_addr -e0ff02e4 b vdpSpriteCache -e0ff05e4 b spriteVramSize -e0ff05e8 b vram -e0ff05f4 b lastSprite -e0ff05f8 b firstSprite -e0ff05fc b spritesPool -e0ff0600 b fadeCounter -e0ff0602 b heap -e0ff0606 b free.lto_priv.0 -e0ff060a b randomSeedSet -e0ff060c b joyEventCB -e0ff0610 b retry -e0ff0611 b phase.lto_priv.1 -e0ff0614 b regValues -e0ff0627 b gun -e0ff0628 b extSet -e0ff062a b disableIntStack -e0ff062c b joyAxisY -e0ff063c b joyAxisX -e0ff064c b joyState -e0ff065c b joyType -e0ff0664 b portSupport -e0ff0666 b portType -e0ff0668 b gport -e0ff066a b flag -e0ff066c b maxTransferPerFrame -e0ff066e b queueSize -e0ff0670 b nextDataBuffer -e0ff0674 b queueTransferSize -e0ff0676 b queueIndexLimit -e0ff0678 b queueIndex -e0ff067a b dmaDataBuffer -e0ff067e b dataBufferSize -e0ff0680 b phase.lto_priv.0 -e0ff0682 B _bend +e0ff00b0 b title_sign_sprite_arr +e0ff00f8 b sign_y +e0ff00fc b sign_x +e0ff0100 b player_y +e0ff0104 b player_x +e0ff0108 b vscroll_update +e0ff0109 b hscroll_update +e0ff010a b fadePSGVol +e0ff010c b fadeFMVol +e0ff010e b fadeCount +e0ff0110 b usedVDPSprite +e0ff0112 b xgm2WaitTab +e0ff011a b xgm2IdleTab +e0ff0122 b xgmTempoCnt +e0ff0124 b xgmWaitTab +e0ff0164 b xgmIdleTab +e0ff01a4 b xgmTempoDef +e0ff01a6 b xgmTempo +e0ff01a8 b busProtectSignalAddress +e0ff01aa b driverFlags +e0ff01ac b currentDriver +e0ff01ae b allocStack +e0ff02ee b lastVTimer.0 +e0ff02f0 b text_plan +e0ff02f4 b text_basetile +e0ff02f6 b lastVCnt +e0ff02f8 b windowWidthSft +e0ff02fa b planeWidthSft +e0ff02fc b windowWidth +e0ff02fe b planeHeight +e0ff0300 b planeWidth +e0ff0302 b hscrl_addr +e0ff0304 b bgb_addr +e0ff0306 b bga_addr +e0ff0308 b window_addr +e0ff030a b lastTick +e0ff030e b cpuFrameLoad +e0ff0310 b frameLoadIndex +e0ff0312 b frameLoads +e0ff0322 b vblankCB +e0ff0326 b flags +e0ff0328 b screenHeight +e0ff032a b screenWidth +e0ff032c b maps_addr +e0ff032e b slist_addr +e0ff0330 b vdpSpriteCache +e0ff0630 b spriteVramSize +e0ff0634 b vram +e0ff0640 b lastSprite +e0ff0644 b firstSprite +e0ff0648 b spritesPool +e0ff064c b fadeCounter +e0ff064e b heap +e0ff0652 b free.lto_priv.0 +e0ff0656 b randomSeedSet +e0ff0658 b joyEventCB +e0ff065c b retry +e0ff065d b phase.lto_priv.1 +e0ff0660 b regValues +e0ff0673 b gun +e0ff0674 b extSet +e0ff0676 b disableIntStack +e0ff0678 b joyAxisY +e0ff0688 b joyAxisX +e0ff0698 b joyState +e0ff06a8 b joyType +e0ff06b0 b portSupport +e0ff06b2 b portType +e0ff06b4 b gport +e0ff06b6 b flag +e0ff06b8 b maxTransferPerFrame +e0ff06ba b queueSize +e0ff06bc b nextDataBuffer +e0ff06c0 b queueTransferSize +e0ff06c2 b queueIndexLimit +e0ff06c4 b queueIndex +e0ff06c6 b dmaDataBuffer +e0ff06ca b dataBufferSize +e0ff06cc b phase.lto_priv.0 +e0ff06ce B _bend e1000000 A __stack diff --git a/res/resources.h b/res/resources.h index f4ee747..38da8b9 100644 --- a/res/resources.h +++ b/res/resources.h @@ -7,5 +7,6 @@ extern const Image bgtest; extern const SpriteDefinition bigTex1; extern const Image bg1; extern const Image fg1; +extern const SpriteDefinition titleSignSprite; #endif // _RES_RESOURCES_H_ diff --git a/res/resources.res b/res/resources.res index eb79401..e7f86a5 100644 --- a/res/resources.res +++ b/res/resources.res @@ -1,4 +1,5 @@ IMAGE bgtest "background1.png" BEST ALL SPRITE bigTex1 "Sprites\BTW-1.png" 8 8 FAST IMAGE bg1 "btwade_bg1_1.png" BEST ALL -IMAGE fg1 "btwade_bg2_1.png" BEST ALL \ No newline at end of file +IMAGE fg1 "btwade_bg2_1.png" BEST ALL +SPRITE titleSignSprite "BTW-TitleSign-merged.png" 4 4 FAST \ No newline at end of file diff --git a/src/title_screen.c b/src/title_screen.c index 19e9310..de16218 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -5,14 +5,25 @@ u16 ind = TILE_USER_INDEX; -Sprite* player_sprite; +//Sprite* player_sprite; +Sprite* title_sign_sprite_arr [18] = {NULL}; +// Sprite* title_sign_sprite_1; +// Sprite* title_sign_sprite_2; +// Sprite* title_sign_sprite_3; +// Sprite* title_sign_sprite_4; +// Sprite* title_sign_sprite_5; int player_x; int player_y; +int sign_x; +int sign_y; + int scrollFrameDelay = 0; int scrollFrameDelayHalved = 0; bool player_hflip; +bool start_pressed = false; +bool start_press_ready = false; s16 tile_scroll_array [28] = { @@ -27,14 +38,49 @@ s16 tile_scroll_array [28] = { extern void init_title_screen () { player_x = 50; player_y = 50; + sign_x = 60; + sign_y = -120; SPR_init(); PAL_setPalette(PAL0, bg1.palette->data, DMA); PAL_setPalette(PAL1,fg1.palette->data,DMA); - PAL_setPalette(PAL2, bigTex1.palette->data, DMA); - player_sprite = SPR_addSprite(&bigTex1, 0,0, TILE_ATTR(PAL2,false,false,false)); + PAL_setPalette(PAL2, titleSignSprite.palette->data, DMA); +//--------- initializing sprites, probably a better way to do this (Loops) but who cares for now tbh----------------- + for(int i = 0; i < 18; i++){ + title_sign_sprite_arr[i] = SPR_addSprite(&titleSignSprite, 0,0, TILE_ATTR(PAL2,false,false,false)); + if (i < 6) + { + title_sign_sprite_arr[i]-> frameInd += i; + } + else if (i < 12) + { + SPR_setAnim(title_sign_sprite_arr[i],1); + title_sign_sprite_arr[i]-> frameInd += (i-6); + } + else { + SPR_setAnim(title_sign_sprite_arr[i],2); + title_sign_sprite_arr[i]-> frameInd += (i-12); + } + + } + + // title_sign_sprite_0 = SPR_addSprite(&titleSignSprite, 0,0, TILE_ATTR(PAL2,false,false,false)); + // title_sign_sprite_1 = SPR_addSprite(&titleSignSprite, 0,0, TILE_ATTR(PAL2,false,false,false)); + // title_sign_sprite_2 = SPR_addSprite(&titleSignSprite, 0,0, TILE_ATTR(PAL2,false,false,false)); + // title_sign_sprite_3 = SPR_addSprite(&titleSignSprite, 0,0, TILE_ATTR(PAL2,false,false,false)); + // title_sign_sprite_4 = SPR_addSprite(&titleSignSprite, 0,0, TILE_ATTR(PAL2,false,false,false)); + // title_sign_sprite_5 = SPR_addSprite(&titleSignSprite, 0,0, TILE_ATTR(PAL2,false,false,false)); + + // title_sign_sprite_1->frameInd ++; + // title_sign_sprite_2->frameInd +=2; + // title_sign_sprite_3->frameInd +=3; + // title_sign_sprite_4->frameInd +=4; + // title_sign_sprite_5->frameInd +=5; + +// -------------------------------------------------------------------------------------------------------------------- + VDP_drawImageEx(BG_B, &bg1,TILE_ATTR_FULL(PAL0, false, false, false, ind), 0, -4, false, true); ind += bg1.tileset->numTile; @@ -60,15 +106,20 @@ static void handleInputs(){ if (value & BUTTON_DOWN){ player_y += 1; } + if (value & BUTTON_START) + { + start_pressed = true; + } } extern void update_title_screen(){ + +// -----------------Parallax BG ---------------------------- if (scrollFrameDelay > 1){ scrollFrameDelay = 0; - if (scrollFrameDelayHalved >1){ //0.25 scroll speed tile_scroll_array[15] -=1; @@ -79,10 +130,8 @@ extern void update_title_screen(){ //reset this timer scrollFrameDelayHalved = 0; } - // 0.5 scroll speed - tile_scroll_array[20] -=1; - + tile_scroll_array[20] -=1; // effectively 1.5 scroll speed. tile_scroll_array[22] -=1; @@ -102,15 +151,44 @@ extern void update_title_screen(){ VDP_setHorizontalScrollTile(BG_A, 0, tile_scroll_array, 28, DMA_QUEUE); scrollFrameDelay ++; - + + // -------------------Sign Dropdown----------------------------------------------- + if (sign_y < 20) sign_y +=2; + else start_press_ready = true; + + if (start_press_ready && start_pressed && sign_x > -190) sign_x -=3; handleInputs(); } extern void draw_title_screen(){ - SPR_setPosition(player_sprite, player_x,player_y); - SPR_setHFlip(player_sprite, player_hflip); - SPR_update(); + + for(int i =0; i < 18; i++){ + + int draw_sign_x = sign_x + (i % 6) *32; + int draw_sign_y = sign_y; + if (i >5) + { + draw_sign_y += 32; + } + if (i >11) + { + draw_sign_y += 32; + } + + + SPR_setPosition(title_sign_sprite_arr[i], draw_sign_x , draw_sign_y); + } + + // SPR_setPosition(title_sign_sprite_1, sign_x+32,sign_y); + // SPR_setPosition(title_sign_sprite_2, sign_x+64,sign_y); + // SPR_setPosition(title_sign_sprite_3, sign_x+96,sign_y); + // SPR_setPosition(title_sign_sprite_4, sign_x+128,sign_y); + // SPR_setPosition(title_sign_sprite_5, sign_x+160,sign_y); + + // SPR_setPosition(player_sprite, player_x,player_y); + // SPR_setHFlip(player_sprite, player_hflip); + SPR_update(); } \ No newline at end of file