34ba5f71d5
Путь C из sound_plan.md вместо ранее выбранного A (ноты спикера на AY). Причина смены: появились готовые записи DOS-версии, и строка «нужен синтезатор на хосте», из-за которой C считался дорогим, отпала — осталось `ffmpeg -ac 1 -ar 10937 -f u8`. Оцифровки музыки в самой игре нет вовсе: digisnd*.dat содержит только эффекты, музыка лежит MIDI под Adlib, так что конвертировать ресурс игры всё равно было не из чего. * toolchain/pop_pack_music.py — запись flac -> сырой u8 на 10 937,5 Гц (частота CBL, чтобы её не переключать никогда), нарезка на куски MUS\m<id>_<nn>.bin по 16 КБ: bank_load_file читает файл только целиком и только в одну страницу. Каталог -> pop_music_tbl.h; длина трека хранится ПОРЦИЯМИ по 128 байт — 169 КБ в uint16 не влезает, 1350 блоков влезает (32-бит арифметики на Z80 избегаем). * pop_music.c (банк 9) — загрузка трека в EMM и курсор; pop_sfx_fill (резидент) получил третий источник: эффект важнее музыки, музыка важнее тишины. Эффект музыку не сбрасывает — её курсор стоит, пока тот доигрывает, и она продолжается с места. * story_1_absence звучит на первом экране истории, где была тишина. Грузим ПОСЛЕ сборки картинки: чтение идёт через ESTEX, и при открытом CBL насос не успел бы долить блок. Проверено записью звука из MAME: корреляция огибающих с эталоном 0,836 при сдвиге 1,8 с, RMS 22,6 против 18,3 (разница — 8-битное квантование). Эффекты двери в PV-сцене после трека звучат по-прежнему. Бюджет: резидент +83 Б кода и +25 Б данных, запас W2 151 Б (кучи в приложении нет, malloc не слинкован); банк 9 занят на 88 %. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
130 lines
3.9 KiB
Plaintext
130 lines
3.9 KiB
Plaintext
# ===========================================================================
|
||
# 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/
|