Commit graph

5605 commits

Author SHA1 Message Date
skidau
06bca52d80 Skipped the calibration of the GC controller if it has already been calibrated. 2015-05-05 13:05:34 +10:00
skidau
9348b2e1a6 Merge pull request #2330 from mathieui/background-gc-adapter-scan
Add a background thread to detect the GC adapter
2015-05-01 12:09:18 +10:00
JosJuice
f7d20204bb Fix DOL crash caused by VolumeHandler removal
Similar to the WAD crash (0b44d7c) but in another part of the boot code.
2015-04-30 13:29:09 +02:00
mathieui
ec7445d66b GCAdapter: Add a setting to toggle rumble 2015-04-30 11:35:16 +02:00
mathieui
57f458fe9b GCAdapter: Add a background thread to detect the adapter
This scanning thread either polls libusb or checks every 500ms for a
change depending on host capabilities. The GC Adapter can now be plugged
and unplugged at any time when dolphin is open, it will be used if the
direct connect option is set.
2015-04-30 11:35:16 +02:00
skidau
052162e6b9 Merge pull request #2332 from comex/fix-alerts-maybe
Fix some false positive ScheduleEvent alerts
2015-04-30 14:03:00 +10:00
Matthew Parlane
42ebf5b3bf Merge pull request #2333 from lioncash/virt
InputCommon/Core: Get rid of some virtual destructor warnings
2015-04-28 15:41:48 +12:00
Lioncash
9603fb6ccd Interpreter_LoadStorePaired: Silence uninitialized variable warnings 2015-04-27 22:54:58 -04:00
Lioncash
d39b519850 InputCommon/Core: Get rid of some virtual destructor warnings
These classes have virtual methods, but no virtual destructor, which causes warnings on some compilers.
2015-04-27 21:41:59 -04:00
comex
a9fe0ec0ab Fix some false positive ScheduleEvent alerts:
- CEXIETHERNET::SendComplete is always called from the main thread, so
  drop the _Threadsafe.

- Mark the FIFO player thread as the "CPU thread" so it can call
  ScheduleEvent without complaints.  I haven't actually tested this,
  since I don't know how to use the FIFO player; it might break
  something.
2015-04-27 21:19:28 -04:00
skidau
472e281445 Merge pull request #2316 from comex/fix-watch
Fix watchpoints ("memory breakpoints") with JIT
2015-04-27 19:42:13 +10:00
Rohit Nirmal
fb46afd5c3 Silence -Wformat warnings in debug builds. 2015-04-26 13:45:06 -05:00
magumagu
645aa5af8b Merge pull request #2323 from dolphin-emu/itym
ITYM PowerPC::Write_U{8,16}, not Memory::
2015-04-24 22:19:37 -07:00
comex
38a14b73a4 Merge pull request #2321 from JosJuice/wiimote-battery-fix
Fix emulated Wii Remote battery level being low when not configured
2015-04-24 22:43:05 -04:00
comex
dea88ef5a1 ITYM PowerPC::Write_U{8,16}, not Memory::
PowerPC does exceptions and hardware and stuff, Memory doesn't.

I did not realize until a few minutes ago that there were two versions of these functions.  This is why namespaces suck.  Anyway, these were added by Mullin earlier this year.
2015-04-24 22:41:10 -04:00
comex
132e1068ce Remove checks that disable fastmem if debugging and ENABLE_MEM_CHECK are enabled.
They weren't sufficient and are made redundant by previous commits; they
also (on master) caused breakage due to Jit64::psq_stXX assuming writes
would be fastmem and not clobber a register under certain conditions.

That really needs to be refactored, but for now, this works.
2015-04-24 22:37:54 -04:00
comex
2264e7b087 Use a fake exception to exit early in case of memory breakpoints.
Change TMemCheck::Action to return whether to break rather than calling
PPCDebugInterface::BreakNow, as this simplified the implementation; then
remove said method, as that was its only caller.  One "interface" method
down, many to go...
2015-04-24 22:37:54 -04:00
comex
dd7ab4812b On x86, disabling fastmem isn't enough actually.
Without fastmem, the JIT code still does an inline check for RAM
addresses.  With watchpoints we have to disable that too.  (Hardware
watchpoints would avoid all the slow, but be complicated to implement
and limited in number - I doubt most people debugging games care much if
they run slower.)

With this change and watchpoints enabled, Melee runs at no more than 40%
speed, despite running at full speed without them.  Oh well.  Better
works slowly than doesn't bloody work.

Incidentally, I'm getting an unrelated crash in
PowerPC::HostIsRAMAddress when shutting down a game.  This code sucks.
2015-04-24 22:37:54 -04:00
comex
b84f6a55ab Automatically disable fastmem and enable memcheck when there are any watchpoints.
- Move JitState::memcheck to JitOptions because it's an option.
- Add JitOptions::fastmem; switch JIT code to checking that rather than
  bFastmem directly.
- Add JitBase::UpdateMemoryOptions(), which sets both two JIT options
  (replacing the duplicate lines in Jit64 and JitIL that set memcheck
  from bMMU).
  - (!) The ARM JITs both had some lines that checked js.memcheck
    despite it being uninitialized in their cases.  I've added
    UpdateMemoryOptions to both.  There is a chance this could make
    something slower compared to the old behavior if the uninitialized
    value happened to be nonzero... hdkr should check this.
- UpdateMemoryOptions forces jo.fastmem and jo.memcheck off and on,
  respectively, if there are any watchpoints set.
- Also call that function from ClearCache.
- Have MemChecks call ClearCache when the {first,last} watchpoint is
  {added,removed}.

Enabling jo.memcheck (bah, confusing names) is currently pointless
because hitting a watchpoint does not interrupt the basic block.  That
will change in the next commit.
2015-04-24 22:37:53 -04:00
JosJuice
fe9fdd3244 Fix emulated Wii Remote battery level being low when not configured
All the multiplying and dividing by 100 in controller configs is
messy... An attempted solution to the problem was to not multiply
default_value by 100 in ControllerEmu::ControlGroup::LoadConfig,
but that broke other things instead, so I went with this.
2015-04-24 19:36:08 +02:00
comex
b3aaa46d42 Merge pull request #2088 from Sintendo/diecmp
Emit 'TEST reg, reg' for 'CMP reg, 0' automatically
2015-04-23 16:34:23 -04:00
comex
ad95454d04 Merge pull request #2223 from phire/imm
Cleanup OpArg, make immediates more explicit.
2015-04-23 01:53:18 -04:00
Lioncash
8fb36228e5 Merge pull request #2311 from JosJuice/fix-wad-crash
Fix WAD crash caused by VolumeHandler removal
2015-04-23 00:23:42 -04:00
JosJuice
0b44d7c18a Fix Wii software crashing at boot if no disc is inserted
Boot_BS2Emu was trying to read from the inserted disc even when
nothing was inserted, and this happened to not crash (but not
work either) before VolumeHandler was removed. This commit adds
a check that restores the old behavior, so there is no longer a
crash, but the game ID still doesn't get set for WADs. I don't
know if/how it should be set, so this felt like the safest option.
2015-04-22 09:14:41 +02:00
Lioncash
56df9b7508 GPFifo: Remove unused parameters from Write[x] functions 2015-04-21 23:01:25 -04:00
Matthew Parlane
571eee8648 Merge pull request #2225 from JosJuice/remove-volumehandler
Get rid of VolumeHandler
2015-04-21 11:18:57 +12:00
Matthew Parlane
a86f2fe2e7 Merge pull request #2199 from skidau/remove-controls-lock
Cleaned up the controller locking mechanism
2015-04-21 11:13:30 +12:00
Matthew Parlane
82bbada352 Merge pull request #2257 from RachelBryk/battery
Add an option for wiimote battery.
2015-04-21 11:12:12 +12:00
Lioncash
d799446faf Core: Don't display on-screen messages via DisplayMessage until emulation has begun 2015-04-20 18:31:40 -04:00
Lioncash
9eb608c9da Merge pull request #2301 from lioncash/const
General: Apply the const specifier where applicable
2015-04-16 23:13:39 -04:00
Lioncash
b0613bb1c8 General: Apply the const specifier where applicable 2015-04-15 02:04:03 -04:00
comex
ba664b3293 Join the emu thread in Core::Stop. Get rid of Core::Shutdown which did that before.
Core::Shutdown was only called on app exit, yet the emu thread exits
whenever emulation stops; if you launched a new game it would just join
via the destructor when s_emu_thread was set to a new thread.
(Incidentally, the destructor also makes explicitly joining on app exit
rather pointless.)

Because the GUI thread wasn't waiting for the CPU thread to fully shut
down, Core::IsRunning would remain true briefly after CFrame::DoStop
which, given Dolphin's penchant for accessing variables belonging to
other threads, can only mean trouble... In my case, because the previous
commit caused UpdateGUI, which is called at the end of DoStop, to call
PauseAndLock, which checks IsRunning, pressing stop at the right time
would cause strange behavior.
2015-04-13 02:17:38 -04:00
comex
e000aaaf5d Have the UI thread do PauseAndLock before messing with GetUsbPointer.
Since its lifetime is managed on the CPU thread, this (or a refactoring)
is absolutely required.  One of the functions with a PauseAndLock call
added is CFrame::UpdateGUI; this is fine now, since it's called only
after important events happen, so just make sure not to call it every
frame or something :)
2015-04-13 01:49:24 -04:00
mathieui
4c2d25eeaf Fix a warning
HotkeyManagerEmu.enabled is unused, as everything now uses
HotkeyManagerEmu.s_enabled.
2015-04-11 19:47:39 +02:00
Stevoisiak
7c1ab2911a Move down Country_World
The countries are sorted alphabetically. This should have been changed
when the variable was renamed from Country_International to
Country_World
2015-04-08 18:55:16 -04:00
JosJuice
76d0cfa8ac Fix terrible Speed Up Disc Transfer Rate mistake
I apologize.
2015-04-08 08:59:49 +02:00
skidau
f8a4d4702c Merge pull request #2252 from mathieui/traversal-timeout
NetPlay: Don’t wait forever in the traversal client
2015-04-08 11:56:57 +10:00
skidau
5638ddaf6c Merge pull request #2263 from JosJuice/sudtr-not-instant
Make Speed Up Disc Transfer Rate not instant
2015-04-08 11:54:44 +10:00
Lioncash
4796dc80bf Merge pull request #2254 from SizzlingCalamari/remove-DSPLLE-cycle-mutex
Made cycle count atomic to avoid using a mutex
2015-04-07 08:27:38 -04:00
Lioncash
54cedf77f9 Merge pull request #2265 from lioncash/warn
ConfigManager: Fix a sign mismatch warning
2015-04-06 09:34:23 -04:00
degasus
d2c62b1744 Fifo: only sleep once within every ms of emulated time 2015-04-06 12:35:35 +02:00
degasus
b020ae1c5d Fifo: rewrite sync on idle skipping hack
Now it's done without a busy loop
2015-04-06 12:35:35 +02:00
JosJuice
4cd00e366c Get rid of VolumeHandler
VolumeHandler is basically just a wrapper around a single IVolume object.
This change moves that object to DVDInterface, moves the Read32
function to IVolume, and gets rid of the rest of VolumeHandler.
2015-04-05 10:09:48 +02:00
Lioncash
2211aead7f DSPInterpreter: Remove unused volatile variable and related function 2015-04-03 22:46:30 -04:00
Lioncash
7848876f99 ConfigManager: Fix a sign mismatch warning 2015-04-02 14:30:38 -04:00
JosJuice
ee3d36af92 Make Speed Up Disc Transfer Rate not instant
The instant speed broke some games. SUDTR will now emulate
the transfer from the disc drive buffer to the main memory,
but not the speed of the disc drive itself.
2015-04-02 11:46:19 +02:00
JosJuice
0deb9f5e39 Revert "Merge pull request #2256 from RachelBryk/Dolphin-Pro"
This reverts commit ae0a090701, reversing
changes made to 6b6b5ed37f.
2015-04-01 22:30:57 +02:00
Pierre Bourdon
ae0a090701 Merge pull request #2256 from RachelBryk/Dolphin-Pro
Limit Wiimote battery usage for Dolphin-lite users.
2015-04-01 21:07:22 +02:00
Rachel Bryk
ba93b91565 Add an option for wiimote battery. 2015-04-01 05:29:45 -04:00
Rachel Bryk
d39d89594d Limit Wiimote battery usage for Dolphin-lite users.
Wiimote batteries drain over time. The user must upgrade to Dolphin Pro for $19.95 to recharge them.
2015-04-01 04:31:03 -04:00