Commit Graph

7167 Commits

Author SHA1 Message Date
container1234 5716d2bc0e Fix incorrect byte order when writing 3byte data to BBA_WRTXFIFOD 2016-10-13 23:33:17 +09:00
Mat M b15bcc6aa0 Merge pull request #4341 from degasus/syncgpufix
SyncGPU: Fix savestate.
2016-10-12 07:23:38 -04:00
Markus Wick 7d5363ffa8 Merge pull request #4337 from degasus/framedump
AVIDump: Move CoreTiming into caller.
2016-10-11 22:25:28 +02:00
Rohit Nirmal dc1b35fa4b Fix building with PCH disabled. 2016-10-11 14:25:14 -05:00
degasus 22681ad975 SyncGPU: Fix savestate. 2016-10-11 18:29:53 +02:00
degasus 9f264c0872 AVIDump: Move CoreTiming into caller. 2016-10-10 12:03:18 +02:00
Léo Lam 8a0b292f07 ConfigManager: Sync Dolphin settings to SYSCONF on exit
4319 made Dolphin not read/write directly to the SYSCONF and read
settings from the SYSCONF at boot, and only write Dolphin settings
to the SYSCONF at emulation startup.

However, this also made it a bit confusing, because if settings were
changed, then Dolphin was exited without starting a game in between,
the settings wouldn't actually get persisted. This is fixed by
syncing Dolphin settings with the SYSCONF when Dolphin exits.
2016-10-09 17:15:24 +02:00
shuffle2 c8cb1fa7d7 Merge pull request #4319 from leoetlino/sysconf
Don't read/store settings directly from/to SYSCONF (and fix config restore)
2016-10-09 02:34:52 -07:00
shuffle2 3ec91a4e33 Merge pull request #4330 from ligfx/no_vulkan_on_mac
Don't build Vulkan video backend on macOS
2016-10-08 20:58:18 -07:00
shuffle2 23b5a41e0e Merge pull request #4313 from lioncash/u8
HW: Change u8 pad specifier params to int where applicable
2016-10-08 14:10:10 -07:00
Markus Wick a86b2c15d8 Merge pull request #4322 from Helios747/I_hate_features
Remove Frameskip
2016-10-08 21:41:43 +02:00
anthony b427ead0cc Remove Frameskip 2016-10-08 11:49:51 -05:00
Léo Lam afd2f58e29 Don't read/store settings directly from/to SYSCONF
Instead of directly reading/storing settings from/to the SYSCONF, we
now store Wii settings to Dolphin's own configuration, and apply them
on boot. This prevents issues with settings not being saved, being
overridden and lost (if the user opens a dialog that writes to the
SYSCONF while a game is running).

This also fixes restoring settings from the config cache after a
graceful shutdown; for some reason, settings were only restored
after a normal shutdown.

Fixes issue 9825 and 9826
2016-10-08 14:37:55 +02:00
Markus Wick 0e5fc56bc9 Merge pull request #4316 from lioncash/debug
DebugInterface: Make GetRawMemoryString return a std::string
2016-10-08 10:48:45 +02:00
Markus Wick 1a2d71cb58 Merge pull request #4310 from lioncash/dsptable
DSPRegisterView: Minor changes
2016-10-08 10:40:14 +02:00
Léo Lam 39fd6dcd5b Fix missing includes
Aren't indirect includes great?
2016-10-07 23:46:41 +02:00
Lioncash ee71d70738 DebugInterface: Make GetRawMemoryString return a std::string 2016-10-07 10:26:26 -04:00
Lioncash 8b29b09f24 DSPLLE: in-class initialize variables 2016-10-07 09:13:56 -04:00
Lioncash aaa1da5abc DSPEmulator: Move common variable into base class 2016-10-07 08:55:54 -04:00
Lioncash 9cab4e414c HW: Change u8 pad specifier params to int where applicable
Using u8 as indexers is kind of silly, since the rest of the public API
essentially uses int for this sort of thing. Changing these to int also
gets rid of quite a few implicit truncations.

This also allows for getting rid of similar silliness in the netplay API.
2016-10-07 08:14:12 -04:00
Michael Maltese f301ebf780 Don't build Vulkan video backend on macOS
There's no official implementation of the Vulkan API,
and Dolphin currently isn't set-up to work with the
single, commercially-available third-party implementation.
2016-10-06 16:53:55 -07:00
Lioncash 2ba0d6eb77 DSPRegisterView: Get rid of magic numbers 2016-10-06 13:02:49 -04:00
Sepalani aa63253838 HLE: Logs nlPrintf calls 2016-10-05 19:15:26 +01:00
shuffle2 d1df222367 Merge pull request #4297 from sepalani/hle_patch
HLE: Remove duplicate in OSPatches
2016-10-04 17:39:50 -07:00
shuffle2 71aa243333 Merge pull request #4298 from sepalani/hle_bp
HLE: Wrong array used in BP patching fixed
2016-10-04 17:38:06 -07:00
Sepalani 58f5cd944c HLE: Another DebugPrint case added 2016-10-04 21:40:43 +01:00
Sepalani 6e8c5040df HLE: Wrong array used in BP patching fixed 2016-10-04 16:47:06 +01:00
Sepalani 61580b0dec HLE: Remove duplicate in OSPatches 2016-10-04 16:33:47 +01:00
Shawn Hoffman 55af20a439 Remove '\n' from OSD messages; they would be converted to '?' 2016-10-04 03:52:13 -07:00
Shawn Hoffman fead9a05bc Fix static_assert raised by commit 789975e350 2016-10-04 00:56:02 -07:00
shuffle2 ab01dec178 Merge pull request #3806 from degasus/idle
ConfigManager: Drop SkipIdle option.
2016-10-03 23:59:38 -07:00
Markus Wick cf3513f7fc Merge pull request #4123 from hthh/improve-const-stores
Jit: FIFO optimization improvements
2016-10-04 08:32:48 +02:00
degasus 40aa54447d Jit64: Drop very outdated comment about idle skipping. 2016-10-04 08:31:43 +02:00
degasus 0c67297ea0 ConfigManager: Drop SkipIdle option.
This option is safe + deterministic, so let's always enable it.
2016-10-04 08:31:43 +02:00
shuffle2 5c0fa4db4f Merge pull request #4286 from shuffle2/Aestek-clean-osd
Clean OSD messages code
2016-10-03 20:09:35 -07:00
EmptyChaos 107d4afb08 WX: HiDPI: Dolphin Main UI (CFrame) 2016-10-04 13:47:21 +11:00
Shawn Hoffman fa5fa8e094 Clean OSD messages code
Some OSD messages were displayed in RenderBase.cpp using global variables and some code duplicated
in OnScreeDisplay.cpp.
Now all messages are displayed using functions in the OSD namepace.

* OSDChoice and OSDTime global variables are gone
* All OSD logic is kept at the same place
* All messages are properly aligned
* Clean characters for all OSD messages

Original commit:

commit f0ec61c057
Author: Aestek <thib.gilles@gmail.com>
Date:   Sun Aug 7 16:08:41 2016 +0200
2016-10-03 19:37:18 -07:00
shuffle2 46b6a32b46 Merge pull request #4281 from shuffle2/Tilka-jit_bitwise
Jit64: use domain-appropriate instructions
2016-10-03 15:05:33 -07:00
Léo Lam 6ff06ed41d WII_IPC_HLE: Clean up variable naming
It doesn't make much sense to prefix g_ to static variables and for
some to be completely unprefixed.

Also renames a lot of other variables for the new conventions
2016-10-03 23:13:10 +02:00
Léo Lam 8912bb3ff4 Back up part of SYSCONF when switching to emulated BT
This fixes an issue where the Bluetooth info section could be fully
filled up by syncing 5 Wiimotes in passthrough mode then switching to
emulated Bluetooth; emulated Wiimotes were then unable to be used.

The "real" SYSCONF section is now backed up before being replaced with
a blank section that the emulated BT adapter can always fill with 5
Wiimotes without issues.

This backup is restored by the passthrough code, instead of during
the Bluetooth mode switch because this should be done regardless of the
user interface, and even without UI (if the config file is edited
manually).
2016-10-03 23:13:09 +02:00
Léo Lam b91095a9fc IPC_HLE/57e_305: Fake vendor-specific command replies
Homebrew programs seem to rely on getting a reply to the vendor
specific commands, without which Bluetooth initialisation will never
complete.

This vendor-specific command is typically used to patch the Wii's
Bluetooth module, so the replies are only faked when the passed through
adapter is not a Wii Bluetooth module.
2016-10-03 23:13:09 +02:00
Léo Lam 5b50b1e1aa WII_IPC_HLE/57e_305: Store link keys
This stores the address of paired devices and associated link keys.
It is needed because some adapters forget all stored link keys when
they are reset, which breaks pairings because the Wii relies on the
Bluetooth module to remember them.

It doesn't fix adapters that can't remember any link key
at all and always return 0 for the number of stored/written link keys.
For those adapters, there is no fix.

This also improves the usability of passthrough mode for adapters that
already work, since pairings will now keep working even if the link
keys get cleared by something else (for example by the host Bluetooth
stack).
2016-10-03 23:13:09 +02:00
Léo Lam 419a9c55e4 WII_IPC_HLE/57e_305: Fake CommandReadBufferSize replies
Apparently, Nintendo's Bluetooth stack expects the ACL packet buffer
size to be limited to 10.

Reporting anything higher than that could cause memory corruption,
which can result in warning messages in the logs ("event mismatch"),
and more annoyingly, random disconnects.

Thanks to shuffle2 for the fix!
2016-10-03 23:06:23 +02:00
Léo Lam 4b47997cf8 Add ability to passthrough a Bluetooth adapter
This adds the ability to passthrough a whole Bluetooth adapter and skip
the majority of the Bluetooth emulation code. We use libusb to send HCI
commands, receive HCI events and transfer ACL data directly to the
first adapter that is found or to a specific adapter (if configured to)

This is possible because the Wii's Bluetooth module is actually just
a pretty standard Bluetooth adapter…

…except for two vendor-specific commands, for which replies are faked,
and also for the sync button. This adds a hotkey that works in the
exact same way as the sync button would on a Wii: it triggers an HCI
event, which emulated software interpret as a command to perform
a BT inquiry.

This commit also changes the UI code to expose passthrough mode
and WII_IPC_HLE to be a bit more thread safe (for the device map).
2016-10-03 23:06:23 +02:00
Léo Lam 59a17db6c4 Add a __LIBUSB__ define
This allows us to only check if __LIBUSB__ is defined, which is cleaner
than checking for __LIBUSB__ and _WIN32.
2016-10-03 21:07:12 +02:00
Shawn Hoffman f000bb7590 Jit64: use domain-appropriate instructions
Original commit:
commit 62d3423ccf
Author: Tillmann Karras <tilkax@gmail.com>
Date:   Wed Nov 18 20:32:20 2015 +0100
2016-10-03 07:15:26 -07:00
shuffle2 f121fa07c2 Merge pull request #2868 from sepalani/dolphin_ssl
Dolphin new Dump SSL features
2016-10-03 06:16:49 -07:00
Shawn Hoffman b7dbc58c27 quick fix to prevent heap corruption by overwriting 4bytes of 1byte sysconf element 2016-10-03 03:43:01 -07:00
shuffle2 4b62d41728 Merge pull request #4090 from leoetlino/hidapi
WiimoteReal: Add a hidapi IO implementation
2016-10-03 03:20:17 -07:00
Léo Lam 2511bfdb8a WiimoteReal: Make the connected Wiimote check common
This moves the unordered_map used to store connected Wiimotes IDs to
WiimoteReal, and makes the ID insert/erase logic common so we don't
have to duplicate this code in scanner backends.
2016-10-03 11:43:05 +02:00
Léo Lam 222f7e6fc3 WiimoteReal: IOWin: Remove duplicate code
The Balance board detection logic is already implemented in a simpler
way in Wiimote::IsBalanceBoard() (since hidapi also needs it).

Therefore, IOWin now only needs to check if a device is a Wiimote.
2016-10-03 11:41:23 +02:00
Léo Lam 132ca8d02c WiimoteReal: hidapi: Add support for the Balance Board
A name change isn't enough for the DolphinBar; we have to actually
query the Wiimote to know if the Wiimote is a Balance Board.
2016-10-03 11:41:23 +02:00
Léo Lam d9a9e34994 WiimoteReal: Disconnect the Wiimote if IOWrite fails
This is intended to make reconnecting Wiimotes easier with a DolphinBar.
Unfortunately, this change isn't enough as it doesn't always catch
disconnections for Wiimotes connected with a DolphinBar.

But it's better than nothing and eventually a disconnection will be
detected when something tries to write to the Wiimote, instead of never.

There is no other solution as the DolphinBar always exposes 4 HIDs even
when the associated Wiimotes are not connected.

We could try to detect this using the fake input reports sent by the
DolphinBar, but this only works for the first HID (probably because of
a bug in the firmware?), so this method is not an option.
2016-10-03 11:41:23 +02:00
Léo Lam 53d553d2b0 WiimoteReal: Fix race between shutdown and FindWiimotes
If FindWiimotes() took more time than the UI shutting down, the scanner
would try connecting a Wiimote and sending an event to the UI code
long after it has shut down, which causes a segfault.

This fixes the race by ignoring any found Wiimotes during shutdown.

Normally this would have never happened, but it is possible with hidapi
since Wiimotes can be connected before Dolphin starts.
2016-10-03 11:41:23 +02:00
Léo Lam 843b030eda WiimoteReal: Add a hidapi IO implementation
Based on ca0c2efe7a. Credits go to flacs.
However, unlike the original commit, hidapi does not completely replace
the current implementations, so we can still connect Wiimotes with 1+2
(without pairing).

Also, it is only used on Linux and OS X for now. This removes the
advantage of having only one implementation but there is no other
choice: using hidapi on Windows is currently impossible because
hid_write() is implemented in a way that won't work with Wiimotes.

Additionally:
* We now check for the device name in addition to the PID/VID so we can
  support the Balance Board and maybe third-party Wiimotes too. This
  doesn't achieve anything with the DolphinBar but it does with hidraw.
* Added a check to not connect to the same device more than once.
2016-10-03 11:41:23 +02:00
shuffle2 5045fc869c Merge pull request #4188 from degasus/dynamic-bat
Dynamic bat: Merge failure and small cleanup
2016-10-03 02:37:33 -07:00
degasus f7e07f8f3b MMU: Don't generate virtual memory area on 32bit builds.
There is no JIT, so no need for fastmem. This memory won't be used at all.
2016-10-03 10:26:23 +02:00
degasus 0de1c6c99c MMU: Sort physical access by common access pattern. 2016-10-03 10:26:23 +02:00
degasus d1488d0dc4 MMU: Drop force inline usage.
This is not needed, the compiler will do it on it's own if required.
2016-10-03 10:26:19 +02:00
degasus 4b3e388bd7 Jit64: Fix merge failure of dynamic_bat. 2016-10-03 10:15:52 +02:00
degasus ebc47a4b36 Memmap: Drop redundant global bFakeVMEM flag. 2016-10-03 10:15:52 +02:00
EmptyChaos 76558c4d87 HLE: Fix warnings 2016-10-03 18:49:08 +11:00
Lioncash e8cd5a3979 GeckoCode: Provide operator== and operator!= overloads
Same thing but allows both GeckoCode and Code to be utilized directly
without predicates for equality/inequality in stardard algorithms

The size check for std::vectors is unnecessary, as this is built into std::vector's operator==
2016-10-03 02:32:43 -04:00
shuffle2 fba6801851 Merge pull request #4216 from EmptyChaos/geckocodes-cleanup
GeckoCodes: Don't run PPC code in CoreTiming callbacks
2016-10-02 22:37:51 -07:00
EmptyChaos 09372a55da GeckoCode: Save installation state to savestates
Because of the way this works, randomly overwriting the handler
when loading a savestate will break things because of the
self-modifying nature of the handler.
2016-10-03 16:27:42 +11:00
EmptyChaos b3547870ee PatchEngine/GeckoCode: Heuristic stack checks
Try to make sure the stack is sane before calling into the
codehandler. This is intended to reduce the possibility of random
memory corruption.
2016-10-03 16:27:42 +11:00
EmptyChaos 31cf8432bf HLE: Differentiate Address hooks from Symbol hooks
GeckoCodes require address hooks which don't correspond to any
symbol in the symbol table. The hooks get deleted when repatching
the game because they did not persist across calls to
HLE::PatchFunctions.
2016-10-03 16:27:42 +11:00
EmptyChaos c3cef54910 PatchEngine: Handle MSR more cleanly
Instead of fiddling with the MSR value, just reschedule and try again
after the game fixes it itself.
2016-10-03 16:27:42 +11:00
EmptyChaos 83407263e5 HLE/GeckoCode: Add new HLE hook exit trampoline
Dolphin emulates GeckoCodes by fiddling with the CPU state when a
VI Interrupt occurs. The problem with this is that we don't know
where the PC is so it's non-deterministic and not necessarily
suitable for use with the codehandler.

There are two options: Patch the game like Gecko OS either directly
or using HLE::Patch, or use a trampoline so we can branch from any
PC even if it would otherwise not be valid. The problem with Gecko OS
patches is there are 10 of them and they have to be configured
manually (i.e. Game INIs to would need to have a [Core]GeckoHookType
property).

HLE_Misc::GeckoReturnTrampoline enables the Code Handler to be
entered from anywhere, the trampoline restores all the registers that
had to be secretly saved to the stack.
2016-10-03 16:27:42 +11:00
EmptyChaos 249d8a76e1 GeckoCode: Don't spam retry after the install fails
If the installation fails because codehandler.bin is missing or
unusable then Dolphin will try again every single frame even though
it's highly unlikely a disk file will have changed. Better to just
fail once then only try again when the active code set is changed.

Suppresses generating 60 log messages per second.
2016-10-03 16:27:42 +11:00
EmptyChaos 541a42a7e3 GeckoCode: Use named constants in ICache flush hack
Turns out one of the magic numbers was very magic. The gameid is
an ad-hoc comm protocol with HLE_Misc to control the number of times
the ICache is reset.
2016-10-03 16:27:18 +11:00
EmptyChaos 4fef9d8d64 GeckoCode: Don't truncate codes that won't fit
The code table builder cuts off the end of codes that won't fit
after already writing part of it. That seems quite unlikely to
work the way anyone would find useful since the codes can contain
actual PPC instructions.
2016-10-03 16:27:18 +11:00
EmptyChaos e91c0222b4 GeckoCode: Cleanup
The active codes vector cannot safely be used outside the mutex,
move the lock out into RunCodeHandler. s_code_handler_installed was
also racing against SetActiveCodes since it's being written both
inside and outside the lock.

General cleanup. Add s_ prefixes, use constexpr, remove C casts.
2016-10-03 16:27:18 +11:00
EmptyChaos cf8ac5c09c GeckoCode: Don't run PPC code in a CoreTiming callback
Executing PPC code inside an external events callback is a bad idea.
CoreTiming::Advance does not support recursion properly which will
cause timing glitches. The interpreter has a slice length hack that
counters this but without it this would cause a 20000 cycles time
skip. It isn't clear what this was supposed to accomplish that just
changing the current PC would not. Changing the PC works fine.
2016-10-03 16:26:30 +11:00
shuffle2 bd1218a3c4 Merge pull request #4250 from leoetlino/hle-patch-fix
HLE_OS: Minor fixes (function patching, output encoding)
2016-10-02 22:13:15 -07:00
shuffle2 8107a19ddc Merge pull request #4048 from EmptyChaos/wx-cheat-notice
WX: ISOProperties: Add notice when cheats are disabled (Issue 9690)
2016-10-02 22:06:26 -07:00
shuffle2 39f75d64d6 Merge pull request #4119 from mbc07/drop-4.0-ini-hack
Drop some INI hacks from 4.0-era
2016-10-02 21:23:50 -07:00
shuffle2 0082fa527b Merge pull request #4117 from JosJuice/wx-language-code
Save GUI language as string instead of wxLanguage enum
2016-10-02 21:23:36 -07:00
shuffle2 25f983cb21 Merge pull request #4176 from phire/fix_wii_input_display_string
Movie: Fix null pointer dereference.
2016-10-02 20:59:30 -07:00
shuffle2 456d869791 Merge pull request #4200 from EmptyChaos/jit64-dispatch-bug
Jit64: Fix Dispatcher ABI error
2016-10-02 20:41:39 -07:00
shuffle2 5e8bc4aa1d Merge pull request #4244 from leoetlino/stm-shutdown
Shut down Wii software gracefully
2016-10-02 20:25:13 -07:00
shuffle2 8fcc3b04e0 Merge pull request #4227 from ligfx/clean_objc
Don't force compile everything as Objective-C++ on macOS
2016-10-02 19:42:04 -07:00
Mat M ccfc081697 Merge pull request #4245 from aldelaro5/logs-levels-changes
Lots of Logs levels changes (also enable INFO level in every build)
2016-10-02 16:51:44 -04:00
Mat M f292df2331 Merge pull request #4217 from EmptyChaos/toggle-memcheck
PPCDebugInterface: Let ToggleMemCheck create the first memcheck
2016-10-02 16:31:44 -04:00
aldelaro5 f0aa9b3751 Reorganise a ton of logs level
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
Léo Lam 5d8d696185 Force disable WC24 standby mode
When standby mode is enabled, this causes games to ES_Launch the system
menu instead of directly asking IOS (the STM more precisely) to shut
down, which prevents graceful shutdown from working
(it'll appear to hang).

Dolphin never supported WC24 standby mode anyway, so this shouldn't
cause any issues. (This should be reverted if and when WC24 standby is
implemented…)
2016-10-01 13:06:04 +02:00
Léo Lam 9b72b5f144 Shut down Wii software gracefully
This adds support for triggering the power event (in the STM), so that
stopping emulation first triggers a shutdown event, which notably gives
emulated software time to save game data (issue 8979) and clean up
SYSCONF (to disconnect Wiimotes and update their state in the SYSCONF).

On the first press, the stop button/hotkey/whatever will trigger a STM
power event. On a second try, we will forcefully stop emulation, just
like how it was working before.
2016-10-01 13:06:04 +02:00
Léo Lam ae723f5251 IPC_HLE/stm: Implement STM_UnregisterStateEvent 2016-10-01 13:06:04 +02:00
Léo Lam fcd08be34a IPC_HLE/stm: const correctness for ResetButton 2016-10-01 13:06:04 +02:00
Léo Lam 5fb17a9014 IPC_HLE/stm: Clean up naming
Switches to the new naming conventions.
2016-10-01 13:06:04 +02:00
Léo Lam faf202f0f6 IPC_HLE/stm: Separate header and implementation
There was as far as I know no reason to put everything in the header.

Separating the declaration from the implementation reduces build
times in case the implementation is updated without changing
any declaration.
2016-10-01 13:06:04 +02:00
Stenzek 77a128ab87 Implement experimental Vulkan backend 2016-10-01 02:40:01 +10:00
Lioncash 91bbe56f59 SystemRegisters: Get rid of pointer casting 2016-09-30 08:28:07 -04:00
Lioncash 6b58ebfadc MMU: Remove useless casts 2016-09-30 06:48:13 -04:00
Lioncash e8b5e38d98 MMU: Get rid of type punning in FP read/write functions
The previous code is actually considered undefined behavior.
2016-09-30 03:50:08 -04:00
Lioncash e1705ba6c5 PPCAnalyst: Get rid of two casts
HostRead_Instruction does the same thing behind the scenes without casts.
2016-09-29 18:17:56 -04:00
Lioncash ba628b3cab PPCAnalyst: Compress loop into std::any_of 2016-09-28 17:12:21 -04:00
EmptyChaos f9a88adddc PowerPC: Fix Dynamic BAT savestates 2016-09-28 14:26:26 +10:00
Markus Wick 3696c2b022 Merge pull request #4210 from degasus/arm
JitArm64: Small cleanup + speedups.
2016-09-27 18:45:14 +02:00
JosJuice d44b2de01d DVDInterface: Try to enforce disc inside status on savestate load 2016-09-27 16:51:14 +02:00
JosJuice 75dd4d0aee DVDInterface: Make changing discs savestate-safe 2016-09-27 16:51:14 +02:00
Markus Wick f701724ee7 Merge pull request #4251 from lioncash/define
PPCAnalyst: Convert #define into a constant
2016-09-27 12:19:18 +02:00
Markus Wick 9525a9e048 Merge pull request #3490 from degasus/singlecore
Fifo: Use SyncGPU timings for single core.
2016-09-27 10:33:47 +02:00
Lioncash 082275d785 PPCAnalyst: Convert #define into a constant 2016-09-26 20:04:17 -04:00
Lioncash a947391556 PPCAnalyst: Make local constants constexpr 2016-09-26 19:51:48 -04:00
Léo Lam cb73bcc72e PPCSymbolDB: Drop useless const qualifier 2016-09-26 22:57:40 +02:00
Léo Lam e1cecbb233 HLE_OS: Convert debug messages from SJIS to UTF-8
It looks like the debug output is also output as SJIS (similar to
OSReport text), so we need to convert it to UTF-8 to prevent it from
all showing up as �.

This doesn't fix all display issues, but fixes all SJIS/UTF-8 related
ones.
2016-09-26 22:56:42 +02:00
Léo Lam 303325768b SymbolDB: Only match against the function name
This changes GetSymbolFromName to not require the passed name to
completely match with the symbol name. Instead, we now match
against the stripped symbol name (i.e. only the function name).

This fixes a regression introduced by #4160, which prevented
HLE::PatchFunctions() from working properly.
2016-09-26 22:56:42 +02:00
degasus 11bfc7fe77 JitArm64: Move memcheck check into fallback code.
So now each implemented slowmem instruction should check for DSI on each own.
2016-09-26 22:17:25 +02:00
degasus 39c08694a0 JitArm64: Optimize addic.
If simm < 0, it's faster to call MOVI2R(-simm) as only the lower bits are set.
2016-09-26 22:17:25 +02:00
degasus 1f94abea18 JitArm64: Optimize logic immediate instructions.
Try to use also the immediate instruction on ARM.
2016-09-26 22:17:25 +02:00
Léo Lam 349b27199b IPC_HLE/es: In-class initialise member variables 2016-09-25 22:36:26 +02:00
Léo Lam bf0ab79439 ConfigManager: In-class initialise member variables 2016-09-25 22:36:26 +02:00
Mat M 04e6aaf419 Merge pull request #4138 from JosJuice/40-limit-out-of-di
Move code into Movie::SignalDiscChange
2016-09-18 22:54:48 -04:00
Mat M 9e1cfbee0e Merge pull request #4160 from sepalani/symbolmap
Map: Prevents symbols from being stripped
2016-09-18 22:52:12 -04:00
Michael Maltese cd19c9fa22 Don't force compile everything as Objective-C++ on macOS 2016-09-18 17:33:51 -07:00
degasus 735da0ed69 Fifo: Use SyncGPU timings for single core. 2016-09-17 16:25:13 +02:00
Anthony 533ee4ccbe Merge pull request #3275 from JosJuice/wiimote-message
DolphinWX: Don't translate OSD messages
2016-09-16 12:39:11 -05:00
EmptyChaos 39edc1d91e PPCDebugInterface: Fix ToggleMemcheck
ToggleMemCheck fails to create a memcheck if one doesn't already
exist.
2016-09-15 13:08:48 +10:00
Scott Mansell 4c004b6dc9 Merge pull request #4131 from aldelaro5/memoryViewer-memChecks-improvements
Add the configuration of how a memory check is added via the memory window
2016-09-15 10:46:07 +12:00
Scott Mansell 514ce3c6ed Merge pull request #4201 from EmptyChaos/interpreter-coretiming
Interpreter/CachedInterpreter/JitArm64: Fix CoreTiming::Advance usage
2016-09-15 09:57:00 +12:00
Sepalani 78d50c9a31 PPCSymbolDB: Rename unknown variable 2016-09-14 20:00:15 +02:00
Scott Mansell ea7e734496 Merge pull request #4186 from aldelaro5/registerView-update-fix
Fix registerView updates issues when stepping over or stepping out
2016-09-14 18:10:41 +12:00
EmptyChaos 070fe7f499 Jit64: Fix Dispatcher ABI (downcount) violation
The dispatcher requires that the flags contain the downcount state.
2016-09-14 15:46:54 +10:00
EmptyChaos 55a7f576aa JitArm64: Fix CoreTiming contract
Call Advance at the start of each timing slice instead of the end.

Possibly fixed a bug where a slice would randomly branch straight
back to Advance() because the flags were not set to the right
values before branching to the dispatcher entrypoint.
2016-09-14 15:44:51 +10:00
EmptyChaos f5bfce657c CachedInterpreter: Fix CoreTiming contract
Call CoreTiming::Advance() before executing the slice, not after.
2016-09-14 15:44:51 +10:00
EmptyChaos 1bcd129683 Interpreter: Fix CoreTiming contract
The interpreter does not use CoreTiming correctly. Calls to Advance
must be made in advance of executing the associated slice, not
afterwards.
2016-09-14 15:44:51 +10:00
Lioncash 00ddbee786 SymbolDB: Change Symbol's 'analyzed' member into a boolean
It's only ever used as one
2016-09-13 21:23:28 -04:00
Lioncash 0ac77b0288 SymbolDB: Use an enum class for representing symbol type 2016-09-13 21:21:03 -04:00
Markus Wick bdcee1c585 Merge pull request #4205 from degasus/arm
JitArm64: Cleanup + small fix.
2016-09-12 11:47:51 +02:00
Scott Mansell 65c1df34f4 Merge pull request #4198 from aldelaro5/memory-breakpoint-fix
Fix the memChecks breaking a second time after hitting one and unpausing
2016-09-12 14:51:47 +12:00
aldelaro5 f689b1e6b5 Switch the CPU state to CPU_STEPPING before single stepping after unpausing
This fix a double break bug when hitting a memcheck and hitting play on the same instruction it broke to earlier.  The state is put back to CPU_RUNNING after.
2016-09-11 22:46:12 -04:00
aldelaro5 da55d2a381 Add options read, write and log when toggling a breakpoint
These are needed for the next commit. I had to modify the implementation of the DSP one too, but since it basically isn`t used, I don`t think it matters much.  These options only matters when adding one.
2016-09-10 22:38:57 -04:00
Markus Wick cbdda17507 Merge pull request #4124 from mimimi085181/wiimote-netplay-check-reporting-mode
Wiimote netplay: Check the reporting mode instead of the size
2016-09-10 23:28:57 +02:00
degasus a0dcebba37 JitArm64: replace MOVI2R with MOVP2R when possible.
This skips the (u64) cast.
2016-09-10 11:01:18 +02:00
degasus 789e776a47 JitArm64: Fix block linking.
Double negation fail, sorry.
2016-09-10 11:01:18 +02:00
degasus be763949bc JitArm64: Drop 32bit alignment restriction of the memarea.
ADD() is almost as fast as MOVK(), and we already have a register for the memory location. Let's just use it.
2016-09-10 11:01:18 +02:00
aldelaro5 09df343247 Move Memchecks support out of debug only builds
It wouldn't impact performance until at least one memcheck is enabled.  Because of this, it can be used in release builds without much impact, the only thing that woudl change is the use of HasAny method instead of preprocessor conditionals.  Since the perforamnce decrease comes right when the first memcheck is added and restored when the last is removed, it basically is all beneficial and works the same way.
2016-09-09 15:05:54 -04:00
EmptyChaos 2e14920e16 CoreTiming: Guarantee FIFO processing of timed events
The min-heap provides no ordering when the key is the same on 2
nodes. Disambiguate identical times by tracking the order items
were added into the queue.
2016-09-08 19:46:42 +10:00
JosJuice d0a323cce7 Merge pull request #4192 from TylerAldrich/typo_fix
Boot: Fix minor comment typo
2016-09-07 17:35:35 +02:00
Léo Lam 4e402379e3 IPC_HLE: Fix warnings about missing override 2016-09-07 15:09:45 +02:00
Tyler Aldrich 08c72abf0f fix minor typo, 0x20 != 20 bytes 2016-09-07 08:01:00 -04:00
Scott Mansell fe41dff228 Fix the master build. 2016-09-07 20:10:03 +12:00
Scott Mansell d951f9e765 Merge pull request #3771 from phire/pr3771
Remove instant ARAM DMA hack (Fixes Sarge's War)
2016-09-07 19:09:39 +12:00
Scott Mansell 62d7a698da Merge pull request #4145 from tenthmile/WiiOrientationModifier
Emulated Wiimote Orientation Modifier
2016-09-07 14:20:02 +12:00
Scott Mansell 7311cd8b6e Merge pull request #4137 from aldelaro5/memCheck-crash-fix
Fix a crash when adding the first memory check while the game is running
2016-09-07 14:19:19 +12:00
Scott Mansell 366a38a917 Merge pull request #4142 from mbc07/IPC_HLE_usb_ven
[IPC HLE] Implement /dev/usb/ven with very basic functionality
2016-09-07 13:51:55 +12:00
Scott Mansell dbface94ea And remove the feature from the Arm64 jit too. 2016-09-07 12:53:14 +12:00
Scott Mansell c354dfcd2f Remove instant ARAM DMA mode.
Now that our timings are much more accurate it doesn't look like we
need it anymore. And the instant ARAM DMA mode + scheduling fixes
ctually breaks ATV: Quad Power Racing 2 (causing all sorts of werid
bugs).
2016-09-07 12:53:14 +12:00
Markus Wick 18030ebfb4 Merge pull request #4179 from magcius/xinput2-default
Remove the old Xlib backend
2016-09-06 10:26:26 +02:00