Skip to content

Build and Run

Jason edited this page Aug 18, 2026 · 3 revisions

Build and Run

Use the HST-specific PowerShell manager from the repository root. It supplies the current title profile and resolves the documented local-input layout.

Recommended workflow

flowchart LR
    A["Doctor<br/>check dependencies"] --> B["BuildFull<br/>analyze + generate + compile"]
    B --> C["Verify<br/>run source-owned gates"]
    C --> D["Run<br/>launch selected route"]
    D --> E["Classify result<br/>build โ‰  acceptance"]
Loading

Manager actions

Intent Command Notes
Complete build .\hst_manager.ps1 -Action BuildFull Regenerates analysis/codegen output, then compiles.
Fast rebuild .\hst_manager.ps1 -Action BuildFast For a valid runtime-focused incremental change.
Focused tests .\hst_manager.ps1 -Action Test Runs the manager's narrower configured selftest route.
Aggregate verification .\hst_manager.ps1 -Action Verify May report private/external-oracle portions as blocked when inputs are absent.
GUI run .\hst_manager.ps1 -Action Run Launches the configured GUI/runtime route.
Software renderer .\hst_manager.ps1 -Action Run -SoftwareRender Uses the software comparison path.
Bounded headless run .\hst_manager.ps1 -Action Run -NoGui -Duration 30 Useful for a time-bounded non-GUI route.

Performance and benchmark profiles are available through the manager; add -GuestProfile only when guest-PC hotspot summaries are needed. Diagnostic profiles clear stale presence-based switches before launch.

Optimization profiles

Profile Runtime Generated code
Current HST profile -O2 -O1
Generic/unqualified title -O0 -O0

Explicit RUNTIME_OPT and RECOMP_OPT overrides remain supported. HST defaults are title-profile choices, not universal requirements.

Direct Make

The direct Make path is useful for toolchain inspection or a controlled build:

mingw32-make --no-print-directory compiler-info
mingw32-make GAME_NAME=hst GAME_ELF=<your-decrypted-ELF> GAME_BASE=0 GAME_ENTRY=0 all

Direct Make callers must provide VULKAN_SDK as an environment or Make variable. The manager discovers and validates the SDK automatically. The all target intentionally uses two Make phases so generated chunks are discovered after the second process reparses the Makefile.

Generated output

  • Generated C and executables live under ignored build output.
  • Chunk count is dynamic and controlled by FUNCS_PER_CHUNK.
  • Change generator, analysis/import, or runtime source and regenerate; never hand-edit a translation unit.
  • Content-addressed manifests, shader freshness checks, and dependency metadata guard common stale-build cases.

Note

The guest framebuffer is 480x272. The current SDL path starts a resizable 960x544 host window, which is 2x-style presentationโ€”not a selectable native 480x272/1x mode. See Graphics and Display.

Troubleshooting map

Symptom First stop
SDK/header discovery failure Run the doctor and check docs/SETUP.md.
Missing runtime DLL Follow the runtime-DLL section of the setup guide.
Unknown NID Treat it as an HLE gap; read Runtime and HLE.
Ambiguous visual/audio symptom Compare bounded software/Vulkan or media paths, then use Debugging.

The verification guide explains exactly what each command can establish.

Nakagawa Recomp

Architecture

Development

Project

Research site

Clone this wiki locally