Emulator Issues #3458
closed[Linux] Wii games not working at all
0%
Description
What steps will reproduce the problem?
- Start Dolphin, with any configuration you want on Linux
- Try to load a Wii ISO/WAD
What is the expected output? What do you see instead?
Expect games to play, the game instead either just has a blank screen (SSBB) or causes Dolphin to crash with stack traces into the console (Wii Sports)
Dolphin version with the problem? Other Dolphin version without the
problem?
Every recent revision has the problem. Does not happen on Dolphin when run on Windows, runs great on Windows but not Linux
32-bit or 64-bit and any other build parameters?
Only tested on 32-bit Linux so far, but it seems like it would happen on 64-bit as well. Conversely, I've only tried Wii games on Windows on the 64-bit version of Dolphin, I should try them with 32-bit too to see what happens
OS version and versions of tools/libraries used?
Ubuntu 10.10 32-bit, standard libraries and development tools in repositories
Please provide any additional information below.
The Wii Menu DOES show the Health and Safety Screen, but once you press A, it freezes.
I can provide debugging information if requested.
Updated by skidau about 14 years ago
Have you tried this fix: http://code.google.com/p/dolphin-emu/issues/detail?id=3262#c8
Let us know if it works.
Updated by karamu.da.yo about 14 years ago
The Super Smash Bros Brawl and Wii Sports ISOs I tried are known good dumps, just so you know =P They work fine under Windows 7 on Dolphin
Also one thing I haven't tried on Windows is the OpenGL plugin. Unfortunately I wiped my Windows 7 partition on this thing (again >_>) so I can't test that either. Sorry, I'll get it installed as soon as I can and try it
I seem to be having the same problem as in issue 3456... seems like he is not getting much help with this bug either. Contrary to wespipes69's comment, this is most definitely a bug and has nothing to do with our setups.
EDIT: Sorry for these comments ^_^ Always forgetting information
Specs:-
CPU: AMD Athlon X2 5200+ running at 2.7GHZ
GPUs: dual 8500GT in SLI
RAM: 4GB DDR2-800
GameCube games always have run great with this, and it runs Wii games fine on Windows but not Linux =/
Updated by glennricster about 14 years ago
This doesn't happen for me on a 64-bit linux installation. Can you do a gdb backtrace or give any information as to where exactly in the code this happens?
Updated by karamu.da.yo about 14 years ago
Okay, made some progress with a Debug build and gdb to actually get something useful out of this.
This is a quick gdb excerpt from trying to run Wii Sports in Dolphin, when it shows some problems:
Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0xa422bb70 (LWP 15956)]
Interpreter::unknown_instruction (_inst=...)
at Source/Core/Core/Src/PowerPC/Interpreter/Interpreter.cpp:292
292 }
(gdb) continue
Continuing.
== STACK TRACE - SP = 80957650 == * --- [ addr = 80036be8 ] * --- [ addr = 8002e754 ] * --- [ addr = 800ddf24 ] * --- [ addr = 800dec28 ] * --- [ addr = 800dee10 ] * --- [ addr = 800dca74 ] * --- [ addr = 800cbec0 ] * --- [ addr = 800ce638 ] * --- [ addr = 800ce620 ] * --- [ addr = 800cf368 ] * --- [ addr = 800cc0dc ] * --- [ addr = 8007fe54 ] * --- [ addr = 800ce9d4 ]Last PC = 8132ffc8 : ---
dolphin-emu: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb4422880 (LWP 15951)]
0xb79082c4 in wxMBConv::WC2MB (this=0xb79e2914, outBuff=0x0,
inBuff=0xb7979a9c L"%X", outLen=0) at ../src/common/strconv.cpp:348
348 ../src/common/strconv.cpp: No such file or directory.
in ../src/common/strconv.cpp
Thanks for your help so far guys
Updated by karamu.da.yo about 14 years ago
This happened with running Wii Sports under the interpreter:
Last PC = 800edce8 : lis r3, 0x8044
dolphin-emu: ../../src/xcb_io.c:249: process_responses: Assertion `(((long) (dpy->last_request_read) - (long) (dpy->request)) <= 0)' failed.
== STACK TRACE - SP = 80444d18 == * --- [ addr = 800e8724 ] * --- [ addr = 800e8224 ] * --- [ addr = 800c8928 ] * --- [ addr = 800c7544 ] * --- [ addr = 800ce638 ] * --- [ addr = 800ce620 ] * --- [ addr = 800cf368 ] * --- [ addr = 800cc0dc ] * --- [ addr = 8007fe54 ] * --- [ addr = 800ce9d4 ]
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xa39feb70 (LWP 16042)]
0xb7fe1424 in __kernel_vsyscall ()
(gdb) continue
Continuing.
The program 'dolphin-emu' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadIDChoice (invalid resource ID chosen for this connection)'.
(Details: serial 32558 error_code 14 request_code 1 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
[Thread 0xaf5feb70 (LWP 16044) exited]
[Thread 0xa39feb70 (LWP 16042) exited]
[Thread 0xaf8f6b70 (LWP 16041) exited]
[Thread 0xafb99b70 (LWP 16040) exited]
[Thread 0xb0f27b70 (LWP 16043) exited]
Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb)
Updated by skidau about 14 years ago
Issue 3456 has been merged into this issue.
Updated by wingnux about 14 years ago
Confirmed by me. Wii ware and gamecube games work but wii games won't work. It seems dolphin is incompatible with newer versions of libX11 and the only way to fix it is downgrading X and that could break the whole OS.
Updated by glennricster about 14 years ago
wingnux: Are you on a 32 bit or 64 bit linux installation?
Updated by nakeee about 14 years ago
can you please define old and new versions of X?
glen how come we don't use libxcb?
Updated by karamu.da.yo about 14 years ago
Forgot to mention, I'm running Ubuntu 10.10 32-bit as well, but also happens on Ubuntu 10.04 LTS 32-bit
Updated by Termopeten about 14 years ago
I have the same issue on Ubuntu 10.04 32-bit
Updated by glennricster about 14 years ago
I am not sure that this is an issue on 32 bit linux. I am not sure that this has anything to do with the version of X11.
nakeee: I actually messed around with libxcb in dolphin once, but didn't really see the benifit of using it. libX11 uses libxcb in the background these days anyway.
Updated by skidau about 14 years ago
Maybe it has something to do with the ISO disc reading code in 32bit linux? That is the only difference I can think of between 64bit and 32bit Linux, GC/WiiWare vs Wii games - the disc capacity of the optical disc on the Wii.
Updated by gpantalos about 14 years ago
I think skidau is correct about this issue.
And I think this is the same cause for issue 3343:
http://code.google.com/p/dolphin-emu/issues/detail?id=3343&q=metroid%20other%20m
I also tried Donkey Kong Country Returns and I had to copy files from Dolphin on Windows to have banners etc. and get past a crash early on the title screen.
And this terminal output is consistent here (ArchLinux 64-bit - Dolphin r6464) for the two mentioned Wii games (DKCR - Metroid Other M):
05:21:330 Source/Core/Common/Src/FileUtil.cpp:97 W[COMMON]: IsDirectory: stat failed on :
05:21:357 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp:312 W[WII_IPC_DVD]: DVDLowUnencryptedRead: trying to read out of bounds @ 460a0000
05:21:357 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp:403 W[WII_IPC_DVD]: DVDLowRequestError status = 0x00052100
05:21:358 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp:403 W[WII_IPC_DVD]: DVDLowRequestError status = 0x00052000
05:21:358 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp:744 W[WII_IPC_ES]: IOCTL_ES_DIGETTICKETVIEW: this looks really wrong...
05:21:359 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp:577 W[WII_IPC_ES]: IOCTL_ES_GETCONSUMPTION:0
Updated by glennricster about 14 years ago
gpantalos: I get those WII_IPC_DVD log messages for any wii game on 64 bit linux, but there are no segmentation faults and the games work fine.
Updated by karamu.da.yo about 14 years ago
Last night, me, skidau, shuffle2, glennrics and booto made some progress into this issue, and decided that 64-bit file support (large file support) isn't actually being allowed with the _FILE_OFFSET_BITS=64 define in the Linux 32-bit build, as it should be. Obviously, this would result with 32-bit reads reaching the "end of file" (0xffffffff) way too early (at 2GB or so), preventing almost anything Wii game related from working, including running the games and trying to compress a Wii file into a GCZ.
booto patched up some fseek64 and ftell64 stubs for me to try in FileBlob.cpp (since defining _FILE_OFFSET_BITS didn't work, and changing the fseek and ftell to fseeko64 and ftello64 didn't work either), and then things started getting healthier, with the GCZ compression process running (but producing a broken GCZ). Games still don't work though. All this may be because EVERY fseek and ftell is broken like this in ALL of Dolphin, and they all need to be fixed up (it has been proposed to just change them to lseek or whatever, too tired last night to read a lot). The affected files are:
./DSPSpy/Stubs.cpp
./Core/AudioCommon/Src/WaveFile.cpp
./Core/DSPCore/Src/disassemble.cpp
./Core/Common/Src/NandPaths.cpp
./Core/Common/Src/SysConf.cpp
./Core/Common/Src/FileUtil.cpp
./Core/Common/Src/CommonFuncs.h
./Core/DiscIO/Src/DiscScrubber.cpp
./Core/DiscIO/Src/CompressedBlob.cpp
./Core/DiscIO/Src/FileBlob.cpp
./Core/DiscIO/Src/DriveBlob.cpp
./Core/Core/Src/State.cpp
./Core/Core/Src/Boot/Boot_ELF.cpp
./Core/Core/Src/Boot/Boot_DOL.cpp
./Core/Core/Src/OnFrame.cpp
./Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
./Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp
./Core/Core/Src/DolLoader.h
./Core/Core/Src/Debugger/Dump.cpp
./Core/Core/Src/HW/EXI_DeviceIPL.cpp
./Core/Core/Src/HW/EXI_DeviceMemoryCard.cpp
./Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp
./Core/DolphinWX/Src/MemoryCards/WiiSaveCrypted.cpp
./Core/DolphinWX/Src/Main.cpp
Glad to see we made some process.
Updated by glennricster about 14 years ago
gpantalos: I have tested further and I see that those same log messages are displayed in linux, so those have nothing to do with this issue.
Updated by shadowflash about 14 years ago
When i tried to compress 4.4Gb iso in windows build with wine and then run it in linux build - it worked if resulting gcz size is below 2Gb.
Updated by rwillard_pcpro about 14 years ago
I just tried this also. Compressed two Wii games and they worked fine on my Ubuntu 10.04 32bit, when they wouldn't work at all before.
Updated by wingnux about 14 years ago
Confirmed here! Compressed "Tatsunoko vs Capcom" on Dolphin Win32 via wine (compressing via dolphin linux crashes the emu) and the iso file went from 4.4gb to 1.4gb and then it worked fine on linux.
Tried compressing "Kirby's Epic Yarn" but it went from 4.4gb to 3.2gb and it still crashed on linux.
Updated by karamu.da.yo about 14 years ago
r6510 fixes the crashes with GCZ compression
Updated by Anonymous about 14 years ago
- Status changed from New to Fixed
This issue was closed by revision r6515.
Updated by Cristalbelial about 14 years ago
Jajaja in linux? linux is more for work not for play games use windows to play games.
Updated by wingnux about 14 years ago
If you don't have anything useful to say, please don't troll.
It's good to see this issue fixed =)
Updated by Renoja0245 about 14 years ago
Thanks guys, very appreciative of all your work - especially when the fix was implemented so fast! Everything works great now.