From f679129e307f2751c0479ada5038397675e8b047 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Fri, 4 Jul 2025 18:29:40 -0500 Subject: [PATCH] add tree cover --- cover/tree.data | Bin 0 -> 32768 bytes cover/tree.data.h | 15 +++++++++++++++ cover/tree.png | Bin 0 -> 10524 bytes src/playlist.cpp | 2 +- src/scene/tracker/cover.cpp | 10 ++++++++++ src/scene/tracker/cover.hpp | 1 + src/scene/tracker/notes.cpp | 2 +- src/texture.cpp | 6 ++++++ src/texture.hpp | 1 + xm_player.mk | 3 ++- 10 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 cover/tree.data create mode 100644 cover/tree.data.h create mode 100644 cover/tree.png diff --git a/cover/tree.data b/cover/tree.data new file mode 100644 index 0000000000000000000000000000000000000000..b79a320d8aa7c0003dac1c6fd4ea8cab67e74984 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/cover/tree.data.h b/cover/tree.data.h new file mode 100644 index 0000000..021b898 --- /dev/null +++ b/cover/tree.data.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t _binary_cover_tree_data_start __asm("_binary_cover_tree_data_start"); +extern uint32_t _binary_cover_tree_data_end __asm("_binary_cover_tree_data_end"); +extern uint32_t _binary_cover_tree_data_size __asm("_binary_cover_tree_data_size"); + +#ifdef __cplusplus +} +#endif diff --git a/cover/tree.png b/cover/tree.png new file mode 100644 index 0000000000000000000000000000000000000000..5982d37e08b904dafba75fc2eba9df18ed09c48f GIT binary patch literal 10524 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 literal 0 HcmV?d00001 diff --git a/src/playlist.cpp b/src/playlist.cpp index 0a6def1..a3bdc8b 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -33,7 +33,7 @@ namespace playlist { .artist = "Cai", .title = "SummerDreamsDemov4", .start = (int)&_binary_xm_SummerDreamsDemoTrackv4_xm_start, - .cover_ix = scene::tracker::cover::mountain, + .cover_ix = scene::tracker::cover::tree, }, }; diff --git a/src/scene/tracker/cover.cpp b/src/scene/tracker/cover.cpp index eda80c5..d3f0159 100644 --- a/src/scene/tracker/cover.cpp +++ b/src/scene/tracker/cover.cpp @@ -82,6 +82,16 @@ namespace scene::tracker::cover { .height = 72, .scale = 6, }, + [tree] = { + .texture_offset = texture::offset::tree, + .texture_size = tsp_instruction_word::texture_u_size::from_int(128) + | tsp_instruction_word::texture_v_size::from_int(128), + .texture_width = 1.0f / 128.0f, + .texture_height = 1.0f / 128.0f, + .width = 72, + .height = 72, + .scale = 6, + }, }; constexpr inline vec3 transform_position_fs(const cover& cover, diff --git a/src/scene/tracker/cover.hpp b/src/scene/tracker/cover.hpp index 61e148a..0274f85 100644 --- a/src/scene/tracker/cover.hpp +++ b/src/scene/tracker/cover.hpp @@ -12,6 +12,7 @@ namespace scene::tracker::cover { mountain, mossycottage, clocks, + tree, }; void draw(ta_multiwriter& multi, float x, float y, bool zoom); diff --git a/src/scene/tracker/notes.cpp b/src/scene/tracker/notes.cpp index c0d9708..5e4c057 100644 --- a/src/scene/tracker/notes.cpp +++ b/src/scene/tracker/notes.cpp @@ -271,7 +271,7 @@ void draw_middle_line(ta_parameter_writer& writer, float x, float y) { using namespace interpreter; - int middle_width = line_column_width * (state.xm.number_of_channels) + (2 * glyph::hori_advance) + 2 + 3; + int middle_width = line_column_width * (state.xm.number_of_channels) + (3 * glyph::hori_advance) + 2 + 3; int middle_height = glyph::vert_advance - 1; y += 3; diff --git a/src/texture.cpp b/src/texture.cpp index 0e886e5..90f690a 100644 --- a/src/texture.cpp +++ b/src/texture.cpp @@ -21,6 +21,7 @@ #include "cover/redtree.data.h" #include "cover/silvertrees.data.h" #include "cover/thebeach.data.h" +#include "cover/tree.data.h" #include "printf/printf.h" @@ -82,6 +83,11 @@ namespace texture { .size = reinterpret_cast(&_binary_cover_thebeach_data_size), .offset = offset::thebeach, }, + { + .start = reinterpret_cast(&_binary_cover_tree_data_start), + .size = reinterpret_cast(&_binary_cover_tree_data_size), + .offset = offset::tree, + }, }; const int textures_length = (sizeof (textures)) / (sizeof (textures[0])); diff --git a/src/texture.hpp b/src/texture.hpp index 5030430..2958650 100644 --- a/src/texture.hpp +++ b/src/texture.hpp @@ -19,6 +19,7 @@ namespace texture { constexpr int redtree = mountain + 32768; constexpr int silvertrees = redtree + 32768; constexpr int thebeach = silvertrees + 32768; + constexpr int tree = thebeach + 32768; }; extern struct texture textures[]; diff --git a/xm_player.mk b/xm_player.mk index 79093f6..46565b1 100644 --- a/xm_player.mk +++ b/xm_player.mk @@ -16,7 +16,8 @@ TEXTURE_OBJ = \ cover/mountain.data.o \ cover/redtree.data.o \ cover/silvertrees.data.o \ - cover/thebeach.data.o + cover/thebeach.data.o \ + cover/tree.data.o PCM_OBJ = \ pcm/start3.adpcm.o \