Commit Graph

22520 Commits

Author SHA1 Message Date
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 c0c1cb3010 IOS: Assume ticket is unpersonalised for WAD imports
The newer title dumpers don't clobber tickets anymore (that's good!),
which means personalised tickets still have the console specific data
used to decrypt the title key in them. Dolphin should ignore that data
when importing WADs, because the title key has already been decrypted,
and we must not try to decrypt it *again*.
2017-09-27 10:48:52 +02:00
Mike Harris 7db88e831e Remove prefix of tag, args and keys with packagename.
Prefixing everything with a constant packagename is not needed for
internal keys, and just adds complexity.

Rename ARGUMENT_ prefix to ARG_ to match (most) of the rest of the
codebase.

Restrict visiblity of above as much as possible.
2017-09-26 17:15:58 -07:00
Mike Harris ab90a3029d Move Save/LoadFragment's layout ID inline and private.
Fix the hack of using the layout resource ID as a save/load ID, and
instead use a proper enum.
2017-09-26 17:15:57 -07: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
Mike Harris 96525cbaaa Remove unused FRAGMENT_TAG, and move the fragment's layout ID inline.
FRAGMENT_ID wasn't actually the fragment's ID (that's misleading, and
sounds like the tag). It's actually the layout resource ID. There's no point in making that a static constant.
2017-09-25 22:47:52 -07:00
Mike Harris 252af9c1bd Remove the debug strings.xml definition of application_id.
This is handled by gradle, we don't need a separate strings.xml for
debug.
2017-09-25 22:20:52 -07: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
Leo Lam 68baf7d8fc Merge pull request #6062 from ligfx/fixqtcorestate
Settings: register the Core::State type with Qt
2017-09-15 22:38:42 +02:00
Leo Lam 93574bf016 Merge pull request #6064 from JosJuice/filesystemwidget-nullptr
DolphinQt2: Check for file systems being nullptr
2017-09-15 20:58:52 +02:00
Léo Lam 6f1b156020 VolumeGC: Add a default constructor for ConvertedGCBanner
Without this, it fails to build with the following error in g++ 7.2.0:

> constructor required before non-static data member has been parsed
2017-09-15 20:47:49 +02:00
spycrab f90e81b9db Qt/Properties: Implement "Gecko codes" tab 2017-09-15 19:45:46 +02:00
JosJuice a0cddc579f DolphinQt2: Check for file systems being nullptr
nullptr gets returned for file systems that are deemed invalid.
2017-09-15 19:44:23 +02:00
Michael M 7f812a7a03 RunOnObject: accept pointers to member functions 2017-09-15 10:36:33 -07:00
Michael M 1e27e87d93 QueueOnObject: accept pointers to member functions 2017-09-15 10:36:32 -07:00
Michael M 6191f04524 Settings: register the Core::State type with Qt 2017-09-15 10:35:38 -07:00
Michael M 4ea8166b93 Qt: Advanced config pane 2017-09-15 10:35:01 -07:00
Leo Lam 7cb8d6612c Merge pull request #5870 from JosJuice/lazy-filesystem
DiscIO: Use Common::Lazy more
2017-09-15 19:30:05 +02:00
JosJuice f294599e73 DiscIO: Use Common::Lazy for loading GC banners 2017-09-15 19:21:50 +02:00
Arthur Carlsson 79a646a67d Prevent multiple HID elements of same usage type on OSX
On OSX, iterate the HID device's elements and only store the last of
each type to accommodate for flaky hardware
2017-09-15 19:19:46 +02:00
Leo Lam 2b4bf8662a Merge pull request #5577 from ligfx/separateexpressionparsingandbinding
ControlReference/ExpressionParser: separate parsing from binding
2017-09-15 19:11:57 +02:00
spycrab 5aecd61ede Qt/Settings: Implement cheat settings 2017-09-15 19:01:23 +02:00
spycrab 8687f6aae7 Qt: Implement CheatWarningWidget 2017-09-15 19:01:23 +02:00
spycrab 8580e159fe Qt/SettingsWindow: Add SelectGeneralPane method 2017-09-15 19:01:22 +02:00
JosJuice ca36c977d9 DiscIO: Remove m_partition and m_volume from FileSystem
The last commit made m_partition unnecessary, and m_volume
has been unnecessary ever since the PR that added DiscExtractor.
2017-09-15 18:57:05 +02:00
JosJuice 38304da947 DiscIO: Use Common::Lazy for loading filesystems
This simplifies FileMonitor a lot and also lets us
clean up FilesystemPanel.
2017-09-15 18:57:05 +02:00
Leo Lam 0d07821935 Merge pull request #6024 from ligfx/coreonstatechangedcallback
Qt: use Settings::EmulationStateChanged
2017-09-15 18:45:17 +02:00
Leo Lam 30dd544931 Merge pull request #5990 from spycrab/qt_logger_cleanup
Qt: Make Log and Log Configuration widget separate from dock
2017-09-15 18:30:45 +02:00
Michael M 738acb6c07 FifoRecorder: move function definitions out of header 2017-09-14 17:28:39 -07:00
Michael M a47ce0d625 FifoRecorder: remove use of volatile 2017-09-14 17:28:39 -07:00
Michael M 60cba5722c Qt: use translations 2017-09-14 17:15:21 -07:00
Michael M bdcd6df459 InterfaceConfigPane: remove unneeded comment
It notes that using "no" for Norwegian is not allowed by wxWidgets, but
"nb" is the correct code for Norwegian Bokmål anyways.
2017-09-14 17:15:21 -07:00
Michael M b22ed9683d InterfacePane: add all interface languages 2017-09-14 17:15:21 -07:00
Michael M 294b1895ef ExpressionParser: std::move() tokens vector to parser 2017-09-14 12:53:36 -07:00
Michael M 31f1c06226 ControlReference: don't reparse expression when references are updated 2017-09-14 12:53:35 -07:00
Michael M c332580b83 ControlReference/ExpressionParser: separate parsing from binding 2017-09-14 12:53:35 -07:00
Michael M ba87a50338 ExpressionParser: add FallbackExpression node type 2017-09-14 12:53:35 -07:00
Michael M 7e74961eb1 ExpressionParser: expose ExpressionNode directly 2017-09-14 12:53:35 -07:00
Michael M 85301e2bae ParseStatus: replace NoDevice with EmptyExpression 2017-09-14 12:53:35 -07:00
Michael M 754efd75c5 ExpressionParser: remove DummyExpression 2017-09-14 12:53:35 -07:00
Michael M f1ff1e3d08 ExpressionParser: clean up ControlExpression 2017-09-14 12:53:35 -07:00
Michael M 3df945f8d0 ExpressionParser: replace bare pointers with unique_ptrs 2017-09-14 12:53:35 -07:00
Michael M c33e391d26 InputConfigDiag: don't use entire ExpressionParse namespace 2017-09-14 12:53:35 -07:00
Michael M bbb7c17235 ExpressionParser: use internal ParseResult struct instead of out-params 2017-09-14 12:53:35 -07:00
Michael M d2821e14fa ParseExpression: return a std::pair 2017-09-14 12:53:34 -07:00
spycrab 48d57f223d Qt: Make Log and Log Configuration widget separate 2017-09-14 20:56:48 +02:00
Michael M 3e1072b24d Qt: use Settings::EmulationStateChanged 2017-09-13 17:30:18 -07:00
Michael M 8e805dcbf4 Core: SetOnStoppedCallback -> SetOnStateChangedCallback 2017-09-13 17:30:18 -07:00
Michael M 22a9a08b24 Add Core::State::Starting 2017-09-13 17:30:18 -07:00
Michael M d217e797f2 move Movie::DoFrameStep to Core::DoFrameStep 2017-09-13 17:30:18 -07:00
Leo Lam 030dc11c6e Merge pull request #6058 from leoetlino/dsptool-fix
DSPTool: Fix build
2017-09-13 22:13:43 +02:00
Leo Lam 5a89d13655 Merge pull request #6059 from spycrab/qt_columns
Qt: Bring column selection up to par with Wx
2017-09-13 22:13:27 +02:00
spycrab e7318fda34 Qt: Bring column selection up to par with Wx 2017-09-13 22:05:45 +02:00
Léo Lam 12da9c8473 DSPTool: Fix build
Stub implementations of Host functions are required, as DSPTool links
against Core (which makes use of Host).
2017-09-13 17:38:23 +02:00
Lioncash 343bde2712 Software/TextureSampler: const correctness 2017-09-11 20:13:47 -04:00
gamemasterplc 4908d79a71 Remove Function Address Symbol Mask
The upper 4 bits were masked out of function addresses prior when generating symbols.
2017-09-11 15:39:22 -05:00