test sprite scaling
[gbajam21] / Makefile
index a312a03..47632ea 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,19 @@
 src = $(wildcard src/*.c)
-ssrc = $(wildcard src/*.s)
+ssrc = $(wildcard src/*.s) data/lut.s
 obj = $(src:.c=.o) $(ssrc:.s=.o)
 dep = $(src:.c=.d)
 name = gbajam21
 elf = $(name).elf
 bin = $(name).gba
 
+data = data/tuncross.sraw data/tuncross.spal data/tuncross.shade \
+          data/spr_game.raw data/spr_game.pal \
+          data/tun.map
+
+audata = data/audio/popcorn.mod
+
+libs = libs/maxmod/libmm.a
+
 TCPREFIX = arm-none-eabi-
 
 CPP = $(TCPREFIX)cpp
@@ -13,15 +21,14 @@ CC = $(TCPREFIX)gcc
 AS = $(TCPREFIX)as
 OBJCOPY = $(TCPREFIX)objcopy
 OBJDUMP = $(TCPREFIX)objdump
-EMU = vbam
 
 opt = -O3 -fomit-frame-pointer -mcpu=arm7tdmi -mtune=arm7tdmi -mthumb -mthumb-interwork
-#dbg = -g
+dbg = -g
+inc = -I. -Ilibs/maxmod
 
-CFLAGS = $(opt) $(dbg) -pedantic -Wall -MMD $(def)
+CFLAGS = $(opt) $(dbg) -pedantic -Wall -MMD $(def) $(inc)
 ASFLAGS = -mthumb-interwork
-LDFLAGS = -mthumb -mthumb-interwork
-EMUFLAGS = -T 100 -f 1 --agb-print
+LDFLAGS = -mthumb -mthumb-interwork $(libs)
 
 -include cfg.mk
 
@@ -32,23 +39,48 @@ $(bin): $(elf)
        $(OBJCOPY) -O binary $(elf) $(bin)
        gbafix -r0 $(bin)
 
-$(elf): $(obj)
-       $(CC) -o $(elf) $(obj) -specs=gba.specs $(LDFLAGS)
+$(elf): data/snd.h $(obj) $(libs)
+       $(CC) -o $(elf) $(obj) -specs=gba.specs -Wl,-Map,link.map $(LDFLAGS)
 
 -include $(dep)
 
+src/data.o: src/data.s $(data)
+
 tools/pngdump/pngdump:
        $(MAKE) -C tools/pngdump
 
+tools/lutgen: tools/lutgen.c
+       cc -o $@ $< -lm
+
+tools/tungen: tools/tungen.c
+       cc -o $@ -O3 -fopenmp $< -lm -lgomp -lpthread
+
+tools/mmutil/mmutil:
+       $(MAKE) -C tools/mmutil
+
 #data/sprites.raw: data/sprites1.png data/sprites2.png data/sprites3.png data/sprites4.png data/sprites5.png data/sprites6.png
 #      tools/pngdump/pngdump -o $@ -n $^
 
+%.sraw: %.png tools/pngdump/pngdump
+       tools/pngdump/pngdump -o $@ -oc $(subst .sraw,.spal,$@) -os $(subst .sraw,.shade,$@) -s 8 $<
+
 %.raw: %.png tools/pngdump/pngdump
        tools/pngdump/pngdump -o $@ -n $<
 
 %.pal: %.png tools/pngdump/pngdump
        tools/pngdump/pngdump -o $@ -c $<
 
+data/lut.s: tools/lutgen
+       tools/lutgen >$@
+
+data/tun.map: tools/tungen
+       tools/tungen -s 240x160 -y -c 400 -n 32 >$@
+
+data/snd.bin: $(audata) tools/mmutil/mmutil
+       tools/mmutil/mmutil -o$@ -hdata/snd.h $(audata)
+
+data/snd.h: data/snd.bin
+
 .PHONY: clean
 clean:
        rm -f $(obj) $(bin) $(bin_mb) $(elf) $(elf_mb)
@@ -57,6 +89,10 @@ clean:
 cleandep:
        rm -f $(dep)
 
+.PHONY: cleanlibs
+cleanlibs:
+       $(MAKE) -C libs/maxmod clean
+
 .PHONY: install
 install: $(bin)
        if2a -n -f -W $<
@@ -67,8 +103,19 @@ run: $(bin_mb)
 
 .PHONY: simrun
 simrun: $(bin)
-       $(EMU) $(EMUFLAGS) $(bin)
+       mgba -2 $(bin)
+
+.PHONY: debug
+debug: $(elf)
+       mgba -2 -g $(bin) &
+       $(TCPREFIX)gdb $<
 
 .PHONY: disasm
 disasm: $(elf)
        $(OBJDUMP) -d $< >$@
+
+.PHONY: libs
+libs: $(libs)
+
+libs/maxmod/libmm.a:
+       $(MAKE) -C libs/maxmod