elizagamedev / mkxp-oneshot

mkxp, forked for OneShot
GNU General Public License v2.0
76 stars 28 forks source link

What's the status of this repo? #20

Open cloudrac3r opened 5 years ago

cloudrac3r commented 5 years ago

I run Linux. I want to play OneShot, and I want a good first experience. I don't have a physical Windows machine.

I tried running the game in a virtual machine, and the closest I've got so far is Windows 7 in VirtualBox, and the game actually starts, but the floor texture disappears whenever I change rooms (but only after leaving the first building). It comes back when I restart the game. This is obviously not ideal.

I could try using Steam Play/Proton, but according to the ProtonDB entry the "meta" elements of the game don't really transfer over too well. I've seen a few of these meta elements already.

I see that you're still updating this repo, so my hopes are high, but is it actually a good idea to try using this repo for my first playthrough, or will the experience just sort of fall apart?

Sorry for opening an issue for this, but I couldn't find another place to contact you at. If you want to reply privately, you're more than welcome to use the contact details from here.

KockaAdmiralac commented 5 years ago

(Not a maintainer of this repo but I worked on the Linux port that got merged into here.) I use a build script to build this on Linux. What distribution and desktop environment are you using?

I haven't yet gotten to packaging this into a single executable because of some dependency issues (and switching to a new build system) but if you're having issues with the build you can either reply here or contact me via mail (1405223@gmail.com) or Discord (KockaAdmiralac#9306).

queengooborg commented 5 years ago

Officially, we're also working on the Linux port as a fork of this repository, found on Gooborg Studios' account. @KockaAdmiralac is working on the Linux portions of this fork, and the build script minus dependency installation is included there. :wink:

cloudrac3r commented 5 years ago

Ubuntu 18.04, Openbox WM.

You're saying that GooborgStudios/synglechance#linux is the way to go for the most accurate experience?

queengooborg commented 5 years ago

That's correct! It's where we've implemented all the Linux code and whatnot. :wink:

cloudrac3r commented 5 years ago

Thanks! I'll give that a try. Should I use KockaAdmiralac's build script for that repo? Or should I read the readme and figure it out myself?

queengooborg commented 5 years ago

Kocka's build script is more robust than the one in the repository. I would use theirs as it installs the required dependencies along with compiling the game code!

Edit: Actually reading through it a little, I realize that Kocka's script already uses the fork. XD

cloudrac3r commented 5 years ago

Thank you so much for your help! I'll try that now.

cloudrac3r commented 5 years ago

So, partial success.

apt install can't find ruby-2.3, so I install 2.5 instead.

SDL2_image fails on the make install step. I install libsdl2-image-dev from the package manager and execute the other commands in the script one by one.

qmake can't find ruby 2.3, so I change the .pro file to make it look for 2.5 instead.

Everything else seems to work, but running the new OneShot binary says that it couldn't initialise the SteamWorks API. I assume that since I just compiled the game engine, I have the put the data files from Steam into some folder so it can find them, but I don't know how to do that.

KockaAdmiralac commented 5 years ago

To resolve the SteamWorks API error, you can try recompiling without Steam support by removing STEAM from flags in mkxp.pro and also removing the block that mentions steam.cpp/steamshim_child.cpp (leaving steam-binding.cpp) should be alright.

If you want Steam support as well, you can compile the Steamshim parent, create steam_appid.txt file with 420530 as its contents inside the same directory as the OneShot executable, rename OneShot to oneshot, place the Steamshim parent inside that directory and run it.

What does the echo $XDG_CURRENT_DESKTOP command output for you?

cloudrac3r commented 5 years ago

Removed the recommended instances of steam from mkxp.pro, then ran qmake, make, cp and ruby from the script file to hopefully update those changes.

Game window opens to a black screen, then instantly closes and I get:

$ ./OneShot
ALC_SOFT_pause_device present 
GL Vendor    : X.Org 
GL Renderer  : Radeon RX 570 Series (POLARIS10 / DRM 3.23.0 / 4.15.0-38-generic, LLVM 6.0.0) 
GL Version   : 3.0 Mesa 18.0.5 
GLSL Version : 1.30 
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Aborted (core dumped)

What does the echo $XDG_CURRENT_DESKTOP command output for you?

Empty string. (Output is a blank line.)

KockaAdmiralac commented 5 years ago

Interesting. It never really segfaulted for me that early during startup, so I'll have to install Openbox to investigate this.

The build script probably didn't mention or do this, but the files from synglechance/patches/assets need to be copied to the directory with the built executable (while merging the directories). Then copy OneShot's Windows files into that directory (while merging the directories but not overwriting the files, Data/xScripts.rxdata and the patches must not be overwritten) and the game should, under normal circumstances, be playable from that point. If you don't have OneShot's Windows files, the build script installs SteamCMD from which you can download them so you can:

If it doesn't work past that point then it's an issue with the executable itself.

cloudrac3r commented 5 years ago

It still segfaults.

I was planning to install a new OS soon anyway, so I could do that now and then try OneShot again, starting from scratch. Might work out. I've got a feeling something's wrong with my current setup.

KockaAdmiralac commented 5 years ago

I believe the issue is that you don't have a DE so this tries to create a string out of NULL: https://github.com/elizagamedev/mkxp-oneshot/blob/88c3867ff5861f05ee5fc733a37bcfb0c8df778c/src/oneshot.cpp#L284 I'll try to fix this today, but I don't know if I'll be able to replicate changing the desktop background on Openbox soon.

cloudrac3r commented 5 years ago

Openbox doesn't have a built-in way to set the desktop background. Most people, including me, install and use feh:

feh --bg-fill "/home/cloud/path/picture.png"

This is "fill" mode, so the background will be uniformly zoomed to cover the entire screen. The image doesn't stretch and there aren't black bars. Parts of the image may be offscreen if the aspect ratios are different.

queengooborg commented 5 years ago

We'll probably use the fallback for "Other DEs" for Openbox. If feh isn't installed by default, we can't trust that it will always be there for us to use.

KockaAdmiralac commented 5 years ago

I'm a bit late, but https://github.com/GooborgStudios/synglechance/commit/6ebb92c6b9aa0d5afe160f9398d8cc661738d5ea should fix the crash on Openbox. feh's logic for setting the background starts from here and it's... pretty complex. I'm not sure if we could handle something like that inside OneShot easily.

Anyways, could you do a git pull origin linux from the synglechance directory and then remake the executable and try to run it again?

cloudrac3r commented 5 years ago

Note: I've since wiped out my Ubuntu install in favour of Arch. Everything outside /home has been destroyed. I did this because I've been encountering numerous issues with building other packages that worked fine before, and I didn't want you to waste your time on trying to deal with whatever jankery was going on.

I started over with Kocka's Arch install script (using the same directories and their contents as before) and the game now starts and appears to run fine after a moment of walking around and examining things.

Thank you SO much for your hard work on this port!