From 51ae799d9385bdc0b14b3eb00f41c1ad5d945d80 Mon Sep 17 00:00:00 2001 From: Moon Man Date: Sat, 25 Jan 2025 09:48:56 -0500 Subject: [PATCH] makefile stuff to generate bins from graphics automatically. --- .gitignore | 3 ++- Makefile | 48 +++++++++++++++++++++++++++++++++++++++----- graphics/splash.png | Bin 0 -> 29087 bytes source/main.c | 9 ++++----- 4 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 graphics/splash.png diff --git a/.gitignore b/.gitignore index 64ceb6b..cfe432e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ *.sav *.bak .DS_Store -build/ \ No newline at end of file +build/ +generated/ \ No newline at end of file diff --git a/Makefile b/Makefile index b0f2194..5915c6f 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,8 @@ SOURCES := source INCLUDES := include DATA := data SOUND := sound - +GRAPHICS := graphics +GENERATED := generated #--------------------------------------------------------------------------------- # options for code generation #--------------------------------------------------------------------------------- @@ -68,7 +69,8 @@ export OUTPUT := $(CURDIR)/$(TARGET) export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ $(foreach dir,$(DATA),$(CURDIR)/$(dir)) \ - $(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir)) + $(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir)) \ + $(CURDIR)/$(GENERATED) export DEPSDIR := $(CURDIR)/$(BUILD) @@ -83,6 +85,15 @@ ifneq ($(strip $(SOUND)),) BINFILES += soundbank.bin endif +ifneq ($(strip $(GRAPHICS)),) + export GRAPHICSFILES := $(foreach dir,$(notdir $(wildcard $(GRAPHICS)/*.png)),$(CURDIR)/$(GRAPHICS)/$(dir)) +endif + +# Add generated bin files if they exist +ifneq ($(wildcard $(GENERATED)/*.bin),) + BINFILES += $(notdir $(wildcard $(GENERATED)/*.bin)) +endif + #--------------------------------------------------------------------------------- # use CXX for linking C++ projects, CC for standard C #--------------------------------------------------------------------------------- @@ -111,11 +122,11 @@ export INCLUDE := $(foreach dir,$(INCLUDES),-iquote $(CURDIR)/$(dir)) \ export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) -.PHONY: $(BUILD) clean +.PHONY: $(BUILD) clean process-images process-binaries #--------------------------------------------------------------------------------- -$(BUILD): - @[ -d $@ ] || mkdir -p $@ +$(BUILD): process-images process-binaries + @[ -d $(BUILD) ] || mkdir -p $(BUILD) @cp $(SOURCES)/*.h $(BUILD)/ 2>/dev/null || true @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile @@ -125,6 +136,32 @@ clean: @rm -fr $(BUILD) $(TARGET).elf $(TARGET).gba +process-images: $(GRAPHICSFILES) + @[ -d $(GENERATED) ] || mkdir -p $(GENERATED) + @echo "Processing ALL images" + @for img in $^; do \ + depth=$$(magick identify -format "%[depth]" $$img); \ + base=$$(basename $$img .png); \ + if [ "$$depth" = "8" ]; then \ + $(MAKE) $${base}_8.bin; \ + else \ + echo "Processing image $$base with depth $$depth"; \ + $(MAKE) $${base}_16.bin; \ + fi \ + done + +# Rule for 8-bit images +%_8.bin %_8.h: %.png + @echo "Processing 8-bit image $<" + @magick $< -channel-fx "red=>blue,blue=>red" $(GENERATED)/$*_8.temp.png + @grit $(GENERATED)/$*_8.temp.png -gb -gB8 -p -ftb -o $(GENERATED)/$*_8 + @rm $(GENERATED)/$*_8.temp.png + +# Rule for 16-bit images +%_16.bin %_16.h: %.png + @echo "Processing 16-bit image $<" + @grit $< -gb -gB16 -ftb -o $(GENERATED)/$*_16 + #--------------------------------------------------------------------------------- else @@ -148,6 +185,7 @@ $(OFILES_SOURCES) : $(HFILES) #--------------------------------------------------------------------------------- soundbank.bin soundbank.h : $(MODFILES) $(SFXFILES) #--------------------------------------------------------------------------------- + @echo "Generating soundbank..." @mmutil $^ -osoundbank.bin -hsoundbank.h #--------------------------------------------------------------------------------- diff --git a/graphics/splash.png b/graphics/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..db7f43455e211df3c4b7bdfdab8b7b5d1a8474d6 GIT binary patch literal 29087 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 iNA-0u{Zk20ng1VIS(vYyanT(B0000 #include -// #include "intro_bin.h" -#include "intro-8bit_img_bin.h" -#include "intro-8bit_pal_bin.h" +#include "splash_8_img_bin.h" +#include "splash_8_pal_bin.h" // Define any soundbank includes here #include "soundbank.h" @@ -72,9 +71,9 @@ void loadIntroScreen(void) { // Load the palette // Palette size needs to be in 16-bit units (divide by 2) - DMA3COPY(intro_8bit_pal_bin, BG_PALETTE, intro_8bit_pal_bin_size >> 1); + DMA3COPY(splash_8_pal_bin, BG_PALETTE, splash_8_pal_bin_size >> 1); // Copy image data to first frame buffer // Image size needs to be in 16-bit units (divide by 2) - DMA3COPY(intro_8bit_img_bin, (void*)VRAM, intro_8bit_img_bin_size >> 1); + DMA3COPY(splash_8_img_bin, (void*)VRAM, splash_8_img_bin_size >> 1); } \ No newline at end of file