diff --git a/arm9/Makefile b/arm9/Makefile index 5b99398..9710886 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -20,6 +20,7 @@ DEFINES := -DARM9 -D_3DS -DVERS_STRING=\"$(VERS_STRING)\" \ -DVERS_MAJOR=$(VERS_MAJOR) -DVERS_MINOR=$(VERS_MINOR) DATA := data +ASSETS := ../assets LDNAME := arm9.ld ifneq ($(strip $(NO_DEBUG)),) @@ -66,12 +67,14 @@ export DEPSDIR := $(CURDIR)/$(BUILD) export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ - $(foreach dir,$(DATA),$(CURDIR)/$(dir)) + $(foreach dir,$(DATA),$(CURDIR)/$(dir)) \ + $(foreach dir,$(ASSETS),$(CURDIR)/$(dir)) CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) +ASSETFILES := $(foreach dir,$(ASSETS),$(notdir $(wildcard $(dir)/*.*))) #--------------------------------------------------------------------------------- # use CXX for linking C++ projects, CC for standard C @@ -87,8 +90,15 @@ endif #--------------------------------------------------------------------------------- -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) +export OFILES_SOURCES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) + +export OFILES_BIN := $(addsuffix .o,$(BINFILES)) $(ASSETFILES:.png=.spla.o) + +export INTERMEDIATE_ASSETS := $(ASSETFILES:.png=.spla) + +export OFILES := $(OFILES_BIN) $(OFILES_SOURCES) + +export HFILES := $(addsuffix .h,$(subst .,_,$(BINFILES))) export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ @@ -112,6 +122,8 @@ #--------------------------------------------------------------------------------- else +.SECONDARY: $(INTERMEDIATE_ASSETS) + #--------------------------------------------------------------------------------- # main targets #--------------------------------------------------------------------------------- @@ -119,20 +131,31 @@ @$(OBJCOPY) --gap-fill 0xFF -O binary $< $@ @echo built ... $(notdir $@) +$(OFILES_SOURCES) : $(HFILES) + $(OUTPUT).elf : $(OFILES) #--------------------------------------------------------------------------------- # you need a rule like this for each extension you use as binary data #--------------------------------------------------------------------------------- -%.bin.o : %.bin +%.bin.o %_bin.h : %.bin #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) #--------------------------------------------------------------------------------- -%.spla.o : %.spla +%.spla : %.png #--------------------------------------------------------------------------------- @echo $(notdir $<) + @echo "$@: $<" > $(DEPSDIR)/$*.d + @splashtool -f RGB565 -r $< $@ + +#--------------------------------------------------------------------------------- +%.spla.o %_spla.h : %.spla +#--------------------------------------------------------------------------------- + @echo $(notdir $<) + @echo "$*.spla.o: $<" > $(DEPSDIR)/$*.spla.d + @echo "$*_spla.h: $<" >> $(DEPSDIR)/$*.spla.d @$(bin2o) #--------------------------------------------------------------------------------- @@ -146,4 +169,4 @@ #--------------------------------------------------------------------------------------- endif -#--------------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/arm9/data/banner.spla b/arm9/data/banner.spla deleted file mode 100644 index d87a545..0000000 --- a/arm9/data/banner.spla +++ /dev/null Binary files differ diff --git a/arm9/data/bootfail.spla b/arm9/data/bootfail.spla deleted file mode 100644 index 3d65f84..0000000 --- a/arm9/data/bootfail.spla +++ /dev/null Binary files differ diff --git a/arm9/data/bootwarning.spla b/arm9/data/bootwarning.spla deleted file mode 100644 index e5fb5ff..0000000 --- a/arm9/data/bootwarning.spla +++ /dev/null Binary files differ diff --git a/source/arm9/splash.c b/source/arm9/splash.c index dd784f3..eb4faa9 100644 --- a/source/arm9/splash.c +++ b/source/arm9/splash.c @@ -33,7 +33,8 @@ if(memcmp(&header->magic, "SPLA", 4)) return false; const u16 width = header->width, height = header->height; - if(width > SCREEN_WIDTH_TOP || height > SCREEN_HEIGHT_TOP) return false; + if(width == 0 || width > SCREEN_WIDTH_TOP || height == 0 || height > SCREEN_HEIGHT_TOP) + return false; const u32 flags = header->flags; if((flags & FORMAT_INVALID) != FORMAT_RGB565) return false;