SSFEdit is a Delphi 7 VCL desktop utility for inspecting and editing KotOR/TSL soundset definition files (.ssf). Each .ssf entry points to a StrRef in dialog.tlk, and the application resolves that reference to both the spoken sound resource name and the display text shown in the grid.
The source of truth in this repository is the Pascal code, not the current VS Code tasks. Some developer worktrees may contain ignored Windows executables and binary form/resource artifacts, but the canonical source entrypoint is USSFEdit.dpr.
The non-technical user manual lives in the GitHub wiki.
In a local clone, that same manual is checked out through the top-level wiki/ submodule.
- Opens an existing
.ssffile or starts a new blank one. - Prompts for a
dialog.tlkfile before SSF editing begins. - Displays the fixed set of 40 soundset slots used by the game.
- Lets the user replace a slot's
StrRefdirectly. - Lets the user append a brand-new TLK entry and assign that new
StrRefto the selected slot. - Saves modified TLK data first, then writes the updated SSF file.
USSFEdit.dpr: application startup and optional CLI autoload of a.ssfpath.USSFFile.pas: SSF v1.1 serializer/deserializer.UTLKFile.pas: TLK v3.0 serializer/deserializer.UST_Common.pas,StoffeUtils.pas: legacy helper utilities.docs/workflows.md: user-visible workflow map for the legacy UI behavior.
- BUILD.md
- ARCHITECTURE.md
- CONVENTIONS.md
- CONTRIBUTING.md
- AGENTS.md
- GitHub wiki
- docs/knowledgebase/00-intent/ssfedit-repo-intent.md
- docs/file-formats.md
- docs/manual-validation.md
- docs/workflows.md
- docs/limitations.md
- The repo surface is small and self-contained. There is no automated test suite, but the repo now has focused root docs plus deeper workflow, validation, and knowledgebase companion docs.
- The checked-in
.vscodetasks, launch configs, file nesting patterns, and extension recommendations are aligned to the SSFEdit project surface. .gitignorecurrently excludes several artifact types that are nevertheless present in the working tree, including.exe,.cfg,.dfm, and.res. Be explicit when intentionally changing those files.
For deeper operational detail, use the topic docs under docs/ rather than expanding the root files as ad hoc catch-alls.
- Open
USSFEdit.dprin Delphi 7. - Build the project.
- Launch the resulting executable, optionally with a
.ssfpath as the first argument.
There is no native build path in the current repo. If Wine is available, you can run an existing Windows build from the workspace root, for example:
wine ./USSFEdit.exeor:
wine ./SSFEdit.exeAt runtime the app will still prompt for dialog.tlk before it can load or create SSF content.