Skip to content

Commit

Permalink
temp workaround to fix crashes on wine
Browse files Browse the repository at this point in the history
  • Loading branch information
dankmeme01 committed Sep 11, 2024
1 parent 2119b4e commit dc170d7
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion loader/src/platform/windows/console.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,14 @@ bool redirectStd(FILE* which, std::string const& name, const Severity sev) {
return true;
}

static bool isWine() {
if (auto mod = GetModuleHandle("ntdll.dll")) {
return GetProcAddress(mod, "wine_get_version") != nullptr;
}

return false;
}

void console::setup() {
// if the game launched from a console or with a console already attached,
// this is where we find that out and save its handle
Expand All @@ -117,7 +125,8 @@ void console::setup() {

// count == 0 => not a console and not a file, assume it's closed
// wine does something weird with /dev/null? not sure tbh but it's definitely up to no good
if ((count == 0 || path.ends_with("\\dev\\null"))) {
// TODO: the isWine check is pretty hacky but without it the game does not launch at all and i cba to figure it out rn
if ((count == 0 || path.ends_with("\\dev\\null")) && !isWine()) {
s_outHandle = nullptr;
CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE));
CloseHandle(GetStdHandle(STD_INPUT_HANDLE));
Expand Down

0 comments on commit dc170d7

Please sign in to comment.