Commit Graph

19335 Commits

Author SHA1 Message Date
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
Sarkie
8c5c7f8d2a Updated gradle to latest version 2017-01-17 10:19:39 +00:00
Matthew Parlane
753455b379 Merge pull request #4671 from endrift/fix-libusb
InputCommon: Fix FreeBSD 11 libusb incompatibilities
2017-01-17 21:43:08 +13:00
Jeffrey Pfau
c5b3b52d55 InputCommon: Fix FreeBSD 11 libusb incompatibilities 2017-01-17 00:30:08 -08: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
Matthew Parlane
8153772bfe Merge pull request #4662 from lioncash/memview
MemoryView: Separate memory string composition from OnPaint
2017-01-17 11:31:16 +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
Matthew Parlane
ed7589cb0f Merge pull request #4656 from hthh/cmpr-fixes
TextureDecoder: Fix off-by-one errors in CMPR
2017-01-17 11:05:42 +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
Markus Wick
1a01aee66e Merge pull request #4663 from lioncash/dsp-init
HW/DSP: Use member initializers with structs/unions where applicable
2017-01-15 23:51:13 +01:00
Markus Wick
23104b6939 Merge pull request #4655 from Armada651/vertex-depth-no-uid
VertexShaderGen: Remove the need for an extra UID.
2017-01-15 23:02:13 +01:00
Lioncash
c6ec5de659 HW/DSP: Use member initializers with structs/unions where applicable 2017-01-15 16:03:12 -05:00
Lioncash
3848c2a018 MemoryView: Get rid of a type-punning cast from u32 to float
This is undefined behavior. The bits should be memcpyed.
2017-01-15 12:16:41 -05:00
Lioncash
2108bf1be6 MemoryView: Separate memory string composition from OnPaint
OnPaint should only care about drawing data, not directly creating
said data.
2017-01-15 12:13:08 -05:00
Pierre Bourdon
28f0d8e8a7 Merge pull request #4658 from lioncash/bits
Common: Add bit utility header
2017-01-15 17:23:30 +01: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
hthh
88d52b4d69 TextureDecoder: Deduplicate some utility code 2017-01-15 20:23:26 +11:00
Matthew Parlane
e727e91be6 Merge pull request #4660 from JosJuice/gfx-debug-strings
Remove seemingly unused debug UI strings
2017-01-15 11:53:25 +13:00
JosJuice
2052bb8bea Remove seemingly unused debug UI strings
wxChoice controls don't display any titles.

By the way, why is the file called DebuggerPanel.cpp
even though it implements the Video debug panel specifically?
2017-01-14 22:34:49 +01:00
Pierre Bourdon
dd9e6760c4 Merge pull request #4659 from leoetlino/chunkfile-set
Fix ChunkFile for std::set
2017-01-14 20:11:00 +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
Léo Lam
ea0335f7c1 Fix ChunkFile for std::set
Without this, attempts to savestate std::set will fail with an error
about dropping the const qualifier.

<Lioncash> leoetlino: I'll try to break it down: So, when you do a
 ranged-for on a container, it's essentially syntactic sugar over begin
 and end iterators. std::set is an associative container where the key
 type is the same as the value type, and so it's required that all
 iterator functions return constant iterators. If this wasn't a
 requirement, it would allow changing the ordering of elements from
 outside of the set's API (this is bad).
2017-01-14 19:00:19 +01:00