maj00r b60c176533 Merge feat/opengl-vulkan: settings for the OpenGL 4.6 and Vulkan 1.4 simulator
A transitional variant, since the exe a player runs may not have the new
renderers. The old renderers stay in the list and the old keys are still written
next to the new ones. A new exe without Vulkan starts OpenGL by itself, an old one
reads the word as its legacy renderer, and both pass over the keys they do not know.

Taken from Hirek193's branch:
- the new keys as rows of a section of their own, with their texts
- their values on the graphics levels, in steps over the six levels here, with
  High as what the simulator does with nothing set
- Vulkan 1.4 in the list of renderers, and its own keys marked as idle without it
- gfx.buffer.percent next to the old buffer keys, read before them
- gfx.antialiasing saved below multisampling, for the later line to count

Keys checked against feat/gl46-migration of the simulator.

Left out, as this branch has its own or does not need them: the rewritten settings
page and its five levels, GraphicsRules, the DLSS library check, eu07.ini import and
export, and the removal of the old renderers.
2026-11-01 19:43:46 +01:00
2026-10-04 13:50:41 +02:00
2025-12-23 08:47:36 +01:00
2025-12-23 08:47:36 +01:00
2026-08-30 22:29:45 +02:00

StarterNG

Launcher for the MaSzyna train simulator, written in C# with Avalonia.

Building a native (NativeAOT) build

The project publishes as a self-contained NativeAOT binary — no .NET runtime is needed on the target machine. The commands below are the same ones CI runs, see .github/workflows/dotnet.yml.

Requirements:

  • .NET SDK 9
  • Linux: a native toolchain and zlib headers — sudo apt install clang zlib1g-dev (Debian/Ubuntu) or sudo dnf install clang zlib-devel (Fedora)
  • Windows: the Visual Studio C++ build tools (Desktop development with C++)

Restore for the target runtime first, then publish:

dotnet restore StarterNG/StarterNG.csproj -r linux-x64

dotnet publish StarterNG/StarterNG.csproj \
    -c Release -r linux-x64 --self-contained true --no-restore \
    -p:PublishAot=true -p:PublishTrimmed=true \
    -o publish/linux-x64

For a Windows build swap both linux-x64 occurrences for win-x64 (and the line continuations for PowerShell backticks). NativeAOT does not cross-compile, so the Windows package has to be built on Windows and the Linux one on Linux — that is why CI uses a windows-2022 and an ubuntu-22.04 runner.

The output directory is the whole distributable: the Starter executable, the Skia/HarfBuzz native libraries and startercfg/ with the translations and the default key bindings. The .dbg (or .pdb) file next to it is debug symbols and can be dropped from a release. Trim/AOT analysis warnings during the publish are expected and do not fail the build.

CI builds both runtimes on every push and pull request to main and staging, and on manual dispatch. Pushes additionally replace a rolling pre-release with the packaged artifacts — tagged latest for main and staging for staging.

Development build

dotnet build StarterNG/StarterNG.csproj
Description
No description provided
Readme MPL-2.0 2.2 MiB
Languages
C# 100%