Commit Graph

28431 Commits

Author SHA1 Message Date
ba471c3214 Merge pull request #7048 from spycrab/qt_fs_size
Qt/FilesystemWidget: Add size column
2018-06-02 21:45:02 +02:00
396810c450 Merge pull request #7050 from lioncash/ptr
WiimoteDevice: Get rid of pointer casting in CBigEndianBuffer
2018-06-02 21:35:43 +02:00
21add26b71 Interpreter_FloatingPoint: Clear FPSCR.FI and FPSCR.FR in invalid operation cases
As explained within 179d73ac0d, the table
within the Programming Environments Manual for PowerPC lists the FI and
FR bits as cleared for invalid operation cases. So, we amend the
relevant cases here in order to be accurate to hardware.
2018-06-02 15:30:56 -04:00
b71a9e658f Interpreter_FloatingPoint: Don't store to destination in frsqrte if VE or ZE is set and a relevant exception occurs
As explained within commit a08ad82ace, if
an invalid exception occurs and VE is set, then the destination register
should remain unchanged. Ditto for when ZE is set and a zero divide
exception occurs.
2018-06-02 15:27:14 -04:00
f6c4c05d93 WiimoteDevice: Make CBigEndianBuffer's constructor explicit
Prevents implicit construction of buffers.
2018-06-02 15:10:51 -04:00
4601136b08 WiimoteDevice: Get rid of pointer casting in CBigEndianBuffer
Gets rid of more places where we can violate alignment requirements and
aliasing rules.
2018-06-02 15:02:03 -04:00
13e828fd4d WiimoteDevice: Move CBigEndianBuffer to the cpp file
This is only used internally, so we don't need to expose it in the
header. This also allows getting rid of inclusion of the byte swapping
utilities in the header as well.
2018-06-02 14:55:05 -04:00
8d1b2f9cae Merge pull request #7045 from lioncash/fres
Interpreter_FloatingPoint: Don't store to destination in fres if VE or ZE is set and a relevant exception occurs
2018-06-02 11:42:34 -07:00
c02a239a2f Merge pull request #7049 from lioncash/ipl
EXI_DeviceIPL: Minor changes
2018-06-02 11:40:27 -07:00
b1c7ce75e4 EXI_DeviceIPL: Replace superfluous virtual with override on destructor 2018-06-02 14:18:49 -04:00
0d89650950 EXI_DeviceIPL: Use std::array where applicable 2018-06-02 14:18:02 -04:00
bf4775f95f EXI_DeviceIPL: Normalize variable names
Makes naming consistent with our coding style.
2018-06-02 14:14:08 -04:00
b6203c66c2 EXI_DeviceIPL: In-class initialize data members where applicable 2018-06-02 14:08:01 -04:00
f6865117e4 Qt/FilesystemWidget: Add size column 2018-06-02 18:59:56 +02:00
f09f83c309 Merge pull request #7019 from Ebola16/VSQT
Make DolphinQT2 the default project in dolphin-emu.sln
2018-06-02 14:23:20 +02:00
62fdef0e6c Merge pull request #7046 from lioncash/priv
EXI_DeviceMic: Make data members of CEXIMic private
2018-06-02 11:53:07 +02:00
d67de4cc15 Merge pull request #6038 from stenzek/update-glslang
Externals: Update glslang to upstream commit 32d3ec3
2018-06-02 03:54:04 -04:00
bc96557ec4 Externals: Update glslang to upstream commit 32d3ec3 2018-06-02 07:34:31 +00:00
160d16f1b3 Merge pull request #7047 from spycrab/analytics_update_channel
Analytics: Report update track
2018-06-02 14:45:29 +09:00
0e8db9fd1d Analytics: Report update track 2018-06-02 05:59:03 +02:00
3906859984 EXI_DeviceMic: Remove unimplemented StreamLog function prototype 2018-06-01 20:43:28 -04:00
9e068ad2c4 EXI_DeviceMic: Make data members of CEXIMic private
Given they were only made public so that the callback could access class
state, we can simply make the callback a private static function of
CEXIMic, which allows access to members from the callback function
without making all of said members public.
2018-06-01 20:43:28 -04:00
179d73ac0d Interpreter_FloatingPoint: Clear FPSCR.FI and FPSCR.FR if an SNaN is an input to fres
In the PEM manual, within Table 3-12, which lists what should occur for
invalid operation exceptions, the FPSCR.FI and FPSCR.FR bits are listed
as "Cleared" for when FPSCR.VE is unset and set. So we clear these bits
as well to match hardware behavior.
2018-06-01 20:21:13 -04:00
a08ad82ace Interpreter_FloatingPoint: Don't store to destination in fres if VE or ZE is set and a relevant exception occurs
In the PowerPC Microprocessor Family: The Programming Environments
Manual for 32 and 64-bit Microprocessors, in section 3.3.6.1, Table
3-12 lists what should occur if an invalid operation exception occurs in
situations where VE is set and when VE is not set. In the case where VE
is set, it lists the frD as "Unchanged". It also lists the FPRF flags as
"Unchanged".

Further down in Table 3-13, the listings for what should occur when zero
divide exceptions occur is listed, both for when ZE is set, and when it
isn't. When ZE is set, it lists frD as "Unchanged". It also lists the
FPRF flags as "Unchanged" as well.

This also alters the code so that we don't even calculate the result if
we don't need to compute it, making it a little bit less wasteful.
2018-06-01 20:21:09 -04:00
69abaf3ec4 WiiSave: Merge Header and DataBinHeader to reduce noise
DataBinHeader is not used anywhere in the code other than via Header,
so let's merge them to reduce noise when accessing header fields
(currently we have to do header.hdr which looks silly).
2018-06-01 23:45:58 +02:00
210377816d WiiSave: Get rid of some magic numbers
It would make sense for 0x80 and 0xf0c0 to be respectively
sizeof(BkHeader) and sizeof(Header) as Nintendo is signing anything
that comes after the header, including the BkHeader.
2018-06-01 23:44:24 +02:00
8eafd1928e WiiSave: Move user interaction to UI frontends 2018-06-01 20:46:35 +02:00
4df266f943 WiiSave: Use the correct length for paths
Paths can never exceed 0x40 characters as this is the maximum length
that is allowed by IOS (and probably the common FS library too).
2018-06-01 20:46:35 +02:00
8af16fdd28 WiiSave: Use an enum class for save file type 2018-06-01 18:58:34 +02:00
fcae27981a Merge pull request #7044 from JosJuice/android-refresh-all-fragments
Android: Refresh all fragments, not just the selected one
2018-06-01 09:53:19 -07:00
1b127bdf33 Android: Refresh all fragments, not just the selected one
This fixes the oddity of having to manually refresh after adding a
folder that contains games for a different tab than the one you're on.
2018-06-01 18:17:51 +02:00
a9684b5c67 Merge pull request #7041 from spycrab/qt_dbg_bselect
Qt/MemoryWidget: Allow operating on columns
2018-06-01 09:05:52 -07:00
d935f78692 Merge pull request #7043 from JosJuice/gamefile-includes
GameFile: Include necessary DiscIO headers
2018-06-01 09:05:10 -07:00
064d173ec4 Merge pull request #7042 from spycrab/qt_conf_prompt
Qt: Exit exclusive fullscreen on confirmation prompt
2018-06-01 17:56:05 +02:00
3b59ebb226 Qt: Exit exclusive fullscreen on confirmation prompt 2018-06-01 17:40:07 +02:00
4e010912cd Android: Consistently use description 2018-06-01 09:58:34 -04:00
533a49460a GameFile: Include necessary DiscIO headers 2018-06-01 14:19:16 +02:00
816c80c992 Translation resources sync with Transifex 2018-06-01 09:39:48 +02:00
94953670f2 WiiSave: Move overwrite prompt to Import
WriteHeader should just write the header and not do anything else.
2018-06-01 00:14:48 +02:00
5f5b05f3dc Qt/MemoryWidget: Allow operating on columns 2018-05-31 22:07:05 +02:00
a46a8dd378 WiiSave: Refactor import/export code
The current WiiSave code is extremely messy, as it exposes all kinds of
implementation details in the header (including internal struct
definitions and magic numbers that don't have to be).

The read/write code is intermingled, so it's hard to tell which members
are used, or when/where they are set at all.

It also implicitly relies on some functions being called in a specific
order since it doesn't seek manually every time, which makes the code
even more fragile.

The logic is also hardcoded to only support bin->nand or nand->bin,
even though it would be useful to support nand->nand (for the
Movie save copying code, for example).

This commit attempts to solve these problems by getting rid of the
WiiSave class:

* Read/write code is moved to new Storage classes (NandStorage and
  DataBinStorage) with small, clear functions that do one and only
  one thing.

* The import/export logic was refactored into a generic Copy function
  that takes two storages as parameters.

* The existing import and export functions are now just small wrappers
  that call Copy with the appropriate storages.
2018-05-31 20:52:01 +02:00
60dd2553c6 Merge pull request #7033 from lioncash/jitarm
JitArm64_BackPatch: Correct usage of an invalidated iterator after a std::map erase() call in HandleFastmemFault()
2018-05-31 18:05:47 +02:00
a9a03d1565 Merge pull request #7034 from lioncash/override
JitArm64/Jit_Util: Add missing override specifiers
2018-05-31 08:48:35 -07:00
bd3d2a89f3 Merge pull request #7038 from stenzek/update-vulkan-headers
Externals: Update Vulkan headers to 1.1.75
2018-05-31 08:44:43 -07:00
dd77ace56a Merge pull request #7005 from lioncash/div
Interpreter_FPUtils: Correct setting the FPSCR's zero divide exception flag in the 0/0 case in NI_div()
2018-05-31 11:22:45 -04:00
f1b7259446 Merge pull request #6978 from lioncash/fcti
Interpreter_FloatingPoint: Handle NaN flag setting within fctiw and fctiwz
2018-05-31 11:22:04 -04:00
c05dd2ee56 Externals: Update Vulkan headers to 1.1.75 2018-05-31 11:37:23 +00:00
5f48c9fc01 Merge pull request #7037 from spycrab/qt_adapter_tooltip
Qt/GeneralWidget: Show tooltip when adapters are not supported by the backend
2018-05-31 03:56:41 +02:00
8e5a96fcfc Qt/GeneralWidget: Show tooltip when adapters are not supported by the backend 2018-05-31 03:52:18 +02:00
9337aa4eea Merge pull request #7036 from spycrab/qt_memory_stretch
Qt/MemoryWidget: Fix sidebar items being stretched out
2018-05-30 23:32:17 +02:00