tagoWorks / ascendara

Effortlessly install games directly onto your PC without the hassle of extractions or file locations. Enjoy a sleek, intuitive React UI to seamlessly manage your installed games.
https://ascendara.app
Other
4 stars 2 forks source link

Some games won't launch #3

Open t-a-g-o opened 2 weeks ago

t-a-g-o commented 2 weeks ago

Ascendara uses a game handler script (binaries/AscendaraGameHandler/src/AscendaraGameHandler.py) in order to execute game files and watch them for button changes in the UI (play -> running). The script has some issues with launching a small amount of games. Although the issue has not been completely determined these are some factors that could be in play for this issue:

  1. Anti-Cheat/DRM (most likely)

    • Anti-Cheat Software: Some games have anti-cheat mechanisms that might detect launching through a script as suspicious and terminate the game.
    • Digital Rights Management (DRM): Games with strict DRM might crash if they detect that they aren’t being launched through their expected launcher.
  2. Environment Variables

    • Incorrect or Missing Environment Variables: Some games might rely on certain environment variables to be set. If these are not passed correctly from the parent process (game handling script ) to the process (game being ran), the game might crash.
    • Working Directory: Some games expect to be launched from a specific directory. If the working directory isn't set correctly in your script, it could cause a crash.
  3. Permissions

    • File Access: The game might require certain files or directories to be accessible. If your script doesn't have the necessary permissions or if the game is launched from a restricted environment, it could crash.
    • User Privileges: Some games may need elevated privileges, which might not be granted when launched as a process.
  4. Subprocess Handling

    • Buffering Issues: If your script doesn’t handle stdout or stderr properly (e.g., due to buffering issues), this can lead to a deadlock and crash the game.
    • Signal Handling: Improper signal handling in your script can cause the game to crash, especially if it relies on certain signals to handle its execution.
    • Timing Issues: Some games may be sensitive to the timing of execution, particularly during initialization. If the game is launched too quickly or in an unexpected sequence, it could crash.
  5. Graphics and Audio Issues

    • Graphics Drivers: Some games might crash if they don’t detect the correct graphics drivers or settings when launched.
    • Audio Initialization: Similarly, games that rely on specific audio settings might crash if these aren’t correctly initialized.
  6. Dependencies

    • Dynamic Libraries: Games often rely on specific versions of dynamic libraries. If these aren't correctly loaded or if there’s a conflict, the game might crash.
    • External Services: Games that rely on external services (e.g., online authentication, DRM checks) might crash if they can’t communicate with these services due to how the parent process is configured.
  7. Resource Allocation

    • Memory and CPU Usage: Some games require more memory or CPU resources. If your script doesn't allocate enough resources or if the parent process consumes too much, the process (the game) might crash.
oponic commented 2 days ago

With anti-cheat, you can consider using the Windows equivelant of the exec command, which replaces the current process with another instead of executing the process.