Commit Graph

28359 Commits

Author SHA1 Message Date
Lioncash 3da751f054 Interpreter_FPUtils: Set FPSCR.VXSNAN if either operand to NI_mul() is a signaling NaN
If either of the operands are signaling NaNs, then an invalid operation
exception needs to be indicated within the FPSCR.

This corrects SNaN flag setting for fmul, fmuls, ps_mul, ps_muls0, and
ps_muls1.
2018-05-25 12:15:02 -04:00
Stenzek 57976c947b ShaderGen: Don't emit integer outputs when logic op is unsupported
This may have been causing issues for D3D10 hardware, where logic op was
not supported.
2018-05-26 00:09:29 +10:00
Stenzek 9a5c2119e5 ShaderCache: Remove unused UID bits before inserting into shader map 2018-05-26 00:09:10 +10:00
Stenzek 640bfb8135 VideoConfig: Add a field for indicating logic op support in the backend 2018-05-26 00:07:20 +10:00
Léo Lam 3d44dc3981
Merge pull request #6958 from lioncash/rsqrte
Interpreter_FloatingPoint: Handle SNaN flag setting in frsqrte
2018-05-25 15:11:28 +02:00
Léo Lam 56217fd42f
Merge pull request #6956 from lioncash/flag
Interpreter_FPUtils: Set the FPSCR.VX bit if any invalid operation exception bits are set
2018-05-25 15:10:05 +02:00
Léo Lam 9d1785718f
Merge pull request #6955 from lioncash/nan
Interpreter_FloatingPoint: Set FPSCR.VXSNAN if input to fres is a signaling NaN
2018-05-25 15:09:04 +02:00
Léo Lam 647309a650
Merge pull request #6959 from leoetlino/gcc
ES/Formats: Work around a GCC bug
2018-05-25 13:08:57 +02:00
spycrab 89ec040b1a
Merge pull request #6962 from spycrab/qt_renderwidget_fixes
Qt: Fix stop emulation confirmation prompt bugs
2018-05-25 10:09:44 +02:00
spycrab 0aba87bbde
Merge pull request #6963 from spycrab/qt_panicalerts
Qt/InterfacePane: Toggle panic handlers instantly
2018-05-25 10:08:20 +02:00
Helios747 425e9b4818 [Readme] Updated system requirements 2018-05-25 00:38:15 -07:00
spycrab 39706748e7 Qt/InterfacePane: Toggle panic handlers instantly 2018-05-25 04:17:04 +02:00
spycrab fc928ddfc8 Qt: Show exit confirmation prompt on main window 2018-05-25 03:53:40 +02:00
spycrab 7931d2d00d Qt: Fix game not getting paused when exit prompt is open 2018-05-25 03:53:05 +02:00
spycrab 97383645e7 Qt/InfoWidget: Don't show apploader date if it's not present 2018-05-25 03:23:56 +02:00
spycrab a19e5b3f7a Qt/InfoWidget: Don't show banner details if no data is present 2018-05-25 03:23:56 +02:00
Léo Lam 7c6844e895 ES/Formats: Work around a GCC bug
In old GCC versions, capturing 'this' does not work for some lambdas.
The workaround is to not use auto for the parameter (even though the
type is obvious). This can be dropped once we require GCC 7.
2018-05-24 21:27:40 +02:00
Lioncash 155bcb1649 Interpreter_FloatingPoint: Set FPSCR.VXSNAN if the input to frsqrte is a signaling NaN
If the input is a signaling NaN, then we need to signal that via setting
the FPSCR.VXSNAN bit. We also shouldn't update the FPRF flags if
FPSCR.VE is set.
2018-05-24 14:37:09 -04:00
Lioncash 31504f85a7 Interpreter_FloatingPoint: Don't update FPRF in frsqrte in certain exceptional cases
If the FPSCR.VE bit is set and an invalid operand is passed in, then the FPRF
shouldn't be updated. Similarly this is also the case when the FPSCR.ZE bit
is set and negative or positive zero is passed in as the operand.
2018-05-24 14:32:40 -04:00
spycrab a68b8202e1
Merge pull request #6957 from spycrab/qt_bold_header
Qt/GameList: Fix bold header when selecting a game
2018-05-24 17:55:55 +02:00
spycrab a0b2cdbffc Qt/GameList: Fix bold header when selecting a game 2018-05-24 13:48:14 +02:00
Lioncash 34adc529a7 Interpreter_FloatingPoint: Don't update the FPRF in fres in certain exceptional cases
If FPSCR.ZE is set and a divide by zero exception is signaled, then the
FPRF shouldn't be updated with a result. Similarly, if the input is an
SNaN and FPSCR.VE is set, then the FPRF shouldn't be updated.
2018-05-23 23:31:58 -04:00
Lioncash dfea5cb00d Interpreter_FPUtils: Set the FPSCR.VX bit if any invalid operation exception bits are set
The VX bit is intended to be a summary bit indicating the occurrence of
any kind of invalid operation. Therefore, whenever an invalid operation
exception is set, also set VX.

This corrects our CR flag setting for multiple instructions in certain
scenarios. This corrects flag setting cases in fadd, fadds, fctiw, fctiwz, fdiv,
frsp, frsqrte, fsub, and fsubs (and technically every floating-point
instruction that we make more accurate in the future with regards to
flag setting).
2018-05-23 21:53:37 -04:00
Lioncash 8a79f9099c Interpreter_FloatingPoint: Set FPSCR.VXSNAN if input to fres is a signaling NaN
fres is defined as having the VXSNAN bit set if an input to the
instruction is a signaling NaN
2018-05-23 21:13:02 -04:00
spycrab a60bba37cd
Merge pull request #6953 from spycrab/qt_map_unresponsive
Qt/MappingButton: Fix window becoming unresponsive after mapping
2018-05-24 01:21:53 +02:00
spycrab 4c1425b419
Merge pull request #6952 from spycrab/qt_map_all
Qt/Mapping: Add option to map all devices at once
2018-05-24 01:21:23 +02:00
spycrab 574c609709 Qt/Mapping: Add option to map all devices at once 2018-05-24 01:13:47 +02:00
spycrab c39f00194d Qt/MappingButton: Fix window becoming unresponsive after mapping 2018-05-24 00:01:05 +02:00
Léo Lam dfb1dbad47
Merge pull request #6951 from JosJuice/game-inis-2018-05-23
Update game INIs
2018-05-23 21:32:22 +02:00
spycrab 7620e1d5f8
Merge pull request #6950 from leoetlino/nand-path
Port FS, SD and dump path to onion config
2018-05-23 20:39:23 +02:00
JosJuice e6ed919672 Remove enforced inaccurate settings from Lemony Snicket game INI
I have no idea why these were here... And the SkipIdle setting
doesn't even exist anymore.
2018-05-23 19:45:20 +02:00
JosJuice a9ffd13305 Game INI updates
https://bugs.dolphin-emu.org/issues/7104
https://bugs.dolphin-emu.org/issues/8452
https://bugs.dolphin-emu.org/issues/9040
https://bugs.dolphin-emu.org/issues/10554
https://bugs.dolphin-emu.org/issues/10059
https://bugs.dolphin-emu.org/issues/10155
https://bugs.dolphin-emu.org/issues/10324
https://bugs.dolphin-emu.org/issues/10758
https://bugs.dolphin-emu.org/issues/10759
https://bugs.dolphin-emu.org/issues/10930
https://github.com/dolphin-emu/dolphin/pull/5702#issuecomment-318903278
https://github.com/dolphin-emu/dolphin/pull/5717
https://forums.dolphin-emu.org/Thread-big-brain-academy-problem
https://forums.dolphin-emu.org/Thread-netflix-instant-streaming-disc-testing
https://forums.dolphin-emu.org/Thread-wii-new-carnival-games?pid=469822#pid469822
2018-05-23 19:43:46 +02:00
Léo Lam c99ac40700 Port FS, SD and dump path to onion config
This ports the Wii filesystem root, Wii SD card path and dump path
settings to the new config system (OnionConfig).

My initial plan was to wait until DolphinWX was removed before porting
most of the Main (Core, DSP, General) settings to onion config, but
I've decided to submit a small part of those changes to fix
[issue 10566](https://bugs.dolphin-emu.org/issues/10566).

Removes the need to manually set the FileUtil path in the UI frontends
and gets rid of some more members that don't really belong in SConfig.

Also fixes a bug which would cause the dump path not to get created
after change.
2018-05-23 16:07:18 +02:00
Léo Lam 93f49b1ca4 Config: Make Load() and Save() slightly faster
Only invoke config changed callbacks from Config::Save, not
Layer::Save. The latter results in callbacks being called
once per layer, up to 7 times per save.
2018-05-23 16:07:18 +02:00
JosJuice 517af3f044 Add vertex rounding to game INIs for certain titles
https://bugs.dolphin-emu.org/issues/10186
2018-05-23 16:05:30 +02:00
JosJuice 8ff3124e5e Remove remaining EmuState sections from game INIs 2018-05-23 15:58:07 +02:00
JosJuice 052ac16650
Merge pull request #6948 from leoetlino/testing
Core: Only init Wii FS contents in Wii mode
2018-05-23 13:53:33 +02:00
Léo Lam 4fd1674c49 Core: Only init Wii FS contents in Wii mode
There's no filesystem when not in Wii mode, so... bad things
would happen.
2018-05-23 13:39:53 +02:00
Léo Lam da03ff2e25
Merge pull request #6944 from leoetlino/init-fs-contents
Move Wii FS content init to happen after Boot
2018-05-23 11:37:10 +02:00
JosJuice 58743416bb Make the support for unencrypted Wii disc images less broken
These disc images are only used on dev units and not retail units.
There are two important differences compared to normal Wii disc images:

- The data starts 0x8000 bytes into each partition instead of 0x20000
- The data of a partition is stored unencrypted and contains no hashes

Our old implementation was just guesswork and doesn't work at all.
According to testing by GerbilSoft, this commit's implementation
is able to read and extract files in the filesystem correctly,
but the tested game still isn't able to boot. (It's thanks to their
info about unencrypted disc images that I was able to make this commit.)
2018-05-23 08:40:37 +02:00
spycrab 51410b7672
Merge pull request #6946 from spycrab/qt_rob
Qt/RunOnObject: Fix no result being returned
2018-05-23 01:15:59 +02:00
spycrab 1f3df1811b Qt/RunOnObject: Fix no result being returned 2018-05-23 01:07:08 +02:00
spycrab db65e44335
Merge pull request #6882 from spycrab/qt_fifo_analyzer
Qt/FIFOPlayer: Implement Analyzer
2018-05-23 00:03:20 +02:00
spycrab 94e97d47a0 Qt/FIFOPlayer: Implement Analyzer 2018-05-22 23:51:01 +02:00
Lioncash 6a4f12d785 JitArm64: Correct negative overflow handling for divw 2018-05-22 13:52:56 -04:00
Lioncash 5abe6c264a Jit64: Correct negative overflow handling for divw 2018-05-22 13:52:51 -04:00
Léo Lam 0e9255c469
Merge pull request #6932 from sepalani/debug-patches
DebugInterface: MemoryPatches methods added
2018-05-22 19:15:51 +02:00
Léo Lam 43680f314c
Merge pull request #6942 from lioncash/const
BreakPoints: Make OverlapsMemcheck() a const member function
2018-05-22 19:14:27 +02:00
Léo Lam 593f58be6c Move Wii FS content init to happen after Boot
Initialising Wii filesystem contents should be done after Boot and
not in HW to ensure that we operate with the correct title context
and to make sure required title directories exist (so that Movie and
Netplay code can copy data from and to the temporary NAND).
2018-05-22 19:05:45 +02:00
Lioncash 2ca1ac3370 Interpreter_Integer: Correct negative overflow handling for divw
Previously, given cases such as 0x80000000 / 0xFFFFFFFF we'd incorrectly
set the destination register value to zero. If the dividend is negative,
then the destination should be set to -1 (0xFFFFFFFF), however if the
dividend is positive, then the destination should be set to 0.

Note that the 750CL documents state that:

"If an attempt is made to perform either of the divisions --
0x80000000 / -1 or <anything> / 0, then the contents of rD are
undefined, as are the contents of the LT, GT, and EQ bits of the CR0
field (if Rc = 1). In this case, if OE = 1 then OV is set."

So this is a particular behavior of the hardware itself.
2018-05-22 10:39:08 -04:00