Xele02 / UMO

Rewrite project of UtaMacross mobile game
MIT License
56 stars 6 forks source link

v0.4_alpha2 - Not loading any gameplay or s-live #82

Closed Rocket-PropelledWeeb closed 1 year ago

Rocket-PropelledWeeb commented 1 year ago

I am running Arch Linux and have installed the vlc package. Following the instructions on the main page, I downloaded the server data of android and db. I then loaded the project into Unity 2018.4.24f1. Loading the game worked and I got to the main menu, however I'm not sure if it looks correct. Screenshot attached. Going into song select works as intended on both s-live and normal play, I am able to select idols, costumes, plates, etc. However, when loading into either of these modes it prints a bunch of errors about resources not found in the .xab file, and stalls on the loading screen. Editor log is attached. Is there something I did wrong, or is something else causing this issue? If you need any more info please let me know. Editor.log umo_main

Xele02 commented 1 year ago

Hi,

Sorry for the late reply, I don't get Github mail for whatever reason and don't look too much here. Looking at the log, looks like Unity can't find vlc :

DllNotFoundException: libdl

And it crash the game when loading a song. I'll try to recheck if I've done anything to make it work on my PC (Running on a old Ubuntu). Perhaps it's related to vlc package version, It require a old version 3.0 and not the lastest. And this week, I'll try to see to add an options to disable video stuff, so it'll at least don't crash.

Rocket-PropelledWeeb commented 1 year ago

I've tried several VLC versions, down to the oldest available in the AUR archive: 3.0.6-1 from 2019 (most recent is 3.0.18-8) and nothing seems to change. I tried running it in a fresh Ubuntu VM as well and got the same result with the same errors in the log. Looking deeper into libdl it seems as though the issue could be that the game is targeting the shared library libdl.so (which doesn't exist) rather than libdl.so.2. Following some forum advice and simply creating a symlink pointing from libdl.so to libdl.so.2 makes the above error go away but also brings many libvlc cannot load module warnings. It then will crash the entire editor when starting a song. I've attached the editor.log again. If the shared libraries are an issue, would it be possible to bundle working libdl and vlc packages with the release, or even as a separate linux build? Editor_Crash.log

Xele02 commented 1 year ago

Hi, After check, the libdl.so problem is not related to VLC, but it's good if a symlink works. I checked your new log. VLC looks loading correctly and even the video, but crash after in its own code.

../../third_party/tcmalloc/chromium/src/tcmalloc.cc:289] Attempt to free invalid pointer 0x7f31646fbb40 
Receiving unhandled NULL exception
#0  0x007f31efee2fd8 in tcmalloc::Log(tcmalloc::LogMode, char const*, int, tcmalloc::LogItem, tcmalloc::LogItem, tcmalloc::LogItem, tcmalloc::LogItem)
#1  0x007f31efeeea34 in (anonymous namespace)::InvalidFree(void*)
#2  0x007f31b028c562 in vlc_gl_surface_Destroy
#3  0x007f31b027f326 in vout_display_SendMouseMovedDisplayCoordinates
#4  0x007f31b0280b03 in vout_display_SendMouseMovedDisplayCoordinates
#5  0x007f31eda9ebb5 in pthread_condattr_setpshared
#6  0x007f31edb20d90 in __clone 

I don't really see what goes wrong like that. I'll try to compare with the log when I run it on my PC.

I don't think it's a problem with the shared library itself. And since it need to run in unity editor, at some point it will require a shared lib even if I try to compile it inside something else. And for a separate build, it's not possible at the moment cause the asset bundle are in android format and only the editor can load them. A standalone build refuse to load them.

I will still add the option to disable the video player this weekend so the game could still be played.

Also for information, on my side I use libVLC 3.0.9.2 . But guess you can try a newer version, in case they fixed bug. Should works in all 3.x version I guess

Xele02 commented 1 year ago

I pushed a new release 0.4 alpha 3. Switch to libdl.so.2 since it was also working on my linux, and added an option (DisableMovies in the asset Resources/EditorRuntimeSettings) to completely disable VLC. So if upgrading VLC version still crash, you should be able to play by disabling movies.

Rocket-PropelledWeeb commented 1 year ago

Thanks! The game loads now at least. Did you ever find out what version of vlc you have on linux that works? Alternatively, are you using a plugin like VLC for Unity? I also wonder if this line about hw decoders is the reason for the crash:

[0000186472468c00] main generic debug: looking for hw decoder module matching "none": 3 candidates
[0000186472468c00] main generic debug: no hw decoder modules matched
../../third_party/tcmalloc/chromium/src/tcmalloc.cc:289] Attempt to free invalid pointer 0x7f655c711140 
Receiving unhandled NULL exception

Or, possibly the error a bit above it: [00001bd2129a0ec0] main filter error: Failed to create video converter Let me know what you think.

Edit: Somehow I completely missed the VLC version number you provided. Sorry about that.

Xele02 commented 1 year ago

New version 0.4 Beta switch from vlc to reencoding movie with ffmpeg on linux. You can try this, after opening the project, launch the conversion with the menu UMO > Convert all movies. It will take some time.

Rocket-PropelledWeeb commented 1 year ago

This appears to work properly (though you are right, it takes quite a long time). Marking as closed, thank you.