Files
Sprinter-SDCC/.gitignore
T
snark13 31b82661eb SprPoP: автономное приложение, выделенное из roomtest
Порт PoP переехал в applications/SprPoP — приложение, которое собирается
само: код, оригинальные данные, конверторы ресурсов и сборка внутри одной
папки.  Наружу знает единственный путь — корень тулчейна (SPRINTER_ROOT,
по умолчанию ../..).  applications/PoP/roomtest ЗАМОРОЖЕНА и остаётся
архивом закрытых задач, багов и исполненных планов.

Скопировано из applications/PoP/roomtest@4b74478.  Перенос проверен
побайтово: собранный sprpop.exe совпал с roomtest.exe того же коммита,
все 39 дисковых ресурсов и все 16 генерируемых заголовков — тоже, host-
тесты зелёные (15/15).

Раскладка:
  src/           рукописный C (roomtest.c -> sprpop.c)
  gen/           генерируемые заголовки, в репозитории
  assets/orig/   оригинальные данные игры, вне репозитория (копирайт)
  assets/packed/ то, что ложится на диск, в раскладке диска
  tools/         конверторы; все пути — в одном tools/paths.py
  build/         выход: exe, каталоги ресурсов, hdd/, промежуточные atl/

Сборка ресурсов: assets/packed и gen — версионируемые ВХОДЫ, а не то, что
пересчитывается каждым make.  Автоматика построена на ОТСУТСТВИИ файла, а
не на таймстемпах: git не хранит времена, и в свежем клоне сравнение по
времени превращалось бы в лотерею.  Недостающий ресурс или заголовок
чинится сам, рекурсивным вызовом в ветку генерации.

Музыка собирается из любого из четырёх наборов записей (make music-mp3,
music-mt32, ...); набор входит в имя stamp'а, поэтому смена набора сама
делает музыку устаревшей.  Длины реплик больше не захардкожены: упаковщик
печатает их в gen/pop_music_ticks.h, и шкала сцены выражена через них —
иначе mt32 (реплики на 6% длиннее) молча ломал катсцену.

Тулчейн: в app.mk два обратносовместимых крючка (SRC_DIR/BUILD_DIR),
HDD_IMG стал ?=; команда сборки roomtest не изменилась.  Корневой
make host-tests переключён на SprPoP.

Подгонка тайминга катсцены с принцессой (PV_MAGIC_LEAD): сцена
render-bound и идёт ~49 тиков/с вместо 60, из-за чего кода реплики
приходила раньше молнии.  Это обход, а не лечение; разбор с замерами —
docs/BUGS_OPEN.md, записи SND-PACE-DEAD, PV-RENDER-BOUND, MUS-LEFT-TEAR.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 12:12:28 +03:00

147 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ===========================================================================
# Build outputs
# ===========================================================================
# `build/` directories anywhere in the tree
# (top-level build/, libc/build/, libbgi/build/, toolchain/*/build/, ...)
build/
# sprinter-cc per-example intermediate directory
.sprinter-cc-*/
.resource-stamps/
# Per-program final/intermediate outputs landing alongside the source
# (real apps under examples/ and libc feature tests under tests/).
examples/*/*.exe
examples/*/*.asm
examples/*/*.lst
examples/*/*.lk
examples/*/*.ihx
examples/*/*.noi
examples/*/*.sym
examples/*/*.map
examples/*/*.rel
examples/*/*.cdb
examples/*/*.mem
examples/*/*.rst
# Temporary build directory for floppy disk image preparation
examples/*/.disk_tmp/
tests/*/*.exe
tests/*/*.asm
tests/*/*.lst
tests/*/*.lk
tests/*/*.ihx
tests/*/*.noi
tests/*/*.sym
tests/*/*.map
tests/*/*.rel
tests/*/*.cdb
tests/*/*.mem
tests/*/*.rst
# applications/<app>/<prog>/ — реальные приложения (та же схема, что
# examples/ и tests/, но на уровень глубже: applications/PoP/roomtest/...)
applications/*/*/*.exe
applications/*/*/*.asm
applications/*/*/*.lst
applications/*/*/*.lk
applications/*/*/*.ihx
applications/*/*/*.noi
applications/*/*/*.sym
applications/*/*/*.map
applications/*/*/*.rel
applications/*/*/*.cdb
applications/*/*/*.mem
applications/*/*/*.rst
# PoP-порт: внешние референс-репозитории (собственные git-клоны — НЕ
# часть этого репозитория) + оригинальные game-данные (копирайт, только
# для реверса форматов на этой машине).
applications/PoP/SDLPoP/
applications/PoP/mininim/
applications/PoP/PR/
applications/PoP/Prince-of-Persia-Apple-II/
applications/PoP/MSDOS/
# libc + libbgi archives (built by libc/Makefile + libbgi/Makefile)
lib/*.lib
# Host-built mkexe binary + test outputs (input fixtures *.bin/*.ihx kept)
toolchain/mkexe/mkexe
toolchain/mkexe/tests/*.exe
toolchain/mkexe/tests/*.actual
# Host-C build artifacts (mkexe and similar tools compiled with native cc)
*.o
*.obj
*.dSYM/
# ===========================================================================
# Vendored / downloaded
# ===========================================================================
# SDCC: extracted source tree + download tarballs
# (only third_party/setup-sdcc.sh tracked)
third_party/sdcc/
third_party/sdcc-*/
third_party/*.tar.bz2
third_party/*.tar.gz
# MAME emulator install — ~1 GB binary + ROMs + CHDs
mame/
# ===========================================================================
# OS / editor / AI assistant
# ===========================================================================
# macOS
.DS_Store
._*
# Editor swap / backup
*~
*.swp
*.bak
*.orig
*.rej
# IDEs
.vscode/
.idea/
.kilo/
# Claude Code local settings (per-machine, not for the repo)
.claude/
# Тяжёлые справочные материалы, НЕ версионируются: docs/extra — архивы
# исходников (~570 МБ, четыре почти одинаковых bad_apple), docs/sources —
# клоны чужих репозиториев (Sprinter-BIOS, Estex-DSS, SaymanNsk) со своими
# .git внутри (в коммите стали бы битыми gitlink-ссылками).
docs/extra/
docs/sources/
# Записи музыки DOS-версии PoP (43 МБ в четырёх форматах) — ИСТОЧНИК для
# toolchain/pop_pack_music.py, а не ресурс сборки: на диск игры уходят уже
# упакованные poc/res/music/*.bin, и они в репозитории есть. Если понадобится
# перегенерировать музыку — положить сюда PoP1_DOS_music (flac).
applications/PoP/PoP1_DOS_music/
# R1 — рабочая копия roomtest для экспериментов пользователя, в репозиторий
# не идёт (сама roomtest и есть версируемая ветка разработки).
applications/PoP/R1/
# SprPoP — автономное приложение. В репозиторий идут исходники, генерируемые
# заголовки (gen/) и упакованные ресурсы (assets/packed/), потому что без них
# из чистого клона ничего не собрать. НЕ идут:
# assets/orig/ оригинальные данные игры — копирайт (SDLPoP, MSDOS,
# записи музыки DOS-версии); откуда их взять,
# написано в assets/orig/README.md
# assets/packed/LEVELS/ уровни res20xx.bin ложатся на диск прямо из
# оригинала, конвертации нет — то есть это тот же
# копирайтный материал, только в раскладке диска
# build/ уже покрыт общим правилом build/ выше
applications/SprPoP/assets/orig/
applications/SprPoP/assets/packed/LEVELS/