Commit Graph

7641 Commits

Author SHA1 Message Date
Lioncash
1516c22a22 JitILBase: Make the IRBuilder instance protected
There's no need to make it public.
2017-01-17 14:55:45 -05:00
Lioncash
e924814d62 JitILBase: Move protected members below public 2017-01-17 14:45:40 -05:00
Matthew Parlane
63011f1402 Merge pull request #4661 from leoetlino/ios-request
IOS HLE: Deduplicate the request parsing code
2017-01-18 08:38:37 +13:00
Lioncash
8346f86ee4 IR: Remove unnecessary semicolon on namespace brace 2017-01-16 19:54:42 -05:00
Lioncash
67fc73e82c IR: Make getNumInsts return type size_t
There's no need to cast here.
2017-01-16 19:38:30 -05:00
Lioncash
459a6e73c3 IR: Remove unused function 2017-01-16 19:32:13 -05:00
Lioncash
cd12b2c55f IR: Make IRBuilder uncopyable
Hiding and not implementing the copy constructor is a pre-C++11 thing.
It should also be noted that a copy constructor, as defined by the
language, contains a const qualifier on its parameter, so this wouldn't
have prevented copies from being performed.
2017-01-16 18:59:17 -05:00
Lioncash
a8b2dd7fc3 IR: Use std::array instead of raw C arrays 2017-01-16 18:54:30 -05:00
Lioncash
ef3e6de875 IR: Move implementation of the constructor and Reset into the cpp file
Neither of these are intended to be called extremely frequently to warrant
this.
2017-01-16 18:36:11 -05:00
Léo Lam
25f89ccae8 IOS HLE: Specify the return code when replying
This makes more sense than setting the return code on the request
struct first before replying.

Ref: https://github.com/dolphin-emu/dolphin/pull/4661#discussion_r96273253
2017-01-17 00:28:22 +01:00
Lioncash
47fc72f0a8 IR: Get rid of an unimplemented member function prototype 2017-01-16 18:11:54 -05:00
Lioncash
4f75590fdb IR: Move private details below public details 2017-01-16 18:08:11 -05:00
Léo Lam
c6b1cfb222 IOS HLE: Remove old structs and methods
Now that everything has been changed to use the new structs, the old
methods and structs can be removed.

And while I was changing the base device class, I also moved the
"unsupported command" code to a separate function. It was pretty silly
to copy the same 3 lines for ~5 commands.
2017-01-16 23:55:57 +01:00
Léo Lam
8629a1f11c IOS HLE: Deduplicate request code in WFS 2017-01-16 23:55:57 +01:00
Léo Lam
4af67abb55 IOS HLE: Deduplicate request code in ES 2017-01-16 23:55:56 +01:00
Léo Lam
6bf0b487d1 IOS HLE: Deduplicate request code in USB_HID 2017-01-16 23:55:56 +01:00
Léo Lam
0e979ec75f IOS HLE: Deduplicate request code in FileIO and FS 2017-01-16 23:55:56 +01:00
Léo Lam
5a5985f674 IOS HLE: Deduplicate request code in DI 2017-01-16 23:55:55 +01:00
Léo Lam
469a31db32 IOS HLE: Deduplicate request code in sdio_slot0 2017-01-16 23:55:55 +01:00
Léo Lam
a04902086a IOS HLE: Deduplicate request code in net/net_ssl 2017-01-16 23:55:55 +01:00
Léo Lam
84c8d0b66d IOS HLE: Deduplicate request code in stub 2017-01-16 23:55:54 +01:00
Léo Lam
f9e806fd71 IOS HLE: Deduplicate request code in OH1 2017-01-16 23:55:54 +01:00
Léo Lam
d4de87a973 IOS HLE: Deduplicate request code in USB_KBD 2017-01-16 23:55:53 +01:00
Léo Lam
d536082e42 IOS HLE: Deduplicate request code in USB_VEN 2017-01-16 23:55:53 +01:00
Léo Lam
d7b4e6ead5 IOS HLE: Deduplicate request code in STM 2017-01-16 23:55:52 +01:00
Léo Lam
e2d072250f IOS HLE: Deduplicate request code in WII_IPC_HLE 2017-01-16 23:55:52 +01:00
Léo Lam
d8b9b3825c IOS HLE: Add resource request structs
This adds well-defined structs that are responsible for parsing
resource requests, instead of duplicating the logic and offsets all
over IOS HLE. Command handler functions are now passed parsed requests
instead of a command address.

This may not seem like a very important change, but it removes the
need to remember all of the struct offsets or copy/paste existing
struct request variables. It also prevents nasty bugs which have
occurred in the past, such as parsing an ioctl as if it were an ioctlv
(that's way too easy to do if you pass command addresses directly);
or writing something to 0x0, which can easily happen by mistake with
a close handler that can be called with invalid command addresses.

Bonus changes:

- The return code is not an obscure Memory::Write_U32 anymore, but an
  explicit, more obvious SetReturnValue() call. (Which correctly takes
  a s32 instead of a u32, since return codes are signed.)

- Open handlers are now only responsible for returning an IOS ret code,
  and Close handlers don't return anything and don't have to worry
  about checking whether the request is a real one anymore.

- DumpAsync was moved to the ioctlv request struct, because it did
  not really make sense to make it part of the IOS device and it only
  works for ioctlvs.
  All current usages have been removed; they will be readded in a
  later commit.

As of this commit, nothing uses the structs yet. Usages will be
migrated progressively.
2017-01-16 23:55:52 +01:00
Matthew Parlane
53bfab057c Merge pull request #4666 from lioncash/jitil-ir
IR_X86: Minor changes to RegInfo
2017-01-17 11:52:44 +13:00
Lioncash
43910e474b IR_X86: Use member initializers where applicable for RegInfo 2017-01-16 17:29:09 -05:00
Lioncash
bc7374a5e1 IR_X86: Use std::array instead of raw C arrays in RegInfo 2017-01-16 17:29:09 -05:00
Lioncash
45f7883ed8 IR_X86: Make RegInfo uncopyable
Hiding and not implementing the copy constructor is a pre-C++11 thing.
It should also be noted that a copy constructor, as defined by the language,
contains a const qualifier on its parameter, so this wouldn't have
prevented copies from being performed.

It also follows that if the copy constructor is deleted, then copy
assignment should also be forbidden.
2017-01-16 17:27:03 -05:00
Matthew Parlane
3415a1ca18 Merge pull request #4614 from jackoalan/gba-hle-cleanup
DSP: Clean up GBA crypto HLE implementation
2017-01-17 11:10:50 +13:00
Lioncash
6788cb7266 HW/DSP: Correct prefixes of translation-unit-local variables
These aren't globals.
2017-01-16 14:53:37 -05:00
Lioncash
8cc4815fe2 HW/DSP: Hide the DSP state global 2017-01-16 14:14:03 -05:00
Lioncash
c6ec5de659 HW/DSP: Use member initializers with structs/unions where applicable 2017-01-15 16:03:12 -05:00
Markus Wick
5297309dfa Merge pull request #4650 from degasus/jitcache
JitCache: Use pointers in the ICache and dispatchers.
2017-01-15 15:59:10 +01:00
Pierre Bourdon
45a1232920 IOS: Add partial wfsi/wfssrv implementations.
The current implementations do many things wrong but work well enough to
run the Dragon Quest X installer until the very end. The game itself
crashes when being launched from its System Menu channel unfortunately
so it is hard to verify whether the install properly worked or not.

There are plenty of "TODO(wfs)" sprinkled around this codebase with
things that are knowingly done wrong. The most important one right now
is that content extraction is done by buffering everything into memory
instead of properly streaming the data to disk (and processing
asynchronously), which causes freezes. It is likely to not cause any
practical issues since only the installer and the updater should use
this anyway.
2017-01-14 19:56:43 +01:00
Pierre Bourdon
a8f7012cf7 IOS/ES: Implement basic title installation.
There are several things wrong with this implementation. The first being
that since we still don't have a proper ticket/tmd handling library, we
hardcode offsets once again to fetch TMD fields. The second being that
we don't stream data to the disk and we buffer everything in memory. The
third being that we don't properly fetch the content index for
decryption, which is prone to breaking.

But hey, it works well enough to install the DQX channel!
2017-01-14 17:06:40 +01:00
Pierre Bourdon
0a5cfd8946 IOS: Add ESFormats.{cpp,h}.
This library implements basic parsing support for some of the IOS ES
formats we need to extract data from. Currently only implements TMD
functions, but some ticket handling functions from DiscIO should likely
be moved here in the future.
2017-01-14 17:06:40 +01:00
Pierre Bourdon
2ed352698f IOS/ES: Implement ES_AddTicket.
Refactor the existing DiscIO::AddTicket to not require the caller to
pass the requested title ID. We do not have the title ID in the ES case,
and it needs to be extracted from the ticket. Since this is always a
safe operation to do (title ID is always in the ticket), the
implementation is made default.
2017-01-14 15:23:16 +01:00
Pierre Bourdon
c30635c70a IOS/ES: Factor out the ES_Decrypt implementation.
WFSI calls into ES to perform this operation, so expose a way for us to
do the same thing.
2017-01-14 15:23:16 +01:00
Lioncash
45415e1057 ColorUtil: Make decodeCI8image's pal parameter const 2017-01-13 17:07:26 -05:00
Matthew Parlane
30e57cecf7 Merge pull request #4653 from lioncash/dsp-define
DSPInterpreter: Get rid of a #define constant
2017-01-14 10:54:48 +13:00
Lioncash
35cc4a4202 DSPInterpreter: Get rid of a #define constant
This constant isn't particularly helpful, mainly because it's not
applicable to all DSP instructions. Some instructions don't have encoding
space for registers, and not all instructions that do encode registers
have one at the first five bits.

This change also has the benefit of removing all includes to the
interpreter within the JIT code, which keeps them fully separate from one
another. Changes to the interpreter header won't require some of the JIT
code to be rebuilt.
2017-01-12 20:36:52 -05:00
Lioncash
0035a4ef3d GCMemcard: Const-correctness changes
A few function reference and pointer parameters are only read from.
2017-01-12 20:01:19 -05:00
Matthew Parlane
5790f15be8 Merge pull request #4299 from sepalani/hle_symbols
SymbolDB: Multiple symbols detection allowed
2017-01-13 10:05:32 +13:00
Matthew Parlane
24f7ebc890 Merge pull request #4420 from JosJuice/memcard-header-time
Don't use GetEmulatedTime in GCMemcard
2017-01-13 09:49:35 +13:00
degasus
fe41ed7fa1 JitCache: Use pointers in the ICache and dispatchers. 2017-01-12 21:43:28 +01:00
Léo Lam
64101137cd Remove pre-generated SYSCONF
Dolphin is able to generate one with all correct default settings, so
we don't need to ship with a pre-generated SYSCONF and worry about
syncing default settings.

Additionally, this commit changes SysConf to work with session SYSCONFs
so that Dolphin is able to generate a default one even for Movie/TAS.
Which SYSCONF needs to be touched is explicitly specified to avoid
confusion about which file SysConf is managing.

(Another notable change is that the Wii root functions are moved into
Core to prevent Common from depending on Core.)
2017-01-12 21:30:11 +01:00
Matthew Parlane
d346d4ced1 Merge pull request #4544 from JosJuice/region-enum
DiscIO: Add GetRegion function and Region enum
2017-01-13 09:19:27 +13:00
Matthew Parlane
34c6672b97 Merge pull request #4446 from leoetlino/countries
ConfigManager: Don't overwrite the SYSCONF country
2017-01-13 09:09:56 +13:00
Matthew Parlane
356619642b Merge pull request #4647 from degasus/jitcache
JitCache: Clean up block id handling.
2017-01-13 09:00:46 +13:00
degasus
d4a529614a Jit64: Use PPCSTATE reg if possible. 2017-01-12 20:55:17 +01:00
degasus
a8b26937f3 JitCache: Clean up GetBlockFromStartAddress. 2017-01-12 20:24:43 +01:00
degasus
214f37ecef JitCache: Rename variables. 2017-01-12 20:23:14 +01:00
degasus
3ee178abe7 JitCache: Drop unused functions. 2017-01-12 20:23:14 +01:00
degasus
7e850361fb JitCache: Add a helper function to iterate over all blocks. 2017-01-12 20:23:14 +01:00
degasus
ca026b58ab JitCache: Use a pointer in links_to. 2017-01-12 20:23:14 +01:00
degasus
928ccbef53 JitCache: Use a pointer in block_map. 2017-01-12 20:23:14 +01:00
degasus
74a27d9742 JitCache: Use a pointer in start_block_map. 2017-01-12 20:23:14 +01:00
degasus
2d5288dc10 JitCache: Return a pointer in AllocateBlock. 2017-01-12 20:23:14 +01:00
degasus
f14cebf079 JitCache: Use a pointer in FinalizeBlock. 2017-01-12 20:23:14 +01:00
degasus
d3aa8c8080 JitCache: Return a pointer in GetBlockFromStartAddress. 2017-01-12 20:23:14 +01:00
degasus
f6ec96efbd JitCache: Use a pointer in DestroyBlock. 2017-01-12 20:23:14 +01:00
degasus
68c85d32f7 JitCache: Use a pointer in UnlinkBlock. 2017-01-12 20:23:14 +01:00
degasus
eb390f3020 JitCache: Use a pointer in LinkBlock. 2017-01-12 20:23:14 +01:00
degasus
ccb8c44a5a JitCache: Use a pointer in LinkBlockExits. 2017-01-12 20:23:14 +01:00
Matthew Parlane
119dfbb436 Merge pull request #4648 from lioncash/iofile
IOFile: Get rid of IOFile's ReleaseHandle function
2017-01-13 08:15:23 +13:00
Lioncash
6f08ef9a25 IOFile: Get rid of IOFile's ReleaseHandle function
Transfer of handles should be done via std::move.
2017-01-12 12:34:06 -05:00
Matthew Parlane
04a86e1cee Merge pull request #4646 from leoetlino/minor-simplifications
IOS HLE: Minor simplifications
2017-01-12 12:32:05 +13:00
Matthew Parlane
c765087548 Merge pull request #4645 from lioncash/breakpoints
BreakPoints: Minor changes
2017-01-12 11:01:11 +13:00
Lioncash
b760479f77 BreakPoints: Use std::any_of where applicable 2017-01-11 16:37:31 -05:00
Léo Lam
13c374b118 IOS HLE: Replace some loops with range-based loops 2017-01-11 21:20:15 +01:00
Léo Lam
36c4dda4ed IOS HLE: Simplify Reset() and SetDefaultContentFile()
Reset():
We only need to close IOS devices which were opened, and we can do that
simply by iterating over s_fdmap and closing any opened device.
With this change, s_device_map can be cleared at once.

SetDefaultContentFile():
We can just use s_es_handles which is guaranteed to contain three valid
ES devices. Gets rid of a downcast.
2017-01-11 17:52:28 +01:00
Lioncash
e97953130d BreakPoints: Use character literals for finding single characters
The single character find overload is better suited over the one for
finding character sequences.
2017-01-11 10:08:14 -05:00
Lioncash
4e649c60c0 BreakPoints: Make getters const member functions
Just const-correctness stuff. The returned collection can't be modified,
so this makes sense.
2017-01-11 10:08:14 -05:00
Lioncash
0f8bcf412d BreakPoints: Rename variables
Drops Hungarian notation where applicable.Drops Hungarian notation where
applicable.
2017-01-11 10:08:11 -05:00
Lioncash
274ab8a262 BreakPoints: Make the memchecks class member private
There's no need to make this public.
2017-01-11 10:07:34 -05:00
Léo Lam
15567ef2bf IOS HLE: Remove useless overrides in bt_stub
Since the Open command won't ever return with the stub, there's no way
we will get a Close/IOCtl/IOCtlV for it, so we don't have to
implement it at all.
2017-01-11 14:06:01 +01:00
Léo Lam
f66aab6381 IOS HLE: Make Device::Update() return void
The return value is not used at all, so it's useless to keep it.
And the semantics of the return value were not even well defined.
2017-01-11 14:06:01 +01:00
Lioncash
93c5c0213f BreakPoints: Convert typedefs into using aliases 2017-01-11 07:59:43 -05:00
Lioncash
50ee01754e BreakPoints: Add initializers for TBreakPoint and TWatch
Ensures all members are consistently initialized.
2017-01-11 07:55:43 -05:00
Lioncash
588374349f BreakPoints: In-class initialize TMemCheck members
Same thing, less code.
2017-01-11 07:53:49 -05:00
Markus Wick
d9a37d38b4 Merge pull request #4571 from degasus/DSPHLE
Attempt re-adding the missing AXWii DSP_SYNC
2017-01-10 22:23:35 +01:00
Jack Andersen
3869eec53a DSP: Clean up GBA crypto HLE implementation 2017-01-10 10:34:34 -10:00
Lioncash
ea8fc594a5 Common: Move BreakPoints into Core
BreakPoints utilizes the jit global variable, so this was making Core and
Common cyclical dependencies on one another.
2017-01-10 05:24:44 -05:00
Markus Wick
440a2f832c Merge pull request #4637 from lioncash/jitcache
JitCache: Get rid of reliance on the JIT global variable
2017-01-10 00:07:17 +01:00
Léo Lam
a68aea1ace IOS HLE: Replace is_hardware with a proper device type
is_hardware is an obscure name (what does hardware mean?) and it forces
us to assume that anything that !is_hardware is a FileIO device. This
assumption prevents properly restoring OH0 child devices (which will be
implemented in the USB PR), so this commit replaces the is_hardware
bool with a device type.
2017-01-09 12:27:45 +01:00
Lioncash
37d10064b8 JitCache: Get rid of reliance on the JIT global variable 2017-01-09 04:43:06 -05:00
Lioncash
f75aab1a85 CachedInterpreter: Separate the block cache from CachedInterpreter
An interpreter is not a block cache. It may utilize a block cache, it may
contain a block cache but it *is not* A block cache.
2017-01-09 04:43:05 -05:00
Lioncash
eddccb3891 CachedInterpreter: Move to its own directory 2017-01-09 04:43:05 -05:00
Lioncash
2b8ede8dc6 JitCache: Move implementation details into the cpp file 2017-01-09 04:43:04 -05:00
Lioncash
cf18aeb1eb JitCache: Move private class details below public details
Also organizes cpp file organization to match the function layout.
2017-01-09 04:42:59 -05:00
Matthew Parlane
0869c63048 Merge pull request #4634 from leoetlino/probably-pointless-ios-fixes
IOS HLE: Minor changes to match IOS behaviour
2017-01-09 13:49:32 +13:00
Lioncash
00baf193ac CodeBlock: Const correctness for IsInSpace 2017-01-08 18:40:09 -05:00
Léo Lam
c761ac4f08 IOS HLE: Set return value to EINVAL for unknown commands
This matches IOS behaviour and allows getting rid of command handlers
which merely set the return value to EINVAL.
2017-01-08 21:18:08 +01:00
Léo Lam
45b59f01b8 IOS HLE: Allow up to 3 ES handles
Confirmed by a hardware test and a quick diassembly of /dev/es.

I'm not aware of anything that opens several ES handles, but
technically, this fixes a small inaccuracy in IOS HLE.
2017-01-08 21:16:10 +01:00
Léo Lam
23162ac722 IOS HLE: STM: Check if there is already an event hook
For IOCTL_STM_EVENTHOOK, IOS checks if there is already an event hook
to prevent overriding an existing event hook message with a new one,
without first releasing it.
2017-01-08 21:16:10 +01:00
Matthew Parlane
5135445298 Merge pull request #4627 from leoetlino/naming-cleanup
IOS HLE: Naming cleanup
2017-01-09 09:08:50 +13:00
Chris Burgener
47b3a9c68e Add Silent Audio Dumping INI Option 2017-01-08 13:53:44 -05:00
Lioncash
27350dbf1c Jit64Base: Use size_t to represent size in LogGeneratedX86 2017-01-07 21:57:19 -05:00
Lioncash
77756b44d5 Jit64Base: Const correctness for LogGeneratedX86 2017-01-07 21:53:06 -05:00
Léo Lam
1f9269d0ea ConfigManager: Don't overwrite the SYSCONF country
Currently, the country is always overridden depending on the Wii
language setting. This makes it impossible to change the country
independently from the language, unlike on a Wii, since a language
will always be associated to an unique country (which is hardcoded
in Dolphin's codebase).

This behaviour was added in c881262 and changed in PR 4319 to happen
every time emulation is started. It doesn't seem to be needed anymore,
as a quick testing shows that a Japanese system menu is able to load
in Japanese even with the region set to France, or anything other than
Japan in fact. So what this commit changes is drop this code.

Fixes issue 9884.
2017-01-08 01:28:43 +01:00
Léo Lam
c28b148783 IOS HLE: Clean up naming and remove unused defines
Removes #defines which have been unused for years and cleans up
naming.

This also changes IPC_REP_ASYNC to simply IPC_REPLY because it turns
out it's actually not specific to async replies, but used for all
command replies.
2017-01-08 01:20:40 +01:00
Léo Lam
7dcb3c5d55 IOS HLE: Clean up return codes
- Use an enum instead of defines.

- Only use the FS_ prefix for return codes which are actually related
  to FS stuff, not for everything.

- Remove duplicated error codes and clean up the names.
2017-01-08 01:20:35 +01:00
Matthew Parlane
7a5fe4b7ed Merge pull request #4624 from leoetlino/jit-warning-fixes
Add the g_ prefix to the jit global
2017-01-08 13:19:16 +13:00
Matthew Parlane
c89aa79380 Merge pull request #4626 from lioncash/size
CodeBlock: Get rid of implicit sign-conversion in AllocCodeSpace
2017-01-08 13:14:02 +13:00
Lioncash
9d8e8652fb CodeBlock: Get rid of implicit sign-conversion in AllocCodeSpace
Size is internally stored as a size_t, so having an int parameter
would cause implicit sign-conversion from a signed value to an
unsigned value to occur.
2017-01-07 19:05:06 -05:00
Léo Lam
22fcb735ed IOS HLE: HID: Remove left-over align function
Also remove unneeded AlignUp usages.
2017-01-08 00:36:04 +01:00
Léo Lam
3c50c61606 IOS HLE: Remove copy and pasted Open()/Close()
This removes Open() and Close() functions from devices whenever they
did nothing more than the base class (setting m_Active, returning a
default reply).

Also, since IOS close commands practically always return FS_SUCCESS,
writing the return code is moved to HandleCommand() in WII_IPC_HLE,
which has two benefits: it's not duplicated all over the place
(so people will not forget it) and it gets rid of having to check
the force parameter, since HandleCommand() is always called for
real IOS commands, so command_address is guaranteed to be valid.
2017-01-07 23:31:04 +01:00
Léo Lam
27e6363214 IOS HLE: Remove unneeded GetDeviceID() writes
It looks like at some point Dolphin device IDs coincided with IOS file
descriptors, but this is not the case anymore, so keeping those
WriteReturnCode(GetDeviceID()) in every single IOS HLE device,
as if the device ID was used as IOS fd, is both unnecessary
and confusing.
2017-01-07 23:30:59 +01:00
Matthew Parlane
7847ca41e2 Merge pull request #4607 from leoetlino/execute
IOS HLE: Refactor ExecuteCommand
2017-01-08 11:20:49 +13:00
Léo Lam
8bef7259e3 Add the g_ prefix to the jit global
Jan 04 22:55:01 <leoetlino>   fwiw, it looks like there are new warnings in the RegCache code
Jan 04 22:55:04 <leoetlino>   Source/Core/Core/PowerPC/Jit64/FPURegCache.cpp:13:33: warning: declaration shadows a variable in the global namespace [-Wshadow]
Jan 04 22:56:19 <@Lioncash>   yeah, the jit global should have a g_ prefix.

This fixes shadowing warnings and adds the g_ prefix to a global.
2017-01-07 23:19:49 +01:00
Markus Wick
c33c9532a7 Merge pull request #4594 from lioncash/regcache
DSPJitRegCache: Make single argument constructor explicit
2017-01-06 13:01:40 +01:00
Markus Wick
82d45435fd Merge pull request #4616 from lioncash/hle
HLE: Align table formatting
2017-01-06 12:57:16 +01:00
Mat M
e7359f247b Merge pull request #4595 from aldelaro5/add-debugger-hotkeys
Add debugger hotkeys
2017-01-05 14:33:10 -05:00
Mat M
495580637f Merge pull request #4606 from BhaaLseN/clang-format-union
specify custom brace style to fix unions
2017-01-05 14:27:27 -05:00
Mat M
9da6982ac3 Merge pull request #4608 from RisingFog/input_display_newlines
Add missing new lines for OSD
2017-01-05 14:25:24 -05:00
Mat M
189e5f87fb Merge pull request #4612 from PEmu1/memcard-menu
Don't Use Abbreviation for "Memory Card"
2017-01-05 14:22:54 -05:00
Lioncash
a10bb15f17 HLE: Add explicit initializers for OSBreakPoints' stub entry
No behavior change, this just makes implicit values explicit.
2017-01-05 14:15:45 -05:00
Lioncash
2941468857 HLE: Align table formatting 2017-01-05 14:13:30 -05:00
PEmu1
6d195f3d65 Don't Use Abbreviation for "Memory Card" 2017-01-05 10:06:46 -08:00
BhaaL
23d99f2f2c specify custom brace style to fix unions
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
Léo Lam
a15be890e1 WII_IPC_HLE: Update the "IOS basics" comment
The codebase has changed since it was written, so it needed
a small update.
2017-01-05 01:11:52 +01:00
Léo Lam
00268443ca WII_IPC_HLE: Replace #defines with constexpr 2017-01-05 01:04:20 +01:00
Léo Lam
9abfa54c9d IOS HLE: Remove s_es_inuse
We don't really have to keep track of device opens/closes manually,
since we can already check that by calling IsOpened() on the device.

This also replaces some loops with for range loops.
2017-01-05 01:04:19 +01:00
Léo Lam
b65ad538ba IOS HLE: Refactor ExecuteCommand
ExecuteCommand was becoming pretty confusing with unused variables
for some commands, confusing names (device ID != IOS file descriptor),
duplicated checks, not keeping the indentation level low, and having
tons of things into a single function.

This commit gives more correct names to variables, deduplicates the
device checking code, and splits ExecuteCommand so that it's
easier to read.

It's worth noting that some device checks have been forgotten in the
past, which has caused a bug (which was recently fixed in 288e75f6).
2017-01-04 19:33:50 +01:00
JosJuice
c5e731644c Don't use GetEmulatedTime in GCMemcard
GCMemcard is only used outside of the core and has
no real reason to use the core's RTC. GetEmulatedTime
isn't designed to be called when the core isn't running.
Should fix https://bugs.dolphin-emu.org/issues/9871
2017-01-04 19:17:51 +01:00
Lioncash
2cfc0dc8b6 DSPDisassembler: directly initialize AssemblerSettings struct members
Same thing, less code.
2017-01-04 12:53:22 -05:00
Chris Burgener
afdcddc0c5 Add missing new lines for OSD 2017-01-04 10:49:52 -05:00
Markus Wick
9f164d7c33 Merge pull request #4593 from lioncash/enum
JitRegCache: Move FlushMode enum into RegCache
2017-01-04 16:21:21 +01:00
Lioncash
5518c6625b PatchEngine: Get rid of a global variable 2017-01-03 18:59:33 -05:00
Stenzek
18792b2328 FifoPlayer: Don't set BPMEM_PRELOAD_MODE on load
Since in this case we're setting it based on the state at record start
time, not when a register is loaded, UseMemory would not be called, so
this could potentially wipe out texture memory that was valid.
2017-01-03 21:16:05 +10:00
Stenzek
5f3c878ba2 FifoPlayer: Save/restore texture memory state for fifo logs 2017-01-03 21:16:05 +10:00
Stenzek
438989668e FifoDataFile: Add support for storing texture memory state
This bumps the file version to 4.
2017-01-03 21:16:04 +10:00
Stenzek
5b315b7bb4 FifoPlayer: Reload initial state when looping back to first frame
This should ensure that when playing with loop enabled, the first frame is
in the same state each time. There is potentially still issues when the
start frame is set to something other than zero, but I'm not sure how we
could work around this without capturing the entire state on each frame.
2017-01-03 17:32:45 +10:00
aldelaro5
cc7c410cf1 Add debugging hotkeys
They are separated into 3 groups and will only be shown in the input config dialog if the emulator was in debug mode.
2017-01-02 18:16:52 -05:00
JosJuice
ec969da6bd EXI_DeviceIPL: Remove m_bNTSC
It's only used in the constructor.
2017-01-02 21:08:24 +01:00
Lioncash
342b76a594 DSPJitRegCache: Make single argument constructor explicit
Prevents implicit conversions.
2017-01-02 15:03:31 -05:00
JosJuice
f85266df20 SConfig: Replace bNTSC with m_region
This lets us get rid of VideoInterface::SetRegionReg,
a huge hack in CEXIMemoryCard, and some minor things.
2017-01-02 20:57:48 +01:00
JosJuice
66ea9f5cc1 DiscIO: Add GetRegion function and Region enum
Instead of needing different switch cases for
converting countries to regions in multiple places,
we now only need a single country-to-region switch case
(in DiscIO/Enums.cpp), and we get a nice Region type.
2017-01-02 20:57:11 +01:00
Lioncash
f8c6b3b5f1 JitRegCache: Move FlushMode enum into RegCache
This also makes it a strongly-typed enum.

Considering that the flushing mode is a trait/behavior for the register
cache, it doesn't really make sense to have the enum separate from it.

This also has the benefit of removing constants from global scope.
2017-01-02 13:43:37 -05:00
Lioncash
3b4290b5b7 DSPJitRegCache: Make class variables conform to the coding style 2017-01-02 12:16:29 -05:00
Anthony
b46dcc7768 Merge pull request #4495 from slashiee/dump-textures-hotkey
Add a hotkey for toggling texture dumps
2017-01-01 17:28:56 -08:00
hthh
387164a999 macOS: Add missing includes to fix no-PCH build 2017-01-02 11:45:24 +11:00
Mat M
b10a0de769 Merge pull request #4535 from lioncash/regcache
Jit64: Make register caches not rely on the global jit variable
2017-01-01 18:01:29 -05:00
Mat M
6c5063c76b Merge pull request #4585 from lioncash/dspnamespace
DSP: Namespace remaining un-namespaced DSP code
2017-01-01 17:54:39 -05:00
Anthony
4c90ad7514 Merge pull request #4490 from leoetlino/wii-dsy
Add common Wii SDK function signatures to the signature DB
2016-12-31 16:31:50 -08:00
Lioncash
3eb25cea6f DSP: Namespace remaining un-namespaced DSP code 2016-12-31 17:20:14 -05:00
JosJuice
15de7d507f Merge pull request #4519 from sepalani/fix_import_save
Fixes WiiSave import
2016-12-31 12:33:45 +01:00
Lioncash
efbf261e97 DSPAnalyzer: Fix two clang warnings about sign mismatched types 2016-12-29 10:10:38 -05:00
Lioncash
2aefa29941 DSP: Add the interpreter to the DSP namespace 2016-12-29 07:05:17 -05:00
Lioncash
c79cc3f470 DSP: Namespace the JIT 2016-12-28 20:38:41 -05:00
Lioncash
407f3af8c3 JitRegCache: Get rid of reliance on the jit global variable 2016-12-28 17:52:58 -05:00
Lioncash
8ece485a2f JitRegCache: Make member variables conform to our coding style 2016-12-28 17:47:26 -05:00
Lioncash
e291e8f1a7 JitRegCache: Convert #define macro into a typed constant 2016-12-28 17:47:26 -05:00
Lioncash
4ae23fc45c JitRegCache: Remove unused typedefs 2016-12-28 17:47:26 -05:00
Lioncash
b629eb300a JitRegCache: Remove unused Flush function
This was kind of a pointless function, considering the parameter wasn't
used at all, so the other Flush() function could have been just directly
used instead.
2016-12-28 17:47:26 -05:00
Lioncash
41d47dda93 JitRegCache: Move implementation details into the cpp file where applicable
Any future changes to these register cache functions won't require everything that includes the register cache header to also be recompiled.
2016-12-28 17:47:26 -05:00
Lioncash
d1fc694c02 JitRegCache: Move protected interface below public interface 2016-12-28 17:47:26 -05:00
Lioncash
1a34376f3a JitRegCache: Separate FPURegCache and GPRRegCache into their own files
Keeps them separated from one another and makes it less annoying to find
member functions (which were previously spread out all over the place).
2016-12-28 17:47:25 -05:00
Lioncash
5c938ed41f DSPTables: Move function type aliases into DSPOPCTemplate
Gets two typedefs out of global scope
2016-12-27 18:31:42 -05:00
Lioncash
12e335025d DSPEmitter: Make FlagsNeeded() a const member function
This doesn't modify any class data.
2016-12-26 21:18:24 -05:00
Lioncash
a8459fc189 DSPAnalyzer: Hide implementation details
Makes accessing flags a part of the function interface instead of exposing
an internal variable.
2016-12-26 21:18:18 -05:00
Pierre Bourdon
6b65344ccf axwii: re-add the missing sync -- might work better with the new MailHandler implementation 2016-12-27 02:03:58 +01:00
Pierre Bourdon
7c4bbcf22f ax: switch to new style interrupt triggering 2016-12-27 02:03:55 +01:00
Lioncash
50b1fcb1ed DSPEmitter: Initialize compileSR in the initializer list 2016-12-26 19:42:09 -05:00
Lioncash
f3d353a85d DSPEmitter: Move typedefs into DSPEmitter
Keeps them associated with the emitter itself, rather than just letting
them sit in global scope.
2016-12-26 19:19:39 -05:00
Lioncash
646d96a216 DSPEmitter: Convert defines into typed constants
Also moves them into more qualified scopes where possible.
2016-12-26 19:16:01 -05:00
Lioncash
c37889efcb DSPEmitter: Use std::vector instead of raw allocation 2016-12-26 19:03:35 -05:00
Lioncash
400d5f6940 DSPEmitter: In-class initialize variables 2016-12-26 18:07:15 -05:00
Mat M
1af9f68240 Merge pull request #4566 from JosJuice/charset-terminology
Remove incorrect usage of "ASCII" and "ANSI"
2016-12-26 15:40:45 -05:00
JosJuice
0f1ce0e1f4 Remove incorrect usage of "ASCII" and "ANSI"
Windows-1252 was sometimes being referred to as ASCII or ANSI
in Dolphin, which is incorrect. ASCII is only a subset of
Windows-1252, and ANSI is (rather improperly) used in Windows
to refer to the current code page (which often is 1252 on
Western systems, but can also be something entirely different).

The commit also replaces "SJIS" with "Shift JIS". "SJIS"
isn't misleading, but "Shift JIS" is more commonly used.
2016-12-26 15:49:39 +01:00
degasus
8f9f2b1f76 DSPHLE: Seperate HLE construction and initialization.
We must be able to construct the HLE without emulating the initialization
on loading a savestate.
2016-12-26 12:25:57 +01:00
Lioncash
042045012b DSPEmitter: Get rid of an unused member variable 2016-12-25 21:31:17 -05:00
Mat M
81d452ecda Merge pull request #4551 from JosJuice/movie-controller-comment
Movie: Replace incorrect name and comment for numControllers
2016-12-25 17:36:27 -05:00
JosJuice
c0710d3593 Mark strings added by PR #4461 for translation
Also fix the HKGP_FRANE_ADVANCE typo.
2016-12-24 19:26:21 +01:00
JosJuice
55fe77e986 Movie: Replace incorrect name and comment for numControllers
Also add similar comments to the variables memcards and bongos.
2016-12-24 18:27:56 +01:00
Lioncash
5852e3961d DSPMemoryMap: Move function implementations into the cpp file
This allows removing DSPCore and DSPTables includes from the header file.
Doing allows resolving quite a bit of indirect includes that were present
throughout the DSP source files.

Another plus with this is that changes to the DSPEmitter don't require an
almost total rebuild of all DSP source files. The underlying reason for
most of the files being rebuilt it because DSPMemoryMap is used quite
extensively, however its header includes DSPTables.h. DSPTables.h includes
DSPEmitter.h as it uses the DSPEmitter type in a typedef. So any change to
the emitter would propagate through the DSPMemoryMap header. This will no
longer happen.
2016-12-22 20:09:52 -05:00
Lioncash
af28ce7ecb DSP: Move DSPEmitter into the Jit directory
This is actually used as the DSP JIT, so this should be with the other JIT
source files.

This commit also makes it so changes to the JIT emitter don't require
recompiling all of the DSP core (i.e. changing the JIT won't require the
interpreter to be rebuilt).
2016-12-22 19:50:03 -05:00
Lioncash
a4cd11ec87 DSP: Move interpreter source files to their own directory
Keeps code organized similar to the DSP JIT.
2016-12-22 18:18:48 -05:00
Lioncash
9131b994bb DSPTables: Move interpreter specifics to DSPInterpreter 2016-12-21 15:40:45 -05:00
Lioncash
a5e555e609 DSPInterpreter: Alphabetically sort opcode function definitions
Makes browsing slightly nicer.
2016-12-21 14:43:38 -05:00
Lioncash
7ecf3d6955 DSPTables: Amend table formatting
Restores them to what they were before the codebase-wide reformatting and
adds annotations to specifically not format them.
2016-12-21 03:51:53 -05:00
Mat M
8192af9b3d Merge pull request #4533 from lioncash/jits
Jit64/JitIL: Get rid of trivial global jit variable usages
2016-12-20 21:09:50 -05:00
Anthony
ca91b6df52 Merge pull request #4521 from JosJuice/tgc
Add TGC disc image compatibility
2016-12-20 17:45:39 -06:00
Lioncash
a98fd57da7 JitArm64: Add missing override specifiers 2016-12-20 17:30:13 -05:00
Mat M
cd4449f881 Merge pull request #4501 from flibitijibibo/disabletooltips
DolphinWX: Add 'DisableTooltips' config option (R2)
2016-12-20 17:20:24 -05:00
Lioncash
513ace1c0c JitIL: Get rid of trivial global jit variable usages 2016-12-20 12:56:06 -05:00
Lioncash
66034de20b Jit64: Get rid of trivial global jit variable usages
Jit64 inherits from Jitx86Base which inherits from JitBase. JitBase
contains jo and js, which are instances of the JitOptions and JitState
structs. Because of the inheritance, there's no actual need to access the
jit global in order to get to these instances. They're already accessible
via the class hierarchy.
2016-12-20 12:55:58 -05:00
Lioncash
05af5b292f EmuCodeBlock: Amend member variable names to conform to coding style 2016-12-19 17:55:44 -05:00
Lioncash
e373a48a51 EmuCodeBlock: Make farcode and nearcode protected
This is the only context they're used in.
2016-12-19 17:36:29 -05:00
Sepalani
8d812db9ad SymbolDB: Use set to map hash with symbols 2016-12-19 21:03:29 +00:00
Sepalani
7e974f1064 SymbolDB: GetSymbolsFromHash added 2016-12-19 21:03:28 +00:00
Sepalani
d778b8a820 SymbolDB: GetSymbolsFromName added 2016-12-19 21:02:23 +00:00
Lioncash
0b12c6986a SignatureDB: Add missing license headers 2016-12-19 15:57:21 -05:00
Mat M
10862cd0e8 Merge pull request #4522 from lioncash/jitutil
Jit64Common: Split Jit64Util contents into separate files
2016-12-19 15:49:49 -05:00
Mat M
4e405010a3 Merge pull request #4497 from sepalani/totaldb.csv
Import/Export signature files as CSV
2016-12-19 15:45:21 -05:00
Chris Burgener
2e2ba37bc1 Remove leftover SkipIdle function 2016-12-19 15:20:56 -05:00
Sepalani
b4bc1c9339 WiiSave: Fixes vector assertions 2016-12-18 19:44:00 +00:00
Sepalani
9774b3f640 WiiSave: Fixes directory issues 2016-12-18 19:43:55 +00:00
JosJuice
9bd514ed1c Add TGC disc image compatibility 2016-12-18 18:57:36 +01:00
Lioncash
94237b694b Jit64Common: Split Jit64Util contents into separate files
Much of Jit64Util consists of essentials, not utilities. Breaking these
out into their own files also prevents unrelated includes from being
present near other classes.

This also makes it easier to find and change certain components of the
x86-64 JIT, should it be necessary.
2016-12-18 02:27:58 -05:00
Sepalani
a6114bad34 Import/Export signature files as CSV 2016-12-18 00:27:10 +00:00
Lioncash
8b6f8892d6 TrampolineCache: Make constant constexpr 2016-12-14 04:43:32 -05:00
Lioncash
d0c54fe15e Jit64Util: Make constants constexpr 2016-12-14 04:43:31 -05:00
Lioncash
9c1ad3dde6 Jit64Base: Replace #defines with concrete constants 2016-12-14 04:43:31 -05:00
Lioncash
d010246af2 Jit64Base: Clean up casting
Mostly intended to clean up HandleFault than anything else.
2016-12-14 04:43:31 -05:00
Lioncash
1aff8c4eb1 BlockCache: Use const_cast 2016-12-14 04:43:30 -05:00
Lioncash
36c99df9f5 Jit: Move most x86-64-specific code out of JitCommon 2016-12-14 04:43:25 -05:00
Markus Wick
d64c9dd5c9 Merge pull request #4419 from degasus/master
Jit64: Fix a few trivial PIE issues.
2016-12-12 10:58:16 +01:00
Mat M
a0920afd5b Merge pull request #4500 from leoetlino/fileio-fix
IPC_HLE: Fix incorrect file path for IOCTL_SET_ATTR
2016-12-09 17:48:21 -05:00
Léo Lam
09fdab7fb4 HLE: Add a hook for JUTWarningConsole_f
JUTWarningConsole_f calls vprintf, but in a way we currently don't
handle (which messes up the printed message). However, it is a standard
debug print function, so we can directly hook it instead of waiting for
the vprintf call.

This is necessary to fix debug output in a few games now that vprintf
is properly detected in more games.
2016-12-09 23:40:06 +01:00
Anthony
1fa61af413 Merge pull request #4492 from aldelaro5/gc-mic-ui-reimplement
Move the GameCube mic button configuration to the GameCube config dialog
2016-12-09 14:53:47 -06:00
Ethan Lee
7cfead6429 DolphinWX: Add 'DisableTooltips' config option
(Revision 2: Remove checkbox from WX GUI)
2016-12-07 13:20:37 -05:00
Léo Lam
10c7e56689 IPC_HLE: Fix incorrect file path for IOCTL_SET_ATTR
We were reading the string from the wrong location…
2016-12-07 13:52:44 +01:00
Léo Lam
31ccfffd38 Common: Add alignment header
Gets rid of duplicated alignment code.
2016-12-06 20:33:53 +01:00
aldelaro5
431929fa1d Moved the Mic button of the GCPad to its own group.
This is needed to separate it from the GCPad input configuration dialog as it would be moved to its own dialog.
2016-12-05 18:09:23 -05:00
Michael
e31aa70ff8 Add a hotkey for dumping textures 2016-12-05 08:20:45 -08:00
degasus
21f3e97435 Jit64: Avoid pointer casts if possible. 2016-12-04 13:09:16 +01:00
degasus
f325d41def DSPJit: Use tmp register for pointer immediate.
PIE.
2016-12-04 13:09:16 +01:00
degasus
d26709f713 Jit64: Use ImmPtr for mtcrf.
Only a small overhead, but PIE compatible.
2016-12-04 13:09:16 +01:00
degasus
8189ef432b Jit64: Use ImmPtr for mcrxr.
Only a small overhead, but PIE compatible.
2016-12-04 13:09:16 +01:00
degasus
23c284c081 Jit64: Use ImmPtr for inst.OE handling.
A bit slower, but PIE compatible and *very* rarely.
2016-12-04 13:09:15 +01:00
Hector Martin
90c2dec02d Wii IPC HLE: do not clobber memory when launching a new title
It's questionable whether ES_LAUNCH should write *anything* to the
command structure at all, ever, given that it never actually returns
it back through the mailbox. But it *definitely* shouldn't write
anything to it if it has just launched a DOL, because otherwise it might
clobber code/data from the just-loaded application.
2016-12-01 06:55:15 +09:00
Hector Martin
288e75f672 Wii IPC HLE: Fix IPC missing reply fail 2016-12-01 06:38:51 +09:00
Hector Martin
2b906e3fc4 DOL/ELF loaders: enable HID4.SBE in Wii mode
When booting "cooked" executables, BATs should already be set up and
enabled. They should only really be disabled when booting NAND contents
in real mode.
2016-12-01 06:36:53 +09:00
Hector Martin
a6742d9cf7 ELF boot: scan segments for Wii mode detection, not sections 2016-12-01 06:36:53 +09:00
Hector Martin
3f11879640 ES HLE / WAD boot: hardcode the entrypoint
NAND titles are always started at address 0x3400 with translation off.
The entrypoint in the DOL is ignored.
2016-12-01 06:36:53 +09:00
JosJuice
3cfc49a613 Merge pull request #4472 from JosJuice/revert-absolute-path
IOS HLE: Replace broken path traversal prevention
2016-11-29 18:34:22 +01:00
aldelaro5
f705d8378e Fix the order of the name of the hotkeys 2016-11-29 11:51:55 -05:00
Mat M
eebe4ef1fd Merge pull request #4461 from aldelaro5/hotkey-config-redo
Redo every input configuration dialog
2016-11-29 07:39:28 -05:00
Léo Lam
72e3f1ecec Remove unnecessary ConfigManager includes
Making changes to ConfigManager.h has always been a pain, because
it means rebuilding half of Dolphin, since a lot of files depend on
and include this header.

However, it turns out some includes are unnecessary. This commit
removes ConfigManager includes from files which don't contain
SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the
ConfigManager include is not used).

(I've also had to get rid of some indirect includes.)
2016-11-27 22:38:38 +01:00
JosJuice
7a4f19ed98 IOS HLE: Correct handling of paths that don't start with / 2016-11-27 22:10:41 +01:00
JosJuice
c74c317ab5 IOS HLE: More robust escaping of NAND paths
Prevents path traversal without needing an absolute path
function, and also improves accuracy (character sequences
like ../ appear to have no special meaning in IOS).

This removes the creation and usage of /sys/replace,
because the new escapes are too complicated to all
be representable in its format and because no other
NAND handling software seems to use /sys/replace.
2016-11-26 22:49:46 +01:00
JosJuice
de355a8521 Revert "IOS HLE: Prevent accessing host file system"
This reverts commit 141f3bfb3a.
The implementation of getting absolute paths wasn't working
on non-Windows systems, which is a huge problem for IOS HLE.
2016-11-26 15:50:28 +01:00
Anthony
c84ab13e81 Merge pull request #4375 from leoetlino/ipc-hle-small-cleanup
IPC_HLE: Small cleanup
2016-11-25 17:50:14 -06:00
aldelaro5
7e99d03b7f Add the ability to get partial input group
For hotkeys, changed HotkeyManager to allow to get and make partial groups of hotkeys.

Also preserved the old configuration naming scheme for the ini, this is done to preserve compatibility with the older groups structure.

Add the ability to get GCPad control groups

Used like the HotkeyManager methods, this is used for the new GCPad configuration dialog.

Add the ability to get groups of Keyboard input

Same reasons as the previous ones.

Add ability to get groups of Wiimote input

Add the ability to get extensions group

This needed to pass to 3 classes.  Will be used for their respective dialogs.
2016-11-25 02:37:22 -05:00
Anthony
11243ac358 Merge pull request #4470 from aldelaro5/fix-slowdown-logs
Change the patch engine log to be debug level log
2016-11-24 16:25:53 -06:00
Léo Lam
5b44b37902 IPC_HLE: USB_KBD: Use the correct log type
Fixes logging to use the correct log type; it was originally STM
(likely an oversight).
2016-11-24 20:23:52 +01:00
Léo Lam
20f2955ad9 IPC_HLE: Remove dead code (Wiimote and emulated BT)
Neither needed or used in the emulated Bluetooth code.
2016-11-24 20:23:52 +01:00
Léo Lam
f82051a365 IPC_HLE: In-class initialise member variables 2016-11-24 20:23:52 +01:00
Léo Lam
3263831928 IPC_HLE: Clean up includes (IWYU)
Apply automated fixes by include-what-you-use (IWYU) (with some minor
changes).

IPC_HLE should now be essentially free of indirect includes.
2016-11-24 20:23:51 +01:00
Léo Lam
1e94fdba3c IPC_HLE: Device: Separate implementation from declaration
I know there is already #3521, but it currently needs a rebase and I
needed to add something to IPC_HLE_Device properly, that is, without
putting everything in the header, so this commit cleans up
IPC_HLE_Device first. (And only IPC_HLE_Device: the rest will still
be handled by #3521.)

Also fixes a few indirect includes (removing unused header includes
from IPC_HLE_Device.h broke building)
2016-11-24 20:19:19 +01:00
Léo Lam
741a638f3e IPC_HLE: USB_VEN: Clean up (includes and naming) 2016-11-24 20:19:18 +01:00
Léo Lam
b0377f02f0 IPC_HLE: Deduplicate syscall reply enqueue function
This is something that was copy-pasted across the IPC_HLE code
(because it's often used). Since all of the duplicated pieces of code
do the same thing as the previous EnqueueReply, except that they also
write to command_address + 0 and + 8 (to write the correct reply type),
this commit changes EnqueueReply to do that instead of having it
duplicated all over IPC HLE.
2016-11-24 20:19:18 +01:00
JosJuice
9bfea4a0f2 Merge pull request #4447 from JosJuice/hthh-hle-issues
Fix exploitable HLE problems reported by hthh
2016-11-24 15:53:23 +01:00
aldelaro5
c6b3c67ea1 Change the patch engine log to be debug level log
It was apparently causing heavy slowdowns on game even though it wouldn't spam much, probably caused by the amount of additional check caused by the logs levels changes.
2016-11-23 00:58:07 -05:00
Ryan Meredith
6d55aebcf7 Typo_Fix 2016-11-21 23:23:48 -05:00
Léo Lam
165e3a9936 IPC_HLE: Fix emulated BT crash (uninitialised memory)
When the emulated BT device is created, m_HCIEndpoint (which is a
CtrlBuffer)'s m_cmd_address is not initialised to 0. So it ends up
being a random value. This is normally not an issue… but the
emulated Bluetooth code relies on m_cmd_address to know whether the
HCI endpoint is still valid.

This is a problem with ES_Launch, because the bt_emu class is
destructed and re-constructed, and while m_cmd_address is still
uninitialised, the ES_Launch code disconnects all Wii remotes,
which triggers a HCI event and hence the bug.
2016-11-19 00:11:41 +01:00
Stenzek
e83bf5705a JitArm64: Don't emit normal block exit for branch-to-self instructions
The normal block exit is redundant as the exception exit will jump out of
the block first, meaning this code is never executed.
2016-11-15 00:28:14 +10:00
Stenzek
c657134c86 Jit64: Treat branch-to-self instruction as an idle loop 2016-11-15 00:26:59 +10:00
JosJuice
141f3bfb3a IOS HLE: Prevent accessing host file system 2016-11-13 10:03:23 +01:00
JosJuice
a79c449493 Avoid buffer over-reads in /dev/net/ip/top
Also fixes the less serious problem of buffer overflows
in emulated memory when BufferOutSize is less than 2.
2016-11-13 08:44:05 +01:00
JosJuice
b47e607105 HLE_OS: More bounds checking in GetStringVA 2016-11-12 19:17:15 +01:00
JosJuice
3d80d454ce HLE_OS: Implement %n in GetStringVA
%n writes to a pointer that's provided as a parameter.
We didn't have a custom implementation of this before,
meaning that %n would trigger a write to the host
memory instead of the emulated memory!
2016-11-12 19:16:55 +01:00
JosJuice
656999d4c2 Correct bounds checking for /dev/sdio/slot0
The bounds checks in IOCtl were using 0x200 as the size of
m_Registers, which is more than the actual size, 0x200 / 4.

This commit turns m_Registers into an std::array to allow
for a correct and obvious way of getting its size.
2016-11-12 19:09:03 +01:00
Jules Blok
0028ee96b3 Host: Remove the Host_RequestFullscreen() method.
No longer needed, since the exclusive mode switch is now handled synchronously on the CPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok
0a194f8a3e VideoConfig: Remove fullscreen flags.
These weren't actually settings, they were used as a bad way to communicate with the GPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok
05a3f927ee CPU: Fix deadlocks by periodically yielding to the UI message pump. 2016-11-11 13:37:03 +01:00
Jules Blok
8203ea929b BlockingLoop: Yield to UI message pump while waiting. 2016-11-11 13:37:02 +01:00
Lioncash
b19842eec3 IPC_HLE: Move NWC24Config and WiiNetConfig to their own source files
Makes for a cleaner separation of functionality, as well as removing
multiple includes from the main header file. It also gets a bunch of
structs and enums out of the global namespace.

Coincidentally, this also gets rid of an indirect include cycle that
could have broken compilation of Core.cpp in the future, since it was
relying on IPC network includes to resolve functions in Common/NandPaths.h.

This makes it easier to separate out the individual net classes in a
follow-up. Separating these out would also make it less of a pain to
figure out what's going on, since you wouldn't need to sift through 1000+
lines of code.i
2016-11-05 03:12:07 -04:00
JosJuice
d88295d5a1 Merge pull request #4421 from Pringo/wiimote-log
Change "Wiimote" to "Wii Remote" in Logs
2016-11-04 17:03:11 +01:00
Markus Wick
234691abf7 Merge pull request #4385 from leoetlino/disable-bt-check
Disable descriptor check for BT passthrough in some cases
2016-11-04 14:38:19 +01:00
Pringo
93bdab64fa Change "Wiimote" to "Wii Remote" in Logs 2016-11-03 17:58:28 -07:00
degasus
abe9c30d3d JitArm64: Also push/pop gpr.R(addr).
This fixes slowmem load instruction with update.
2016-11-02 22:38:03 +01:00
JosJuice
25070d149e Merge pull request #4412 from JosJuice/more-debug-text
More debug text fixes
2016-11-02 17:58:59 +01:00
JosJuice
3c6742f66f More debug text fixes
Also a few small non-debug text changes.
2016-11-02 17:46:52 +01:00
Markus Wick
342c053bf5 Merge pull request #4368 from JosJuice/updatewantdeterminism-loadinput
Movie: Add missing calls to UpdateWantDeterminism
2016-11-02 16:26:48 +01:00
Markus Wick
9ce1cdde98 Merge pull request #4414 from linkmauve/single-newline
Remove double newlines at the end of *_LOG messages
2016-11-02 12:20:46 +01:00
Emmanuel Gil Peyrot
c9e6b05ce9 Core: Remove double newlines at the end of *_LOG messages. 2016-11-02 02:09:33 +00:00
Markus Wick
24fa4c9e57 Merge pull request #4400 from degasus/master
JitArm64: Store the carry flag within the host flag.
2016-11-01 23:29:50 +01:00
Jules Blok
49ac577ac0 Merge pull request #4388 from ligfx/portaudio_static
CMake: build PortAudio as static library
2016-11-01 18:32:12 +01:00
degasus
5a8c52ce3a JitArm64: Fix srawx. 2016-11-01 11:55:06 +01:00
degasus
0a3e5a0fe8 JitArm64: srawix cleanups. 2016-10-31 23:40:09 +01:00
degasus
c69903eb42 JitArm64: CR field cleanup. 2016-10-31 23:40:09 +01:00
degasus
3405f5ac1a JitArm64: Optimize carry behavior of srawix. 2016-10-31 23:40:09 +01:00
degasus
0d78f5926f JitArm64: Keep carry in the host flag for all integer instructions. 2016-10-31 23:40:08 +01:00
degasus
f449541e65 JitArm64: Implement derefered carry usage. 2016-10-31 23:40:08 +01:00
degasus
4d88f5410e JitArm64: Store carry within the host carry flag. 2016-10-31 23:40:08 +01:00
Markus Wick
2afa877119 Merge pull request #4376 from leoetlino/warning-fix
Warning fixes
2016-10-31 12:57:03 +01:00
Markus Wick
b9e4370023 Merge pull request #4383 from Sintendo/minor-text-fixes
Fix minor comment typos
2016-10-31 12:51:42 +01:00
Markus Wick
4f5d0cd450 Merge pull request #4391 from Pringo/wii-remote
Change "Wiimote" to "Wii Remote" in Interface
2016-10-31 12:49:16 +01:00
Markus Wick
4eb5892e1a Merge pull request #4399 from JosJuice/unify-getgctime
EXI_DeviceIPL: Unify GetGCTime epoch handling
2016-10-31 12:47:06 +01:00
Markus Wick
d5ca153c26 Merge pull request #4401 from JosJuice/rename-getuniqueid
DiscIO/SConfig: Rename GetUniqueID to GetGameID
2016-10-31 12:39:27 +01:00
JosJuice
d80086adf5 Add debug i18n comments and revise existing i18n comments 2016-10-30 16:37:29 +01:00
JosJuice
9950209bbf EXI_DeviceIPL: Unify GetGCTime epoch handling 2016-10-29 18:30:00 +02:00
JosJuice
1081497cad DiscIO/SConfig: Rename GetUniqueID to GetGameID
We call this "game ID" everywhere else, and it's not
actually completely unique.
2016-10-29 15:24:02 +02:00
degasus
041129fb34 JitArm64: Implement mcrxr. 2016-10-29 13:36:41 +02:00
degasus
293553f317 JitArm64: Implement subfzex. 2016-10-29 13:36:39 +02:00
degasus
f1a67bb1a2 JitArm64: Implement divwx 2016-10-29 13:35:23 +02:00
degasus
a8b1347ea9 JitArm64: Implement srawx. 2016-10-29 13:34:28 +02:00
JosJuice
8155a253c6 EXI_DeviceIPL: Remove old unused code 2016-10-29 13:14:18 +02:00
Léo Lam
e89ca79059 Disable Bluetooth descriptor check if adapter is forced
Some adapters don't have the correct interface class, so they are not
recognised as Bluetooth adapters. It seems that apart from hardcoding
VIDs/PIDs (which is how it's done in the Linux kernel, and which I'm
not very fond of), there is no other way to detect if a device is a
Bluetooth adapter or not.

This change makes Dolphin skip the descriptor check when trying to find
a usable adapter for Bluetooth Passthrough if the use of a specific
adapter was forced; it is assumed that the user knows what they are
doing if they hand-edited their config file.

This allows such adapters to be used.
2016-10-28 23:55:43 +02:00
Pringo
15a41a5d83 Change OSD Messages and PanicAlerts to Say "Wii Remote" Instead of "Wiimote" 2016-10-28 14:02:58 -07:00
degasus
332d51858a JitArm64: Clean LSL 0.
This is a no-op in the instruction set.
2016-10-27 19:19:06 +02:00
degasus
694e9b4132 JitArm64: ADDI2R optimizations 2. 2016-10-27 19:19:06 +02:00
degasus
df250b84cc JitArm64: Avoid MOVI2R is possible.
Just use all kind of ADDI2R, SUBI2R, ...
They have some optimizations internally.
2016-10-26 21:54:09 +02:00
Michael Maltese
04e262513c CMake: build PortAudio as static library
Due to issues raised in #4255.
2016-10-26 11:53:14 -07:00
Pringo
4bd5674b85 Change "Wiimote" to "Wii Remote" in Interface
The usage of "Wii Remote" and "Wiimote" in the interface is inconsistent. "Wiimote" is also not a real word nor is it an official product name. Therefore I have changed instances of "Wiimote" in the UI to instead say "Wii Remote". I also made a couple of minor grammatical changes as well.

This is mostly a resubmission of #4338 but there are some minor other changes as well.
2016-10-25 19:49:41 -07:00