Commit Graph

36 Commits

Author SHA1 Message Date
Soren Jorvang e648c6d68b Overhaul of OS X real Wiimote support.
Fixes a number of problems, including unreliable connection setup, 
frequent disconnections, busy-waiting and shutdown deadlocks.

Motion Plus and nunchuk hot swapping now work and Wiiuse does a small
amount of queueing to prevent occasional dropped packets. The OS X 
bluetooth stack has no internal input buffering and while a worker  
thread can easily keep up with data coming from the Wiimote, the rest
of Dolphin can easily get behind if it is blocked by disk I/O or 
similar. Mostly the Wiimote protocol recovers from dropped packets,   
but sometimes the Wiimote would get out of sync and send a disconnect.
I wonder if the other platforms might benefit from a bit of queueing
at this layer as well.
 
Still doesn't support multiple devices, as I kept changing my mind 
about how best to do it. I only have one Wiimote anyway..
 
One improvement to the Wiimote plugin that would be really nice would
be for the scan for new devices to operate continuously or periodically
like on a real Wii rather than just for 5 seconds at startup..   


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5640 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-09 19:36:08 +00:00
tmator 4172928b14 coreaudio backend make sound now
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4814 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-12 22:35:28 +00:00
ayuanx f472e2904d Now Progressive Scan actually works for those games that really depend on this setting (Try Mario Kart Wii)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4798 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-09 17:11:59 +00:00
ayuanx 81afdbe4f4 Compilation fix for r4795
Nunchuck gravity fix for r4794 (as sanchez instructed)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4797 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-08 22:56:27 +00:00
fgfemperor 69fdb7ae5c Added Nunchuk to the Wiimote Recording window. Now you can know if your Nunchuk is working as it should =P
Also fixed the crash when clicking OK while having one WiiMote active.

Nunchuck's gravity is kinda wrong, don't know why though, We don't know if it's Wiiuse's fault or if the nunchuk has different vars...
Punchout @ingame the nunchuk gravity also doesn't work...

All the work done by sanchez!

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4794 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-08 20:27:54 +00:00
ayuanx 516f7a4ca1 An attempt to fix Issue 1919 (Multi-Wiimote Freezing)
Please test.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4787 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-05 17:39:06 +00:00
ayuanx d62d6b0c33 Now Dolphin officially supports Multi-WiiMote (up to 4)
* You can connect/disconnect one or more WiiMote from Menu->Tools any time (must pause game first)

* Up to 4 Emulated Wiimotes can work together at the same timer

(PS: "Wiimote_Real" needs to be rewritten to support Multi-WiiMote, and it could be broken already now)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4736 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-27 19:31:02 +00:00
Shawn Hoffman 6145dd2967 Real Wiimote: fix a crash some people were having, and fix IR behavior (by turning off some msvc++ optimizations...)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4610 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-11-25 16:22:46 +00:00
Shawn Hoffman 65b6b15c6e normalize wiimote logging: no more crazy newlines, plugin logs to...wiimote plugin log, ipc wiimote stuff logs to...WII_IPC_WIIMOTE
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4270 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-15 02:12:55 +00:00
XTra.KrazzY c86d2e5129 Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3898 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-28 21:32:10 +00:00
LPFaint99 52438f1dc7 Wiimote plugin cleanup & linux build fix
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3677 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-05 05:59:03 +00:00
LPFaint99 c921fe1c13 New Wiimote Plugin Config GUI
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3676 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-05 04:29:00 +00:00
Shawn Hoffman 99a33ccba9 apply the new wxw method to dsp hle, wiimote, and padsimple.
wiimote config now loads way faster :)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3649 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-02 19:00:27 +00:00
LPFaint99 b85353f684 hide pages 2-4 of wiimote plugin
prepare some functions for >1 wiimote

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3251 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-05-16 04:53:48 +00:00
Shawn Hoffman 2301d072a6 nakee's new logmanager. added a console window for windows builds (prints to parent console on non-win32). also fix some random wxw bugs: main window's position is saved when using debugger, disabling windows from the tools menu are saved settings, some other small fixes
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2675 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-18 17:17:58 +00:00
LPFaint99 578c402d2c Update svn:eol-style=native ( r1442 ) for Source/*.cpp
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2384 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-23 06:15:48 +00:00
John Peterson 489816dce7 Emulated Wiimote: Updated the accelerometer recording to record the gravity forces in all directions instead of recording raw data, to bypass problem of different Wiimotes having different neutral values
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2316 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-20 09:57:17 +00:00
John Peterson 59734ddc86 Emulated Wiimote: Added game specific Wiimote cursor configuration. The IR pointer settings will be saved for the ISO id of the ISO that is loaded. This is necessary because there is no common way of treating the IR pointer positions. The IR data use a virtual resolution of 1024 x 768, but there is no consistency of where such a point is on the screen.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2314 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-20 03:13:22 +00:00
tmator 7a03ffe210 try to fix nowx wiimote
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2293 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-17 22:06:40 +00:00
John Peterson 79947e5d29 Emulated Wiimote: Added dead zone option for the gamepad input
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2237 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-14 01:15:35 +00:00
John Peterson 57c4620902 Emulated Wiimote: Fixed the upside down mode for roll and pitch, 360° roll and pitch is now emulated by an analog gamepad
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2224 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-12 16:43:35 +00:00
John Peterson 516a14150a Wiimote: Improved the emulated Wiimote, added gamepad controls for analog tilting.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2207 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-10 17:25:08 +00:00
John Peterson 1fbebb4ce1 Wiimote: Configure gamepad in Wiimote plugin
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2172 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-09 13:10:29 +00:00
John Peterson fcdd2a8e17 Wiimote:
1. Fixed the dual mode. You should now be able to change between the real and emulated Wiimote at any time, even when the Nunchuck is connected. It also supports third party Wireless Nunchucks that never sends any calibration values. The Nunchuck status should be automatically updated. The Nunchuck stick may get stuck, but that should fix itself if you disconnect and reconnect again. The only important problems seems to be that the real Wiimote fails to answer sometimes so that the Core functions disconnect it.

2. Began looking at how to reconnect the Wiimote after an unwanted HCI disconnect command

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2129 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-07 03:16:41 +00:00
John Peterson 3d73d781ec Wiimote: Reset variables on Shutdown(). I think this makes DoesChannelExist(scid) in the Core to return false.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2116 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-05 00:13:38 +00:00
John Peterson c9c95534c8 Wiimote: Added timeout for Eeprom data reading, it should fail very rarely, but if it would we now stop waiting for it after two seconds. If it fails it will break the functionality of the real wiimote because g_WiiMotes[i]->ReadData() will not be called by ReadWiimote_ThreadFunc() while we are waiting for it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2115 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-05 00:02:54 +00:00
John Peterson ec39c45dd5 Wiimote: Added decryption function, it could be useful for debugging real Wiimote extensions
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2099 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-04 00:06:11 +00:00
nakeee bde4241e9e fixed underrun buffer in hle on linux
made wiimote compile on linux again


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2093 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-03 22:06:18 +00:00
John Peterson 4660943322 Wiimote: Added option to record adjusted wiimote accelerometer values
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2089 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-03 11:45:59 +00:00
John Peterson 5972f886ab Wiimote: Fixed the hanging for real. Any call to a function in the wxDialog frame class while the main thread is in a WaitForSingleObject() loop or any other loop will hang the g_pReadThread execution until sometime after that loop has ended. So we must wait for pReadThread to stop from the wxDialog with a timer, we can not use any loop in the main thread to wait for it to stop.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2083 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-03 07:43:52 +00:00
John Peterson 220eafad0e Wiimote: The first working IR recording, use Alt + the numerical HotKey to play back the IR data associated with a recording
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2078 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-03 00:59:26 +00:00
John Peterson e9036455d6 Wiimote: Fixed the shared eeprom settings, now the first 42 bytes are shared in dual mode. I'm only copying the data from the Wiimote. I'm not changing anything on the Wiimote eeprom.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2056 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-01 14:58:44 +00:00
John Peterson 888465868d Wiimote: Fixed the switching between real and emulated wiimote, the reporting mode is now shared in real/emu dual mode, the accelerator neutral values are shared, the extension is somewhat shared but still doesn't support unplugging and reinserting the extension during gameplay in dual mode. Improved debugging, fixed a bug in movement recording, fixed a bug in report 0x21 eeprom reading so that the game reads the accelerator neutral values from it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2048 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-01 13:01:50 +00:00
John Peterson 946fb12752 Wiimote: Partial work on movement recording (not working yet)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2021 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-01-28 16:09:08 +00:00
John Peterson bc6bbafb95 Wiimote: Added status bars for the real Wiimote to the configuration menu
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2016 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-01-26 14:13:27 +00:00
John Peterson 8eeb1d0202 Wiimote: Switch between emulated and real Wiimote during gameplay.
Notice: It's currently not very user friendly and can crash or fail under some circumstances. I'll make it better momentarily. You currently have to first open the Wiimote config window and the start a game to be able to use switch back and forth after that.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2011 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-01-25 23:07:15 +00:00