News:

Please request registration email again and then check your "Spam" folder

Former www.henthighschool.com

HHS on linux

Started by maliumno, Oct 23, 2023, 02:58 PM

Previous topic - Next topic

maliumnoTopic starter

Hello,
I've been playing since long time ago to this game, but I had to change my system from Windows to linux and I would like to know if someone managed to play this game on linux. I have found a way using lutris but its very very laggy and missing some UI things.
From my ignorance, wouldn't it be easy to port it to linux as it uses .NET?

Well if anyone has any hint or advice on how to play it on linux,
Thank you.

TBBle

I believe your best bet is Wine or one of its wrappers, as I suspect Lutris is. There's been occasional fixes for Wine issues, so maybe there's someone out there testing it who can suggest fixes for the issues you're seeing, or if you can build a more-full bug report, perhaps it can be fixed for a future release.



Linux has .NET now, however HHS+ is built on .NET Framework, the Windows-only predecessor version. Although porting .NET Framework projects to .NET is supposed to be generally feasible, my recollection from the old forums is that the game uses a Windows-specific UI library (WinForms?) and porting from that to one of the .NET cross-platform UIs (MAUI would be the one, AFAIK) is either know to be too hard, or simply not interesting to the people who have access to the source code.

I actually thought they'd migrated to .NET already, but happened to be looking at the hhs+.exe last week for a translation question and noticed it was .NET Framework still. Unless that upgrade happened but in a not-yet-released version...

Anyway, that led me down some exploration about exactly this question and researching such migrations, but as I haven't had access to the source code in years (and it was VB.NET at the time), I have no idea of the exact details on the HHS+ side, and am mostly just speculating here.

nlsdifnalsfhidsa

I've been running the game for some time now on Linux. Your options are:
A VM
Wine
Wine + .NET 4.5

A VM has the best quality but it obviously requires you to run a whole vm so that sucks. Better performance if you get GPU passthrough working (I haven't tested with QEMU yet).

It's been a while so I could be misremembering, but if you install .NET in a Wine prefix it looks alright but every action has a .5 second delay to it. There's probably some other issues I forgot.

Currently I'm using Wine 8 with the in-game graphics option WineHQ, no animations, and no lighting. WineHQ is a setting that fixes the heavy aliasing on PD models since Wine doesn't fully support WPF bitmaps. It should be as simple as Lutris with GE Wine 8.x and a 64 bit prefix. Note that after a while of playing it can slow down and you'll want to restart.

Wine's shader compilation is single threaded so how well the game runs will depend almost entirely on your CPU. Loading scenes is significantly slower than Windows. DXVK doesn't help, it's not even used by the game. Further improvements could be possible, before Wine 8 you had to install .net to launch the game and in recent 8 versions VEE now works.

And there's a bug with the game config. It resets to default every time you load a save. The fix right now is to set your config to read-only after setting it to what you want.

There's more discussion on the discord server but this is pretty much everything I've found so far.

paraplegicracehorse

Quote from: maliumno on Oct 23, 2023, 02:58 PMI have found a way using lutris but its very very laggy and missing some UI things.
I have had varying success with Lutris and Bottles. Lutris seems more consistently successful but both Bottles and Lutris eventually seem to fail to launch the game and I can't figure out why.
I don't even bother with straight wine anymore. Tools like Bottles and Lutris almost always solve any issues I have had.
I used to keep a Windows VM around just for this game. I don't know why but Win VMs get increasingly slow over time, even without updating the guest-os. I recommend against this method for this reason; but it is the one sure-fire method of getting the game to run at all.
The game is suuuper-slow after a few in-game months of play regardless of how you run it. I suspect it's single threaded and nowhere close to optimized and it's tracking a whole bunch of individual objects. It's honestly waay past time this was refactored to run on a different game engine with proper object/data models and efficient game loops.
QuoteFrom my ignorance, wouldn't it be easy to port it to linux as it uses .NET?
This was asked on the old forum, which has now been lost to time. Quick answer is No. It uses too many Windows-specific OS system calls. Yet another reason to refactor onto a different game engine.
And, of course, nobody will fault anyone for developing a similar/identical game on a different engine. But the current development team will not switch away from their cruft and bit-rot.
For this particular game model, I think Bevy and Godot both have a lot going for them. If you are able to write code, please do begin writing an alternative similar/identical game using a modern cross-platform game engine. Personally, I cannot "Hello Worl!" my way out of a bucket, so I live with the profoundly bad linux play experience of the current system.

Jack360

If Devs really don't want to still use VB and make game cross-platfrom,
I can say that someone recently made possible to use VB in Godot engine.
Also from what I know they can use any dot-net-core C# lib in Godot dot-net langs.
https://github.com/system-er/GodotVisualBasic

Jack360

@paraplegicracehorse
Yes, using new wine don't work or work very broken, but using lutris with wine-ge-8-26,
then I use winetricks to install in it dotnet48, vcrun1012 and msxml6 and game works for me!

nuetron

Were you able to get the sound to work?  Maybe i'm missing some dlls.

Sanguine

#7
Quote from: Jack360 on Dec 10, 2024, 10:02 AM@paraplegicracehorse
Yes, using new wine don't work or work very broken, but using lutris with wine-ge-8-26,
then I use winetricks to install in it dotnet48, vcrun1012 and msxml6 and game works for me!

So this trick did work, both through Lutris and Proton (Steam), however there's still an issue of the dropdown menus being black boxes. And when hovering the mouse over objects and people for more info, also black boxes. And perhaps it's a typo, but "vcrun1012" does not appear to be a DLL option when using either proton/winetricks. I picked vcrun2012 assuming it was a typo, and the game runs smoothly (but with the black boxes)

Edit: just now doing a quick test, and it appears that the dotnet48 is the culprit for the "black box" issue. Will keep testing to see what the options are.

Scod4025

So has anyone figured out the "Black Box" issue? I was able to get game to run with vcrun2012, and msxml6 and installing .Net 8.0.13-win-x64.exe (what game asks for on start up) and not installing dotnet48. but still have black boxes. I had thought maybe needed a form of Direct x, I have installed a few but still have the "boxes" anyone have idea what else may cause this?

Scod4025

Short answer if on wayland swap to X11

So If anyone comes across this later, I was using Wayland and was having graphical issues with this game and other games seen a post about Wayland being the a cause and to swap to X11,, welp so far this has solved the Black Box issue and many other issues within other games. 


Sanguine

Quote from: Scod4025 on Feb 22, 2025, 03:10 PMShort answer if on wayland swap to X11

So If anyone comes across this later, I was using Wayland and was having graphical issues with this game and other games seen a post about Wayland being the a cause and to swap to X11,, welp so far this has solved the Black Box issue and many other issues within other games. 



This solves the black box issue as well on my end. Haven't thoroughly test past seeing that detail just yet. But it's a refreshingly good sign :D