Comments (31)
Ah thanks ! I'll take a look at that tomorrow. I have the feeling there will be more functions this time I'm afraid.
from box86.
yeah, there are a lot of missing symbol. This game seems to be statically linked to SDL.
But I'm unsure the isue are with the symbols.
At the beggining there is: SDL could not be initialized: No available video device
I don't think that's good.
SDL doesn't seem to be able to open Audio device either, falling back to Dummy Audio (but the missing symbol probably didn't help there).
from box86.
I think next step would be to get a BOX86_LOG=DEBUG
trace. I'm interested in the last line (like ~50) before the "SDL could not be initialized: No available video device" message.
from box86.
Sure, heres the last few lines before it.
15290|0x82ffdf8: Calling memcpy (A9AB53E0, A9AB7188, 00000036...) => return 0xA9AB53E0
15290|0x832541b: Calling dlsym (00000007, 08421336, A9AB7188...) =>Call to dlsym(0x7, "XF86VidModeLockModeSwitch")
Symbol not found
return 0x00000000
15290|0x8325438: Calling strlen(0x8421336("XF86VidModeLockModeSwitch")) => return 0x00000019
15290|0x82ff54b: Calling malloc (0000001B, FFFFFFFF, 00000019...) => return 0xA9A934D0
15290|0x82ffdd6: Calling strlen(0x8421336("XF86VidModeLockModeSwitch")) => return 0x00000019
15290|0x82ffdf8: Calling memcpy (A9A934D1, 08421336, 00000019...) => return 0xA9A934D1
15290|0x8325467: Calling dlsym (00000007, A9A934D0, 0000001B...) =>Call to dlsym(0x7, "_XF86VidModeLockModeSwitch")
Symbol not found
return 0x00000000
15290|0x82ff654: Calling free (A9A934D0, 08421336, 00000019...) => return 0xA9A934D0
15290|0x832547a: Calling dlerror (A9A934D0, A9A934D0, 0000001B...) => return 0xA9AB7188
15290|0x832fdf2: Calling pthread_getspecific (00000003, 00000000, 00000000...) => return 0xA9AB9390
15290|0x82ffdd6: Calling strlen(0x841986c("Failed loading %s: %s")) => return 0x00000015
15290|0x82ffdf8: Calling memcpy (A9AB52DC, 0841986C, 00000015...) => return 0xA9AB52DC
15290|0x82ffdd6: Calling strlen(0x8421336("XF86VidModeLockModeSwitch")) => return 0x00000019
15290|0x82ffdf8: Calling memcpy (A9AB5360, 08421336, 00000019...) => return 0xA9AB5360
15290|0x82ffdd6: Calling strlen(0xa9ab7188("Symbol "_XF86VidModeLockModeSwitch" not found in 0x7)
")) => return 0x00000036
15290|0x82ffdf8: Calling memcpy (A9AB53E0, A9AB7188, 00000036...) => return 0xA9AB53E0
15290|0x832541b: Calling dlsym (00000008, 08421336, A9AB7188...) =>Call to dlsym(0x8, "XF86VidModeLockModeSwitch")
return 0xA9AC98C4
15290|0x832541b: Calling dlsym (00000001, 084211F6, 00000000...) =>Call to dlsym(0x1, "XCreateIC")
return 0xA9AD30B8
15290|0x832541b: Calling dlsym (00000001, 08421200, 00000000...) =>Call to dlsym(0x1, "XGetICValues")
return 0xA9AD31A8
15290|0x837ae5b: Calling dlclose (00000001, 08421336, 00000000...) =>Call to dlclose(0x1)
return 0x00000000
15290|0x837ae5b: Calling dlclose (00000002, 08421336, 00000000...) =>Call to dlclose(0x2)
return 0x00000000
15290|0x837ae5b: Calling dlclose (00000003, 08421336, 00000000...) =>Call to dlclose(0x3)
return 0x00000000
15290|0x837ae5b: Calling dlclose (00000004, 08421336, 00000000...) =>Call to dlclose(0x4)
return 0x00000000
15290|0x837ae5b: Calling dlclose (00000005, 08421336, 00000000...) =>Call to dlclose(0x5)
return 0x00000000
15290|0x837ae5b: Calling dlclose (00000006, 08421336, 00000000...) =>Call to dlclose(0x6)
return 0x00000000
15290|0x837ae5b: Calling dlclose (00000007, 08421336, 00000000...) =>Call to dlclose(0x7)
return 0x00000000
15290|0x837ae5b: Calling dlclose (00000008, 08421336, 00000000...) =>Call to dlclose(0x8)
return 0x00000000
15290|0x83255ef: Calling getenv("SDL_VIDEODRIVER") => return 0x00000000(nil)
15290|0x832fdf2: Calling pthread_getspecific (00000003, 00000000, 00000000...) => return 0xA9AB9390
15290|0x82ffdd6: Calling strlen(0x840ac45("No available video device")) => return 0x00000019
15290|0x82ffdf8: Calling memcpy (A9AB52DC, 0840AC45, 00000019...) => return 0xA9AB52DC
15290|0x832fdf2: Calling pthread_getspecific (00000003, 08421200, 00000000...) => return 0xA9AB9390
15290|0x80f7114: Calling strlen(0x83fa2c8("SDL could not be initialized: ")) => return 0x0000001E
15290|0x83e6196: Calling fwrite (083FA2C8, 00000001, 0000001E...) =>SDL could not be initialized: return 0x0000001E
15290|0x83e646e: Calling fflush (B6E12D90, 00000001, 00000000...) => return 0x00000000
15290|0x80f7114: Calling strlen(0x861b8e0("No available video device")) => return 0x00000019
15290|0x83e6196: Calling fwrite (0861B8E0, 00000001, 00000019...) =>No available video device return 0x00000019
15290|0x83e646e: Calling fflush (B6E12D90, 00000001, 00000000...) => return 0x00000000
15290|0x83e6196: Calling fwrite (B6CA12EC, 00000001, 00000001...) =>
return 0x00000001
I've uploaded the entire log here just in case.
from box86.
So, I have pushed a change on how dlsym works. Hopefully I haven't broke anything, and SDL will now be able to initialize it's graphics at least.
from box86.
Sadly i seem to get the exact same error when trying the new build. Same print out to cmd as well.
SDL could not be initialized: No available video device
still happens.
from box86.
The BOX86_LOG=DEBUG
should be slightly more detailled now.
from box86.
Ah okay. This is from the only entry of SDL could not be initialized
being mentioned
20619|0x8325438: Calling strlen(0x8421336("XF86VidModeLockModeSwitch")) => return 0x00000019
20619|0x82ff54b: Calling malloc (0000001B, FFFFFFFF, 00000019...) => return 0xA91E7AF8
20619|0x82ffdd6: Calling strlen(0x8421336("XF86VidModeLockModeSwitch")) => return 0x00000019
20619|0x82ffdf8: Calling memcpy (A91E7AF9, 08421336, 00000019...) => return 0xA91E7AF9
20619|0x8325467: Calling dlsym (00000007, A91E7AF8, 0000001B...) =>Call to dlsym(0x7, "_XF86VidModeLockModeSwitch")
Symbol not found
return 0x00000000
20619|0x82ff654: Calling free (A91E7AF8, 08421336, 00000019...) => return 0xA91E7AF8
20619|0x832547a: Calling dlerror (A91E7AF8, A91E7AF8, 0000001B...) => return 0xA91FA8E0
20619|0x832fdf2: Calling pthread_getspecific (00000003, 00000000, 00000000...) => return 0xA91FCA78
20619|0x82ffdd6: Calling strlen(0x841986c("Failed loading %s: %s")) => return 0x00000015
20619|0x82ffdf8: Calling memcpy (A91F89C4, 0841986C, 00000015...) => return 0xA91F89C4
20619|0x82ffdd6: Calling strlen(0x8421336("XF86VidModeLockModeSwitch")) => return 0x00000019
20619|0x82ffdf8: Calling memcpy (A91F8A48, 08421336, 00000019...) => return 0xA91F8A48
20619|0x82ffdd6: Calling strlen(0xa91fa8e0("Symbol "_XF86VidModeLockModeSwitch" not found in 0x7(libXss.so.1)")) => return 0x00000041
20619|0x82ffdf8: Calling memcpy (A91F8AC8, A91FA8E0, 00000041...) => return 0xA91F8AC8
20619|0x832541b: Calling dlsym (00000008, 08421336, A91FA8E0...) =>Call to dlsym(0x8, "XF86VidModeLockModeSwitch")
return 0xA920D084
20619|0x832541b: Calling dlsym (00000001, 084211F6, 00000000...) =>Call to dlsym(0x1, "XCreateIC")
return 0xA9216858
20619|0x832541b: Calling dlsym (00000001, 08421200, 00000000...) =>Call to dlsym(0x1, "XGetICValues")
return 0xA9216948
20619|0x837ae5b: Calling dlclose (00000001, 08421336, 00000000...) =>Call to dlclose(0x1)
return 0x00000000
20619|0x837ae5b: Calling dlclose (00000002, 08421336, 00000000...) =>Call to dlclose(0x2)
return 0x00000000
20619|0x837ae5b: Calling dlclose (00000003, 08421336, 00000000...) =>Call to dlclose(0x3)
return 0x00000000
20619|0x837ae5b: Calling dlclose (00000004, 08421336, 00000000...) =>Call to dlclose(0x4)
return 0x00000000
20619|0x837ae5b: Calling dlclose (00000005, 08421336, 00000000...) =>Call to dlclose(0x5)
return 0x00000000
20619|0x837ae5b: Calling dlclose (00000006, 08421336, 00000000...) =>Call to dlclose(0x6)
return 0x00000000
20619|0x837ae5b: Calling dlclose (00000007, 08421336, 00000000...) =>Call to dlclose(0x7)
return 0x00000000
20619|0x837ae5b: Calling dlclose (00000008, 08421336, 00000000...) =>Call to dlclose(0x8)
return 0x00000000
20619|0x83255ef: Calling getenv("SDL_VIDEODRIVER") => return 0x00000000(nil)
20619|0x832fdf2: Calling pthread_getspecific (00000003, 00000000, 00000000...) => return 0xA91FCA78
20619|0x82ffdd6: Calling strlen(0x840ac45("No available video device")) => return 0x00000019
20619|0x82ffdf8: Calling memcpy (A91F89C4, 0840AC45, 00000019...) => return 0xA91F89C4
20619|0x832fdf2: Calling pthread_getspecific (00000003, 08421200, 00000000...) => return 0xA91FCA78
20619|0x80f7114: Calling strlen(0x83fa2c8("SDL could not be initialized: ")) => return 0x0000001E
20619|0x83e6196: Calling fwrite (083FA2C8, 00000001, 0000001E...) =>SDL could not be initialized: return 0x0000001E
20619|0x83e646e: Calling fflush (B6DBDD90, 00000001, 00000000...) => return 0x00000000
Like before i've uploaded the log just in case.
from box86.
I pushed some improvment again, on x11 dependancies. Hopefully, it will find it's symbols now.
from box86.
Still the same error, and i believe the same amount of missing symbols. The log looks the same(?) as well. Uploaded the log again the section with SDL could not be initialized
looks the same to me as well.
from box86.
Ah, I have noticed in the full log that some symbol were missing from x11 (not visible in regular log, but can be seen with BOX86_DLSYM_ERROR=1
or with the full BOX86_LOG=DEBUG
of course).
I have added them, maybe it's better now.
from box86.
Nice find! that has fixed the SDL could not be initialized
error. Game still doesn't boot yet. The sdl audio error SDL_OpenAudioDevice failed: No such audio device
still is displayed. Full log again. And heres the full missing symbols when using BOX86_DLSYM_ERROR=1
.
from box86.
I checked the missing symbol. And for alsa, only 1 symbol seems to be missing. I added it. Maybe it will found an audio driver now.
from box86.
Sadly the audio driver still isn't found :(
from box86.
Can you do a trace BOX86_DLSYM_ERROR=1
trace again, to check if it goes farther or if it's something else?
from box86.
I've uploaded the trace.
Also i've now tested my whole gog / humble bundle library. Would you like me to still open issues per game or should i wait until these few that are open now are resolved?
from box86.
For all game that are unity based, no need to open.
But for ohter game, yeah, why not.
Thanks for the trace: yeah, it goes farther, but found another unknown symbol: snd_pcm_get_chmap
Too bad this part stops at the 1st unknown symbol...
from box86.
And I just pushed the missing function along with a few others.
from box86.
Here's the new trace after trying with the new build. link
from box86.
It seems alsa is now correctly recognized and sound is initialized correctly now.
I assume it still segfault. can you do a gdb backtrace of the crash?
from box86.
Sure.
Thread 1 "box86" received signal SIGSEGV, Segmentation fault.
0xa802756c in Run (emu=0xa80cdb08) at /home/pi/box86/src/emu/x86run.c:629
629 GD.dword[0] = ED->dword[0];
(gdb) bt
#0 0xa802756c in Run (emu=0xa80cdb08) at /home/pi/box86/src/emu/x86run.c:629
#1 0xa8006cec in main (argc=<optimized out>, argv=<optimized out>, env=<optimized out>) at /home/pi/box86/src/main.c:42
from box86.
ah, that's a generic access to some null pointer I'm afraid.
Maybe a last trace with BOX86_LOG=DEBUG
just in case I see something obviously wrong in the trace.
from box86.
from box86.
Looks like it doesn't find the Assets.dat file:
Calling fopen("./Assets.dat", "rb") => return 0x00000000
Now. I assume the folder is indeed here, but somehow, it "cd" to the folder of "box86" instead of the real BabaIsMe binary. Maybe try to cp box86 in the same folder (don't use a link, do an actual copy), just to try if it find it's Assets data like this.
from box86.
Very good find! I was trying to launch baba inside of its bin32/ folder. Now launching it via box86 bin32/Chowdren
has the game attempting to boot! I say attempting because it opens a window, then goes fullscreen for 10 seconds, the closes out of fullscreen but the game is still running(?). Cpu usage is still at 100%, though nothing seems to load. No error messages either apart from
Loading ./Data/map0.m (Unspecified)
Could not load file ./Data/map0.m
Loading ./Data/levels.m (Unspecified)
Could not load file ./Data/levels.m
Loading ./Data/Languages/lang_en.txt (Unspecified)
Surface: Set scale not implemented: 24 0
SurfaceObject::set_transparent not implemented: 0
Loading /home/pi/.local/share/Baba_Is_You/SettingsC.txt (Unspecified)
Loading /home/pi/.local/share/Baba_Is_You/ba.ba (Unspecified)
Could not load file /home/pi/.local/share/Baba_Is_You/ba.ba
Set window visible: 1
set fullscreen: 1
Also, i tried what you said about launching box86 from the game dir. Well in trying that, i forgot to set the BOX86_LD_LIBRARY_PATH
, and suprisingly the game did not complain about missing pulse audio and just defaulted back to libasound
like it usually does, because of this there are no missing symbol errors. Oh and launching ./box86 from the game dir like ./box86 bin32/Chowdren
had the same output as ~/box86/build/box86 bin32/Chowdren
So looks like i need to launch the game outside its bin dir (my bad!).
Anyway as the game still doesnt load correctly, do you want a full log dump or gdb bt?
from box86.
Ah good, it's going farther. And yeah, asla should should work for sound, no need to get the all the pulse-audio missing stuff...
So, there is no crash, but some endless loop. Well, then a BOX86_LOG=DEBUG
may be usefull. Kill the program when it quit the fullscreen. I suspect there is a loop that will not be usefull at this point, but may make the log huge.
from box86.
The log was huge, 180MB for the .txt file alone!
I've trimmed it down a lot and uploaded it though its still like 60MB. Hopefully thats alright.
from box86.
"The hosting period for this file has now expired, only premium users can download it."
@ITotalJustice, you can zip a file and attach it directly here, which will be a lot better than a free hosting service.
from box86.
"The hosting period for this file has now expired, only premium users can download it."
@ITotalJustice, you can zip a file and attach it directly here, which will be a lot better than a free hosting service.
Sure, I didn’t actually think of that at the time haha.
I can upload the logs later on today.
from box86.
Baba Is You seems to be running on side.
Can we close this ticket?
from box86.
Works for me too
from box86.
Related Issues (20)
- left 4 dead 2 vulkan error HOT 2
- Procedure for running AppImages or Snaps? HOT 4
- hlds_linux crashes on map change (cstrike 1.6)
- [...]/steam: No such file or directory HOT 5
- error creating window HOT 17
- Box86 in docker works on arm linux, not on arm macos HOT 2
- wine in box86 v0.3.0 can't get drives in winecfg HOT 7
- [RPi4] Enabling XInput support in Wine HOT 10
- Monster Hunter Frontier Online random crash
- Problems with winegstreamer HOT 8
- steam not running for me on raspberry pi4 x64 4GB HOT 1
- Cant install box86 on proot-distro in termux dpkg systemd error HOT 1
- Some games not running anymore with master branch HOT 15
- Tor not working with Box86 HOT 2
- "Directory not empty" error when trying to reinstall steam HOT 1
- box86 down?, box64 still respond HOT 2
- How the hell do I compile this on Alpine Linux? HOT 4
- blank login window for Steam HOT 2
- Installing wine 5.1/6.0 on arm debain
- Performance regression in Starcraft Broodwar 1.16 with cnc-ddraw (with bisect) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from box86.