Giter Club home page Giter Club logo

Comments (31)

ptitSeb avatar ptitSeb commented on July 23, 2024 1

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

The BOX86_LOG=DEBUG should be slightly more detailled now.

from box86.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

I pushed some improvment again, on x11 dependancies. Hopefully, it will find it's symbols now.

from box86.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

Sadly the audio driver still isn't found :(

from box86.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

And I just pushed the missing function along with a few others.

from box86.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

Here's the new trace after trying with the new build. link

from box86.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

Here you go

from box86.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

ptitSeb avatar ptitSeb commented on July 23, 2024

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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

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.

 avatar commented on July 23, 2024

"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.

ITotalJustice avatar ITotalJustice commented on July 23, 2024

"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.

ptitSeb avatar ptitSeb commented on July 23, 2024

Baba Is You seems to be running on side.

Can we close this ticket?

from box86.

slock83 avatar slock83 commented on July 23, 2024

Works for me too

from box86.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.