ptitSeb / box86

Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices
https://box86.org
MIT License
3.23k stars 223 forks source link

Age of Mythology: Unimplemented Opcode (E8) F0 FE 00 83 3D 90 21 18 #891

Open Roburetto opened 9 months ago

Roburetto commented 9 months ago

AOM was running fine on Raspberry Pi4. With the move to Raspberry Pi5 it's now failing me with:

Cannot create memory map (@0x7a800000 0x146a80) for elf "/home/pi5/wine/lib/wine/i386-unix/opengl32.dll.so" got 0x7a340000 Error: locading elf /home/pi5/wine/lib/wine/i386-unix/opengl32.dll.so 02c0:err:module:import_dll Loading library opengl32.dll (which is needed by L"C:\windows\system32\wined3d.dll") failed (error c0000005). 02c0:err:module:import_dll Library wined3d.dll (which is needed by L"C:\windows\system32\d3d8.dll") not found 4096|0x111332: Unimplemented Opcode (E8) F0 FE 00 83 3D 90 21 18 Box86 with Dynarec v0.3.3 3869cc2b built on Nov 24 2023 06:31:03

A few notes: 1) Pi5 default kernel uses a 16kb page_size which breaks wine & box86. To use a 4kb kernel you need to add the following line to the end of /etc/boot/config.txt: kernel=kernel8.img 2) Wine version is 7.0.2 3) Age of Empires is still working OK.

Roburetto commented 8 months ago

Box86 with Dynarec v0.3.3 e02844fb built on Dec 2 2023 06:28:38 01b8:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION 01b8:fixme:msctf:LangBarMgr_GetShowFloatingStatus STUB:(00268AC0) 01b8:fixme:msctf:LangBarMgr_ShowFloating STUB:(00268AC0) 01c8:fixme:imm:ImeSetActiveContext (0x6e3e00, 0): stub 01c8:fixme:imm:ImmReleaseContext (00030088, 006E3E00): stub 01b8:fixme:imm:ImeSetActiveContext (0x268308, 1): stub 01b8:fixme:imm:ImmReleaseContext (00040068, 00268308): stub 01b8:fixme:imm:ImmDisableTextFrameService Stub 01b8:fixme:imm:NotifyIME NI_CLOSECANDIDATE 01b8:fixme:imm:ImmGetOpenStatus (00268308): semi-stub Warning: cannot create memory map (@0x7a800000 0x146a80) for elf "/home/pi5/wine/lib/wine/i386-unix/opengl32.dll.so" got 0x79fa0000 01b8:fixme:d3d:wined3d_guess_card_vendor Received unrecognized GL_VENDOR "Broadcom". Returning HW_VENDOR_NVIDIA. 2132|0x351332: Unimplemented Opcode (E8) F0 FE 00 83 3D 90 21 3C Box86 with Dynarec v0.3.3 e02844fb built on Dec 2 2023 06:28:38 01e8:fixme:advapi:RegisterEventSourceW ((null),L"Age of Mythology"): stub 01e8:fixme:advapi:ReportEventA (CAFE4242,0x0001,0x0000,0x000003e8,00000000,0x0005,0x00000055,0276ED04,0276E8BC): stub 01e8:fixme:advapi:ReportEventW (CAFE4242,0x0001,0x0000,0x000003e8,00000000,0x0005,0x00000055,002696C0,0276E8BC): stub 01e8:err:eventlog:ReportEventW L"aomx.exe" 01e8:err:eventlog:ReportEventW L"4.2004.1.500" 01e8:err:eventlog:ReportEventW L"granny.dll" 01e8:err:eventlog:ReportEventW L"0.0.0.0" 01e8:err:eventlog:ReportEventW L"00001332" 01e8:fixme:advapi:DeregisterEventSource (CAFE4242) stub

Program crashes within Wine offering to send an error report about granny.dll

Roburetto commented 8 months ago

Also crashing on Pi 4:

Box86 with Dynarec v0.3.3 e02844fb built on Dec 2 2023 06:28:38 015c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION 016c:err:xrandr:xrandr_get_screen_resources Failed to get screen resources. 016c:err:xrandr:xrandr14_get_gpus2 Failed to get gpus 016c:fixme:imm:ImeSetActiveContext (0x6dfb40, 0): stub 016c:fixme:imm:ImmReleaseContext (00020078, 006DFB40): stub 015c:fixme:msctf:LangBarMgr_GetShowFloatingStatus STUB:(002645C8) 015c:fixme:msctf:LangBarMgr_ShowFloating STUB:(002645C8) 015c:fixme:imm:ImeSetActiveContext (0x263e10, 1): stub 015c:fixme:imm:ImmReleaseContext (00050082, 00263E10): stub 015c:fixme:imm:ImmDisableTextFrameService Stub 015c:fixme:imm:NotifyIME NI_CLOSECANDIDATE 015c:fixme:imm:ImmGetOpenStatus (00263E10): semi-stub 015c:fixme:d3d:wined3d_guess_card_vendor Received unrecognized GL_VENDOR "Broadcom". Returning HW_VENDOR_NVIDIA. 2802|0x351332: Unimplemented Opcode (E8) F0 FE 00 83 3D 90 21 3C Box86 with Dynarec v0.3.3 e02844fb built on Dec 2 2023 06:28:38 018c:fixme:advapi:RegisterEventSourceW ((null),L"Age of Mythology"): stub 018c:fixme:advapi:ReportEventA (CAFE4242,0x0001,0x0000,0x000003e8,00000000,0x0005,0x00000055,0276ED04,0276E8BC): stub 018c:fixme:advapi:ReportEventW (CAFE4242,0x0001,0x0000,0x000003e8,00000000,0x0005,0x00000055,0027D100,0276E8BC): stub 018c:err:eventlog:ReportEventW L"aomx.exe" 018c:err:eventlog:ReportEventW L"4.2004.1.500" 018c:err:eventlog:ReportEventW L"granny.dll" 018c:err:eventlog:ReportEventW L"0.0.0.0" 018c:err:eventlog:ReportEventW L"00001332" 018c:fixme:advapi:DeregisterEventSource (CAFE4242) stub

Same behaviour, were program crashes within Wine offering to send an error report about granny.dll. Does not show the warning about "/home/pi5/wine/lib/wine/i386-unix/opengl32.dll.so"; the driver for the Videocore VI on the Pi4 is likely more "mature" than for the Pi 5's Videocore VII...(???)

ptitSeb commented 8 months ago

Can you check if it's a dynarec related issue?

Also, this is likely a regression on box86, do you know how to git bisect to find the commit that broke it?

Roburetto commented 8 months ago

BOX86_DYNAREC=0 ends with the same result if that's what you meant.

Never used it before, but I can try git bisect

Mind you, I no longer have the Pi4 and I suspect that the problem with the Pi5 was the driver and originally something to do with failing before the state "Received unrecognized GL_VENDOR "Broadcom". Returning HW_VENDOR_NVIDIA."

Bottom line: if it never worked on the Pi5 I won't be able to bisect the issue. It would be a more reliable strategy on the Pi4 (where I know for sure it once worked).

ptitSeb commented 8 months ago

I did some analysis on my side, and it did works fine for me. I suspect the issue is in gstreamer wrapping. It's still very buggy on box86, as I haven't backported the improvmeent I have done on box64 for that. I think if you uninstall gstreamer armhf version, the game should luanch (with a black screen instead of the intro video).

Roburetto commented 8 months ago

Per the attached list, nothing related with gstreamer seems to be installed on the armhf side. installed_armhf.txt

Roburetto commented 3 months ago

Whatever the cause was, its working fine as I write (Wine 7.0.2 32 bits on RPI OS, Box86 with Dynarec v0.3.5 f5f1e141 built on May 1 2024 06:27:59).