Commit Graph

22467 Commits

Author SHA1 Message Date
Michael M
77a6003b87 CMake: don't use -std=c++1z
Some toolchains provide enough of C++17 to conflict with Dolphin's
included backport of std::variant and std::optional. Specifically,
the recently-released macOS 10.13 SDK does not provide the <optional>
or <variant> headers, but does provide `in_place_t` in the <utility>
header.
2017-09-27 16:06:15 -07:00
PEmu1
93e1235a54 More Capitalization Changes 2017-09-27 21:37:44 +02:00
Michael M
806a8a7f32 MappingWindow: store profile filename in QComboBox userdata 2017-09-27 21:04:34 +02:00
Leo Lam
743568f9d4 Merge pull request #5984 from spycrab/qt_gecko
Qt/GameList: Implement "Gecko codes" Tab
2017-09-27 20:50:28 +02:00
Leo Lam
1501ff7f8e Merge pull request #5714 from ligfx/qtadvancedconfig
Qt: Advanced config pane
2017-09-27 20:24:48 +02:00
Léo Lam
5c2e03380f Qt: Always show the stop button in the toolbar
Reverts a previous Qt change that was likely not intended to match WX.
2017-09-26 17:44:18 +02:00
Léo Lam
8dcd5cdd1d Qt: Reduce spacing between toolbar actions 2017-09-26 17:43:51 +02:00
Léo Lam
b05207325d Qt: Fix render to main
The render widget was not hidden at the right moment.
2017-09-26 17:43:50 +02:00
Léo Lam
f28839acf9 Qt: Make toolbar buttons wider
Makes the toolbar look more comfortable instead of all squished
together, and more similar to our current look.

Instead of setting a hardcoded minimal size for buttons, MakeActions()
now uses the maximum size hint width.
2017-09-26 17:43:50 +02:00
Léo Lam
587b275c8e Qt: Increase the height of game list items
This makes the images in the game list look less weird (since they are
not squashed together anymore). The list also looks more like WX now.
2017-09-26 17:43:50 +02:00
Léo Lam
6cfd7baac9 Qt/Config: Fix inconsistent spacing between options 2017-09-26 17:43:50 +02:00
Léo Lam
ca3be07e59 Qt/GameList: Fix broken File Name column 2017-09-26 17:43:50 +02:00
Léo Lam
6db55fc2d0 Qt/About: Fix text size to better match WX 2017-09-26 17:43:49 +02:00
Léo Lam
a158b87f9b Qt/About: Fix the HTML
* remove useless units after 'zero' values
* reduce the size of 'Dolphin' to be more reasonable and look better
* avoid hardcoding the normal and small font sizes
2017-09-26 17:43:49 +02:00
Léo Lam
8f2558dc89 Qt: Simplify AboutDialog creation
Just create the AboutDialog on the stack -- the actual object lives on
the heap anyway, since Qt uses the pimpl idiom. Removes the need for
an explicit new and a special delete on close attribute.
2017-09-26 17:43:49 +02:00
Léo Lam
730b7fc833 Qt: Remove __DATE__ to make builds reproducible
See also PR #3259.

Also makes the copyright text identical to DolphinWX.
2017-09-26 17:43:49 +02:00
Michael M
9245210c49 Qt: bold graphics settings on ConfigChanged, not EmulationStateChanged
EmulationStateChanged is functionally correct right now, but
ConfigChanged expresses more semantically why the config setting gets
re-read and the widgets updated.
2017-09-25 21:48:13 +02:00
Michael M
a334ec3daa Qt: add ConfigChanged signal to Settings 2017-09-25 21:46:23 +02:00
Léo Lam
6484776920 DSP: Fix a missing mask for the predscale register 2017-09-24 20:48:29 +02:00
Léo Lam
5dae20ea9d UnitTests: Add DSP accelerator tests
Includes DSP accelerator tests for basic behaviour, and everything
that was fixed by the PR.
2017-09-24 20:48:29 +02:00
Léo Lam
de6e807364 DSP: Handle two accelerator loop edge cases properly
There are two special cases that the DSP accelerator handles in a
special way: when the end address is of the form xxxxxxx0 or
xxxxxxx1.

For these two cases, the normal overflow handling doesn't apply.
Instead, the overflow check is different, the ACCOV exception never
fires at all, the predscale register is not updated, reads are not
suspended, and if the end address is 16-byte aligned, the DSP loops
back to start_address + 1 instead of the regular start_address.
2017-09-24 20:48:29 +02:00
Léo Lam
bd03f2e46e DSP: Fix ACCOV not suspending accelerator reads
When an ACCOV is triggered, the accelerator stops reading back anything
and updating the current address until the YN2 register is set.

This is kept track of internally by the DSP; this state is not exposed
via any register.

However, we need to emulate this behaviour correctly because some
ucodes rely on it (notably AX GC); failure to emulate it will result
in reading past the end and start address for non-looped voices.
2017-09-24 20:48:29 +02:00
Léo Lam
8310a672b0 DSP: Fix the predscale update logic
When the current address is xxxxxxxf, after doing the standard ADPCM
decoding and incrementing the current address as usual to get the
next address, the DSP will update the predscale register by reading
2 bytes from memory, and add two to get the next address.

This means xxxxxx10 cannot be a current address, as the DSP goes
from 0f to 12 directly.

A more serious issue with the old code is that if the start address
is 16-byte aligned, some samples will always be skipped, even when
that should not be the case.

An easy way to test whether this behaviour is correct is to check
the current address register and the predscale after each read.

Old code:
...
ACCA=00000002, predscale=<value>
ACCA=00000003, predscale=<value>
...
ACCA=0000000f, predscale=<value>
ACCA=00000010, predscale=<another value>
ACCA=00000013, predscale=<another value>
ACCA=00000014, predscale=<another value>
...

New code (and console):
...
ACCA=00000002, predscale=<value>
ACCA=00000003, predscale=<value>
...
ACCA=0000000f, predscale=<value>
ACCA=00000012, predscale=<another value>
ACCA=00000013, predscale=<another value>
...
2017-09-24 20:48:29 +02:00
Léo Lam
003dba5275 DSP: Convert accelerator to a C++ class
Slightly cleaner, allows DSP accelerator behaviour to be
added to both HLE and LLE pretty easily, and makes the accelerator
easier to unit test.

I chose to include all accelerator state as private members, and
to expose state that is accessible via registers with getters/setters.
It's more verbose, yes, but it makes it very clear what is part of
the accelerator state and what isn't (e.g. coefs).

This works quite well for registers, since the accelerator can do
whatever it wants internally. For example, the start/end/current
addresses are masked -- having a getter/setter makes it easier to
enforce the mask.
2017-09-24 20:48:28 +02:00
Léo Lam
017bfcda2b DSP: Fix gdsp_ifx_write to take a u16 value
And change the JIT to clear the upper 16 bits when calling the write
function to work around bugs in some compilers like clang.
2017-09-24 20:48:28 +02:00
Léo Lam
7c01127ac6 DSPSpy: Add a test for accelerator loop
This adds a test ucode that can be used to check the accelerator loop
behaviour with various start/end addresses.

It's actually more of a test template than a ready to use test.
2017-09-22 20:17:38 +02:00
Léo Lam
99e36cd9d9 DSPSpy: Print ACCOV mails 2017-09-22 20:17:38 +02:00
Léo Lam
e569d3bc4a DSPSpy/Base: Handle ACCOV exceptions
This allows dspspy to show that an ACCOV happened, and to resume
accelerator reads after an ACCOV (by refreshing the YN2 register).
2017-09-22 20:17:38 +02:00
Léo Lam
05cdbccc38 DSPSpy/Base: Clean up trailing whitespace 2017-09-22 20:17:38 +02:00
Markus Wick
8ebdd62f45 Merge pull request #6084 from JosJuice/fab-placement
Android: Adjust position of floating action button
2017-09-22 08:42:21 +02:00
Leo Lam
969a72faed Merge pull request #6079 from spycrab/qt_fix_log
Qt: Fix log / log config window not being marked as hidden when closing
2017-09-21 17:29:24 +02:00
JosJuice
85ab968136 Android: Adjust position of floating action button 2017-09-21 15:48:17 +02:00
Anthony
56d0cb8d61 Cleanup var naming in ISOProperties 2017-09-20 16:46:46 -07:00
Anthony
47a2a16b77 [Qt] Fix bolding of GraphicsChoice.cpp 2017-09-20 09:13:23 -07:00
spycrab
0b43e1bcf4 Qt: Fix log / log config window not being marked as hidden when closing 2017-09-20 15:12:26 +02:00
spycrab
6c7e392f0c Qt/GraphicsSettings: Fix overriden settings not being bolded 2017-09-20 15:12:05 +02:00
Markus Wick
d1abd71ccb Merge pull request #6070 from lioncash/ogl-tcache
OGL/TextureCache: Move file statics to the TextureCache class
2017-09-20 10:19:39 +02:00
Leo Lam
c9f790dca4 Merge pull request #6072 from JosJuice/eject-disc
Add an option to eject the disc
2017-09-18 12:47:47 +02:00
Pierre Bourdon
43f067c6e1 StringUtil: support TryParse(u16*) 2017-09-18 05:04:11 +02:00
Pierre Bourdon
3f481a70be Fix sample wrapping with new DSP ADPCM decoding
Fixes possible regression from #6069.
2017-09-18 02:54:58 +02:00
Pierre Bourdon
755253948b Merge pull request #6069 from leoetlino/common-accelerator
DSP: Deduplicate the accelerator code
2017-09-17 23:20:37 +02:00
JosJuice
e4faabb763 Add an option to eject the disc 2017-09-17 11:44:48 +02:00
JosJuice
3c770693a2 DVDInterface: Remove a (mostly) outdated comment 2017-09-17 11:44:32 +02:00
JosJuice
b6bc3bc7c9 Remove DVDInterface::ChangeDiscAsHost
There isn't much point in keeping this utility function around
now that RunAsCPUThread provides a simple way of running things
on the CPU thread.
2017-09-17 11:44:27 +02:00
Lioncash
6c326e7215 InputConfigDiag: Fix building DolphinWX on the latest MSVC
const char[1] and wxString() can both be converted to multiple common
types, so this results in an ambiguous conditional expression
compilation error (C2445)
2017-09-17 02:38:12 -04:00
Lioncash
dbd9aeb210 OGL/TextureCache: use std::array for the palette shader array 2017-09-17 02:34:02 -04:00
Lioncash
6d9ed9dc32 OGL/TextureCache: Move file statics to the TextureCache class
These rely on instance state, or are used within instance-based class
member functions, so they should belong to the instance itself instead
of being file statics.
2017-09-17 02:33:56 -04:00
Léo Lam
7022a18e9a IOS/SSL: Show built-in cert error once per session
See: https://bugs.dolphin-emu.org/issues/10546
2017-09-16 20:43:49 +02:00
Léo Lam
38a7196ec6 DSP: Deduplicate the accelerator code
The logic is entirely the same; only the inputs and outputs are
different, so deduplicating makes sense.

This will make fixing accelerator issues easier.
2017-09-16 16:47:43 +02:00
Leo Lam
764e058865 Merge pull request #6063 from ligfx/queuemethodonobject
Qt QueueOnObject/RunOnObject: accept pointers to member functions
2017-09-16 16:46:44 +02:00