The path from mountain to game
Slopesmith exports an editable mountain into OpenSlope’s portable map format. Snowknife combines that export with data from your own SSX Tricky disc image, replacing a course slot in a separate output image.
Before starting, have:
- A Slopesmith mountain that you have already test-ridden.
- A clean PAL or NTSC-U SSX Tricky PS2 ISO that you are permitted to make and use.
- The imported
Maps/<SLOT>folder for the same course slot and source image. - The .NET SDK version specified by OpenSlope’s global.json, plus the repository’s SSX-Library submodule.
- Space for a second ISO and temporary build files, and a working PCSX2 setup.
New to Slopesmith? Start with the first-mountain guide. You can create and ride original courses in the browser without any disc image.
01. Export your mountain
In Slopesmith, choose Export map… and review the export’s preflight results. Save the portable map folder somewhere you can find from your terminal.
The export includes Repack.md, a recipe with the next commands for that map. Keep it with the export. For the examples below, place the map files in Exports/MyMountain beneath your OpenSlope checkout.
Keep the editable mountain too. The project is where you make the next change; the map is the artifact that the other tools consume.
02. Prepare the conversion tools
Run these commands from the OpenSlope repository root:
git submodule update --init --recursive
dotnet build Snowknife/Snowknife/Snowknife.csproj -c DebugWait for a successful build. If the SDK is missing, install the version selected by global.json; a different .NET 10 feature band may not satisfy the repository’s version pin.
This example uses Garibaldi’s GARI slot. Replace the ISO path with your own, then import into a fresh folder. If you have already imported the matching course, reuse that folder instead of overwriting it.
$iso = "C:/path/to/ssx-tricky.iso"
$snowknife = "Snowknife/Snowknife/bin/Debug/net10.0/snowknife.dll"
dotnet $snowknife import $iso GARI Maps/GARIBoth GARI arguments identify the donor course. Keep the source ISO, slot, and imported map consistent. For other supported slots and the full import workflow, see the import guide.
03. Check the plan first
In the same PowerShell session, run the repack with --dry-run. It checks the build plan without writing an output ISO:
dotnet $snowknife repack $iso GARI Maps/GARI Exports/MyMountain ssx-custom.iso --dry-run --texture-type2 --bare-slot --no-skycolorReview the reported findings, texture assignments and budgets, path selection, and sky plan. Resolve errors before making the final image; warnings can identify tradeoffs that affect how your course behaves.
--texture-type2uses the recommended indexed format for authored texture pages.--bare-slothides the donor course’s props and silences their sounds while retaining its start/finish markers.--no-skycolorskips applying the export’s sky top color. This recipe also selects no executable patches.
These are the standard original-course defaults. If your export’s generated Repack.md has more specific instructions, follow that recipe and consult the full repacking reference.
04. Build a separate image and test
Once the plan is acceptable, remove --dry-run:
dotnet $snowknife repack $iso GARI Maps/GARI Exports/MyMountain ssx-custom.iso --texture-type2 --bare-slot --no-skycolorSnowknife reads the source image and writes a separate ssx-custom.iso. Load the output in your configured PCSX2 installation and select the course slot you replaced.
Repacking does not unlock that course in the game’s menus. Choose a slot available in the intended mode and profile, and check with a fresh memory card when evaluating a release workflow.
Ride the whole route. Check the start, terrain transitions, rail approaches, collisions, and finish. A successful build is the beginning of playtesting, and the browser and original game remain different runtimes.