ValveSoftware / Proton

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

東方幕華祭 TouHou Makuka Sai ~ Fantastic Danmaku Festival (882710) #2114

Open pzmarzly opened 5 years ago

pzmarzly commented 5 years ago

Compatibility Report

System Information

steam-882710.log

Symptoms

Game and config utility don't start (on both Intel and NVIDIA GPUs).

This is a known issue, but this WineHQ report confirms the game works after additional tweaks.

Sadly this game doesn't print errors, so it may take a while to find which fonts are missing, which dlls etc.

Mirror of https://appdb.winehq.org/objectManager.php?sClass=version&iId=37367

Rating: Gold

What works

Everything functions just as expected after doing the tweaks listed below.

What does not

Fails to load at all before installing the .NET Framework and xact
Dialouge and a Game Over crash the game if official GDI+ is not used
The background renders broken when builtin DirectX9 DLLs are used
Workarounds

Dependencies

Installing .NET 4.6.1: This can either be done with winetricks (winetricks dotnet461) or with the instructions here: https://appdb.winehq.org/objectManager.php?sClass=version&iId=34219
XACT: winetricks xact
GDI+: Due to the builtin GDI+ crashing at certain menus, official GDI+ has to be installed with winetricks (winetricks gdiplus)
Fonts: Without any fonts installed, official GDI+ actually breaks the game. Workaround: winetricks allfonts
DirectX9 libraries: Built-in DirectX9 will render broken backgrounds. With: winetricks d3dx9
What was not tested

Everything was tested before submitting this report
kisak-valve commented 5 years ago

err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed in the log points towards #18.

pzmarzly commented 5 years ago

Somehow (I cannot replicate it) I managed to get Mono to work with Proton (I copied wine-mono-4.7.3.msi [sha256=d24a8017371c7e8224a1778bb43a113ed7ed9720efd9d0cda175d42db6106d3a] from Manjaro repo into Proton 3.7/dist/share/wine/mono).

Got this error log, probably pointing towards a broken Mono/.NET installation (probably because I added Mono after the first-launch setup ; I'm trying to replicate it on fresh install but now for some reason copying that .msi doesn't work). Protontricks reported that .NET 4.0 is installed.

mono-steam-882710.log

I will just wait for #18 and #1786

williewillus commented 9 months ago

Update, as of the time of writing the game now starts and enters a run properly, but it seems any rendering of text during a boss fight will cause the game to crash:

[22:31:20]
System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
  at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status status) [0x00098] in <fc2ea6474c6d4315858618f13de6e72a>:0 
  at System.Drawing.Bitmap..ctor (System.Int32 width, System.Int32 height, System.Drawing.Imaging.PixelFormat format) [0x00016] in <fc2ea6474c6d4315858618f13de6e72a>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.Bitmap..ctor(int,int,System.Drawing.Imaging.PixelFormat)
  at Microsoft.Xna.Framework.SpriteFontX.addTex (System.Char chr) [0x0008f] in <38dde6e7407a4393a228762c58e6090b>:0 
  at Microsoft.Xna.Framework.SpriteFontX.Draw (Microsoft.Xna.Framework.Graphics.SpriteBatch sb, System.Char[] str, Microsoft.Xna.Framework.Vector2 position, Microsoft.Xna.Framework.Vector2 maxBound, Microsoft.Xna.Framework.Vector2 scale, Microsoft.Xna.Framework.Color color) [0x0007e] in <38dde6e7407a4393a228762c58e6090b>:0 
  at Microsoft.Xna.Framework.SpriteFontX.Draw (Microsoft.Xna.Framework.Graphics.SpriteBatch sb, System.String str, Microsoft.Xna.Framework.Vector2 position, Microsoft.Xna.Framework.Color color) [0x0001d] in <38dde6e7407a4393a228762c58e6090b>:0 
  at THMHJ.Dialog.Draw (Microsoft.Xna.Framework.Graphics.SpriteBatch s) [0x003f8] in <38dde6e7407a4393a228762c58e6090b>:0 
  at THMHJ.Game.SDraw (THMHJ.NSpriteBatch s) [0x0038d] in <38dde6e7407a4393a228762c58e6090b>:0 
  at THMHJ.Main.Draw (Microsoft.Xna.Framework.GameTime gameTime) [0x0007f] in <38dde6e7407a4393a228762c58e6090b>:0 
  at Microsoft.Xna.Framework.Game.Tick () [0x0026c] in <ac49f792d1924f2ca9e12200b1e6ae07>:0 
  at Microsoft.Xna.Framework.Game.RunLoop () [0x0001f] in <ac49f792d1924f2ca9e12200b1e6ae07>:0 
  at Microsoft.Xna.Framework.Game.Run () [0x00035] in <ac49f792d1924f2ca9e12200b1e6ae07>:0 
  at THMHJ.Program.Main (System.String[] args) [0x00057] in <38dde6e7407a4393a228762c58e6090b>:0 

Similar issue to the game's sequel #3657

To reproduce, start a game (easy mode for easier repro), and play to the end of the first stage (~4 minutes in). The game will crash shortly after the boss enters.

madewokherd commented 8 months ago

I just pushed a hack, so this should work with Experimental on the bleeding-edge beta.