It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Thanks for this great and inspiring artwork!

I have a question related to linux (I run it on arch linux):

I can only start the game if I install pulseaudio expecitly. Otherwise the game tries to start but before
any window can appear a segfault occues.

Since I tries to keep my setup small I only use a basic ALSA setup on my machine.

Is is possible to run the game only with ALSA sound setup or is pulseaudio obligatory?

As far as I can tell everything needed by the game and the plugins is installed on my system (checked with ldd).

Thanks in advance!

----------------------------------

Additional some log outputs:

Here is what I see when I try to launch with start.sh:
------------------------------
Running The Longing
Set current directory to /opt/The_Longing/game
Found path: /opt/The_Longing/game/The Longing.x86_64
Mono path[0] = '/opt/The_Longing/game/The Longing_Data/Managed'
Mono path[1] = '/opt/The_Longing/game/The Longing_Data/Mono'
Mono config path = '/opt/The_Longing/game/The Longing_Data/Mono/etc'
Preloaded 'ScreenSelector.so'
Preloaded 'libsteam_api.so'
Unable to preload the following plugins:
ScreenSelector.so
libsteam_api.so
Player data archive not found at `/opt/The_Longing/game/The Longing_Data/data.unity3d`, using local filesystem
------------------------------

And this is the content of Player.log:
------------------------------
./The Longing.x86_64() [0xddbcc8]
./The Longing.x86_64() [0xddc0ec]
./The Longing.x86_64() [0xddce04]
./The Longing.x86_64() [0xa2e9ee]
./The Longing.x86_64() [0xa31488]
./The Longing.x86_64() [0xa37c3f]
./The Longing.x86_64() [0xa37d2a]
./The Longing.x86_64() [0x4f4436]
./The Longing.x86_64() [0x819902]
./The Longing.x86_64() [0x45485c]
/usr/lib/libc.so.6(__libc_start_main+0xf2) [0x7fe154f65022]
./The Longing.x86_64() [0x45e048]

Debug info from gdb:


=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

xplicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query
GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object G
L_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_textu
re_buffer_range GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array
GL_ATI_blend_equation_separate GL_ATI_meminfo GL_ATI_texture_float
GL_ATI_texture_mirror_once GL_EXT_EGL_sync GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_depth_bounds_test GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_shader_image_load_formatted GL_EXT_shader_integer_mix GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_
window_rectangles GL_IBM_multimode_draw_arrays GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_sliced_3d GL_MESA_framebuffer_flip_y GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_NVX_gpu_memory_info GL_NV_conditional_render GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_NV_texture_barrier GL_OES_EGL_image GL_S3_s3tc
OPENGL LOG: Creating OpenGL 4.5 graphics device ; Context level <OpenGL 4.5> ; Context handle 60330208
Receiving unhandled NULL exception
#0 0x007ffcd19a3340 in funlockfile
#1 0x007ffcd19a38f0 in std::multimap<unsigned int, DeferredSkinningOperation, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, DeferredSkinningOperation> > >::~multimap()
#2 0x007ffcd19a3910 in operator new(unsigned long)
#3 0x007ffcd19a3950 in operator new(unsigned long)
#4 0x007ffcd19a3970 in zcfree
#5 0x007ffcd19a39a0 in FMOD::Memory_DefaultMalloc(unsigned int, unsigned int, char const*)
#6 0x007ffcd19a39c0 in FMOD::OutputALSA::initCallback(FMOD_OUTPUT_STATE*, int, unsigned int, int*, int, FMOD_SOUND_FORMAT*, int, int, void*)
#7 0x007ffcd19a39e0 in FMOD::SystemI::streamThread(void*)
#8 0x007ffcd19a3a10 in FMOD::SystemI::streamThread(void*)
#9 0x007ffcd19a3c80 in FMOD::MemPool::~MemPool()
#10 0x007ffcd19a3cb0 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#11 0x007ffcd19a3d50 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#12 0x007ffcd19a3ea0 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#13 0x007ffcd19a3ec0 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#14 0x007ffcd19a3f30 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#15 0x007ffcd19a4160 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#16 0x007ffcd19a4180 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#17 0x007ffcd19a41b0 in operator new(unsigned long)
#18 0x007ffcd19a4300 in std::vector<core::basic_string<char, core::StringStorageDefault<char> >, std::allocator<core::basic_string<char, core::StringStorageDefault<char> > > >::~vector()
#19 0x007ffcd19a4390 in zcfree
#20 0x007ffcd19a5190 in __libc_start_main
#21 0x007ffcd19a5260 in zcfree
------------------------------
No posts in this topic were marked as the solution yet. If you can help, add your reply
avatar
vegMem: Here is what I see when I try to launch with start.sh:
------------------------------
Running The Longing
Set current directory to /opt/The_Longing/game
Found path: /opt/The_Longing/game/The Longing.x86_64
Mono path[0] = '/opt/The_Longing/game/The Longing_Data/Managed'
Mono path[1] = '/opt/The_Longing/game/The Longing_Data/Mono'
Mono config path = '/opt/The_Longing/game/The Longing_Data/Mono/etc'
Preloaded 'ScreenSelector.so'
Preloaded 'libsteam_api.so'
Unable to preload the following plugins:
ScreenSelector.so
libsteam_api.so
Player data archive not found at `/opt/The_Longing/game/The Longing_Data/data.unity3d`, using local filesystem
------------------------------
Does symlinking libpulse-simple.so.0 to /dev/null in the game directory help? E.G. This Unity bug.
Post edited March 22, 2020 by Gydion

Does symlinking libpulse-simple.so.0 to /dev/null in the game directory help? E.G. This Unity bug.
Thanks Gydion for the great hint!

Unfortunately it doesn't seem to work (on my machine with The Longing).

If I use Pulseaudio, I can see in Player.log that Pulseaudio was selected by the audio manager:

AudioManager: Using PulseAudio: Default Output Device

If I try to launch the game without pulseaudio, I get the following error in Player.log:

#5 0x007ffeb9fabb00 in FMOD::Memory_DefaultMalloc(unsigned int, unsigned int, char const*)
#6 0x007ffeb9fabb20 in FMOD::OutputALSA::initCallback(FMOD_OUTPUT_STATE*, int, unsigned int, int*, int, FMOD_SOUND_FORMAT*, int, int, void*)
#7 0x007ffeb9fabb40 in FMOD::SystemI::streamThread(void*)
#8 0x007ffeb9fabb70 in FMOD::SystemI::streamThread(void*)
#9 0x007ffeb9fabde0 in FMOD::MemPool::~MemPool()

This indicates (too me) that ALSA was selected but can't be used by FMOD.

I found this Linux documentation provided by FMOD:

https://www.fmod.com/resources/documentation-api?version=1.10&amp;page=content/generated/platform_linux/basics.html

So I tried to use FMOD_ALSA_DEVICE=default to force ALSA usage, but this also doesn't works.

Thanks for the help!
Post edited March 22, 2020 by vegMem
Finally the game runs with ALSA. Yay!

The problem seems to be related to the current alsa-libs version (1.2.2), which change the defaults settings in /usr/share/alsa/alsa.conf.

See (changed the links since not enough reputation):

reddit.com/r/archlinux/comments/faa3oa/alsa_update_seems_to_break_several_games_fmod/

and

reddit.com/r/linux_gaming/comments/f86rj4/alsalib_122_breaks_all_unity_games/

for further information.

So I add the following lines (according to the above post) to my ~/.asoundrc file:

defaults.pcm.surround21.card off
defaults.pcm.surround21.device off
defaults.pcm.surround40.card off
defaults.pcm.surround40.device off
defaults.pcm.surround41.card off
defaults.pcm.surround41.device off
defaults.pcm.surround50.card off
defaults.pcm.surround50.device off
defaults.pcm.surround51.card off
defaults.pcm.surround51.device off
defaults.pcm.surround71.card off
defaults.pcm.surround71.device off

After that the games launches without any additional configuration requiered.
And without Pulseaudio requiered!

Thanks Gydion for your help!
Post edited March 22, 2020 by vegMem
avatar
vegMem: Finally the game runs with ALSA. Yay!

The problem seems to be related to the current alsa-libs version (1.2.2), which change the defaults settings in /usr/share/alsa/alsa.conf.
I came across this myself, thanks to vv221, a bit after I had posted, but you had already found it yourself. +1
I thought it sounded more like your problem when I read it. For reference the bug is specifically: https://github.com/alsa-project/alsa-lib/issues/27.
Post edited March 24, 2020 by Gydion
I also noticed that with the current alsa-lib version 1.2.2 the 64 bit variant of the game crashes while
the 32 bit version works fine.

With alsa 1.2.1 (or pulseaudio) I can start the 64 bit executable without problems.
I added the description of this crash, including the work-around, to ./play.it documentation: Common issues with Unity3D - Crash on launch if pulseaudio is not running

I hope it will make this information easier to find.
The problems seems to persist with alsa 1.2.3 and The Longing 1.0.7.
Update on this issue:

The problem seems to persist with alsa-lib 1.2.4 (although the fix for breaking Unity games is included since 1.2.3).

On my tests, I can see the following:

- with alsa-lib 1.2.1 - works as expexted
- with alsa-lib 1.2.2 - seems to work with adapted .asoundrc
- with alsa-lib 1.2.3 - works not
- with alsa-lib 1.2.4 - works not

I tried the workaround from (https://forge.dotslashplay.it/play.it/games/-/issues/355) and ignore libasound.so.2. This leeds to a working game but without sound at all.

Maybe this is only an issue on my setup and/or the combination of The Longing and ALSA.
Finally fixed this issue (with the help of the internet ;-)):

I have to explicitly specify my ALSA configuration, e.g. with

ALSA_CONFIG_PATH="~./asoundrc" /path/to/The-Longing/Binary

My .asoundrc only contains a basic configuration for my sound setup:

pcm.!default {
type hw
card STX
}

ctl.!default {
type hw
card STX
}


This fix the sound issue for me in various Unity3D games like The Longing,
Else Heart.Brake(), Beholder Never Alone or Layers of Fear (need also hided
libpulse-simple).

Tested with the current ALSA lib version 1.2.4.

Maybe this is related somehow to my setup (Asus Xonar Essence STX
(snd-virtuoso ALSA module) and R9 280X (with AMDGPU (experimental support))

Helpfull links (additional to the already mentioned links on this thread):
- https://github.com/alsa-project/alsa-lib/issues/38
- https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture#Alternative_method
- https://www.alsa-project.org/main/index.php/Asoundrc
- https://www.alsa-project.org/main/index.php/LibEnvVars

Thanks to Gydion and vv221 for the help in this thread!

Also thanks to vv221 for the great scripts on https://www.dotslashplay.it/en/start!
Post edited December 10, 2020 by vegMem