The Steam release of Lost Chapter, an NSFW roguelike deckbuilder, doesn’t seem to work out-of-box on under Proton on Linux as of this writing (surprisingly, since Proton compatibility is very good these days, and a game not running is quite unusual for me).

https://store.steampowered.com/app/2356470/Lost_Chapter/

I’ve seen some people on the Steam forums asking if anyone has a way to get it working. I took a look, and got it working, and wanted to post it on the Threadiverse so that search engines would index the solution it for anyone who’s off trying to get it functioning.

The game is authored using RPGMaker MZ.

It looks like the Steam integration isn’t functioning for some reason; this causes it to fail at start. What I did was simply to disable that, and then run it directly outside of Steam in Linux, using NW.js.

Apply this patch to disable the Steam integration:

--- "Lost Chapter-orig/js/plugins/Cyclone-Steam.js"	2024-06-05 23:58:45.082129776 -0700
+++ "Lost Chapter/js/plugins/Cyclone-Steam.js"	2024-06-06 00:45:13.582833008 -0700
@@ -318,7 +318,8 @@
   /////////////////
   static setRichPresence(pchKey, pchValue)
   {
-    return this.greenworks.setRichPresence(pchKey, pchValue);
+      //    return this.greenworks.setRichPresence(pchKey, pchValue);
+      return null;
   }
 
   /////////////////
@@ -326,7 +327,8 @@
   /////////////////
   static getAuthSessionTicket()
   {
-    return this.greenworks.getAuthSessionTicket(this.AuthSuccess, this.AuthFailed);
+      //    return this.greenworks.getAuthSessionTicket(this.AuthSuccess, this.AuthFailed);
+      return null;
   }
 
   static AuthSuccess()

On the off chance that the above doesn’t copy cleanly, including a gzipped, base64-encoded version:

begin-base64 644 lost-chapter.diff.gz
H4sICOBpYWYAA2xvc3QtY2hhcHRlci5kaWZmAK2QUUvDMBSFny30P1z2NGnT
Zunaxu6lMvBFH2QT30u8tNlqWpIUGeJ/twtDVBwW9D7kwMnNR84hhMDsrjMW
1k3VW9Sk07KOdybu26GWysTrg2g7hWRrsXqOdmZ2wShbEpoRmgJLipQXyzSi
nC3YVZ5nQGhOqRcEwVfuRGQGlI68YpFEKWc8SSjlJ2RZAkkWPMwhOAqHsvQA
IP4+/tE1trJSgEG7kaK512hQCZz3ornFQwijPlbtgJdu+dX3yCig0Q5agW2k
iWqNqF46vTfRr5CV7wXgJo7/h3MiqKFtV+6Lb+Ppn4nrimGZK4bl04qp0V4P
ttmiMbJTD1Ls0c4ntfHjS7fk7EGI8SaED+emki0+Te3oz/TzzZ2Sf+IcA78D
IonX8wEDAAA=
====

You can extract that as follows:

$ uudecode lost-chapter.diff.gz.base64
$ gunzip lost-chapter.diff.gz
$ mv lost-chapter.diff "Lost Chapter/"

So apply the patch:

$ cd "Lost Chapter"
$ patch -p1 <lost-chapter.diff

Then you’re going to need the current Linux release of NW.js:

https://nwjs.io/

unpack that tarball into the Lost Chapter game directory:

$ cd "Lost Chapter"
$ tar xzvf nwjs-v0.88.0-linux-x64.tar.gz --strip-components=1 

And then just run the NW.js binary to launch the game:

$ ./nw

That’s good-enough to just run the game directly from the command line and have it work.

The game doesn’t – as best I can tell – appear to need to be run from within the Steam environment if invoked like this, but if you’d like to be able to launch it from Steam, you can do so as follows:

Go to Lost Chapter’s properties in Steam. Then General->Launch Options. In that field, insert the following text:

echo %command%; ./nw

This convoluted “Launch Options” syntax is because Steam treats anything in this field as a series of environment variables unless the string “%command%” is present, in which case it treats the whole thing as a command line to execute. We don’t actually want to use the original binary at all, in this case, but need to have it in the “Launch Options” text to specify the new binary name.