Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Star Citizen - no audio #165

Open
Sgiath opened this issue Mar 12, 2024 · 20 comments
Open

Star Citizen - no audio #165

Sgiath opened this issue Mar 12, 2024 · 20 comments

Comments

@Sgiath
Copy link

Sgiath commented Mar 12, 2024

I have installed Star Citizen and it is running fine but I don't have any audio from the game. Weirdly enough I get the audio from the launcher but not from the game. Audio from other sources works without any issues. There is not even any output in EasyEffects or qpgraph.

Here is my audio setup:

{ config, nix-gaming, ... }:

{
  imports = [
    nix-gaming.nixosModules.pipewireLowLatency
  ];

  security.rtkit.enable = true;
  sound.enable = false;
  hardware.pulseaudio.enable = false;

  services.pipewire = {
    enable = true;
    audio.enable = true;

    alsa = {
      enable = true;
      support32Bit = true;
    };

    pulse.enable = true;
    wireplumber.enable = true;

    lowLatency = {
      enable = true;
      quantum = 64;
      rate = 48000;
    };
  };
}

Any idea what might be wrong?

@fufexan
Copy link
Owner

fufexan commented Mar 12, 2024

@LovingMelody

@Sgiath
Copy link
Author

Sgiath commented Mar 12, 2024

I have got it working by using lug-helper and launching it through Lutris instead https://github.com/LovingMelody/nix-citizen

So it suggests that there is some config that is not working

@Sgiath
Copy link
Author

Sgiath commented Mar 12, 2024

And one more info. I get the exact same behavior (no audio from game but launcher audio works fine) when launching from Lutris if I check "Prefer system libraries". Hope it helps with debugging :) I am new to NixOS (one week) so I am unable to debug it further myself.

image

@LovingMelody
Copy link
Contributor

Truthfully, I am unsure what causes this. I haven't been able to recreate the issue, what channel nixpkgs are you on?

@Sgiath
Copy link
Author

Sgiath commented Mar 13, 2024

I am on unstable. Here is my complete NixOS config if you want to look around (the desktop is referred to as ceres in the config)

https://git.sr.ht/~sgiath/nix-config

@LovingMelody
Copy link
Contributor

Tried spinning up a VM of your machine but get stuck at your mars wallpaper. Anyways, can you try overriding nixpkgs for nix-gaming and see if this helps any?

    nix-gaming.inputs.nixpkgs.follows = "nixpkgs";

your sound settings look pretty similar to my own

{
    sound.enable = true;
    sound.mediaKeys.enable = true;
    hardware.pulseaudio.enable = false;
    security.rtkit.enable = true;
    services.pipewire = {
      enable = true;
      alsa = {
        enable = true;
        # Defaults to true
        inherit (cfg) support32Bit;
      };
      pulse.enable = true;
      jack.enable = true;
      # Defaults to true
      lowLatency.enable = cfg.lowLatency;
    };
  };

@Sgiath
Copy link
Author

Sgiath commented Mar 13, 2024

Without success, I have tried your exact audio setup, and still nothing. I will be playing through Lutris, this seems to be working.

I will keep the issue open but if I am the only one experiencing the issue it is probably not worth investigating further.

BTW what is wrong with the wallpaper? I would guess my monitor setup would throw you off :D
2024-03-13-17-29-30-377

@LovingMelody
Copy link
Contributor

LovingMelody commented Mar 13, 2024

There's nothing wrong with the wallpaper, just unable to get the VM to work with the small amount of changes I made. Maybe #151 may fix issues like these (whole point of the project). Glad at least lutris is working for you.

@Sgiath
Copy link
Author

Sgiath commented Mar 16, 2024

After discussing it on Discord we have found out the following:

  1. When running SC through Lutris I can replicate the behavior when I choose PulseAudio as audio driver
  2. When I force ALSA as audio driver in Lutris audio works fine for me
  3. The issue is not reproducible on different machine with the same Nix config so probably related to my hardware
    • I use Soundcraft Us24R mixer as my output audio device https://www.soundcraft.com/en/products/ui24r
    • We have theorized that maybe huge number of output devices might trigger some bug
    • For reference posting image how my qpgraph looks like

image

Conclusion: forcing ALSA in Nix package is not a good idea, general conclusion is that ALSA is buggy and you should avoid it. But maybe there could be a way to make it configurable which audio driver is used so someone with my issue could force ALSA driver in their config something like this:

{ pkgs, nix-citizen, ...}:
let
  pkgs-citizen = nix-citizen.packages${pkgs.system};
in
{
  home.packages = [ ( pkgs-citizen.star-citizen.override { audioDriver = "alsa" } ) ];
}

But I have no idea how to do it as I am very new to Nix. Thanks everyone for help, if you don't want to do this ^^ feel free to close the issue, I will be using Lutris in the meantime :)

@LovingMelody
Copy link
Contributor

Alsa is being introduced from wine, pkgs/wine/supportFlags.nix
You would need to override the wine package used in the flake to not use wine

@LovingMelody
Copy link
Contributor

@fufexan do you have any takes on change? Would affect quite a few other users since it would be the default for wine.

@fufexan
Copy link
Owner

fufexan commented Mar 16, 2024

@LovingMelody so what you're saying is that ALSA is buggy with SC and that we should have a dedicated wine without alsa support?

@Sgiath
Copy link
Author

Sgiath commented Mar 16, 2024

I don't think so, I can see that the wine has the ALSA support true and also PulesAudio support true, that is fine IMO. No need to change that. Only when starting Star Citizen (or maybe any other game) there could/should be a way to force either ALSA or PulseAudio driver for that particular run.

I can do it in the Lutris UI but I don't know how the commands are exactly affected.
image

@fufexan
Copy link
Owner

fufexan commented Mar 16, 2024

Looks like we can set that up with winetricks sound=alsa.

@Sgiath
Copy link
Author

Sgiath commented Mar 16, 2024

Lutris has these options so maybe they could be replicated in the Nix config
image

By default leave it out to use "auto" but allow forcing ALSA or PulseAudio (not sure there is OSS support)

@fufexan
Copy link
Owner

fufexan commented Mar 16, 2024

I think all (or most) of those can be configured with winetricks.

@LovingMelody
Copy link
Contributor

Tricks is defined to be able to be overridden in the flake as well as the dll overrides, nix-citizen flake will have the same thing, only thing done in nix-citizen is override the DXVK version
https://github.com/fufexan/nix-gaming/blob/master/pkgs/star-citizen/default.nix#L13-L14

@Sgiath
Copy link
Author

Sgiath commented Mar 16, 2024

Oh I didn't realize that. I have just verified that this is working:

( pkgs-citizen.star-citizen.override { tricks = ["arial" "vcrun2019" "win10" "sound=alsa"]; } )

🎉 🎉 🎉

Thanks for your help and patience :)

@LovingMelody
Copy link
Contributor

@Sgiath is this issue able to be closed now?

@Sgiath
Copy link
Author

Sgiath commented May 7, 2024

Probably, if everyone is OK with this workaround :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants