DaymareOn / DaymareOn/FSMP-MCM

Add 'Force AVX variant' dropdown that writes the loader INI

Open
#17 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Papyrus
Stars
3
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Follow-up to DaymareOn/hdtSMP64#384 (runtime CPU auto-selecting loader).

The hdtSMP64 loader now auto-picks the best AVX build at launch and reads an optional override from `SKSE/Plugins/hdtSMP64_loader.ini`:

```ini
[Loader]
ForceVariant = auto ; auto | noavx | avx | avx2 | avx512
```

## Ask
Add an MCM control (dropdown / enum) **Force CPU optimization** with options Auto / No AVX / AVX / AVX2 / AVX512 that writes `ForceVariant` into that INI.

## Notes
- Variant selection happens at `SKSEPlugin_Load` (before Papyrus exists), so a change only takes effect on the **next game launch** — label it 'restart required'.
- 'Auto' should write `ForceVariant = auto`, which also clears the loader's persisted crash-ceiling so a past crash no longer constrains the choice.
- The loader clamps any forced tier down to what the CPU actually supports, so it is safe to expose all options.
- Writing the INI from Papyrus: use the project's existing config-write mechanism (e.g. PapyrusUtil/MCM Helper file write) targeting `Data/SKSE/Plugins/hdtSMP64_loader.ini`.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the existing MCM control and config-write mechanism, then trace how it can write Data/SKSE/Plugins/hdtSMP64_loader.ini. Use the loader's SKSEPlugin_Load behavior as the boundary: done means the Force CPU optimization options write the corresponding ForceVariant value and clearly indicate that a restart is required.

Written by the indexing model from the issue text.

Assessment

Domain
game-dev
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.