PROJ_ROOT := $(abspath $(CURDIR)/../..) EXAMPLE := rpgwalk EXTRA_FLAGS ?= --gfx 256 --memory tiny # rpgprof.exe в EXTRA_DATA — `make floppy` кладёт на дискету ОБА exe. EXTRA_DATA := bard1.atl bard2.atl bard.pal rpgprof.exe include $(PROJ_ROOT)/app.mk # Профилировочная копия демо (бордер-полосы + маркеры для wpiset) — # собирается вместе с rpgwalk; инструкция в шапке rpgprof.c. # ВНИМАНИЕ: --memory small (не tiny!) — rpgprof толще rpgwalk # (my_update + профиль-обвязка): в tiny его BSS вылезал за W2 # (0xC05B > 0xBFFF) → мгновенный «Unexpected application termination» # (кусало 2026-07-14; mkexe это переполнение пока НЕ ловит). all: rpgprof.exe floppy: rpgprof.exe rpgprof.exe: rpgprof.c $(MKEXE) $(LIB) $(RUNTIME_DEPS) $(PROJ_ROOT)/libbgi/_bgi.h $(SPRINTER_CC) --gfx 256 --memory small -o $@ rpgprof.c clean: clean-prof clean-prof: rm -f rpgprof.exe .PHONY: clean-prof # 8 персонажей по 12 кадров = 24 КБ пикселей — НЕ лезут в одну # EMM-страницу (лимит 16К-0x100): два атласа по 4 персонажа. sprites.stamp: conv_sprites.py $(PROJ_ROOT)/toolchain/mkatlas.py python3 conv_sprites.py python3 $(PROJ_ROOT)/toolchain/mkatlas.py bard1.atl \ char0.raw:16x16:1x12 char1.raw:16x16:1x12 \ char2.raw:16x16:1x12 char3.raw:16x16:1x12 python3 $(PROJ_ROOT)/toolchain/mkatlas.py bard2.atl \ char4.raw:16x16:1x12 char5.raw:16x16:1x12 \ char6.raw:16x16:1x12 char7.raw:16x16:1x12 touch $@ $(EXAMPLE).exe: sprites.stamp