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.