Tsuchinoko Real?!

This commit is contained in:
fate6 2024-12-29 15:39:10 -08:00
parent 4c25ed9a98
commit 661f983e1d
906 changed files with 57143 additions and 0 deletions

View file

@ -0,0 +1,174 @@
TOP := $(dir $(lastword $(MAKEFILE_LIST)))
GBDK = $(TOP)../gbdk
CC = $(GBDK)/bin/lcc
TEST_DIR = $(TOP)test
TEST_FW = $(TEST_DIR)/framework
EXAMPLES_DIR = ./examples
EMU = $(TOP)../bgb/bgb
GBSPACK = $(TOP)../gbspack/gbspack
TEST_CHK = python $(CURDIR)/$(TEST_FW)/unit_checker.py
GBS_CLI = node $(TOP)../gb-studio/out/cli/gb-studio-cli.js
PLATFORM =
ROMTITLE = "GBSTUDIO"
ROM_BUILD_DIR = build
OBJDIR = obj
REL_OBJDIR = obj/_rel
CFLAGS = $(PLATFORM) -I$(TOP)include -Wa-I$(TOP)include
LFLAGS_NBANKS += -Wm-yoA -Wm-ya4
LFLAGS_SYMBOLS = -Wl-j -Wl-m -Wl-w -Wm-yS
LFLAGS = $(PLATFORM) -Wm-yt$(CART_MBC) $(LFLAGS_NBANKS) $(LFLAGS_SYMBOLS) -Wl-klib -Wl-g.STACK=0xDF00 -Wi-e
PACKFLAGS = -b 1 -f 255 -e rel -c
EMUFLAGS = \
-set "Color0=E8E8E8" \
-set "Color1=A0A0A0" \
-set "Color2=585858" \
-set "Color3=101010" \
-set "DebugWRAMbreak=0" \
-set "DebugSrcBrk=1" \
-hf -stateonexit \
-screenonexit ./capture.bmp
EMU_FORCE_DMG = -set "SystemMode=0"
TARGET = $(ROM_BUILD_DIR)/rom.gb
ASRC = $(foreach dir,$(TOP)src,$(notdir $(wildcard $(dir)/*.s)))
CSRC = $(foreach dir,$(TOP)src,$(notdir $(wildcard $(dir)/*.c)))
ACORE = $(foreach dir,$(TOP)src/core,$(notdir $(wildcard $(dir)/*.s)))
CCORE = $(foreach dir,$(TOP)src/core,$(notdir $(wildcard $(dir)/*.c)))
CSTATES = $(foreach dir,$(TOP)src/states,$(notdir $(wildcard $(dir)/*.c)))
ASTATES = $(foreach dir,$(TOP)src/states,$(notdir $(wildcard $(dir)/*.s)))
ENGINE_OBJS = $(CSRC:%.c=$(TOP)$(OBJDIR)/%.o) \
$(ASRC:%.s=$(TOP)$(OBJDIR)/%.o) \
$(ACORE:%.s=$(TOP)$(OBJDIR)/%.o) \
$(CCORE:%.c=$(TOP)$(OBJDIR)/%.o) \
$(CSTATES:%.c=$(TOP)$(OBJDIR)/%.o) \
$(ASTATES:%.s=$(TOP)$(OBJDIR)/%.o)
OBJS = $(ENGINE_OBJS)
REL_OBJS = $(OBJS:$(OBJDIR)/%.o=$(REL_OBJDIR)/%.rel)
all: settings directories BUILD
.PHONY: directories clean release debug profile AP DMG CGB SGB MBC3 MBC5 hUGE GBT test rom BUILD
.SECONDARY: $(OBJS)
AP:
$(eval PLATFORM = -msm83:ap)
$(eval TARGET = $(patsubst %.gb,%.pocket,$(TARGET)))
@echo "Analogue pocket build"
release:
$(eval CFLAGS += -Wf'--max-allocs-per-node 50000')
@echo "RELEASE mode ON"
debug:
$(eval CFLAGS += -Wf--fverbose-asm -Wf--debug -Wl-m -Wl-w -Wl-y -DVM_DEBUG_OUTPUT)
$(eval CFLAGS += -Wf--nolospre -Wf--nogcse)
$(eval LFLAGS += -Wf--debug -Wl-m -Wl-w -Wl-y)
@echo "DEBUG mode ON"
profile:
$(eval CFLAGS += -Wf--profile)
@echo "PROFILE mode ON"
DMG:
@echo "DMG mode ON"
CGB:
$(eval CFLAGS += -DCGB)
$(eval LFLAGS += -Wm-yC)
@echo "CGB mode ON"
SGB:
$(eval CFLAGS += -DSGB)
$(eval LFLAGS += -Wm-ys)
@echo "SGB mode ON"
batteryless:
$(eval PACKFLAGS += -a 4)
$(eval BATTERYLESS = 1)
$(eval CFLAGS += -DBATTERYLESS)
@echo "BETTERYLESS SAVE ON"
MBC3:
$(eval CART_MBC = 0x10)
@echo "Using MBC3"
MBC5:
$(eval CART_MBC = 0x1B)
@echo "Using MBC5"
hUGE:
$(eval CFLAGS += -DHUGE_TRACKER)
$(eval LFLAGS += -Wl-l$(TOP)lib/hUGEDriver.lib)
@echo "Enable hUGETracker"
GBT:
$(eval CFLAGS += -DGBT_PLAYER)
$(eval LFLAGS += -Wl-l$(TOP)lib/gbt_player.lib)
$(eval PACKFLAGS += -s 1:800)
@echo "Enable GBTPlayer"
directories: $(ROM_BUILD_DIR) $(OBJDIR) $(REL_OBJDIR)
$(ROM_BUILD_DIR):
mkdir -p $(ROM_BUILD_DIR)
$(OBJDIR):
mkdir -p $(OBJDIR)
mkdir -p $(TOP)$(OBJDIR)
$(REL_OBJDIR):
mkdir -p $(REL_OBJDIR)
$(TOP)$(OBJDIR)/%.o: $(TOP)src/core/%.c
$(CC) $(CFLAGS) -Wf-MMD $(filter -Wf-ba%, $(subst .d,-Wf-ba,$(suffix $(<:%.c=%)))) -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/core/%.s
$(CC) $(CFLAGS) -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/states/%.c
$(CC) $(CFLAGS) -Wf-MMD -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/states/%.s
$(CC) $(CFLAGS) -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/%.c
$(CC) $(CFLAGS) -Wf-MMD -c -o $@ $<
$(TOP)$(OBJDIR)/%.o: $(TOP)src/%.s
$(CC) $(CFLAGS) -c -o $@ $<
$(REL_OBJDIR)/linkfile.lk: $(OBJS)
mkdir -p $(REL_OBJDIR)
$(shell rm -f $(REL_OBJDIR)/packfile.pk)
$(foreach O,$(OBJS),$(shell echo $O >>$(REL_OBJDIR)/packfile.pk))
$(eval CART_SIZE=$(shell $(GBSPACK) $(PACKFLAGS) -o $(REL_OBJDIR) -i $(REL_OBJDIR)/packfile.pk))
$(shell echo -g __start_save=$(shell expr $(CART_SIZE) - 4 ) >$@)
$(foreach O,$(REL_OBJS),$(shell echo $O >>$@))
BUILD: $(REL_OBJDIR)/linkfile.lk
$(CC) $(LFLAGS) -Wm-yn$(ROMTITLE) -o $(TARGET) -Wl-f$<
clean:
@echo "CLEANUP..."
rm -rf $(TOP)$(OBJDIR)
rm -rf $(OBJDIR)
rm -rf $(ROM_BUILD_DIR)
rm -f $(TEST_DIR)/*/capture.bmp
rm -rf $(TEST_DIR)/*/obj
rm -rf $(TEST_DIR)/*/build
rm -rf $(EXAMPLES_DIR)/*/obj
rm -rf $(EXAMPLES_DIR)/*/build
rom: directories BUILD