ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.87k stars 1.04k forks source link

NosTale (550470) #635

Open PSzczepanski1996 opened 6 years ago

PSzczepanski1996 commented 6 years ago

Log: steam-550470.log Distro: Arch Linux

kisak-valve commented 6 years ago

Hello @HoshiYamazaki, please copy your system information from steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

PSzczepanski1996 commented 6 years ago

https://gist.github.com/HoshiYamazaki/2f2f8f849d7e6b13508acad603c25d1f

Can be in polish :)? I go to bed now.

czapnaper commented 5 years ago

In my case, the game only runs on a new beta (3.16-5) may be in your case too.

PSzczepanski1996 commented 5 years ago

In my case, the game only runs on a new beta (3.16-5) may be in your case too.

Sorry but I don't use anymore Linux since it does not support well mixed dpi support and wine does not support scaling - I have FullHD and 4K monitors.

If there wayland will become better I will return to it (or wine will get upscaling options like Windows 10 have).

So I can't test NosTale under *nix, but when I tried it worked fine on Arch - I had only problems with NosMarket not displaying under native wine. Despite that it does not work fine on macOS and I reported my problems on bugzilla: https://bugs.winehq.org/show_bug.cgi?id=42999

kisak-valve commented 4 years ago

NosTale gets wrong font rendering (550470)

Issue transferred from https://github.com/ValveSoftware/Proton/issues/3165. @HoshiYamazaki posted on 2019-10-23T17:46:49:

Compatibility Report

System Information

Symptoms

Font are rendered badly, because wrong FREETYPE settings.

Solution

Set FREETYPE_PROPERTIES="truetype:interpreter-version=35" Before launching wine, but I'm not sure how to do that in steam proton.

kisak-valve commented 4 years ago

Hello @HoshiYamazaki, you should be able to set env variables on a per game basis by adding ENV_VARIABLE=foo %command% in the game's launch options.

Go to Steam -> Library -> Right click on the game -> Properties -> Set launch options -> FREETYPE_PROPERTIES="truetype:interpreter-version=35" %command%

PSzczepanski1996 commented 4 years ago

For some reason, it does not work under steam-runtime, and on steam-native it crashes. I don't tested it with FREETYPE_PROPERTIES=truetype:interpreter-version=35 convention, maybe I miss Windows fonts (I don't have them installed), but I tested it year ago on native clean Wine and it was overall improvment.


NosTale crashes on latest proton (was working before) (550470)

Issue transferred from https://github.com/ValveSoftware/Proton/issues/3576. @HoshiYamazaki posted on 2020-02-27T18:15:48:

Compatibility Report

NosTale (550470)

System Information

I confirm:

https://pastebin.com/nvKTvcGS

Symptoms

NosTale crashes on startup.

Reproduction

Just run game, was working on Proton 4.11.

kisak-valve commented 4 years ago

Hello @HoshiYamazaki, can you check if adding PROTON_USE_WINED3D=1 %command% to the game's launch options has an effect?

ZereoX commented 4 years ago

Hey @kisak-valve, the issue is actually caused by the change to the default windows version of prefixes. Manually reverting the compatdata folder to Windows 7 (using winecfg) or creating the compatdata folder using Proton 4.11-12 before reverting to 5.0-3 will allow the game to launch (Proton 5.0 does not upgrade the Windows version of existing prefixes).

This title appears to be affected by https://bugs.winehq.org/show_bug.cgi?id=44865 as indicated by the following error message present in the log: 519915.469:0034:0035:err:ole:CoGetClassObject no class object {54e211b6-3650-4f75-8334-fa359598e1c5} could be created for context 0x1

PSzczepanski1996 commented 4 years ago

Also, I want this option to be passed by default:

FREETYPE_PROPERTIES="truetype:interpreter-version=35"

Since it improves font rendering in NosTale (makes rendering Windows-like) but it seems that it doesn't work in proton (it does in raw Wine), but I tested it year ago.

PSzczepanski1996 commented 2 years ago

Hiya, so I want to reminder here that NosTale still has mouse bug on recent Wine versions: https://bugs.winehq.org/show_bug.cgi?id=49988

I reported it on bugzilla, but maybe people from here will know why it happens, and how to fix that. It also appears on macOS (and has longer history, because the Linux has not problem from wine 2 to wine 5.1x, and game is affected again). https://bugs.winehq.org/show_bug.cgi?id=42999

Thanks in advance for support.

PSzczepanski1996 commented 2 years ago

So, here is log: https://pastebin.com/rHKzr1b4

Maybe somebody will know how to fix that, I will also upload plain wine logs too later.

kisak-valve commented 2 years ago

steamdeck unsuported

Issue transferred from https://github.com/ValveSoftware/Proton/issues/5603. @hydrasho posted on 2022-02-22T14:14:07:

Hello, I don't know where to write this report, but nostale is displayed as unsupported, however this is a bug since proton 6, we can't move the character since this version.

on the other hand run nostale with proton 5 and lower, it works perfectly!

My request: force nostale on steamdeck to run with proton 5 or less or correct proton 7 to be able to move the character again.

Thanks !

Capture d’écran de 2022-02-22 15-07-47

nda-cunh commented 2 years ago

@kisak-valve i think you didn't understand my request, nostale works very well! with proton 5. it should be "playable" and not "unsuported".

PSzczepanski1996 commented 2 years ago

@kisak-valve i think you didn't understand my request, nostale works very well! with proton 5. it should be "playable" and not "unsuported".

Then just use Steam Proton 5.13 - if I know steam play always uses newest version of proton besides experimental, so I don't know if it's even possible to "force it" without writing new functionality in the launcher.

Also NosTale can work better with newer DXVK, and has font aliasing bug on previous versions. So the issue of mouse bug will be revelant until it will get fixed both on Linux & macOS.

PSzczepanski1996 commented 2 years ago

@kisak-valve can I ask you, or your team for checking issue with the mouse cursor not being usable again?

I also posted many bugzilla reports before on WineHQ site, maybe they will help: https://bugs.winehq.org/show_bug.cgi?id=49988 https://bugs.winehq.org/show_bug.cgi?id=42999

Thanks anyway, I really appreciate your work!

KaspianDev commented 1 year ago

Unfortunately mouse still doesn't work on proton 6+

begin-theadventure commented 1 year ago

The latest version of Proton that works is 5.13, in newer versions mouse clicks are completely broken, except for the in-game web browser. In 7.0, the web browser displays correctly and VkBasalt also works. There are plenty of posts on various sites mentioning the mouse issue: GitHub link.

PSzczepanski1996 commented 1 year ago

The issue is caused (probably) by nProtect GameGuard, it also makes some other games unplayable (despite PSO2 which got fixed some time ago). That's seems to be really funny because this anticheat does everything in unwanted, opposite direction - it makes game unplayable on UNIX-based operating systems (Linux, SteamOS, macOS, and probably every that has wine), despite there were many gold, multiclient and other kinds of exploits using custom packets.

Also I'm not Entwell/GameForge developer to say anything about that, but it seems they pay nearly 15K yearly (until there is some discount, or taxes-based workaround to save some money) for it: image

The image is from here: https://gameguard.nprotect.com/en/index.html

This can be reason for P2W mechanisms in the game to afford this anticheat engine, since the whole point of gameplay is snobbery. If this solution would be removed, the NosTale should be easier to maintain without providing so many money-paywalls into the gameplay. This also confirms that GameForge can not earn on this game very much, but I'm not sure since teenagers can buy more items than I expect from itemshop to just prove their value.

Sorry if I sound rude, but if you are Entwell developer, consider removing the nProtect GameGuard from game engine, just to support your community. I'm not really sure if I want to support this game after all these years despite I loved to play it since I was teen. Time to probably grow up and move into Final Fantasy XIV.

If you are wine developer, do whatever you want, I just gave my point of view. It's all what I wanted to say after all these years.

KaspianDev commented 1 year ago

I don't think anticheat has anything to do with mouse movement not working, on older proton (5) the game runs fine. Anticheat would just not let thru at all.

On another note, how stupid it is to pay 15k/year for software that doesn't support all 3 major platforms (windows,linux,mac).

Edit: according to reply from nostale team manager from 2021 there's no anticheat

PSzczepanski1996 commented 1 year ago

I don't think anticheat has anything to do with mouse movement not working, on older proton (5) the game runs fine. Anticheat would just not let thru at all.

This can be caused by some odd NosTale/wine logic, the nProtect GameGuard seems to be released after decade ago so I would not be suprised if it detect some variables that wine sets because of some reason. Also the old anticheats can work differently than these what exists now, also it could be removed, but not completly and it still exists in NosTale codebase. After working with software by years I'm really keen to the idea there can be some odd quirk that make this game unplayable.

On another note, how stupid it is to pay 15k/year for software that doesn't support all 3 major platforms (windows,linux,mac).

Neither is writing game engine that does odd amount of draw calls (causing early versions DXVK not performing well at all), or implementing OpenGL backend that for some reason does not even work, but is in game since the release.

Edit: according to reply from nostale team manager from 2021 there's no anticheat|

I'm not suprised, NosTale Team Manager is not developer, not even connected with development since majority of work is outsourced to Entwell team in Korea.

PSzczepanski1996 commented 1 year ago

Hey, despite everything I posted here I decided to contact my friend @morsisko that has reverse engineering experience so we were able to fix the mouse issue on Linux and even on macOS too. It seems that NosTale is checking memory regions for some odd reason and if user32.dll is placed under 0x70000000 address it get's buggy and unplayable. With custom patch for it in Makefile.in the game FINALLY works.

With help of Linux Gaming Discord I managed to create custom Steam Proton (based on GE) build: https://github.com/PSzczepanski1996/proton-ge-nostale And also custom CrossOver wine executables: https://github.com/PSzczepanski1996/macos-crossover-wine-nostale-builder

Not sure how we should mainstream these patches, if even. There are preferred base addresses for user32.dll and other libraries that should be considered to set in Wine:

image

But with ALSR it get's random after everyboot in my Windows 11 x64 machine so probably it should be set to constant or get randomized beetwen some range (0x7...-0x8... maybe?).

I also tag my Proton build as beta, since I'm not really sure if there are other bugs and if the solution we found is stable enough - please test it and post results here!

begin-theadventure commented 1 year ago

@PSzczepanski1996 That's great news! I hope this eventually goes upstream and gets fixed. Thanks.

PSzczepanski1996 commented 7 months ago

NosTale works just fine on CrossOver 24 beta1 without any custom patches, so probably it will work also on Steam Proton with Wine 9.0 based builds. I'm now waiting for any Proton-9 release and will test NosTale again on it, fingers crossed!

PSzczepanski1996 commented 6 months ago

NosTale works fine on CrossOver 24, newest Mobox and also Steam Proton 9 Beta, so the issue will be resolved so far in near future without any additional patches / need to download custom build.