ptitSeb / box86-compatibility-list

Box86 Compatibility List (Games and Software)
MIT License
65 stars 2 forks source link

Heroes of Might and Magic III #51

Open nru1979 opened 3 years ago

nru1979 commented 3 years ago

Test machine: Raspberry PI 3B+

Plain version works with disabled sound. Needs NO-CD.

Need hacking in both OS (Twister OS and Raspbian) to get sound working:

Tested OS: TwisterOS Settings: •Fake KMS •3G/1G •x86 wineprefix •Tested fullscreen and windowed Result: •Starts. Can play game. Works a few turns after hack, or without sound with original MSS32.DLL

Tested OS: Plain Raspbian Buster Same settings as TwisterOS Result:

H3_2020-12-01-105831_1920x1080_scrot

ptitSeb commented 3 years ago

A screenshot would be nice. I'll try to get one if you cant put one.

nru1979 commented 3 years ago

Voilà, I will do the same with HoMM4

nru1979 commented 3 years ago

Sorry for fake joy, should downgrade to Behavior issue :-(

nru1979 commented 3 years ago

All configs of the hacked version with new MSS32 lead to the same result: 3 turns and it goes SIGSEGV even if i disable it. It goes back to Raspbian. Tried almost all settings: no sigsegv, no sigill, no pulse, no libgl force, another gl4es, no dynarec, taskset -c 0... everything produces a crash to raspbian after 2-3 turns.

After I have finished with heroes 4, I will try again with the non-hacked version (original MSS32.DLL). But this one sure deadlocks if I do not disable sound.

nru1979 commented 3 years ago

Additionnal notes: VCMI-arm does not work (vcmiserver crashes at the end of every battle)

VCMI-x86 does not start with box86 (Illegal instruction 254 iirc), even after grabbing all the x86 libs from a PC.

Increasing swap file does not work.

Mods like HD Mod or HotA do not prevent game from crashing after 3 turns. Seems that debugging Box86 is the only hope to play this game on raspberry.

Regards

ptitSeb commented 3 years ago

I have just redone some critical part on the Dynarec in box86. So it may be intresseting to try again with latest version.

nru1979 commented 3 years ago

same result, sigsegv after 5 minutes.

Note that HoMM3 has the same memory issue symptoms in W7/W10. it might need a downgraded memory manager at some point.

2020-12-07-152207_1920x1080_scrot

I can try to trap the fault if you tell me how to do so.

Have a nice afternoon!

ptitSeb commented 3 years ago

You are missing libpng12.so it seems, according to the log on the screenshot.

nru1979 commented 3 years ago

No idea why, doesnt seem to change anything if i manually place libpng12.so.0 in ./, ./x86, or even /lib/i386-linux-gnu

That problem seems to occur with libncurses too.

It does not prevent the game from launching, neither from starting a game and playing a few turns.

2020-12-07-174529_1920x1080_scrot

ptitSeb commented 3 years ago

It's the ARM version that box86 is trying to open, not the x86 one. "native" is ARM here.

ptitSeb commented 3 years ago

But yeah, probably not related to issue anyway.

nru1979 commented 3 years ago

installed libpng12:arm, seemed to last a little more. error signal message is now "Double SIGSEGV! See here 2020-12-07-181121_1920x1080_scrot

nru1979 commented 3 years ago

pi@raspberrypi:/games $ addr2line -e /usr/local/bin/box86 -a 0x6285fbd0 0x6285fbd0 /home/pi/box86/src/emu/x86run.c:192 pi@raspberrypi:/games $ addr2line -e /usr/local/bin/box86 -a 0x711553d8 0x711553d8 ??:0

New version did not work, strangely when I forgot to mention DRPI3 it worked slowly, but without crashes....

ptitSeb commented 3 years ago

That's because without the -DRPI3, there is no dynarec, so only Interpretor run. The dynarec is way faster, but it's more complicated, so there can be bugs... I have Heroes of M&M 3 on GoG, so i'll try to have it run (along with the 4).

nru1979 commented 3 years ago

Ill test it with dynarec flag disabled. Maybe it could be a workaround. H3 stayed playable with the base compile version. It was just slow. I keep up to date.

nru1979 commented 3 years ago

OK not a dynarec problem. Tested it with BOX86_DYNAREC=0 and it crashed after 3 turns. Simply, the turns needed more time to be played since its slower...