Gamer125 / genplus-gx

Automatically exported from code.google.com/p/genplus-gx
Other
0 stars 0 forks source link

Using Classic Controller with Wiimote 2 causes Code Dump #143

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1.Start genplusgx
2.Plug-in a classic controller
3.Program immediately code dumps

What is the expected output? What do you see instead?

What version of the emulator are you using (official, SVN revision,...)?
1.4.1 downloaded from Homebrew Browser

Please provide any additional information below (Video settings, Console
region,...)

If I delete the history.ini and the config.ini and then start the program with 
the classic controller connected it will work. However, if I quit and then 
start the program again with the classic controller, it will code dump. I am 
almost positive it did not do this in 1.4.0.

Original issue reported on code.google.com by amzosc...@gmail.com on 10 Dec 2010 at 3:26

GoogleCodeExporter commented 8 years ago
The problem has nothing to do with the classic controller or the .ini files, I 
cannot reproduce that issue and there is nothing in the code that could cause 
such crash so I'm pretty confident it's because of the bug in HBC.

See the FAQ: either make sure Wifi is connected in HBC before launching the 
emulator or remove the <no_ios_reload> line in the meta.xml file.

Original comment by ekeeke31@gmail.com on 10 Dec 2010 at 5:50

GoogleCodeExporter commented 8 years ago
Well, if you can't reproduce it, I guess there's not much you can do. But, I 
don't think it is the HBC bug. First, the wifi is always connected on my wii. 
Second, the bug occurs when I run it from a forwarder channel as well as from 
HBC.  Third, I can literally play a game flawlessly as long as I want with a 
Wii remote only and the second I plug in a classic controller it crashes.

The ONLY way I can play with a classic controller is if I delete the 
history.ini and config.ini (probably just one of them but I haven't tried them 
individually) every time before I launch the program. I thought maybe it could 
have something to do with this change:

"added the possibility for any wiimotes to be used as input device, regardless 
of the connected expansion controller"

Anyways, I know you can't reproduce it and I hate bugging developers so I'll 
just leave it at that unless you ask for a response, I just wanted to say that 
I don't think it's the HBC code (although obviously you know way more about it 
than me.) Thank you for always taking the time to respond, you're one of the 
few homebrew developers that regularly responds to people without bashing them.

Original comment by amzosc...@gmail.com on 10 Dec 2010 at 7:32

GoogleCodeExporter commented 8 years ago
Ok, i might have been too quick at closing this issue then. However i don't see 
any reason why a crash would occur when connecting a classic controller, the 
change you are mentionning is safe and only means you can still select wiimote 
as input when cc is connected, it is only used in the controller menu.

The fact that deleting config.ini is somehow fixing the issue would indicate 
it's a problem with key mapping configuration but again, this is only used 
in-game, never while in the menus so this crash makes no sense to me.

Please give me the exact procedure and when it crashes, what is your current 
input configuration (controller settings), and also copy the stack dump here 
(the address path with 0x -> 0x ->  etc is what i need to trace where the 
exception occured in the code)

Original comment by ekeeke31@gmail.com on 11 Dec 2010 at 12:05

GoogleCodeExporter commented 8 years ago
Ok, I did more fiddling today and discovered some new things. The only regular 
crash I ca reproduce is when you start genplusgx while wiimote 2 unsynced. Then 
if you sync wiimote 2 after the program is open, and then plug in the classic 
controller, it will crash. However, there have been times for me when it will 
crash even if remote 2 is synced in the wii menu. This seems to be irregular.

I've attached two pictures of the code dump. The first one (100_0846.jpg) is 
what usually pops up when I have this issue. The second one (100_0847) is a 
different code and occured once when genplusgx randomly crashed seconds after I 
started it, so I don't know that one is useful to you.

Original comment by amzosc...@gmail.com on 11 Dec 2010 at 11:48

Attachments:

GoogleCodeExporter commented 8 years ago
oh, and I think config.ini has nothing to do with it now (like you said). I 
tried deleting it once and the crash occurred again, so I think I was mistaken 
on that point.

Original comment by amzosc...@gmail.com on 11 Dec 2010 at 11:52

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
OK, I know what it is, it's indeed a bug in libogc/wiiuse when using more than 
one wiimote (which I could not have noticed since I only have one).

Here the crash path for both dumps: 

(1)__lwp_queue_get -> wiiuse_write_data -> __wiiuse_receive

(2)__lwp_queue_get -> wiiuse_sendcmd -> parse_event -> __wiiuse_receive

It seems it has been fixed in libogc SVN as explained here:
http://devkitpro.svn.sourceforge.net/viewvc/devkitpro/trunk/libogc/wiiuse/io_wii
.c?sortby=date&view=log

I don't know if it was introduced in 1.8.5 or if I was just using an 
intermediate svn to compile genplus, but I have now updated libogc and here's a 
recompiled version, please tell me if it fixes your controller issues.

Original comment by ekeeke31@gmail.com on 12 Dec 2010 at 1:42

Attachments:

GoogleCodeExporter commented 8 years ago
Haven't had much time to test this, but I still get the code dump (the first 
one) with the new .dol. Same procedure: sync wiimote 2 in genplusgx, plug in 
cc, code dump.

Original comment by amzosc...@gmail.com on 15 Dec 2010 at 5:15

GoogleCodeExporter commented 8 years ago
Sorry, that's definitively a bug in libogc, not much I can do about it and as I 
have only one wiimote, I can't do any test.

It's strange though since the SVN patch should have fixed that and at least 
explain, the issue you are having (when you connect a controller to a wiimote 
other than #1, wiiuse library try to access the command queue without 
initializing it first, resulting in a crash).

Are you sure this is exactly the same dump (same addresses in the stack dump) ?

Also, are you sure you tested with the new dol ? If you are using HBC, it 
should obviously be renamed as boot.dol and replace the old one on SD card. 
Then checks the file date on your SD card to be sure it's more recent. You can 
also try the dol that was posted here: 
http://code.google.com/p/genplus-gx/issues/detail?id=143
Maybe I uploaded the wrong one, i don't know.

Original comment by ekeeke31@gmail.com on 15 Dec 2010 at 5:43

GoogleCodeExporter commented 8 years ago

Original comment by ekeeke31@gmail.com on 15 Dec 2010 at 5:45

GoogleCodeExporter commented 8 years ago
Other questions:

(1) Do you confirm crash only occurs when using classic controller with Wiimote 
#2 ? 
(2) Have you tried with Wiimote #1 only ?
(3) Are you using official Wiimote & Classic Controllers or 3rd-party ones ?

Original comment by ekeeke31@gmail.com on 15 Dec 2010 at 5:49

GoogleCodeExporter commented 8 years ago
Correction. Link for most recent test dol is here:
http://code.google.com/p/genplus-gx/issues/detail?id=144

Original comment by ekeeke31@gmail.com on 15 Dec 2010 at 5:51

GoogleCodeExporter commented 8 years ago
Sorry for the delay, Christmas time and all that.

The crash is fixed in the latest dol above. The wiimote #2 still doesn't show 
up in the controller options if you sync it after genplusgx is running, but it 
doesn't give a code dump. Just make sure to have all wiimotes synced in the wii 
menu before playing.

Thanks for fixing this, ekeeke, awesome work on this emulator all the way 
around.

Original comment by amzosc...@gmail.com on 23 Dec 2010 at 4:32

GoogleCodeExporter commented 8 years ago

Original comment by ekeeke31@gmail.com on 29 Dec 2010 at 11:56

GoogleCodeExporter commented 8 years ago

Original comment by ekeeke31@gmail.com on 29 Dec 2010 at 11:57

GoogleCodeExporter commented 8 years ago
Issue 148 has been merged into this issue.

Original comment by ekeeke31@gmail.com on 7 Jan 2011 at 11:09

GoogleCodeExporter commented 8 years ago

Original comment by ekeeke31@gmail.com on 7 Jan 2011 at 11:10

GoogleCodeExporter commented 8 years ago
I gust built genplus r558 using libogc 1.8.6, and that seems to fix the problem.

I previously had a crash when starting genplus with two wiimotes attached.

Original comment by athe...@gmail.com on 5 Mar 2011 at 5:01

GoogleCodeExporter commented 8 years ago
Issue 155 has been merged into this issue.

Original comment by ekeeke31@gmail.com on 9 Mar 2011 at 6:37

GoogleCodeExporter commented 8 years ago
Fixed in 1.5.0

Original comment by ekeeke31@gmail.com on 31 Mar 2011 at 10:44