pixeltris / YgoMaster

Offline Yu-Gi-Oh! Master Duel
MIT License
885 stars 126 forks source link

Install on Steam Deck? #150

Open lodewycke opened 1 year ago

lodewycke commented 1 year ago

I was able to get this to run just fine on my PC, however when attempting the same process on my Steam Deck I am met with an error that reads "load dotnet failed with 0x80004001" along with a compiler that reads "Initialize" and nothing else. This occurs as soon as I run the YGO Client in order to boot up the game. I added the game as a non-steam game with proton compatibility for both main files. Could that be the issue? Any idea what the error could mean and how to solve it?

pixeltris commented 1 year ago

I assume this will be the same problem as this https://github.com/pixeltris/YgoMaster/issues/17 as it's probably using proton/wine

lodewycke commented 1 year ago

Any hope for Linux support in the future?

NertonSaintfort commented 1 year ago

I'm able to get it running on Steam Deck but I'm getting a error: [Error] Failed to bind to https://localhost:4889/ (ensure the program isn't already running or try as admin). Is there a work around for this error?

pixeltris commented 1 year ago

Possibly fixed by #17 but I don't have a Steam Deck to test

Haruichii commented 1 year ago

I've tried to run but the "load dotnet failed with 0x80004001" continues. This happens because Wine and Proton are not very good at installing .Net Framework at the moment. The installation guide for Linux doesn't seem to work

r4v3n1 commented 1 year ago

Hi,

I would love to see your project on steamdeck as well! Sadly, I also have the same problems mentioned here (apparently dotnet things)! Tried almost everything towards proton/protontrick/wine- not really successful.

Unfortunately, big fans like me are missing a good (up to date) offline representative of the Yugioh video game series- That only makes this project even more awesome!

If you would be interested in working on patches/versions for the steam deck in this regard I would be happy to offer to test them on my steam deck for you!!!

Greetings.

Shaka199 commented 1 year ago

Hello good evening. I really like this Master Duel offline app and I would like to know if Master Duel update 1.36 will be released.Thank you so much

the-unsoul commented 1 year ago

I managed to get it work on Steam Deck. At first I was trying to use protontricks & winetricks but both can't run the server. So I give Lutris a try and it works, here are the steps:

Now you have it in the non-Steam game list and you can play either on Desktop or gaming mode.

Rei-rahul commented 1 year ago

I managed to get it work on Steam Deck. At first I was trying to use protontricks & winetricks but both can't run the server. So I give Lutris a try and it works, here are the steps:

* Go to desktop mode.

* Go to Discovery and intsall Lutris.

* Add `YgoMasterClient.exe` to Lutris.

* For the part to specify run & start in directory, just target `YgoMaster` location. e.g.  `{game-location}/YgoMaster/`

* As wine prefix location/compat data. Select a location of your liking. For me I set it as `{game-location}/compat data/`

* Once game is added, you will need to install dot NET 4.0 in wine prefix using Lutris UI (Google for steps if you don't know how).

* Now you will need to adjust the port, as it seem like port `4989` is already used in Steam Deck. To do this, you just need to open `YgoMaster/Data/Settings.json` & `YgoMaster/Data/ClientData/ClientSettings.json` and change both `BasePort` to something else. I used `4999`.

* In Lutris, find the option to `Create Game Menu` so the game will be added to `Start/KDE Menu`

* Browser `Start/KDE Menu` > `Games` > Right click on the game > `Add to Steam`

Now you have it in the non-Steam game list and you can play either on Desktop or gaming mode.

Isn't this supposed to be an offline mod, why I need to modify the port?

r4v3n1 commented 1 year ago

I guess this is because the program needs some kind of local server(?), to emulate the server connection and data that would normally come from Konami-servers when you run the game native. But a local host needs a port.

The reason why you may need to change the port could be that the default port on this mod is already used/reserved by Steamdeck OS for other purposes...

the-unsoul commented 1 year ago

@r4v3n1

I guess this is because the program needs some kind of local server(?), to emulate the server connection and data that would normally come from Konami-servers when you run the game native. But a local host needs a port.

The reason why you may need to change the port could be that the default port on this mod is already used/reserved by Steamdeck OS for other purposes...

This is true 100%. @Rei-rahul also if you are not familiar with simple port config, then this may not for you. Because compare port vs Lutris & wineprefix... these things are not new-user-friendly at all. You may mess up your game, and or steam deck / Steam OS even.

Rei-rahul commented 12 months ago

Got it working but it doesn't load the decks from the main game and solo mode only have the tutorial. I thought It syncs my progress from my account.. Is there a setup to do so?

pixeltris commented 11 months ago

I thought It syncs my progress from my account

Nope. It says that it doesn't do that on the second line of the README Progress is not shared with the live game.

r4v3n1 commented 11 months ago

@Rei-rahul Not 100% sure- but I think maybe you could export your decks from a folder in your original game directory? I could be wrong because I used this mod instead of playing the official version in the first place! But I thing that the game natively offers some export features since it is Konami's latest official TCG video game - and many players who use it also play the printed version...

DemonBigj781 commented 10 months ago

I guess this is because the program needs some kind of local server(?), to emulate the server connection and data that would normally come from Konami-servers when you run the game native. But a local host needs a port.

The reason why you may need to change the port could be that the default port on this mod is already used/reserved by Steamdeck OS for other purposes...

yep

Maciek070707 commented 6 months ago

I'm open for testing the program using Steamdeck if it helps.

jlejarde commented 4 months ago

Hello, following the directions above, and hitting a snag with installing dot net 4.0 via Lutris. It's giving an error "dotnet40 does not fully work or install on wine. Caveat emptor." Does anyone know what this is? Thanks

Maciek070707 commented 4 months ago

When installing .net 4.0 did you wait for winetricks to appear again? Linux does a lot of computing i the background and it only shows that it has done installing when winetricks opens up on the desktop again. Try to install it again and wait (around 30 mins min) for winetricks to open the window again.

Maciek070707 commented 4 months ago

The prompt with the error you are talking about will automatically disappear. It's a part of the process. Do not interact with those and let them appear and disappear until the winetricks window opens up again.

jlejarde commented 4 months ago

Tried to reinstall the prefix and after an hour of waiting, I'm unfortunately at the same spot. The exe/game won't initialize.

jlejarde commented 4 months ago

Just to give more context: something rough happens when I use winetricks and install dot net. If I run the program as is, it gives me the errors "load dotnet failed with 0x80004001". But once I follow to process to install dotnet4.0, the program runs for less than a second then stops. I've tried other wine versions and reinstalled MD/Lutris just now and no progress.

Maciek070707 commented 4 months ago

Apparently installing VCRuntime and some other .dll's (.NET included) results in .sha mismatch between versions (don't ask me who did it). All you need to do is to click 'yes' when prompt with related mismatch appears (you have to be quick though, those disappear in like 3 seconds). Selecting 'Yes' will result in .dll package installing correctly and you will be able to open the game.

Maciek070707 commented 4 months ago

You can distinguish those errors by the wall of text appearing on your screen. Just promptly select to continue installing

jlejarde commented 4 months ago

I've tried a couple fresh installs and I don't get the prompt you're talking about. I'm doing this through winetricks on lutris... am I doing this right? Thanks again.

Maciek070707 commented 4 months ago

Yes. Winetricks through lutris is the way to go. I hope you are not doing this on steamdeck install of YGOmaster. Game needs to previously work on windows in order to work on steamdeck

jlejarde commented 4 months ago

Yes I'm installing this on steamdeck with the instructions on https://github.com/pixeltris/YgoMaster/issues/150#issuecomment-1808432514, but I have Master Duel and YGOmaster working on a separate windows machine. Normal Master Duel works on steamdeck.

RoyalXerxes commented 2 months ago

I managed to get it work on Steam Deck. At first I was trying to use protontricks & winetricks but both can't run the server. So I give Lutris a try and it works, here are the steps:

  • Go to desktop mode.
  • Go to Discovery and intsall Lutris.
  • Add YgoMasterClient.exe to Lutris.
  • For the part to specify run & start in directory, just target YgoMaster location. e.g. {game-location}/YgoMaster/
  • As wine prefix location/compat data. Select a location of your liking. For me I set it as {game-location}/compat data/
  • Once game is added, you will need to install dot NET 4.0 in wine prefix using Lutris UI (Google for steps if you don't know how).
  • Now you will need to adjust the port, as it seem like port 4989 is already used in Steam Deck. To do this, you just need to open YgoMaster/Data/Settings.json & YgoMaster/Data/ClientData/ClientSettings.json and change both BasePort to something else. I used 4999.
  • In Lutris, find the option to Create Game Menu so the game will be added to Start/KDE Menu
  • Browser Start/KDE Menu > Games > Right click on the game > Add to Steam

Now you have it in the non-Steam game list and you can play either on Desktop or gaming mode.

Whenever I load the game it says there was no response from the server, I used 4999

pixeltris commented 2 months ago

v1.50 simplifies installation on Linux. All you need is wine. .NET is not needed (no struggle with installation of .NET, or error 0x80004001).

See https://github.com/pixeltris/YgoMaster/blob/master/Docs/Linux.md

r4v3n1 commented 2 months ago

Can't really tell 100% for sure if this 'setup' works for everyone- but I just share it in advance:

I just copied the master duel folder (completely) from steamapps into a different folder of choice (maybe just my inner monk). Slapped the YGOMaster files on it (current version), merged the new Linux/Mono content into it.

Added the ygomasterclient.exe as Game to Steam(!) and for compatibility I used Proton experimental.

Don't know if the new linux/mono stuff did serious work, but the game launches just naturally on steamdeck.

I don't need wine or anything related & so far I encountered no issues with inputs or else despite not having done the "extra" Linux fix for stuff as mentioned

pixeltris commented 2 months ago

Yea you probably don't need wine on Steam Deck as Proton is a forked version of wine. Some people might struggle with running YgoMasterClient.exe directly as it's a .NET binary which is why MonoRun.exe exists as it's a native binary which can run YgoMasterClient.exe directly under mono.

When the mono folder exists it'll always use mono so if Steam Deck is able to run YgoMasterClient.exe directly by default it should just work. If it doesn't, then do the MonoRun.exe stuff as mentioned in the documentation (ignoring the wine part).

r4v3n1 commented 2 months ago

Yea you probably don't need wine on Steam Deck as Proton is a forked version of wine. Some people might struggle with running YgoMasterClient.exe directly as it's a .NET binary which is why MonoRun.exe exists as it's a native binary which can run YgoMasterClient.exe directly under mono.

When the mono folder exists it'll always use mono so if Steam Deck is able to run YgoMasterClient.exe directly by default it should just work. If it doesn't, then do the MonoRun.exe stuff as mentioned in the documentation (ignoring the wine part).

Steam is probably (hopefully) getting better with .NET stuff under Proton-

Last time I checked it (under various versions of Proton, stock/experimental and GE) it always throws this annoying dot.net error everybody is probably aware of.

Now it just works fine!

Just wanted to let everybody know, that your awesome work(!) will most likely run 'nativ' on steam deck from now on (fingers crossed) by just adding the additional folder/files you provided and run the client.exe directly under Steam with proton experimental :)

I'm sure that will save many people the trouble of setting up wine/protontricks or even lutris to just run it on their handheld.

r4v3n1 commented 2 months ago

Yea you probably don't need wine on Steam Deck as Proton is a forked version of wine. Some people might struggle with running YgoMasterClient.exe directly as it's a .NET binary which is why MonoRun.exe exists as it's a native binary which can run YgoMasterClient.exe directly under mono.

When the mono folder exists it'll always use mono so if Steam Deck is able to run YgoMasterClient.exe directly by default it should just work. If it doesn't, then do the MonoRun.exe stuff as mentioned in the documentation (ignoring the wine part).

Steam is probably (hopefully) getting better with .NET stuff under Proton-

Last time I checked it (under various versions of Proton, stock/experimental and GE) it always throws this annoying dot.net error everybody is probably aware of.

Now it just works fine!

Just wanted to let everybody know, that your awesome work(!) will most likely run 'nativ' on steam deck from now on (fingers crossed) by just adding the additional folder/files you provided and run the client.exe directly under Steam with proton experimental :)

I'm sure that will save many people the trouble of setting up wine/protontricks or even lutris to just run it on their handheld.

Just checked the game for a while (around an hour and a half) and everything seems to work just fine! No input or other issues. Maybe that solved this thread- I'm curious to see if other people can run the thing on deck just fine, like myself

jlejarde commented 2 months ago

I’m planning to check later this afternoon but this is all promising news!

On Wed, Sep 25, 2024 at 10:11 AM r4v3n1 @.***> wrote:

Yea you probably don't need wine on Steam Deck as Proton is a forked version of wine. Some people might struggle with running YgoMasterClient.exe directly as it's a .NET binary which is why MonoRun.exe exists as it's a native binary which can run YgoMasterClient.exe directly under mono.

When the mono folder exists it'll always use mono so if Steam Deck is able to run YgoMasterClient.exe directly by default it should just work. If it doesn't, then do the MonoRun.exe stuff as mentioned in the documentation (ignoring the wine part).

Steam is probably (hopefully) getting better with .NET stuff under Proton-

Last time I checked it (under various versions of Proton, stock/experimental and GE) it always throws this annoying dot.net error everybody is probably aware of.

Now it just works fine!

Just wanted to let everybody know, that your awesome work(!) will most likely run 'nativ' on steam deck from now on (fingers crossed) by just adding the additional folder/files you provided and run the client.exe directly under Steam with proton experimental :)

I'm sure that will save many people the trouble of setting up wine/protontricks or even lutris to just run it on their handheld.

Just checked the game for a while (around an hour and a half) and everything seems to work just fine! No input or other issues. Maybe that solved this thread- I'm curious to see if other people can run the thing on deck just fine, like myself

— Reply to this email directly, view it on GitHub https://github.com/pixeltris/YgoMaster/issues/150#issuecomment-2374205863, or unsubscribe https://github.com/notifications/unsubscribe-auth/BKAOMGKGZEKU5IPJAKL6QCDZYLAANAVCNFSM6AAAAAAU2DOYJOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNZUGIYDKOBWGM . You are receiving this because you commented.Message ID: @.***>

jlejarde commented 2 months ago

I can confirm this works by going through the installation instructions, adding YgoMasterClient.exe as a non-Steam game and running under Proton 9.0.3. Amazing stuff and incredibly easy.

On Wed, Sep 25, 2024 at 10:25 AM Jed Lejarde @.***> wrote:

I’m planning to check later this afternoon but this is all promising news!

On Wed, Sep 25, 2024 at 10:11 AM r4v3n1 @.***> wrote:

Yea you probably don't need wine on Steam Deck as Proton is a forked version of wine. Some people might struggle with running YgoMasterClient.exe directly as it's a .NET binary which is why MonoRun.exe exists as it's a native binary which can run YgoMasterClient.exe directly under mono.

When the mono folder exists it'll always use mono so if Steam Deck is able to run YgoMasterClient.exe directly by default it should just work. If it doesn't, then do the MonoRun.exe stuff as mentioned in the documentation (ignoring the wine part).

Steam is probably (hopefully) getting better with .NET stuff under Proton-

Last time I checked it (under various versions of Proton, stock/experimental and GE) it always throws this annoying dot.net error everybody is probably aware of.

Now it just works fine!

Just wanted to let everybody know, that your awesome work(!) will most likely run 'nativ' on steam deck from now on (fingers crossed) by just adding the additional folder/files you provided and run the client.exe directly under Steam with proton experimental :)

I'm sure that will save many people the trouble of setting up wine/protontricks or even lutris to just run it on their handheld.

Just checked the game for a while (around an hour and a half) and everything seems to work just fine! No input or other issues. Maybe that solved this thread- I'm curious to see if other people can run the thing on deck just fine, like myself

— Reply to this email directly, view it on GitHub https://github.com/pixeltris/YgoMaster/issues/150#issuecomment-2374205863, or unsubscribe https://github.com/notifications/unsubscribe-auth/BKAOMGKGZEKU5IPJAKL6QCDZYLAANAVCNFSM6AAAAAAU2DOYJOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNZUGIYDKOBWGM . You are receiving this because you commented.Message ID: @.***>