3.1 KiB
3.1 KiB
Report — repository cleanup and the editor, now Unheard City (mission 2)
What works (verified)
- Repository: clean layout (
ackit/,app/,tests/,data/catalog/,docs/,tools/); old state in git tagpre-cleanup. One CLI (ackit) and one app (UnheardCity). - Toolkit: portable encoder (libvorbis via libsndfile; no Wwise, ffmpeg or vgmstream), WAD/pack injector, originals store with byte-exact revert, conflict detection, mod packages, Steam/Linux/Proton game discovery.
- Catalog: CSVs for ITA/INT/FRA/DEU/ESN/SFX (11,467 sounds per speech language set), categories, verified
speakers from the user's lists (3,366 lines in every language), inferred characters for the rest, original
sizes and checksums. Schema in
data/catalog/README.md. - Editor: browse/search/filter, listen (A/B, loop, waveforms), replace from file or recording, trim/gain/ normalize/loudness, apply/revert/revert all, changed-underneath warnings, notes/tags/favorites, mod export/import, settings.
- Tests: 75 automated tests (synthetic game, real-game read-only tests, offscreen GUI tests) pass.
ackit verify(offline self-check on the installed game) PASS. - Real game:
ackit verify --ingamePASS (ncc 1.0);tools/e2e_editor.py— replacement applied through the editor is heard in the game (ncc 1.0, no crash), revert leaves WAD and pack index byte-identical; a speech line applied and reverted byte-identically. Game files are original at the end. - Package (Windows x86-64):
dist/UnheardCity-2.0.0-windows-amd64.zip(78 MB) withTHIRD_PARTY_LICENSES.txt; runs its smoke test and starts the GUI withPATHreduced toC:\Windows. Contains a per-user installer (Install.cmd): install, upgrade and uninstall (Settings > Apps) verified.
What is not verified / limitations
- Linux package not executed: no Linux machine, WSL distribution or container runtime was available. The code
is portable (no Windows-only calls outside the developer-only in-game harness), Linux/Proton discovery is unit
tested with a simulated home folder, and the build procedure + CI workflow are provided
(
docs/building.md,.github/workflows/build.yml). - Speech lines being heard in the game needs gameplay; verified indirectly (same decoder/WAD path as the music test, byte-level apply/revert, boot test with modified speech WAD).
- Speech/effects replacements must fit the original's size (index lives in compressed
.upkpackages). - Channel order for 4-6 channel sounds is unverified (tests used identical channels).
- Inputs: WAV/FLAC/OGG/OPUS/MP3/AIFF built in; M4A/AAC/WMA only with an ffmpeg installed on the system.
- Character labels outside the user's lists are inferred from names (marked as such), not verified speakers.
Next steps
- Run the CI workflow (or the Linux steps in
docs/building.md) on Ubuntu 22.04 and test the tarball on a Steam Deck/desktop with the game under Proton. - Extend the curated speaker lists (
data/catalog/source/<lang>/*.txt) and rebuild withtools/build_catalog.py. - Optional: rewrite the BKPK indexes inside
.upkpackages (LZO) to lift the size limit for speech.