From b055a439a4dc6a0c8aab1b1a08baeaf3452c1c04 Mon Sep 17 00:00:00 2001 From: Polprzewodnikowy Date: Tue, 17 May 2022 18:45:01 +0200 Subject: [PATCH] nice asset names --- sw/bootloader/Makefile | 14 ++++++++------ sw/bootloader/assets/assets.S | 3 +++ sw/bootloader/assets/assets.h | 11 +++++++++++ .../{background.png => exception_background.png} | Bin sw/bootloader/src/exception.c | 4 ++-- 5 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 sw/bootloader/assets/assets.S create mode 100644 sw/bootloader/assets/assets.h rename sw/bootloader/assets/{background.png => exception_background.png} (100%) diff --git a/sw/bootloader/Makefile b/sw/bootloader/Makefile index 6813317..5bf497b 100644 --- a/sw/bootloader/Makefile +++ b/sw/bootloader/Makefile @@ -38,13 +38,13 @@ SRC_FILES = \ fatfs/ffunicode.c ASSET_FILES = \ - background.png + exception_background.png SRCS = $(SRC_FILES) $(ASSET_FILES) -OBJS = $(addprefix $(BUILD_DIR)/, $(notdir $(patsubst %,%.o,$(SRCS)))) +SRC_OBJS = $(patsubst %,%.o,$(SRC_FILES)) +ASSET_OBJS = $(patsubst %,%.asset.o,$(basename $(ASSET_FILES))) +OBJS = $(addprefix $(BUILD_DIR)/,$(notdir $(SRC_OBJS) $(ASSET_OBJS))) DEPS = $(OBJS:.o=.d) -$(info $(SRCS)) -$(info $(OBJS)) VPATH = $(SRC_DIR) $(SRC_DIR)/fatfs $(ASSET_DIR) $(@info $(shell mkdir -p ./$(BUILD_DIR) &> /dev/null)) @@ -55,9 +55,11 @@ $(BUILD_DIR)/%.S.o: %.S $(BUILD_DIR)/%.c.o: %.c $(CC) $(FLAGS) $(CFLAGS) -c $< -o $@ -$(BUILD_DIR)/%.png.o: %.png +$(BUILD_DIR)/%.asset: $(ASSET_DIR)/%.png $(PYTHON) tools/asset_converter.py $< $@ - $(OBJCOPY) -I binary -O elf32-bigmips -B mips:4000 $@ $@ + +$(BUILD_DIR)/%.asset.o: $(BUILD_DIR)/%.asset $(ASSET_DIR)/assets.S + @sed -e "s,@sym@,$*,g" -e "s,@file@,$<," < $(ASSET_DIR)/assets.S | $(CC) -x assembler-with-cpp $(FLAGS) $(ASFLAGS) $(CFLAGS) -c - -o $@ $(BUILD_DIR)/bootloader.elf: $(OBJS) N64.ld $(CXX) $(FLAGS) $(LDFLAGS) -TN64.ld $(OBJS) -o $@ diff --git a/sw/bootloader/assets/assets.S b/sw/bootloader/assets/assets.S new file mode 100644 index 0000000..cb79f3b --- /dev/null +++ b/sw/bootloader/assets/assets.S @@ -0,0 +1,3 @@ +.global assets_@sym@ +assets_@sym@: + .incbin "@file@" diff --git a/sw/bootloader/assets/assets.h b/sw/bootloader/assets/assets.h new file mode 100644 index 0000000..60952a6 --- /dev/null +++ b/sw/bootloader/assets/assets.h @@ -0,0 +1,11 @@ +#ifndef ASSETS_H__ +#define ASSETS_H__ + + +#include + + +extern const uint32_t assets_exception_background; + + +#endif diff --git a/sw/bootloader/assets/background.png b/sw/bootloader/assets/exception_background.png similarity index 100% rename from sw/bootloader/assets/background.png rename to sw/bootloader/assets/exception_background.png diff --git a/sw/bootloader/src/exception.c b/sw/bootloader/src/exception.c index bd706a0..f0fac11 100644 --- a/sw/bootloader/src/exception.c +++ b/sw/bootloader/src/exception.c @@ -7,6 +7,7 @@ #include "sc64.h" #include "version.h" #include "vr4300.h" +#include "../assets/assets.h" #define EXCEPTION_INTERRUPT (0) @@ -26,7 +27,6 @@ #define LINE_HEIGHT (10) -extern const uint32_t _binary_build_background_png_o_start; static io32_t exception_framebuffer[SCREEN_WIDTH * SCREEN_HEIGHT] __attribute__((aligned(64))); static const vi_regs_t vi_config[] = {{ .CR = ( @@ -75,7 +75,7 @@ static const vi_regs_t vi_config[] = {{ static void exception_init_screen (void) { const vi_regs_t *cfg = &vi_config[OS_INFO->tv_type]; - uint32_t *background_data = (uint32_t *) (&_binary_build_background_png_o_start); + uint32_t *background_data = (uint32_t *) (&assets_exception_background); for (int i = 0; i < (SCREEN_WIDTH * SCREEN_HEIGHT); i += 2) { io_write(&exception_framebuffer[i], *background_data);