# ===========================================================================
# 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/

# Python host-tools: bytecode всегда воспроизводим и не входит в исходники.
__pycache__/
*.py[cod]

# ===========================================================================
# 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 — автономное приложение, и правила игнора у него СВОИ:
# applications/SprPoP/.gitignore.  Он написан так, чтобы стать корневым
# .gitignore, когда SprPoP выделят в отдельный репозиторий, — поэтому
# здесь его содержимое НЕ дублируется (иначе разъедется).  Коротко: в
# репозиторий не идут assets/orig/ (чужие данные — их выкачивает
# `make fetch`) и assets/packed/LEVELS/ (уровни из оригинала как есть).

# Локальные пути MCP; общая конфигурация .codex остаётся в Git.
/.codex/mame.local.env
