Skip to content

Commit

Permalink
refactor: backend game launch logic + dxvk hud implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
vapidinfinity committed Jan 15, 2025
1 parent d53ee57 commit 938e3aa
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 10 deletions.
17 changes: 12 additions & 5 deletions Mythic/Utilities/Legendary/LegendaryInterface.swift
Original file line number Diff line number Diff line change
Expand Up @@ -404,19 +404,26 @@ final class Legendary {
needsUpdate(game: game) ? "--skip-version-check" : nil
] .compactMap { $0 }

var environmentVariables = ["MTL_HUD_ENABLED": container.settings.metalHUD ? "1" : "0"]
var environmentVariables: [String: String] = .init()

if case .windows = game.platform {
arguments += ["--wine", Engine.directory.appending(path: "wine/bin/wine64").path]
// required for launching w/ legendary
environmentVariables["WINEPREFIX"] = container.url.path(percentEncoded: false)
environmentVariables["WINEMSYNC"] = "\(container.settings.msync.numericalValue)"
environmentVariables["ROSETTA_ADVERTISE_AVX"] = "\(container.settings.avx2.numericalValue)"

environmentVariables["WINEMSYNC"] = container.settings.msync.numericalValue.description
environmentVariables["ROSETTA_ADVERTISE_AVX"] = container.settings.avx2.numericalValue.description

if container.settings.dxvk {
environmentVariables["WINEDLLOVERRIDES"] = "d3d10core,d3d11=n,b"
environmentVariables["DXVK_ASYNC"] = container.settings.dxvkAsync.numericalValue.description
}

if container.settings.dxvkAsync {
environmentVariables["DXVK_ASYNC"] = "1"
if container.settings.metalHUD {
if container.settings.dxvk {
environmentVariables["DXVK_HUD"] = "full"
} else {
environmentVariables["MTL_HUD_ENABLED"] = "1"
}
}
}
Expand Down
14 changes: 9 additions & 5 deletions Mythic/Utilities/Local/LocalGames.swift
Original file line number Diff line number Diff line change
Expand Up @@ -79,16 +79,20 @@ final class LocalGames {
let container = try Wine.getContainerObject(url: containerURL)

var environmentVariables = [
"MTL_HUD_ENABLED": "\(container.settings.metalHUD.numericalValue)",
"WINEMSYNC": "\(container.settings.msync.numericalValue)",
"ROSETTA_ADVERTISE_AVX": "\(container.settings.avx2.numericalValue)"
"WINEMSYNC": container.settings.msync.numericalValue.description,
"ROSETTA_ADVERTISE_AVX": container.settings.avx2.numericalValue.description
]

if container.settings.dxvk {
environmentVariables["WINEDLLOVERRIDES"] = "d3d10core,d3d11=n,b"
environmentVariables["DXVK_ASYNC"] = container.settings.dxvkAsync.numericalValue.description
}

if container.settings.dxvkAsync {
environmentVariables["DXVK_ASYNC"] = "1"
if container.settings.metalHUD {
if container.settings.dxvk {
environmentVariables["DXVK_HUD"] = "full"
} else {
environmentVariables["MTL_HUD_ENABLED"] = "1"
}
}

Expand Down

0 comments on commit 938e3aa

Please sign in to comment.