Systems / PC

LSWTCS_Rebricked

LEGO Star Wars: The Complete Saga (2009)

Status
In game
Platforms
Linux x86-64; macOS on Apple Silicon (in game, scripted runs)
Game release
Steam (app 32440)
Repository
JTM-rootstorm/LSWTCS_Rebricked
SwARc
platforms/win32 (commits)
Updated
2026-11-10

A native port of LEGO Star Wars: The Complete Saga, and the game that brought Direct3D 9, D3DX 9 and the HLSL translator into SwARc: its renderer generates HLSL at run time. Goals beyond running natively: widescreen at any resolution and aspect ratio, and an uncapped frame rate as an option.

Status

The Steam EXE unpacks statically (SteamStub 2.1), is lifted, and runs natively on Linux. Verified:

Not yet tested: the minikit build and status screen after a tally, returning to the cantina, saving and loading, chapters past Negotiations, the ending.

macOS

Builds and runs on Apple Silicon (tested on an M3 Pro, macOS 27) with SDL_GPU on Metal, and passes its tests. Scripted runs show the legal screens, the attract movie, the title screen and the menus, then New Game into the cantina at a steady 60 fps (fullscreen and windowed) with the characters’ shadows; with LSWTCS_LEVEL, Negotiations loads and runs. Not yet played by hand on the Mac: scripted keys do not reach the game’s DirectInput keyboard in a background window, so the player has not been moved there. Bringing it up on Metal fixed four things in SwARc: the window title (Windows-1252 text), the hidden fullscreen window, rendering to mip levels, and sampler LOD bias, which Metal lacks (the shadows).

Frame rate

The original caps itself at about 85 fps, and accepts only display modes up to 85 Hz, so faster displays get the cap on Windows too. The port paces it by the host’s refresh rate instead: a 120 Hz display gets a steady 120 fps.

Known issues

Next

  1. Play on past the Negotiations tally: the minikit build, the status screen, back to the cantina, saving and loading, the next chapters.
  2. More shaders as levels reach more materials.
  3. The other enhancements: arbitrary aspect ratios and the resolution list.
  4. First-play hitches, if they matter: pipelines built on worker threads, or smaller shaders.

The project’s FINDINGS.md tracks progress and ARCHITECTURE.md the plan.

Recent commits

  1. README: frame pacing, first-play hitches, tests, switches, legal
  2. Build against SwARc main
  3. Build: SwARc's win32 branch (the SwARc-win32 worktree)
  4. Frame limiter: pace by the host's refresh rate; FINDINGS: frame pacing, tally played
  5. FINDINGS: the driver caches pipelines between runs; the tally warp is empty

All commits