diff --git a/.gitignore b/.gitignore index 823c1f6..31ff445 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,5 @@ # End of https://www.toptal.com/developers/gitignore/api/visualstudiocode +gen/ obj/ diff --git a/.vscode/settings.json b/.vscode/settings.json index 475cc4d..b399b4d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,19 +1,5 @@ { - "files.associations": { - "stdint.h": "c", - "gb.h": "c", - "version.h": "c" - }, - "actionButtons": { - "commands": [ - { - "name": "Clean", - "command": "make clean", - }, - { - "name": "Build", - "command": "make", - } - ] - } -} + "files.associations": { + "stdint.h": "c" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile index 4db27c6..cb84bd2 100644 --- a/Makefile +++ b/Makefile @@ -5,9 +5,10 @@ # If you move this project you can change the directory # to match your GBDK root directory (ex: GBDK_HOME = "C:/GBDK/" -GBDK_HOME = ~/SDK/gbdk/ +GBDK_HOME = ${HOME}/SDK/gbdk/ LCC = $(GBDK_HOME)bin/lcc +PNG2ASSET = $(GBDK_HOME)bin/png2asset # You can set flags for LCC here # For example, you can uncomment the line below to turn on debug output @@ -16,17 +17,19 @@ LCC = $(GBDK_HOME)bin/lcc # You can set the name of the .gb ROM file here -PROJECTNAME = Snake +PROJECTNAME = snake +DSTDIR = dist +GENDIR = gen SRCDIR = src OBJDIR = obj RESDIR = res BINS = $(OBJDIR)/$(PROJECTNAME).gb -CSOURCES = $(foreach dir,$(SRCDIR),$(notdir $(wildcard $(dir)/*.c))) $(foreach dir,$(RESDIR),$(notdir $(wildcard $(dir)/*.c))) +CSOURCES = $(foreach dir,$(SRCDIR),$(notdir $(wildcard $(dir)/*.c))) $(foreach dir,$(GENDIR),$(notdir $(wildcard $(dir)/*.c))) ASMSOURCES = $(foreach dir,$(SRCDIR),$(notdir $(wildcard $(dir)/*.s))) OBJS = $(CSOURCES:%.c=$(OBJDIR)/%.o) $(ASMSOURCES:%.s=$(OBJDIR)/%.o) -all: prepare $(BINS) +all: clean prepare png2asset $(BINS) compile.bat: Makefile @echo "REM Automatically generated from Makefile" > compile.bat @@ -34,10 +37,10 @@ compile.bat: Makefile # Compile .c files in "src/" to .o object files $(OBJDIR)/%.o: $(SRCDIR)/%.c - $(LCC) $(LCCFLAGS) -c -o $@ $< + $(LCC) $(LCCFLAGS) -I${GENDIR} -c -o $@ $< -# Compile .c files in "res/" to .o object files -$(OBJDIR)/%.o: $(RESDIR)/%.c +# Compile .c files in "gen/" to .o object files +$(OBJDIR)/%.o: $(GENDIR)/%.c $(LCC) $(LCCFLAGS) -c -o $@ $< # Compile .s assembly files in "src/" to .o object files @@ -53,10 +56,16 @@ $(OBJDIR)/%.s: $(SRCDIR)/%.c $(BINS): $(OBJS) $(LCC) $(LCCFLAGS) -o $(BINS) $(OBJS) +png2asset: + ${PNG2ASSET} ${RESDIR}/splash_screen.png -c ${GENDIR}/splash_screen.c -map -noflip + prepare: + mkdir -p $(DSTDIR) mkdir -p $(OBJDIR) + mkdir -p $(GENDIR) clean: -# rm -f *.gb *.ihx *.cdb *.adb *.noi *.map + rm -f $(DSTDIR)/*.* rm -f $(OBJDIR)/*.* - + rm -f $(GENDIR)/*.* + rm -f *.o *.lst *.map *.gb *.ihx *.sym *.cdb *.adb *.asm diff --git a/res/splash_screen.aseprite b/res/splash_screen.aseprite new file mode 100644 index 0000000..6fced14 Binary files /dev/null and b/res/splash_screen.aseprite differ diff --git a/res/splash_screen.png b/res/splash_screen.png new file mode 100644 index 0000000..76ad42b Binary files /dev/null and b/res/splash_screen.png differ diff --git a/src/main.c b/src/main.c index a88301f..ea9b781 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,13 @@ #include #include +#include "splash_screen.h" + +#define TILEMAP_WIDTH_IN_TILES (splash_screen_WIDTH >> 3) +#define TILEMAP_HEIGHT_IN_TILES (splash_screen_HEIGHT >> 3) void main() { - /// + SHOW_BKG; + set_bkg_data(0, splash_screen_TILE_COUNT, splash_screen_tiles); + set_bkg_tiles(0, 0, TILEMAP_WIDTH_IN_TILES, TILEMAP_HEIGHT_IN_TILES, splash_screen_map); }