Commit Graph
7 Commits
Author SHA1 Message Date
DimitriPilot3 bb827eb837 Apply (a variation of) the first patch attached to issue 4608. This should limit the amount of ACL packet loss due to the 200Hz timing (which is now 150Hz if you disable Wiimote Speaker) and the handling of the ACL pool when it's occasionally full (which this improves by dropping one packet instead of letting the "pointers" overlap which would make packets unreachable).
See comment #6 for more details on the changes to WII_IPC_HLE_Device_usb.

In addition to that, rework some comments a bit (such as those from the
original patch; plus Ayuanx's one about maintaining Wiimote timing, which lost
relevance since r7272 which made Wiimote::Update timing independent from IPC
timing), and remove an unused global variable (event for watchdog hack)...

In short, this should address *some* of the Wiimote disconnection and/or "forgotten extension" problems that appeared with r7272 and/or r7394.  To prevent the "ACL queue is full" warnings from appearing (View->Show Log), pay attention to the amount of enabled Wiimotes (use as few as possible, connect the extra Wiimotes only when needed), and make sure to disable the "Disable Wiimote Speaker" option (if unneeded or causing problems) in the game properties.  If possible, make sure to use real Wiimotes instead of emulated ones, as well.
If Wiimotes disconnect forever (and cannot be reconnected using the Alt+Fx hotkeys), open the Wiimote config window, set the faulty Wiimote's type to "None", close/reopen the window, and set the previous Wiimote type back.

Note that it's not a *complete* fix for issue 4608!  This only fixes about half (or maybe third) of the possible causes of this issue...  But at least this should make the accurate Wiimote emulation (I mean, with the limitation of the ACL queue included) more usable in some cases (such as multi-player).
Nope, I didn't (and can't yet) perform in-depth tests on the real hardware myself (unlike some developers), I just rely on the given "accurate" code and numbers (such as the 10-packet limit implemented by godisgovernment)...
Maybe I'll get to fixing other problem "causes" (if I feel like doing it), maybe not in a while...  After all, I have other hobbies, and it's the summer holidays for me...

Anyway, feel free to test and comment.

Update issue 4667
Update issue 4608
Update issue 4604
Update issue 4583
Update issue 4436
Update issue 4353
Update issue 4013

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7675 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-07-12 15:49:08 +00:00
DimitriPilot3 d4d7e2515f Apply the simple NULL-checking patch from issue 4311.
Judging by the feedback provided by other OSX users, this appears to fix the crash when starting Dolphin on OSX with devices that have an empty name.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7598 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-15 12:50:47 +00:00
DimitriPilot3 98536df915 Make sure to reserve() exactly the right amount of elements for the std::vector before filling it with CheatSearchResult's, in order to prevent automatic re-allocations.
It turns out that this (somewhat) gets rid of memory-related exceptions which used to occur (especially) during 8-bit cheat searches.  At least this is the case with my computer that has 3GB of RAM (the issue didn't seem to be caused by 100% of RAM usage, however).

Hopefully you'll be able to perform the following steps without errors now:
1. Open any game in Dolphin;
2. Go to Tools->Cheats Manager, and open the "Cheat Search" tab;
3. Preferably set the "Data Size" to 8-bit (the smaller, the more initial search results);
4. Press the "New Scan" button;
5. Use the "Unknown" search filter (which won't narrow the results down at all);
6. Press the "Next Scan" button.

(oh, and fix a typo in a comment I introduced in r6791 :p)

Anyway, make sure to tell me any eventual errors/regressions.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7596 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-13 15:47:02 +00:00
DimitriPilot3 5224a5a007 Cleaned up, and added some error-checking to the CARCodeAddEdit::SaveCheatData() function which deals with the parsing (and decrypting whenever needed) of lines of codes entered in the Add/Edit AR code dialog.
I believe this makes Dolphin more reliable than GCNcrypt v1.1 which seems to add (prepend) a buggy line when decrypting...

- Split lines using SplitString() once more (as done with ' ' and '-' already), instead of relying on find() and substr() and the (size_t)line variable.
- Rename some variables, use a for() loop instead of a while() loop.

- Apply the StripSpaces() function to each line before attempting to parse them as encrypted/decrypted AR code lines.  Without this, lines such as "B1PD-DXRQ-GTRKM " (notice the unexpected space character) would be recognized neither as encrypted nor as decrypted, which could result in badly decrypted codes (a problem I had tried to explain here: http://forums.dolphin-emulator.com/showthread.php?pid=153532#pid153532).

- For the sake of error-checking, after pressing OK, throw a warning in the following situations:  when a line of code is not in a valid encrypted or decrypted format, and whenever the resulting decrypted code doesn't contain any lines.

(did I do any mistakes?)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7569 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-05-29 13:51:42 +00:00
DimitriPilot3 8c304d912a To me, the Free Look option wasn't really broken; for quite a long time, it simply required the SHIFT key to be held before pressing any of the WASD/R/0/9 keys.
So, clarify this by rewriting the "tooltip" for the Free Look option.  This should close issue 2882 and its duplicates.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7546 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-05-15 17:36:22 +00:00
DimitriPilot3 a1da2e0e4c Some fixes for the "Cheat Search" feature :
- Replace ToLong() with ToULong(), as to allow values in the [0x80000000..0xFFFFFFFF] range to be parsed correctly without failure.
- Remove the "val_base" hack, as it breaks hexadecimal values beginning with '-'.
Simply passing 0 as the second parameter to ToULong() is enough, as mentioned on this page: http://msdn.microsoft.com/en-us/library/5k9xb7x1%28v=VS.100%29.aspx
- Changed the error message (and some of its translations) to reflect that octal values are now auto-detected ("supported") as well.

To users: 
Note that values beginning with '0' (not "0x" nor "0X") are now interpreted as octal values instead of decimal values. So be careful when using those!

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7223 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-21 18:01:32 +00:00
DimitriPilot3 4e74a58c2a Build fix: a bogus include was added in r6988.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6991 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-30 19:27:46 +00:00