Commit Graph

22780 Commits

Author SHA1 Message Date
Lioncash b0efcdc8ef Interpreter: Get rid of static state within SingleStepInner()
Given how the hooking operates, we may not execute an instruction.
Instead of making the state a static local to the function, just make it
part of the lifecycle of the Interpreter class.
2018-03-25 21:30:00 -04:00
Lioncash c4a597171c MMU: Make XCheckTLBFlag an enum class 2018-03-25 19:51:47 -04:00
Lioncash 9967c24f5d MMU: Make TLBLookupResult an enum class 2018-03-25 19:44:14 -04:00
Lioncash 0f25627614 DSPCodeUtil: Don't return data via an out parameter
We can just return directly in these cases.
2018-03-25 18:55:08 -04:00
Lioncash e42db3594b DSPAssembler: Make error code enum an enum class
Prevents the error codes from littering the surrounding scope.
2018-03-25 18:19:08 -04:00
Lioncash 8c421ffbb7 DSPTables: Remove opc_t typedef
This was only ever used by the DSP assembler, and even then it was
sparsely used. Get rid of it to be consistent with types in other
sections of the DSP code.
2018-03-25 17:53:23 -04:00
Lioncash 2861e8f868 x64Emitter: Clean up constructor and destructors of XEmitter
In-class initializes members, defaults the default constructor and
virtual destructor, and puts members in the initializer list.
2018-03-25 16:50:02 -04:00
Lioncash 7bd41a3b55 Jit64/Jit_Integer: Remove dead code in arithXex()
The conditional this code is within already checks whether d == b, so this
conditional will never be true.
2018-03-25 15:35:02 -04:00
Lioncash efcdb3debb JitArm64/JitAsm: Remove usages of the JIT global
With this, the entire ARM JIT makes no use of the JIT global whatsoever.
2018-03-25 15:23:49 -04:00
Lioncash a45631c4ca Interpreter_LoadStore: Remove unnecessary casts
These aren't necessary as the type being stored into a u32 are of the
same signedness and are smaller in data size, so there's no truncation
being performed.
2018-03-25 15:09:32 -04:00
Stenzek 2f1a7cbee1 Implement "Skip" ubershader mode
Skip ubershader mode works the same as hybrid ubershaders in that the
shaders are compiled asynchronously. However, instead of using the
ubershader to draw the object, it skips it entirely until the
specialized shader is made available.

This mode will likely result in broken effects where a game creates an
EFB copy, and does not redraw it every frame. Therefore, it is not a
recommended option, however, it may result in better performance on
low-end systems.
2018-03-26 01:57:41 +10:00
Léo Lam 5c83e18fbd
Merge pull request #6515 from lioncash/cast
Interpreter_FPUtils: Get rid of a pointer cast
2018-03-25 11:27:38 +02:00
Léo Lam e9976c27c0
Merge pull request #6518 from lioncash/namespace
Interpreter: Don't dump the MathUtils namespace into scope in Interpreter_FloatingPoint and Interpreter_Paired
2018-03-25 11:24:24 +02:00
Lioncash 48e2e9a41d CachedInterpreter: Use using aliases instead of typedef 2018-03-25 02:57:25 -04:00
Lioncash 9829083241 CachedInterpreter: Use an enum class for instruction type 2018-03-25 02:57:16 -04:00
Lioncash 89df65aa25 Interpreter_Integer: Correct precedence of overflow check in nego
The overflow check needs to occur before the condition register update
due to the fact that the summary overflow (SO) bit is used in the
updating of the condition register. If we set any overflow bits after
updating the CR, then we can potentially incorrectly report that an
overflow did not happen (in the case the SO bit wasn't set previously).
2018-03-24 20:48:05 -04:00
spycrab 3f1430587c Qt/RenderWidget: Draw background on pause 2018-03-25 01:26:50 +01:00
Lioncash 96014e74a3 Interpreter_Paired: Don't dump the entire MathUtils namespace into scope
Functions from the namespace are only used four times within the entire
file.
2018-03-24 19:42:14 -04:00
Lioncash 46f61a48c7 Interpreter_FloatingPoint: Don't dump the entire MathUtils namespace into scope
Given functions from the MathUtils namespace are only used six times in
the whole file, dumping the namespace seems a little excessive.
2018-03-24 19:40:22 -04:00
Lioncash 27611d55ff Interpreter_FPUtils: Get rid of a pointer cast
This is undefined behavior according to the standard. We can just use
the built in means of retrieving a quiet NaN.
2018-03-24 19:33:44 -04:00
Léo Lam 328ac424c0
Merge pull request #6517 from lioncash/ppctables
PPCTables: Namespace all exposed functions
2018-03-24 22:17:36 +01:00
Lioncash 8a7abd72b4 PPCTables: Remove prefixed underscores from parameter names 2018-03-24 16:46:49 -04:00
Lioncash 2381aeecc3 PPCTables: Namespace all exposed functions
It's somewhat inconsistent to have two straggler functions outside the
namespace.
2018-03-24 16:46:12 -04:00
Lioncash 397b3fb976 CPUCoreBase: Make the GetName() member function const qualified
This function should have no need to modify internal class state.
2018-03-24 16:17:39 -04:00
Lioncash c738ddc4aa CPUCoreBase: Default the virtual destructor 2018-03-24 16:09:19 -04:00
Léo Lam 5369d3c9f1
Merge pull request #6513 from lioncash/dead-code
Interpreter: Remove dead code
2018-03-24 20:09:25 +01:00
Lioncash ef6e747a68 PowerPC: Remove commented out PanicAlert 2018-03-24 14:52:22 -04:00
Lioncash 3dc3b0caa5 Interpreter_LoadStore: Remove commented out code
Also removes long separation lines that aren't really necessary.
2018-03-24 14:49:18 -04:00
Lioncash f9e0645b99 Interpreter_SystemRegisters: Remove commented out code 2018-03-24 14:45:46 -04:00
Lioncash 288b579c09 Interpreter_Integer: Remove commented out code in subfic 2018-03-24 14:43:25 -04:00
Lioncash 01308330d9
InputCommon/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-03-24 14:13:53 -04:00
Lioncash 680ceb7f43
DiscIO/CMakeLists: Migrate off add_dolphin_library
Continues the migration work started in 3a4c3bbe01
2018-03-24 13:54:06 -04:00
Léo Lam 2d0d4fee28 Qt: Fix controller window margin
Reduces wasted space and makes the whole window (barely) fit on my
laptop screen again. (Regression from the scroll wrap changes)
2018-03-24 18:45:10 +01:00
Léo Lam bf05c74f6b Qt: Fix GameCube config pane spacing 2018-03-24 18:18:17 +01:00
Léo Lam 752098de22 Qt: Fix search bar widget spacing
With setMargin(0), the widgets look awkwardly close to the window edges
2018-03-24 18:09:46 +01:00
Léo Lam 8d0c15bb97 Qt/Search: Simplify placeholder text
A search box is a common UI element. We don't need to explicitly tell
the user that they need to type a search term. Also,

Let's use the common "Search <items>..." placeholder text instead
and make the string shorter for localisation.
2018-03-24 18:02:17 +01:00
Léo Lam f7c9d2fd4d Qt: Show code pane by default in debug mode
Otherwise, it's confusing because the option seems to do nothing
especially if the user is used to the DolphinWX debugger.
2018-03-24 17:53:46 +01:00
spycrab 806990968d Qt: Implement "Auto-Adjust Window Size" 2018-03-24 16:48:46 +01:00
Léo Lam a838d13fd1
Merge pull request #6504 from Ebola16/OSD
Rename "On-Screen Messages" to "On-Screen Display Messages"
2018-03-24 09:59:14 +01:00
Léo Lam 305b3dc835
Merge pull request #6497 from spycrab/qt_file
Qt: Implement missing "File" menu items
2018-03-24 09:10:49 +01:00
Léo Lam 4c5efb0f3a
Merge pull request #6508 from lioncash/cmake-common
Common/CMakeLists: Migrate off add_dolphin_library
2018-03-24 09:08:20 +01:00
Léo Lam 37dbb2e181
Merge pull request #6509 from spycrab/qt_shader_gen
Qt: Show shader generation window
2018-03-24 09:03:16 +01:00
Markus Wick 3ab88742fd
Merge pull request #6492 from lioncash/nop
Jit_Integer: Make NOP check more flexible for ori and expand NOP checking to oris, xori, and xoris
2018-03-24 08:53:21 +01:00
spycrab cb71b06afc Qt: Show shader generation window 2018-03-24 03:02:47 +01:00
Mat M 5669841e83
Merge pull request #6505 from lioncash/arm
Arm64Emitter: Minor cleanup
2018-03-23 19:25:50 -04:00
Lioncash f889cae8c4
Arm64Emitter: Satisfy unrelated linter issues that cropped up by modifying the cpp file 2018-03-23 19:17:44 -04:00
Lioncash 91cefe6c8a
Arm64Emitter: Make IsImmArithmetic, IsImmLogical, FPImm8ToFloat, and FPImm8FromFloat internally linked
These aren't used anywhere outside of the emitter. Centralizes them under an anonymous namespace.
2018-03-23 19:17:26 -04:00
Lioncash 2548ccda8e
Common/CMakeLists: Migrate off add_dolphin_library
Continues the migration work that was started in 3a4c3bbe01
2018-03-23 19:08:30 -04:00
spycrab 8ebb3a015e Qt: Update analytics checkbox after initial prompt 2018-03-23 23:28:17 +01:00
spycrab f3e6f0f2d4 Updater: Increase request timeout to 30s 2018-03-23 22:25:38 +01:00
Lioncash b11c237c43
Arm64Emitter: Remove unnecessary V8_UINT64_C preprocessor macro
UINT64_C is provided via <cstdint>, so we can just use that instead.
2018-03-23 13:31:48 -04:00
Lioncash 03671a5534
Arm64Emitter: Remove duplicate IsPowerOf2 function
We can just use the generified version in MathUtil.
2018-03-23 13:31:44 -04:00
Ryan Meredith 976347c65d Rename "On-Screen Messages" to "On-Screen Display Messages" 2018-03-23 12:29:03 -04:00
Pierre Bourdon 22d851d930
Merge pull request #6500 from spycrab/qt_respect_portable
Qt: Make QSettings use the user config directory (Make it respect portable.txt)
2018-03-23 17:25:28 +01:00
JosJuice 9c70036105
Merge pull request #6503 from lioncash/brace-warn
PixelShaderGen/UberShaderPixel: Silence -Wmissing-braces warnings
2018-03-23 15:29:39 +01:00
Lioncash a52cc8d52b
PixelShaderGen/UberShaderPixel: Silence -Wmissing-braces warnings 2018-03-23 10:06:27 -04:00
Lioncash 2ab29a40eb
AbstractFramebuffer: Silence a -Wlogical-op-parentheses warning in ValidateConfig() 2018-03-23 09:58:19 -04:00
Lioncash 79f40fb8d7
MathUtil: Generify IsPow2
This will allow it to also be used in the AArch64 emitter.
2018-03-23 09:50:49 -04:00
spycrab 68733ac6c1 Qt: Make QSettings use the user config directory 2018-03-23 12:50:01 +01:00
Lioncash 38f045cee5
DolphinQt2/GameCubePane: Correct duplicate condition in LoadSettings()
Also turns a std::string const reference into a value instance.
While this is well-defined, it does look out of place, given a new string
is being created.
2018-03-23 07:38:26 -04:00
Pierre Bourdon 894d4c99a8
Merge pull request #6495 from lioncash/namespace
PowerPC: Namespace all header contents for PowerPC.h
2018-03-23 12:09:09 +01:00
Pierre Bourdon 27ffc8a69d
Merge pull request #6498 from lioncash/cmake
AudioCommon/CMakelists: Migrate off add_dolphin_library
2018-03-23 12:07:00 +01:00
Pierre Bourdon 1ac7452129 AutoUpdater: Generate basic HTML changelog. 2018-03-23 11:10:25 +01:00
Pierre Bourdon 1f3310874b AutoUpdater: Don't show a spinning wheel cursor when delaying update 2018-03-23 11:10:25 +01:00
Pierre Bourdon 9628333b86 AutoUpdater: support optionally restarting Dolphin after update 2018-03-23 11:10:25 +01:00
Pierre Bourdon 773ec975f3
Merge pull request #6489 from spycrab/qt_updater
Qt: Improve and better integrate updater
2018-03-23 11:08:48 +01:00
spycrab 95a5a51e55 Qt: Implement missing "File" menu items 2018-03-23 10:58:54 +01:00
spycrab ee3d64145c Qt: Improve updater 2018-03-23 10:42:40 +01:00
Lioncash fc16a78f6a Jit_Integer: Handle NOP case for xori and xoris
Like ori and oris, xori and xoris can also be used to introduce a NOP.
In that case, just don't do anything.
2018-03-22 22:51:43 -04:00
Lioncash 007f9e5309 Jit_Integer: Handle NOP case for oris as well
Like ori, this can also be used as a NOP under the same conditions.
2018-03-22 22:49:02 -04:00
Lioncash 42fce74f39 Jit_Integer: Handle NOP case where RA == RS for ori
ori can be used as a NOP if the two register operands are the same, and
the immediate is zero, not only if the two register operands are r0.

Also removes the check for !inst.Rc, as ori only has one encoding, and
said encoding doesn't even have a record bit in it.
2018-03-22 22:47:19 -04:00
Lioncash b96bbc8f8d
AudioCommon/CMakelists: Migrate off add_dolphin_library
Continues the changes that were introduced in 3a4c3bbe01
2018-03-22 22:07:11 -04:00
Mat M 71846a6daa
Merge pull request #6469 from lioncash/cmake
Core/CMakeLists: Migrate off add_dolphin_library
2018-03-22 21:52:44 -04:00
Lioncash 4c97deb364 PowerPC: Namespace all header contents for PowerPC.h
Puts everything under the same namespace. Previously the header was only
partially namespaced, which is inconsistent.
2018-03-22 19:01:47 -04:00
spycrab 196a1dcce4 Qt/CheatCodeEditor: Fix valid, encrypted AR codes not being accepted 2018-03-22 23:42:20 +01:00
Léo Lam 5e76f3a6d4
Merge pull request #6488 from aldelaro5/symbols-log
LOG: Add a log type for Symbols
2018-03-22 22:06:04 +01:00
Markus Wick a4511129e7
Merge pull request #6491 from lioncash/sub-oe
Interpreter_Integer: Handle OE bit for subf, subfc, subfe, subfme, and subfze
2018-03-22 21:52:17 +01:00
aldelaro5 c54e56793a
Add a log type for Symbols and move symbols related logs to it
This fix the awkwardness of having the symbols detection, parsing and loading related logs be in OS HLE while they don't have anything to do with that.
2018-03-22 14:57:28 -04:00
Lioncash 796d67e1ec Interpreter_Integer: Handle OE bit for subf, subfc, subfe, subfme, and subfze
With this, overflow flag support is now fully implemented for all
instructions that support it.
2018-03-22 13:08:03 -04:00
Anthony 0f60e68e0b
Merge pull request #6490 from spycrab/qt_fs_warn
Qt: Fix fullscreen quitting
2018-03-22 08:43:52 -07:00
spycrab cc3d5a9921 Qt: Fix fullscreen quitting 2018-03-22 15:29:08 +01:00
Markus Wick 59c5bc964f
Merge pull request #6486 from lioncash/add-oe
Interpreter_Integer: Handle overflow flag when OE bit is set in add, addc, adde, addme, and addze
2018-03-22 14:15:58 +01:00
Lioncash 9d21425449 Interpreter_Integer: Handle overflow flag when OE bit is set in add, addc, adde, addme, and addze 2018-03-22 09:09:31 -04:00
Léo Lam 2e92d95888
Merge pull request #6487 from sepalani/dsp-doc
DSP: Fix typos in DSP LoadStore doc
2018-03-22 07:51:29 +01:00
Sepalani 4ed06da2b4 DSP: Fix typos in DSP LoadStore doc 2018-03-22 09:24:58 +04:00
Lioncash e53fffeb90 PowerPC: Properly unset the overflow bit
The OV bit is non-sticky. Therefore, after an overflow-enabled
instruction executes, if an overflow does *not* occur, then OV is
cleared. SO is sticky however, so it staying set in this case is
correct.
2018-03-21 23:59:15 -04:00
Anthony 23bc50704a
Merge pull request #6484 from lioncash/mul
Interpreter_Integer: Handle the overflow flag when the OE bit is set for mullw
2018-03-21 18:18:00 -07:00
Lioncash 355509653e Interpreter_Integer: Handle the overflow flag when the OE bit is set for mullw 2018-03-21 20:28:37 -04:00
Michael M 1ba43e6c27 DSPSymbols: remove unused ReadAnnotatedAssembly
It's unused, and it used a weird format, something like:

```
void label_name() {
   asm $REG1, $REG2
   // etc
}
```
2018-03-21 17:07:27 -07:00
Michael M ed56f319b5 DSPHost: don't try to read old annotated assembly files
They don't exist anymore!
2018-03-21 17:06:30 -07:00
Anthony 30ccaa3fd5
Merge pull request #6481 from spycrab/qt_fix_fs
Qt: Fix fullscreen
2018-03-21 16:44:54 -07:00
Léo Lam 1b0f6a7d2e
Merge pull request #6482 from spycrab/qt_borders
Qt/MainWindow: Remove obnoxious border
2018-03-21 23:24:46 +01:00
Léo Lam 1b28693eb0
Merge pull request #4484 from Helios747/remove_text
[UI] Remove experimental tag from Vulkan
2018-03-21 23:18:03 +01:00
Helios747 b02b616930 [UI] Remove experimental tag from Vulkan 2018-03-21 15:12:12 -07:00
spycrab 8ead5be9f2 Qt: Fix fullscreen 2018-03-21 22:57:16 +01:00
spycrab 809dd665c7 Qt/MainWindow: Remove obnoxious border 2018-03-21 22:48:17 +01:00
Anthony 9cf22aec04
Merge pull request #6480 from spycrab/qt_search
Qt: Implement search
2018-03-21 12:40:34 -07:00
spycrab 3292abb41d Qt: Implement search 2018-03-21 20:04:13 +01:00
Léo Lam 8580b3ba1f Qt: Add ignore button for panic alerts
Allows easily disabling panic alerts during a session if needed.
2018-03-21 11:22:30 +01:00
Markus Wick 8308d6b464
Merge pull request #6476 from lioncash/dispatch
JitAsm: Eliminate use of the JIT global variable
2018-03-21 09:55:04 +01:00
Lioncash 7a2d98b948 JitAsm: Remove use of the JIT global in Generate()
With this, JitAsm code doesn't have any reliance on the JIT global
variable. This means the core JIT64 code no longer relies on said
global at all. The Jit64 common code, however, still has some offenders.

Notably, EmuCodeBlock and Jit64AsmCommon are the remaining places in the
common code that make use of the global variable.
2018-03-21 04:41:37 -04:00
Lioncash e0165a62da JitBase: Remove use of the JIT global in Dispatch() and JitTrampoline()
Trims down a few more uses of the global variable by just passing the
JIT instance we're dispatching or trampolining with as a parameter.
2018-03-21 04:41:30 -04:00
Pierre Bourdon fe600ab0ed
Merge pull request #6146 from HannesMann/qos-support
Netplay: Add Quality of Service (QoS) support
2018-03-21 02:46:46 +01:00
Pierre Bourdon 6860259c44
Merge pull request #6457 from spycrab/qt_misc
Qt: Improve spacing again
2018-03-21 01:10:01 +01:00
Pierre Bourdon 6079d7d3c6
Merge pull request #6475 from Starsam80/fix-always-true
Qt: Remove always true if statement
2018-03-21 01:07:54 +01:00
Anthony ad8c31699f
Merge pull request #6463 from delroth/auto-update
Initial implementation of the Dolphin auto-updater for Windows
2018-03-20 11:28:26 -07:00
Pierre Bourdon 66b41c5509 UICommon: Add AutoUpdate module + placeholder Qt implementation
The AutoUpdate module is a generic update checker mechanism which can be
used by UI backends to trigger an auto-update check as well as the
actual update process.

Currently only configurable through .ini and the Qt implementation is
completely placeholder-y -- blocking the main thread on a network
request on startup, etc.
2018-03-20 19:21:19 +01:00
Pierre Bourdon 37902c4aa4 DolphinWX: depend on Updater in order to make sure the binary is included in default builds 2018-03-20 19:21:19 +01:00
Pierre Bourdon 07c160310e Add Updater.exe which performs the update tasks.
Updater.exe takes as input manifests and applies the difference between
these manifests to an install directory.

Currently lacking a UI.
2018-03-20 19:21:19 +01:00
Markus Wick 43c92c8b16
Merge pull request #6451 from leoetlino/default-mmu
Config: Set bMMU to true by default on x64
2018-03-20 14:40:40 +01:00
Markus Wick 35bfa64dfc
Merge pull request #6470 from lioncash/ov-flag
Interpreter: Handle setting the overflow flag when the OE bit is set in divw, divwu, and neg
2018-03-20 11:08:12 +01:00
Starsam80 b7c44715a8
Qt: Remove always true if statement 2018-03-20 00:41:47 -06:00
Pierre Bourdon bc9deb7be3 HttpRequest: make curl initialization thread-safe 2018-03-20 00:36:43 +01:00
spycrab 44ce78c969 Qt: Remove in-development warning 2018-03-19 21:59:50 +01:00
Anthony 50588034ba
Merge pull request #6472 from lioncash/jit-init
JitBase: Ensure JitOptions and JitState instances are consistently initialized
2018-03-19 13:20:40 -07:00
Lioncash 51cfeb8c7d JitBase: Ensure JitOptions and JitState instances are consistently initialized
Ensures that upon construction of a JitBase instance, that all
underlying members within the option and state structs are guaranteed
to be initialized.

This prevents potentially using a member uninitialized in some form.
2018-03-19 15:58:32 -04:00
Anthony 37f8efcda0
Merge pull request #6471 from JosJuice/qt-strings-consistent
Make strings more consistent between DolphinWX and DolphinQt2
2018-03-19 11:00:24 -07:00
JosJuice a71c615435 Make strings more consistent between DolphinWX and DolphinQt2
Reduces the number of strings to translate.
2018-03-19 18:52:46 +01:00
Léo Lam 16f74cee70
Merge pull request #6467 from lioncash/breakpoint
Breakpoints: Remove direct usages of the JIT global
2018-03-19 18:42:10 +01:00
Lioncash 2fa0cb91a1 Interpreter_Integer: Set the overflow flag if the OE bit is set for neg
Also amends the condition that was being checked. Previously it was
checking if the destination register value was 0x80000000, however it's
actually the source register that should be checked.
2018-03-19 13:27:36 -04:00
Lioncash 675d2fb774 Interpreter_Integer: Set the overflow flag if the OE bit is set for divw and divwu
divw and divwu won't panic now if the OE bit is set for these instructions.
2018-03-19 11:51:10 -04:00
Lioncash f129c936e7 PowerPC: Add functions for getting and setting the XER OV bit
While we're at it, change GetXER_SO's return value to u32
to prevent potential sign bit wonkyness given we're performing bit arithmetic.
2018-03-19 11:51:04 -04:00
Léo Lam f335790623
Merge pull request #6460 from lioncash/datareader
DataReader: Minor API changes
2018-03-19 15:02:50 +01:00
Markus Wick 8c1be29cef
Merge pull request #6466 from lioncash/mffs
Interpreter_SystemRegisters: Handle mffs, mtfsb0, mtfsb1, mtfsf and mtfsfi with the record bit set
2018-03-19 09:37:01 +01:00
Markus Wick 523031f037
Merge pull request #6444 from stenzek/d3d-bbox
D3D: Fix broken bounding box
2018-03-19 09:21:22 +01:00
Markus Wick 98b4716902
Merge pull request #6442 from stenzek/async-compiler-priority
ShaderCache: Implement compile priority
2018-03-19 09:16:53 +01:00
Markus Wick 0c0a342483
Merge pull request #6464 from lioncash/using
JitArm64_RegCache: Remove using namespace declaration from header
2018-03-19 09:11:45 +01:00
Lioncash 3a4c3bbe01 Core/CMakeLists: Migrate off add_dolphin_library
This macro (that has unfortunately become the de-facto way of
introducing targets) has a lot of disadvantages that outweigh the fact
that you avoid writing two extra lines of CMake script.

- It encourages the use of variables. In a build system the last thing
we want to care about is mutable state that can be avoided.

- It only handles linking in the libraries and nothing else. It's a
laziness macro.

- We should be explicit about what we're doing by introducing the target
first, not last.

This gets the ball rolling by migrating Core off the macro. Note that
this is essentially 1-to-1 unrolling of the macro, therefore we're
still linking in all libraries as public, even though that may not be
necessary.

This can be revisited once everything is off the macro for a quicker
transition period.
2018-03-19 04:02:12 -04:00
Markus Wick 22aba8c56d
Merge pull request #6468 from lioncash/downcast
JitInterface: Remove a downcast within InitJitCore
2018-03-19 09:00:56 +01:00
Markus Wick 3d49bdb488
Merge pull request #6462 from lioncash/ppc
PPCTables: Make the op type enum an enum class
2018-03-19 08:55:32 +01:00
Markus Wick 8002bfbc41
Merge pull request #6461 from lioncash/emitter
x64Emitter: Move FloatOp and NormalOp enum definitions into the cpp file
2018-03-19 08:53:00 +01:00
Markus Wick 79b21e1381
Merge pull request #6459 from lioncash/enum
VertexShaderGen: Convert defines to an enum
2018-03-19 08:48:25 +01:00
Markus Wick 768cd7ede5
Merge pull request #6458 from lioncash/remove-mainbase
VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cpp
2018-03-19 08:46:35 +01:00
Lioncash 14b204a9bb JitInterface: Remove a downcast within InitJitCore
This isn't necessary as JitBase is already within the type hierarchy that
CPUCoreBase is.
2018-03-19 03:13:16 -04:00
Lioncash a0164e14bc BreakPoints: Avoid direct use of the JIT global
Trims the direct usages of the global by making the code go through the
JIT interface (where it should have been going in the first place).

This also removes direct JIT header dependencies from the breakpoints as
well. Now, no code uses the JIT global other than JIT code itself, and
the unit tests.
2018-03-19 03:08:57 -04:00
Lioncash b4cd11c7c9 BreakPoints: Invert if statements where reasonable
Puts the early-exit condition first, unindenting code that doesn't need
to be.
2018-03-19 03:08:53 -04:00
Lioncash 3137d4f75f BreakPoints: Use std algorithms where applicable 2018-03-19 03:08:17 -04:00
Lioncash eea99de118 Interpreter_SystemRegisters: Handle mffs, mtfsb0, mtfsb1, mtfsf, and mtfsfi with the record bit set
All of these with the record bit set update condition register 1 with the
contents of the FPSCR's FX, FEX, VX and OX bits.

Helper_UpdateCR1() does exactly that, so we use it here to perform this
for us.
2018-03-19 00:05:00 -04:00
Lioncash 6ae8a2b5f8 JitArm64_RegCache: Remove using namespace declaration from header
Dumping a namespace in a header file should be avoided since it can
cause random name and type clashing in unexpected ways.
2018-03-18 19:39:58 -04:00
Pierre Bourdon 5498f9b7ef make_scmrev.h.js: set default auto-update track from environment 2018-03-19 00:11:55 +01:00
Lioncash 6428cee939 PPCTables: Make the op type enum an enum class
Reduces the amount of identifiers dropped into the global namespace when
the PPCTables header is included.
2018-03-18 18:53:58 -04:00
Lioncash 975ba4abf0 x64Emitter: Make FloatOp and NormalOp enum classes
Reduces the amount of identifiers placed in the Gen namespace internally.
2018-03-18 18:04:54 -04:00
Lioncash c22a6f4551 x64Emitter: Move FloatOp and NormalOp enums to the cpp file
These are only used internally. This also allows us to eliminate some
symbols that get dumped into the exposed Gen namespace.

By extension this also hides the Write[X] functions from OpArg's public
interface. This is only used internally by XEmitter, so they shouldn't
be usable by anything else.
2018-03-18 18:04:48 -04:00
Lioncash b21a00d290 DataReader: Provide a const qualified variant of GetPointer()
This wouldn't be much of a data reader if it can't access the
read-only data pointer in read-only contexts. Especially if it
can get a writable equivalent in contexts that aren't read-only.
2018-03-18 16:53:04 -04:00
Lioncash ce29c1c42f DataReader: Correct return type of operator=
It's questionable to not return a reference to the instance being
assigned to. It's also quite misleading in terms of expected behavior
relative to everything else. This fixes it to make it consistent with
other classes.
2018-03-18 16:50:59 -04:00
Lioncash ffade65c55 DataReader: Remove __forceinline from trivial functions 2018-03-18 16:49:50 -04:00
Lioncash 4c2ec39199 DataReader: In-class initialize member variables where applicable
Allows the default constructor to be defaulted and ensures the default
values are associated with the member variables directly.

Also corrects a prefixed underscore in the two parameter constructor.
2018-03-18 16:34:51 -04:00
Lioncash fd956f6c69 DataReader: Make size() and Peek() const member functions
These don't modify class state, so they can be const qualified.
2018-03-18 16:33:14 -04:00
Lioncash 2b3b1e8d09 VertexShaderGen: Convert defines to an enum
Unlike defines, these will actually obey namespacing (should one be
added), and also provide a symbol when debugging, as opposed to a magic
value.
2018-03-18 15:45:20 -04:00
Pierre Bourdon 0c128f3abe
Merge pull request #6450 from leoetlino/nandboot
Boot: Set TYPE_NANDBOOT when booting from NAND
2018-03-18 20:44:44 +01:00
Lioncash b68e8b872e VideoBackendBase: Migrate functions from MainBase.cpp to VideoBackendBase.cpp
Given that this only contains functions from the VideoBackendBase class,
it makes more sense to move these to the relevant cpp file to keep them
all together.
2018-03-18 15:33:59 -04:00
Léo Lam b86947264b
Merge pull request #6453 from leoetlino/remove-unused
State: Remove unused Verify functions
2018-03-18 11:24:37 +01:00
Léo Lam 4b3542558a
Merge pull request #6456 from lioncash/video-static
MainBase: Remove unused file-scope variables
2018-03-18 11:24:16 +01:00
spycrab 1b06e66f1d Qt: Various layout fixes 2018-03-18 00:10:54 +01:00
Lioncash 13ed716419 MainBase: Remove effectively unused s_FifoShuttingDown variable
This is only ever set and cleared, which is fine, however nothing else
ever actually reads its state to perform differing behavior.
2018-03-17 18:10:43 -04:00
Lioncash 826c11ba3b MainBase: Remove unused s_beginFieldArgs struct
This is only ever memset to zero and never used again.

This also gets rid of an instance of undefined behavior considering the
draft standard for C++17 (N4659) states at [dcl.type.cv] paragraph 5:

"
The semantics of an access through a volatile glvalue are implementation-defined.
If an attempt is made to access an object defined with a volatile-qualified type
through the use of a non-volatile glvalue, the behavior is undefined.
"
2018-03-17 18:07:08 -04:00
JosJuice 9970f05ec8 DolphinQt2: Fix issues with MoIterator
Before this, DolphinQt2 would crash at boot with an assertion error
when using a Windows debug build, at least if the Dolphin GUI
language was set to English.
2018-03-17 21:54:39 +01:00
JosJuice ffb672286a Fix launching DolphinQt2 from Visual Studio
Fourth time now...
2018-03-17 19:10:57 +01:00
Anthony 87c6ed3e00
Merge pull request #6436 from spycrab/qt_layout
Qt: Improve spacing
2018-03-17 09:57:51 -07:00
spycrab c421848559 Qt: Improve spacing 2018-03-17 16:14:56 +01:00
Léo Lam 6aa6be2804 State: Remove unused Verify functions
These were unused in the entire codebase.
2018-03-16 22:56:54 +01:00
Lioncash 882d1c1256 OGLShader: Ensure m_id and m_compute_program_id are always initialized
Depending on which constructor is invoked, m_id or m_compute_program_id
can end up in an uninitialized state. We should ensure that the object
is completely initialized to something deterministic regardless of the
constructor taken.
2018-03-16 17:49:34 -04:00
Lioncash 83f17ac59f OGLShader: Fix mismatched assignment in compute shader constructor
This shouldn't be assigning to the regular ID.
2018-03-16 17:44:23 -04:00
Léo Lam f2b9a6696d Config: Set bMMU to true by default on x64
This prevents Dolphin from crashing when the emulated software crashes.
AFAIK, there is absolutely no performance to enabling this with the
x64 JIT.

Eventually, we should probably just remove bMMU
(https://github.com/dolphin-emu/dolphin/pull/1831). We can't do that
yet because of the ARM JIT.
2018-03-16 21:08:23 +01:00
Léo Lam 917f0e2182
Merge pull request #6441 from spycrab/qt_exec
Qt/Main: Add option to launch file without -e
2018-03-16 20:25:13 +01:00
Léo Lam 25704a2494 Boot: Set TYPE_NANDBOOT when booting from NAND
It makes more sense to set TYPE_NANDBOOT than TYPE_RETURN. The latter
is normally only set when returning to the system menu from a game.
2018-03-16 20:17:43 +01:00
JosJuice bdaa7be299
Merge pull request #6448 from lioncash/qt
DolphinQt2: Fix project loading in VS
2018-03-16 20:17:01 +01:00
Lioncash 293d84b9be DolphinQt2: Fix project loading in VS
These headers are already specified in the QtMoc item section, so these
are seen as a duplicate definition of the file, causing a project load
error.
2018-03-16 15:07:44 -04:00
spycrab 0911b44f60 Qt/Main: Add option to launch file without -e 2018-03-16 19:41:54 +01:00
Pierre Bourdon 6fdac685d6
Merge pull request #6409 from leoetlino/timing
IOS: Minor IPC fixes
2018-03-16 18:54:01 +01:00
Léo Lam a63aaeecee IOS: Fix "kernel FD table full" error code 2018-03-16 18:51:08 +01:00
Léo Lam d029f2a7b6 IPC: Clear X1 when acknowledging a reply
Hardware tests indicate that IOS clears X1 when it acknowledges
an IPC request.
2018-03-16 18:51:08 +01:00
Léo Lam 1a71076e50 IPC: Remove incorrect guess about acks
A very basic hardware test shows that the ARMMSG doesn't change until
IOS replies. (People could have disassembled IOS to verify this too...)

Console:

sending request at 00034640 - ARMMSG 133e0fa0
00000000000000000000000000000010(ack) - ARMMSG 133e0fa0
00000000000000000000000000000100(reply) - ARMMSG 00034640

Dolphin, prior to this fix:

sending request (00034640) - ARMMSG 133e0fa0
00000000000000000000000000000011(ack) - ARMMSG 00034640
00000000000000000000000000000100(reply) - ARMMSG 00034640

Dolphin, after this fix:

sending request at 00034640 - ARMMSG 133e0fa0
00000000000000000000000000000011(ack) - ARMMSG 133e0fa0
00000000000000000000000000000100(reply) - ARMMSG 00034640

(Yes, note that the X1 bit is still set. This is a bug that I will
fix in the next commit.)
2018-03-16 18:51:08 +01:00
Léo Lam b9f7d67667 IPC: Fix missing interrupt when writing to Y1/Y2
The IPC interrupt is triggered when IY1/IY2 is set and Y1/Y2 is written
to even when this results in clearing the bit.

This shouldn't change anything in practice but it's a difference
that Dolphin wasn't taking into account, which made me waste some time
when I was writing a hwtest :/
2018-03-16 18:51:08 +01:00
Léo Lam 35e3775a77 IOS: Remove outdated comment 2018-03-16 18:51:08 +01:00
Léo Lam fa89614b07 IOS: Adjust IPC timing based on hardware tests
This adjusts IOS IPC timing to be closer to actual hardware:

* Emulate the IPC interrupt delay. On a real Wii, from the point of
  view of the PPC, the IPC interrupt appears to fire about 100 TB ticks
  after Y1/Y2 is seen.

* Fix the IPC acknowledgement delay. Dolphin was much, much too fast.

* Fix Device::GetDefaultReply to return more reasonable delays. Again,
  Dolphin was way too fast. We now use a more realistic, average reply
  time for most requests.

  Note: the previous result from https://dolp.in/pr6374 is flawed.
  GetTicketViews definitely takes more than 25µs to reply.
  The reason the reply delay was so low is because an invalid
  parameter was passed to the libogc wrapper, which causes it to
  immediately return an error code (-4100).

* Fix the response delay for various replies that come from the kernel:
  fd table full, unknown resource manager / device, invalid fd,
  unknown IPC command.

Source: https://github.com/leoetlino/hwtests/blob/af320e4/iostest/ipc_timing.cpp
2018-03-16 18:51:07 +01:00
Lioncash 7926a0c814 Use __func__ instead of __FUNCTION__ where applicable
This replaces usages of the non-standard __FUNCTION__ macro with the standard
mandated __func__ identifier.

__FUNCTION__ is a preprocessor definition that is provided as an
extension by compilers. This was the only convenient option to rely on
pre-C++11. However, C++11 and greater mandate the predefined identifier
__func__, which lets us accomplish the same thing.

The difference between the two, however, is that __func__ isn't a
preprocessor macro, it's an actual identifier that exists at function
scope. The C++17 draft standard (N4659) at section [dcl.fct.def.general]
paragraph 8 states:

"
The function-local predefined variable __func__ is defined as if a
definition of the form

static const char __func__[] = "function-name ";

had been provided, where function-name is an implementation-defined
string. It is unspecified whether such
a variable has an address distinct from that of any other object in the
program.
"

Thankfully, we don't do any macro or string concatenation with __FUNCTION__
that can't be modified to use __func__.
2018-03-16 13:41:53 -04:00
Lioncash 75f5fcdfee Assert: Remove unused parameter from DEBUG_ASSERT
This brings the macro in line with the regular ASSERT macro, which only has one
macro parameter.
2018-03-16 13:01:11 -04:00
Lioncash f44e2dc425 Assert: Wrap assertion macro bodies in do {} while (0)
Enforces the termination of the macro with a semicolon. Aside from that
requirement, behavior remains the same.
2018-03-16 12:35:23 -04:00
Mat M 9f4d5122a2
Merge pull request #6438 from lioncash/assert
Assert: Uppercase assertion macros
2018-03-16 11:59:14 -04:00
Stenzek 93865b327f ShaderCache: Implement compile priority
Currently, when immediately compile shaders is not enabled, the
ubershaders will be placed before any specialized shaders in the compile
queue in hybrid ubershaders mode. This means that Dolphin could
potentially use the ubershaders for a longer time than it would have if
we blocked startup until all shaders were compiled, leading to a drop in
performance.
2018-03-17 01:53:11 +10:00
Stenzek cb19ddd1d4 D3D: Fix broken bounding box 2018-03-17 00:20:43 +10:00
spycrab a2d6bab0d2 Properties/GameConfig: Remove "Skip DCBZ" 2018-03-15 20:33:01 +01:00
Anthony 1c3cc26d19
Merge pull request #6386 from spycrab/qt_dbg_code
Qt/Debugger: Implement "Code" widget
2018-03-15 11:35:26 -07:00
Lioncash 50a476c371 Assert: Uppercase assertion macros
Macros should be all upper-cased. This is also kind of a wart that's
been sticking out for quite a while now (we avoid prefixing
underscores).
2018-03-14 22:03:12 -04:00
Markus Wick 19d97f3fd9
Merge pull request #6430 from stenzek/uid-cache-fixes
ShaderCache: Fix several issues in background shader compiling
2018-03-14 17:08:36 +01:00
Stenzek 517a977444 ShaderCache: Fix several issues in background shader compiling
- In D3D, shaders could be compiled on the main thread, blocking
startup.
- Reduced the latency between a pipeline being requested and used in all
backends in hybrid ubershader mode, when no shader stages were present.
- Fixed a case where async compilation could cause the same UID to be
appended multiple times to the UID cache.
- Fix incorrect number of threads being used when immediately compile
shaders was enabled.
2018-03-15 01:50:47 +10:00
Stenzek dc9012ae08 OGL: Ensure VAO is active before unmapping buffers
Fixes a crash which could occur in platforms which do not support
buffer_storage, and EFB2RAM is enabled (which indirectly uses the
attributeless buffer).
2018-03-15 00:32:39 +10:00
Léo Lam 6813c5e1e9
Merge pull request #6434 from lioncash/x86-dsp
DSPCore: Move x64 JIT source files into an x64 subdirectory
2018-03-14 10:54:46 +01:00
Lioncash 9f2a46b08d DSPCore: Use nested namespace specifiers for the x64 JIT
Slims down the amount of lines needed for namespacing.
2018-03-13 18:57:25 -04:00
Lioncash b3fd79b45a DSPCore: Rename namespace to match moved x64 JIT files
Maintains consistency between location and code
2018-03-13 18:48:16 -04:00
Lioncash ab5b90bf15 DSPCore: Move x64 JIT source files into an x64 subdirectory
While the code is namespaced out properly, the files weren't separated
into their own directory. This moves the files so that introducing a general
interface is easier in the future for supporting other architectures.
2018-03-13 18:26:26 -04:00
Stenzek 51e4014a35 DriverDetails: Disable primitive restart on Vulkan with Mali driver 2018-03-14 02:56:24 +10:00
Stenzek db810956ec Vulkan: Provide a more accurate method of detecting drivers/vendors
This is needed to differentiate between the open-source Mesa drivers and
their binary counterparts for Intel and AMD.
2018-03-14 02:48:53 +10:00
Markus Wick f7ff634e4f
Merge pull request #6432 from degasus/OGL-OSD-update
OGL: Scale OSD text on big screens.
2018-03-13 16:37:58 +01:00
Henrik Rydgård 6cbb716f60 SSE-optimize UninitializeXFBMemory
Lowest hanging fruit I could find with a profiler.

Not sure this stuff actually needs to be done, but assuming it is, why
not do it quickly? 10x faster, goes from 1% CPU to 0.09%.
2018-03-13 11:55:28 +01:00
degasus a5c0739fab OGL: Scale OSD text on big screens. 2018-03-12 20:38:06 +01:00
degasus d4449971c9 OGL: Warn if buffer_storage isn't available.
Yes, this commit is only to blame OSX and Mali. Through the former supports unsynchronized mappings, the latter supports *no* way to stream dynamic data at all. Let's try to make bad news, as they ignore friendly feature requests. Maybe we just need to make more noise...
2018-03-12 20:38:00 +01:00
Léo Lam 90ca62e416
Merge pull request #6428 from JosJuice/qt-zh-order
Qt2 translation: Don't place "zh_CN" and "zh_TW" after "zh"
2018-03-12 18:44:41 +01:00
JosJuice 4b85f7fe79 Qt2 translation: Don't place "zh_CN" and "zh_TW" after "zh"
The least specific language code should be tried last.
2018-03-11 22:27:17 +01:00
Stenzek 427aa188d4 ShaderCache: Use a version number for pipeline UID caches 2018-03-11 14:48:09 +10:00
Léo Lam 63d5e57337
Merge pull request #6419 from Ebola16/Fix_OpenAL
Change FATAL_ERROR to STATUS message for OpenAL not found in externals
2018-03-10 13:35:30 +01:00
Pierre Bourdon d72947d638
Merge pull request #6427 from JosJuice/thousandseparate-encoding
StringUtil: Fix Windows encoding in ThousandSeparate
2018-03-10 13:16:00 +01:00
JosJuice 34be8488a5 StringUtil: Fix Windows encoding in ThousandSeparate
Some locales use non-breaking spaces as separators, so getting the
encoding right is important. If DolphinWX gets a string that isn't
valid UTF-8, it flat out won't display the string.
2018-03-10 12:13:30 +01:00
Stenzek 93ab50c555 OGL: Move primitive restart enable logic to GLUtil 2018-03-10 16:11:20 +10:00
Stenzek 51a586d11a GLUtil: Encapsulate functions in a namespace 2018-03-10 16:11:19 +10:00
Stenzek e31cc1f679 ShaderCache: Implement background shader compilation
This enables shaders to be compiled while the game is starting, instead
of blocking startup. If a shader is needed before it is compiled,
emulation will block.
2018-03-10 16:11:19 +10:00
Stenzek 9fa24700b6 VideoConfig: Collapse ubershader configuration fields to a single value 2018-03-10 15:56:45 +10:00
Stenzek 590307b94c ShaderCache: Use memcmp for comparing pipeline UIDs
As these are stored in a map, operator< will become a hot function when
doing lookups, which happen every frame. std::tie generated a rather
large function here with quite a few branches.
2018-03-10 15:56:42 +10:00
Stenzek 41296db083 Renderer: Remove now-redundant Set{Rasterization,Depth,Blending}State 2018-03-10 15:56:40 +10:00
Stenzek fc1fe0672b OGL: Add some basic state tracking
We would want to improve the granularity here in the future, but for
now, this should avoid any performance loss from switching to the
VideoCommon shader cache.
2018-03-10 15:56:37 +10:00
Stenzek f9c829c7f7 OGL: Re-implement async shader compiling 2018-03-10 15:56:34 +10:00
Stenzek dec0c3bce8 Move shader caches to VideoCommon 2018-03-10 15:56:30 +10:00
Stenzek 24df896eb8 VKShader: Fix incorrect loading of binary shaders 2018-03-10 15:56:27 +10:00
Stenzek 1ddc4c5568 D3D: Make NativeVertexFormat thread safe 2018-03-10 15:56:24 +10:00
Stenzek 40845e6b8f D3D: Make StateCache thread safe 2018-03-10 15:56:21 +10:00
Stenzek bfb4709c80 AbstractPipeline: Allow setting pipeline to null 2018-03-10 15:56:18 +10:00
Stenzek 5e5dfe686a VKPipeline: Fix render pass and add pipeline layout fields 2018-03-10 15:56:13 +10:00
Stenzek a61fcb0088 OGL: Fix abstract pipelines on drivers without binding layout support 2018-03-10 15:56:06 +10:00
Stenzek 00204dc988 OGL: Make ProgramShaderCache thread safe 2018-03-10 15:55:56 +10:00
Léo Lam 63838c013b
Merge pull request #6281 from JosJuice/unify-gamelist-code
Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
2018-03-09 20:39:02 +01:00
Léo Lam ef975b8c56
Merge pull request #6377 from sepalani/memcheck
DolphinWX: Propagate IDM_UPDATE_BREAKPOINTS to CodeWindow
2018-03-09 20:35:54 +01:00
Ryan Meredith b7276483da Change FATAL_ERROR to STATUS message for OpenAL not found in externals 2018-03-09 12:29:23 -05:00
JosJuice 0e2690f40b FileMonitor: Store last file offset instead of path
This saves us from having to call GetPath when the same file is being
read over and over. (GetPath is more expensive than GetOffset due to
it iterating through parts of the file system and creating strings.)
2018-03-09 15:18:32 +01:00
JosJuice 1f1dae367d Unify ISOFile (wx) with GameFile (Qt) and put it in UICommon
The original reason I wanted to do this was so that we can replace
the Android-specific code with this in the future, but of course,
just deduplicating between DolphinWX and DolphinQt2 is nice too.

Fixes:

- DolphinQt2 showing the wrong size for split WBFS disc images.

- DolphinQt2 being case sensitive when checking if a file is a DOL/ELF.

- DolphinQt2 not detecting when a Wii banner has become available
after the game list cache was created.

Removes:

- DolphinWX's ability to load PNGs as custom banners. But it was
already rather broken (see https://bugs.dolphin-emu.org/issues/10365
and https://bugs.dolphin-emu.org/issues/10366). The reason I removed
this was because PNG decoding relied on wx code and we don't have any
good non-wx/Qt code for loading PNG files right now (let's not use
SOIL), but we should be able to use libpng directly to implement PNG
loading in the future.

- DolphinQt2's ability to ignore a cached game if the last modified
time differs. We currently don't have a non-wx/Qt way to get the time.
2018-03-09 13:08:38 +01:00
Hannes Mann 41682a07cb Add Quality of Service (QoS) support 2018-03-09 00:11:18 +01:00
JosJuice 0d3a7d5e38 Fix launching DolphinQt2 from Visual Studio 2018-03-08 22:33:11 +01:00
Léo Lam 3cc64cc146
Merge pull request #6418 from spycrab/qt_gameconfig
Qt/PropertiesDialog: Add "Game Config" tab
2018-03-08 20:33:12 +01:00
Léo Lam ed2d749fb9
Merge pull request #6424 from delroth/traversal-watchdog
Add systemd watchdog support to the traversal server
2018-03-08 17:29:45 +01:00
Léo Lam 1eae5fe790
Merge pull request #6422 from sepalani/nullptr-blank
HLE: Improve format string detection heuristic
2018-03-08 17:26:09 +01:00
Pierre Bourdon 9e0739f5e5 traversal: add systemd watchdog support 2018-03-08 06:10:17 +00:00
spycrab 394388af4e Qt/PropertiesDialog: Add "Game Config" tab 2018-03-07 20:59:41 +01:00
Anthony 1a1133bf8e
Merge pull request #6423 from leoetlino/tid
UI: Show title ID in info panel
2018-03-07 10:47:43 -08:00
Léo Lam 3af09da0f3 UI: Show title ID in info panel
Add a way to easily get the title ID of a game. For Wii titles, it's
sometimes more useful to know than the game ID.
2018-03-07 17:40:22 +01:00
Stenzek 24a46dc6af
Merge pull request #6315 from stenzek/abstract-framebuffers
Abstract Framebuffers
2018-03-08 00:52:49 +10:00
Léo Lam aee977e32a
Merge pull request #6420 from JosJuice/qt-translateability
Tweak Qt strings to be more translation friendly
2018-03-07 13:40:14 +01:00
Léo Lam 6ca1c46117
Merge pull request #6415 from spycrab/qt_resize
Qt/GameList: Make a few columns resizable
2018-03-07 13:36:26 +01:00
Sepalani 4f1c0ca3e9 HLE: Improve format string detection heuristic 2018-03-06 21:21:56 +04:00
JosJuice 83373e2e87 Qt2 TAS input: Generate key strings automatically
This saves us from having to hardcode strings, and it also gives
us strings in whatever format is appropriate on the current OS
(for instance, IIRC Windows uses Alt+F where other OSes use Alt-F).
2018-03-06 17:38:57 +01:00
JosJuice 45040f00c6 Tweak Qt strings to be more translation friendly 2018-03-04 19:13:13 +01:00
Léo Lam a436c6182b
Merge pull request #6388 from leoetlino/merge
Consolidate ec_wii functions into IOSC
2018-03-02 23:14:37 +01:00
Léo Lam 96e4e01564
Merge pull request #6416 from Ebola16/Warning
Remove DSPLLE ReadAnnotatedAssembly error log entry
2018-03-02 23:10:43 +01:00
Anthony 78b00d8d32
Merge pull request #6382 from spycrab/qt_patches
Qt/PropertiesDialog: Implement "Patches" tab
2018-03-02 10:34:00 -08:00
Stenzek 4c24a69710 VideoCommon: Add support for Abstract Framebuffers 2018-03-02 20:20:48 +10:00
Ryan Meredith c94cd4a275 Remove DSPLLE ReadAnnotatedAssembly error log entry 2018-03-02 02:25:25 -05:00
spycrab dee4440c9d Qt/GameList: Make a few columns resizable 2018-03-02 00:51:21 +01:00
Stenzek 2a6d9e4713 AbstractTexture: Add support for depth textures/formats 2018-03-01 17:31:24 +10:00
Stenzek 6374a4c4a8 AbstractTexture: Support multisampled abstract texture 2018-03-01 17:31:24 +10:00
Stenzek 4316f5f56b AbstractTexture: Add property/attribute accessor helpers 2018-03-01 17:31:24 +10:00
Stenzek e125eaa237 VideoCommon: Drop references to AbstractRawTexture 2018-03-01 17:31:24 +10:00
Stenzek 887e3830ba VideoBackends: Restore the framebuffer as part of the API state
It's not often we switch out to draw to the EFB anyway.
2018-03-01 17:31:24 +10:00
Stenzek b4b0f3d942 Vulkan: Fix broken post-processing 2018-03-01 16:55:55 +10:00
spycrab ecaa68ade9 Qt: Make game revision vars u16 2018-02-28 22:35:10 +01:00
spycrab 4b54f6b1c7 Qt/PropertiesDialog: Implement "Patches" tab 2018-02-28 21:16:57 +01:00
spycrab 0a5f0efe18 Qt/Debugger: Implement "Code" widget 2018-02-28 19:47:56 +01:00
Léo Lam 4e014f996b IOS: Fix invalid FD being returned after an open
Fixes a regression introduced by 80b1bf13c2.

The return value for open replies should be overwritten with the new
file descriptor.
2018-02-28 15:56:03 +01:00
Mat M bf825e6354
Merge pull request #6404 from hubslave/patch-1
Include <endian.h> for byte swap macros on OpenBSD
2018-02-27 23:28:22 -05:00
Léo Lam 80b1bf13c2 IOS: Change devices to always return IPCCommandResult
This commit changes devices to always return IPCCommandResult rather
than just a return code for Open() and Close() in order to be able
to better emulate reply timing.

In hindsight, I should have considered we would want to emulate
timing when I cleaned up the device interface, but alas.
This rectifies that mistake.
2018-02-27 21:12:07 +01:00
Léo Lam 9282be1058 IOS: Fix regression affecting BC launch
8e06257f19 caused Dolphin not to consider BC as emulated anymore.
2018-02-27 18:16:05 +01:00
Léo Lam 1de17d20e1 Fix render surface when using Render to Main and debugger
This fixes a regression introduced by de632fc9c.
2018-02-27 13:18:43 +01:00
Stenzek 25a516bae3
Merge pull request #6403 from degasus/master
OGL: Use glBufferData on Mali.
2018-02-27 17:54:41 +10:00
spycrab a3fd99032c IsSettingSavable: Make GFX_CACHE_HIRES_TEXTURES savable 2018-02-26 19:04:06 +01:00
hubslave 4ae48e10e5
Include <endian.h> for byte swap macros on OpenBSD
There is code below that assumes the presence of those macros (by #undef'ing them), but none of the included headers provided them.

This fixes a build failure on OpenBSD where the undef'd macros _do_ get picked up later on in a compilation unit (through which include, I don't know), and thus shadow the Common::swap* functions.
2018-02-26 00:07:05 +02:00
Markus Wick 227db66e4f OGL: Use glBufferData on Mali.
tl;dr: This PR speedups dolphin on mobiles with the Mali GPU and ES 3.2
drivers by a factor of 10 by using the method with the biggest overhead.
Please keep care not to buy this shit!

The ARM driver team seems to care very well about their customers. But
bad luck, users and open source developers are *not* their customers. So
even device-independent feature requests are just ignored for *years*:

https://community.arm.com/graphics/f/discussions/4645/gl_ext_buffer_storage-support

The bad point, they neither implement any of the other common ways to
stream dynamic content in unextented GL:
- They just ignore the GL_MAP_UNSYNCHRONIZED_BIT flag
- They don't support on-device buffer updates and just stall with
glBufferSubData

It seems like no benchmark is using any dynamic content - and like no
customer cares about anything but benchmarks, or users...

We have a flag to disable the glBufferSubData way, this PR adds the flag
to also disable the unsychronized mapping way. The second one is
available since their ES 3.2 update, but slow as hell.

So how to continue? The last remaining technical way to stream dynamic
content at all is to alloc a new buffer per draw call with glBufferData.
This is very gross, but still a factor 10 speedup compared to stalling
the GPU. Small tests shows that you can expect another 3-5 times speedup
with EXT_buffer_data, so Mali would be on pair with Adreno here. So if
you have bought such a device unfortunately, please try to make noise on
your vendor forums/support and ask for this extension. If you are going
to buy a new mobile, I'd recormend to avoid *any* mobile with a Mali GPU
in it.
2018-02-25 17:12:36 +01:00
Stenzek e4d3b5f626 OGL: Only create bad shader files in Dump when compile failed
Warnings are still logged.
2018-02-25 18:03:58 +10:00
Anthony a3674e3f73
Merge pull request #6396 from spycrab/qt_osx_theme
CMake/OSX: Fix missing QMacStylePlugin
2018-02-24 15:44:43 -08:00
spycrab 7f3c1a2de4 Qt/OSX: Fix icon 2018-02-24 21:12:22 +01:00
spycrab 5ddbb3459b CMake/OSX: Fix missing QMacStylePlugin 2018-02-24 18:48:29 +01:00
Anthony b66f96c617
Merge pull request #6042 from stenzek/videocommon-pipelines
VideoCommon pipelines ("Abstract Pipeline")
2018-02-23 09:18:19 -08:00
Stenzek 2ba8f67feb OGL: Call GLInterface->Update() on window resize
macOS in particular requires the context be updated manually when the window
is resized.
2018-02-23 22:27:10 +10:00
Léo Lam 1e6dc196aa Qt: Fix warning about parentheses
The original code had parentheses placed in weird locations IMO, which
even caused compilers to issue warnings.
2018-02-22 17:55:16 +01:00
Léo Lam f1f2bd9c94 Qt: Fix warning about array initialisation 2018-02-22 17:54:58 +01:00
Léo Lam fd063bdc31 Qt: Use std::abs instead of abs
...since <cmath> is included, not <math.h>. May or may not fix
https://bugs.dolphin-emu.org/issues/10906
2018-02-22 17:54:19 +01:00
Stenzek fec6bb4d56 VideoBackends: Add AbstractShader and AbstractPipeline classes 2018-02-22 22:02:34 +10:00
Stenzek 31111ef143 D3D: Remove state stack from tracker, set explicitly instead 2018-02-22 19:40:55 +10:00
Stenzek e18c7b1c33 D3D: Support state tracking of compute shaders 2018-02-22 19:11:27 +10:00
Stenzek e8ff2b2006 D3D: Support compiling compute shaders 2018-02-22 19:11:25 +10:00
Stenzek aaea515d71 GLUtil: Drop now-unused attributeless VAO helpers 2018-02-22 19:09:28 +10:00
Stenzek 052d78bcb1 OGL: Log warnings from shader compiles, even if it compiled successfully 2018-02-22 19:08:54 +10:00
Stenzek 3fd4142f36 OGL: Track state of last bound vertex array object
This reduces the overhead of calling glBindVertexArray() every time
RestoreAPIState() is called, even when it is redundant.
2018-02-22 19:08:52 +10:00
Lioncash abfaff8ca9 Qt: Remove unnecessary <iostream> includes
<iostream> injects a static constructor into the translation units that
it's included into. This is trivially avoidable in these cases.
2018-02-21 16:38:08 -05:00
JosJuice 619f98b97b
Merge pull request #6389 from spycrab/fix_wiimote
Fix emulated Wiimotes
2018-02-20 21:37:30 +01:00
spycrab de1af2e45d Fix emulated Wiimotes 2018-02-20 20:41:29 +01:00
Léo Lam f9445bb119 IOS: Remove ec_wii functions 2018-02-19 20:34:06 +01:00
Léo Lam 5e5c9e1772 IOSC: Add Sign
Equivalent of IOSC_GenerateCertificate + IOSC_GeneratePublicKeySign.

This is copied from ec_wii/MakeAPSigAndCert.
2018-02-19 20:34:06 +01:00
Léo Lam b3c7874a3a IOSC: Add GetDeviceId and GetDeviceCertificate 2018-02-19 20:34:06 +01:00
Léo Lam f3c63b3108 IOSC: Load built-in key entries directly from keys.bin
Preliminary commit for merging ec_wii into IOSC.
2018-02-19 20:34:06 +01:00
Léo Lam 1f4ddea5f7 IOSC: Change misc_data to a u32
It's always 4 bytes long, so let's just make it a u32.
2018-02-19 20:34:05 +01:00
Markus Wick e01fe46068
Merge pull request #6367 from stenzek/gl-flush
OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT
2018-02-19 16:26:35 +01:00
Stenzek de632fc9c8 Renderer: Handle resize events on-demand instead of polling
We now differentiate between a resize event and surface change/destroyed
event, reducing the overhead for resizes in the Vulkan backend. It is
also now now safe to change the surface multiple times if the video thread
is lagging behind.
2018-02-20 01:15:55 +10:00
Stenzek 5baf3bbe2e OGL: Clear backbuffer before presenting instead of at start of frame 2018-02-20 01:11:40 +10:00
Stenzek c1b39ecc58 BPFunctions: Move upscaling of scissor rect to VideoCommon 2018-02-20 00:49:32 +10:00
Stenzek 5359396099 BPFunctions: Move GX viewport conversion to VideoCommon 2018-02-20 00:49:32 +10:00
Markus Wick a2d2a0a356
Merge pull request #6384 from jeffythedragonslayer/master
Jit64: fixed some signed to unsigned integer warnings
2018-02-19 15:28:06 +01:00
Anthony 4876b9d8e0
Merge pull request #6362 from spycrab/qt_indicators
Qt/Mapping: Implement indicators
2018-02-18 11:45:12 -08:00
Jeff Linahan caf721fb3f Jit64: fixed some signed to unsigned integer warnings 2018-02-16 17:41:16 -05:00
Stenzek 340ee8fff8 PixelShaderGen: Implement table-based fog range as in software renderer 2018-02-15 22:19:21 +10:00
Markus Wick e7d0aae5be
Merge pull request #6335 from stenzek/membp
Jit64: Fix incorrect PC in PPC state during fastmem trampoline
2018-02-15 11:13:52 +01:00
spycrab ec54b421a4 Qt/Mapping: Implement indicators 2018-02-15 05:01:44 +01:00
Stenzek 7c517226ed Vulkan: Remove redundant YUYV conversion shaders
These are no longer used as of hybrid XFB.
2018-02-14 15:26:35 +10:00
Sepalani a9b89b35fb DolphinWX: Propagate IDM_UPDATE_BREAKPOINTS to CodeWindow 2018-02-13 20:20:58 +01:00
Léo Lam dbdf964f2e
Merge pull request #6376 from sepalani/es-fix
ES: Make it not fail on something that isn't IOS
2018-02-13 16:42:17 +01:00
Sepalani 68f7a03d05 ES: Make it not fail on something that isn't IOS 2018-02-13 15:47:38 +01:00
Anthony f9b809a57e
Merge pull request #6361 from spycrab/qt_fix_layout
Qt/GCMemcardManager: Misc. improvements
2018-02-12 13:59:31 -08:00
Lucas Kent 5fe72700fa Qt: TAS input window - Fix mac os 2018-02-13 08:03:01 +11:00
Rukai a8d482d8e1 IR widget is now a rectangle 2018-02-13 07:17:16 +11:00
Rukai d07e212cef Qt: Implement Wii TAS input window 2018-02-13 07:15:54 +11:00
Rukai 3f1ffbad0d Qt: Implement GC TAS input window 2018-02-13 07:15:53 +11:00
Anthony 35c43e74d0
Merge pull request #6371 from rukai/dolphinQtHotkeyFixes
Qt: Various fixes to hotkeys
2018-02-12 09:28:58 -08:00
Anthony 5b744146f3
Merge pull request #6336 from spycrab/qt_additional_wiimote_settings
Qt: Implement Wiimote pane
2018-02-12 09:28:15 -08:00
Léo Lam 8e06257f19
Merge pull request #6374 from sepalani/ios-reload
ES: Make it fail on unsupported installed IOSes
2018-02-12 10:02:43 +01:00
Sepalani a663fcb977 IOS: Adjust reply timing to be closer to real hardware 2018-02-11 18:42:19 +01:00
Sepalani 2ce7fff819 ES: Make it fail on unsupported installed IOSes 2018-02-11 18:42:02 +01:00
Stenzek 93fb0e1e1c TextureCache: Add an option to disable EFB copies to VRAM
The option is named DisableCopyToVRAM under the Hacks section in
GFX.ini. It is intentionally not exposed to the GUI, as users should not
need to use it under normal circumstances. The main use is debugging
issues in the EFB-to-RAM shaders.
2018-02-11 15:48:46 +10:00
Stenzek 84b990faa0 VideoConfig: Remove bForceCopyToRam field
It's the inverse of supports-copy-to-vram.
2018-02-11 15:29:37 +10:00
Rukai 4b5373b25b Remove hardcoded esc hotkey, make pause/stop hotkey actually toggle rather than just pausing, fix frame advance hotkey 2018-02-10 23:30:59 +11:00
spycrab 7c99f10152 Qt/Graphics: Add ubershader options 2018-02-10 13:11:18 +01:00
spycrab c07443a628 Qt/GCMemcardManager: Misc. improvements 2018-02-09 21:54:07 +01:00
spycrab 220e4bcd99 Qt/MappingButton: light up when mapped key is pressed 2018-02-09 12:30:02 +01:00
Stenzek 6490c2b86b OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT 2018-02-09 01:25:14 +10:00
Stenzek 4b96db8fc9 OGL: Don't leave staging texture buffer bound after mapping
This could cause glReadPixels() calls which assume no buffer is bound
(e.g. CPU EFB access) to fail. The problem was limited to devices which
don't support persistent mapping, as the map path is not otherwise.
2018-02-09 01:15:27 +10:00
Anthony c30ac55cf4
Merge pull request #6354 from leoetlino/hle
HLE: Minor cleanup
2018-02-07 23:36:31 -08:00
Anthony 096131c908
Merge pull request #6334 from stenzek/startup
Video Backend Initialization/Core Boot Improvements
2018-02-07 23:35:54 -08:00
Anthony 4636230f5a
Merge pull request #6333 from stenzek/vulkan-transition
Vulkan: Fix invalid stage mask in layout transitions
2018-02-07 23:32:05 -08:00
Anthony 8adce86daa
Merge pull request #6355 from myfreeweb/clang6-warning
Add -Wno-register to calm down clang 6.0.0 (C++17 mode)
2018-02-07 22:25:57 -08:00
spycrab 87d7c994e7 Qt/Settings: Implement ControllerStateNeeded 2018-02-07 18:49:23 +01:00
Christian Murphy 5b01c5e119 Qt: Implement Wiimote speaker volume slider and Wiimote motor toggle, rebased all changes... included fixed based on feedback by ligfx 2018-02-07 18:46:13 +01:00
spycrab 2f7b68ade5 Qt/BreakpointWidget: Fix MBP delete 2018-02-06 11:06:14 +01:00
Greg V 9b201815f2 Ignore -Wregister to calm down recent clang and GCC (C++17 mode)
The 'register' keyword is used by a header included from Xlib (X11/XKBlib.h).
2018-02-05 14:43:07 +03:00
Léo Lam 920dd0edd0
Merge pull request #6358 from myfreeweb/dont-link-usbhid
Do not link to libusbhid on FreeBSD/NetBSD
2018-02-05 11:59:35 +01:00
Anthony 2442a34c3d
Merge pull request #6357 from leoetlino/evdev
evdev: Minor fixes
2018-02-04 16:29:25 -08:00
Léo Lam 6a93223283 evdev: Always unref received udev devices
Whenever udev_monitor_receive_device() returns a non-null pointer,
the device must be unref'd after use with udev_device_unref().

We previously missed some unref calls for non-evdev devices.
2018-02-05 01:01:05 +01:00
Léo Lam 0822bb347d evdev: Don't leak eventfd on shutdown 2018-02-04 22:48:38 +01:00
Greg V be716a680f Do not link to libusbhid on FreeBSD/NetBSD
Both libusbhid (system library) and libhidapi (3rd party library)
provide a function called hid_init. Dolphin was being linked to both.

The WiimoteScannerHidapi constructor was calling hid_init without
arguments. libusbhid's hid_init expects one argument (a file path).
It was being called as if it was defined without arguments, which
resulted in a garbage path being passed in, and because of that,
the Qt GUI was failing to launch with the following error:
'dolphin-emu-qt2: @ : No such file or directory'
2018-02-05 00:46:59 +03:00
Léo Lam 9a3705f82d evdev: Fix select() call
It's not guaranteed that the eventfd is smaller than the monitor fd,
because fds are not always monotonically allocated. To select()
correctly in all cases, use the max between the monitor fd and eventfd.
2018-02-04 22:45:28 +01:00
spycrab f253c1ea32 Qt/MappingButton: Save settings when a mapping is changed 2018-02-04 22:03:38 +01:00
Léo Lam 3deb8ce074 HLE: Use enum classes for HookType and HookFlag 2018-02-04 14:50:55 +01:00
Léo Lam a184ab93b6 HLE: Remove an unused function
There is nothing using PanicAlert in either official titles or libogc.
2018-02-04 14:41:55 +01:00
Léo Lam 44391ad2fe
Merge pull request #6353 from spycrab/qt_fix_invdev
Qt/MappingWindow: Fix invalid device being selected by default
2018-02-04 12:54:14 +01:00
spycrab 489f478751 Qt/MappingWindow: Fix invalid device being selected by default 2018-02-03 20:21:44 +01:00
Anthony 32d206362f
Merge pull request #6351 from spycrab/qt_fix_switch
Qt: Work around broken drivers that don't allow backend switching
2018-02-03 09:18:16 -08:00
spycrab 7c5e464584 Qt: Work around broken drivers that don't allow backend switching 2018-02-03 14:19:12 +01:00
Léo Lam 2ab29e8284
Merge pull request #6311 from cbdevnet/master
Have dolphin-emu-nogui conform to the _NET_WM_PID protocol
2018-02-03 10:42:49 +01:00
cbdev 6182ab6a6a dolphin-emu-nogui: Conform to the _NET_WM_PID protocol 2018-02-03 03:43:42 +01:00
Stenzek cf5bf3899f
Merge pull request #6345 from spycrab/qt_fix_fsw
Qt/FileystemWidget: Fix crash when right-clicking GC disc
2018-02-03 00:56:55 +10:00
Stenzek e20eac72f4
Merge pull request #6347 from spycrab/qt_update_defiso
Qt/Settings: Update default gamelist path textbox when changed
2018-02-03 00:55:45 +10:00
Stenzek 3e494baff2
Merge pull request #6346 from spycrab/qt_dbg_checkbox
Qt/NewBreakpointDialog: Fix radio button weirdness
2018-02-03 00:50:30 +10:00
Stenzek 75583ab098
Merge pull request #6350 from spycrab/qt_gc_selbug
Qt/GameCubePane: Fix file selection
2018-02-03 00:48:08 +10:00
spycrab 3f4a3b2456 Qt/GameCubePane: Fix file selection 2018-02-02 12:32:55 +01:00
Stenzek 260d5b7aa7 BPMemory: Handle fog configuration where both A and C are infinity/NaN
The console appears to behave against standard IEEE754 specification
here, in particular around how NaNs are handled. NaNs appear to have no
effect on the result, and are treated the same as positive or negative
infinity, based on the sign bit.

However, when the result would be NaN (inf - inf, or (-inf) - (-inf)),
this results in a completely fogged color, or unfogged color
respectively. We handle this by returning a constant zero for the A
varaible, and positive or negative infinity for C depending on the sign
bits of the A and C registers. This ensures that no NaN value is passed
to the GPU in the first place, and that the result of the fog
calculation cannot be NaN.
2018-02-01 17:40:39 +10:00
Anthony 1264daae9b
Merge pull request #6327 from spycrab/qt_memcard_manager
Qt: Implement GameCube memcard manager
2018-01-31 13:22:40 -08:00
spycrab 28ad12bf30 Qt/Settings: Update default gamelist path textbox when changed 2018-01-31 19:58:02 +01:00
spycrab 8f43f379a0 Qt/NewBreakpointDialog: Fix radio button weirdness 2018-01-31 19:28:44 +01:00
spycrab 8a612bf285 Qt/FileystemWidget: Fix crash when right-clicking GC disc 2018-01-31 13:51:46 +01:00
Stenzek 987bec2fd5
Merge pull request #6342 from spycrab/qt_rw_flicker
Qt/RenderWidget: Avoid flickering
2018-01-31 12:43:19 +10:00
Léo Lam d04b179111
Merge pull request #6344 from spycrab/qt_gc_mcselector
Qt/GameCubePane: Fix memory card selector
2018-01-30 17:49:13 +01:00
spycrab 50eb8a5c81 Qt/AdvancedPane: Add ability to change clock speed while the game is running 2018-01-30 12:08:44 +01:00
spycrab 350c1f999c Qt/GameCubePane: Fix memory card selector 2018-01-30 10:23:57 +01:00
spycrab e5994706eb Qt/RenderWidget: Avoid flickering 2018-01-30 10:05:50 +01:00
Léo Lam 3bceb3c52a
Merge pull request #6328 from spycrab/qt_fix_gc_amnesia
Qt/GameCubePane: Various fixes
2018-01-29 21:58:59 +01:00
Stenzek fe5150cc31
Merge pull request #6303 from TraceBullet/auto-adjust-window-size
Fix Auto-Adjust Window Size option making the window too large
2018-01-29 17:28:44 +10:00
spycrab 21db1e9504 Qt: Implement GameCube memory manager 2018-01-29 01:01:25 +01:00
spycrab d0b64745d8 Qt/RegisterColumn: Fix value columns not being editable 2018-01-28 17:10:33 +01:00
spycrab 28e0388658 Qt/GameCubePane: Fix EXIDevices resetting to Nothing 2018-01-27 15:09:14 +01:00
Stenzek 15efd42eba Jit64: Don't flush PC in exception block
These blocks can only be executed as a result of a DSI exception from a
loadstore, where we now flush the PC register prior to the loadstore.
2018-01-27 22:32:57 +10:00
Stenzek 8933fe599c Jit64: Update PC before slowmem reads as well as writes 2018-01-27 22:29:39 +10:00
Stenzek 7f3c31d78d Jit64: Set correct PC when emitting slowmem trampoline 2018-01-27 18:19:42 +10:00
Stenzek 505d30be3d DolphinWX: Move fullscreen switch to after startup is complete
This means that any error messages won't be hidden by the fullscreen
window.
2018-01-27 14:17:14 +10:00
Stenzek c790077c13 VideoBackend: Remove PeekMessages method
The video thread and backend no longer create any windows, therefore
there will never be any messages dispatched to their thread.
2018-01-27 13:53:55 +10:00
Stenzek d96e8c9d76 VideoBackends: Combine Initialize/Prepare and Cleanup/Shutdown methods
Also allows the work previously done in Prepare to return a failure
status.
2018-01-27 13:53:55 +10:00
Stenzek 04027a7da7 Core: Improve ordering of boot
- Smplification of graphics backend startup/shutdown.
- Don't send complete message until CPU is ready to execute.
- Remove redundant stop message.
- Remove OSD message with backend name.
2018-01-27 13:53:55 +10:00
Stenzek f9053527a9 Core: Don't spawn an extra thread in single-core mode
We don't need a message pump thread for the video backend, as the window
is created on the UI thread, not the "idle" emu thread.
2018-01-27 13:53:55 +10:00
Stenzek c81ac1a81d
Merge pull request #6332 from stenzek/frame-dump-crash
Renderer: Fix crash on shutdown when frame dumping or taking screenshots
2018-01-27 12:27:46 +10:00
TraceBullet ab6f932347 Fix Auto-Adjust Window Size option making the window too large 2018-01-26 10:47:19 -05:00
Léo Lam 0eaf3deb1e
Merge pull request #6322 from spycrab/qt_gecko_input
Qt/GeckoCodeWidget: Add option to add/remove gecko codes from UI
2018-01-26 13:33:15 +01:00
Léo Lam 28176d0117
Merge pull request #6309 from sepalani/rsbk-sym-map
PPCSymbolDB: two columns symbol map support added
2018-01-26 13:12:46 +01:00
Léo Lam 2ad344b725
Merge pull request #6323 from spycrab/qt_connect_wiimote
Qt: Implement "Connect Wii Remotes" menu
2018-01-26 13:10:22 +01:00
Stenzek 81ae88d2d5 AbstractTexture: Fix crash in Vulkan backend when freeing texture 2018-01-26 19:12:11 +10:00
Stenzek fd39103c73 Vulkan: Fix invalid stage mask in layout transitions 2018-01-26 12:33:24 +10:00
Stenzek 47f453d7aa Vulkan: Fix waiting on non-existant fence when reading back 2018-01-26 12:33:24 +10:00
Stenzek 3f197480ef Renderer: Fix crash on shutdown when frame dumping or taking screenshots 2018-01-26 12:12:00 +10:00
spycrab ee90893bfe Qt/GeckoCodeWidget: Option to add/remove gecko codes from UI 2018-01-24 21:09:59 +01:00
JosJuice c5ac325fb8 Add missing &s to Qt AR strings
Without this, the strings differ from DolphinWX
and thus have to be re-translated by the translators.
2018-01-24 20:38:41 +01:00
spycrab aae5c950f0 Qt: Implement "Connect Wii Remotes" menu 2018-01-24 19:47:47 +01:00
spycrab d9d75c27f0 Qt/ARCodeWidget: Use CheatCodeEditor 2018-01-24 13:42:00 +01:00
spycrab a0f787aa1b Qt: Turn ARCodeEditor into general purpose CheatCodeEditor 2018-01-24 13:35:13 +01:00
Sepalani df9611255a PPCSymbolDB: two columns symbol map support added 2018-01-24 12:43:23 +01:00
Markus Wick c66156148d
Merge pull request #6317 from stenzek/renderer-bind
AbstractTexture: Move Bind() method to Renderer
2018-01-24 12:19:53 +01:00
Léo Lam 432ebe793e
Merge pull request #6318 from JosJuice/qt-debugger-strings
Tweak Qt debugger strings to be more translation friendly
2018-01-24 10:39:11 +01:00
Léo Lam a972892821
Merge pull request #6320 from sepalani/dwc_printf
HLE: DWC_Printf debug added
2018-01-24 10:29:02 +01:00
Anthony 2c1cb609cc
Merge pull request #6287 from spycrab/qt_gamecube
Qt/Settings: Implement "GameCube pane"
2018-01-23 12:25:05 -08:00
Anthony 440101a6bb
Merge pull request #6279 from spycrab/qt_arcodes
Qt: Implement "AR Codes"
2018-01-23 12:23:54 -08:00
Sepalani 6ffb5dbaaa HLE: DWC_Printf debug added 2018-01-23 19:02:32 +01:00
Stenzek 38e0b6e2ab AbstractTexture: Move Bind() method to Renderer
This makes state tracking simpler, and enables easier porting to command
lists later on.
2018-01-22 13:22:09 +10:00
JosJuice 04b9310bb6 Tweak Qt debugger strings to be more translation friendly 2018-01-21 16:33:46 +01:00
Markus Wick fca56d532a
Merge pull request #4453 from degasus/custom_texture
CustomTexture: Drop old texture format.
2018-01-21 11:22:49 +01:00
spycrab 42c562afbc Qt: Fix render window resize bug 2018-01-20 21:05:04 +01:00
degasus a5a0599145 CustomTexture: Drop old texture format. 2018-01-20 17:08:47 +01:00
degasus 0b466249e0 CustomTextures: Drop format convertion. 2018-01-20 16:39:04 +01:00
JosJuice 2441fd28d5 AVIDump: Remove incorrect usage of s_ prefix 2018-01-17 22:19:14 +01:00
Markus Wick e02025b45e
Merge pull request #6307 from rukai/fix-frame-dump-path
Handle framedump path not existing
2018-01-17 22:02:51 +01:00
Lucas Kent 6c7e6016fb Handle framedump path not existing 2018-01-18 07:53:30 +11:00
Markus Wick cb7eede193 VideoCommon: Apply custom texture scale for arbitrary mipmaps.
We want to get the same mipmap level. And if the IR and the custom
texture upscaling fits, we don't need to modify the LOD bias.
2018-01-17 09:02:36 +01:00
Markus Wick 2a43f41ace
Merge pull request #6297 from JosJuice/custom-texture-arb-filename
Treat custom textures with "_arb" suffix as having arbitrary mipmaps
2018-01-15 09:58:30 +01:00
spycrab fffa883cae Qt/Settings: Implement "GameCube pane" 2018-01-14 12:24:05 +01:00
Léo Lam 27b6a2e634
Merge pull request #6292 from gyroninja/master
Fixed SIGSEGV in PPCDebugInterface When Reading Too Early in The Boot Process
2018-01-13 14:34:38 +01:00
Léo Lam 973bd154b9
Merge pull request #6304 from container1234/qt-debugger
Qt/Debugger: Minor fixes
2018-01-13 11:53:20 +01:00
container1234 025d9383ac Use double instead of float for FPRs 2018-01-13 19:33:11 +09:00
container1234 b6138b9408 Fix 64bit registers that are not displayed correctly 2018-01-13 16:21:32 +09:00
gyroninja 9628e22916 Changed PPCDebugInterace to check memory only after the emulator has finished starting 2018-01-12 15:18:29 -08:00
Léo Lam 955214c6b6
Merge pull request #6299 from Ebola16/master
ISOProperties: Rename "Edit Config" and "Show Defaults"
2018-01-12 21:34:16 +01:00
Markus Wick 56d74d65d0
Merge pull request #6298 from 34will/feature/Android_Single_Char_Fix
[Android] Fix for single char name for Wii and WAD Games
2018-01-12 09:41:52 +01:00
Stenzek ce0c699b66
Merge pull request #6246 from stenzek/vulkan-readback-fixes
Vulkan: Fix MSAA regression from 5.0-5968
2018-01-12 11:46:55 +10:00
34will 86a787bdf9 Modified StringUtil to change UTF16ToUTF8 to use a wstring_convert and codecvt_utf8<wchar_t> to convert a UTF16 wstring to a UTF8 string. 2018-01-11 21:49:25 +00:00
Markus Wick b93ae14272
Merge pull request #6300 from JonnyH/WIP/glsl-es-implicit-int-float-conversions-in-gpu-texture-decode
GLSL-ES doesn't allow implicit int/uint conversions
2018-01-11 22:22:05 +01:00
34will a949e98d9b Modified UTF16BEUTF8 to just convert the UTF-16 C-string into a std::u16string, and pass it into CodeToUTF8 with the 'from' parameter being "UTF-16BE", rather than manually performing the big endian to little endian encoding. 2018-01-11 19:51:19 +00:00
Jonathan Hamilton 46254a2cf2 Some more implicit uint/float conversions in the texture decode shaders 2018-01-11 11:15:40 -08:00
Jonathan Hamilton f23dd992dd GLSL-ES doesn't allow implicit int/uint conversions 2018-01-11 10:54:55 -08:00
Ryan Meredith 1fabc93756 ISOProperties: Rename Edit Config and Show Defaults 2018-01-11 08:31:01 -05:00
Stenzek 4997fbce44 Vulkan: Fix possible mismatch between EFB framebuffer and render pass
This could happen when changing MSAA settings or internal resolution at
runtime.
2018-01-11 16:02:31 +10:00
Stenzek 0525726338 Vulkan: Move pipeline barrier outside render pass for EFB peeks 2018-01-11 15:36:01 +10:00
Stenzek 48a8063cd5 Vulkan: Fix FramebufferManagerBase::m_EFBLayers being set out-of-range 2018-01-11 15:30:27 +10:00
Stenzek 173a33886c Vulkan: Move render pass management to ObjectCache 2018-01-11 15:21:34 +10:00
Stenzek 0e50b2c9f2 Vulkan: Add missing layout transition when resolving MSAA depth buffers 2018-01-11 15:21:33 +10:00
34will ba111959fa Modified StringUtil to use a u16string instead of a wstring in the non-win32 UTF16BEToUTR8 method. 2018-01-11 02:45:27 +00:00
JosJuice 226b65bd38 Clean up variable naming in HiresTextures::Update 2018-01-10 17:53:51 +01:00
JosJuice c25fffc9a0 Treat custom textures with "_arb" suffix as having arbitrary mipmaps
This is adapted from Bighead's code that was posted at
https://forums.dolphin-emu.org/Thread-dolphin-custom-texture-mipmaps?pid=460867#pid460867

In master, custom textures are never treated as having arbitrary mipmaps,
so we need either a change like this or a change that makes us apply the
arbitrary mipmap heuristic even when a custom texture is used.
2018-01-10 17:51:45 +01:00
Anthony 57640a4c83
Merge pull request #6293 from container1234/dolphinqt-debugger
Qt/Debugger: Add TB, XER and GQRs to Registers Window
2018-01-09 21:25:17 -05:00
container1234 5cff714b77 Qt/Debugger: Add TB, XER and GQRs to Registers Window 2018-01-09 18:09:01 +09:00
Markus Wick 22f469697b
Merge pull request #6290 from JosJuice/invalid-aspect-ratio
Treat invalid aspect ratio setting values as Auto
2018-01-08 13:46:30 +01:00
JosJuice 1557e6ab05 Specify underlying types for enums that get casted from integers
Otherwise we might get UB if the value we cast is larger than the
max value of the underlying type that the compiled picked for the enum.

I haven't done any extensive check through Dolphin to find cases
of this, I'm just fixing the cases I already know of.
2018-01-08 12:14:18 +01:00
JosJuice a2404c42a1 Treat invalid aspect ratio setting values as Auto 2018-01-06 12:53:53 +01:00
Markus Wick 56d153f548 VideoCommon: Apply the yscale as upscaling of the XFB. 2018-01-06 10:36:33 +01:00
Markus Wick dc08b73db1
Merge pull request #6141 from JonnyH/WIP/shader-framebuffer-fetch2
Implement dual-source blending in shader
2018-01-05 23:42:43 +01:00
Markus Wick 1cf1e7cde0
Merge pull request #6286 from JosJuice/game-list-cache-vector
DolphinWX: Speed up in-memory operations on game list cache
2018-01-05 23:37:41 +01:00
JosJuice 6ad04fc589
Merge pull request #6288 from JosJuice/boot-savestate-thread
Don't involve host thread when booting from savestate
2018-01-05 21:45:28 +01:00
JosJuice af51063a9a DolphinWX: Rewrite the logic for adding/removing games from cache
Thanks to degasus for coming up with most of this faster design.
2018-01-05 19:52:14 +01:00
Jonathan Hamilton c709f3c2d1 Standardise some enums from ALL_CAPS to CamelCase 2018-01-05 10:03:58 -08:00
Jonathan Hamilton ceb1f8c8cb Enable shader_framebuffer_fetch blend path on ubershaders
Tested on a linux Intel Skylake integrated graphics with
blend_func_extended force-disabled, as it's the only platform I have
that doesn't crash with ubershaders and supports fb_fetch
2018-01-05 09:56:46 -08:00
Jonathan Hamilton 8d68adcaf3 Workaround qualcomm driver bug
It seems it doesn't like modifying inout variables in place - so instead
use a temporary for ocol0/ocol1 and only write them once at the end of
the shader
2018-01-05 09:56:46 -08:00
Jonathan Hamilton 29a9ed043b Implement dual-source blending in shader
For some GLES drivers that don't support dual-source blending, but do
support GL_EXT_shader_framebuffer_fetch, this might be useful.
2018-01-05 09:56:46 -08:00
Markus Wick 11976526d1
Merge pull request #6283 from JosJuice/qt-vs-launch
Fix launching DolphinQt2 from Visual Studio
2018-01-05 15:34:33 +01:00
Markus Wick ff8893b1a9
Merge pull request #6277 from vladfi1/surfaceless_egl
Surfaceless egl rendering.
2018-01-05 15:20:35 +01:00
JosJuice c492a5a86a Don't involve host thread when booting from savestate
Suggested by https://github.com/dolphin-emu/dolphin/pull/6271#discussion_r159868704
2018-01-05 14:14:12 +01:00
Markus Wick e705d43312
Merge pull request #6270 from mahdihijazi/suppport_restore_state
[Android] Support restore emulator state
2018-01-05 13:45:36 +01:00
spycrab 2167a45c24 Qt/Mapping: Implement Microphone widget 2018-01-04 18:42:42 +00:00
JosJuice 04cefc6ed3 DolphinWX: Use vector instead of list for game list cache
The advantage of std::list is that elements can be removed from the
middle efficiently, but we don't actually need that, because the
ordering of the elements doesn't matter for us. We can just replace the
element we want to remove with the last element and then call pop_back.

Replacing list with vector should speed up looping through the elements.
2018-01-04 17:14:35 +01:00
JosJuice e44b64b82c DolphinQt2: Don't use a mutex in GameFileCache
GameTracker's usage of GameFileCache is thread-safe even without
using a mutex. All of its access to GameFileCache happens on the
thread m_load_thread, except for the call to GameFileCache::Load,
which finishes before m_load_thread starts executing.
2018-01-04 16:33:15 +01:00
JosJuice 9988652d86 Fix launching DolphinQt2 from Visual Studio
Starting with 5.0-5504, trying to launch DolphinQt2 from Visual Studio
shows the error message "The operation could not be completed. Undefined
error" instead of launching the exe file. (The exe gets created
correctly, it just doesn't get launched. It's possible to work around
the problem by launching the exe manually outside of Visual Studio, but
then you won't have an attached debugger automatically.) This commit
fixes that by removing headers from DolphinQt2.vcxproj's ClInclude list
that already are in the QtMoc list. (The problem was originally about
LogWidget.h and LogConfigWidget.h, but 5.0-5600 made the problem be
about CheatWarningWidget.h and GeckoCodeWidget.h instead.)
2018-01-04 13:03:47 +01:00
Léo Lam 637fbec35d
Merge pull request #6274 from myfreeweb/freebsd-libusb-no-detach
passthrough: do not detach kernel driver on FreeBSD
2018-01-04 10:39:58 +01:00
Vlad Firoiu 330881ae80 Allow users to specify the encoder used for framedumping. 2018-01-03 13:23:10 +01:00
Léo Lam 1f89d91deb
Merge pull request #6280 from spycrab/qt_screensaver
Qt: Toggle Screensaver
2018-01-03 13:13:18 +01:00
spycrab adada16603 Qt: Toggle Screensaver 2018-01-03 12:38:34 +01:00
spycrab 0dd52ca7ab UICommon: Move screensaver code to UICommon 2018-01-03 12:38:33 +01:00
Markus Wick 075a226961
Merge pull request #4437 from sepalani/d3d11_fix_debug_build
MAX_XFB_HEIGHT: PAL value off by two fixed
2018-01-03 08:53:26 +01:00
Pierre Bourdon fd13851df2
Merge pull request #6076 from spycrab/qt_debugger
Qt: Implement Debugger (part 1 of ∞)
2018-01-03 03:44:27 +01:00
Markus Wick cb168b1843
Merge pull request #6134 from ligfx/soundstreamlifecycle
SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct
2018-01-02 09:58:36 +01:00
spycrab afa69a5876 Qt: Implement "AR Codes" 2018-01-01 21:44:49 +00:00
spycrab 4f4021686e Qt/KDE: Fix icon 2018-01-01 12:31:53 +00:00
Sepalani 44935c23e0 MAX_XFB_HEIGHT: PAL value off by two fixed 2017-12-30 20:22:10 +01:00
Vlad Firoiu 45ac9b678d Require WINDOW_BIT if we have a window handle. 2017-12-29 23:20:16 -05:00
Vlad Firoiu eb59267196 Surfaceless egl rendering. 2017-12-29 19:35:43 -05:00
JosJuice 82a6701f79 Optionally delete savestate that gets loaded at boot 2017-12-28 23:15:48 +01:00
spycrab b63ec57c1e Qt: Connect debugging widgets 2017-12-28 19:08:38 +01:00
spycrab 8795b342d1 Qt/Debugger: Implement "Breakpoints" window 2017-12-28 19:08:38 +01:00
spycrab 08716be43b Qt/Debugger: Implement "Watch" window 2017-12-28 19:07:56 +01:00
spycrab ec37ce093f Qt/Debugger: Implement "Registers" window 2017-12-28 19:07:18 +01:00
spycrab 2a19ccf806 Qt/InterfaceSettings: Add "Show Debugging UI" option 2017-12-28 18:59:42 +01:00
spycrab ff283ff912 Qt/Settings: Add debug mode flag 2017-12-28 18:59:42 +01:00
JosJuice 1df69c5750
Merge pull request #6051 from JosJuice/android-sys
Android: Extract Sys to a different folder than the User folder
2017-12-27 17:34:24 +01:00
JosJuice 9dd88d76dd Redesign the ability to load state at boot
BootParameters can now contain the path of a savestate to load at boot.
Movie has been made to use this instead of poking at Core.cpp's state.
2017-12-26 20:39:03 +01:00
Greg V 5c1c67d4d8 passthrough: do not detach kernel driver on FreeBSD
libusb_detach_kernel_driver() always fails as a regular non-root user:
https://lists.freebsd.org/pipermail/freebsd-usb/2016-March/014161.html
2017-12-26 21:50:50 +03:00
JosJuice b3b7aef09a Android: Extract Sys to a different folder than the User folder 2017-12-26 09:53:32 +01:00
JosJuice ac18cffcab DolphinQt2: Don't crash when trying to play without a game selected 2017-12-25 18:41:53 +01:00
JosJuice d1c1793a34 Don't expose SYSDATA_DIR in a header 2017-12-24 17:13:04 +01:00
Leo Lam b187d4cd08
Merge pull request #6269 from JosJuice/ini-section-mapping
GameConfigLoader: Map whole sections, not just individual keys
2017-12-24 15:26:47 +01:00
JosJuice f41273fe79 GameConfigLoader: Map whole sections, not just individual keys
There are two reasons for this change:

1. It removes many repetitive lines of code.

2. I think it's a good idea to enable the use of old-style section
names even for settings that previously haven't been settable in game
INIs. Mixing the two styles in INIs (using the new style only for new
settings) is not ideal, and people on the forums don't even seem to
know that the new style exists (nobody knew a way to set ubershader
settings per game, for instance). Encouraging everyone to start using
only the new style might work long-term, but it would take take time
and effort to make everyone get used to it. Considering that this commit
*reduces* the amount of code by adding the ability to use old-style
names for more settings, I'd say that adding this ability is worth it.
2017-12-23 18:59:27 +01:00
JosJuice 5296ee6d3d Reduce the indentation level of MapINIToRealLocation 2017-12-23 18:25:49 +01:00
iwubcode 50d96a4411 BPStructs: Use static cast for XFB/EFB copies 2017-12-21 21:19:26 -06:00
iwubcode e1332b1d7e Texture Cache Base: Move PAL vertical scaling to be baked into the texture size. This saves on a number of multiplications and fixes an issue where we were multiplying the y-scaling factor by the srcRectangle's height + 1 which was causing a crash in some GC titles 2017-12-21 21:19:26 -06:00
Ryan Meredith 1f226ec14f Update Readme.md and various fixes 2017-12-20 10:54:51 +01:00
JosJuice a3355a3e4a Only use the "Scaled EFB Copy" setting for EFB, not XFB
The hybrid XFB PR made it apply to both EFB copies and XFB copies.
2017-12-19 12:59:36 +01:00
Markus Wick 5006ac5c51
Merge pull request #6262 from linkmauve/no-shadow
Rename constructor parameters to avoid shadowing members
2017-12-19 12:23:32 +01:00
Emmanuel Gil Peyrot f5dc8e7737 Rename constructor parameters to avoid shadowing members 2017-12-19 12:05:06 +01:00
Emmanuel Gil Peyrot d9c2de90c0 Reimplement EFB copy for intensity formats
This is the direct continuation of #5887, and removes the last usage of
the colmat matrix in EFB copy conversion shaders.
2017-12-19 12:04:56 +01:00
Markus Wick 0bf24f549a
Merge pull request #6190 from JosJuice/is-trivially-copyable-vs
Remove IsTriviallyCopyable hack for VS
2017-12-19 11:15:58 +01:00
Markus Wick ed13a8d7a7
Merge pull request #6255 from JosJuice/strerrorr-detect
Handle both the XSI and GNU versions of strerror_r
2017-12-19 09:47:51 +01:00
Markus Wick 5afd07c033
Merge pull request #6254 from iwubcode/frame_counter_and_advance_fix
Video Common: frame logic fix
2017-12-19 09:44:49 +01:00
JosJuice bd5da5cfd6 Handle both the XSI and GNU versions of strerror_r
Trying to force the XSI version by undefining _GNU_SOURCE can lead
to compilation errors on some systems because of headers expecting
that _GNU_SOURCE is defined.

This commit uses define checks to detect which version we have.
I tried making an overloaded function (int and const char*) instead,
but that led to a warning about one of the variants being unused.
2017-12-18 22:09:02 +01:00
JosJuice 4973ae9952 Rename GFX_HACK_COPY_EFB_ENABLED to GFX_HACK_COPY_EFB_SCALED
Not sure why it was named like this... It doesn't affect whether
the copy happens or not, only what resolution it uses.
2017-12-18 21:55:02 +01:00
Leo Lam 4733bbd8f3
Merge pull request #6166 from ligfx/invokedeviceschangedcallbacks
ControllerInterface: cleanup callbacks API and logic
2017-12-15 21:05:17 +01:00
Leo Lam a4592bc3c5
Merge pull request #6210 from ligfx/qtmappingwindowdontstoredevq
MappingWindow: don't store devq separately from controller default device
2017-12-15 20:50:06 +01:00
Leo Lam 7e7f1fe713
Merge pull request #6226 from aldelaro5/add-xer-debugger
debugger: Add the XER to the register view
2017-12-15 20:49:24 +01:00
Leo Lam fa0cf5c038
Merge pull request #6247 from leoetlino/homebrew
Boot: Minor fixes for Wii homebrew
2017-12-15 20:47:02 +01:00
bobjrsenior 7589ade972 DolphinWX: Add TB and GQR to Register Window
The Time Base Register was added under the BAT registers. TBL and TBU
were ORed together to get one 64-bit value to display. It is labeled TB

The Graphics Quantisation Registers were added under the Segment
Registers. They are Labeled GQR0-GQR7.

All new registers are read only.
2017-12-15 20:38:46 +01:00
iwubcode 2f7eacd08c Video Common: move frame advance and counter logic to only happen when we actually render a frame. 2017-12-15 12:46:18 -06:00
Jonathan Hamilton a38103afbf Fix GLES GPU texture conversion shader
GLES doesn't support C-style array initialisers, so stuff like:

Type var[2] = {
VALUE_A,
VALUE_B
};

isn't supported in GLES (it was added in
GL_ARB_shading_language_420pack).

The texture conversion shader used this, so would fail to compile on
GLES.
2017-12-12 22:01:10 +00:00
Markus Wick a70c03a1c0
Merge pull request #6249 from stenzek/texture-dump
Texture dumping regression fixes
2017-12-11 08:44:09 +01:00
Jonathan Hamilton e401004766 Fix an invalid (uint < int) comparison in GLES with ubershaders 2017-12-10 10:52:32 -08:00
Stenzek 2579f8eaa5 TextureCache: Don't dump custom textures
They don't have a basename, therefore were being saved to empty files, and potentially can be compressed.
2017-12-10 15:31:46 +10:00
Stenzek 5f5aca7870 OGL: Fix incorrect usage of glGetTextureSubImage
Was causing issues with texture dumping on newer drivers.
2017-12-10 15:31:14 +10:00
Markus Wick eb1ae38304
Merge pull request #6027 from JonnyH/WIP/chained-signal-handler-android-debuggerd
Call the previously-set sigaction in fastmem handler if it's not our fault
2017-12-10 00:18:13 +01:00
Jonathan Hamilton 8ae76a6680 Fix arm64 MOVI2R for addresses between 2gb and 4gb offset from PC
The PC offset ADRP() path takes a s32 value, but the input offset was
being tested as abs(ptr) < 0xFFFFFFFF. This caused values between
0x80000000 and 0xFFFFFFFF to incorrectly use this path, despite the
offsets not being representable in an s32.

This caused a crash in the VertexLoader on android 8.1 immediate in wind
waker (and possibly all other apps on android 8.1) as the jit and data
sections happened to be loaded 4gb apart in virtual memory, causing some
pointers to hit this
2017-12-09 13:21:58 -08:00
Léo Lam 3dd777be70 Boot: Add default exception handlers
Some homebrew expect exception handlers to be present -- which is
almost always the case on console, since most of the time homebrew are
launched from either a libogc or SDK title) -- and break if they are
not. To fix this, we just need to include default, dummy handlers.
2017-12-09 17:24:04 +01:00
Léo Lam 520039ab28 Boot: Use values from libogc for booting Wii homebrew
Set HID0, HID4, GPR1 to values that are used by libogc for
initialisation. This makes boots more similar to a launch
from the HBC or another loader, since normally the registers
have already been initialised by the loader.

This fixes a crash in homebrew that assume GPR1 points to a correct
location and attempt to use it before initialising registers.
2017-12-09 17:24:03 +01:00
Léo Lam ecd7191b5a Boot: Fix BAT setup in Wii mode
HID4.SBE must be set before calling PowerPC::Update{D,I}BAT, otherwise
extended BATs will not be enabled.
2017-12-09 17:24:03 +01:00
Leo Lam 1a9d6b99e9
Merge pull request #6237 from lioncash/gekko-disasm
GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
2017-12-08 22:50:40 +01:00
Lioncash e88c457276 DolphinWX: Resolve missing declaration warnings
Without the include, the prototypes of the functions can't be found
2017-12-07 18:58:20 -05:00
Anthony 3b887388cd
Merge pull request #6234 from amolloy/high_sierra
Fix Wiimote support on macOS 10.13 High Sierra
2017-12-07 12:04:37 -08:00
Pierre Bourdon 8a830074b6
Merge pull request #6220 from leoetlino/utf8
WX: Fix argument parsing
2017-12-07 15:16:39 +01:00
Leo Lam ecf30cfc74
Merge pull request #6240 from JosJuice/stream-path-encoding
Don't use wrong encoding for paths when opening streams on Windows
2017-12-07 10:04:55 +01:00
degasus 02dd062518 VideoCommon: Drop now unused efb2tex matrix generation. 2017-12-06 09:30:03 +01:00
JosJuice 9d8a82e1d9 Don't use wrong encoding for paths when opening streams on Windows 2017-12-05 21:23:35 +01:00
Stenzek d0601c0a83 TextureConversionShader: Use round() instead of roundEven() in HLSL
HLSL does not define roundEven(), only round(). This means that the
output may differ slightly for OpenGL vs Direct3D. However, it ensures
consistency across OpenGL drivers, as round() in GLSL can go either way.
2017-12-06 03:33:50 +10:00
Stenzek e0ffce2785 D3D: Use VideoCommon EFB-to-texture shaders 2017-12-06 03:33:50 +10:00
Stenzek beb35320f6 TextureConverterShaderGen: Make generated shaders HLSL-compatible 2017-12-06 03:33:50 +10:00
Leo Lam 08da19fc87
Merge pull request #6217 from ligfx/qtfifofix
FIFOPlayerWindow: don't reset frame/object limit every frame
2017-12-04 12:05:33 +01:00
Lioncash ed2be3b8e3 DolphinWX/Main: Fix shader compilation dialog translations
Fixes issue 10685
2017-12-04 04:33:49 -05:00
Markus Wick 30b5cbcb02
Merge pull request #6235 from lioncash/reorder
WiiSaveBanner: Resolve a -Wreorder warning
2017-12-04 08:52:42 +01:00
Lioncash de82330a74 GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
These three instructions use the B field (bits 16-20 of the opcode)
to determine what the operand register is. However, the code was
using the path that uses the C field (bits 21-25).

This amends the code to use the B field (and also fixes the 64-bit PPC
opcodes, because why not?).

Fixes issue 10683.
2017-12-04 00:02:35 -05:00
Lioncash 050440fd5b OGL/TextureConverter: Remove unnecessary using declaration 2017-12-03 18:51:22 -05:00
Lioncash 93e85f9a7c OGL/TextureConverter: Resolve -Wmissing-variable-declaration warnings 2017-12-03 18:51:17 -05:00
Lioncash 666af4605e WiiSaveBanner: Resolve a -Wreorder warning 2017-12-03 18:34:49 -05:00
Andrew Molloy f5839f854a Fix whitespace in and around WiimoteScannerDarwin::~WiimoteScannerDarwin() (linter). 2017-12-03 12:31:18 -05:00
Andrew Molloy 8354e89cf1 Break out of the loop waiting for the SearchBT to be done in WiimoteScannerDarwin::FindWiimotes() when the object is destroyed. Allows the application to quit correctly when Continuous Scanning is enabled on macOS. 2017-12-03 11:41:06 -05:00
Andrew Molloy d306397bbc -[deviceInquiryComplete:error:aborted:] comes in on the main thread in macOS 10.13, so instead of using CFRunLoopRun()/CFRunLoopStop(), just let the run loop do one pass. This is already in a loop waiting for done to be false. This also means -[deviceInquiryComplete:error:aborted:] should no longer call CFRunLoopStop(). Fixes connecting to Wiimotes in macOS 10.13+, should continue to work as before in 10.12 and below. 2017-12-03 10:32:07 -05:00
Markus Wick 8bcc392d5d
Merge pull request #5887 from linkmauve/alpha-fix
Simplify EFB copy shaders
2017-12-03 11:21:08 +01:00
JosJuice f68956a614
Merge pull request #6232 from lioncash/d3d-vert-mgr
D3D/VertexManager: Add missing includes
2017-12-03 09:24:23 +01:00
Lioncash 6ca85dbf0a VKTexture: Add missing override specifier to the other ScaleRectangeFromTexture() prototype 2017-12-02 20:20:13 -05:00
Lioncash c7bc16811c VKTexture: Remove unimplemented ScaleRectangleFromTexture() prototype 2017-12-02 20:15:32 -05:00
Lioncash b0fadbb5de D3D/VertexManager: Add missing includes
Gets rid of reliance on indirect includes
2017-12-02 20:09:33 -05:00
Léo Lam d95177526f VideoBackends: Fix -Wswitch warnings 2017-12-02 21:52:07 +01:00
Léo Lam 67ba326ff6 VideoCommon: Fix -Wformat warnings 2017-12-02 21:48:01 +01:00
Emmanuel Gil Peyrot 85bb1d7bb0 VideoCommon: Reimplement texture format conversion
This fixes the rendering of the scan visor in Metroid Prime 2: Echoes,
as seen in https://fifoci.dolphin-emu.org/dff/mp2-scanner/

The alpha channel was off-by-one on Ivy Bridge due to the rounding
after multiplication with colmat.  This commit removes this matrix
altogether in most cases, making them simple GLSL swizzles.
2017-12-02 19:29:01 +01:00
Anthony d71f4168e9
Merge pull request #6229 from JosJuice/clarify-keys-dump
Clarify the "Select the OTP/SEEPROM dump" message
2017-12-02 09:49:22 -08:00
JosJuice c4db59e7b6 Clarify the "Select the OTP/SEEPROM dump" message
Most users don't know what OTP/SEEPROM means.
2017-12-02 18:23:38 +01:00
JosJuice 05879875f6 Make USB keyboard input respect the background input setting 2017-12-02 18:12:04 +01:00
Markus Wick 76fbdbb06e
Merge pull request #5903 from linkmauve/fix-mp2e
Round values in swizzlers
2017-12-02 17:38:21 +01:00
degasus e2a9ee384f VideoCommon: Rename TextureConversionShader namespace. 2017-12-02 15:17:39 +01:00
degasus e8febd0cef VideoCommon: Create a namespace for TextureConversionShaderGen. 2017-12-02 15:17:39 +01:00
Markus Wick 491c10ec96 VideoBackends: Use VideoCommon shader generators for efb2tex copies.
This will generate one shader per copy format. For now, it is the same
shader with the colmat hard coded. So it should already improve the GPU
performance a bit, but a rewrite of the shader generator is suggested.

Half of the patch is done by linkmauve1:
VideoCommon: Reorganise the shader writes.
2017-12-02 15:17:39 +01:00
aldelaro5 b7fdf374e6 debugger: Add the XER to the register view 2017-12-01 05:31:41 -05:00
Lioncash 1e7096dd27 D3DBase: Mark file-scope variables as internally linked where applicable 2017-11-30 23:46:46 -05:00
Stenzek cd68b3606c
Merge pull request #6193 from stenzek/readbacks
Abstract Staging Textures - VideoCommon interface for texture readbacks/uploads
2017-12-01 14:24:06 +10:00
Anthony 7c96e51bc8
Merge pull request #6187 from raelgc/1-exit-on-esc
Add an exit key to `dolphin-emu-nogui`
2017-11-27 13:30:33 -08:00
Léo Lam 291c99217e Qt: Fix NAND import menu item parent 2017-11-26 18:33:07 +01:00
Léo Lam 6e796a74fb Qt: Add support for --exec 2017-11-26 18:32:28 +01:00
Léo Lam 05c8d229af Config: Handle unknown system strings better
Currently, a simple typo in the system name will trigger an assert
message that complains about a "programming error". This is not
user friendly and misleading.

So this changes GetSystemFromName to return an std::optional, which
allows for callers to check whether the system exists and handle
failures better.
2017-11-26 18:24:01 +01:00
Léo Lam 653977cec7 UICommon: Fix unsafe usage of optparse::Values::all
The const-qualified all() member method triggers undefined behaviour
if the option passed to it is not set.
2017-11-26 18:18:49 +01:00
Léo Lam 60afb1d1b4 WX: Fix argument parsing
Manually convert each argument to a UTF-8 std::string, because the
implicit conversion for wxCmdLineArgsArray to char** calls ToAscii
(which is obviously undesired).

Fixes https://bugs.dolphin-emu.org/issues/10274
2017-11-26 18:18:48 +01:00
Markus Wick 96e094e127
Merge pull request #6216 from stenzek/headless-frame-dumping
OGL: Fix headless frame dumping
2017-11-26 11:36:10 +01:00
Jules Blok 7dd207931d UberShaderPixel: Fix the interpolation qualifier for interface blocks.
Fixes MSAA on MacOS with ubershaders enabled.
2017-11-25 21:51:14 +01:00
Michael M fc2a0a1988 FIFOPlayerWindow: don't reset frame/object limit every frame 2017-11-24 14:11:59 -08:00
Stenzek cf1f975148 Vulkan: Fix headless framedumping without USE_X11 set 2017-11-23 17:00:32 +10:00
Stenzek 32125cf181 OGL: Fix headless frame dumping
Also skips swapping the window system buffers in headless mode, as there
may not be a surface which can be swapped in the first place. Instead,
we call glFlush() at the end of a frame in this case.
2017-11-23 16:53:55 +10:00
Stenzek ab44536a3c OGL: Update the window size after swapping buffers, not before
Prevents us from rendering beyond the viewport bounds.
2017-11-23 16:09:59 +10:00
Stenzek 7f217a8bb2 Vulkan: Drop StagingTexture2D class as it is now duplicated functionality 2017-11-22 18:49:33 +10:00
Stenzek db1d9de933 AbstractTexture: Drop slow map readback path 2017-11-22 18:49:33 +10:00
Stenzek 193763ca3a TextureCacheBase: Don't crop last row/column of XFB copies
Unsure why this was happening in the first place.
2017-11-22 18:49:33 +10:00
Stenzek 6577365851 VideoCommon: Re-implement asynchronous frame dumping
This was lost as a result of hybrid XFB, now it is back, and ~10%
faster in very brief testing.
2017-11-22 18:49:33 +10:00
Stenzek 752dd4761d D3D: Use new readback methods for EFB2RAM 2017-11-22 18:47:04 +10:00
Stenzek 9da9f26b90 OGL: Use new readback methods for EFB2RAM 2017-11-22 18:47:04 +10:00
Stenzek 59517318d6 Vulkan: Use new readback methods for texture encoding 2017-11-22 18:47:04 +10:00
Stenzek c2cc128f1b AbstractTexture: Implement Save using new common methods 2017-11-22 18:47:04 +10:00
Stenzek 56afebeb44 AbstractTexture: Seperate CopyRectangleFromTexture to two methods
ScaleRectangleFromTexture, which does a draw, and
CopyRectangleFromTexture, which where possible, does a bit-for-bit copy.
2017-11-22 18:47:04 +10:00
Stenzek f43d85921d VideoBackends: Add AbstractStagingTexture class
Can be used for asynchronous readback or upload of textures.
2017-11-22 18:47:04 +10:00
Stenzek a584ccc7d8 AbstractTexture: Support BGRA8 formats
Used for some driver's swap chains, and EFB to RAM.
2017-11-22 18:47:04 +10:00
Stenzek 49a9c33bd7 VideoCommon: Move abstract texture creation function to Renderer 2017-11-22 18:47:04 +10:00
Stenzek 5860c97144 D3D: Move device release from Renderer destructor to shutdown
Necessary if we wish to have GPU objects in our base class, as otherwise
the device will be released before the objects.
2017-11-22 18:47:04 +10:00
Stenzek c5a89b6483 D3D: Remove BeginFrame/EndFrame
These functions did not do anything anyway. There is also no need to
present the backbuffer when shutting down.
2017-11-22 18:47:04 +10:00
Stenzek d9400f708a D3D: Move remaining static variables from Render.cpp to Renderer class 2017-11-22 18:47:04 +10:00
Stenzek 798ec96e14 D3D: Make state cache part of Renderer and not static 2017-11-22 18:17:07 +10:00
Leo Lam 73a67aa413
Merge pull request #6204 from stenzek/downscaled-screenshots
Frame Dumping: Fix window-size framedumping
2017-11-22 07:53:23 +01:00
Stenzek efb9759862 LightingShaderGen: Always calculate lighting for both color channels
Cel-damage uses the color from the lighting stage of the vertex pipeline
as texture coordinates, but sets numColorChans to zero.

We now calculate the colors in all cases, but override the color before
writing it from the vertex shader if numColorChans is set to a lower value.
2017-11-22 01:52:18 +10:00
Stenzek 470e8d63b6 VideoConfig: Rename "Full Resolution Frame Dumps" to "Internal"
What is the "full" resolution, anyway?
2017-11-21 17:20:55 +10:00
Stenzek 8985cb2f0b Renderer: Re-implement window size frame dumping
This was broken by hybrid XFB, and all frame dumping/screenshots occured
at the full internal resolution.
2017-11-21 17:19:43 +10:00
Stenzek 39559f6358 VideoConfig: Remove bSupportsInternalResolutionFrameDumps
Field is unused as of Hybrid XFB.
2017-11-21 17:19:43 +10:00
Stenzek 18c1bf19ca VideoCommon: Use constant for number of color channels in XFMemory 2017-11-20 23:18:44 +10:00
Michael M ebc547030d BootManager: RestoreSYSCONF without resetting all other config
This was causing an issue where DolphinQt couldn't save graphics options
(DolphinWX doesn't hit this code path), because this function was being
called before the in-memory config was flushed to disk.

With this PR, the in-memory config isn't reset, and only SYSCONF-related
variables may get changed.
2017-11-19 17:17:59 -08:00
Michael M 5dc3ecdb72 Qt: show "Immediately present XFB" option 2017-11-19 15:37:24 -08:00
spycrab 474b1c2d5c Qt: Implement FIFO Player 2017-11-19 22:06:32 +01:00
spycrab aa8bf71333 FifoRecorder: Implement IsRecordingDone() 2017-11-19 21:49:29 +01:00
spycrab aac1b386b9 FifoPlayer: Implement IsPlaying() 2017-11-19 21:49:29 +01:00
Michael M 6b7d5bb80c DeviceQualifier: small cleanup 2017-11-19 12:46:39 -08:00
Michael M ac855e2c93 MappingWindow: don't store devq separately from controller default device 2017-11-19 12:46:39 -08:00
Michael M 9551fe1c73 MappingWindow: m_controller is never nullptr
Since GCPadWiiUConfigDialog was made its own class, m_controller will
never be nullptr.
2017-11-19 12:46:38 -08:00
JosJuice b3b58b586c
Merge pull request #5943 from leoetlino/features
IOS: Check for available features when adding devices
2017-11-19 21:43:54 +01:00
Michael M a988a8a458 AudioCommon: make SetSoundStreamRunning idempotent 2017-11-19 12:09:54 -08:00
Michael M 0baddbf9a8 SoundStream: change Start/Stop to Init/SetRunning/destruct 2017-11-19 12:09:54 -08:00
Michael M ad4a89d64b CubebStream: implement SetRunning 2017-11-19 12:09:54 -08:00
JosJuice d0b9923b0a Move XFB settings in DTM header back to where they were
7f0834c9 moved the locations of the Real XFB (now XFB to RAM) and
Disabled XFB (now Immediate Mode) settings. There are programs
other than Dolphin that parse DTM headers, so this is not good.

Note that Immediate XFB actually is the inversion of Disabled XFB.
I hope that's not too much of a problem...
2017-11-19 19:03:03 +01:00
Lioncash d6f10fdc15 D3DUtil: Remove unused defines 2017-11-19 12:14:18 -05:00
Lioncash 01a92af014 D3DUtil: Make file-scope variables internally linked where applicable
All file scope variables are able to be made internally linked.

CD3DFont is essentially used as an extension to the utility interface, so
this is able to be made internal as well, removing a global from
external view.
2017-11-19 12:12:39 -05:00
spycrab 9388852e05 Qt: Fix blackscreen 2017-11-19 17:49:51 +01:00
Michael Maltese c62d83a34b GCPadEmu: only connected if default device connected
This lets Dolphin know if a configured GameCube Controller should actually
be treated as connected or not.

Talked to @JMC47 a bit about this last night. My use-case is that all of
my controllers are the same hardware (Xbox One controllers) so share the
same configuration (modulo device number). Treating them all as always
connected isn't a problem for most games, but in some (Smash Bros.) it
forces me to go find a keyboard/mouse and unconfigure any controllers
that I don't actually have connected. Hotplugging devices (works on macOS,
at least) + this patch remove my need to ever touch the Controller Config
dialog while in a game.

This patch makes the following changes:

- A new `BooleanSetting` in `GCPadEmu` called "Always Connected", which
  defaults to false.
- `ControllerEmu` tracks whether the default device is connected on every
  call to `UpdateReferences()`.
- `GCPadEmu.GetStatus()` now sets err bit to `PAD_ERR_NO_CONTROLLER` if
  the default device isn't connected.
- `SIDevice_GCController` handles `PAD_ERR_NO_CONTROLLER` by imitating the
  behaviour of `SIDevice_Null` (as far as I can tell, this is the only use
  of the error bit from `GCPadStatus`).

I wanted to add an OSD message akin to the ones when Wiimotes get
connected/disconnected, but I haven't yet found where to put the logic.
2017-11-19 16:07:00 +01:00
Michael Maltese 379e28b58c Add GCPadStatus.isConnected boolean 2017-11-19 16:01:08 +01:00
Michael Maltese bb1c794657 Remove unused GCPadStatus.err 2017-11-19 16:01:07 +01:00
Leo Lam 80bcc0d58d
Merge pull request #6186 from lioncash/enum-class
VideoConfig: Make AspectMode and StereoMode enum classes
2017-11-19 15:08:16 +01:00
Leo Lam a75546747e
Merge pull request #6164 from leoetlino/usb-hid
IOS/USB: Implement HIDv5
2017-11-19 14:13:57 +01:00
JosJuice b8c83dd5f3
Merge pull request #5973 from ligfx/renamefifoqueue
Rename Common::FifoQueue to Common::SPSCQueue
2017-11-19 13:51:22 +01:00
Markus Wick 9178a6e636
Merge pull request #6197 from degasus/GP
Jit: Optimize gather pipe usage.
2017-11-19 11:52:20 +01:00
Markus Wick 40ed0e4251
Merge pull request #6198 from lioncash/cmake
D3D: Remove non-existent files from CMakeLists.txt
2017-11-19 10:41:32 +01:00
JosJuice 2ead31c769
Merge pull request #6203 from lioncash/missing-braces-warn
VideoCommon: Resolve -Wmissing-brace warnings
2017-11-19 08:45:13 +01:00
JosJuice 2385a03c2b
Merge pull request #6201 from lioncash/headers
VideoBackends: Remove header inclusions made unnecessary with Hybrid XFB
2017-11-19 08:44:48 +01:00
JosJuice 4c23516b16
Merge pull request #6202 from lioncash/reorder-warn
AbstractTexture: Remove a redundant constructor initializer list entry
2017-11-19 08:44:29 +01:00
Lioncash 518f6a3624 VideoCommon: Resolve -Wmissing-brace warnings
Resolves around 5 -Wmissing-brace warnings on macOS.
2017-11-19 01:49:39 -05:00
Lioncash 2bd88bdb9f AbstractTexture: Remove a redundant constructor initializer list entry
This is already initialized in the class definition. This would
previously cause a -Wreorder warning on macOS, as m_config is
defined after m_currently_mapped.
2017-11-19 01:25:55 -05:00
Lioncash 16a0a58b91 VolumeGC: Correct printf specifier in LoadBannerFile()
Gets rid of a warning when compiling on macOS.
2017-11-19 00:54:47 -05:00
Lioncash 364eaadfe5 VideoBackends: Remove header inclusions made unnecessary with Hybrid XFB
Just some inclusions that weren't removed in the initial Hybrid XFB PR.
2017-11-19 00:53:10 -05:00
Lioncash 05d0d184d7 DolphinQt2: Fix incorrect description string for the immediate XFB option 2017-11-19 00:40:46 -05:00
Lioncash 2ef8ded8ce D3D: Remove non-existent files from CMakeLists.txt
Just a leftover that was missed in the Hybrid XFB PR.
2017-11-19 00:29:23 -05:00
Lioncash 5337e58284 VideoConfig: Make StereoMode an enum class
Makes for more strongly-typed identifiers (and doesn't pollute
surrounding namespaces)
2017-11-18 23:19:53 -05:00
Lioncash 10697bcbe3 VideoConfig: Make AspectMode an enum class
Makes for more strongly-typed identifiers (and doesn't pollute
surrounding namespaces)
2017-11-18 23:17:56 -05:00
Pierre Bourdon 609a17a0cd
Merge pull request #5498 from iwubcode/hybrid_xfb
Hybrid xfb
2017-11-19 04:58:59 +01:00
degasus 6ea3f538b4 JitArm64: Inline GP check in Cleanup.
We're calling this function up to 2M times per second. Let's inline the pre-check.
2017-11-18 17:43:38 +01:00
degasus 6c9bb67ca0 JitArm64: Optimize gather pipe writes. 2017-11-18 17:43:38 +01:00
degasus 6ad63c1b35 Jit64: Inline GP fast check in Cleanup. 2017-11-18 17:43:38 +01:00
degasus 36ad887a19 Jit64: Inline GP writes.
As we're down to 4 instructions now, it is always worth to inline those writes.
2017-11-18 14:45:09 +01:00
degasus 4feddd7748 PowerPC: Include the gather pipe pointer in the ppc state. 2017-11-18 14:14:45 +01:00
iwubcode dd54617a08 TextureCacheBase: Set uninitialized XFB memory to fuchsia color 2017-11-17 22:11:34 -06:00
iwubcode 8d1cbeb25e Hybrid XFB: Fix lint errors 2017-11-17 22:11:34 -06:00
iwubcode 61541ab243 Enhance xfb dumping to distinguish between the xfbs created from memory and the xfbs created from overlapping copies 2017-11-17 22:11:34 -06:00
iwubcode 8678e8ddd3 Texture Cache Base: Optimization to allow stitched or memory xfb textures to be looked up from cache directly if they were defined previously and their hash hasn't changed 2017-11-17 22:11:33 -06:00
iwubcode bf7db3f888 Software Backend: Remove reinterpret_cast which violates the strict aliasing rule 2017-11-17 22:11:33 -06:00
iwubcode 332af8aa49 TextureCacheBase: Fix issue in Rogue Squadron 2 where overlapping textures caused a hash change which would cause us to do a lookup from memory that gave us an incorrect result in XFB2Ram 2017-11-17 22:11:33 -06:00
iwubcode ada37ec642 TextureCacheBase: Remove vertical scaling from EFB path and have copy checks only check EFBs 2017-11-17 22:11:33 -06:00
iwubcode 1a1c3560ce Software Backend: Rename 'copy_region' to 'CopyRegion' 2017-11-17 22:11:33 -06:00
iwubcode 0f7f4ccaf9 Software Backend: allow screenshots/video to be taken with valid data 2017-11-17 22:11:33 -06:00
iwubcode 7248dd47d5 Hybrid XFB: Fix lint errors 2017-11-17 22:11:32 -06:00
iwubcode 2c87a53f11 TextureCacheBase: make sure stitching rectangle bounds don't exceed the
texture size they are meant to represent
2017-11-17 22:11:32 -06:00
iwubcode 74610646ce TextureCacheBase: Add XFB specific functions 2017-11-17 22:11:32 -06:00
iwubcode 4964fc87ae Video Backends: Remove the right of the xfb region for games where the
VI stride does not match the VI width
2017-11-17 22:11:32 -06:00
iwubcode a129a53e56 Video Common: Improve texture dumping to work with fifoci and
fifo_comparer
2017-11-17 22:11:32 -06:00
iwubcode 53684701fa HybridXFB: Fix lint errors 2017-11-17 22:11:31 -06:00
iwubcode 65418a76f5 Video Common: Use correct aspect ratio when saving screenshots / video 2017-11-17 22:11:31 -06:00
iwubcode 1090549552 Software Backend: Force EFB/XFB to copy to ram 2017-11-17 22:11:31 -06:00
iwubcode 6e686f6ea1 Software Backend: Fix xfb output and add vertical scaling support 2017-11-17 22:11:31 -06:00
iwubcode e6d85b0915 Video Common: Avoid 'presenting' duplicate frames by detecting when swap
hasn't changed since the last frame
2017-11-17 22:11:31 -06:00
iwubcode 2295d60fdc VideoCommon: Output gamma now comes from the xfb copy 2017-11-17 22:11:30 -06:00
iwubcode 7f0834c919 Add 'immediate xfb' which reduces xfb latency at the cost of graphical errors 2017-11-17 22:11:30 -06:00
iwubcode a71bc9ebbf Move XFB UI option to be under XFB group 2017-11-17 22:11:30 -06:00
iwubcode e33ab4117d Video Common: Make auto IR work with HybridXFB 2017-11-17 22:11:30 -06:00
iwubcode 76b775d5be Video Common: Add XFB decoding via the GPU 2017-11-17 22:11:30 -06:00
iwubcode 4d13f69dc1 Remove TODOs 2017-11-17 22:11:29 -06:00
iwubcode 33bc286baa Remove old XFB logic 2017-11-17 22:11:29 -06:00
iwubcode 081b92b8a7 Video Common: Only update FPS when frame is renderered which yields more
accurate results
2017-11-17 22:11:29 -06:00
iwubcode b285188de1 Video Backends: Implement vertical scaling for xfb copies. This fixes the
display of PAL games that run in 50hz mode.
2017-11-17 22:11:29 -06:00
iwubcode 5a372020ea FifoPlayer: Generate fake VideoInterface updates 2017-11-17 22:11:29 -06:00
iwubcode 2cd9565b18 Add an additional flag fo 'XFB Copy' 2017-11-17 22:11:29 -06:00
iwubcode 65cd085f9b Add new GUI option to skip XFBToRam and remove old XFB options 2017-11-17 22:11:28 -06:00
iwubcode 198d3b69b4 Add ability to dump xfb copies to texture for debugging purposes 2017-11-17 22:11:28 -06:00
iwubcode a9f0d1783b Support frame and video dumping from VideoCommon 2017-11-17 22:11:23 -06:00
iwubcode 79387dddb2 Add support for hybrid XFB 2017-11-17 19:47:56 -06:00
Anthony aa4088a494 [UI] Remove fullscreen resolution UI. 2017-11-17 13:05:50 -08:00
MerryMage 37419b9a57 Config/Layer: Allow all keys of a section to be iterated over 2017-11-15 18:04:40 +00:00
MerryMage 4c24629b95 Config: Flatten structures
Originally, Layer contained a std::map of Sections, which containted a std::map
containing the (key, value) pairs. Here we flattern this structure so that only
one std::map is required, reducing the number of indirections required and
vastly simplifying the code.
2017-11-15 18:04:40 +00:00
MerryMage f3b52c07d7 CommandLineParser: Use ConfigLocation 2017-11-15 18:04:40 +00:00
MerryMage e331a76176 ConfigInfo: Switch to doing case-insensitive comparison 2017-11-15 18:04:40 +00:00
MerryMage ec7b84c5f2 Config: Extract ConfigInfo into own header 2017-11-15 18:04:40 +00:00
MerryMage c8f970e2b0 Config: Remove recursive layer 2017-11-15 18:04:40 +00:00
Pierre Bourdon 169028e8f5 IOS: Warn on blocking IPC handlers.
This should help us identify them and figure out which ones need to be
fixed.
2017-11-15 15:34:10 +01:00
Tom Boshoven 1fc7cf3cb4 Off-by-one in SDHC detection
Also update name and description of SDHC constant.
2017-11-14 18:46:41 +01:00
JosJuice 72b7b96571 Remove IsTriviallyCopyable hack for VS 2017-11-13 19:51:16 +01:00
JosJuice 8ad5ea2ede Call Do for every member of SCPFifoStruct individually
We need this because VS currently doesn't consider
std::is_trivially_copyable<typename
std::remove_volatile<SCPFifoStruct>::type>::value
to be true and because no compiler should consider it
to be true if we replace the volatiles with atomics.
2017-11-13 19:51:16 +01:00
JosJuice 983b986303 Don't delete BitField copy assignment operator on VS 2017-11-13 19:51:11 +01:00
Lioncash 2a782b8f16 D3D/main: Remove unused variable in InitBackendInfo() 2017-11-12 13:24:02 -05:00
Lioncash 3dbd6a53cc D3DUtil: Remove unused file-scope variables
These used to be used when the drawShadedTexSubQuad() function existed,
but since it's been removed they now have no use.
2017-11-11 18:56:44 -05:00
JosJuice 2c10ba9be1 Simplify StringUtil::UTF16ToUTF8 2017-11-11 20:30:06 +01:00
JosJuice 65c1df094f Remove unneeded check in StringUtil::UTF16ToUTF8
No code is relying on this unexplained null byte check, since
the only code that calls UTF16ToUTF8 on non-Windows systems
is UTF16BEToUTF8, which explicitly strips null bytes.
2017-11-11 20:30:06 +01:00
Leo Lam 1e24a5f309
Merge pull request #6167 from ligfx/encapsulatedefaultdevice
EmulatedController: encapsulate default device behind getters/setters
2017-11-11 17:11:56 +01:00
Rael Gugelmin Cunha 3b2b2de159 Exit on Esc, pause on F10 2017-11-11 12:51:54 -02:00
Leo Lam 338bffd1e7
Merge pull request #6168 from ligfx/movegccwiiu
Qt: make GCPadWiiU a standalone dialog
2017-11-11 12:14:55 +01:00
Leo Lam 41c2618b10
Merge pull request #6175 from ligfx/qtinputupdateclear
Qt Mapping*: make logic around setting/loading settings more consistent
2017-11-11 12:11:26 +01:00
Scott Pleb 0bede93daa evdev: Correctly calculate axis range for min values greater than 0.
Axis range was previously calculated as max + abs(min), which relies on the assumption that
min will not exceed 0. For (min, max) values like (0, 255) or (-128, 127), which I assume to
be the most common cases, the range is correctly calculated as 255. However, given (20,
235), the range is erroneously calculated as 255, leading to axis values being normalized
incorrectly.

SDL already handles this case correctly. After changing the range calculation to max - min,
the axis values received from the evdev backend are practically identical to the values
received from the SDL backend.
2017-11-11 02:07:04 -05:00
Lioncash 8e654528fc VideoConfig: Add const specifier to IsVSync() member function
This member function doesn't alter VideoConfig's state.
2017-11-10 22:23:15 -05:00
Michael M 8e6677be90 ControllerInterface: don't call InvokeDevicesChangedCallbacks more than once when refreshing 2017-11-10 13:37:42 -08:00
Michael M fd7cbd633e ControllerInterface: add mutex around callbacks vector 2017-11-10 13:37:42 -08:00
Michael M 1ed7532af8 ControllerInterface: HotplugCallbacks -> DevicesChangedCallbacks 2017-11-10 13:37:42 -08:00
Michael M 7355b5f70d ControllerInterface: invoke callbacks in AddDevice/RemoveDevice
Some backends already cause this to happen, so make it consistent across
systems.
2017-11-10 13:37:41 -08:00
Anthony 4dc425b9c9
Merge pull request #6158 from Tomcc/master
Improved arbitrary mipmap detection (Mario Sunshine water fix)
2017-11-09 18:06:58 -08:00
JosJuice b28e5fa347 Avoid forbidden characters when extracting disc partitions
We shouldn't try to create folder names that contain characters
such as : or / since they are forbidden or have special meanings.
(No officially released disc uses such characters, though.)
2017-11-08 12:04:59 +01:00
Markus Wick 7e7b5af4c7
Merge pull request #6173 from JosJuice/dtk-savestate
Fix DTK audio not working after loading a savestate
2017-11-08 12:03:05 +01:00
LAGonauta 9e63c65c36 Also hide latency control on Qt GUI 2017-11-07 14:59:23 -02:00
LAGonauta e7f0279ffc The latency setting now appears only if there is at least one backend
that supports it.
2017-11-07 14:56:43 -02:00
Greg Wicks c2dcb97d06 Android: Fix NDK r16b2 build 2017-11-07 11:02:27 -05:00
Anthony 835eff15a1
Merge pull request #6162 from JosJuice/nand-check-save-game-name
When NAND is damaged, show title names from save files
2017-11-06 23:11:34 -08:00
Anthony d378811271
Merge pull request #6165 from JosJuice/auto-ir-handling
Fix incorrect handling of auto IR
2017-11-06 23:10:53 -08:00
Anthony 66ad40074d
Merge pull request #6172 from JosJuice/remove-force-ntsc-j
Remove "Force Console as NTSC-J"
2017-11-06 23:01:27 -08:00
Anthony 98ffaf9661
Merge pull request #6151 from MayImilae/adjust-cpu-override-text
Adjust CPU Override Text
2017-11-06 22:55:36 -08:00
MaJoR 4112936bae Adjust CPU Override Text
There has been a lot of confusion about what the CPU clock override
section does among users, and looking at it… I’m not surprised! It
doesn’t directly state which CPU clock rate is being overridden!

This small change adjusts the language to clarify that the emulated CPU
is being adjusted.
2017-11-06 22:39:12 -08:00
Tommaso Checchi aa23684d66 Improved detection: it doesn't desaturate the input anymore (woops) also it makes its own whole chain! This way it "notices" much better gradual divergences. Fixes Mario Sunshine, moss on the window in Zelda TP 2017-11-06 21:49:48 -08:00
JosJuice b00ef39c1c Fix DTK audio not working after loading a savestate
The main problem was that the volume of the mixer wasn't savestated.
The volume is typically 0 at the beginning of a game, so loading a
savestate at the beginning of a game would lead to silent DTK audio.

I also added savestating to StreamADPCM.cpp.
2017-11-06 09:15:14 +01:00
JosJuice 88d851ca45 Remove "Force Console as NTSC-J"
Nowadays that Dolphin detects regions of discs properly and doesn't
force programs with unknown regions (such as homebrew) into running
under a certain region, the "Force Console as NTSC-J" option is
practically useless for making anything run correctly. Enabling it
is however an easy way to totally break many non-Japanese games.
2017-11-06 08:23:30 +01:00
JosJuice 5e70af1ce5
Merge pull request #6109 from t27duck/missing_wiiware_makers_2
Update maker information to match the wiki
2017-11-06 08:05:19 +01:00
Michael M 14f22ad829 Qt Mapping*: make logic around setting/loading settings more consistent
Changes:
- signal for widget value changed: sets controller setting, saves
  settings
- Update(): only updates widget from existing controller setting
- Clear(): sets controller setting, saves settings, and calls Update()
2017-11-05 11:32:23 -08:00
Michael M cb47857e8a Rename GCPadWiiU -> GCPadWiiUConfigDialog
This name better reflects its new standalone functionality.
2017-11-05 08:04:16 -08:00
Michael M a8b5eab4c4 Qt GCPadWiiU: standalone dialog, not subclass of MappingWidget
It uses none of the functionality of MappingWidget or the parent MappingWindow, and complicates the definition of the MappingWidget interface.
2017-11-05 08:04:16 -08:00
Michael M 27e1577da9 Qt MappingWindow: move controller type into constructor 2017-11-05 08:04:16 -08:00
Pierre Bourdon bb38b39952
Merge pull request #6170 from JosJuice/qt-language-encoding
DolphinQt2: Fix broken language encodings on Windows
2017-11-05 16:51:01 +01:00
degasus 3a36c964f5 WiimoteEmu: Don't set pack pragma for STL objects. 2017-11-05 13:13:25 +01:00
JosJuice c39778395c DolphinQt2: Fix broken language encodings on Windows 2017-11-05 11:07:41 +01:00
degasus 47f7e5b454 WiiUtils: Be more explicit about packing. 2017-11-05 10:52:37 +01:00
Michael M 1b1dd1d749 EmulatedController: encapsulate default device behind getters/setters 2017-11-04 17:08:55 -07:00
Pierre Bourdon bb0794715c
Merge pull request #6111 from stenzek/enable-vk-nv-glsl
Vulkan: Use VK_NV_glsl extension where available, and skip glslang
2017-11-04 17:14:28 +01:00
JosJuice 1dc2a85ccc Avoid UB when reading Wii volume names 2017-11-03 23:17:40 +01:00
JosJuice 6902bbb696 When NAND is damaged, show title names from save files
The earlier code always tried to use TitleDatabase for getting
title names, but that didn't work for disc-based games, because
there was no way to get the maker ID.
2017-11-03 23:17:36 +01:00
JosJuice 5a6d90900e Add WiiSaveBanner class
This class is similar to the BannerLoaderWii class that was
removed in ee694e32.
2017-11-03 23:00:43 +01:00
Léo Lam 18a947a1bc USB: Work around a gcc bug that affects lambdas
https://stackoverflow.com/questions/32097759
2017-11-03 19:01:49 +01:00
Léo Lam 5d82635449 USB_HIDv5: Implement CancelEndpoint 2017-11-03 19:01:48 +01:00
Léo Lam 22310dfc3e USBv5: Read transfer parameters from the correct vector
This is why static analysis is essential.
2017-11-03 19:01:48 +01:00
Léo Lam ac3b866083 USB_HIDv5: Submit interrupt transfers to the correct endpoint
Unlike VEN, the endpoint is determined by the value at 8-12.
If it's non-zero, HID submits the request to the interrupt OUT
endpoint. Otherwise, the request is submitted to the IN endpoint.

This commit changes HIDv5 to keep track of endpoints (like IOS does)
and use them when submitting interrupt transfers.
2017-11-03 19:01:48 +01:00
Léo Lam ff52333b14 USB: Implement HIDv5
This implements /dev/usb/hid v5, found in IOS57, IOS58 and IOS59.

This is an initial implementation that ignores some differences
with VEN because I lack understanding of what IOS is actually doing
sometimes. These are documented on the WiiBrew article:
https://wiibrew.org/wiki//dev/usb/hid_(v5)

One major difference that this implementation handles is about IDs.
It turns out Nintendo has decided to include the interface number in
the top byte of HIDv5 device IDs, unlike VEN -- even though everything
else about ioctl 1 is otherwise the same!
2017-11-03 19:01:48 +01:00
Léo Lam 180ad8076c USB: Move common USBv5 IOS code to prepare for HIDv5
USBv5 IOS resource managers share most of their code. Some ioctls
are even completely the same! So let's separate the common code
from the VEN specific stuff to make HIDv5 easier to implement.
2017-11-03 19:01:48 +01:00
Léo Lam 6bb03d900c USB: Separate the descriptor copy logic
The descriptor copy code is not actually the same in HIDv4 and VEN,
so it did not make a lot of sense to put it in USB/Common.cpp.
Separate and move it to HIDv4 and VEN.

This cleanup is important because there are even more differences
between HIDv4 and HIDv5.
2017-11-03 19:01:48 +01:00
Léo Lam c6038155cc USB_VEN: Move internal constant to .cpp 2017-11-03 19:01:47 +01:00
Léo Lam ef8b3cb960 USB_VEN: Construct device IDs properly
Fix the device ID struct to reflect the actual structure used by IOS.

It turns out that offset 2 is the internal device index. The reason
that field seemed to be "0x1e - interface_number" is that IOS only
keeps track of 32 devices and always looks for free entries from
the end of the internal array. With each USB interface being exposed
as a separate USBv5 device, "0x1e - interface_number" was mostly
correct... but wrong!

We also made the assumption that the interface number can be
identified from just a USBV5 device ID, which is definitely not true.
VEN (and HID) keep track of the interface number in the internal struct
instead of "reconstructing" it from the device ID (which is normally
not possible if we were generating IDs correctly)

This commit fixes all of these inaccuracies.
2017-11-03 19:01:47 +01:00
JosJuice a310cbec8e Fix incorrect handling of auto IR
Some lines of code in Dolphin just plainly grabbed the value of
g_ActiveConfig.iEFBScale, which resulted in Auto being treated as
0x rather than the actual automatically selected scale.
2017-11-03 16:04:46 +01:00
Leo Lam 53f0974372
Merge pull request #6159 from JosJuice/consistent-gui-strings
Make GUI strings more consistent
2017-11-03 14:18:54 +01:00
Leo Lam 9e4590b2b2
Merge pull request #6160 from JosJuice/gecko-na
Don't show "N/A" as description when there is no Gecko code
2017-11-03 14:16:59 +01:00
Leo Lam a58df9fe3d
Merge pull request #6163 from JosJuice/simple-ini-ir
Revert "Convert to/from old EFB scale numbering"
2017-11-03 13:46:40 +01:00
JosJuice 2d3dd5ede7 Revert "Convert to/from old EFB scale numbering"
This reverts commit 1fc910b3ea,
replacing the old INI setting EFBScale with a new INI setting
called InternalResolution, which has a simpler mapping:

                  | EFBScale             | InternalResolution
----------------- | -------------------- | --------------------
Auto (fractional) | 0                    |
Auto (integral)   | 1                    | 0
1x                | 2                    | 1
1.5x              | 3                    |
2x                | 4                    | 2
2.5x              | 5                    |
3x                | 6                    | 3
4x                | 7                    | 4
5x                | 8                    | 5
6x                | 9                    | 6

All the fractional IRs were removed in f090a943.
2017-11-02 21:39:05 +01:00
Léo Lam f2eee368e0 WiiUtils: Ignore missing contents for DLC titles
It is not possible to tell whether DLC contents are supposed to be
present on the NAND or not, because they're treated as "optional".
So this commit changes the NAND check to not consider missing
contents for DLC titles as an issue.
2017-11-02 17:59:53 +01:00
Léo Lam 71d4c47eb5 UI: Tweak the NAND check popup message
Inform the user that re-launching titles can also fix the issues.
2017-11-02 16:02:55 +01:00
JosJuice 7253c4bb52 Don't show "N/A" as description when there is no Gecko code
"N/A" can be awkward to handle in translations.

I don't think there's much point in showing "N/A" rather than
leaving the description box blank, so let's just leave it blank.
2017-11-02 14:37:45 +01:00
JosJuice d454e041b0 Make GUI strings more consistent
Most of the changes I've made here were because of small
differences between DolphinWX and DolphinQt2.
2017-11-02 14:32:16 +01:00
Léo Lam 1cd4be1d0f WiiUtils: Unify the check and repair functions
Makes it clearer what actions will be taken for every issue
that is found.
2017-11-02 11:34:13 +01:00
Leo Lam e29cd19f73
Merge pull request #6118 from Tomcc/master
Resolution independent mipmaps (high IR Super Mario Galaxy Fix)
2017-10-31 21:37:20 +01:00
iwubcode b201777b83 D3D Backend: Change encoding parameter types from DWORD to our platform agnostic types 2017-10-30 10:27:02 -05:00
Leo Lam 91dac03c45
Merge pull request #6148 from leoetlino/null-bug
NANDImporter: Construct strings correctly
2017-10-29 10:30:03 +01:00
Leo Lam d6ac8ce928
Merge pull request #6147 from sepalani/send-log
Socket: Move IOCTLV_SO_SEND(TO) to INFO_LOG
2017-10-29 10:29:25 +01:00
Léo Lam 7aa083388b NANDImporter: Construct strings correctly
Use std::string(cstring, strnlen(cstring, max_length)) instead of
trying to remove extra null characters manually, which is a bit
ugly and error prone.

And indeed, the original code contained a bug which would cause
extra NULLs to not be removed at all if the string did not
end with a NULL -- causing issues down the road when constructing
paths for sub-entries.
2017-10-28 22:40:05 +02:00
Léo Lam 96d7c39891 NANDImporter: Add support for dumps that don't include keys
This adds support for NAND images that only include the NAND
(i.e. without the OTP/SEEPROM dump appended at the end of the file).
2017-10-28 21:27:18 +02:00
Sepalani d49e4044c6 Socket: Move IOCTLV_SO_SEND(TO) to INFO_LOG 2017-10-28 20:13:42 +02:00
Tommaso Checchi 5fb6ceac45 Fixed fog, lava, water in Mario Galaxy (and possibly other games) in higher IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient. 2017-10-27 00:45:20 -07:00
Markus Wick 802fda26ab Merge pull request #6093 from endrift/fix-efb-overflow
VideoCommon: Fix overflow trying to access outside of EFB bounds
2017-10-26 21:01:27 +02:00
Markus Wick 3f6017343b Merge pull request #6114 from leoetlino/fix
MemArena: Use names that are based on the PID
2017-10-26 20:56:22 +02:00
Leo Lam c4914fbb8b Merge pull request #6094 from leoetlino/drop-wad-hack
Drop the direct WAD launch hack
2017-10-26 17:15:02 +02:00
Leo Lam 5393575c55 Merge pull request #6130 from ligfx/emptynullsoundstream
NullSoundStream: don't call Mixer->Mix
2017-10-24 11:44:22 +02:00
Léo Lam 4cc1bd972a CommonTitles: Add a named constant for IOS TIDs 2017-10-24 11:41:55 +02:00
Léo Lam dedb61e5bf Boot: Install WADs temporarily
Because the Wii NAND size is finite, mark titles that were installed
only for booting as temporary, and remove them whenever we need to
install another title (to make room). This is exactly what the
System Menu does for temporary SD card title data.
2017-10-24 11:41:55 +02:00
Léo Lam 4b4a9a6486 UI: Implement a command line option to boot NAND title 2017-10-24 11:41:55 +02:00
Léo Lam 8e0869aff6 DiscIO: Remove comments that state obvious facts 2017-10-24 11:41:54 +02:00
Léo Lam 346ca009f9 Remove NANDContentManager 2017-10-24 11:41:54 +02:00
Léo Lam c03aa78c8f [Cleanup] WX: Remove usage of NANDContentManager
Also clean up the way the system menu label is updated. We don't want
to access the NAND while emulation is running, and especially not
that many times per second on an unpredictable timing.
2017-10-24 11:41:54 +02:00
Léo Lam ff6b3eb9ac [Cleanup] IOS: Clean up the way ARM binaries are loaded
This commit removes the last usage of NANDContentManager in IOS code.

Another cleanup change is that loading ARM (IOS) binaries is now done
by the kernel in the BootIOS syscall, instead of being handled as a
special case in the MIOS code. This is more similar to how console
works and lets us easily extend the same logic to other IOS binaries
in the future, if we decide to actually load them.
2017-10-24 11:41:54 +02:00
Léo Lam 63a52fa707 [Cleanup] IOS/ES: Remove usages of NANDContentManager 2017-10-24 11:41:54 +02:00
Léo Lam a7e21bca13 IOS/ES: Add a helper function to get a content path 2017-10-24 11:41:54 +02:00
Léo Lam 44fc6d878a IOS/ES: Fix a missing check in ReadCertStore
Without this, some operations can fail when trying to read an existing
cert store, as it may not exist when signature checks are disabled.
2017-10-24 11:41:54 +02:00
Léo Lam 689ed2a0ce [Cleanup] Move FindSignedTicket to IOS/ES
For consistency and because NANDContentManager is going to be removed.
2017-10-24 11:41:54 +02:00
Léo Lam 0476c0e60e [Cleanup] Remove static state in ES 2017-10-24 11:41:54 +02:00
Léo Lam 9000a042e4 Drop the direct WAD launch hack
This removes the hack that enables directly booting from WADs
without installing them first for the following reasons:

1. It makes the NAND content handling much more complicated than what
   it should be and makes future changes like permissions or booting
   NAND titles without a WAD more annoying to implement.

   Because of this hack, we needed an extra level of abstraction
   (NANDContent*) which has to read tons of things from the NAND, even
   most of the time it's useless. This in turn forces us to have
   caching, which is known to break titles and requires manual cache
   invalidations. Annoying and error prone.

2. It prevents the WAD boot code from being easily accurate. With this
   change, we can simply reuse the existing launch code, and ask IOS
   to launch the title from the NAND.

3. The hack did not work that well since it did not cover a lot of ES
   commands. And it works even less since the ES accuracy fixes.
   This results in Dolphin returning inconsistent results: a
   lot of the ES "DI" commands will just fail because the active title
   is not installed on the NAND. uid.sys is not changed, etc.

   And I'm not even talking about FS stuff -- where this would still
   totally fail, unless we add even more unnecessary hacks.

   This is not just theoretical -- the system menu and the Wii Shop are
   known to behave strangely because the hack damages the NAND
   structure, and we've already had several users report issues.

This commit makes it so WADs are always installed prior to launching.
A future commit will remove any code that was there only for the hack.
2017-10-24 11:41:54 +02:00
Léo Lam 60ba382799 Boot: Add support for booting NAND titles with just the ID 2017-10-24 11:41:54 +02:00
Léo Lam 62be010ac6 WiiUtils: Improve the error message on import failure
Now shows the import return code and also skips showing the message
altogether if the user cancelled the import for an unsigned WAD.
2017-10-24 11:41:54 +02:00
Léo Lam dd5c468c63 WiiUtils: Allow reusing existing IOS/WAD instance 2017-10-24 11:41:54 +02:00
Léo Lam 6a03a24822 WiiUtils: Warn before overwriting during WAD import 2017-10-24 11:41:54 +02:00
Léo Lam 0bdeb63894 WiiUtils: Skip WAD import if it's already installed
The check is fairly quick, and this allows saving a lot of time and
resources for larger WADs.
2017-10-24 11:41:54 +02:00
Anthony 5fdb19f3db Merge pull request #6108 from JosJuice/tgc-negative-file-area-shift
Fix TGC support for Zelda OoT Master Quest
2017-10-23 18:57:54 -07:00
JMC47 a8bf9c5cbe Fix GameCube Sample Rate
The GameCube's sample rate is slightly different due to a hardware bug.
The exact numbers are (54000000 / 1124) for GameCube and (54000000 / 1125)
on Wii.  I also modified 32KHz mode.  This fixes audio desyncs in several
GameCube games and severe issues in Sonic Mega Collection.
2017-10-23 13:16:40 -04:00
Tony Drake b66a72eb8f Update maker information to match the wiki
This updates the maker data to (mostly) mirror that of the Wiki:
https://wiki.dolphin-emu.org/index.php?title=GameIDs

Only maker ids from that page are now included in Dolphin. This
means no homebrew/unofficial makers.

Also, separate multiple maker names with a slash
2017-10-22 11:39:16 -04:00
Leo Lam 6e9e681438 Merge pull request #6124 from stenzek/vulkan-shutdown-vxfb
Vulkan: Fix crash on shutdown with Virtual XFB enabled
2017-10-22 16:42:24 +02:00
Leo Lam b002d9d94f Merge pull request #6132 from ligfx/updatecubeb
Externals: update cubeb to kinetiknz/cubeb@c2bd582
2017-10-22 15:39:39 +02:00
Leo Lam a596424dc2 Merge pull request #6133 from ligfx/soundstreamsetrunning
AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)
2017-10-22 15:38:34 +02:00
Michael M 82129d30c9 TextureCache: don't create texture decoding resources if not enabled 2017-10-21 23:06:44 -07:00
Michael M b031d3316c SoundStream: rename Clear(mute) to SetRunning(running) 2017-10-21 16:28:04 -07:00
Michael M d6985fc3e8 AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running) 2017-10-21 16:28:04 -07:00
Michael M 7bcdd1a46a SoundStream: remove unused m_muted and IsMuted 2017-10-21 16:28:04 -07:00
Michael M aa40c4a7ce Externals: update cubeb to kinetiknz/cubeb@c2bd582
A bunch of changes, looks mainly like bug fixes and code cleanup.

Notable changes:
- `cubeb_get_min_latency`'s signature was changed to take params via
  pointer, requiring Dolphin code to be tweaked in two places.
- A fix for kinetiknz/cubeb#320, as reported by @shuffle2
- Fixed build on FreeBSD (kinetiknz/cubeb#344), as contributed by @endrift
2017-10-21 14:28:39 -07:00
Michael M 6abd1c8c99 NullSoundStream: don't call Mixer->Mix 2017-10-21 13:32:33 -07:00
Stenzek 271f1af8c9 Vulkan: Fix crash on shutdown with Virtual XFB enabled 2017-10-18 22:11:59 +10:00
Léo Lam 28d648b802 MemArena: Use names that are based on the PID
Fixes a regression which broke running several Dolphin instances at the
same time on Windows. Thanks to exjam for spotting the issue
pretty much immediately. Sorry about that!

Also changes the file names to be more consistent on all platforms.
2017-10-11 17:40:05 +02:00
Dane Z. Bush 4dfe6c0875 MemArena: Name shared memory handle
Assign a name to the CreateFileMapping handle on Win32 so third party
applications can read from Dolphin's memory and integrate with the
current emulation.

Built and tested, multiple sessions are still possible without
collisions.
2017-10-11 16:35:32 +02:00
Stenzek 06bbf111d9 Vulkan: Improve readability of device/instance extension checks 2017-10-11 23:18:01 +10:00
Stenzek 79188d4f55 Vulkan: Use VK_NV_glsl extension where available, and skip glslang 2017-10-11 23:15:41 +10:00
Stenzek 90ca2e8042 Merge pull request #6066 from stenzek/vulkan-resize
Vulkan: Fixes for window resizing
2017-10-11 23:02:48 +10:00
Leo Lam d26eda3023 Merge pull request #6096 from leoetlino/wii-fsck
Add a way to check the NAND for issues and fix them
2017-10-11 13:01:39 +02:00
Leo Lam ceed4d6f93 Merge pull request #6101 from sepalani/symbol-map-data
PPCSymbolDB: Handle data symbols in SymbolMap properly
2017-10-11 13:00:40 +02:00
Leo Lam bc6846ce3b Merge pull request #5922 from sepalani/mem-base
MemoryWindow: base address search added
2017-10-11 12:17:57 +02:00
Leo Lam 1fb9e793ac Merge pull request #6104 from CyberShadow/pull-20171006-091319
CheatSearchTab: Add UI for manually adding an address
2017-10-11 11:51:49 +02:00
Vladimir Panteleev 3c51560857 CheatSearchTab: Add UI for manually adding an address
Sometimes an address is already known, e.g. from existing cheat
codes, and only inspecting the variable's value is desired.
2017-10-11 11:41:26 +02:00
Ethan Lee 322c395f33 Qt: Check showFileNameColumn, sort Hidden/ResizeMode calls by enum value 2017-10-11 11:40:07 +02:00
Leo Lam 53ccd41049 Merge pull request #6099 from leoetlino/activate
Qt: Don't crash when pressing the Return key
2017-10-11 11:32:09 +02:00
Leo Lam 8163fa1acc Merge pull request #6100 from leoetlino/vulkan-shutdown
Vulkan: Fix crash when Core initialisation fails
2017-10-11 11:31:16 +02:00
Leo Lam 1c14881cc1 Merge pull request #6105 from CyberShadow/pull-20171006-123219
ActionReplay: Fix implementation of memory-copy zero codes
2017-10-11 11:28:27 +02:00
Leo Lam 0eafb2f2a2 Merge pull request #6110 from lioncash/texture-config-hash
TextureConfig: Specialize std::hash for TextureConfig
2017-10-11 11:07:09 +02:00
Stenzek edb5f855c2 VideoConfig: Prevent race condition on g_Config when refreshing
There was a race condition between the video thread and the host thread,
if corrections need to be made by VerifyValidity(). Briefly, the config
will contain invalid values. Instead, pause emulation first, which will
flush the video thread, update the config and correct it, then resume
emulation, after which the video thread will detect the config has
changed and act accordingly.
2017-10-10 23:56:33 +10:00
Stenzek 4301b8538d Vulkan: Only use oldSwapchain in response to VK_ERROR_OUT_OF_DATE_KHR
Seems to be required on the latest NV driver, otherwise the presented
images are never shown.
2017-10-10 23:21:40 +10:00
Stenzek cdf34a79f7 Vulkan: Set a flag to resize the swap chain when presenting fails
Drivers can return VK_ERROR_OUT_OF_DATE_KHR from vkQueuePresentKHR, and
we should resize the image in this case, as well as when getting it back
from vkAcquireNextImageKHR.
2017-10-10 23:21:40 +10:00
Stenzek 80593f502e Vulkan: Fix bug where command buffer wouldn't be started after resize 2017-10-10 23:21:40 +10:00
Lioncash c8af9e5f7b TextureConfig: Specialize std::hash for TextureConfig
This allows the hashing for TextureConfig instances to automatically be resolved instead of needing to directly specify it all the time.
2017-10-08 23:55:14 -04:00
Léo Lam 02e17594b0 WiiUtils: Attempt to fix the NAND more aggressively
Change the repair logic to fix issues more aggressively by deleting bad
titles. This is necessary because of a bug in Dolphin's WAD boot code.

The UI code was updated to inform the user about titles that will be
deleted if they continue a repair, before deleting anything.
2017-10-08 18:57:58 +02:00
Léo Lam e1c0b8d011 TitleDatabase: Add GetTitleName for title IDs 2017-10-08 18:31:43 +02:00
Léo Lam 239167245d Add a way to check the NAND for issues and fix them
Old versions of Dolphin are so broken regarding NAND handling that
we need this to repair common issues and avoid issues with titles
like the System Menu or the Wii Shop.

This isn't an exhaustive check, but this will catch most issues
and offer to fix them automatically (if possible).
2017-10-08 18:31:42 +02:00
Léo Lam 2974c56e50 ESFormats: Make Content easier to compare 2017-10-08 18:31:42 +02:00
FoxP 999c23b182 Add some missing WiiWare makers
Some of my WiiWare games does not have a maker :
- Blue's Journey : EAFPJ8
- Magician Lord : EACPJ8
- The King of Fighters '94 : EAGPJ8
- The Last Ninja : C9XPGX
- World Games : C9ZPGX
2017-10-08 13:04:23 +02:00
JosJuice e743ac80d2 TGCBlob: Fix brace style 2017-10-08 12:38:12 +02:00
Léo Lam 8f56219ea8 Vulkan: Fix crash when Core initialisation fails
The Vulkan backend was not shutting down the AsyncShaderCompiler and
some other instances, causing asserts to hit, followed by a hard crash.
2017-10-08 12:34:06 +02:00
JosJuice 0023d5b5cb TGCBlob: Make m_file_area_shift signed
Part two of fixing TGC files where file_area_virtual_offset is
smaller than file_area_real_offset, such as Zelda OoT Master Quest.
2017-10-08 12:30:53 +02:00
JosJuice 18c7608516 TGCBlob: Use file_area_real_offset as split point
Part one of fixing TGC files where file_area_virtual_offset is
smaller than file_area_real_offset, such as Zelda OoT Master Quest.
2017-10-08 12:16:10 +02:00
JosJuice ec7ed7b47a TGCBlob: Improve variable names 2017-10-08 12:08:13 +02:00
Léo Lam 468bf75a43 Qt: Don't crash when pressing the Return key 2017-10-07 14:53:30 +02:00
Vladimir Panteleev 187a599b36
ActionReplay: Fix logging in Subtype_AddCode
The addition was being repeated (for logging) after it was committed
to memory, thus causing bogus values to appear in the log.
2017-10-06 13:17:15 +00:00
Vladimir Panteleev e691ec126f
ActionReplay: Fix implementation of memory-copy zero codes
This fixes the implementation of the non-standard size-3 zero codes to
conform to kenobi's specification.
2017-10-06 12:47:10 +00:00
Leo Lam 5f0de43828 Merge pull request #6098 from aleios/master
WX: Reshow cursor after game termination (issue 10503)
2017-10-05 21:11:20 +02:00
Sepalani f65dcdcdca DebugInterface: Rename InsertBLR to Patch 2017-10-05 20:22:16 +02:00
Sepalani 0a301c0eec PPCSymbolDB: Save data symbols properly
Data symbols were previously saved as function symbols.
2017-10-05 19:55:34 +02:00
Sepalani aed0ac0543 PPCSymbolDB: Load more SymbolMap symbols
Allows to load data symbols from symbol map files.

Symbols from all sections are loaded.

The data/function symbol type is set accordingly.
2017-10-05 19:55:33 +02:00
aleios 6d04d4b9a2 Fix mouse cursor invisble in WX after game termination 2017-10-05 18:46:37 +02:00
Leo Lam 1e6b670795 Merge pull request #6092 from t27duck/missing_wiiware_makers
Add some missing WiiWare makers
2017-10-04 13:11:18 +02:00
Tony Drake 4035d0781c Update the cache revisions for WX and QT 2017-10-03 17:35:14 -04:00
Leo Lam d790660b59 Merge pull request #6088 from leoetlino/personalised-import
IOS: Assume ticket is unpersonalised for WAD imports
2017-10-03 19:59:52 +02:00
JosJuice e50fe00e93 Disable "Eject Disc" when emulation is not running 2017-10-03 17:20:36 +02:00
Vicki Pfau e0a326a493 VideoCommon: Fix overflow trying to access outside of EFB bounds 2017-10-01 12:09:16 -07:00
Tony Drake b73a4ff5d6 Add some missing WiiWare makers
I noticed the Strong Bad games, FAST - Racing League, and Tetris Party
were lacking info in the game lists' maker column.

This adds the information based on the games' MakerID.
2017-10-01 14:53:01 -04:00
JosJuice db77549502 Show event name when scheduling from wrong thread 2017-09-30 16:14:59 +02:00
Mush Man 0e7e7f6fc6 Change Wii Save Import alerts
Bracketed plurals in dialogue boxes and removed a prompt by moving a
backup message to another warning.
2017-09-29 20:13:14 +10: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 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
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 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
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
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 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
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
Markus Wick b0f93f2acc Merge pull request #6053 from spycrab/qt_action
Qt/FilesystemWidget: Use AddAction helper
2017-09-11 15:18:09 +02:00
spycrab 2a7ad0b721 Qt/FilesystemWidget: Use AddAction helper 2017-09-11 14:25:30 +02:00
Stenzek 24ddea04ce VideoBackends: Move SamplerState to common 2017-09-11 20:01:54 +10:00
Stenzek 340aabbb06 VideoCommon: Add helpers for generating common render states 2017-09-11 20:01:52 +10:00
Stenzek b7a099814a Vulkan: Clear contents of EFB convert framebuffer at create time
Fixes a validation layer warning when converting pixel formats.
2017-09-11 20:01:50 +10:00
Stenzek e584090822 Vulkan: Fix interface mismatch in RGB->YUYV shader 2017-09-11 20:01:48 +10:00
Stenzek 836b9b9acb Renderer: Move cull mode to a rasterization state object
Also moves logic for primitive handling to VideoCommon.
2017-09-11 20:01:45 +10:00
Stenzek 2869c570f1 Renderer: Move depth state to VideoCommon and seperate from bpmem 2017-09-11 19:40:26 +10:00
Stenzek 4d36f0cc87 Bitfield: Cast value to storage type in assignment operator
This allows us to use enum classes in bitfields.
2017-09-11 19:40:25 +10:00
Ryan Meredith f8b89b7b1a Update -d argument help message 2017-09-10 12:28:53 +02:00
Léo Lam cc40931d64 PPCSymbolDB: Optimise symbol lookups 2017-09-10 11:42:12 +02:00
Léo Lam 8cd8e9d905 JIT: Don't always look up symbols for blocks
With tons of symbols, this results in noticeable stuttering, so
skip lookups if the perf dir option isn't set anyway.
2017-09-10 11:42:12 +02:00
Markus Wick 432117047b Merge pull request #6045 from lioncash/sw-vertloader
SWVertexLoader: Minor cleanup
2017-09-10 11:23:25 +02:00
Markus Wick 88624f638f Merge pull request #6041 from stenzek/streambuffer-fence
StreamBuffer: Don't wait on fences twice when reserve > commit
2017-09-10 11:20:01 +02:00
Mat M a9b339fb65 Merge pull request #6048 from spycrab/qt_fix_tools
Qt: Fix "Load Wii System Menu" being in the wrong place
2017-09-10 02:18:13 -04:00
Stenzek 7141e6d57e Merge pull request #6032 from stenzek/postprocess-save
VideoConfigDiag: Fix bug where postprocessing shader wasn't saved to INI
2017-09-10 16:05:03 +10:00
spycrab c3a08f8653 Qt: Fix "Load Wii System Menu" being in the wrong place 2017-09-10 06:43:29 +02:00
Lioncash 696e1b40b5 Common: Move version strings to their own header
Ideally Common.h wouldn't be a header in the Common library, and instead be renamed to something else, like PlatformCompatibility.h or something, but even then, there's still some things in the header that don't really fall under that label

This moves the version strings out to their own version header that doesn't dump a bunch of other unrelated things into scope, like what Common.h was doing.

This also places them into the Common namespace, as opposed to letting them sit in the global namespace.
2017-09-09 19:28:10 -04:00
Lioncash 46579fe41c SWVertexLoader: Make SWVertexLoader a final class
It doesn't make sense to allow extending this class based off the way
the VertexLoader API is set up.
2017-09-09 15:33:30 -04:00
Lioncash dd8b41326c SWVertexLoader: Make SetFormat() and ResetBuffer() private
SetFormat() is only ever used internally. ResetBuffer() is only
used to implement the VertexManagerBase class interface, so
there's no need to make it protected.
2017-09-09 15:33:30 -04:00
Lioncash 29a362be43 SWVertexLoader: Remove GetIndexBuffer()
It's only ever used in one place internally and is arguably unnecessary.
2017-09-09 15:33:22 -04:00
Lioncash 4d2a4924cb SWVertexLoader: Normalize class variable names
Follows our coding style.
2017-09-09 15:32:41 -04:00
Jonathan Hamilton d2d355bb50 Buildfix for X11 where HAVE_XRANDR is disabled
The "X.h" header *just* contains protocol constants, not functions or
typedefs - so stuff like "Display" and "Window" are not defined unless
you include "Xlib.h".

"Xrandr.h" happens to include "Xlib.h" itself, so enabling xrandr
effectively worked around this issue.
2017-09-09 11:49:20 -07:00
Stenzek 9e1c09e347 StreamBuffer: Don't wait on fences twice when reserve > commit
If we allocate a large amount of memory (A), commit a smaller amount,
then allocate memory smaller than allocation A, we will have already
waited for these fences in A, but not used the space. In this case,
don't set m_free_iterator to a position before that which we know is
safe to use, which would result in waiting on the same fence(s) next
time.
2017-09-09 13:26:30 +10:00
Stenzek b969040534 Merge pull request #5923 from degasus/profiler
JitCommon: Update the block profiler
2017-09-08 18:20:35 +10:00
Markus Wick 62a331deed Merge pull request #6035 from leoetlino/warning-fixes
Core: Fix warnings
2017-09-08 09:17:31 +02:00
spycrab 16e99985f9 Qt/GameList: Use AddAction for "Change Disc" 2017-09-07 20:42:11 +02:00
Léo Lam a8849f87f1 Core: Fix warnings
Fixes two -Wmissing-declarations warnings
2017-09-07 20:35:17 +02:00
spycrab 0b2b72b366 Qt: Fix Wii Disc options being disabled while core is running 2017-09-07 19:46:06 +02:00
Leo Lam 14bd0fbf4b Merge pull request #6029 from spycrab/qt_change_disc
Qt/GameList: Add "Change Disc" option
2017-09-07 19:24:25 +02:00
Leo Lam c472462498 Merge pull request #6021 from spycrab/qt_build_by_default
CMake: Build DolphinQt2 by default
2017-09-07 19:23:07 +02:00
Leo Lam 0de3593b45 Merge pull request #6008 from spycrab/qt_older
Qt: Support versions < 5.6
2017-09-07 19:22:40 +02:00
Leo Lam 7971a4d66c Merge pull request #5981 from spycrab/qt_filesystem
Qt/GameList: Implement "Filesystem" tab
2017-09-07 19:19:48 +02:00
Stenzek 0de31d87bd VideoConfigDiag: Fix bug where postprocessing shader wasn't saved to INI 2017-09-08 01:19:26 +10:00
Stenzek 134daf3b00 Vulkan: Extend the NVIDIA MSAA bug to render-pass based clears
Calling vkCmdClearAttachments with a partial rect, or specifying a
render area in a render pass with the load op set to clear can cause the
GPU to lock up, or raise a bounds violation. This only occurs on MSAA
framebuffers, and it seems when there are multiple clears in a single
command buffer. Worked around by back to the slow path (drawing quads)
when MSAA is enabled.
2017-09-07 17:05:43 +10:00
Stenzek b573319f8f D3D: Fix shader compile error with logicop and alpha test enabled 2017-09-07 11:48:01 +10:00
Stenzek c15ea2f1ed D3D: Fix crash if shaders fail to compile 2017-09-07 11:45:43 +10:00
spycrab 8f8e96f59f Qt/GameList: Add "Change Disc" option 2017-09-07 01:25:22 +02:00
Jules Blok c97a799c5f Merge pull request #6016 from Armada651/allow-tearing
D3DBase: Support the "allow tearing" DXGI flags.
2017-09-06 13:22:23 +02:00
Jules Blok e103a58d87 Merge pull request #6012 from stenzek/drop-nv-glsl
Vulkan: Drop VK_NV_glsl extension support
2017-09-06 13:19:47 +02:00
Stenzek 1073053df9 Merge pull request #6026 from stenzek/d3d-ubershader-logicop
ShaderGen: Output uint when logic op is enabled for D3D ubershaders
2017-09-06 18:33:47 +10:00
Stenzek 2e20cd0ffd Merge pull request #6025 from spxtr/present_queue
Vulkan: Use a separate queue for presenting.
2017-09-06 18:32:43 +10:00
iwubcode 1ccfccdcf0 D3D: Properly handle dual source blending 2017-09-05 23:51:31 -05:00
Jonathan Hamilton 7925de66b2 RFC: Call the previously-set sigaction in fastmem handler if it's not our address
This "fixes" the android crash handler, so it now correctly shows a
backtrace and other debug info on crash instead of scary kernel messages
on arm64
2017-09-05 17:37:24 -07:00
JosJuice b96e4a2bce Merge pull request #5927 from spycrab/qt_gamelist_cache
Qt: Implement gamelist caching
2017-09-05 21:16:22 +02:00
spxtr a5be5a3a76 Vulkan: Use a separate queue for presenting.
Before this change, we simply fail if the device does not expose one
queue family that supports both graphics and present. Currently this is
fine, since devices tend to lay out their queues in this way. NV, for
instance, tends to have one queue family for all graphics operations and
one more for transfer only. However, it's not a hard requirement, and it
is cheap to use a separate queue, so we might as well.
2017-09-05 12:00:09 -07:00
Stenzek 84f8ebd95f VideoBackends: Clear uid bits that are unused for the current backend
Currently, this is only the logic op bit, but this will be extended to
the framebuffer fetch/blend modes. In the future, when/if we move to
VideoCommon pipelines, this state will be part of the pipeline UID
anyway, and we can mask it out in the backend by using a two-level map,
so the shaders/programs are shared.
2017-09-05 23:49:42 +10:00
Stenzek 6d32cce2f5 ShaderGen: Output uint when logic op is enabled for D3D ubershaders 2017-09-05 23:49:42 +10:00
Jules Blok 347fd065df D3DBase: Support the "allow tearing" DXGI flags.
This makes sure our framerate is unlocked when we disable V-Sync.
2017-09-04 23:12:52 +02:00
spycrab 28799bbe79 CMake: Build DolphinQt2 by default 2017-09-04 22:28:48 +02:00
spycrab a361a1deed Qt/SettingsWindow: Fix window not being detected as a dialog by some window managers 2017-09-04 19:50:24 +02:00
spycrab 4fdd4e2718 Qt: Support versions < 5.6 2017-09-04 10:40:47 +02:00
spycrab f00456e6bf Qt/ControllersWindow: Use std::map instead of std::unordered_map 2017-09-04 08:58:52 +02:00
Anthony ee6930a231 Merge pull request #6013 from stenzek/d3d-logic-op
D3D: Implement logic op support
2017-09-03 19:26:50 -07:00
Anthony 26e777d80b Merge pull request #5337 from stenzek/d3d-common-blending-state
D3D: Use blending state from VideoCommon
2017-09-03 19:25:46 -07:00
Stenzek 90051536bf D3D: Support logic op through integer render target view
This brings D3D to parity with OpenGL and Vulkan.
2017-09-04 10:07:36 +10:00
Léo Lam 3475ba8918 DSP: Fix missing masking for accelerator registers
Based on hardware tests, masking occurs for the accelerator registers.

This fixes Red Steel and Far Cry Vengeance, which rely on this behavior
when reading back the current playback position from the DSP.
2017-09-04 00:26:13 +02:00
Markus Wick 9e0df284aa Merge pull request #6018 from lioncash/const
Software/Tev: const correctness
2017-09-03 21:43:10 +02:00
Pierre Bourdon 5b6764a4fe Merge pull request #6015 from JosJuice/dvd-0-length
Fix handling of DVD commands that read 0 bytes
2017-09-03 21:04:25 +02:00
Markus Wick 745cde81e5 Merge pull request #6017 from lioncash/d3d-texture
D3DTexture: Remove unused class member
2017-09-03 21:03:36 +02:00
Lioncash baee3a9c74 Software/Tev: const correctness 2017-09-03 14:15:21 -04:00
Mat M edf4bfaf5f Merge pull request #5989 from lioncash/constantmgr
ConstantManager: Use std::array where applicable
2017-09-03 13:18:10 -04:00
Lioncash 36e299ca80 D3DTexture: Remove unused bindflags D3DTexture2D member variable 2017-09-03 13:12:26 -04:00
Lioncash 52099d1b0a D3DTexture: in-class initialize class members where applicable 2017-09-03 13:08:06 -04:00
JosJuice 3528c93edf DVDThread: Don't show an error message for all 0-length reads 2017-09-03 15:09:14 +02:00
JosJuice 0341a6052b DVDInterface: Reply to 0-length commands
This regression from the chunking PR was making a few games hang.
2017-09-03 15:09:14 +02:00
Jules Blok 8906b26ea5 D3DBase: Use the correct version of CreateDXGIFactory. 2017-09-03 14:33:06 +02:00
Stenzek 99d61906cc Merge pull request #5948 from Armada651/d3d-explicit-stereo
D3DBase: Only use a stereo swapchain if quad-buffering is enabled.
2017-09-03 21:07:24 +10:00
Jules Blok 75574ec6cc Merge pull request #5946 from stenzek/ubershader-stereo-texture-samples
UberShaderPixel: Fix sampling of EFB copies in stereo modes
2017-09-03 12:26:52 +02:00
Stenzek c9d649d27c D3D: Use Direct3D 11.1 where supported 2017-09-03 16:33:47 +10:00
Stenzek 0622979d3b ShaderGen: Support writing integer colors when logic op is enabled
This is required for D3D to support logic op.
2017-09-03 16:33:25 +10:00
Stenzek 254160691a Revert "Vulkan: Use VK_NV_glsl extension where available, and skip glslang"
This reverts commit d23fd17e1a.

Dynamic sampler indexing is broken in VK_NV_glsl as of 385.41. The
performance gap doesn't seem to be as wide with the updated driver, so
to save maintaining two code paths, it's easier to just drop the
extension support completely.
2017-09-03 15:31:19 +10:00
Stenzek 3dd675e613 Renderer: Change SetBlendState to accept a BlendingState
This decouples the state generation (from the emulated GPU) from the
management of internal backend state.
2017-09-03 14:14:54 +10:00
Stenzek 22b8cbae35 RenderBase: Drop SetColorMask and SetLogicOpMode
These are now incorporated into the blend state for all backends.
2017-09-03 14:14:54 +10:00
Stenzek 5c9bc8b79c D3D11: Use blending state from VideoCommon 2017-09-03 14:14:54 +10:00
Stenzek c90b0bf532 D3D11: Create debug device when validation layer is enabled in options 2017-09-03 14:14:19 +10:00
Stenzek ce59121748 Merge pull request #6004 from lioncash/d3d
D3D: Eliminate redundant ID3D11DeviceChild* casts
2017-09-03 14:13:17 +10:00
Stenzek 005d0b39f7 Merge pull request #6009 from lioncash/async
AsyncShaderCompiler: Make WorkItem-derived class constructors explicit
2017-09-03 14:11:41 +10:00
Stenzek 7a4348b641 Merge pull request #5649 from JonnyH/WIP/disable-vk-clear-renderpass
Add DriverDetails::BUG to Disable "LoadOp" clear renderpass in vulkan
2017-09-03 13:49:51 +10:00
Pierre Bourdon ed07bd4270 Merge pull request #6005 from spycrab/qt_warning_disable
Qt/DevelopmentWarning: Add "Don't show me this warning again" option
2017-09-03 03:50:29 +02:00
spycrab 0d3c4a3883 Qt/DevelopmentWarning: Add "Don't show me this warning again" option 2017-09-03 03:46:23 +02:00
Pierre Bourdon 425a8cb378 Merge pull request #5718 from mimimi085181/partial-updates-update
Update to partial texture updates
2017-09-03 03:16:55 +02:00
Pierre Bourdon ab27f0f78c Merge pull request #6010 from lioncash/vertex
OGL/VertexManager: Make vertex and index buffer handles private
2017-09-03 03:13:40 +02:00
spycrab 1b593fd56b Qt: Implement TAS/Movie shortcuts 2017-09-03 02:58:38 +02:00
spycrab 0e7ed3514f Qt: Implement "Movie" menu 2017-09-03 02:57:44 +02:00
Lioncash 2237a6a04c OGL/VertexManager: Make vertex and index buffer handles private
These are only ever read, but not written to outside of the VertexManager class.
2017-09-02 20:51:54 -04:00
spycrab 4163ee42bc Qt/GameList: Implement SelectionChanged() 2017-09-03 01:49:04 +02:00
Pierre Bourdon 3ae82ea669 Merge pull request #6007 from spycrab/qt_win_icon
Qt/MSVC: Add icon
2017-09-03 01:36:11 +02:00
spycrab 018c2cfd65 Qt/MSVC: Add icon 2017-09-02 23:51:59 +02:00
Lioncash 2d45204f12 VideoBackends: Add the explicit keyword to WorkItem-derived class constructors
Prevents implicit conversions
2017-09-02 17:35:20 -04:00
Lioncash 5059332d95 OGL/ProgramShaderCache: Remove unnecessary virtual keyword
This is superfluous, considering the override keyword is present.
2017-09-02 17:27:19 -04:00
Mat M 657195fad5 Merge pull request #6006 from JonnyH/WIP/parse-imgtec-gl_version-string
Parse IMGTEC's GL_VERSION string format
2017-09-02 17:10:59 -04:00
Markus Wick 30e01834e2 Merge pull request #6002 from lioncash/include
CommandProcessor: Remove unnecessary include
2017-09-02 23:05:58 +02:00
Jonathan Hamilton 658a4a6e29 Mark an ImgTec driver bug as fixed in 1.8@4693462
Now we correctly parse ImgTec's GL_VERSION string we can actually use
the BugInfo's version stuff correctly here
2017-09-02 14:05:16 -07:00
Jonathan Hamilton 662abcb2fe Parse IMGTEC's GL_VERSION string format
ImgTec's driver uses a major.minor@changeID versioning system

This is packed into a double so "1.9@4850625" becomes "109.4850625"

The next release brnach is expected to be 1.10, hence the need for 2
digits for the branch minor.

The changeID should be unique for each build, but is shared over all
branches, so only makes sense to compare withing a branch.

It's likely branch 'major' versions will be used for major hardware
revisions, and the drivers for both maintained in parallel. Thus it
may not make sense to compare versions between different major
verisons - if/when this happens we can hook up a DriverDetails::Family
as needed.
2017-09-02 14:05:16 -07:00
Lioncash 64de8a9d0b D3D: Eliminate redundant ID3D11DeviceChild* casts 2017-09-02 14:45:14 -04:00
Lioncash 6f97e3faa6 AsyncShaderCompiler: use std::make_unique in CreateWorkItem()
Same behavior, simpler code.
2017-09-02 14:08:00 -04:00
Lioncash 62615c601e AsyncShaderCompiler: Forward arguments to the specified type's constructor in CreateWorkItem()
As this just hands off the arguments to another type's constructor,
perfect forwarding should be used here to preserve any potential move semantics.
2017-09-02 14:06:48 -04:00
Lioncash f6e3a39c0e CommandProcessor: Remove unnecessary include
Gets rid of some indirect inclusion.
2017-09-02 13:34:21 -04:00
degasus 992893ba41 Jit64: Use ImmPtr. 2017-09-02 14:33:07 +02:00
degasus da79ddbde7 JitArm64: Rewrite Exit functions.
The gpr must not be touched in the Exit functions as they are maybe conditional.
So just allocate everything here manually.
2017-09-02 13:45:24 +02:00
degasus 304e601ad3 JitArm64: Reimplement aarch64 cycle counters.
CNTVCT_EL0 is force-enabled on all linux plattforms.
Windows is untested, but as this is the best way to get *any* low
overhead performance counters, they likely use it as well.
2017-09-02 13:24:37 +02:00
degasus 9080192a65 Jit64: Move profiler to the end of th block.
Within Cleanup(), it is called at *every* end of the block. This generates bigger code,
but it is the only way to handle blocks with multiple exit nodes.
2017-09-02 13:05:58 +02:00
degasus 958b75b707 JitCommon: Restructure the profiler calls. 2017-09-02 13:05:58 +02:00
degasus 95ce860265 DolphinWX: Enable branch following in the JIT debug interface. 2017-09-02 13:05:58 +02:00
degasus 8ab34b1a3e Jit64: Inline the profiler calls. 2017-09-02 13:05:58 +02:00
spycrab fcdd247f93 Qt: Fix building on <= 5.7.x 2017-09-02 03:20:20 +02:00
Leo Lam 8e9857d3cd Merge pull request #5954 from khg8m3r/OSXKeyboard
Clean up OSX input selection
2017-09-01 21:31:17 +02:00
spycrab 1173c2f790 Qt: Implement "Extract Certificates from NAND" 2017-08-29 08:31:50 +02:00
spycrab 561d31f887 Qt: Implement "Import BootMii NAND Backup" 2017-08-29 08:31:45 +02:00
Jonathan Hamilton 62e8d25cd1 Add Bug to Disable "LoadOp" clear renderpass in vulkan
This optimisation doesn't work on PowerVR's Vulkan implementation. We
(incorrectly) disallow Framebuffer objects to be used with a different
load or store op than that which they were created with, despite the
spec allowing such.

This fixes the windwaker intro "smearing"
2017-08-28 18:01:35 -07:00
Jonathan Hamilton 11057649ee Add VideoLogic (ImgTec) PCI ID 2017-08-28 18:01:16 -07:00
spycrab a2b7632850 Qt: Implement "Load GameCube Main Menu" 2017-08-29 02:57:46 +02:00
spycrab 0dfde1d34e Qt: Implement "Export All Wii Saves" 2017-08-28 23:00:14 +02:00
spycrab 9469fc3d6f Qt: Implement "Import Wii Save" 2017-08-28 23:00:14 +02:00
Leo Lam 378416f986 Merge pull request #5972 from leoetlino/close
WiimoteReal: Fix device handles not being closed
2017-08-28 21:01:12 +02:00
Lioncash 9c1f9c1c00 ConstantManager: Use std::array where applicable
Modernizes the arrays and makes future simplifications possible (e.g. usages within the software renderer).

It also makes cases where we use array->pointer decay explicit.
2017-08-27 15:41:36 -04:00
spycrab 95a53a435c Qt/GraphicsWidget: Fix bad layout column 2017-08-27 10:04:06 +02:00
Stenzek 21b3cd4759 OGL: Fix EFB pokes using incorrect color/depth 2017-08-27 11:55:24 +10:00
spycrab 8b346b7058 Qt/GameList: Implement "Filesystem" tab 2017-08-26 14:56:33 +02:00
spycrab 56aad4a958 Qt/PropertiesDialog: Make title more like Wx 2017-08-26 14:44:38 +02:00
spycrab 2630fa0ce9 Qt: Only show "Filesystem" Tab when game is disc based 2017-08-25 20:35:41 +02:00
JosJuice 87d982982d Fix regression in File::CopyDir
This apparently fixes https://bugs.dolphin-emu.org/issues/10499 somehow.

The first changed line of this commit is just for performance - the
second changed line is where the difference in behavior is.
2017-08-25 19:14:14 +02:00
Léo Lam 31b04149b3 DiscIO: Fix TMD extraction
The offset that we read from the header is relative to the partition.
2017-08-25 17:31:50 +02:00
Chris Burgener cc03e49024 Remove FFMPEG check for Renderer::IsFrameDumping() 2017-08-24 11:15:50 -04:00
spycrab b9c5a2af05 Qt: Implement gamelist caching 2017-08-24 07:17:31 +02:00
Nick ef95bf26cb Implement GamePAd and MultiAxisController detection 2017-08-24 00:31:59 -04:00
Michael M b58f8d19ab Rename Common::FifoQueue to Common::SPSCQueue
Since all queues are FIFO data structures, the name wasn't informative
as to why you'd use it over a normal queue. I originally thought it had
something to do with the hardware graphics FIFO.

This renames it using the common acronym SPSC, which stands for
single-producer single-consumer, and is most commonly used to talk about
lock-free data structures, both of which this is.
2017-08-23 17:00:52 -07:00
Jonathan Hamilton 5b41c5ae0d Fix vulkan crash on drivers without atomic load/store support
This would not allocate a SSBO buffer, but still try to update the
descriptor said with a NULL buffer. Which naturally crashed.
2017-08-23 14:49:22 -07:00
Léo Lam 52f26d462e WiimoteReal: Fix device handles not being closed
fail.

I have no idea how this didn't cause issues for more people.
2017-08-23 23:05:29 +02:00
JosJuice fb2016838e Merge pull request #5864 from JosJuice/directoryblob-disccontentcontainer
DirectoryBlob: Improve ReadInternal
2017-08-23 18:48:24 +02:00
Anthony 935c1da357 Merge pull request #5951 from ligfx/gametrackerworkqueuethread
GameTracker: use new Common::WorkQueueThread instead of signals/slots
2017-08-23 08:02:36 -07:00
Léo Lam e4ea4da782 IOS: Check for available features when adding devices
Prevents resource managers that shouldn't be visible from being exposed
to titles.

This adds a new function to get features for an IOS version, and also
moves the version checks from the modules themselves to VersionInfo.
This hopefully documents some of the differences between IOS better
and should be slightly cleaner than having random version checks.
2017-08-23 15:18:12 +02:00
Léo Lam 24e7b465be IOS: Rename MemoryValues to VersionInfo 2017-08-23 14:44:51 +02:00
Pierre Bourdon 187e65f495 Merge pull request #5941 from delroth/wfs
WFS updates
2017-08-23 11:14:01 +02:00
Nick 3abde44641 formatting cleanup 2017-08-23 00:19:34 -04:00
Lioncash bc57ab3923 Clipper: Copy both color sequences in CopyVertex as opposed to one
This is likely an oversight.
2017-08-22 22:45:28 -04:00
Lioncash ffaa9a3bea SW NativeVertexFormat: Utilize std::array where applicable
Gets rid of some hardcoded looping bounds, and also simplifies code in
some places, sometimes allowing for removal of a loop altogether.
2017-08-22 22:39:28 -04:00
Léo Lam ef888ef168 WFS: Fix logging types. 2017-08-22 23:41:38 +02:00
Léo Lam 344228ec10 WFSI: Implement noop ioctl 0x8f. 2017-08-22 23:41:38 +02:00
Léo Lam 70cb0cb126 WFSI: Implement GET_VERSION.
This ioctl writes a constant value to the output buffer.
2017-08-22 23:41:38 +02:00
Léo Lam 8a5d24ab4b WFSI: Implement IOCTL_WFSI_IMPORT_TITLE_CANCEL.
It gets called for cleaning up whenever something goes wrong, and
also when cancelling an update.
2017-08-22 23:41:38 +02:00
Léo Lam 5cc18bf116 WFSI: Add missing functionality to ImportTitleInit. 2017-08-22 23:41:38 +02:00
Léo Lam f0aeeeaef6 WFSI: Implement internal Cancel{Title,Patch}Import. 2017-08-22 23:41:38 +02:00
Léo Lam c1817b2c6d WFSI: Rename 2 ioctls to better reflect their purposes.
* IOCTL_WFSI_PREPARE_DEVICE -> IOCTL_WFSI_IMPORT_TITLE_INIT
  (equivalent of ES_ImportTitleInit, also the official name)

* IOCTL_WFSI_IMPORT_TITLE -> IOCTL_WFSI_IMPORT_TITLE_CANCEL
  (equivalent of ES_ImportTitleCancel)
2017-08-22 23:41:38 +02:00
Léo Lam 7423563386 WFSI: Fix the TMD size check. 2017-08-22 23:41:37 +02:00
Pierre Bourdon a641609857 WFSI: Implement patch install finalization. 2017-08-22 23:41:37 +02:00
Pierre Bourdon 76bbfbb511 WFSI: Adapt FINALIZE_TITLE_INSTALL for patch support. 2017-08-22 23:14:00 +02:00
Pierre Bourdon db24c94c6e WFSI: More work to support patching: split off current_tid/gid and import_tid/gid 2017-08-22 23:14:00 +02:00
Pierre Bourdon aa445806a5 WFSI: Rename a few ioctl handlers. 2017-08-22 23:14:00 +02:00
Pierre Bourdon 5ed3a3f12d WFSI: Get the patch info from PREPARE_DEVICE. 2017-08-22 23:14:00 +02:00
Léo Lam e004709b69 WFSI: Implement CHECK_HAS_SPACE. 2017-08-22 23:13:59 +02:00
Léo Lam 15f25783a8 WFS: Implement RENAME. 2017-08-22 23:13:58 +02:00
Pierre Bourdon 2a8d9a53b7 WFS: Share error codes with WFSI. 2017-08-22 23:13:14 +02:00
Pierre Bourdon e6e00f6c8d WFSI: Implement install finalization. 2017-08-22 23:13:14 +02:00
Pierre Bourdon 88580b8d5f WFSI: Fix install directories creation. 2017-08-22 23:13:14 +02:00
Pierre Bourdon e79392cb8e WFS: Implement WRITE and WRITE_ABSOLUTE. 2017-08-22 23:13:14 +02:00
Pierre Bourdon dca70844a6 WFS: Implement CREATE_OPEN along with OPEN. 2017-08-22 23:13:14 +02:00
Pierre Bourdon ef3232cd74 WFSI: Create meta/work/save dirs when applying title profile. 2017-08-22 23:13:14 +02:00
Pierre Bourdon c0b3a68441 WFS: Implement MKDIR. 2017-08-22 23:13:13 +02:00
Pierre Bourdon e45bb77512 WFS: Add a basic GET_ATTRIBUTES implementation. 2017-08-22 23:13:13 +02:00
Pierre Bourdon 56aa3cc558 WFSI: Implement both GET_TMD ioctls. 2017-08-22 23:13:13 +02:00
Pierre Bourdon c81636d9a8 WFSI: Stub out SET_FST_BUFFER. 2017-08-22 23:13:13 +02:00
Pierre Bourdon 92387cb052 WFS: Implement CLOSE_2 as a clone of CLOSE. 2017-08-22 23:13:13 +02:00
Leo Lam c12418788a Merge pull request #5963 from JMC47/mtmsrfix
Fix JIT64 mtmsr issue after PIE support.
2017-08-22 22:12:13 +02:00
Leo Lam 788af71f30 Merge pull request #5949 from ligfx/gamelistmodelupdategame
GameListModel: make UpdateGame update existing files as well
2017-08-22 21:39:29 +02:00
Nick 3d01eeef00 Fix OSX hotkey defaults 2017-08-22 21:31:19 +02:00
Leo Lam 6e1cdfadc9 Merge pull request #5955 from leoetlino/copy
FileUtil: Simplify File::Copy on non-Windows platforms
2017-08-22 21:29:46 +02:00
Leo Lam b3a8209821 Merge pull request #5960 from ligfx/gamefiledontstorefilepathparts
GameFile: don't store file path parts
2017-08-22 21:29:30 +02:00
Leo Lam 232b81999a Merge pull request #5961 from ligfx/gamefilebanner
GameFile: handle missing banners in UI instead
2017-08-22 21:26:38 +02:00
Michael M d00ecb7231 GameFile: remove unused m_company 2017-08-22 12:18:49 -07:00
Markus Wick 3094d6531d Merge pull request #5962 from degasus/arm-fixes
JitArm64: Fix rlwinmx.
2017-08-22 20:27:45 +02:00
Nick 3cddb62aea keyboard fixes v2 2017-08-22 12:26:44 -04:00
JosJuice 09f3f9b41a Remove NonCopyable
The class NonCopyable is, like the name says, supposed to disallow
copying. But should it allow moving?

For a long time, NonCopyable used to not allow moving. (It declared
a deleted copy constructor and assigment operator without declaring
a move constructor and assignment operator, making the compiler
implicitly delete the move constructor and assignment operator.)
That's fine if the classes that inherit from NonCopyable don't need
to be movable or if writing the move constructor and assignment
operator by hand is fine, but that's not the case for all classes,
as I discovered when I was working on the DirectoryBlob PR.

Because of that, I decided to make NonCopyable movable in c7602cc,
allowing me to use NonCopyable in DirectoryBlob.h. That was however
an unfortunate decision, because some of the classes that inherit
from NonCopyable have incorrect behavior when moved by default-
generated move constructors and assignment operators, and do not
explicitly delete the move constructors and assignment operators,
relying on NonCopyable being non-movable.

So what can we do about this? There are four solutions that I can
think of:

1. Make NonCopyable non-movable and tell DirectoryBlob to suck it.

2. Keep allowing moving NonCopyable, and expect that classes that
   don't support moving will delete the move constructor and
   assignment operator manually. Not only is this inconsistent
   (having classes disallow copying one way and disallow moving
   another way), but deleting the move constructor and assignment
   operator manually is too easy to forget compared to how tricky
   the resulting problems are.

3. Have one "MovableNonCopyable" and one "NonMovableNonCopyable".
   It works, but it feels rather silly...

4. Don't have a NonCopyable class at all. Considering that deleting
   the copy constructor and assignment operator only takes two lines
   of code, I don't see much of a reason to keep NonCopyable. I
   suppose that there was more of a point in having NonCopyable back
   in the pre-C++11 days, when it wasn't possible to use "= delete".

I decided to go with the fourth one (like the commit title says).
The implementation of the commit is fairly straight-forward, though
I would like to point out that I skipped adding "= delete" lines
for classes whose only reason for being uncopyable is that they
contain uncopyable classes like File::IOFile and std::unique_ptr,
because the compiler makes such classes uncopyable automatically.
2017-08-22 16:40:34 +02:00
JosJuice 6e6864fcbf Revert "DirectoryBlob: Use NonCopyable"
This reverts commit a7a8e467b6.
2017-08-22 16:35:37 +02:00
JosJuice 51a7150990 Fix DolphinWX build issue
I'm not sure why this hasn't popped up as an error on the buildbots,
but the build fails on my new install of VS2017. The error is C2445:
result type of conditional expression is ambiguous: types 'wxString'
and 'const char [1]' can be converted to multiple common types
2017-08-22 13:35:20 +02:00
JMC47 f7b133b39a Fix JIT64 mtmsr - PIE support caused the codesize
to get bigger, breaking an optimization.  This forces the emitter to use a
32bit pointer instead of an 8bit one, fixing the issue at the expense of
efficiency.
2017-08-22 06:44:38 -04:00
Michael M 5f30ebed23 GameFile: don't store file path parts 2017-08-21 23:55:45 -07:00
Michael M e88b5f4254 GameFile: add missing include for QFileInfo 2017-08-21 23:55:45 -07:00
degasus b00c60618b JitArm64: Fix rlwinmx.
Seems like I was wrong that ANDI2R doesn't require a temporary register here.
There is *one* case when the mask won't fit in the ARM AND instruction:
mask = 0xFFFFFFFF
But let's just use MOV instead of AND here for this case...
2017-08-22 08:47:43 +02:00
Michael M 061da1300a GameFile: handle missing banners in UI instead
Currently, GameFile returns a generic banner if the file didn't have one
available (either because the file format doesn't support it, or because
it's a Wii file without an associated save).

It makes more sense to handle the lack of banner in the UI layer. The
game list will use the generic missing banner explicitly (no change from before), and the game info window now omits the banner display entirely if the file didn't have one (since it's not useful to display/allow the user to save the "missing banner" banner).
2017-08-21 18:00:04 -07:00
N.E.C ebda7db437 VideoCommon: Fix bug #10464 (RA4 format not handled in TextureDecoder) 2017-08-21 10:22:15 -07:00
Léo Lam 6f923ffae4 FileUtil: Simplify File::Copy on non-Windows platforms
The old way of doing it is error prone and unnecessarily complex.
2017-08-21 18:31:46 +02:00
Pierre Bourdon 873521ce0b Revert "Try to fix File::Copy with non-1024-byte aligned sizes" 2017-08-21 18:29:58 +02:00
Jules Blok d0fc223fe1 Merge pull request #5956 from Armada651/fix-remove-clr-usage
RenderState: Fix incorrect blending factors when removing the color usage.
2017-08-21 17:06:44 +02:00
Markus Wick 8280d15357 Merge pull request #5939 from JonnyH/WIP/broken-fstream-copy
Try to fix File::Copy with non-1024-byte aligned sizes
2017-08-21 17:01:16 +02:00
Jules Blok 390f3f13ba RenderState: Fix incorrect blending factors when removing the color usage. 2017-08-21 16:33:10 +02:00
Leo Lam 92b375b07a Merge pull request #5952 from lioncash/futureproofing
CommonTypes: Qualify standard integral types in typedefs with std::
2017-08-21 11:07:34 +02:00
Nick 0df4f7db4f Depreciate old OSX Keyboard and Mouse 2017-08-21 01:44:03 -04:00
Mat M 5aed9a67ef Merge pull request #5904 from leoetlino/indirect-include
PowerPC: Fix indirect includes for GDBStub
2017-08-20 19:59:53 -04:00
Lioncash 7a5577498b CommonTypes: Qualify standard integral types in typedefs with std::
Given a relatively recent proposal (P0657R0), which calls for deprecation of putting stuff into the global namespace when using C++ headers, this just futureproofs our code a little more.

Technically this is what we should have been doing initially, since an
implementation is allowed to not provide these types in the global
namespace and still be compliant.
2017-08-20 19:34:52 -04:00
Leo Lam 08004d409e Merge pull request #5937 from ligfx/miniupnpccmake
CMake: use miniupnpc target instead of global vars
2017-08-20 23:44:06 +02:00
Leo Lam aab4cced11 Merge pull request #5938 from sepalani/err-msg
CommonFuncs: LastStrerrorString added
2017-08-20 23:41:47 +02:00
Michael M 8c13e0230c GameTracker: use WorkQueueThread 2017-08-20 14:40:56 -07:00
Michael M de9378bf63 Common: add WorkQueueThread 2017-08-20 14:40:56 -07:00
Leo Lam 165a995cc4 Merge pull request #5950 from ligfx/gamelistmodelfilenamefallback
GameListModel: fallback to file name if long name is empty
2017-08-20 23:29:27 +02:00
Michael M 1a59ea3adb GameFile: don't assign English long name for ELF/DOLs 2017-08-20 13:50:24 -07:00
Michael M f3ab974bc6 GameListModel: fallback to file name if long name is empty 2017-08-20 13:50:24 -07:00
Michael M 6bfb280cec GameListModel: make UpdateGame take a const ref 2017-08-20 13:46:49 -07:00
Michael M f724a06108 GameListModel: make UpdateGame update existing files as well 2017-08-20 13:46:49 -07:00
Jules Blok f4f6782ae6 D3DBase: Only use a stereo swapchain if quad-buffering is enabled. 2017-08-20 18:25:49 +02:00
Stenzek a7f217c3f4 UberShaderPixel: Fix sampling of EFB copies in stereo modes 2017-08-20 18:08:24 +10:00
Michael M 623026f420 Connect to Settings::PathAdded/Removed directly in GameListModel
It no longer makes sense to connect these signals in GameList, since
GameListModel is now owned by Settings.
2017-08-19 15:59:40 -07:00
Michael M 7d9ad88bc5 Add initial paths to GameTracker after construction
It's strange to see GameTracker add its own initial paths in
construction, because you might expect a race condition where the
GameLoaded signal is emitted before it gets connected to in
GameListModel.

In fact, this doesn't happen, but only because of how it abuses the Qt
signals mechanism to load files asynchronously: GameLoader emits a
GameLoaded signal which gets forwarded to the GameTracker::GameLoaded
signal _after_ control returns to the event loop, at which point
GameListModel has connected.

This commit moves the logic of adding initial paths out of GameTracker
to a point after the signals are connected, which is more obvious and
doesn't rely on how GameTracker implements concurrency.
2017-08-19 15:59:40 -07:00
Sepalani 4e5fe6366a CommonFuncs: LastStrerrorString added 2017-08-18 20:08:50 +01:00
Michael M abf55be70d RunOnObject: add missing QThread include 2017-08-17 16:41:35 -07:00
Jonathan Hamilton 643b3ba9f8 Try to fix File::Copy with non-1024-byte aligned sizes
ifstream::read() sets the failbit if trying to read over the end, which
means that (!input) would be hit for the 'last' block if it wasn't
exactly BSIZE (1024) bytes.
2017-08-17 14:08:56 -07:00
Michael M fc306faad8 CMake: use miniupnpc target instead of global vars 2017-08-17 13:15:02 -07:00
Léo Lam 4b4e488189 WFS: Use a separate log type for WFS related logs
Makes it easier to turn off general IOS messages that can be
distracting (e.g. /dev/net/ssl being opened hundreds of time...)
without losing the ability to view WFS messages.
2017-08-16 22:27:29 +02:00
Leo Lam 918b0375e4 Merge pull request #5742 from ToadKing/fix-bad-controllers
Ignore capabilities reported by an XInput device
2017-08-17 03:42:02 +08:00
Leo Lam 799b01b6af Merge pull request #5751 from leoetlino/region
Config: Fall back to the system menu region
2017-08-17 03:40:19 +08:00
Leo Lam a53b01360c Merge pull request #5898 from ligfx/extractupnp
Common: extract UPnP namespace from NetPlayServer
2017-08-17 03:11:41 +08:00
Leo Lam 70931f460d Merge pull request #5929 from JonnyH/PR/fix-oprofile-build-linked-as-needed
Fix OPROFILE linux build with -Wl,--as-needed
2017-08-17 03:06:59 +08:00
Léo Lam d2452b8ecf Qt: Fix old usage of GetSelectedGame
Waited too long before merging a PR, which managed to break the build
because GetSelectedGame was changed without introducing any conflict :(
2017-08-16 13:21:14 +02:00
Leo Lam 3748384008 Merge pull request #5746 from leoetlino/disc-updates
Add support for installing disc updates from the game list
2017-08-16 19:02:42 +08:00
Sepalani 93b5a5369b SymbolDB: Blank stripped symbol name fixed 2017-08-16 04:07:19 +01:00
Pierre Bourdon 9b79e0ac72 Merge pull request #5930 from delroth/wfs
Fix Dragon Quest X offline mode on Dolphin
2017-08-15 22:40:56 +02:00
Pierre Bourdon 40c70469e5 WFS: Implement GET_HOMEDIR. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 1e75455ef5 WFS: Return a proper ENOENT code on failed OPEN. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 397f5e54e0 WFS: Implement READ_ABSOLUTE (merged with READ implementation). 2017-08-15 22:35:45 +02:00
Pierre Bourdon 49a4712f33 WFS: Implemented the GET_SIZE ioctl. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 2f5ddf12a9 WFS: Normalize paths before opening. 2017-08-15 22:35:45 +02:00
Pierre Bourdon 425cf18bf7 USB: Add a stub HIDv5 implementation and use it for IOS59. 2017-08-15 22:35:45 +02:00
Pierre Bourdon f810f1edb2 WFS/NAND: Better handle GID. 2017-08-15 22:29:10 +02:00
Pierre Bourdon f8e5f4296f WFS: Document WFSSRV ioctl 0x0c as being mkdir. 2017-08-15 22:29:10 +02:00
Pierre Bourdon c14ab0dd53 WFS: Implement current/home path expansion. 2017-08-15 22:29:10 +02:00
Jonathan Hamilton 2a66b88d01 Fix OPROFILE linux build with -Wl,--as-needed
The opagent library was (incorrectly) marked as a dependency for "Core"
instead of "Common".

When linked with --as-needed, any symbols the linker can tell are not
used are discarded. As the link is done in command-line order, and the
Core library (and dependencies) are processed before Common, it would
link in Core, then opagent, but as at that point no opagent symbols are
used the whole opagent library would be discarded.

Moving the opagent library to be a dependency of Common fixes this, as
after the Common library is linked, there *are* opagent symbols used.
2017-08-14 14:38:44 -07:00
Jonathan Hamilton 5c213a5ad5 Qt frontend build fix for USE_UPNP=OFF
A couple of missing "#ifdef USE_UPNP" around
NetPlaySetupDialog::m_host_upnp
2017-08-14 13:31:55 -07:00
Anthony 6a272f22de Merge pull request #5478 from stenzek/vulkan-nvidia
Vulkan: Don't use vkCmdClearAttachments on NVIDIA with MSAA
2017-08-14 13:12:41 -07:00
Anthony a7bdd2ee1c Merge pull request #5868 from stenzek/d3d-require-new-compiler
D3DBase: Raise error if d3dcompiler_47.dll cannot be loaded
2017-08-14 09:55:31 -07:00
Leo Lam 5bfd00f4e6 Merge pull request #5926 from ligfx/lintallsource
Fix two small lint errors
2017-08-14 23:18:04 +08:00
Anthony fc9f9b6683 Merge pull request #5880 from stenzek/nv-ubershaders
Ubershader optimizations for NVIDIA
2017-08-14 08:17:10 -07:00
Michael M 1ade08c607 Fix two small lint errors 2017-08-13 19:06:10 -07:00
Michael M 8702ffccc3 UPnP: use value-initialization instead of std::memset 2017-08-13 18:50:53 -07:00
Michael M 0e51082bbb UPnP: move variable declaration to where it's used 2017-08-13 18:50:52 -07:00
Michael M 7ce9f1f984 UPnP: remove unneeded vector in InitUPnP() 2017-08-13 18:50:52 -07:00
Michael M b5d070b0cf NetPlayServer: handle port forwarding in constructor 2017-08-13 18:50:52 -07:00
Michael M 4b50e77a26 NetPlayClient/Server: apply Parameter Object pattern to traversal parameters 2017-08-13 18:50:52 -07:00
Michael M fdb5828d62 Qt MainWindow: clean up Netplay settings logic 2017-08-13 18:50:52 -07:00
Michael M a09f8744b9 UPnP: cleanup variable name desc_xml 2017-08-13 18:50:52 -07:00
Michael M ff1d1a7a4d UPnP: use std::to_string 2017-08-13 18:50:52 -07:00
Michael M 862e0bec79 UPnP: cleanup function names 2017-08-13 18:50:52 -07:00
Michael M 281f90efc3 UPnP: coalesce s_our_ip and cIP 2017-08-13 18:50:51 -07:00
Michael M 106ae9636e UPnP: cleanup variable names 2017-08-13 18:50:51 -07:00
Michael M 3386543a9c Common: extract UPnP namespace from NetPlayServer 2017-08-13 18:50:51 -07:00
Michael M 9afb2ff40e Common/CMakeLists: sort source files 2017-08-13 18:50:51 -07:00
Markus Wick 06da1973a8 Merge pull request #5919 from degasus/arm
JitArm64: Small performance optimizations.
2017-08-14 00:01:27 +02:00
Markus Wick f92562c652 Merge pull request #5917 from degasus/cmp
JitArm64: Fix and improve the cmpXX instructions.
2017-08-14 00:00:54 +02:00
Sepalani c71ce9a8eb MemoryWindow: base address search added 2017-08-12 18:22:30 +01:00
Pierre Bourdon 5a4900bc96 WFS: Stub WFSSRV's flush command. 2017-08-12 15:17:34 +02:00
Pierre Bourdon f3224dc726 WFS: Stub out unimplemented ioctl 0x08. 2017-08-12 15:17:34 +02:00
Pierre Bourdon f0ba0f617f WFS: Fix shutdown behavior with long hanging requests. 2017-08-12 15:17:34 +02:00
Pierre Bourdon 385f063be1 ES: Split out GetTitleId to a separate method. 2017-08-12 15:17:34 +02:00
Pierre Bourdon 58624ef409 ES: Fix wrong log message. 2017-08-12 15:17:34 +02:00
Markus Wick d791e5d3a8 JitArm64: Use the updated wrappers.
They are faster, no need to use the slow path in the CPU.
2017-08-12 00:00:41 +02:00
Markus Wick d78009877b JitArm64: Fix LSL/LSR/ROR/ASR wrappers.
The other method has a latency of 2 cycles. This also improves the
throughput a lot.
2017-08-12 00:00:41 +02:00
Markus Wick 5ee7f86199 JitArm64: Optimize rlwinmx.
The new code adds fast paths for most usages which fits in one
instruction with one cycle latency.
2017-08-12 00:00:41 +02:00
Markus Wick ec5cfd2aae JitArm64: Update CR helpers to reflect their usage.
This helpers are not for general CR calculation, they are just for the
common case of the sign extended result of integer instructions if the
rc bit is set.
They must not be used by other instructions like cmp, so there is no
need to be as flexible.
2017-08-11 21:17:13 +02:00
Markus Wick 7d4c14feba JitArm64: Fix and improve the cmpXX instructions. 2017-08-11 21:17:13 +02:00
Ryan Meredith 7154c0f0ff m_bt_wiimote_motor rename and tooltip addition 2017-08-11 15:15:51 -04:00
Markus Wick b89e4b5258 Interpreter: Fix cmpi.
cmpi shall compare two signed 32 bit values. The used difference a-b
may overflow and so the resulting 32 bit value can't represent it.
A correct way would be cr = s64(a) - s64(b) and it should be done in
this way in the JITs, but the Interpreter shall implement the most
readable way.

Also drops the now unused helper function.
2017-08-11 17:35:22 +02:00
Stenzek f8a64ab1fc UberShaderPixel: Use an if trees instead of switch statements on GL
The switch statements in these functions appear to get transformed into
an if..else chain on NVIDIA's OpenGL/Vulkan drivers, resulting in lower
performance than the D3D counterparts. Transforming the switch into a
binary tree of ifs can increase performance by up to 20%.
2017-08-12 00:16:19 +10:00
Leo Lam 5767309670 Merge pull request #5914 from sepalani/rso-data
RSO: Import data symbols
2017-08-11 21:02:28 +08:00
Léo Lam 1bd7fefec1 Config: Set DOL/ELF region to UNKNOWN
This allows the region to be chosen by the user.
2017-08-11 20:28:33 +08:00
Léo Lam bec35b287e Config: Fall back to the system menu region
Since we don't want users to have to configure the region manually
and always enforce one automatically, we should fall back to a region
that was likely to be chosen by the user instead of always using
PAL whenever the title region cannot be detected.

Dolphin doesn't mess with installed NAND titles like the system menu,
so it is a reliable indicator of what region the user wants.
2017-08-11 20:28:33 +08:00
Leo Lam 86e932b833 Merge pull request #5915 from JosJuice/pad-size
DolphinQt2: Replace "Pad size" with "Buffer size"
2017-08-11 20:27:52 +08:00
JosJuice 3570a9b636 DolphinWX: Replace "Pad buffer" with "Buffer size" 2017-08-11 12:36:42 +02:00
Leo Lam c91211b6ce Merge pull request #5867 from leoetlino/widescreen
GameINI: Replace Wii.Widescreen with AspectRatio
2017-08-11 18:23:54 +08:00
JosJuice 9747a4c697 DolphinQt2: Replace "Pad size" with "Buffer size"
"Pad size" just doesn't make much sense. Let's go with "Buffer size"
instead, since the control for it is labeled "Buffer".

(Another possibility is "Pad buffer size", but I'm against that,
because we've stopped referring to controllers as "pads" in almost
all GUI strings.)
2017-08-11 12:22:44 +02:00
Leo Lam 438610a58d Merge pull request #5748 from nitrousox1de/hide-mouse-delay-fullscreen
Hide mouse delay fullscreen
2017-08-11 17:34:46 +08:00
Leo Lam 54778303ee Merge pull request #5871 from JosJuice/read-swapped-and-shifted
DiscIO: Add a Volume::ReadSwappedAndShifted function
2017-08-11 15:58:42 +08:00
Léo Lam 940cc843ed Config: Fix Movie config loading/saving
* Add missing Language setting loading/saving. This was added after the
  original OnionConfig PR, which is why support for it was missing.

* Change MovieConfigLoader to reuse ConfigInfos. Less duplication.

* Extract MovieConfigLoader::Save into SaveToDTM. The DTM should use
  the current config and not just the movie layer. This makes more
  sense than just saving the movie layer, which may not always exist,
  and also fixes a crash that would happen when creating a new
  recording because the movie layer wouldn't exist in that case.

  (Plus, having to get the loader from the layer and call ChangeDTM
  on it manually is not very pretty.)
2017-08-11 15:36:32 +08:00
Léo Lam fa7e3e55d2 Config: Add MainSettings
Not really used anywhere yet, but useful for not having to duplicate
config locations and for getting rid of conflicts when I get around
to rebase my Main.Core and Main.DSP porting PR.
2017-08-11 15:36:32 +08:00
Léo Lam e471505632 WX: Reload Wii config pane on config change 2017-08-11 15:36:32 +08:00
Léo Lam b2c41cec0a Config: Include SYSCONF in base layer
Settings that come from the SYSCONF are now included in Dolphin's
config system as part of the base layer. They are handled in a
special way compared to other settings to make sure they are only
loaded from and saved to the SYSCONF (to avoid different, possibly
contradicting sources of truth).
2017-08-11 15:36:31 +08:00
Léo Lam c900e77ac5 Config: Add Get/Set on Layer
For convenience, when getting/setting from ConfigInfos.
2017-08-11 15:28:11 +08:00
Leo Lam e86f5ac04b Merge pull request #5913 from ligfx/qtselectedgamegamefile
GameList: make GetSelectedGame a pointer to GameFile
2017-08-11 15:25:15 +08:00
Sepalani ae4790ff25 RSO: Import data symbols 2017-08-10 21:30:32 +01:00
Michael M 3c002f0213 GameList: make GetSelectedGame a pointer to GameFile 2017-08-10 13:22:35 -07:00
Michael M fcb1eb9d3b dsp_rom: skip bootucode_ax when running from entrypoint
This could cause the first branch of the bootucode procedure, which
takes its parameters from the AX registers, to run during the ROM init
sequence. Since the ROM doesn't set any of the AX registers, the values
aren't meaningful, and can cause bad DMA transfers and crashes.
2017-08-10 10:53:12 -07:00
Léo Lam 5ba6182bbc Qt: Fix WiiUpdate progress dialog cancel button
We didn't properly remove the default cancellation handler, which would
cause crashes if the dialog was gone too early.
2017-08-10 23:47:18 +08:00
Léo Lam ea3b351d92 Qt: Add menu item to perform system update from disc 2017-08-10 23:47:18 +08:00
Léo Lam 0e71c0760e WX: Add menu item to perform system update from disc 2017-08-10 23:47:18 +08:00
Léo Lam 0fdae2adb8 UI: Refactor Wii update code
This moves the progress dialog logic and the result dialog to separate
functions that can easily be reused for disc updates.
2017-08-10 23:47:18 +08:00
Léo Lam 916deb9004 WiiUtils: Add a disc updater 2017-08-10 23:47:18 +08:00
Léo Lam eb1ba4b0e9 DiscIO: Add a blob reader for Volume files 2017-08-10 23:47:18 +08:00
Léo Lam ca0438e26d WiiWad: Allow using WiiWad with more than just files
This adds a WiiWad constructor that takes a BlobReader, so that the
class can be used with more than just files from the host filesystem.

Required for using WiiWad with WADs from update partitions.
2017-08-10 23:47:18 +08:00
Léo Lam 5976d3934d WiiUtils: Refactor InstallWAD
Allows using an existing instance of IOS and WiiWAD.
2017-08-10 23:47:18 +08:00
Léo Lam bc588948c9 WiiUtils: Move ShouldInstallTitle to the online updater
The disc updater uses different conditions.
2017-08-10 23:47:18 +08:00
Léo Lam 71f403d05b BTBase: Fix a file deletion issue on Windows
> The process cannot access the file because it is being used by another process.
2017-08-10 23:30:52 +08:00
JosJuice e806928071 Make DolphinQt2 netplay strings more like in DolphinWX 2017-08-10 15:58:04 +02:00
spycrab 366d4c7744 Qt/NetPlay: Use TraversalClient::FailureReason 2017-08-10 15:41:01 +02:00
Leo Lam e41a9905c0 Merge pull request #5744 from JosJuice/remove-non-integer-irs
Remove non-integer IRs
2017-08-10 17:10:26 +08:00
Leo Lam d0304c9b38 Merge pull request #5810 from spycrab/qt_netplay
Qt: Implement Netplay
2017-08-10 14:45:52 +08:00
Leo Lam 15e46cb216 Merge pull request #5900 from ligfx/fixupnpinit
Fix UPnP init
2017-08-10 14:41:50 +08:00
Leo Lam 13b0ba3f55 Merge pull request #5908 from beholdnec/fix-i8-typo
VideoCommon: Fix typos in comments introduced by #5849
2017-08-10 14:39:30 +08:00
spycrab 9b65f38382 Make Visual Studio happy 2017-08-10 06:49:57 +02:00
spycrab 78cc759d56 Settings: Implement NetPlay globals 2017-08-10 06:49:57 +02:00
spycrab 2e29509b75 Qt/GameList: Add "Host with NetPlay" option 2017-08-10 06:49:57 +02:00
spycrab 13fac93a29 Qt: Implement NetPlay 2017-08-10 06:49:57 +02:00
Michael Lelli 4fb2d1e361 Ignore capabilities reported by an XInput device 2017-08-09 22:51:01 -05:00
spycrab d5629017b9 Qt/NetPlay: Implement MD5 dialog 2017-08-09 23:13:20 +02:00
N.E.C b52aff7966 VideoCommon: Fix typo in comments introduced by #5849 2017-08-09 00:02:27 -07:00
Michael M 6faacbeea5 TraversalClient: make FailureReason an enum class 2017-08-08 15:29:56 -07:00
spycrab 962af060a0 Qt/GameList: Add method to get unique ID for item 2017-08-09 00:05:48 +02:00
spycrab e9138f7512 Qt/GameList: Implement GetModel() 2017-08-09 00:05:48 +02:00
spycrab 655778f7f1 Qt: Implement GetUniqueID() 2017-08-09 00:05:48 +02:00
spycrab ca1646d99b Qt: Add "Start NetPlay" option to the menubar 2017-08-09 00:05:48 +02:00
Léo Lam 58b7350562 SettingsHandler: Fix generated serial numbers
Must be 9 characters at most; otherwise the serial number will be
rejected by SDK libraries, as there is a check to ensure the string
length is strictly lower than 10.
2017-08-08 23:25:40 +08:00
JosJuice 1fc910b3ea Convert to/from old EFB scale numbering 2017-08-08 12:09:50 +02:00
JosJuice f090a94319 Remove non-integer IRs 2017-08-08 12:09:50 +02:00
Léo Lam e10e42c09e PowerPC: Fix indirect includes for GDBStub 2017-08-08 17:47:20 +08:00
Michael M 9e81fec816 NetPlayServer: encapsulate m_upnp_inited in initUPnP() 2017-08-07 11:35:13 -07:00
Michael M 6a8c0ca70b NetPlayServer: actually set m_upnp_inited 2017-08-07 11:35:13 -07:00
Emmanuel Gil Peyrot 1b32751367 VideoCommon: Round values in swizzlers.
This was breaking Metroid Prime 2: Echoes’s scanner in some rooms, such
as the one in https://fifoci.dolphin-emu.org/dff/mp2-scanner/

It was found on Ivy Bridge on Mesa, the alpha value read back from the
EFB was off-by-4 in multiple objects, which was a conversion error
because int4() is equivalent to floor() and the value wasn’t always
higher.
2017-08-07 20:20:36 +02:00
Leo Lam a25f7b9b4c Merge pull request #5892 from leoetlino/sysmenu-emu-fixes
Boot/BS2: Accuracy fixes
2017-08-08 01:33:05 +08:00
JosJuice cbe43e58a7 Merge pull request #5890 from leoetlino/sd-fixes
IOS/SDIO: Small fixes
2017-08-07 17:03:18 +02:00
Leo Lam f64b189850 Merge pull request #5895 from lioncash/sw
TransformUnit: Get rid of most pointer casting in TransformColor()
2017-08-07 14:18:35 +08:00
Michael M 2abf13ae36 NetPlayServer: remove goto statements 2017-08-06 23:06:38 -07:00
Leo Lam dbb26a2b54 Merge pull request #5837 from leoetlino/auto-pause
WX: Automatically pause the core for the JIT menu items
2017-08-07 13:21:54 +08:00
Scott Mansell 3b5cad6682 Merge pull request #5860 from jturcotte/fix-macos-nswitch-axis
Fix axis not working with Switch Pro controller on macOS
2017-08-07 13:44:07 +12:00
Lioncash 745f92b4e5 TransformUnit: Get rid of pointer casting in TransformColor() where applicable
The casts to u32* are technically undefined behavior. The u8* cast is
left, as char/unsigned char is exempted from this rule to allow for
bvtewise inspection of objects (and this is what s8/u8 are typedefs of
on platforms we support).
2017-08-06 19:04:31 -04:00
Lioncash 4d35a3105e TransformUnit: Make LightColor()'s chan parameter const
Also marks references/pointers const where applicable
2017-08-06 18:15:05 -04:00
Andrew d38987e1e8 Hide mouse cursor after delay in DolphinQt 2017-08-06 17:52:37 -04:00
Lioncash 2363be4c63 ElidedButton: Make constructor explicit
Prevents implicit conversions to ElidedButton.
2017-08-06 17:31:29 -04:00
Lioncash 5153271278 ElidedButton: Add missing override specifier on paintEvent() 2017-08-06 17:26:07 -04:00
Leo Lam 1385444d86 Merge pull request #5883 from sepalani/term-close
DolphinWX: Prevent Dolphin to be shutdown when closing cmd.exe
2017-08-07 00:50:31 +08:00
Léo Lam 9f36499f9e IOS/SDIO: Make GetCSDv1/v2 const member functions 2017-08-07 00:48:51 +08:00
Léo Lam c24418a822 IOS/SDIO: Fix warnings about missing braces 2017-08-07 00:48:16 +08:00
Léo Lam d86d5d62ad IOS/SDIO: Add missing save calls in DoState 2017-08-07 00:48:16 +08:00
Leo Lam 1833354ef9 Merge pull request #5891 from lioncash/const
File: Make GetSize() a const member function
2017-08-07 00:46:49 +08:00
Léo Lam 6d73c3e8e3 Boot/BS2: Don't write part of the debugger hook
Writing to 0x60 does actually not "init exception[s]" or anything like
that. Not at all. Rather, it *breaks* a check in Nintendo's SDK, which
makes it fail to realise that the hook hasn't been set up.

This prevents the SDK initialisation routines from writing the rest of
the hook instructions (total: 0x20 bytes), which in turn causes an
anti-piracy check to fail in some Ubisoft games (including Tintin).

Dolphin can be really amazing sometimes.
2017-08-07 00:36:35 +08:00
Léo Lam d612416ce8 Boot/BS2: Write to 0x3194 and 0x3198 2017-08-07 00:36:35 +08:00
Léo Lam 0bdcabdfa9 Boot/BS2: Write the "devkit boot program version" 2017-08-07 00:36:34 +08:00
Léo Lam 81b298f747 Boot/BS2: Set the proper value for 0x000030d8
No clue where people got the 0 value from, or why it's labelled as
"time". As far as I can tell, it is always set to 0xffffffff by
official NAND titles, including the system menu.
2017-08-07 00:36:34 +08:00
Léo Lam 29b1276548 Boot/BS2: Update state file 2017-08-07 00:36:34 +08:00
Léo Lam 363bf27cce Boot/BS2: Write empty play record 2017-08-07 00:36:34 +08:00
Léo Lam 8489d9da90 Boot: Move StateFlags from Boot_WiiWAD to Boot
It's not specific to WADs. The BS2 emulation boot code will also need
to update the state file.

Move the struct to Boot and add a helper function that will handle
reading + computing the checksum + writing the state file.
2017-08-07 00:36:34 +08:00
Lioncash f0308151a8 File: Make GetSize() a const member function 2017-08-06 07:57:43 -04:00
JosJuice fa4723ffb4 DolphinQt2: Rename "Table"/"List" to "List View"/"Grid View"
Sentret_C posted this comment on Transifex recently:

"What Dolphin refers to as "Table View" and "List View" are
similar to "List View" and "Grid View" in Steam, and I think
the Steam names describe them better."

I agree with that, so here's a commit that changes the names.
2017-08-06 11:35:45 +02:00
Leo Lam 84ecc0ecc9 Merge pull request #5842 from TBoshoven/sdhc-support
Add support for SDHC
2017-08-06 11:17:50 +08:00
mimimi085181 cdbd9863b4 Keep textures that are overwritten by efb copies, if the stride matches
This is supposed to get efb2tex to the same texture as efb2ram, by applying the related efb copies as updates after each other, in the order of their creation.
2017-08-06 03:13:57 +02:00
mimimi085181 4e8ff42503 Do not load overwritten textures by hash
In this case, comparing the hash is not enough to check, if two textures are identical.
2017-08-06 03:13:57 +02:00
mimimi085181 a21ac22e07 fix stored memory stride for normal textures 2017-08-06 03:13:57 +02:00
Tom Boshoven 10c615d7db Added proper SDHC initialization to protocol v2. 2017-08-05 19:55:08 +02:00
degasus cc4b3b180b VideoSW: Drop log level of missing anti aliasing support.
We don't want to emit such a high priority warning here, else fifoci will die.
2017-08-05 19:20:19 +02:00
Tom Boshoven b29c8c1a63 Redid initialization logic.
Looks like initialization is done automatically by IOS versions that support SDHC.
2017-08-05 18:51:24 +02:00
Lioncash 01c262fe47 Filesystem: Declare FileInfo iterator's move constructor and assignment operator noexcept
Prevents potential extra copies being created in the context of
std::move_if_noexcept.
2017-08-05 12:29:02 -04:00
Tom Boshoven 47e056a654 Re-enable SDIO events. 2017-08-05 14:52:03 +02:00
Tom Boshoven 494e935ca7 Use std::array for CSD.
Fix double negative in comment.

Fixed member variable names, added some const correctness.
2017-08-05 14:49:38 +02:00
Stenzek 6d91c1b079 ProgramShaderCache: Call glTexImage3D after glTexParameter
Was missed before merge.
2017-08-05 18:18:30 +10:00
Anthony 3c5112bb21 Merge pull request #5856 from stenzek/optimus-crash
Fix ubershader crashes with primus/bumblebee
2017-08-05 00:54:28 -07:00
Léo Lam e58ba76f07 Don't force the aspect ratio in GameINIs
Instead, add a SuggestedAspectRatio option which tells Dolphin which
aspect ratio to use when the aspect ratio option is set to Auto.
2017-08-05 14:27:16 +08:00
Anthony 737e045bd8 Merge pull request #5849 from beholdnec/tex-format-bookkeeping
Video: Clearly separate Texture and EFB Copy formats
2017-08-04 22:34:34 -07:00
Sepalani eb3975eee8 DolphinWX: Prevent Dolphin to be shutdown when closing cmd.exe 2017-08-04 18:35:02 +01:00
Leo Lam 9bab7ffa83 Merge pull request #5794 from spycrab/qt_menubar
Qt: Overhaul menubar
2017-08-04 14:42:58 +08:00
Leo Lam 284aa99a0d Merge pull request #5169 from ligfx/sidevicegbastate
SI_DeviceGBA: refactor and make GBASockServer a member rather than parent
2017-08-04 14:40:51 +08:00
iwubcode bc3622c2a8 Fix the size of s_last_connect_request_counter to be 5 (wiimotes + balance board) 2017-08-04 00:32:20 -05:00
Leo Lam f274bbcbe1 Merge pull request #5872 from ligfx/wxnetplayonionconfig
WX: make Netplay use new-style config
2017-08-04 10:07:05 +08:00
Leo Lam 51af8d4aeb Merge pull request #5829 from ligfx/qtmsgalerthandler
Qt: register MsgAlertHandler
2017-08-04 09:53:24 +08:00
Leo Lam fac085940e Merge pull request #5877 from JosJuice/log-strings
DolphinQt2: Make logging strings more like in DolphinWX
2017-08-04 09:50:08 +08:00
N.E.C c3a57bbad5 Video: Clearly separate Texture and EFB Copy formats
Improve bookkeeping around formats. Hopefully make code less confusing.

- Rename TlutFormat -> TLUTFormat to follow conventions.
- Use enum classes to prevent using a Texture format where an EFB Copy format
  is expected or vice-versa.
- Use common EFBCopyFormat names regardless of depth and YUV configurations.
2017-08-03 18:35:29 -07:00
Michael M 7bdfd862d7 Qt: register MsgAlertHandler
This is the thing that pops up a message box when something goes wrong,
or when you want to override a previously dumped file, etc.
2017-08-03 13:29:59 -07:00
Michael M 737651f298 MsgHandler: small cleanup 2017-08-03 13:29:59 -07:00
Michael M 76459d88bf QtUtils: add RunOnObject 2017-08-03 13:29:59 -07:00
Michael M dde3471b62 WX: make Netplay use new-style config 2017-08-03 13:16:17 -07:00
Michael M f8fea83e67 NetPlayLauncher: store window geometry in native wxConfig 2017-08-03 13:16:17 -07:00
Michael M 9867677211 WxUtils: add WxStrToUL 2017-08-03 13:16:17 -07:00
Michael M 7d509a7a94 Config/Section: support u16 values 2017-08-03 13:16:16 -07:00
Markus Wick 9649494f67 Merge pull request #5827 from JonnyH/WIP/fix-glMultiDrawElementsBaseVertex-invalid-OES-suffix
Fix an incorrect OES suffix on glMultiDrawElementsBaseVertex
2017-08-03 18:45:32 +02:00
JosJuice b29ca4f830 DolphinQt2: Make logging strings more like in DolphinWX
Like PR 5817 but for strings that were added after that PR was merged.
2017-08-03 16:43:50 +02:00
Stenzek 7f88711186 Vulkan: Add a driver bug for NV when MSAA is enabled
This causes the card to lock up when vkCmdClearAttachments is called,
when multisampling is enabled. Seems to be restricted to Maxwell and
newer?
2017-08-03 17:40:15 +10:00
Leo Lam 6a76ca7bb7 Merge pull request #5873 from mimimi085181/fix-real-wiimote
Properly handle g_wiimotes_mutex again for real wiimotes
2017-08-03 13:09:57 +08:00
mimimi085181 576bf32ab2 Properly handle g_wiimotes_mutex again for reconnect on button press for real wiimotes
Sorry, i overlooked the mutex in PR  https://github.com/dolphin-emu/dolphin/pull/4949

This pr fixes issue 10434: https://bugs.dolphin-emu.org/issues/10434
2017-08-03 01:54:49 +02:00
JosJuice 5e3c98af1d DiscIO: Add a Volume::ReadSwappedAndShifted function
This is a fairly common operation, so let's make a utility
function for it to cut down on code duplication.
2017-08-02 22:00:51 +02:00
Stenzek fee08cf63d Vulkan: Use optimal tiling for dummy texture
Fixes a crash on some NVIDIA drivers. Apparently calling
vkCmdClearColorImage on an image with linear tiling causes the
GPU/driver to lock up.
2017-08-02 21:33:10 +10:00
Stenzek 287859c5e1 GLInterface: Support surfaceless contexts on GLX 2017-08-02 20:12:28 +10:00
Stenzek 67997529b8 ProgramShaderCache: Create a FBO for shared contexts to draw into
This way it allows us to use surfaceless contexts in EGL/GLX. It also
ensures that the shared context shares a similar setup to the main
context's framebuffer, potentially reducing the number of variants a
driver needs to generate.
2017-08-02 20:12:28 +10:00
Stenzek d0bcdc7f89 Merge pull request #5858 from stenzek/ubershader-6-bit-color
Ubershaders: Fix 6-bit color truncation not being applied
2017-08-02 20:10:34 +10:00
Stenzek 57f34d748b D3DBase: Raise error if d3dcompiler_47.dll cannot be loaded
Previously we were falling back to an earlier version of the compiler.
The older version cannot compile our ubershaders without various
graphical issues.
2017-08-02 19:54:55 +10:00
Leo Lam a8e4a3c915 Merge pull request #5759 from AwesomeMarioFan/master
Fix Time in Forecast Channel
2017-08-02 12:54:26 +08:00
Leo Lam 7565d97733 Merge pull request #4980 from FunctionalDragon/patch-2
send stop message before saving recording
2017-08-02 12:49:46 +08:00
Leo Lam d3bb964d79 Merge pull request #5809 from HannesMann/master
Send rumble data to the adapter on a separate thread
2017-08-02 12:36:35 +08:00
FunctionalDragon 11cab1c68d Send stop message before saving recording
When recording during netplay, the stop message was only sent after you
have chosen a filename for the replay, causing the other player(s)
to freeze for a few seconds. This takes care of the annoyance.
2017-08-02 12:29:49 +08:00
Leo Lam d6e051c942 Merge pull request #5703 from ligfx/blockuserinputfilter
QtUtils: add BlockUserInputFilter
2017-08-02 12:13:56 +08:00
Leo Lam 4ddf4e9604 Merge pull request #5862 from JosJuice/bs2-cleanup
Emulated BS2 cleanup
2017-08-02 12:03:50 +08:00
Leo Lam 407bc7a544 Merge pull request #4949 from mimimi085181/netplay-reconnect-on-button-press
Wiimote Netplay: Sync button press for reconnect
2017-08-02 12:00:28 +08:00
Leo Lam f208ed8924 Merge pull request #5861 from JosJuice/pr-5817-fixup
PR #5817 fixup
2017-08-02 11:57:14 +08:00
Leo Lam 02e80af104 Merge pull request #5863 from MerryMage/oop
Config: Missed a line in #5770
2017-08-02 11:56:31 +08:00
Leo Lam c7602cce04 Merge pull request #5865 from JosJuice/noncopyable-move
DirectoryBlob: Use NonCopyable
2017-08-02 11:56:16 +08:00
Hannes Mann 56239d1ae1 Send rumble data to the adapter on a separate thread 2017-08-02 00:44:46 +02:00
JosJuice 2bcccd893a DirectoryBlob: Remove unused DiscContent member 2017-08-01 22:01:34 +02:00
JosJuice f7032f8deb FileSystemGCWii: Don't add 0-size files to m_offset_file_info_cache
This is done in order to reduce the risk of files not being added
due to them having the same end offset as another file.
2017-08-01 21:58:25 +02:00
JosJuice b155c46aca DirectoryBlob: Fix reading beyond the end of the disc
There were two problems with this:

1. If the starting offset was beyond the end of the disc,
   we would dereference an invalid iterator.
2. The data beyond the end of the disc was non-deterministic.
2017-08-01 21:58:18 +02:00
JosJuice 74ada98e84 DirectoryBlob: Remove redundant assert
DiscContent::Read contains an equivalent assertion.
2017-08-01 21:58:12 +02:00
JosJuice 6b0a60d2ee DirectoryBlob: Don't add DiscContents with size 0
Having DiscContents with size 0 would mean that some DiscContents
might not get added to the std::set because of them comparing
identically to another DiscContent.

This replaces an older piece of code in WriteDirectory that ensures
that no two files have the same starting offset. (We now care about
the ending offset, not the starting offset. The new solution both
ensures that no two files have the same ending offset and that no
two files have the same starting offset.)
2017-08-01 21:58:04 +02:00
JosJuice 78fa98f559 DirectoryBlob: Change the return type of Add/CheckSizeAndAdd
Only return the information that isn't already known to the caller.
2017-08-01 21:57:54 +02:00
JosJuice 1b1a75ee3a DirectoryBlob: Lookup DiscContents by offset + size instead of offset
This simplifies DiscContentContainer::Read.
2017-08-01 21:57:48 +02:00
JosJuice d6260e02ce DirectoryBlob: Replace std::set<DiscContent> with a new class 2017-08-01 21:57:24 +02:00
JosJuice a7a8e467b6 DirectoryBlob: Use NonCopyable 2017-08-01 21:52:30 +02:00
mimimi085181 acde0b8b6c Sync info about pressed wiimote button 2017-08-01 20:56:45 +02:00
JosJuice b0ee8bd0a0 NonCopyable: Allow moving
NonCopyable is only supposed to prevent classes from being copied,
not make it hard for classes to be moveable.
2017-08-01 20:50:11 +02:00
mimimi085181 8b1e61b00a Change wiimote reconnect on button press code
This moves the reconnect logic into a single function, so the netplay code doesn't need to be written 2 times
2017-08-01 20:41:05 +02:00
MerryMage 31ec3e2501 Config: Missed a line in #5770 2017-08-01 18:07:53 +01:00
Leo Lam 9b0fae3183 Merge pull request #5730 from spycrab/qt_logging
Qt: Implement logging window
2017-08-01 23:51:35 +08:00
JosJuice 363547a5b2 Boot: Make EmulatedBS2 require a volume 2017-08-01 16:05:53 +02:00
JosJuice eb6f0a7258 Boot: Remove volume parameter from SetupWiiMemory 2017-08-01 16:05:20 +02:00
JosJuice 42d7dc2e08 Boot: Remove skip_app_loader parameter 2017-08-01 16:04:15 +02:00
JosJuice fea75d045c Boot: Split out some code to a new function SetupGCMemory
Just like the existing function SetupWiiMemory.
2017-08-01 16:03:55 +02:00
JosJuice a345ab2515 PR 5817 fixup 2017-08-01 14:34:44 +02:00
Leo Lam a8606f5d13 Merge pull request #5844 from leoetlino/video-analytics
Analytics: Report a few more video settings
2017-08-01 19:23:59 +08:00
JosJuice b6c6a04f95 DirectoryBlob: Standardize the spelling of disc
DirectoryBlob was using disk in some places and disc in other places.
2017-08-01 11:36:40 +02:00
JosJuice d0c322f6e6 DirectoryBlob: Don't silently set GC region to NTSC-J if bi2.bin is missing
We were already handling the Wii region in region.bin in this way.
2017-08-01 11:36:40 +02:00
JosJuice 3fd0d39a85 DirectoryBlob: Write partition headers properly 2017-08-01 11:36:40 +02:00
JosJuice 09832caf41 DolphinQt2: Fix memory leak in GameLoader::LoadGame 2017-08-01 11:36:40 +02:00
JosJuice a6be1513bf DolphinWX: Increment game list cache version
This is so that DirectoryBlobs won't look like valid discs
in old versions that don't support the DirectoryBlob format.
2017-08-01 11:36:40 +02:00
JosJuice 5fe3745750 Don't show "extra" files from DirectoryBlobs in game list
For instance, we don't want to show TGC files that might be
inside the /files/ directory of a GameCube DirectoryBlob,
and we don't want to show the /sys/main.dol files for extra
partitions of Wii DirectoryBlobs.
2017-08-01 11:36:40 +02:00
JosJuice 1ea44f425d DirectoryBlob: Change ConvertUTF8NamesToSHIFTJIS's parameter to pointer 2017-08-01 11:36:40 +02:00
JosJuice 34fd08e7eb DirectoryBlob: Support multiple partitions 2017-08-01 11:36:40 +02:00
JosJuice 955ab72b1d DirectoryBlob: Remove m_root_directory from DirectoryBlob 2017-08-01 11:36:40 +02:00
JosJuice e15b957d53 DirectoryBlob: Implement GetDataSize() 2017-08-01 11:36:40 +02:00
JosJuice d84bee3ff4 DirectoryBlob: Prepare more for supporting multiple partitions 2017-08-01 11:36:40 +02:00
JosJuice a3ee61e1a9 DirectoryBlob: Let DirectoryBlob force GC/Wii for partition 2017-08-01 11:36:40 +02:00
JosJuice fb09874f79 DirectoryBlob: Reorder functions in .cpp file
They're now grouped by which class they belong to.
2017-08-01 11:36:40 +02:00
JosJuice ba0ee3f54b DirectoryBlob: Prepare for supporting multiple partitions 2017-08-01 11:36:40 +02:00
JosJuice 953ca9cee1 DirectoryBlob: Make PadToAddress and Write32 static 2017-08-01 11:36:40 +02:00
JosJuice ab4762c4c2 DirectoryBlob: Split out setting BI2 to new function 2017-08-01 11:36:40 +02:00
JosJuice 2ea0a1a086 DirectoryBlob: Make some constants local 2017-08-01 11:36:40 +02:00
JosJuice 0d4ad0e39e DirectoryBlob: Remove m_fst_name_offset 2017-08-01 11:36:40 +02:00
JosJuice ef39b4da46 DirectoryBlob: Improve SetApploader
The code gets simpler by using IOFile instead of ReadFileToString.
Also, we now write -1 in all cases where loading fails.
2017-08-01 11:36:40 +02:00
JosJuice 31d8322c5a DirectoryBlob: Don't use member variables for addresses
Now it's clearer that SetDOL depends on SetApploader
and BuildFST depends on SetDOL.

As a side note, we now load the DOL even if there's
no apploader. (I don't think it matters whether we
do it, but it was easier to implement this way.)
2017-08-01 11:36:40 +02:00
JosJuice b28ec0b7ee DirectoryBlob: Split out setting partition table to new function 2017-08-01 11:36:40 +02:00
JosJuice c4879aa48d DirectoryBlob: Split out setting TMD and ticket to new function 2017-08-01 11:36:40 +02:00
JosJuice 5a00bda490 DirectoryBlob: Move content emplacement out of the constructor 2017-08-01 11:36:40 +02:00
JosJuice 1258d18f21 DirectoryBlob: Restructure SetApploader 2017-08-01 11:36:40 +02:00
JosJuice 8747b1b6ab DirectoryBlob: Support region.bin 2017-08-01 11:36:40 +02:00
JosJuice c73f6b6c26 DirectoryBlob: Add ReadFileToVector function 2017-08-01 11:36:40 +02:00
JosJuice 8afa230787 DirectoryBlob: Rename DISKHEADERINFO_ADDRESS to BI2_ADDRESS
Because DISKHEADERINFO is too easy confuse with DISKHEADER.

Also adding BI2_SIZE and DISKHEADER_SIZE contants.
2017-08-01 11:36:40 +02:00
JosJuice 975b2b40fa DirectoryBlob: Support bi2.bin 2017-08-01 11:36:40 +02:00
JosJuice 251828ccc0 Don't check validity twice when creating DirectoryBlob 2017-08-01 11:36:40 +02:00
JosJuice a6bbf7e21b DirectoryBlob: Don't keep DOL in memory 2017-08-01 11:36:40 +02:00
JosJuice 4cc8d3091c DirectoryBlob: Require header file (boot.bin) 2017-08-01 11:36:40 +02:00
JosJuice 71578b468d DirectoryBlob: Support tickets and TMDs 2017-08-01 11:36:40 +02:00
JosJuice 02610d4b28 DirectoryBlob: Use DISCIO instead of DVDINTERFACE for logging 2017-08-01 11:36:40 +02:00
JosJuice 3f9eec9ae4 DirectoryBlob: Use DiscContent for ReadNonPartition too
ReadPartition and ReadNonPartition are now unified into
ReadInternal, with a parameter controlling whether
the read is in a partition or not.
2017-08-01 11:36:40 +02:00
JosJuice a0fa350ca6 DirectoryBlob: Use DiscContent for everything in ReadPartition 2017-08-01 11:36:40 +02:00
JosJuice 936ef5b9dd DirectoryBlob: Let DiscContent be backed by memory instead of file 2017-08-01 11:36:40 +02:00
JosJuice e1321b131d DirectoryBlob: Create a DiscContent class for use in m_virtual_disc 2017-08-01 11:36:40 +02:00
JosJuice b56214789e DirectoryBlob: Make some functions private 2017-08-01 11:36:40 +02:00
JosJuice b8d8c7370f DirectoryBlob: Move constants to .cpp file 2017-08-01 11:36:40 +02:00
JosJuice 12cbeb2288 Remove DVD root and apploader path settings 2017-08-01 11:36:40 +02:00
JosJuice 37c09343d8 Turn VolumeDirectory into DirectoryBlob
This lets VolumeDirectory/DirectoryBlob skip implementing
various volume functions like GetGameID, GetBanner, etc.
It also lets us view extracted discs in the game list.

This ends up breaking the boot process for Wii
DirectoryBlobs due to workarounds being removed from the
boot process, but that will be fixed later by adding
proper DirectoryBlob support for things like TMDs.

We now expect the directories to be laid out in a certain
format (based on the format that WIT uses) instead of requiring
the user to set the DVD root and apploader path settings.
2017-08-01 11:36:40 +02:00
JosJuice 5f8935932d Blob: Add interface for reading decrypted Wii data directly
This is useful for blob types that store Wii data unencrypted
(such as WIA and discs extracted to directories) so that
we don't have to waste CPU time encrypting in the blob code
just to decrypt right afterwards in the volume code.
2017-08-01 11:36:40 +02:00
JosJuice 878869488d Boot: Consider DOL/ELF files as possible volumes
The old approach to detecting DOL/ELF files doesn't fit
with the new way of implementing extracted discs.

The game list is already doing it in a way that's similar
to the approach that this commit uses.
2017-08-01 11:36:40 +02:00
Leo Lam 764c93f932 Merge pull request #5683 from JosJuice/volume-wii-defer
VolumeWii: Defer loading tickets, TMDs and keys until when needed
2017-08-01 17:11:30 +08:00
Leo Lam c4b2aa88ec Merge pull request #5690 from ligfx/removecoreaudio
Remove CoreAudio audio backend
2017-08-01 16:42:01 +08:00
Leo Lam 4dcc931d97 Merge pull request #5855 from leoetlino/config-reload
Config: Reload game INI on title change
2017-08-01 13:40:05 +08:00
Stenzek fe65b26d53 Merge pull request #5834 from stenzek/bc7
Support loading BC7 (BPTC) textures from DDS files
2017-08-01 12:39:19 +10:00
Stenzek b93d118cef Merge pull request #5857 from stenzek/drop-force-ubershader-settings
VideoConfig: Drop force vertex/pixel ubershader settings
2017-08-01 12:01:33 +10:00
Stenzek 63305e9173 HiresTextures: Support loading BC7 (BPTC) from DDS files 2017-08-01 11:59:38 +10:00
Stenzek d18988f41e GLExtensions: Add GL_ARB_texture_compression_bptc 2017-08-01 11:58:57 +10:00
Jocelyn Turcotte 200fb26148 Fix axis not working with Switch Pro controller on macOS
Each axis would appear as multiple elements with 0 min/max.
Filter the list of elements using the correct usage page like
done for buttons.
2017-08-01 01:58:30 +02:00
spycrab 84b44fa467 Qt: Implement logging widget (+ configuration) 2017-08-01 01:36:08 +02:00
spycrab 962d684ca2 Qt: Implement logging settings and signals 2017-08-01 01:36:08 +02:00
spycrab 5b733b8710 Qt: Add log menubar options 2017-08-01 01:36:08 +02:00
Léo Lam 4129aa2438 Config: Reload game INI on title change
Enables any code that uses OnionConfig to use the correct config for
the current title, not just the first title that was booted.
2017-07-31 22:44:32 +08:00
Leo Lam 131c97e87c Merge pull request #5853 from leoetlino/onionconfig-fix
Config: Fix the loader Load() being called twice
2017-07-31 22:43:32 +08:00
Léo Lam f5fd183571 Config: Fix the loader Load() being called twice
The Config::AddLoadLayer functions call Load on the layer
explicitly, but Load is already called in the constructor,
so they'd cause the loader's Load function to be called twice,
which is potentially expensive considering we have to read an INI
from the host filesystem.

This commit removes the Config::AddLoadLayer functions because
they don't appear to be necessary.
2017-07-31 22:32:05 +08:00
Stenzek 852e30bb8c Ubershaders: Fix 6-bit color truncation not being applied 2017-08-01 00:01:09 +10:00
Stenzek d62dcd397d VideoConfig: Drop force vertex/pixel ubershader settings
This was mainly included for debugging, but could end up being confusing
for users, as well as polluting the GL program cache with a mix of uber
and specialized shaders if the option was changed.
2017-07-31 23:21:38 +10:00
Léo Lam 23ae756192 WX: Automatically pause the core for the JIT menu items
Removes the need to manually pause the core, select the menu item and
then unpause.
2017-07-31 17:31:26 +08:00
Léo Lam f777c01c5d WX/Debugger: Clean up event handling
Boot to Pause and Automatic Start are not JIT or CPU menu items,
so they are supposed to be handled by OnCPUMode.
2017-07-31 17:31:26 +08:00
Léo Lam 603762ec4d Config: Fix returned game INI filenames for title IDs
Using the first letter or the 3 letters of the ID only makes sense
if the ID is an actual game ID (which has 6 characters).
2017-07-31 17:00:44 +08:00
Leo Lam ed331918f0 Merge pull request #5851 from leoetlino/sysconf-fix
SysConf: Fix writing a new SYSCONF
2017-07-31 16:45:06 +08:00
Leo Lam 279c80b414 Merge pull request #5852 from leoetlino/wiimotes
Core: Reset s_wants_determinism on shutdown
2017-07-31 16:44:05 +08:00
Leo Lam c11172497f Merge pull request #5840 from leoetlino/wx-focus-fix
WX: Fix 'renderer has focus' returning false after start
2017-07-31 16:43:53 +08:00
Leo Lam ca49de80c5 Merge pull request #5826 from JonnyH/WIP/add-option-to-prefer-GLES-when-using-EGL
Add "PreferGLES" option to EGL GLInterface
2017-07-31 16:43:38 +08:00
Léo Lam 311cfe9223 Core: Reset s_wants_determinism on shutdown
Without doing this, Core::WantsDeterminism() will keep returning true
and some GUI options may be disabled for no reason.
2017-07-31 15:38:39 +08:00
Léo Lam b5e7c417ff SysConf: Fix writing a new SYSCONF
On Windows, File::GetTempFilenameForAtomicWrite returns a path
somewhere in C:\Users\XXX\AppData\Local\Temp\{UUID here}\
in which all writes just fail.

Just use the SYSCONF path + ".tmp" for the temporary file name.
2017-07-31 15:18:43 +08:00
Lioncash f6c21e002b General: Remove unnecessary semicolons 2017-07-30 16:39:53 -04:00
Lioncash b3c1bff34b SysConf: Add explicit to single-argument constructor
Prevents implicit construction from FromWhichRoot values.
2017-07-30 15:35:16 -04:00
Léo Lam 072991fa31 Force ticket to have a correct key index for importing
This commit changes the import code to ensure the common key index
in the ticket is correct, as it's checked by IOS.
2017-07-31 00:50:19 +08:00
Léo Lam a1f75f3370 Analytics: Report a few more video settings
* per-pixel lighting
* usershader mode
* fast depth
* vertex rounding
2017-07-30 21:50:33 +08:00
Tom Boshoven fa683adaf5 SDHC documentation and cleanups.
Added some more comments.

Cleanups based on PR feedback.

Comment was unclear.
2017-07-30 13:06:38 +02:00
Léo Lam f0aa454662 WX: Fix 'renderer has focus' returning false after start
The main window was already active, so the activate event was never
emitted, and m_renderer_has_focus was never changed.
2017-07-30 17:48:54 +08:00
Stenzek b154edb4fb VideoCommon: Move WM_USER_CREATE message to after backend initialization
Fixes the mouse cursor being left visible after ubershader
precompilation when the hide option is checked.
2017-07-30 17:43:59 +10:00
Stenzek d54ca2a16a PixelShaderGen: Don't include host early z support in UID
Disable it at shader generation time instead. This way the UIDs are
sharable.
2017-07-30 17:43:59 +10:00
Stenzek e968c191ff Ubershaders: Support per-pixel lighting 2017-07-30 17:43:59 +10:00
Stenzek c8f31656cb VideoBackends: Support a different number of threads for precompiling
At runtime, we only really want a single shader compiler thread.
However, for initial boots, we can use a higher number to speed things
up.
2017-07-30 17:43:59 +10:00
Stenzek e17efb1d8d ShaderGen: Use consistent variable names for texture coordinates 2017-07-30 17:43:59 +10:00
Stenzek 25338c53e0 NativeVertexFormat: Drop unused virtual method SetupVertexPointers 2017-07-30 17:43:59 +10:00
Stenzek 33f6668544 Vulkan: Multithreaded creation of UID pipeline caches
Should give a decent speedup to boot time.
2017-07-30 17:43:59 +10:00
Stenzek 81b4ed2a81 Vulkan: Uber shader support 2017-07-30 17:43:59 +10:00
Stenzek 4bf5625895 D3D: Uber shader support 2017-07-30 17:43:59 +10:00
Stenzek cd502990fa OGL: Uber shader support 2017-07-30 17:43:59 +10:00
Stenzek 901bf9c257 VideoConfig: Add config options for ubershaders 2017-07-30 17:43:59 +10:00
Stenzek 745d541527 ShaderGen: Implement vertex ubershaders 2017-07-30 17:43:59 +10:00
Stenzek 7d78cf0f6f ShaderGen: Implement pixel ubershaders 2017-07-30 17:43:59 +10:00
Stenzek 07591e7d5c PixelShaderGen: Move header generation to seperate function 2017-07-30 17:43:59 +10:00
Stenzek c783cd2aaf GeometryShaderGen: Add UID enumeration functions 2017-07-30 17:43:59 +10:00
Stenzek 38c48ff72e VertexLoaderManager: Add methods to generate "uber" vertex formats
These vertex formats enable all attributes. Inactive attributes are set
to offset=0, and the smallest type possible. This "optimization" stops
the NV compiler from generating variants of vertex shaders.
2017-07-30 17:43:59 +10:00
Stenzek f48ef65bec XFMemory: Convert several registers to bitfields 2017-07-30 17:43:59 +10:00
Scott Mansell 479abde9f4 BPMemory: Convert a number of unions to BitFields 2017-07-30 17:43:59 +10:00
Stenzek 0a9574eaa1 VideoCommon: Add AsyncShaderCompiler class implementation 2017-07-30 17:43:59 +10:00
Anthony 5bad2ee4a4 Merge pull request #5832 from stenzek/ubershader-prereq
Ubershader prerequisites
2017-07-30 00:42:36 -07:00
Stenzek 357c55442f Vulkan: Clear decoding texture before usage
Fixes a validation layer warning.
2017-07-30 12:38:50 +10:00
Stenzek 447aeb8f77 EGLInterface: Create shared context with same attributes as main context 2017-07-30 12:38:50 +10:00
Stenzek aff44684a4 Vulkan: Move shader/pipeline-related methods to ShaderCache 2017-07-30 12:38:49 +10:00
Stenzek d23fd17e1a Vulkan: Use VK_NV_glsl extension where available, and skip glslang
Seems to produce faster ubershaders, at least.
2017-07-30 12:38:49 +10:00
Stenzek 416afa065c BitField: Add StartBit() and NumBits() accessors 2017-07-30 12:38:49 +10:00
Stenzek 3e508fc0a2 GLInterface: Support shared contexts on AGL 2017-07-30 12:38:49 +10:00
Ryan Houdek 01ae02482c GLInterface: Support shared contexts in GLX 2017-07-30 12:38:49 +10:00
Stenzek 621287e7eb VideoCommon: Improve precision of FPS counter 2017-07-30 12:38:48 +10:00
Stenzek 1fccbd5be3 DolphinWX: Add a progress dialog host command
Allows feedback from backends to be communicated to the user when
long-running operation are performed (e.g. shader compilation).
2017-07-30 12:38:48 +10:00
Tom Boshoven 4cbb66637b Add support for SDHC.
This add support for SD protocol 2 while staying compatible with protocol 1.01.
Most of this is quite hacky, but it seems to be working well.
The original implementation was quite confusing, so I didn't touch most of the stuff I did not understand.
2017-07-29 21:24:01 +02:00
spycrab b3e93c5273 Qt: Overhaul menubar 2017-07-29 21:19:05 +02:00
Léo Lam 5a90a26080 IOS: Fix the error code for ES_DEVICE_ID_MISMATCH 2017-07-30 00:24:47 +08:00
ligfx 2f932273bb LogManager: remove stand-alone semicolon
My bad!
2017-07-27 21:15:05 -07:00
Anthony 97ea97564f Merge pull request #5833 from leoetlino/unused
Qt/Config: Remove unused members
2017-07-27 12:00:33 -07:00
Anthony 6fe33f844f Merge pull request #5770 from ligfx/lognewconfig
LogManager: use layered config
2017-07-27 11:58:57 -07:00
Léo Lam 27924a1e2e Qt/Config: Remove unused members 2017-07-27 17:26:28 +08:00
Leo Lam 7a51b0bcec Merge pull request #5807 from leoetlino/connect-wiimote
Move the Wiimote connect code out of Host
2017-07-27 15:02:28 +08:00
Leo Lam 5c29ea54c5 Merge pull request #5817 from JosJuice/qt-strings-match-wx
Make DolphinQt2 strings more like DolphinWX strings
2017-07-27 15:01:56 +08:00
Leo Lam b140a6eb04 Merge pull request #5830 from lioncash/prototypes
DolphinQt2: Remove unimplemented prototypes
2017-07-27 15:01:29 +08:00
Leo Lam bf7c0c8024 Merge pull request #5831 from lioncash/include
DolphinQt2: Add missing include guards
2017-07-27 15:00:52 +08:00
Stenzek a11bde7d16 Merge pull request #5679 from stenzek/no-host-state-in-uids
ShaderGen: Decouple host state from shader UIDs
2017-07-27 13:30:38 +10:00
Jonathan Hamilton 0fbd0cab6a Add "PreferGLES" option to EGL GLInterface
This makes the EGL interface select OpenGL|ES contexts over "desktop"
OpenGL ones.

Possibly not useful for anyone outside my own debugging, but you never
know
2017-07-26 19:26:36 -07:00
Lioncash fb42c3eddc DolphinQt2: Add missing include guards 2017-07-26 16:31:58 -04:00
Lioncash 80b938b403 DolphinQt2: Remove unimplemented prototypes
Also removes an unnecessary includes in related files
2017-07-26 16:26:55 -04:00
Michael M 0437f4c486 IOWindow: use BlockUserInputFilter 2017-07-26 10:30:02 -07:00
Michael M c624ef43f0 MappingButton: use BlockUserInputFilter 2017-07-26 10:30:02 -07:00
Michael M 7d438da911 QtUtils: Add BlockUserInputFilter 2017-07-26 10:30:01 -07:00
JosJuice de6bd80f9c DolphinQt2: Add i18n comments for Table/List
To avoid confusion with the verb "list" and the kind of table
that's a type of furniture.
2017-07-26 08:04:10 +02:00
JosJuice b32fe5e41d DolphinQt2: Remove the %1 from "%1 Banner Details"
It's not particularily useful to list the platform here,
and these kinds of messages that use words as parameters
are more likely to be mistranslated than the average string.
2017-07-26 08:04:10 +02:00
JosJuice 960525859b Make DolphinWX strings more like DolphinQt2 strings
Same as the previous commit, except I'm copying strings
in the other direction because the DolphinWX variants
of these strings could use some improvement.
2017-07-26 08:04:10 +02:00
JosJuice ce11b34e74 Make DolphinQt2 strings more like DolphinWX strings
Without this, we would be pushing a lot of extra strings onto
translators now that 55fb6ef is merged.
2017-07-26 08:04:10 +02:00
JosJuice fb80c5398a DolphinWX: Use title case for hotkey group names 2017-07-26 08:00:17 +02:00
JosJuice d7d88aeb7d DolphinWX: Mark AF choices as translatable
For consistency with DolphinQt2.
2017-07-26 08:00:17 +02:00
JosJuice 8deba867e8 DolphinQt2: Remove ellipses from settings menu options
The action that these menu options perform is to open a
settings window, and that action is completed instantly,
so we shouldn't have ellipses.
2017-07-26 08:00:17 +02:00
Leo Lam 10db1bcbca Merge pull request #5828 from ligfx/qtqueueonobject
Qt: add QueueOnObject
2017-07-26 12:56:08 +08:00
Leo Lam be8324380d Merge pull request #5786 from grimpunch/qt_viewoptions
Qt: Implement Show Platforms / Show Regions
2017-07-26 12:02:14 +08:00
Michael M 2c03cfacc2 Qt WiiUpdate: use QueueOnObject instead of Core::QueueHostJob 2017-07-25 17:44:07 -07:00
Michael M 734c9e1459 QtUtils: add QueueOnObject 2017-07-25 17:44:07 -07:00
Jonathan Hamilton 184e4d7b4a Fix an incorrect OES suffix on glMultiDrawElementsBaseVertex
The spec says it should have an EXT not OES suffix, as it's enabled as
an interaction with GL_EXT_multi_draw_arrays.

On some drivers GetProcAddress() returns NULL, which causes the
GLExtensions init to fail

This 'happened' to work if GetProcAddress() doesn't return NULL on missing
functions (as allowed in EGL) - as the function appears to never be called so
this would not have been noticed.

Mesa also (incorrectly?) exports the EXT version, so this would all
happen to work there, but appears to be contrary to the spec.

This invalid prefix even ended up in the upstream khronos registry, the
issue was reported here:
https://github.com/KhronosGroup/OpenGL-Registry/issues/81
2017-07-25 12:52:39 -07:00
JosJuice 8292d378ea Merge pull request #5824 from lioncash/include-guard
ListProxyModel: Add missing include guard
2017-07-25 08:23:49 +02:00
Mat M 63f1f122fa Merge pull request #5729 from ligfx/qtremoveoldsyntax
DolphinQt2: update old SLOT/SIGNAL syntax
2017-07-24 18:48:20 -05:00
Lioncash 7373474888 ListProxyModel: Add missing include guard 2017-07-24 19:46:25 -04:00
Christian Murphy df35a26628 Qt: Implement Show Platforms / Show Regions
Porting the View config logic from WX to Qt.
Adds to the View Menu
2017-07-24 14:36:09 +01:00
Leo Lam c27dd9dc20 Merge pull request #5785 from leoetlino/sysconf-fix
SysConf: Minor fixes
2017-07-24 14:03:33 +08:00
Leo Lam a23a38da23 Merge pull request #5821 from JosJuice/qt-builtin-database-placement
DolphinQt2: Change the placement of "Use Built-In Database of Game Names"
2017-07-24 11:06:20 +08:00
Michael Maltese aafb61c187 DolphinQt2: Remove 'slots:' syntax from headers
With Qt5's new connection syntax, method pointers and functors are
connected directly. There's no need to declare slots.
2017-07-23 15:07:49 -07:00
Michael Maltese f0fd38698e DolphinQt2: use new connection syntax instead of old syntax 2017-07-23 15:07:49 -07:00
Michael Maltese a365686956 GameList: fix Decompress slot typo
There is no such `DecompressISO` slot.
2017-07-23 15:07:49 -07:00
Leo Lam 7c70e77c74 Merge pull request #5818 from JosJuice/qt-localization-fixes
DolphinQt2: Fix localization issues
2017-07-23 22:04:17 +08:00
Leo Lam 96a8fb720d Merge pull request #5819 from JosJuice/qt-analytics-message
DolphinQt2: Reword the analytics message
2017-07-23 22:02:02 +08:00
JosJuice bb3bbb2887 DolphinQt2: Fix saving "Use Built-In Database of Game Names"
This one is my fault too
2017-07-23 15:29:43 +02:00
JosJuice 22fbd65d47 DolphinQt2: Change the placement of "Use Built-In Database of Game Names"
When I added this setting, I didn't notice that the interface
pane in DolphinQt2 was split into two different sections.
2017-07-23 15:28:34 +02:00
JosJuice 34cacd4944 DolphinQt2: Reword the analytics message
"this" made sense when "Do you authorize..." was on the bottom,
but it doesn't make sense when it's at the top.

Also removing unnecessary newlines.
2017-07-23 15:18:12 +02:00
JosJuice 20172196f5 DolphinQt2: Let game properties show names for WADs 2017-07-23 15:11:18 +02:00
JosJuice 5938c58f99 DolphinQt2: Fix localization issues 2017-07-23 10:50:20 +02:00
Léo Lam 02f32a9b26 Handle BT.DINF properly
The section is 0x461 bytes long, not 0x460. The config data is also now
initialised to zero to avoid garbage being written to the SYSCONF.

Because our handling has been wrong forever, we discard older BT.DINF
section backups as using them would result in the section being the
wrong size / incomplete again.
2017-07-23 15:58:04 +08:00
Léo Lam c759739ee9 SysConf: Handle array entries properly
It turns out that the last byte of array entries isn't unused (as we
thought); instead, it looks like it's actually part of the main data,
and the length stored next to the name is in fact the length minus one.

Getting it wrong and always storing a null byte in there won't affect
most entries (since the last byte is zeroed most of the time), except:

- IPL.NIK: the length is stored in the last byte, and it must be kept.
- BT.DINF: u8 unknown[0x45] should be another Bluetooth device entry.
- Possibly other unknown affected entries.
2017-07-23 15:57:29 +08:00
Léo Lam 1c33dfc787 Wiimote: Remove useless disconnections
ChangeWiimoteSource does not need to disconnect a Wiimote if it isn't
connected.
2017-07-23 15:52:15 +08:00
Léo Lam ee868e2362 Move the Wiimote connect code out of Host
I don't know who thought it would be a good idea to put the Wiimote
connect code as part of the Host interface, and have that called
from both the UI code and the core. And then hack around it by having
"force connect" events whenever Host_ConnectWiimote is called
from the core...
2017-07-23 15:47:32 +08:00
Léo Lam 9357fa3514 Qt/AboutDialog: Fix the copyright string 2017-07-23 14:58:01 +08:00
Leo Lam 673210afea Merge pull request #5814 from ligfx/macremovecfbundlelocalizations
Remove CFBundleLocalizations from Info.plist
2017-07-23 14:48:38 +08:00
Leo Lam 2c35983126 Merge pull request #5787 from ligfx/wxsortfallbacktotitle
Wx: make GameListCtrl fallback to sorting by title
2017-07-23 14:47:31 +08:00
Leo Lam 81abecbf46 Merge pull request #5739 from leoetlino/correct-key
IOS/ES: Use the correct import/export key (fix DLC)
2017-07-23 14:47:10 +08:00
Leo Lam 3cbf56a9ad Merge pull request #5797 from ligfx/qtoptionsmenu
Qt: implement remainder of 'Options' menu
2017-07-23 14:46:48 +08:00
Leo Lam 55fb6efea3 Merge pull request #5812 from ligfx/gettexttizeqt
gettextize: extract arguments to Qt's `tr`
2017-07-23 14:35:44 +08:00
Leo Lam a7c3d035c8 Merge pull request #5806 from Starsam80/qt-movable-headers
Qt: Allow the game list headers to be rearranged
2017-07-23 14:19:46 +08:00
Leo Lam 68e00b3ee6 Merge pull request #5808 from leoetlino/hci-array
BT: Use a std::array for all Bluetooth addresses
2017-07-23 14:19:24 +08:00
Michael Maltese 03f26ec5b3 Remove CFBundleLocalizations from Info.plist
It's only needed for apps that don't use .lproj folders.
2017-07-22 23:15:14 -07:00
Michael Maltese 4776fdc130 Qt/AboutDialog: remove literal UTF-8 characters 2017-07-22 22:35:25 -07:00
Lioncash 5859914da5 TraversalClient: Fix memory leaks in ReleaseTraversalClient()
release() relinquishes ownership of a pointer, it doesn't actually free
it.
2017-07-22 18:19:25 -04:00
Léo Lam b6ae70ac7e BT: Use a std::array for all Bluetooth addresses
BluetoothEmu had its own bdaddr_t type which is a old style C struct
and typedef, which makes comparisons and copies a bit ugly.
On the other hand, BTReal had its own btaddr_t type using std::array.

To make things very slightly nicer, this commit changes the Bluetooth
code to use a single type (std::array<u8, 6>) for all BT addresses.
2017-07-23 02:07:02 +08:00
Leo Lam efd318df64 Merge pull request #5791 from leoetlino/wiimote-indicator
Remove Wii Remote connection status from status bar
2017-07-22 22:03:25 +08:00
Starsam80 d9a09cff14
Qt: Allow the game list headers to be rearranged 2017-07-22 00:38:09 -06:00
Léo Lam fbcc6bbd57 IOS/ES: Use the correct key for imports/exports
Imports/exports don't always use the title key. Exporting a title and
importing it back uses the PRNG key (aka backup key handle or key #5),
not the title key (at all).

To make things even more fun, some versions of IOS have a bug that
causes it to use a zeroed key instead of the PRNG key. When Nintendo
decided to fix it, they added checks to keep using the zeroed key only
in affected titles to avoid making existing exports useless.
(Thanks to tueidj for drawing my attention to this.
I missed this edge case during the initial implementation.)

This commit implements these checks so we are using the correct key
in all of these cases.

We now also use IOSC for decryption/encryption since built-in key
handles are used. And we now reject any invalid common key index,
just like ES.
2017-07-21 17:42:59 +08:00
Léo Lam e608d79f42 IOSC: Load the backup/PRNG key 2017-07-21 17:42:59 +08:00
Léo Lam 05016e8dca EcWii: Add function to get the backup key 2017-07-21 17:42:59 +08:00
Léo Lam 5b09657a1f ESFormats: Add entry for unknown title flag 2017-07-21 17:42:59 +08:00
Léo Lam 5cbbe2dda2 IOSC: Add support for importing decrypted keys directly 2017-07-21 17:42:59 +08:00
Léo Lam 5729ac0fc6 Core: Replace recursive locking from PauseAndLock
PauseAndLock cannot be called recursively anymore.
2017-07-21 16:45:59 +08:00
Léo Lam f106a9637d Replace balanced Core::PauseAndLock calls with RunAsCPUThread
Core::PauseAndLock requires all calls to it to be balanced, like this:

    const bool was_unpaused = Core::PauseAndLock(true);
    // do stuff on the CPU thread
    Core::PauseAndLock(false, was_unpaused);

Aside from being a bit cumbersome, it turns out all callers really
don't need to know about was_unpaused at all. They just need to do
something on the CPU thread safely, including locking/unlocking.

So this commit replaces Core::PauseAndLock with a function that
makes both the purpose and the scope of what is being run on the
CPU thread visually clear. This makes it harder to accidentally run
something on the wrong thread, or forget the second call to
PauseAndLock to unpause, or forget that it needs to be passed
was_unpaused at the end.

We also don't need comments to indicate code X is being run on the
CPU thread anymore, as the function name makes it obvious.
2017-07-21 16:45:59 +08:00
JosJuice 1fc5830d0c Remove region mismatch check for GCI folders
The region mismatch check that we used can give false positives.
Skipping the check won't lead to any harm - games will ignore
save files that have a non-matching fourth game ID character.
2017-07-20 15:24:07 +02:00
Stenzek 3ea9d86faa ShaderGen: Pass host config to shader generation functions
Also moves the host config checks to common.
2017-07-20 17:54:33 +10:00
Stenzek d01b0bf60f VideoCommon: Move shader cache filename generation to common 2017-07-20 17:46:59 +10:00
Stenzek 7c5bbafdd1 Vulkan: Don't save/load pipeline UID cache when shader cache is disabled 2017-07-20 17:46:59 +10:00
Stenzek b380f292b4 Vulkan: Reload pipeline cache when relevant host config changes 2017-07-20 17:46:59 +10:00
Stenzek a8343cc19a Vulkan: Don't save pipeline cache if shader cache is disabled
We still create a pipeline cache object, since that speeds up driver's
creation of pipelines at runtime. However, we should not save it.
2017-07-20 17:46:59 +10:00
Stenzek d9a3b29a07 Vulkan: Emit input/output locations for EFB poke geometry shader 2017-07-20 17:46:59 +10:00
Stenzek 228ddb8aba D3D11: Reload shader cache when relevant config changes 2017-07-20 17:46:59 +10:00
Stenzek 62a901508b OGL: Reload shader cache when relevant video config changes 2017-07-20 17:46:59 +10:00
Stenzek d1381f5021 VideoConfig: Add host config union
Contains all host state that can affect shadergen.
2017-07-20 17:46:59 +10:00
Stenzek 82c27182a8 ShaderGen: Remove host state from shader uids 2017-07-20 17:46:59 +10:00
Leo Lam c207a1072d Merge pull request #5795 from JosJuice/gc-region-detection
Improve GameCube region detection
2017-07-20 14:13:11 +08:00
Anthony 39e17ccc41 Merge pull request #5793 from spycrab/qt_fullscreen_fix
Qt: Fix missing window border after exiting fullscreen under Windows
2017-07-19 08:52:22 -07:00
Leo Lam baf950c417 Merge pull request #5796 from JosJuice/findfileinfo-find
Use find_first_not_of in FileSystemGCWii::FindFileInfo
2017-07-19 21:52:13 +08:00
Michael Maltese e1554c04a1 Qt: implement remainder of 'Options' menu 2017-07-16 18:23:59 -07:00
Michael Maltese 2b712bdbaa ListTabWidget: disallow deselecting items 2017-07-16 18:23:59 -07:00
Michael Maltese 19dc580a4e Qt: extract ListTabWidget from SettingsWindow 2017-07-16 18:23:59 -07:00
Starsam80 c6478cac2f
Qt: Shrink settings window and make widgets stretch 2017-07-16 14:50:52 -06:00
JosJuice c83cac7cca Fix the handling of NTSC-K for GCI folders 2017-07-16 16:31:12 +02:00
JosJuice be8e93f472 Ensure that Volume::GetRegion doesn't return invalid enum values 2017-07-16 14:52:17 +02:00
JosJuice db1c534b3e Add warning comments to RegionSwitch and code that uses it 2017-07-16 14:49:28 +02:00
JosJuice cd60810d9d Improve Japanese check in TitleDatabase
We should check the language of a game rather than the region.
RegionSwitchGC counts W as NTSC-J, and W games aren't in Japanese.
2017-07-16 14:33:14 +02:00
JosJuice c8b4645039 Detect Korean GC releases as Korean when possible
According to http://scanlines16.com/en/blog-3/retro-gaming/game-cube/gamecube-korean-master-list/,
Korean GC releases use the following country codes:
- E or W for games in English
- K for games in Korean
- Unknown value for games in Japanese (my guess is that they might
  have made the discs bit-for-bit identical to Japanese releases
  because the regions of these games are already set to NTSC-J)

As far as I know, the GC has no Taiwanese releases, which is what
the W country code is used for on the Wii. But I could be wrong.

A small note: The country_byte == 'K' check in the code isn't
actually necessary as long as RegionSwitchGC returns NTSC_J
for 'K', but I thought it would be better to not rely on that.
2017-07-16 14:30:41 +02:00
JosJuice ebf0f64a01 Detect GC region based on the actual region value
The county code isn't 100% reliable for detecting the region.
For instance, some games released in Korea have the country
code E even though they're region-locked to NTSC-J consoles.

This commit makes the GC disc region detection match the Wii
disc region detection (apart from the region value being in
a different place on the disc).
2017-07-16 14:29:43 +02:00
JosJuice fe10e8aa6c Fix RegionSwitchGC for the value 'K'
Korean GameCube releases have their region set to NTSC-J.
2017-07-16 13:52:53 +02:00
JosJuice c64d668c3c Use find_first_not_of in FileSystemGCWii::FindFileInfo 2017-07-16 13:19:18 +02:00
spycrab e3cf1e4f37 Qt: Fix missing window border after exiting fullscreen under Windows 2017-07-16 01:09:36 +02:00
Jules Blok ba356f78d1 Merge pull request #5774 from Armada651/d3d-fs-fixes
D3DBase: Set the fullscreen state in Create()
2017-07-15 15:01:46 +02:00
Léo Lam 91f8283a1d Remove Wii Remote connection status from status bar
Showing the Wii remote connection status leads to inconsistent UX,
because we don't do anything like that for GameCube controllers
or with Bluetooth passthrough.

It's also questionable how useful it is given that:

* it doesn't print the number of connected remotes, just that one
  remote is connected, connecting or not connected, so the only info
  it provides is actually wrong when using multiple remotes;

* this user-facing feature is actually broken in master and no one has
  complained AFAIK, which means people don't really rely on it;

* the status bar isn't visible most of the time unless the user is
  using render to main or deliberately keeping the main window's
  status bar visible by moving the render window and they're not too
  far away from their screen;

* emulated Wii remotes now reconnect on input, which means that there
  is less of a need to actually know at all times whether a remote
  is connected, since pressing any button will reconnect it and provide
  immediate, visible feedback via OSD messages and the Wii remote
  pointer appearing.
2017-07-15 13:01:56 +08:00
Andrew 3095f585dd Hide mouse cursor after delay in DolphinWX 2017-07-14 22:28:52 -04:00
Michael Maltese 41917cb43c Wx: make GameListCtrl fallback to sorting by title
Fixes an issue with game items moving around randomly when resorted.
2017-07-14 15:29:48 -07:00
Michael Maltese becb1a744b SI_DeviceGBA: if a client doesn't respond within 1s, disconnect them
Rather than returning 0 / not creating an expected SI interrupt. You can
test this by running VBA-M in a debugger and stopping it while it's
connected to Dolphin: on current master, Dolphin will freeze-up until it
gets a response. With this PR, Dolphin will gracefully disconnect the device, and reconnect if it starts responding again.
2017-07-14 13:57:17 -07:00
Michael Maltese f004dfa92b SI_DeviceGBA: use SI_ERROR_NO_RESPONSE when client isn't connected
Slight behavior change, but fills a gaping hole in the state logic.
2017-07-14 13:57:17 -07:00
Michael Maltese 8dee8e6494 SI_DeviceGBA: extract magic numbers SEND_MAX_SIZE, RECV_MAX_SIZE 2017-07-14 13:57:17 -07:00
Michael Maltese 05ab03a551 SI_DeviceGBA: make GBASockServer a member instead of parent 2017-07-14 13:57:17 -07:00
Michael Maltese ff78327643 SI_DeviceGBA: remove duplication of GBASockServer destructor logic 2017-07-14 13:57:17 -07:00
Michael Maltese e6cfc3a75b SI_DeviceGBA: clean up GetTransferTime() 2017-07-14 13:57:17 -07:00
Michael Maltese d30e0ea28e GBASockServer: clean up Receive() return value 2017-07-14 13:57:16 -07:00
Michael Maltese 89ca32daa6 GBASockServer: cleanup GetNextSock and GetNextClock 2017-07-14 13:57:16 -07:00
Michael Maltese 751377256b Move GBASockServer logging into SI_DeviceGBA 2017-07-14 13:57:16 -07:00
Michael Maltese 72946a40f6 SI_DeviceGBA: clarify request-response state machine
Inspired by "#5147: GBASockServer: remove m_device_number (fixes
warning)," trying to wrap my head around how this file works.
2017-07-14 13:57:16 -07:00
Leo Lam bacc35d99e Merge pull request #5733 from leoetlino/import-context
IOS/ES: Merge the title import and export contexts
2017-07-14 23:34:37 +08:00
Léo Lam 777d150f83 Movie: Get rid of the manual buffer management
Tracking a buffer's size manually and storing it under a name that
does not make it obvious it is related to the buffer is really... meh.

Also gets rid of the need to manually manage its capacity and
new/delete an array.
2017-07-14 16:15:05 +08:00
Léo Lam 1ba1b51606 IOS/ES: Rename context.title_import
This makes it obvious that the same context is used for both
title imports and exports.
2017-07-14 13:23:21 +08:00
Léo Lam dc1707faa8 IOS/ES: Merge the title import and export contexts
This commit merges the import and export contexts into a single context
because this is what IOS does, which means we can only reproduce its
behaviour correctly if we use a single context for both operations.

The other reason is that having two separate and very similar structs
is not really a good idea.

While working on this commit, I was notified that our handling of
ImportTmd/ExportTitleInit is not correct. In particular, we always use
the title key for both importing and exporting, which is wrong. To make
this easier to fix in a follow-up PR, the context now also has a title
key field, just like ES. This also lets us avoid computing it every
single time in ImportContentDone.
2017-07-14 13:23:21 +08:00
Léo Lam 0dff8a3bde IOS/ES: Separate title content functions from IPC handlers
Allows them to be reused easily. Still a bit too much duplicated code
in my opinion (OpenContent/SeekContent/ReadContent should just call
FS code), but this is a start.
2017-07-14 13:23:21 +08:00
Leo Lam 460b81ac06 Merge pull request #5778 from ligfx/fixinputbitmaps
DolphinWX: fix input bitmaps not working when background input is off
2017-07-14 13:08:13 +08:00
Leo Lam d7efac6ed5 Merge pull request #5780 from spycrab/qt_header_save
Qt: Save sorting order
2017-07-14 13:05:41 +08:00
Michael Maltese ebeac18472 DolphinQt2/Host: cleanup 2017-07-13 12:58:32 -07:00
Michael Maltese 8e55374662 RenderWidget: watch for activation/deactivation, not focus in/out
"Focus" refers mainly to keyboard focus. "Window focus" is exposed
through the window activation and deactivation events.
2017-07-13 12:58:32 -07:00
Michael Maltese 8d5fe1f1c4 RenderWidget: mark 'event' function as override 2017-07-13 12:58:32 -07:00
JosJuice 100b0a52d3 Merge pull request #5777 from JosJuice/unify-getgameinifilenames
Unify GetGameIniFilenames
2017-07-12 19:24:46 +02:00
spycrab 8ca6814673 Qt: Save sorting order 2017-07-12 18:25:54 +02:00
Michael Maltese 0019c34c73 DolphinWX: fix input bitmaps not working when background input is off 2017-07-12 00:12:07 -07:00
Anthony ab5a5ee3ea Merge pull request #5726 from mimimi085181/minimal-tmem-cache-emulation
Implement minimal emulation of TMEM caching
2017-07-11 22:49:19 -07:00
JosJuice d4f5038571 Unify GetGameIniFilenames
This deduplicates code and fixes the new config system's lack of
1-char game ID INI support.
2017-07-11 13:10:11 +02:00
Leo Lam 1de9bf2cca Merge pull request #5743 from spycrab/qt_fix_shutdown
Qt: Fix multiple emulation shutdown bugs
2017-07-11 09:13:07 +02:00
Leo Lam ce4732dd96 Merge pull request #5776 from sepalani/kd-log
NetKDTime: Log IOCtl
2017-07-11 00:40:37 +02:00
Leo Lam b6c3479bb4 Merge pull request #5720 from JosJuice/file-metadata
FileUtil: Redesign Exists/IsDirectory/GetSize
2017-07-11 00:28:34 +02:00
Leo Lam 12f6d0b56b Merge pull request #5773 from JosJuice/builtin-titledatabase-optional
Make the built-in wiitdb files optional
2017-07-11 00:20:09 +02:00
Leo Lam 38e32c6324 Merge pull request #5775 from leoetlino/hardcoded-fs-usage
IOS/FS: Remove hardcoded FS usage data
2017-07-11 00:18:55 +02:00
Sepalani b7ae49c4d2 NetKDTime: Log IOCtl 2017-07-10 23:14:26 +01:00
Léo Lam 1376484f76 IOS/FS: Remove hardcoded FS usage data
I think I do not need to explain why hardcoding space usage for two
random directories when we can calculate it and when IOS doesn't
actually do that is wrong.
2017-07-10 23:08:25 +02:00
Jules Blok 3fc9a48da0 D3DBase: Use the swapchain discard mode when possible. 2017-07-10 14:25:28 +02:00
Jules Blok 65495a1297 D3D: Resize the swapchain when the fullscreen state is changed 2017-07-10 14:24:11 +02:00
Jules Blok 07c5dcd739 D3DBase: Set the fullscreen state in Create() 2017-07-10 14:03:04 +02:00
JosJuice 1d7a57869a Make the built-in wiitdb files optional
There are some cases where overriding the opening.bnr names
isn't desirable, such as when someone has several modded
versions of a game that differ in names but not game IDs.
2017-07-10 10:16:06 +02:00
spycrab ebe169a218 Qt: Fix multiple emulation shutdown bugs 2017-07-10 08:16:51 +02:00
Michael Maltese 06f1761f9f LogWindow: don't unconfigure logger on destruction
This was causing Dolphin to always save "WriteToWindow = False". Instead
of disabling logging to the window (a config value), tell LogManager
that there's no window to log to (a runtime state).
2017-07-09 18:50:55 -07:00
Michael Maltese ff83b13344 LogConfigWindow: fix verbosity 2017-07-09 18:50:55 -07:00
mimimi085181 53663c00b9 Implement minimal emulation of TMEM caching
This is a remake of https://github.com/dolphin-emu/dolphin/pull/3749

Full credit goes to phire.

Old message:
"If none of the texture registers have changed and TMEM hasn't been invalidated or changed in other ways, we can blindly reuse the old texture cache entries without rehashing.

Not only does this fix the bloom effect in Spyro: A Hero's Tail (The game abused texture cache) but it will also provide speedups for other games which use the same texture over multiple draw calls, especially when safe texture cache is in use."

Changed the pr per phire's instructions to only return the current texture(s) if none of the texture registers were changed. If any texture register was changed, fall back to the default hashing and rebuilding textures from memory.
2017-07-10 01:49:27 +02:00
Michael Maltese 28d6c61e34 LogManager: use layered config 2017-07-09 16:28:54 -07:00
Michael Maltese e6c4455e65 remove commented-out FileLogListener::GetName 2017-07-09 16:28:54 -07:00
Michael Maltese 8b54ac225b Merge Core/Config/Config.h into Common/Config/Config.h
Allows code in Common to take advantage of the layered config logic.
2017-07-09 16:28:54 -07:00
Jules Blok 0f13c61daa D3DBase: Only create a stereo swapchain when needed. 2017-07-10 01:24:43 +02:00
Jules Blok 77a318789a D3DBase: Implement Windows 7 swapchain fallback. 2017-07-10 01:02:29 +02:00
Jules Blok 938939136e D3DBase: Only use temporary mono when supported by the swapchain. 2017-07-10 01:02:05 +02:00
Tillmann Karras 31dd690ed1 Core: fix log category for startup message 2017-07-09 18:48:35 +01:00
Leo Lam a621a1bc2f Merge pull request #5755 from ligfx/qtglobalorganizationname
DolphinQt2: set QSettings parameters globally
2017-07-09 16:25:31 +02:00
Leo Lam e6c1b04b69 Merge pull request #5764 from ligfx/cleanuplogmanager
LogManager: clean ups and encapsulate config file management
2017-07-09 16:18:49 +02:00
Leo Lam eb726194ed Merge pull request #5762 from spycrab/qt_disable_iwad
Qt: Fix "Install WAD" being enabled while emulation is running
2017-07-09 16:13:39 +02:00
spycrab adf2cd4252 Qt: Fix "Install WAD" being enabled while emulation is running 2017-07-09 16:09:30 +02:00
Tilka 039e456d6f Merge pull request #5761 from spycrab/qt_warning
Qt: Make the "In Development" warning less threatening
2017-07-09 14:49:29 +01:00
Pierre Bourdon d6dd0e4687 Merge pull request #5766 from JosJuice/fst-u32
Fix reading FSTs for multi-disc games
2017-07-08 15:28:29 +02:00
JosJuice edc7a4c895 Fix reading FSTs for multi-disc games
It's a wonder that this managed to work for any discs at all...
2017-07-08 15:17:05 +02:00
Leo Lam d0fb1bc4bf Merge pull request #5728 from Starsam80/remove-qt-whats-this
Qt: Don't show the Qt "What's this" button
2017-07-08 10:55:28 +02:00
Leo Lam 51bb10d371 Merge pull request #5757 from blubberdiblub/wx-fix-custom-rtc
Fix date and time handling for custom RTC in wxWidgets.
2017-07-08 10:53:05 +02:00
spycrab 63d401102b Qt: Make the "In Development" warning less threatening 2017-07-08 10:47:31 +02:00
Michael Maltese 234ab6f759 DolphinQt2: set QSettings parameters globally 2017-07-07 17:08:00 -07:00
Michael Maltese 13721d35e7 DolphinWX: remove INI logic from LogConfigWindow 2017-07-07 16:44:38 -07:00
Michael Maltese c9e8289e82 LogManager: add SaveSettings 2017-07-07 16:44:38 -07:00
Michael Maltese 8ff8dfcdf2 LogManager: make LogContainer a POD and don't allocate 2017-07-07 16:44:38 -07:00
Michael Maltese 18da6dee8e LogManager: remove per-container listeners 2017-07-07 16:44:38 -07:00
Michael Maltese 546fa628fb LogManager: remove per-container verbosities 2017-07-07 16:44:38 -07:00
Michael Maltese 26aa9f88a4 LogManager: clean up header 2017-07-07 16:44:38 -07:00
Niels Boehm ee9fb47c53 Fix date and time handling for custom RTC in WX.
The actual problem was combining the values from the date and time
pickers incorrectly. The uninteresting parts of the returned wxDateTime
need to be ignored and the WX documentation says so for the time picker.

I also cleaned up the handling of both widgets a bit, removing redundant
member variables in the process, in order to not risk correctness.
2017-07-07 17:12:05 +02:00
Leo Lam c941cd6aa9 Merge pull request #5753 from ZirconiumX/master
Explain what Yes/No means in an assert window
2017-07-07 16:56:21 +02:00
Leo Lam ff9f271edc Merge pull request #5756 from spycrab/qt_sysmenu
Qt: Implement "Load System Menu"
2017-07-07 16:51:53 +02:00
John Pansera 72c573f6dc Fix Forecast Channel 2017-07-06 20:28:33 -04:00
spycrab 2cf0228ada Qt: Implement sysmenu booting 2017-07-06 21:27:31 +02:00
spycrab 3a27d60937 Qt: Add "Load System Menu" option to menubar 2017-07-06 19:48:10 +02:00
Jules Blok 8476d0271d PixelShaderGen: Add missing inputs.
This fixes a linkage warning in D3D because of mismatched inputs.
2017-07-05 22:43:39 +02:00
Jules Blok b485329353 D3DBase: Set the monoscopic flag when we don't use stereoscopy. 2017-07-05 22:43:39 +02:00
Jules Blok 1f2d43c870 Vulkan: Implement Quad-Buffered stereoscopy support. 2017-07-05 22:43:39 +02:00
Jules Blok f3508742ac OGL: Support Quad-Buffered stereoscopy. 2017-07-05 22:43:39 +02:00
Jules Blok 2ab068d3f2 D3DBase: Always create a stereo swapchain. 2017-07-05 22:43:39 +02:00
Jules Blok 383645a4b1 VideoConfigDiag: Rename Quad-Buffer to HDMI 3D.
This 3D mode is often associated with the HDMI 1.4a standard,
so this name is more helpful to users with such a setup.
2017-07-05 22:43:39 +02:00
Jules Blok 179602e921 D3D: Add quad-buffer stereoscopy support. 2017-07-05 22:43:39 +02:00
Jules Blok 6863abb31d D3DBase: Switch to a flip-model swap chain. 2017-07-05 22:43:39 +02:00
Jules Blok c399e2bc40 D3DBase: Upgrade to DXGI 1.2.
This effectively drops for Vista and Windows 7 without the Platform Update in this backend.
2017-07-05 22:43:39 +02:00
Dan Ravensloft 982663c728 Explain what Yes/No means in an assert window
It's a bit confusing to get a yes/no dialogue box without any indication
of what yes or no will do in this situation, so add a short explanatory
sentence.
2017-07-05 20:00:52 +00:00
JosJuice 421a2c5776 Merge pull request #5750 from AwesomeMarioFan/master
IOS: Add IOS4v3 Constants
2017-07-05 21:01:31 +02:00
John Pansera f7017b2992 IOS: Add IOS4v3 Constants
Fix indentation
2017-07-05 14:10:20 -04:00
Leo Lam 24f05f14f2 Merge pull request #5752 from leoetlino/to_string
Replace StringFromInt with std::to_string
2017-07-05 17:36:07 +02:00
Léo Lam 90f8265497 Replace StringFromInt with std::to_string
Updated version of #47. Android should support to_string now that
we use a modern version of libc++ when building.
2017-07-05 13:49:33 +02:00
JosJuice 78217532e5 VolumeWii: Defer loading tickets, TMDs and keys until when needed
This should make building the game list cache a tiny bit
faster, since we won't have to read anything from
partitions other than the game partition.
2017-07-04 21:31:24 +02:00
JosJuice 2c7e93f3b8 Common: Add a Lazy type 2017-07-04 20:58:03 +02:00
JosJuice 93e9740683 Drop unnecessary check from FileSystemGCWii::FindFileInfo
If the current file_info is a file, the ranged for loop will
run 0 times, and we'll reach the last line of the function.
2017-07-04 20:40:32 +02:00
JosJuice 6a31d2598e Support leading slashes in FileSystemGCWii::FindFileInfo 2017-07-04 20:40:08 +02:00
Leo Lam 60ee0b2913 Merge pull request #5745 from JosJuice/partition-map
VolumeWii: Change the format of partition maps
2017-07-04 19:31:21 +02:00
JosJuice 333b6d99d2 VolumeWii: Change the format of partition maps
Having a separate map for each type of data is a bit unnecessary.
2017-07-04 16:20:13 +02:00
Leo Lam cf79ff2366 Merge pull request #5738 from spycrab/qt_fix_ampersand
Qt: Fix ampersands not displaying properly in mapping windows
2017-07-04 15:31:36 +02:00
spycrab 36fe1a5415 Qt: Fix ampersands not displaying properly in mapping windows 2017-07-04 15:26:10 +02:00
Leo Lam e0b94b55b8 Merge pull request #5651 from JosJuice/new-disc-extraction
Use new format for disc extraction
2017-07-04 13:46:18 +02:00
Leo Lam aa1d750f30 Merge pull request #5664 from ligfx/removesettings
DolphinQt2: replace Settings with SConfig where possible
2017-07-04 13:45:21 +02:00
Leo Lam 365892c61c Merge pull request #5667 from ligfx/cleanupdspdisassembler
DSPDisassembler: various code cleanups
2017-07-04 13:43:45 +02:00
Leo Lam 5a41bfaf6f Merge pull request #5740 from Starsam80/qt-size
Qt: Don't force a minimum size for the main window
2017-07-04 13:39:44 +02:00
Starsam80 4d56951d3b
Qt: Remove border from game list 2017-07-02 17:25:46 -06:00
Starsam80 3eac4b6c9d
Qt: Don't force a minimum size for the main window 2017-07-02 16:20:37 -06:00
Leo Lam 0f9ae6d361 Merge pull request #5731 from mimimi085181/terminate-background-input
Disable Background Input when Background Input is disabled
2017-07-01 16:49:15 +02:00
JosJuice 0588a76830 DolphinWX: Fix inconsistent region name for online system update
This was inconsistent with the other three regions
and with DolphinQt2.
2017-07-01 16:40:07 +02:00
mimimi085181 b6ada2b633 Disable Background Input when Background Input is disabled
Only remaining issue is that clicking on the titlebar of the window, to give it focus, is already interpreted as input. But clicking on the window in the task bar, or using alt tab works to get back, without causing an input event.
2017-06-30 16:17:29 +02:00
Michael Maltese 7dab92d8b5 DSPDisassembler: fail when buffer too large 2017-06-30 01:47:02 -07:00
Michael Maltese 1d0185d7d5 DSPDisassembler: remove unused base_addr parameter 2017-06-30 01:47:02 -07:00
Michael Maltese 2564823522 DSPDisassembler: cleanup disassembler text handling 2017-06-30 01:47:02 -07:00
Michael Maltese 0f98cd636b DSPDisassembler: remove unused labels member from dspdisassembler 2017-06-30 01:47:02 -07:00
Michael Maltese 54ef5299bb DSPDisassembler: remove UnkOps.txt write on destruction 2017-06-30 01:47:01 -07:00
Michael Maltese 391c7319f5 DSPDisassembler: get rid of double-pass and temp file 2017-06-30 01:47:01 -07:00
Starsam80 ed0ba7ef28
Qt: Don't show the Qt "What's this" button 2017-06-29 18:52:53 -06:00
Michael Maltese d0fdb9f149 DolphinQt2: replace Settings with SConfig where possible
Changes:
- `ShowDevelopmentWarning` is now under the '[Interface]' group in
  Dolphin.ini, with other interface-related settings. So, whoever uses
  DolphinQt will have to edit that manually again. Sorry!
- Game search paths and the last file are now shared properly with
  DolphinWX
- Qt-only preferences like "Preferred View: list/table" are now
  stored using the platform's native settings storage, rather than in
  UI.ini
2017-06-29 17:17:32 -07:00
Michael Maltese 21fa010bb6 Remove CoreAudio audio backend
Cubeb handles everything the CoreAudio backend can, plus supports DPL2.
2017-06-29 16:53:20 -07:00
Mat M 898bbffaa7 Merge pull request #5724 from JonnyH/WIP/fix-some-ODR-warnings
Fix some GCC ODR warnings
2017-06-29 18:48:47 -04:00
Jonathan Hamilton e66e034419 Fix some GCC ODR warnings
struct GekkoOPTemplate was implemented differently in different
compilation units, which breaks the ODR and could end up causing issues
as symbols exported from one compilation unit could end up being used by
another even if they have different implementations.

This puts them in an anonymous namespace, restricting any generated
symbols to the single compilation unit.
2017-06-29 12:21:32 -07:00
JosJuice 5ca3aee00a FileUtil: Add a class for Exists/IsDirectory/GetSize
Some code was calling more than one of these functions in a row
(in particular, FileUtil.cpp itself did it a lot...), which is
a waste since it's possible to call stat a single time and then
read all three values from the stat struct. This commit adds a
File::FileInfo class that calls stat once on construction and
then lets Exists/IsDirectory/GetSize be executed very quickly.

The performance improvement mostly matters for functions that
can be handling a lot of files, such as File::ScanDirectoryTree.

I've also done some cleanup in code that uses these functions.
For instance, some code had checks like !Exists() || !IsDirectory(),
which is functionally equivalent to !IsDirectory(), and some
code was using File::GetSize even though there was an IOFile
object that the code could call GetSize on.
2017-06-29 19:07:29 +02:00
Niels Boehm 68198d6c32 Make one log font monospaced for all platforms.
The MonoSpaceFont of the LogWindow was using a Windows native way to
specify a font name.

Now it's using wxFONTFAMILY_TELETYPE.

On Win32 it will additionally request the specific font name "Consolas",
so it doesn't use ugly "Courier New". I pilfered that specialization
from Source/Core/DolphinWX/Cheats/ARCodeAddEdit.cpp.
2017-06-29 07:05:15 +02:00
JosJuice a59edfe8cf FilesystemPanel: Put partitions in separate folders when extracting all partitions 2017-06-28 22:25:27 +02:00
JosJuice 478c4fd1f3 FileSystemGCWii: Use DiscExtractor's FST offset/size functions 2017-06-28 22:25:09 +02:00
JosJuice 1b6506f4e8 DiscExtractor: Add support for more things to extract 2017-06-28 22:24:33 +02:00
JosJuice 94b18bfb07 FilesystemPanel: Replace Extract Apploader/DOL with Extract System Data
Because having one option for each thing to extract is
going to be way too many options once I add support for
more things to extract.
2017-06-28 22:23:10 +02:00
JosJuice 0b068d84d5 FilesystemPanel: Overhaul the right-click menu 2017-06-28 22:23:01 +02:00
JosJuice 2ca5f1dec8 FilesystemPanel: Handle root correctly in BuildFilePathFromSelection
This was unnecessary in the past but is necessary
for the next commit.
2017-06-28 22:22:50 +02:00
JosJuice 39ff203c1e DiscExtractor: Don't create extra folders when extracting a folder
Before, if you extracted a directory like /map/Final/Release/,
Dolphin would create the nested folders map, Final and Release
in the output directory and put the files in Release instead of
just putting the files directly in the output directory.
2017-06-28 22:22:41 +02:00
JosJuice 6d51992648 Move ExtractDir from FilesystemPanel to DiscExtractor 2017-06-28 22:22:31 +02:00
JosJuice 5778e8bdba FilesystemPanel: Refactor partition name stripping 2017-06-28 22:22:22 +02:00
JosJuice baf3a3b188 DiscExtractor: Don't hardcode names in ExportApploader and ExportDOL 2017-06-28 22:22:13 +02:00
JosJuice 89c901780e DiscScrubber: Deduplicate code for writing to file 2017-06-28 22:22:04 +02:00
JosJuice 1f31390b54 DiscExtractor: Improve error handling 2017-06-28 22:21:55 +02:00
JosJuice a17272c146 DiscExtractor: Minor cleanup 2017-06-28 22:21:48 +02:00
JosJuice d06b532150 DiscIO: Move parts of Filesystem to the new file DiscExtractor 2017-06-28 22:21:23 +02:00
JosJuice 23bb029250 DiscIO: Add convenience methods IsDisc and IsWii for Platform enum 2017-06-28 21:46:43 +02:00
spycrab 4d37190327 Make Visual Studio happy 2017-06-28 20:42:01 +02:00
spycrab 04bb6b3d59 Qt/GraphicsSettings: Implement hacks tab 2017-06-28 20:42:01 +02:00
spycrab 0b9f0d44e6 Qt/GraphicsSettings: Implement software rendering tab 2017-06-28 20:42:01 +02:00
spycrab 6598c23d0e Qt/GraphicsSettings: Implement general tab 2017-06-28 20:42:01 +02:00
spycrab e64a2d4e09 Qt/GraphicsSettings: Implement enhancements tab 2017-06-28 20:41:50 +02:00
spycrab b6690b274b Qt/GraphicsSettings: Implement advanced tab 2017-06-28 20:14:38 +02:00
spycrab 908e1e9aba Qt: Implement graphics window and controls 2017-06-28 20:14:38 +02:00
spycrab 1b1ab3119a Qt: Add Graphics option to tool bar 2017-06-28 20:13:37 +02:00
spycrab 7c97c14eba UICommon: Move Wx Graphics Settings functions 2017-06-28 20:13:37 +02:00
Léo Lam 4dcfa5371a IOS/ES: Don't open store in rw mode in WriteNewCertToStore
Causes different issues on different platforms.

r+b is broken on Windows for some reason.
a+b is broken on macOS.
2017-06-28 11:23:08 +02:00
Léo Lam 1a6b5ca36a Qt: Add menu item to perform online update 2017-06-28 11:23:08 +02:00
Léo Lam f06367febc WX: Add menu item to perform online update 2017-06-28 11:22:10 +02:00
Léo Lam 42d217b9a8 WiiUtils: Add an online updater
While setting up a proper NAND for Wii emulation has become much easier
now that disc and online system updates work, they still require users
to have a recent disc game, certificates extracted from IOS or a NAND
dump for online updates to work and to really get all system titles.

This commit adds the ability to do an online update right from
Dolphin itself, which solves that usability issue.
2017-06-28 11:22:10 +02:00
Léo Lam 0c7b9570b4 Move WiiUtils to Core
Allows reusing the WAD import logic more easily, whereas UICommon
code can only be used from UICommon and UI.

And managing what's on the NAND is the Core's responsability, not UI.
2017-06-28 11:22:10 +02:00
Leo Lam 7454a20f4f Merge pull request #5707 from leoetlino/content-table
IOS/ES: Fix content table handling
2017-06-28 10:42:59 +02:00
Leo Lam 72bde53f9f Merge pull request #5713 from Tilka/pool_edge
GameSettings: enforce real XFB for Pool Edge
2017-06-28 10:29:43 +02:00
shuffle2 17fe293981 Merge pull request #5715 from JosJuice/non-ascii-dofilesearch
Fix DoFileSearch for non-ASCII paths on Windows
2017-06-28 01:01:43 -07:00
JosJuice 98b0d8a119 Fix DoFileSearch for non-ASCII extensions on Windows
We don't use non-ASCII extensions for anything right now,
but we might as well fix this.
2017-06-28 09:50:02 +02:00
JosJuice 6f98915c32 Fix DoFileSearch for non-ASCII paths on Windows
It didn't work when there were non-ASCII characters
in the directories argument, but it worked fine with
non-ASCII characters in names of found files and folders.
2017-06-28 09:48:28 +02:00
Tillmann Karras ad51311dbf Fix GCC warnings 2017-06-28 01:12:13 +01:00
Jules Blok 4a7b96c93a FramebufferManager: Fix EFB layers being attached to the wrong FBO.
Fixes typo in commit 56fe938366.
2017-06-27 23:42:42 +02:00
shuffle2 951f6400fb Merge pull request #5706 from JosJuice/more-gamelist-speedup-followup
More follow-up for the gamelist speedup PR
2017-06-27 12:36:16 -07:00
JosJuice 7992c786b9 Fix references to CACHE_REVISION in DiscIO comments
The ISOFile.cpp one has been moved, and the GameFile.cpp one isn't
used for anything because DolphinQt2 doesn't support caching yet.
2017-06-27 21:32:14 +02:00
JosJuice a6471234a2 FileSearch: Use strcasecmp in non-std code
Because why should only Windows get in on the FileSearch speedup fun?
(Not that this fixes the slowness of File::ScanDirectoryTree...)
2017-06-27 21:32:07 +02:00
JosJuice caf6087766 GameListItem: Rename m_banner to m_volume_banner
I want to clarify that it isn't used for PNG banners.
2017-06-27 21:31:37 +02:00
JosJuice 89716025da GameListItem: Reduce levels of indentation 2017-06-27 21:29:56 +02:00
shuffle2 0ea17dafd9 Merge pull request #5710 from leoetlino/more-wiiroot-fixes
Remove unnecessary WiiRoot inits/shutdowns
2017-06-27 12:05:38 -07:00
shuffle2 d19e1ed4bf Merge pull request #5705 from JosJuice/strerror-r-version
Try to make sure that we have the XSI version of strerror_r
2017-06-27 11:49:26 -07:00
shuffle2 f1425a0c60 Merge pull request #5652 from spycrab/qt_audio
Qt/Settings: Implement Audio tab
2017-06-27 11:46:14 -07:00
shuffle2 9e1977e129 Merge pull request #5685 from spycrab/qt_dragndrop
Qt: Implement gamelist drag and drop
2017-06-27 11:44:06 -07:00
Léo Lam ff83b93949 Remove unnecessary WiiRoot inits/shutdowns
* IOS: WiiRoot shutdown was moved to HW.

* Movie: Don't call UpdateWantDeterminism() if we're not running yet,
  because this will automatically be done during the boot process.
  Not doing this will result in two NANDs being created.
2017-06-27 20:43:39 +02:00
shuffle2 ffe4135d77 Merge pull request #5708 from leoetlino/once
Initialise WiiRoot once per emulation session
2017-06-27 11:41:34 -07:00
shuffle2 2579a7c03d Merge pull request #5607 from leoetlino/logging-fix
Logging fixes
2017-06-27 11:40:26 -07:00
shuffle2 ce4d514542 Merge pull request #5631 from LAGonauta/openal-real-latency
Fixed latency setting and cleaned-up OpenAL backend
2017-06-27 11:31:16 -07:00
spycrab ba3df3db05 Qt/Settings: Implement audio pane 2017-06-27 20:25:38 +02:00
spycrab feb67a3953 Qt: Fix emulation not returning to its original state when aborting shutdown 2017-06-27 18:06:27 +02:00
spycrab 15243093c4 Qt: Implement missing settings 2017-06-27 17:32:43 +02:00
Léo Lam f5ef060b21 Initialise WiiRoot once per emulation session
This removes unnecessary initialisations which would cause issues in
determinism mode.
2017-06-27 15:44:17 +02:00
Léo Lam da5a7fcc63 IOS/ES: Fix content table handling
This is larger than I thought I would be, but unfortunately it's quite
hard to split fixes like this when the handling is wrong in tons of
different places.

The content table is limited in size. It can only hold 16 entries.
Three consequences:

* Since the table cannot grow indefinitely, instead of using a std::map
  we use a std::array as we should.

* Remove a hack where the CFD was cleared back to 0 on IPC close (wtf?)

* The CFD now doesn't keep increasing to infinity. It's unknown if this
  would fix anything at all, but some issues in the past were caused
  by CFDs being excessively large.

Other minor changes:

* Simplify save state logic.

* Keep track of the UID like ES does. Not sure how useful this is, but
  we can do this very easily so why not.

* Remove the guesswork and use the actual error codes.

* Add more error checking to make Dolphin less likely to crash.

Something that should be done in the future: deduplicate the filesystem
logic. Something that takes one line in the actual ES code takes
10+ lines in our implementation... while duplicating the FS logic...
This will likely harder to fix though, so I'm leaving that
for another time.
2017-06-27 15:37:00 +02:00
LAGonauta db7bb3bda8 Swapped C-style arrays to std::array
Also changed C-Style casts to static_cast
2017-06-27 07:12:15 -03:00
LAGonauta 9eb209c214 Removed redundant conversion to float when playing back stereo. 2017-06-27 07:10:32 -03:00
lfsafady 75af792070 Swapped out the sound_sync_event.Wait() call by a simple std::sleep_for.
It seems to make no difference besides allowing lower latencies and more
stability on hardware OpenAL cards. Maybe the Wait() call waits for too
long, causing buffers underruns.
2017-06-27 07:08:43 -03:00
lfsafady d9d51fe0c4 Renamed some variables to the current coding standard and some to better
fit what they really are.
2017-06-27 07:08:43 -03:00
JosJuice 5b7f99e57a Try to make sure that we have the XSI version of strerror_r 2017-06-27 11:59:39 +02:00
LAGonauta 8fd1af6783 Changed OpenAL latency setting to really reflect how much time it is.
Before these changes each value of latency were actually 5ms, with a
minimum latency of ~10 ms. If it was set to 4 ms on the UI, the actual
latency was 10 + 5 * 4 = 30 ms.
Now 30 ms on the UI means 30 ms on the backend.
2017-06-27 06:54:28 -03:00
JosJuice b9499441ee GameListItem: Fix comment about PNG banners for volumes
f16599f quietly dropped the ability to set custom banners for volumes.
2017-06-27 11:30:27 +02:00
JosJuice 691b676145 GameListItem: Fix minor naming style violation 2017-06-27 11:28:55 +02:00
JosJuice e73de25a9e GameListCtrl: Put CACHE_REVISION in .cpp file
Reduces the number of files that have to be recompiled
when changing the cache revision.
2017-06-27 11:27:36 +02:00
shuffle2 94ba78d717 Merge pull request #5614 from ligfx/qtinputmappingrandomcleanups
DolphinQt: small input mapping code cleanups and fixes
2017-06-27 01:57:26 -07:00
shuffle2 540ee18966 Merge pull request #5699 from JosJuice/wx-custom-titles
DolphinWX: Sync custom title changes on game list rescan
2017-06-27 01:48:22 -07:00
JosJuice 7d801d61dc DolphinWX: Use std::move when committing in GameListItem 2017-06-27 10:21:33 +02:00
spycrab 2a1d18444f Qt: Implement gamelist drag and drop 2017-06-27 10:18:15 +02:00
shuffle2 599a235a19 Merge pull request #5691 from ligfx/openalonlywindowsdynamic
OpenAL: only enable on Windows + dynamically load DLL
2017-06-27 01:18:06 -07:00
shuffle2 0f3ee2f209 Merge pull request #5700 from leoetlino/title-key
ESFormats: Minor changes
2017-06-27 01:02:42 -07:00
Michael Maltese 749889236d OpenALStream: remove commented-out ALC_REFRESH code 2017-06-27 00:06:14 -07:00
Michael Maltese 8e849b1595 Remove OpenAL DLL from Externals 2017-06-27 00:06:14 -07:00
Michael Maltese c882d52f4a OpenAL: load DLL dynamically 2017-06-27 00:06:14 -07:00
Michael Maltese 18e70cdf91 Only build OpenAL on Windows 2017-06-27 00:06:14 -07:00
Michael Maltese 42ea1c8ecf OpenAL: remove aldlist.cpp 2017-06-27 00:06:13 -07:00
Michael Maltese 32470ef284 clean up OpenALStream::Start() 2017-06-27 00:06:13 -07:00
Michael Maltese 56961f5561 OpenALStream: don't include headers if not building 2017-06-27 00:06:13 -07:00
Michael Maltese 033492717c BlockingLoop: fix unhandled enum value warning
Fixes compiler warning:

```
Source/Core/Common/BlockingLoop.h:212:13: warning: enumeration value 'kNonBlock' not handled in switch [-Wswitch]
    switch (mode)
            ^
```
2017-06-26 23:34:33 -07:00
JosJuice 0ac1562fbd DolphinWX: Load EmuState and custom name for actual discs 2017-06-27 08:29:57 +02:00
JosJuice d5bf6f1bbc DolphinWX: Sync custom title changes on game list rescan 2017-06-27 08:29:48 +02:00
Léo Lam 9f08534a47 IOS: Reuse IOSC instance when possible
Changes ESFormats to take an IOSC instance instead of creating its own
temporary instance unnecessarily.
2017-06-27 00:01:20 +02:00
Léo Lam 6d821de2b9 IOS: Use a std::array for the title key instead of vector
The title key is always 16 bytes, so it doesn't make sense to make it
a std::vector.
2017-06-27 00:01:20 +02:00
Michael Maltese b2c9d6d217 Rename CMixer to Mixer 2017-06-26 15:01:07 -07:00
Leo Lam aa020040f6 Merge pull request #5681 from spycrab/qt_safeshutdown
Qt: Implement safe shutdown
2017-06-26 21:55:27 +02:00
spycrab 6688e66c60 Qt: Implement safe shutdown 2017-06-26 21:47:32 +02:00
shuffle2 7d60f03acb Merge pull request #5687 from shuffle2/wx-cache
DolphinWX: properly sync EmuState and banner changes.
2017-06-26 12:40:40 -07:00
Shawn Hoffman f51df62344 DolphinWX: properly sync EmuState and banner changes. 2017-06-26 12:35:40 -07:00
Leo Lam 0ace7fd8f3 Merge pull request #5694 from leoetlino/dolphin-drm
Refuse to launch the shop with default credentials
2017-06-26 21:31:32 +02:00
Leo Lam f399ca984f Merge pull request #5692 from JosJuice/titledatabase-override
TitleDatabase: Let user files override sys files
2017-06-26 21:30:49 +02:00
shuffle2 02690d5d7c Merge pull request #5693 from JosJuice/filesearch-minor-changes
FileSearch: Minor changes
2017-06-26 11:44:44 -07:00
Léo Lam 70828916e6 IOS/ES: Refuse to launch the shop with default credentials
Prevents... misusing the shop.

We are not legally obliged to do this, but let's not make piracy
any easier.
2017-06-26 20:30:13 +02:00
spycrab 2de31317e9 UICommon: Move TriggerSTMPowerEvent() from Wx 2017-06-26 16:28:39 +02:00
Léo Lam 860f07f5a1 IOS/ES: Expose GetDeviceId 2017-06-26 15:18:01 +02:00
Léo Lam 60c6fbe9cc Add CommonTitles.h for common Wii title IDs 2017-06-26 15:17:55 +02:00
JosJuice 1fc5eae5bd FileSearch: Add a static_assert for the preferred separator 2017-06-26 11:50:10 +02:00
JosJuice 382356627a FileSearch: Check isDirectory in the non-Windows code
c5fa470 made the extension check discard directories, but
only in the new code that currently only is used on Windows.
Let's add an equivalent check in the old code so that the
behavior is consistent across platforms.
2017-06-26 11:44:23 +02:00
JosJuice 642e3db3c5 TitleDatabase: Add more information to a comment 2017-06-26 11:25:58 +02:00
JosJuice ee66c562ab TitleDatabase: Let user files override sys files
This seems like an oversight in the old code, because
what's the point of loading user files if the titles
in them are going to be ignored for nearly all games?

This commit fixes the issue by making the first LoadMap
variant not overwrite entries and making the constructor
do everything in the opposite order. An alternative solution
would be to make the second LoadMap variant overwrite entries.
2017-06-26 11:14:27 +02:00
Markus Wick 99b1735424 Merge pull request #5660 from shuffle2/unblock-blockingloop
Change "blocking" BlockingLoop::Stop to give up and die after a timeout.
2017-06-26 10:23:21 +02:00
Shawn Hoffman ed8f293b4f Change "blocking" BlockingLoop::Stop to give up and die after a timeout.
This fixes the global-static fifo object causing infinite hangs in some
cases. Notably, failure to initialize a graphics backend would result in
BlockingLoop::Prepare being called but never executing Run(), leaving the
object in a bad state.
2017-06-25 20:47:30 -07:00
Shawn Hoffman 1634f0cf5e Use CompareStringOrdinal in DoFileSearch instead of _wcsicmp 2017-06-25 16:47:46 -07:00
shuffle2 88b442e1a8 Merge pull request #5678 from shuffle2/win-qt-vcxproj
Windows/Qt: Make maintaining VS files easier.
2017-06-25 15:10:23 -07:00
JosJuice be162a3316 FileSearch: Remove unnecessary function 2017-06-25 13:21:25 +02:00
shuffle2 991062093b Merge pull request #5682 from MerryMage/SCMRevGen
SCMRevGen: Use DisableFastUpToDateCheck
2017-06-24 10:44:53 -07:00
MerryMage 11a03e7dd2 SCMRevGen: Use DisableFastUpToDateCheck 2017-06-24 17:34:21 +01:00
JosJuice b440dbd998 FileSystemGCWii: Use case insensitive comparison in FindFileInfo
This was a regression in f49b64c. Some games seem to name the
banner file OPENING.BNR instead of opening.bnr.

Should fix https://bugs.dolphin-emu.org/issues/10354
2017-06-24 14:06:31 +02:00
Shawn Hoffman 311740b587 msvc/qt: list missing headers 2017-06-24 01:52:49 -07:00
Shawn Hoffman 2cf4ce1785 msvc\qt: get rid of .filters; just display directory structure. 2017-06-24 01:52:49 -07:00
Tillmann Karras c8255092d7 Fix warnings 2017-06-24 01:41:58 +01:00
Shawn Hoffman a66b747366 DolphinWX: show simple message about scanning in statusbar. 2017-06-23 17:25:53 -07:00
Shawn Hoffman c5fa470ad8 replace DoFileSearch with optimized version 2017-06-23 17:25:53 -07:00
Shawn Hoffman f16599f4a8 DolphinWX: defer gamelist scanning and switch to single-file cache. 2017-06-23 17:25:53 -07:00
Shawn Hoffman 79961b6f76 GameListCtrl: minor cleanup 2017-06-23 17:25:53 -07:00
Shawn Hoffman 668c6b5ce9 DolphinWX: rename CGameListCtrl -> GameListCtrl 2017-06-23 17:25:52 -07:00
shuffle2 1bd177561b Merge pull request #5663 from leoetlino/import-fix
IOS/ES: Fix import sanity check
2017-06-23 17:04:26 -07:00
shuffle2 d715e740b5 Merge pull request #5669 from JosJuice/boottopause-false
Don't enable Boot to Pause by default in the debugger
2017-06-23 17:02:03 -07:00
sephiroth99 22e1a3c09f DolphinQt2: fix compile error with analytics disabled
Some ifdefs were missed around two lines related to analytics in
GeneralPane.
2017-06-23 19:09:45 -04:00
JosJuice 7ebd324fe7 Don't enable Boot to Pause by default in the debugger
This behavior is useful sometimes, but it's not always useful,
and it can be rather confusing if you're not aware of it.
2017-06-23 16:05:27 +02:00
Shawn Hoffman 38b61edaa5 Qt/Windows: Properly link against qtmain. 2017-06-23 00:46:13 -07:00
Léo Lam a3fdda1675 IOS/ES: Fix import sanity check
The sanity check runs *before* finalising the import, so at that time
the whole title directory is still in /import and not in /title.
This means we should check for contents there, not in /title. Whoops.
2017-06-22 23:41:01 +02:00
Niels Boehm 56158ca176 Replace MMU mask tests with dedicated function.
The efficient function (that is nearly the same as
https://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2)
replaces one loop based instance (which also reused the xx variable
afterwards, whereas it should have used htabmask instead) and one
instance using the population count a.k.a. Hamming weigth.
2017-06-22 20:22:53 +02:00
Niels Boehm df82adca43 Add function testing whether a bitmask is valid.
This one verifies bitmasks where low bits are set to 1 (hence the name).
Any stray 0 among the lower ones or any stray 1 among the higher zeros
renders the mask invalid.

The edge cases of all zeros and all ones are considered valid masks.

It uses an efficient implementation. It's the counterpart of
https://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2
2017-06-22 20:22:53 +02:00
shuffle2 e30484e8a7 Merge pull request #5653 from Starsam80/qt-remove-settings-warning
Qt: Remove the warning in the settings window
2017-06-21 20:24:31 -07:00
shuffle2 1c741adcc6 Merge pull request #5658 from leoetlino/async
WX: Use std::future for checking disc integrity
2017-06-21 20:22:02 -07:00
shuffle2 09edd62cce Merge pull request #5650 from leoetlino/check-contents
IOS/ES: Add some sanity checks to ImportTitleDone
2017-06-21 20:13:44 -07:00
shuffle2 f65fe3efbd Merge pull request #5646 from Starsam80/cert-import-fixes
NANDImporter: Improve certificate extraction
2017-06-21 20:12:57 -07:00
Léo Lam 9d70b894bf WX: Use std::future for checking disc integrity
Simpler, and puts the call to CheckIntegrity right where it should be,
instead of being hidden somewhere in a thread class.

This also makes it more obvious what we're getting from the async task.

Oh, and coincidentally, this fixes a random crash that could occur
during the check. I'm not sure why.
2017-06-21 11:08:07 +02:00
Tillmann Karras e504da6f04 DSPHLE: add a few comments 2017-06-21 07:07:10 +01:00
Tillmann Karras b2a3827ecb DSPHLE: fix volume in NTSC IPL ucode 2017-06-21 06:57:58 +01:00
Starsam80 74df52fb2c
Qt: Remove the warning in the settings window 2017-06-20 18:58:47 -06:00
Tillmann Karras 578ae3c8a1 DSPHLE: the light protocol has no sine table
The sine table is only used for Dolby mixing which the light protocol
doesn't support.
2017-06-20 22:00:27 +01:00
Tillmann Karras a46430851d DSPHLE: the IPL PAL ucode's 0xC command is a nop 2017-06-20 22:00:27 +01:00
Tillmann Karras 69027bc488 DSPHLE: add another Japanese IPL checksum
I'm not actually sure it's version 1.2 but it doesn't really matter
anyway.
2017-06-20 22:00:11 +01:00
Leo Lam 3fe8e102fc Merge pull request #5648 from leoetlino/qt-shutdown
Qt: Fix emulation stopped signal
2017-06-20 21:14:13 +02:00
Léo Lam 3613f33c9b IOS/ES: Make sure all contents are imported
This adds a check to ImportTitleDone to make sure all required contents
that are listed in the TMD have been imported before allowing to finish
the import. Not checking for this could allow titles to be left in an
inconsistent state.
2017-06-20 20:12:50 +02:00
Léo Lam 4d08e90f26 IOS/ES: Block ImportTitleDone if there's a content import 2017-06-20 11:57:00 +02:00
Anthony b584d2797f Merge pull request #5508 from ligfx/qtresizerenderwidget
DolphinQt2: allow resizing RenderWidget/fix fullscreen
2017-06-19 12:26:18 -07:00
Léo Lam fb135c99e3 Qt: Fix emulation stopped signal
Same old bug as in WX. The core is not shut down until the on stopped
callback is invoked.
2017-06-19 21:24:32 +02:00
shuffle2 74cab88a8c Merge pull request #5618 from lioncash/fifo
FifoRecorder: Don't allocate ~100.7MB on program startup
2017-06-19 08:02:51 -07:00
Leo Lam 1be10e7ebc Merge pull request #4940 from sjnewbury/wiimote-connect
Retry opening of wiimote channels on initial failure
2017-06-19 10:56:09 +02:00
Steven Newbury e9a696b160 Retry opening of wiimote channels on initial failure #5997
There seems to be a race condition between a peripheral device
connecting to the bluetooth controller and it being ready to use.
It's very short and it depends upon the controller, some appear to
connect synchronously and block until the device is ready, others
report the device upon discovery but do not allow communication straight
away. I don't know which is the correct behaviour, or whether it depends
on the peripheral, controller or both. Anyway, Dolphin waits for a
remote to appear and immediately attempts to open the communication
channels, this can fail because the device isn't ready yet, delay, try
again, and it works.

There are other (unlikely) chances the device is busy at random
moments after this initial race condition so it loops around try to
reconnect.

This was inspired by an earlier patch, see here:
https://bugs.dolphin-emu.org/issues/5997#note-20

I can confirm that it works perfectly for me on a bluetooth
controller where otherwise it's impossible to connect (Dell 380
Bluetooth 4.0).
2017-06-19 09:22:04 +01:00
Starsam80 5399311a13
NANDImporter: Improve certificate extraction 2017-06-19 01:23:58 -06:00
Lioncash 82c66e2bab FifoRecorder: Don't allocate ~100.7MB on program startup
So, a FifoRecorder instance is instantiated as a file-local variable and
used as a singleton (ugh). Most users likely don't regularly use the
FIFO player/FIFO recorder, so this is kind of a substantial waste of
memory.

FifoRecorder's internal RAM and ExRAM vectors are 33554432 and 67108864
bytes respectively, which is around 100.66MB in total.

Just on the game list view on a clean build with nothing loaded, this
knocks debug build memory usage down from ~232.4MB to ~137.5MB, and
release build memory usage down from ~101MB to ~5.7MB.
2017-06-19 02:47:26 -04:00
Lioncash 59a947d41d AbstractTexture: Return config by const reference
Returning by const value isn't really necessary (and usually an indicator const reference was intended).
2017-06-18 23:38:42 -04:00
Lioncash 07cddf6f7f AbstractTexture: Add missing includes (and remove unnecessary ones) 2017-06-18 23:29:22 -04:00
Lioncash 0c57543205 VideoCommon: Fix VS filter for AbstractTexture.cpp
This would cause failures when building with VS.
2017-06-18 22:58:02 -04:00
shuffle2 f06e233d49 Merge pull request #5616 from ligfx/qtfocuseventtowindowactivation
DolphinQt2: FocusEventFilter -> WindowActivationEventFilter
2017-06-18 16:34:03 -07:00
shuffle2 b59eb76786 Merge pull request #5641 from leoetlino/analytics-timeout
Analytics: Set the timeout to 5 seconds
2017-06-18 16:33:18 -07:00
Michael Maltese f7e2b8dab7 DSPCore: replace 'GC' with 'GameCube' in messages 2017-06-18 15:43:02 -07:00
Michael Maltese 9de2934aae DSPCore: remove message that the free ROM doesn't work with IPL
The GameCube IPL sounds the same when using the free ROM as it does when
using the official ROM (and in Audacity, I couldn't visually distinguish
between the waveforms). It has a reference to an unimplemented function
at 0x8644 which seems to only be used in an inlined version of the CARD
ucode.
2017-06-18 15:43:02 -07:00
Michael Maltese 84808d2e35 DSPCore: update free DSP ROM message for GBA ucode support
The GBA ucode is supported as of #5524 / d51be94.
2017-06-18 15:43:02 -07:00
shuffle2 98b751f810 Merge pull request #5643 from leoetlino/fix-memcpy
IOS/ES: Fix bug in ImportTicket ioctlv handler
2017-06-18 15:37:08 -07:00
Léo Lam 29e8988c90 Analytics: Set the timeout to 5 seconds
3 seconds is sometimes not enough.
2017-06-18 23:16:03 +02:00
Leo Lam 9a1503a75c Merge pull request #5642 from lioncash/chrono
HttpRequest: Use std::chrono for indicating time periods
2017-06-18 23:13:52 +02:00
Léo Lam 961c85bf7c IOS/ES: Fix bug in ImportTicket ioctlv handler 2017-06-18 23:09:30 +02:00
Léo Lam 7222ce78ff SysConf: Don't set "config done" flags by default
This allows the user to go through the Wii Menu first boot setup
screen when they launch the System Menu for the first time.

Most useful on a clean profile, after doing a full system update,
to configure settings like the console country.
2017-06-18 22:32:56 +02:00
shuffle2 5072f4e5c3 Merge pull request #5638 from leoetlino/sysconf
Rewrite SysConf handling
2017-06-18 13:19:11 -07:00
shuffle2 e63c337830 Merge pull request #5305 from iwubcode/abstract_texture
Abstract Texture
2017-06-18 12:57:05 -07:00
Lioncash 251de89b5c HttpRequest: Use std::chrono for indicating time periods
Allows the use of chrono time points, on top of being more indicative of
time periods used at call sites, if custom timeouts are specified.
2017-06-18 15:48:37 -04:00
Léo Lam d86f020e81 Rewrite SysConf handling
This rewrites the SysConf code for several reasons:

* Modernising the SysConf class. The naming was entirely cleaned up.
  constexpr for constants.

* Exposing less stuff in the header.

* Probably less efficient parsing and writing logic, but much simpler
  to understand and use in my opinion. No more hardcoded offsets.
  No more duplicated code for the initial SYSCONF generation.

* More flexibility. It is now possible to add and remove entries,
  since we rebuild the file. This allows us to stop spamming
  "section not found" panic alerts; we can now use and insert
  default entries.
2017-06-18 16:17:05 +02:00
Tillmann Karras 9a2bef97da JitCache: use SymbolDB names as JIT block names 2017-06-18 06:58:44 +01:00
shuffle2 e9c0535519 Merge pull request #5632 from sepalani/file
File/IOFile: Check _tfopen_s properly
2017-06-17 15:03:10 -07:00
Léo Lam e1990e2645 IOS/ES: Fix title ordering
On a real Wii, the title list is not in any particular order. However,
because of how the flash filesystem works, titles such as 1-2 are
*never* in the first position. We must keep this behaviour, or some
versions of the System Menu may break.
2017-06-17 22:39:08 +02:00
Léo Lam dd8dcdf880 LogManager: Check if listener is valid before using it 2017-06-17 10:39:06 +02:00
Léo Lam a2ad3e14d0 Logging: Remove duplicated code 2017-06-17 10:20:30 +02:00
Léo Lam 100c433261 Logging: Move verbosity setting code to LogManager
No clue why it was in DolphinWX.
2017-06-17 10:20:30 +02:00
Stenzek 68fef47aef Merge pull request #5314 from stenzek/revert-efb-source-truncation
TextureConversionShader: Use integer math for truncating EFB format
2017-06-17 15:21:48 +10:00
Stenzek adebe2239e TextureConversionShader: Use integer math for truncating EFB format 2017-06-17 12:17:09 +10:00
Sepalani b359d82890 File/IOFile: Check _tfopen_s properly 2017-06-17 02:16:58 +01:00
Leo Lam 10beb2aea1 Merge pull request #5628 from JosJuice/updatetitle-encoding
DolphinWX: Fix encoding errors in UpdateTitle
2017-06-16 18:37:59 +02:00
Leo Lam bc9c9b9fe4 Merge pull request #5594 from MerryMage/phack
Cleanup Projection Hack
2017-06-16 18:36:39 +02:00
Leo Lam cc9bd0b0f0 Merge pull request #5625 from leoetlino/fileutil-fixes
FileUtil fixes
2017-06-16 18:31:50 +02:00
JosJuice 4bee7b7605 DolphinWX: Fix encoding errors in UpdateTitle
An implicit conversion from std::string to wxString
was to blame, as usual. Fixes issue 10341.
2017-06-16 17:20:13 +02:00
Léo Lam 6249244c90 IOS/ES: Fix formatting 2017-06-16 16:17:38 +02:00
Léo Lam 6503a9f538 Allow the user to ignore signature issues during WAD import
Improves usability with signature checks.
2017-06-16 16:17:38 +02:00
Léo Lam c08806d107 IOS/ES: Verify containers in GetTMDStoredContents 2017-06-16 16:17:38 +02:00
Léo Lam d77b7ac90e IOS/ES: Verify containers in SetUpStreamKey 2017-06-16 16:17:38 +02:00
Léo Lam 36c5caacf4 IOS/ES: Verify containers in ImportTmd 2017-06-16 16:17:37 +02:00
Léo Lam 54025da00f IOS/ES: Add note about verification in DiVerify
We probably don't want to verify containers there because it might
result in patched/custom games failing the check.
2017-06-16 16:17:37 +02:00
Léo Lam 8a49e1f7db IOS/ES: Verify containers in ImportTitleInit 2017-06-16 16:17:37 +02:00
Léo Lam 719af1aff4 IOS/ES: Verify containers in ImportTicket 2017-06-16 16:17:37 +02:00
Léo Lam 07d83ada39 IOS/ES: Create missing directories at boot
Something that IOS does and that Dolphin doesn't, for whatever reason.
2017-06-16 16:17:37 +02:00
Léo Lam f3bf1d626c IOS/ES: Add helper function ReadCertStore 2017-06-16 16:17:37 +02:00
Léo Lam 88348e2903 IOS/ES: Add VerifyContainer
Will be used from several functions to verify the signatures for
different containers (TMDs, tickets, device signed blobs).

An option was added to disable signature checks, because that could be
useful for people trying to import unsigned stuff.
2017-06-16 16:17:37 +02:00
Léo Lam 34c9bf391e IOS: Correct ES return code names about signatures
-1027 is used when ES cannot find the issuer of a certificate.

-1012 is used when the signature type is invalid.
2017-06-16 15:49:40 +02:00
Shawn Hoffman 1ada68aecd windows: fix handle leak when using continuous scan 2017-06-16 04:00:32 -07:00
Léo Lam 01faa5c852 FileUtil: Use errno for printing errors in IsDirectory
stat() returns an error code in errno on both POSIX compliant
platforms and Windows.

This means we should always use errno instead of GetLastErrorMsg
which uses GetLastError() (Win32) on Windows.
2017-06-16 12:43:41 +02:00
Léo Lam aa63199977 FileUtil: Don't manually strip trailing slashes
POSIX allows one or more trailing slashes for directories.

From POSIX.1-2008, section 3.271 (Base Definitions / Pathname):

> A pathname can optionally contain one or more trailing <slash>
> characters. Multiple successive <slash> characters are considered to
> be the same as one <slash>, except for the case of exactly two
> leading <slash> characters.

On Windows, the extra trailing slashes are ignored for directories too.
2017-06-16 12:31:26 +02:00
Leo Lam 405d2e28ad Merge pull request #5621 from Orphis/d3d_include
d3d: Add missing include
2017-06-16 10:53:56 +02:00
Shawn Hoffman f469d86467 cmake/win32: add CompatPatches 2017-06-15 21:26:40 -07:00
Shawn Hoffman 1210c74955 [windows]: Apply compatibility patches to problematic gamepad vibration drivers.
Move ucrtFreadWorkaround to use the new LdrWatcher.
2017-06-15 21:21:01 -07:00
Florent Castelli 0b504fa046 d3d: Add missing include 2017-06-16 05:52:01 +02:00
Shawn Hoffman e51071a9c5 msbuild: put pugixml in Externals solution filter; fix project reference. 2017-06-15 19:06:16 -07:00
Michael Maltese 7c79673d78 MappingButton: make m_block a Common::Flag 2017-06-15 16:15:07 -07:00
Michael Maltese 5b6c8c3ad0 MappingButton: grab and release mouse and keyboard instead of calling parent SetBlockInputs 2017-06-15 16:15:07 -07:00
Michael Maltese 2188ac785a Move MappingWindow::OnDefaultFieldsPressed() to correct file 2017-06-15 16:15:07 -07:00
Michael Maltese 6c73079011 MappingWidget: fix typo and call Update() on bools 2017-06-15 16:15:07 -07:00
Michael Maltese ef563fc032 MappingWidget: call Clear() on numerics and bools 2017-06-15 16:15:07 -07:00
Michael Maltese 94038a1e03 MappingButton: remove GetFirstButtonPress logic 2017-06-15 16:15:07 -07:00
Michael Maltese 5b3b6b7f3d DolphinQt2: FocusEventFilter -> WindowActivationEventFilter 2017-06-15 16:12:05 -07:00
Lioncash dd4203bec8 Core: Remove unnecessary includes
Also moves a cpp file's related header file to the top of the inclusions if it isn't already there.
2017-06-15 18:52:22 -04:00
Lioncash b003108b8b Core: Add WiimoteCommon headers to the VS project 2017-06-15 18:38:21 -04:00
Leo Lam 8f460a1cda Merge pull request #5611 from JosJuice/reorganize-file-namespace
Reorganize File namespace
2017-06-15 23:28:36 +02:00
JosJuice cf94ce6305 Add a namespace to OpenFStream
For consistency with the other functions in FileUtil.h.
2017-06-15 21:34:04 +02:00
JosJuice f09ceaa735 Move IOFile to a separate file
Reduces the number of files that need to be recompiled
when making changes to FileUtil.h.
2017-06-15 21:33:50 +02:00
Leo Lam 9bc1b652fe Merge pull request #5601 from leoetlino/esformats-additions
ESFormats additions and fixes
2017-06-15 21:32:44 +02:00
Leo Lam 743284d39d Merge pull request #5606 from leoetlino/include
NoGUI: Fix a missing include for Xlib
2017-06-15 21:31:21 +02:00
Leo Lam 09c0a3caaf Merge pull request #2820 from JosJuice/filesystem
Filesystem redesign and performance improvements
2017-06-15 21:24:42 +02:00
MerryMage f8a99ca192 VertexShaderManager: Rename projection hack variables 2017-06-15 16:38:10 +01:00
MerryMage 44f2420517 GraphicsSettings: PH_ZNear and PH_ZFar are std::strings 2017-06-15 16:38:06 +01:00
Léo Lam a370ad5f6d IOS/ESFormats: Fix content map writing
On Windows, this would fail because the file handle wasn't closed.
2017-06-14 23:13:46 +02:00
Léo Lam 8865208571 IOS/ESFormats: Add ParseCertChain
This will be used to avoid duplicating cert chain parsing code.
2017-06-14 22:45:30 +02:00
Léo Lam e29f6e383f IOS/ESFormats: Add CertReader 2017-06-14 22:45:30 +02:00
Léo Lam 90280b3f84 IOS/ESFormats: Remove unused TMDReader function
The ES function that used to make use of it was changed to be more
sane, so GetRawHeader() is now unused and useless.
2017-06-14 22:45:29 +02:00
Léo Lam 6c3069be97 IOS/ESFormats: Use SignedBlobReader for TMDs and tickets 2017-06-14 22:45:29 +02:00
Léo Lam 2ec04675c9 IOS/ESFormats: Add SignedBlobReader
Allows common signature parsing code to not be duplicated.
2017-06-14 22:45:29 +02:00
Anthony 335f54cac6 Merge pull request #5609 from leoetlino/qt-user-path
Qt: Support custom user profile paths
2017-06-14 13:40:37 -07:00
JosJuice 583406d900 Filesystem: Make destructors = default 2017-06-14 15:26:04 +02:00
JosJuice 0b7d2e7c68 Filesystem: Modernize variable names 2017-06-14 15:25:09 +02:00
JosJuice e3a2cd827a Filesystem: Do more validity checking in the constructor
This makes it possible to catch errors earlier so that file systems
simply fail to load instead of behaving oddly. It also makes it possible
to check for errors that weren't checkable before, like the end of a
directory being after the end of the parent directory.
2017-06-14 15:25:05 +02:00
JosJuice ee27be06d7 Filesystem: Add a cache for finding file info by disc offset
FileMonitor calls this every time a read happens, and there's no code that
only calls this a small number of times, so having a cache is worthwhile.
2017-06-14 15:25:02 +02:00
JosJuice 87916fe099 Filesystem: Replace GetFileList()
Instead of expecting callers to know how the size of directory file infos
relates to which files are in which directories, filesystems now offer a
GetRoot() method, and file infos offer a way to get their children. As
a bonus, m_FileInfoVector no longer has to be created and kept around
in RAM. Only the file info objects that actually are used are created.
2017-06-14 15:23:48 +02:00
Léo Lam a9630727fe Qt: Support custom user profile paths
Pretty much the most important option to support, even for a UI
frontend that's still a WIP. It's essential for testing.
2017-06-14 14:31:30 +02:00
Leo Lam 40a9e585a7 Merge pull request #5604 from sepalani/wx-rm-path
PathConfigPane: Prevent an invalid index assert
2017-06-14 13:30:15 +02:00
Sepalani 2a349f8e49 PathConfigPane: Prevent an invalid index assert 2017-06-14 12:07:25 +01:00
Leo Lam c71cb9ac49 Merge pull request #5608 from Starsam80/qt-should-be-like-wx
Qt/MappingWindow: Update layout to match WX
2017-06-14 11:14:34 +02:00
Leo Lam 54e882941c Merge pull request #5600 from leoetlino/xml-library
Externals: Add zeux/pugixml@38edf25
2017-06-14 11:13:32 +02:00
Leo Lam 36efcc9f39 Merge pull request #5599 from leoetlino/http-request
Common: Add HttpRequest to simplify HTTP requests
2017-06-14 11:12:56 +02:00
Starsam80 e023cc124b
Qt/MappingWindow: Update layout to match WX 2017-06-13 22:42:53 -06:00
JosJuice ee2b88ebb6 Filesystem: Store pointer to beginning of FST in file infos
Needed for the next commit.
2017-06-13 22:44:15 +02:00
JosJuice 1262f08ac1 Filesystem: Better validity checking
Now that the FST in read in the constructor, m_Valid
can be set to false when there are errors in the FST.
2017-06-13 22:44:11 +02:00
JosJuice afe2bc60f6 Filesystem: Initialize everything in constructor
Not initializing until the filesystem is used is good when
a filesystem is constructed and then never used, but nobody does that.
This simplifies the code a little and lets all methods be const.
2017-06-13 22:44:07 +02:00
JosJuice d6ee7ec32c Filesystem: Read the entire FST in one go
Instead of using lots of small scattered reads to read the FST,
only one big read is used, which is more efficient.

This also means that the FST only allocates memory once and stores all
strings close to each other - good for the CPU cache. The file info
objects use pointers to this FST memory of containing data themselves.
Keeping around the big m_FileInfoVector containing objects with only
pointers is a bit unnecessary, but that will be fixed soon.
2017-06-13 22:43:41 +02:00
JosJuice f49b64caff Filesystem: Rewrite finding file info by path for performance
Instead of calling GetPathFromFSTOffset for every file info, FindFileInfo
now only looks at names in directories that are included in the path.
For the common case of searching for "opening.bnr", this means that
only root-level files and directories have to be searched through.
2017-06-13 22:41:02 +02:00
JosJuice 7c45afecb2 Filesystem: Use file info in arguments instead of path
Some callers already have the file info, making the relatively slow
FindFileInfo calls unnecessary. Callers that didn't have the file info
will now need to call FindFileInfo on their own.
2017-06-13 22:40:57 +02:00
JosJuice 3d5ef948d0 Filesystem: Make FindFileInfo public 2017-06-13 22:40:53 +02:00
JosJuice 07d3a39aeb Filesystem: Replace file info's full path with name
Some callers (i.e. ISOProperties) don't want the full path, so giving them
it is unnecessary. Those that do want it can use GetPathFromFSTOffset.
Not storing full paths everywhere also saves a small bit of RAM and is
necessary for a later commit. The code isn't especially pretty right now
(callers need to use FST offsets...) but it'll become better later.
2017-06-13 22:38:31 +02:00
JosJuice 5021b4a567 Filesystem: Replace FileInfo struct with interface
GC/Wii filesystem internals shouldn't be exposed to other classes.
This change isn't especially useful by itself, but it opens up the
way for some neat stuff in the following commits.
2017-06-13 22:37:43 +02:00
Leo Lam 38c60156ce Merge pull request #5479 from spycrab/qt_mapping_io_win
Qt: Implement advanced mapping I/O windows
2017-06-13 21:09:45 +02:00
Léo Lam 0d58a0bfe2 HttpRequest: Add support for custom timeouts 2017-06-13 19:17:11 +02:00
spycrab 50c13c1902 Qt: Implement advanced mapping I/O windows 2017-06-13 17:16:41 +02:00
JosJuice 95bc57cff3 DiscScrubber: Use FileInfo::IsDirectory instead of bit magic 2017-06-13 17:01:39 +02:00
Léo Lam b08201654e Externals: Add zeux/pugixml@38edf25
Along with VS boilerplate to get it to build on Windows.
2017-06-13 14:05:10 +02:00
Léo Lam ba3f16edbf HttpRequest: Add support for sending custom headers 2017-06-13 12:52:31 +02:00
Léo Lam 8f87433719 HttpRequest: Log response body on failure 2017-06-13 12:52:31 +02:00
Léo Lam 18678afa6d Common: Add HttpRequest to simplify HTTP requests
Too much boilerplate that is duplicated if we use curl directly.
Let's add a simple wrapper class that hides the implementation details
and just allows to simply make HTTP requests and get responses.
2017-06-13 12:52:31 +02:00
Léo Lam 55916eddda NoGUI: Fix a missing include for Xlib 2017-06-13 11:46:13 +02:00
iwubcode e4896d39bd Video Backends: Move and rename HostTextureFormat to AbstractTextureFormat 2017-06-13 00:41:56 -05:00
iwubcode 2cdc93f4ab Video Backends: Split texture cache code out into separate files, introduce 'AbstractTexture' 2017-06-13 00:41:51 -05:00
Stenzek 8a56ef42dc Vulkan: Fix image layout assertion failing for palette textures 2017-06-13 14:47:09 +10:00
Leo Lam 73be025847 Merge pull request #5603 from sepalani/png-warn
Silent GameList PNG warnings
2017-06-12 23:58:23 +02:00
Leo Lam 3e1a650a3f Merge pull request #5591 from leoetlino/wii-fix
Core: Misc WiiRoot fixes
2017-06-12 23:41:45 +02:00
Sepalani b7dde796fa Silent GameList PNG warnings 2017-06-12 22:19:58 +01:00
Léo Lam 4a3537285b IOSC: Implement ImportCertificate
Same as VerifyPublicKeySign, we currently only support RSA keys
(which is all we need right now).
2017-06-12 20:33:54 +02:00
Léo Lam 1a8144c702 IOSC: Fix ImportPublicKey to work with other public key types 2017-06-12 20:33:54 +02:00
Léo Lam 2eccd45f01 IOSC: Implement GetSizeForType
Avoids duplicating sizes everywhere.
2017-06-12 20:33:53 +02:00
Léo Lam 965773bf67 IOSC: Implement VerifyPublicKeySign
Partial implementation which doesn't support ECC stuff, but good enough
for our purposes.
2017-06-12 18:24:02 +02:00
Léo Lam a0392db833 IOSC: Add entry for the root key handle
It contains a RSA4096 public key used to validate all other
Nintendo certificates.
2017-06-12 18:24:01 +02:00
Léo Lam 8859bc91e2 IOSC: Add storage for key misc data
Will be used to store the exponent for RSA keys.
2017-06-12 18:24:01 +02:00
Léo Lam d4f501bca6 IOSC: Replace direct access to entries with getter
Makes it slightly less likely to forget a check and end up doing an
out-of-bounds access. Also makes it obvious that we *are* indeed
checking whether the handle is valid, instead of hiding it in
HasOwnership (which won't handle the root key handle case properly).
2017-06-12 18:24:01 +02:00
Léo Lam acf150df3f IOSC: Add structures for certificates and signatures 2017-06-12 18:24:01 +02:00
shuffle2 2b86cf02a8 Merge pull request #5589 from stenzek/vulkan-validation-fixes
Vulkan: Don't transition image layouts inside render passes
2017-06-11 16:59:02 -07:00
JosJuice b3ac6de7f8 Skip GameCube IPL by default
See https://github.com/dolphin-emu/dolphin/pull/5492#issuecomment-306988942

I'm also renaming the setting because HLE_BS2 has already
been set to False automatically in existing INIs.
2017-06-11 17:51:01 +02:00
Léo Lam 17ef4c8046 StringUtil: Make SplitString return by value
Simpler usage.
2017-06-11 16:48:20 +02:00
MerryMage a0b41c83e7 VideoConfig: Remove bRunning
Value was set but not used.
2017-06-11 15:06:12 +01:00
Leo Lam eefae402b3 Merge pull request #5593 from leoetlino/legacy-code
VideoConfig: Remove useless code
2017-06-10 21:34:56 +02:00
Léo Lam 774587cbd1 VideoConfig: Remove useless header includes 2017-06-10 20:25:27 +02:00
Léo Lam 0e85c47237 VideoConfig: Remove manual panic alert setting load
This code hadn't been touched since 2010. Nowadays, the panic alert
setting is loaded by ConfigManager and applied in UICommon.
VideoConfig has no business messing with it.
2017-06-10 20:24:18 +02:00
Leo Lam f2a6e39722 Merge pull request #5590 from MerryMage/vcd-refresh
VideoConfigDiag: Refresh VideoConfig before opening configuration dialog
2017-06-10 20:21:18 +02:00
MerryMage 33879bf611 Config: Remove creation of unnecessary CommandLine layer 2017-06-10 19:07:17 +01:00
Léo Lam 91bcd756ff Core: Remove useless ShutdownWiiRoot calls
I don't see why we need to call ShutdownWiiRoot on InitializeWiiRoot.

Also, atexit? Really? Not only is this unnecessary, it will also cause
ShutdownWiiRoot to be called twice in rapid succession for no reason.
2017-06-10 20:00:43 +02:00
Léo Lam 3eecf67a2a Core: Remove useless InitializeWiiRoot call 2017-06-10 19:52:54 +02:00
Léo Lam 8b67a3ada3 Core: Only restore config after HW shutdown
The config must only be restored after the HW has shut down, not while
it is still running, because the HW can still query the config, which
can lead to inconsistent states.

This fixes WiiRoot not being able to copy back saves on shutdown.
2017-06-10 19:50:43 +02:00
MerryMage 12e9ce47f6 VideoConfigDiag: Refresh VideoConfig before opening configuration dialog
If the video configuration dialog is opened before a game was run, VideoConfig::Refresh was never called.
2017-06-10 16:40:10 +01:00
Stenzek ca55ba6c1d Vulkan: Transition texture cache entries before usage 2017-06-10 23:52:39 +10:00
Stenzek 8bb6abacf8 Vulkan: Transition EFB/XFB buffers before beginning swap render pass
Image layouts shouldn't be changed within a render pass.
2017-06-10 23:52:32 +10:00
JosJuice 2578a3553b VolumeDirectory: That's not what "4 byte" means 2017-06-09 20:00:36 +02:00
JosJuice 240cb0ca11 VolumeDirectory: Use correct endianness when writing apploader -1 2017-06-09 20:00:17 +02:00
Anthony 20a3cbb8fc Merge pull request #5587 from JosJuice/volumewii-game-partition-later
VolumeWii: Don't set m_game_partition until we know partition is valid
2017-06-09 10:49:50 -07:00
Anthony c900829eee Merge pull request #5586 from JosJuice/expand-game-partition
FilesystemPanel: Expand game partition rather than second partition
2017-06-09 10:49:12 -07:00
JosJuice d2b69f963a VolumeWii: Don't set m_game_partition until we know partition is valid
Without this, we can end up in an inconsistent state where
m_game_partition is set to a partition that isn't in the
partition maps.
2017-06-09 18:39:30 +02:00
Leo Lam 1f30bd1f26 Merge pull request #5583 from shuffle2/remove-psapi
remove MemUsage, and therefor psapi dependency
2017-06-09 18:10:04 +02:00
Leo Lam d9e8a2a7e7 Merge pull request #5584 from JosJuice/boot-tmd-valid
Boot: Check TMD validity before reading from TMD
2017-06-09 18:07:26 +02:00
JosJuice 025884b688 FilesystemPanel: Expand game partition rather than second partition
The game partition is normally the second partition, but not
if the disc has been scrubbed to only contain one partition.
2017-06-09 18:04:58 +02:00
Leo Lam 25850dd366 Merge pull request #5563 from leoetlino/internal-functions
IOS/ES: Make NandUtils member functions
2017-06-09 17:52:09 +02:00
JosJuice fdd197475b Boot: Check TMD validity before reading from TMD
Otherwise Dolphin crashes when trying to boot a Wii game
with an invalid TMD.
2017-06-09 17:44:43 +02:00
Shawn Hoffman f206a4ea9c remove MemUsage, and therefor psapi dependency 2017-06-08 22:25:46 -07:00
Leo Lam 9885a2bb28 Merge pull request #5575 from leoetlino/setup-stream-key
IOS/ES: Implement ES_SetUpStreamKey
2017-06-08 20:11:14 +02:00
Léo Lam 7b4404c7d5 IOS/ES: Implement ES_SetUpStreamKey
This ioctlv is used to get an IOSC decrypt handle for a title.
It is known to be used internally by the WFS modules, but it can also
be used from the PPC under some conditions.

Brings us down to 2 essentially unimplementable ioctlvs (syscalls which
seem to return kernel thread priorities...), and 1 known but
unimplemented ioctlv (VerifySign).
2017-06-08 18:15:03 +02:00
Léo Lam e240e260d9 IOSC: Fix the SetOwnership implementation 2017-06-08 18:15:03 +02:00
Léo Lam 47e0a1656e IOS/ES: Make NandUtils member functions
In the future, NAND filesystem access will be limited to one IOS
instance, for safety reasons and to make it possible to consider
supporting NAND images. This means that any code accessing the NAND
filesystem must go through the FS device, both for code that is
external to IOS and internal.

Because we don't want to introduce any singleton, this requires
internal IOS code that needs NAND access to be part of an IOS device
class, so they can access the FS device easily.

Making some of the internal ES implementation functions member
functions also prevents them from being (mis)used outside of IOS,
since they cannot be called everywhere anymore.
2017-06-08 17:44:00 +02:00
Shawn Hoffman 55062afea9 move IOS::HLE::WriteReturnValue to .cpp file 2017-06-08 00:07:10 -07:00
Shawn Hoffman 602b972773 msvc: enable some default-off warnings 2017-06-07 21:07:36 -07:00
shuffle2 327050348c Merge pull request #5576 from lioncash/filters
Core: Move SignatureDB and Config source files into filters
2017-06-07 20:41:06 -07:00
Shawn Hoffman fd166032ab msbuild: obey some warnings about missing virtual destructors 2017-06-07 20:20:25 -07:00
Shawn Hoffman 5480efdff2 video: change multisample/AA setting to u32 2017-06-07 20:20:25 -07:00
Shawn Hoffman 9357cee2ef do not assign in conditional statements 2017-06-07 20:09:44 -07:00
Shawn Hoffman 50f34f8b05 jit64: silence signedness comparison warnings 2017-06-07 20:09:44 -07:00
Shawn Hoffman ef9090d7da powerpc: silence an int->u32 init warning 2017-06-07 20:09:43 -07:00
Shawn Hoffman a97d079138 jit64: quiet variable init warnings 2017-06-07 20:09:43 -07:00
Shawn Hoffman e6c15e993b quiet some sign-conversion-in-parameter warnings 2017-06-07 20:09:43 -07:00
Shawn Hoffman ab4a785f1b d3d: silence variable shadowing warning 2017-06-07 20:09:43 -07:00
Shawn Hoffman ead4f19654 ios/usbv4: initialize TransferCommand::data_address to 0 2017-06-07 19:52:08 -07:00
Shawn Hoffman 983f70c9ea ios: treat return values as s32 2017-06-07 19:52:07 -07:00
Shawn Hoffman 5b5c630afb set underlying type of some enums to quiet warnings 2017-06-07 19:52:07 -07:00
Shawn Hoffman ebd3d43b7d ios/es: make fd s32 -> quiets warnings 2017-06-07 19:52:07 -07:00
Shawn Hoffman 8f12d7fb3c ios/net/ip/top: introduce a helper to write ip addr (quiets warning) 2017-06-07 19:52:07 -07:00
Shawn Hoffman 4a1b32afe4 windows: use proper type/constant for NET_IFINDEX in ios hle 2017-06-07 19:52:07 -07:00
Shawn Hoffman 7e75a052a4 windows/bba: pass c_str() instead of std::string object through a va_list 2017-06-07 19:52:07 -07:00
Shawn Hoffman 90f863a7a3 HLE: fix unreachable code warning 2017-06-07 19:52:07 -07:00
Shawn Hoffman f730b775b6 quiet warnings about possibly-uninitialized variable usage 2017-06-07 19:52:07 -07:00
Shawn Hoffman e1a3e41bf3 fix various instances of -1 being assigned to unsigned types 2017-06-07 19:52:07 -07:00
Shawn Hoffman be7c6a0819 msvc: disable warning about using setjmp w/c++ objects in scope 2017-06-07 19:52:07 -07:00
Lioncash a093b58aad Core: Move SignatureDB and Config source files into filters
Keeps things organized instead of being in the root of Core's source
tree when using the filter view.
2017-06-07 21:57:49 -04:00
Shawn Hoffman f7f1d5d2ca msvc: disable meaningless constant truncation warnings in SDCardUtil 2017-06-07 18:44:03 -07:00
Shawn Hoffman 4f9dd7277b msvc: disable unused symbol warning in Core/Common/Crypto/ec.cpp 2017-06-07 18:44:03 -07:00
Shawn Hoffman 5dc7318281 msbuild: cleanup some old comments in DolphinQt2.vcxproj 2017-06-07 17:30:05 -07:00
Shawn Hoffman 8d37301b19 msbuild: Remove hack for ObjectFileName (reduces build parallelism). 2017-06-07 17:30:05 -07:00
Shawn Hoffman 1bb26dddb1 msbuild: only set /NODEFAULTLIB in one place 2017-06-07 17:30:05 -07:00
Shawn Hoffman 0594f7db02 msbuild/DolphinQt: remove extra /INCREMENTAL. Already enabled for Debug. 2017-06-07 17:30:05 -07:00
Shawn Hoffman 4371dd201f msbuild: remove some remnants of Qt .ui/.qrc support 2017-06-07 17:30:05 -07:00
Léo Lam 0ddb6f9328 DiscIO: Use the correct offset shift for DOL exports 2017-06-07 22:41:00 +02:00
Léo Lam 0b71b60ef0 DiscIO: Fix formatting 2017-06-07 22:40:51 +02:00
Léo Lam 7b490d7cb0 HW/WiiSaveCrypted: Don't use new/delete 2017-06-07 12:49:24 +02:00
Leo Lam 3a83ebcc35 Merge pull request #5567 from lioncash/put_time
Movie: Use std::put_time in GetRTCDisplay()
2017-06-07 10:00:31 +02:00
Leo Lam b3ca876956 Merge pull request #5564 from Starsam80/qt-title-database
Qt: Use TitleDatabase for better names in the game list
2017-06-07 09:58:11 +02:00
Leo Lam 6ee2227ba2 Merge pull request #5568 from lioncash/boot
Boot: Make BootExecutableReader hierarchy constructors explicit
2017-06-07 09:27:04 +02:00
Lioncash d9bb2ce3af DVDInterface: Amend lint formatting issues 2017-06-07 01:20:54 -04:00
Lioncash b676edd80c Core: include what you use
Eliminates a swath of indirectly included standard headers
2017-06-07 01:20:48 -04:00
Lioncash b0427731b3 ElfReader: default the destructor 2017-06-06 23:03:59 -04:00
Lioncash 1af1795695 ElfReader: Make constructors explicit 2017-06-06 23:03:59 -04:00
Lioncash 1876505707 DolReader: Make constructors explicit 2017-06-06 23:03:59 -04:00
Lioncash 927a4a16f8 Boot: Make BootExecutableReader constructors explicit 2017-06-06 22:54:25 -04:00
Starsam80 0c24162928
Qt: Use TitleDatabase for better names in the game list 2017-06-06 19:00:38 -06:00
Lioncash acac2aeb9b Movie: Use std::put_time in GetRTCDisplay()
No need for a fixed buffer.
2017-06-06 20:56:04 -04:00
Lioncash e5260dee6b ec_wii: Add missing <string> header 2017-06-06 20:37:43 -04:00
Lioncash 1ffc311bf3 Core: Fix vcxproj filter
This would cause the core project to fail to load.
2017-06-06 20:29:03 -04:00
shuffle2 03c1a1e392 Merge pull request #5510 from spycrab/qt_hotkeys
Qt: Implement hotkeys
2017-06-06 16:12:52 -07:00
Michael Maltese 60f4f499e8 OpenAL: hardcode that X-Fi supports surround 2017-06-06 15:23:55 -07:00
Michael Maltese 3bfebf396a Fix OpenAL backend on macOS
OpenALStream was querying the backend for AL_EXT_float32 support (which
suceeds), but AL_FORMAT_STEREO_FLOAT32 was defined incorrectly.

Also changes OpenALStream to query for AL_EXT_MCFORMATS (multichannel
support) rather than hard-coding that it doesn't work on macOS.
2017-06-06 15:23:55 -07:00
Leo Lam c07058a4ad Don't show CPU and file related OSD messages on boot (#5533)
They have been broken since 2 years and no one has noticed,
which shows that no one really cares.

And it's arguable whether showing the CPU info is really useful.
2017-06-06 13:14:30 -07:00
shuffle2 bd489008ff Merge pull request #5560 from shuffle2/gh5
Implement slider bar present on GHWT and GH5 controllers
2017-06-06 13:12:02 -07:00
Léo Lam d50b4406a6 Boot: Restore symbol map loading 2017-06-06 16:40:00 +02:00
Léo Lam 9a3fb858f3 EXI: Always try to load IPL in GameCube mode
I don't see any reason to disable loading the IPL if bHLE_BS2 is
disabled. bHLE_BS2 should only cause us not to run the IPL, but not
skip loading it in the first place. More importantly, without always
loading it, this causes issues when trying to launch only the GC IPL
while having bHLE_BS2 = false.
2017-06-06 16:31:17 +02:00
Léo Lam d0169fe8db Boot: Re-use the disc volume
Saves some disc IO.
2017-06-06 16:31:16 +02:00
Léo Lam 6f6a18b1b0 Boot: Remove unneeded manual HLE function scan
Not needed. And the symbols would get overwritten by the symbol map
load that is just below.
2017-06-06 16:30:55 +02:00
Léo Lam 065261dbad Boot: Unify the ELF and DOL code paths
They're essentially the same. To achieve this, this commit unifies
DolReader and ElfReader into a common interface for boot executable
readers, so the only remaining difference between ELF and DOL is
how which volume is inserted.
2017-06-06 16:30:54 +02:00
Léo Lam 22992ae41e Boot: Clean up the boot code
* Move out boot parameters to a separate struct, which is not part
  of SConfig/ConfigManager because there is no reason for it to
  be there.

* Move out file name parsing and constructing the appropriate params
  from paths to a separate function that does that, and only that.

* For every different boot type we support, add a proper struct with
  only the required parameters, with descriptive names and use
  std::variant to only store what we need.

* Clean up the bHLE_BS2 stuff which made no sense sometimes. Now
  instead of using bHLE_BS2 for two different things, both for storing
  the user config setting and as a runtime boot parameter,
  we simply replace the Disc boot params with BootParameters::IPL.

* Const correctness so it's clear what can or cannot update the config.

* Drop unused parameters and unneeded checks.

* Make a few checks a lot more concise. (Looking at you, extension
  checks for disc images.)

* Remove a mildly terrible workaround where we needed to pass an empty
  string in order to boot the GC IPL without any game inserted.
  (Not required anymore thanks to std::variant and std::optional.)

The motivation for this are multiple: cleaning up and being able to add
support for booting an installed NAND title. Without this change, it'd
be pretty much impossible to implement that.

Also, using std::visit with std::variant makes the compiler do
additional type checks: now we're guaranteed that the boot code will
handle all boot types and no invalid boot type will be possible.
2017-06-06 16:27:52 +02:00
Léo Lam 4d2fb9b9ba Core: Replace BOOT_MIOS with an explicit "is MIOS" flag
I didn't know better back then, but the boot type is only supposed to
be used for the actual boot params. It shouldn't be used or changed
after booting.
2017-06-06 16:21:58 +02:00
spycrab 151ae38a56 Qt: Implement hotkeys (+ configuration) 2017-06-06 13:49:49 +02:00
Giancarlo Saraceni ef84e19d55 Implement slider bar present on GHWT and GH5 controllers 2017-06-06 04:38:20 -07:00
shuffle2 096399d371 quick UB fix for 3c0bdd74 2017-06-06 03:49:01 -07:00
Leo Lam c0495d1d11 Merge pull request #5559 from JosJuice/discio-rename
DiscIO: Remove C/I/S prefixes from class names
2017-06-06 12:47:33 +02:00
JosJuice b2af07a7b7 DiscIO: Remove C/I/S prefixes from class names
These prefixes were inconsistent with the rest of Dolphin.

I'm also renaming VolumeWiiCrypted to VolumeWii because of 1113b13.
2017-06-06 12:31:59 +02:00
shuffle2 3c0bdd7473 Merge pull request #5558 from Tilka/fix_warnings
Interpreter: simplify srawx/srawix
2017-06-06 03:28:19 -07:00
shuffle2 3d6c278892 Merge pull request #5556 from shuffle2/jloehr-FixWiimoteReportSizeOnWindows
fix wiimote report size on windows
2017-06-06 03:26:14 -07:00
Tillmann Karras 7702771d61 Interpreter: simplify srawx/srawix
This also avoids -Wint-in-bool-context warnings in GCC 7.
2017-06-06 11:05:33 +01:00
shuffle2 1113b131f2 Merge pull request #5548 from JosJuice/volume-wii-unencrypted
Reimplement support for unencrypted Wii discs
2017-06-06 01:37:52 -07:00
Shawn Hoffman 2b0c600be5 windows: make IORead return number of valid bytes according to ReportID 2017-06-06 01:21:30 -07:00
JosJuice d41bb375f1 Fix UB string comparisons
Also replacing auto& with const char* so that it's easier
to see that these strings aren't std::strings.
2017-06-06 09:02:29 +02:00
shuffle2 367fba8e06 Merge pull request #5199 from ligfx/default_gci_folder
Make EXIDEVICE_MEMORYCARDFOLDER the default for slot A
2017-06-05 21:56:04 -07:00
shuffle2 442e614021 Merge pull request #5536 from sepalani/getstring
HLE: Prevent GetStringVA to strip newlines
2017-06-05 21:31:09 -07:00
shuffle2 c8166951a0 Merge pull request #5418 from MerryMage/config-again-and-again
VideoConfig: Port to layered configuration system
2017-06-05 21:11:04 -07:00
Sepalani f28f23af1d StringUtil: StringPopBackIf added 2017-06-06 05:08:51 +01:00
shuffle2 192fec50b9 Merge pull request #5276 from ligfx/macosheadless
Add headless support on macOS
2017-06-05 20:49:02 -07:00
Sepalani 1209959012 HLE: Prevent GetStringVA to strip newlines 2017-06-06 04:31:01 +01:00
shuffle2 9a9b0eed72 Merge pull request #5552 from sepalani/hle-print-warnings
HLE_OS: Fix missing-declarations warnings
2017-06-05 20:29:31 -07:00
Sepalani 190f7cbc4f HLE_OS: Fix missing-declarations warnings 2017-06-06 04:23:54 +01:00
shuffle2 2d941ad1e7 Merge pull request #5294 from sepalani/mem-view-ascii
MemoryView: Prevent non-ascii characters
2017-06-05 20:21:02 -07:00
shuffle2 2f73bc1735 Merge pull request #5293 from sepalani/mem-ascii
MemoryView: Fix empty string
2017-06-05 20:20:24 -07:00
shuffle2 0b00477c8a Merge pull request #5311 from ligfx/mixerdpl2
AudioCommon: Move DPL2 decoding into Mixer
2017-06-05 20:09:18 -07:00
shuffle2 98eb192226 Merge pull request #5312 from ligfx/cleanupupdatedrawrectangle
RenderBase: clean up UpdateDrawRectangle
2017-06-05 20:03:56 -07:00
shuffle2 3fed604ad9 Merge pull request #4878 from ligfx/geckodownloadcodes
Move GeckoCodeDiag download logic to GeckoCodeConfig (and make it use Curl)
2017-06-05 20:00:30 -07:00
Michael Maltese 97e6ba773b Move DSP::CodesToHeader to DSPTool
It's the only place it's used, and highly-specific to DSPTool's needs.
2017-06-05 19:28:40 -07:00
Michael Maltese 1765e54ab3 DSPCodeUtil: remove GenRandomCode
It was only used in a specific DSPTool test, which was removed because
non-deterministic tests aren't really useful.
2017-06-05 19:28:40 -07:00
shuffle2 b9b3b1dc19 Merge pull request #5347 from JosJuice/do-not-translate-button-names
Don't translate button names
2017-06-05 19:05:09 -07:00
shuffle2 bc8024ed21 Merge pull request #5549 from Starsam80/qt-title
Qt: Add the version to the window title
2017-06-05 18:49:50 -07:00
shuffle2 d51be949a9 Merge pull request #5524 from ligfx/llegba
Update free DSP ROM and coefficients to support GBA ucode
2017-06-05 18:40:20 -07:00
shuffle2 cd78a7249f Merge pull request #5408 from sepalani/assemble
CodeView: Assemble menu item added
2017-06-05 18:26:33 -07:00
shuffle2 065c3d78b7 Merge pull request #5486 from sepalani/hle-print
HLE: More printf logs added
2017-06-05 17:29:13 -07:00
shuffle2 497afbffab Merge pull request #5488 from ligfx/qtreordercolumns
DolphinQt2: reorder list columns to match DolphinWX
2017-06-05 17:17:08 -07:00
shuffle2 10e54c8a8e Merge pull request #5490 from ligfx/qtcontrollergridlayout
DolphinQt2: use GridLayout for ControllersWindow
2017-06-05 17:16:27 -07:00
shuffle2 b8f2e24dd5 Merge pull request #5546 from ligfx/qtdynamicthemes
DolphinQt2: live updates to UI theme
2017-06-05 17:15:17 -07:00
Michael Maltese 6b084e21dc SettingsWindow: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese d6db515165 SettingsWindow: cleanup includes 2017-06-05 17:04:29 -07:00
Michael Maltese 4be07b4eb2 ToolBar: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese 9bdbd02efc GameListModel: update icons when theme changes 2017-06-05 17:04:29 -07:00
Michael Maltese 5a4ee87d6a DolphinQt2: Settings: emit ThemeChanged signal 2017-06-05 17:04:29 -07:00
Michael Maltese 328333dfb6 RenderWidget: hide cursor 2017-06-05 16:49:28 -07:00
Michael Maltese 833e38ed56 Settings: emit HideCursorChanged() 2017-06-05 16:49:28 -07:00
Michael Maltese 14da8232f6 ConfigManager: remove bAutoHideCursor
It's not used, and sounds like the same thing as `HideCursor`?
2017-06-05 16:49:28 -07:00
Michael Maltese 688f5ed267 DolphinQt2: move Path from toolbar to a pane 2017-06-05 16:46:10 -07:00
Michael Maltese b296393644 GameList: when list is empty, double-click to add path
Simpler than opening the Paths window, and how DolphinWX does it.
2017-06-05 16:46:10 -07:00
Michael Maltese 20f54fd9ed DolphinQt2: add DoubleClickEventFilter
This is an easy way to get a `doubleClicked` signal for any type
of widget without creating custom classes for each one.
2017-06-05 16:46:10 -07:00
Michael Maltese 47e8cb97b4 DolphinQt2: move path signals from PathDialog to Settings 2017-06-05 16:46:10 -07:00
Michael Maltese 548522877a DolphinQt2: make Settings a singleton
With this, we can get signals when properties change.
2017-06-05 16:46:10 -07:00
shuffle2 95ef785b1f Merge pull request #5537 from sepalani/hle-print-addr
HLE: Improve HLE_GeneralDebugPrint detection
2017-06-05 15:06:55 -07:00
Starsam80 e04480e5f5
Qt: Add the version to the window title 2017-06-05 12:36:30 -06:00
JosJuice 69f01bac39 Reimplement support for unencrypted Wii discs
You may want to read the PR #2047 comments before reading this.

Dolphin attempts to support an unencrypted type of Wii discs
that apparently is identified by a 4-byte integer at 0x60
being non-zero. I don't know what discs (if any) would be
using that format, so I haven't been able to test Dolphin's
support for it, but it has probably been broken for a while.

The old implementation is very short but also strange.
In CreateVolumeFromFilename, we read a 4-byte integer from
0x60, and if it's non-zero, we create a CVolumeGC object
instead of a CVolumeWiiCrypted object. This might seem like
it makes no sense, but it presumably worked in the past
because IsVolumeWiiDisc used to check the volume type by
reading the magic word for Wii straight from the disc,
meaning that CVolumeGC objects representing unencrypted Wii
discs would be treated as Wii discs by pretty much all of
Dolphin's code except for the volume implementation code.
(It wasn't possible to simply use CVolumeWiiCrypted, because
that class only handled encrypted discs, like the name says.)

However, that stopped working as intended because of ace0607.
And furthermore, bb93336 made it even more broken by making
parts of Dolphin expect that data read from Wii discs needed
to be decrypted (rather than the volume implementation
implicitly deciding whether to decrypt when Read was called).
Disclaimer: Like I said before, I haven't been able to test
any of this because I don't have any discs that use this
unencrypted Wii disc format, so this is all theoretical.

Later, PR #2047 tried to remove Dolphin's support for
the unencrypted Wii disc format because seemingly no
discs used it, but the PR got closed without being merged.
At the end of that PR, I said that I would make a new PR
with a better implementation for the format after PR #2353
was merged. Now that PR #2353 is merged (two years later...)
and PR #5521 is merged, the new implementation was easy to
make, and here it is!

Untested.
2017-06-05 14:54:37 +02:00
JosJuice c3fa0d6edf DiscIO: Use std::optional in Volume and Blob 2017-06-05 13:26:51 +02:00
Leo Lam e23cfc2965 Merge pull request #5543 from leoetlino/manual-reformat
Fix minor formatting issues
2017-06-05 12:14:22 +02:00
JosJuice 886cb26827 Merge pull request #5523 from dolphin-emu/revert-5448-master
Revert "GeckoCode: install code handler even if no codes are activated"
2017-06-05 09:02:30 +02:00
Léo Lam d9fd056803 Fix minor formatting issues
These were not caught by the lint script while it was broken.
2017-06-05 02:32:19 +02:00
Starsam80 e1ea6805a7
Qt: Remove booting from the last path 2017-06-04 14:43:41 -06:00
Sepalani ba5cb50afc HLE: Improve HLE_GeneralDebugPrint detection 2017-06-04 20:53:14 +01:00
Léo Lam 2e06756f2d Fix SetRunningGameMetadata not being called for GC titles
GC titles don't have a title ID, so this regression would cause
SetRunningGameMetadata to never be called for GC titles.
2017-06-04 18:27:52 +02:00
Leo Lam 4e584ec039 Merge pull request #5534 from JosJuice/dont-bind-no-filesystem
DolphinWX: Don't bind context menu when GC filesystem is invalid
2017-06-04 15:02:32 +02:00
Leo Lam 145483d9a2 Merge pull request #5529 from leoetlino/bios-ipl
WX: Replace 'BIOS' with 'IPL' and 'Main Menu' in user-facing strings
2017-06-04 15:01:49 +02:00
JosJuice d664c454a4 DolphinWX: Don't bind context menu when GC filesystem is invalid
If this isn't done, it's possible to select Extract All Files
and make Dolphin dereference a nullptr m_filesystem.
2017-06-04 14:30:40 +02:00
JosJuice 2ce9281f77 Don't show FST size in game properties
Normal users don't care about it. In fact, people care so
little about it that the Wii implementation of it was broken
starting from when it was implemented (eb65601) to 7 years
later (e0a47c1), apparently without anyone reporting it.
2017-06-04 14:20:20 +02:00
Léo Lam 3daf7c3f8e WX: Change GC IPL to GC "Main Menu"
That is the official term used by Nintendo.
2017-06-04 13:20:37 +02:00
Leo Lam 6065525887 Merge pull request #5521 from JosJuice/check-has-partitions
Check for existance of partitions instead of disc type when appropriate
2017-06-04 10:46:59 +02:00
Leo Lam d90d3d7f3c Merge pull request #5519 from JosJuice/titledatabase-japanese
TitleDatabase: Allow showing Japanese names for Japanese GC games
2017-06-04 10:31:45 +02:00
Léo Lam 94bb55cef0 WX: Replace 'BIOS' with 'IPL'
It's not really a BIOS.
2017-06-04 10:20:16 +02:00
Leo Lam a33d48dd0d Merge pull request #5526 from ligfx/fixqtc++17
CMake: make Qt work when using a manual "-std=c++##" flag
2017-06-04 10:10:54 +02:00
JosJuice 703858e217 Merge pull request #5522 from leoetlino/simpler-gettitleid
DiscIO: Use std::optional for GetTitleID instead of pointer
2017-06-04 08:57:36 +02:00
shuffle2 a2bd95a08e Merge pull request #5432 from sepalani/fd-table
IOS/Network: Emulate socket fd table
2017-06-03 21:58:41 -07:00
Sepalani 140969000e IOS/Network: Fix some error return values 2017-06-04 05:48:41 +01:00
Sepalani 3b217adc5e IOS/Network: Use Wii's fd in logs rather than host's fd 2017-06-04 05:48:40 +01:00
Sepalani 55a59421d9 IOS/Network: Handle SO_ENETRESET 2017-06-04 05:48:38 +01:00
Sepalani 3b48e613e5 IOS/Network: Handle SO_ENOMEM 2017-06-04 05:48:36 +01:00
Sepalani a3c4070d91 IOS/Network: Handle SO_EPROTOTYPE 2017-06-04 05:48:31 +01:00
Sepalani b327fd8b2c IOS/Network: Handle SO_EMFILE 2017-06-04 05:47:56 +01:00
Sepalani ef20e85661 IOS/Network: Handle SO_EPROTONOSUPPORT 2017-06-04 05:47:48 +01:00
Sepalani 1c18dc48c7 IOS/Network: Handle SO_EAFNOSUPPORT 2017-06-04 05:44:48 +01:00
Sepalani 5a9e61997c IOS/Network: Emulate socket fd table 2017-06-04 04:26:25 +01:00
Shawn Hoffman 43dbb635d5 msbuild: remove more meaningless stuff 2017-06-03 18:20:41 -07:00
Shawn Hoffman 09367c8c10 msbuild: remove more duplicate code 2017-06-03 18:20:41 -07:00
Shawn Hoffman 7431dd3dce msbuild: make Externals inclusion methods uniform 2017-06-03 18:20:41 -07:00
Shawn Hoffman a6c102ba5c msbuild: remove extra zlib include from UICommon 2017-06-03 18:20:41 -07:00
Shawn Hoffman a3caa14ade remove duplicate code in msbuild files 2017-06-03 18:20:40 -07:00
Shawn Hoffman 397720a9fe might as well update yet some more pointless version numbers.. 2017-06-03 18:20:40 -07:00
Shawn Hoffman c251311b02 DolphinQt: remove I_AM_BUILDACUS as the buildbot doesn't use it anymore 2017-06-03 18:20:40 -07:00
Shawn Hoffman ddae5058e9 msbuild: increment other version numbers to vs2017 equivalents 2017-06-03 18:20:39 -07:00
Shawn Hoffman b116e05abe [windows] Do not copy cpack_package_description.txt to output dir 2017-06-03 18:20:39 -07:00
Tilka 78c0e8c809 Merge pull request #5513 from leoetlino/dns-timeout
Analytics: Don't crash when a DNS resolve times out
2017-06-04 01:21:44 +01:00
Michael Maltese c520a53b07 CMake: make Qt work when using a manual "-std=c++##" flag
Based on approach in https://gitlab.kitware.com/cmake/cmake/issues/16468
2017-06-03 17:02:54 -07:00
Michael Maltese 14c3d4716f AudioStretcher: split StretchAudio into ProcessSamples / GetStretchedSamples 2017-06-03 16:54:00 -07:00
Michael Maltese 87a467fe42 AudioCommon: extract AudioStretcher class for time-stretching 2017-06-03 16:54:00 -07:00
Michael Maltese a4508e85e8 AudioCommon: move DPL2 decoding into Mixer 2017-06-03 16:53:59 -07:00
Lioncash 5862d1fc41 Device: Provide operator!= counterparts to operator== for DeviceQualifier
Makes comparison logic symmetric
2017-06-03 19:34:35 -04:00
Michael Maltese e3531d17d7 Update free DSP ROM and coefficients to support GBA ucode
- coef: Explicitly set 23 different values that are used by GBA UCode,
  and tweaked overall parameters to more closely match those 23 values.
- irom: Moved a few functions to their proper places, updated BootUCode
  to configure DMA transfers using AX registers as well as IX registers
  (the GBA UCode uses this to do two sequential transfers in one call),
  and added partial functions used by GBA UCode.

All functions were reverse-engineered solely based off of observed
effects on the virtual machine: register states before-and-after, dmem
interactions, and DMA transfers. The specific coefficients were observed
being read from dmem, and must be exactly those values to function
properly. I have no knowledge of how the official ROM implements these
functions, or how it is implemented overall.

Tested with The Legend of Zelda: Four Swords Adventures, Final Fantasy
Crystal Chronicles, and Billy Hatcher and the Giant Egg (to download
ChuChu Rocket!).
2017-06-03 15:16:39 -07:00
Michael Maltese 2267ddeb17 DSPAssembler: fix handling of P_REG1C
`P_REG1C` had the same value as `P_ACCL`, so was causing spurious errors
when used with ACCM registers. Gcdsptool (which calls this `P_ACCLM`)
gives it the value `P_REG | 0x1c10` instead, and handles errors in the
same block as other REG## enums.
2017-06-03 15:16:39 -07:00
Leo Lam dda42c3c92 Revert "GeckoCode: install code handler even if no codes are activated" 2017-06-03 22:52:42 +02:00
Sepalani ac51c80ad0 HLE: Log (v)fprintf messages 2017-06-03 21:05:14 +01:00
Sepalani 2989c0cb61 HLE: Log (v)dprintf messages 2017-06-03 21:05:13 +01:00
Sepalani 9f6d6e6921 HLE: HLE_GeneralDebugVPrint added 2017-06-03 21:03:44 +01:00
Sepalani 061dadbc61 HLE: SVR4 VAList struct added 2017-06-03 21:01:59 +01:00
Sepalani 5a4f085c10 HLE: VAList cleanup and SystemVABI namespace 2017-06-03 21:01:59 +01:00
Sepalani e9dd0072de HLE: Variable Argument Lists support 2017-06-03 21:01:58 +01:00
Leo Lam 4b53093acb Merge pull request #5520 from sepalani/write-console
HLE: Fix __write_console implementation
2017-06-03 22:00:23 +02:00
Léo Lam 1a17c02d6f DiscIO: Use std::optional for GetTitleID instead of pointer
This makes the interface slightly cleaner and a bit more consistent
with the other getters. Still not fully the same, since the others
don't really handle failures with std::optional; but at least the
value is returned by value now, as opposed to having the function
take a pointer to a u64.
2017-06-03 21:56:33 +02:00
Leo Lam 227bc3816f Merge pull request #5517 from leoetlino/more-reliable-shutdown
More reliable shutdown
2017-06-03 21:33:43 +02:00
Leo Lam bcc85f9f4d Merge pull request #5516 from leoetlino/drop-last-filename
Drop m_LastFilename
2017-06-03 21:32:04 +02:00
Sepalani 9b2cc62393 CodeView: Assemble menu item added 2017-06-03 20:21:25 +01:00
JosJuice ce012ee3f4 FilesystemPanel: Remove strange disc type check
I don't know what the point of this was.
(Workaround for some old bug that we don't have anymore?)
2017-06-03 21:19:11 +02:00
JosJuice 24192671f9 DVDInterface: Remove useless disc type check 2017-06-03 21:19:11 +02:00
JosJuice 6661492989 Check for existance of partitions instead of disc type when appropriate
This gets rid of some assumptions that non-DiscIO code was making about
volume types. It's better to encapsulate as many of the volume type
differences as possible in DiscIO.

Made possible by PR #2353.
2017-06-03 21:19:11 +02:00
Leo Lam fbad958f03 Merge pull request #5518 from JosJuice/replace-weird-brace-thingy
Replace {{}} with {}
2017-06-03 21:16:36 +02:00
Sepalani 2afa546551 HLE: Fix __write_console implementation 2017-06-03 20:06:31 +01:00
JosJuice f71fcd38bd TitleDatabase: Check game ID length before reading characters 2017-06-03 20:46:57 +02:00
JosJuice 4493b1324b TitleDatabase: Allow showing Japanese names for Japanese GC games 2017-06-03 20:46:30 +02:00
MerryMage b6a99e1b9c IsSettingSaveable: Allow GFX settings to be saved 2017-06-03 18:13:04 +01:00
MerryMage f5f45855f0 GameConfigLoader: Add GFX Game INI translations 2017-06-03 18:13:02 +01:00
MerryMage d75b536fd7 Config: Add GFX ConfigInfo 2017-06-03 18:11:58 +01:00
MerryMage 332747857e GameConfigLoader: Empty INI to location map 2017-06-03 18:11:57 +01:00
MerryMage 1e766ab490 Config: Add layers CommandLine and CurrentRun 2017-06-03 18:11:57 +01:00
MerryMage 41afe78a44 Config: Integrate 2017-06-03 18:11:57 +01:00
MerryMage 1548a15c68 Config: Implement Get and Set 2017-06-03 18:11:56 +01:00
MerryMage 6151bc1714 Config: Extract layer search order to header 2017-06-03 18:11:56 +01:00
MerryMage 57264022ce ConfigLoaders: Temporarily not save all settings 2017-06-03 18:11:56 +01:00
MerryMage b3197d8dce Config: Extract ConfigLocation 2017-06-03 18:11:56 +01:00
MerryMage 827972b810 Config: Extract ConfigLocation 2017-06-03 18:11:55 +01:00
Léo Lam 546181c457 WX: Clear m_is_game_loading at the proper moment
This should happen after the core has stopped (OnStopped), not when
the user wants to stop (DoStop).
2017-06-03 19:05:35 +02:00
Léo Lam 52f00603e2 Core: Use RAII for EmuThread shutdown
This is more reliable, as this guarantees subsystems will be
shut down in the same order they were initialised (if they were
initialised). It also allows us to stop keeping track of what needs to
be shut down manually and just return in case of errors.

This should prevent the emulator from getting totally stuck when
the boot process does fail.
2017-06-03 19:05:35 +02:00
Leo Lam 5d6074f157 Merge pull request #5366 from sepalani/set-sym-size
CodeView: Set Symbol Size/End Address added
2017-06-03 19:00:45 +02:00
Leo Lam 6d38f153d6 Merge pull request #5515 from leoetlino/import-ticket
IOS/ES: Move ImportTicket write function
2017-06-03 18:40:52 +02:00
JosJuice 1c926dcae2 Replace {{}} with {}
IIRC we were only using {{}} because {} used to cause errors
on the FreeBSD buildbot.
2017-06-03 18:14:22 +02:00
Léo Lam 6e02af1b34 Core: Remove unneeded config save
We don't touch the user config during booting, so there is nothing to
manually save.
2017-06-03 18:08:50 +02:00
Léo Lam 677640ac52 Drop m_LastFilename
This makes it hard to support different boot params for different boot
types. We should not be making the assumption that Dolphin will
always be booting directly from a file (and in particular, only
using a string).

It's incompatible with future changes that will allow Dolphin to boot
a NAND title properly from well, the NAND, as opposed to booting from
WADs. (And no, treating the title TMD as a "bootable" path doesn't
count. Especially when that approach won't work with NAND images
or IOS LLE.)

And it's confusing to expose this functionality from the UI. It's
pretty bad for UX to change the play button's behaviour depending on
whether the user has launched something before, configured a default
file to boot, added a directory to their game paths.
2017-06-03 18:01:25 +02:00
Léo Lam 9d52ab5144 IOS/ES: Move ImportTicket write function
This commit moves the write function to where it should be (IOS),
especially when ES::ImportTicket() is the only place to use it.

Prevents misusing the ticket import function, and removes one unsafe
direct write to the NAND that does not go through IOS.

This also fixes the destination path: the session root is the one which
should be used for determining the ticket path, not the configured one.
2017-06-03 17:43:16 +02:00
JosJuice 1e5c83b3a9 Use std::optional for UpdateRunningGameMetadata 2017-06-03 14:41:09 +02:00
Léo Lam 74f636dfc4 Analytics: Don't crash when a DNS resolve times out 2017-06-03 14:09:14 +02:00
Leo Lam 4af514bb3c Merge pull request #5388 from leoetlino/optional
Add a std::optional and std::variant implementation
2017-06-03 13:21:20 +02:00
Leo Lam ccccb8463d Merge pull request #5503 from ligfx/qtelidedbutton
DolphinQt2: add ElidedButton for controller mapping buttons
2017-06-03 12:47:18 +02:00
Leo Lam 1a983bd357 Merge pull request #5500 from ligfx/qtfixsorting
Qt: fixes to GameList sorting
2017-06-03 12:46:17 +02:00
Léo Lam e38a66fe1b Common: Add a std::variant implementation
Based on https://github.com/mpark/variant (which is based on libc++).
2017-06-03 12:36:24 +02:00
Léo Lam 62d08e2d17 DiscIO: Fix the wrong NAND root being used
The whole NANDContentLoader stuff is truly awful and will be removed
as soon as possible.

For now, this fixes a bug that was exposed by std::optional::operator*.
2017-06-03 12:36:24 +02:00
Léo Lam 545006f666 Use std::optional for ESFormats/SharedContentMap 2017-06-03 12:36:24 +02:00
Léo Lam b08653d69d Common: Add a std::optional implementation
std::optional makes a few things a bit neater and less error prone.
However, we still cannot use C++17 (unfortunately), so this commit
adds an implementation of std::optional that we can use right now.

Based on https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/lib/gtl/optional.h
which seems to be fairly similar to C++17's <optional> and standards
compliant. It's one of the few implementations that handle propagating
type traits like copy constructibility, just like libc++/libstdc++.
2017-06-03 12:36:24 +02:00
shuffle2 3443454ba2 Merge pull request #5271 from JosJuice/allow-aslr
Allow (but don't force) ASLR
2017-06-02 21:53:02 -07:00
shuffle2 0b63fcc78f Merge pull request #5505 from spycrab/wx_stars
Wx: Implement new, themed stars
2017-06-02 18:44:48 -07:00
spycrab 1d8ba6f865 Wx: Implement new, themed stars 2017-06-02 22:38:56 +02:00
Leo Lam 93020f6c1b Merge pull request #5509 from ligfx/qtshutdowncontrollers
MainWindow: shutdown different input interfaces
2017-06-02 22:08:53 +02:00
Sepalani 5e4986d835 IP/Top: Properly fix GetAddrInfo 2017-06-01 17:05:12 +01:00
Sepalani 726d8de16c IP/Top: Fix GetAddrInfo written socket 2017-06-01 15:17:59 +01:00
Michael Maltese 040bddafa6 MainWindow: shutdown different input interfaces
`MainWindow` initializes a number of input interfaces but never shuts
them down. This was causing a crash-after-exit on macOS where the
ControllerInterface backend stores a `std::thread` object in a static
variable and only stops it when ControllerInterface::Shutdown is called.
2017-05-31 21:14:55 -07:00
Michael Maltese 8bbe4a0743 DolphinQt2: allow resizing RenderWidget/fix fullscreen 2017-05-31 21:14:41 -07:00
Michael Maltese 87a74ca3ae MappingButton: remove unused includes 2017-05-31 01:17:33 -07:00
Michael Maltese 046c6f468f MappingButton: derive from ElidedButton 2017-05-31 01:17:33 -07:00
Michael Maltese b378ffb4ec MappingButton: don't set text twice in constructor 2017-05-31 01:17:33 -07:00
Michael Maltese 07c90bed08 DolphinQt2: add QtUtils/ElidedButton 2017-05-31 01:17:33 -07:00
spycrab 118e90ec6e Qt: Use new, themed rating stars 2017-05-31 05:50:37 +02:00
Anthony 25f24d32ff Merge pull request #5463 from spycrab/qt_hidpi
Qt: Fix HiDPI icon scaling
2017-05-30 14:57:05 -07:00
spycrab 1737e81b16 Qt: Fix HiDPI icon scaling 2017-05-30 22:42:21 +02:00
iwubcode 1b685bcde9 Fix for loop in D3D Renderer ApplyState function 2017-05-29 23:32:32 -05:00
Michael Maltese 1a7210aa74 GameListModel: provide Qt::InitialSortOrderRole for sorting
Fixes regression where pixmap columns can't be sorted by default.
2017-05-29 17:32:40 -07:00
Michael Maltese 8bbc31e0a2 GameList: sort case-insensitively 2017-05-29 17:32:40 -07:00
Michael Maltese 051cbf1962 GameListModel: invert role-column choice tree 2017-05-29 17:32:40 -07:00
Michael Maltese 0cc88342d6 DolphinQt2: add indentation back to ControllerWindow 2017-05-29 17:29:04 -07:00
Michael Maltese cb235cf142 DolphinQt2: use GridLayout for ControllersWindow
FormLayout is not intended for this sort of dialog:

> QFormLayout is a convenience layout class that lays out its children
> in a two-column form. The left column consists of labels and the right
> column consists of "field" widgets (line editors, spin boxes, etc.).
2017-05-29 17:29:03 -07:00
Leo Lam 1afb0a134d Merge pull request #5497 from sepalani/getaddrinfo
IP/Top: Use a constant for addrinfo size
2017-05-29 22:39:33 +02:00
Leo Lam c76335eaf1 Merge pull request #5484 from BhaaLseN/permissive
Windows: Enable MSVC Standards Conformance (/permissive-)
2017-05-29 22:29:44 +02:00
Sepalani e90404a4f6 IP/Top: Use a constant for addrinfo size 2017-05-29 21:00:22 +01:00
Leo Lam 5d7f4cb9c8 Merge pull request #5496 from spycrab/qt_fixtheme
Qt: Fix GetThemeDir()
2017-05-29 18:33:56 +02:00
spycrab 845cc68bba Qt: Fix HiDPI icon scaling 2017-05-29 13:52:01 +02:00
shuffle2 c8f9900d26 Merge pull request #5495 from Tilka/gamelist
WX: improve game list reload speed
2017-05-28 22:03:38 -07:00
Lioncash d6b6b070bc D3D/Render: Get rid of undefined behavior in Create3DVisionTexture
pSysMem is of the type const void* -- because of this, it makes the
original delete[] call undefined behavior, as deleting a void pointer is
undefined behavior.

Also punning types into existence, like what was done for the stereo
image header is undefined behavior as well. The proper way to do this is
to either manually add all individual bytes manually, or memcpy the
struct into memory.

As we want to deallocate the memory before returning, and because
pSysMem is a const void*, we keep a unique_ptr to the data and just pass
pSysMem a raw pointer to the data.
2017-05-28 23:28:00 -04:00
Lioncash 278e406f0b D3D/Render: Use std::array where applicable 2017-05-28 23:28:00 -04:00
Lioncash 0c3958bbe5 D3D/Render: Join variable with declaration 2017-05-28 23:27:59 -04:00
Lioncash 3ee447e5f7 D3D/Render: Get rid of unnecessary casts 2017-05-28 23:27:59 -04:00
Lioncash ba5b215c42 D3D/Render: Mark translation unit local variables as static 2017-05-28 23:27:59 -04:00
Tillmann Karras 5c08b1d704 WX: improve game list reload speed
When loading a big game list, this eliminates the long delay after the
progress dialog disappears.
2017-05-28 23:02:03 +01:00
Tillmann Karras 599774aacc Qt2: remove unused variables 2017-05-28 23:01:41 +01:00
Leo Lam 4d0f458f2f Merge pull request #5494 from leoetlino/file-selector
WX: Minor file selector fixes
2017-05-28 20:24:17 +02:00
Léo Lam d5e397aa14 WX: Add dff to the file selector filter description 2017-05-28 19:08:24 +02:00
Léo Lam 473f90c08f WX: Remove .tmd from the file selector filter
No idea why it was in the whitelist.
2017-05-28 19:07:12 +02:00
BhaaL 072c161445 upgrade to Windows SDK 10.0.15063.0
this is required for /permissive- to work, because some headers in the
Windows SDK use Microsoft extensions that are not allowed in standards mode
2017-05-28 13:37:31 +02:00
Lioncash 3e7af2a2cd CubebStream: Add missing <vector> include 2017-05-27 23:50:39 -04:00
Michael Maltese d416cbd9ed Add CubebUtils namespace and hook up cubeb logging 2017-05-27 18:28:57 -07:00
Michael Maltese 34ad1eb547 Externals: remove PortAudio 2017-05-27 18:28:57 -07:00
Michael Maltese 48d6168c99 EXI_DeviceMic: use Cubeb instead of PortAudio 2017-05-27 18:28:56 -07:00
Michael Maltese f6e1da0dc0 AudioCommon: add Cubeb backend 2017-05-27 18:28:56 -07:00
Michael Maltese 17f4413143 Externals/cubeb: add Visual Studio build files 2017-05-27 18:28:56 -07:00
Mat M 7192226971 Merge pull request #5474 from sepalani/bl-fix
CodeView: Fix missing bl details
2017-05-27 17:40:18 -04:00
Mat M 7b70fce79b Merge pull request #5476 from ligfx/ffmpegbuildcleanup
CMake/MSVC: cleanups around FFMpeg
2017-05-27 17:36:55 -04:00
JosJuice 491b9d2a75 Merge pull request #5491 from ligfx/qtcontrollerremoveicons
DolphinQt2: replace icons in controllers dialog with labels
2017-05-27 10:33:36 +02:00
Leo Lam 6a7c3fcac1 Merge pull request #5487 from ligfx/removetabledelegate
DolphinQt2: don't use custom delegate for GameList
2017-05-27 10:23:40 +02:00
Michael Maltese c004b59100 DolphinQt2: replace icons with labels in controllers dialog
Icons without labels are bad for usability, so bring this back in line
with how DolphinWX does it.

Some reading:

- https://www.nngroup.com/articles/icon-usability/
  > Summary: A user’s understanding of an icon is based on previous
  > experience. Due to the absence of a standard usage for most icons,
  > text labels are necessary to communicate the meaning and reduce
  > ambiguity.
- http://uxmyths.com/post/715009009/myth-icons-enhance-usability
- http://edwardsanchez.me/blog/13589712
- https://uxdesign.cc/do-icons-need-labels-6cb4f4282c00
2017-05-26 20:09:51 -07:00
Michael Maltese a936afed9d DolphinQt2: hide GameList vertical header (the one on the left) 2017-05-26 17:43:57 -07:00
Michael Maltese 4e14a6bc96 DolphinQt2: reorder list columns to match DolphinWX 2017-05-26 17:41:35 -07:00
Michael Maltese c01c66ad4b DolphinQt2: remove unused GameList::TableDelegate 2017-05-26 17:40:51 -07:00
Michael Maltese e76f5d85b2 DolphinQt2: don't use custom delegate for GameList 2017-05-26 17:40:51 -07:00
JosJuice aa33fabded Merge pull request #5483 from leoetlino/max-tmd-size
Check TMD sizes using the actual constant
2017-05-26 23:10:31 +02:00
Leo Lam 260fd5e0f8 Merge pull request #5482 from ligfx/cmakeremoved3d12
CMake: remove references to D3D12
2017-05-26 11:30:47 +02:00
Léo Lam b5a2f34a37 Check TMD sizes using the actual constant
0x49e4 is the actual maximum TMD size (which is checked against in ES).
IsValidTMDSize is added to ESFormats to avoid duplicating the constant.
2017-05-26 11:27:43 +02:00
Leo Lam f4190ab1c4 Merge pull request #5465 from sepalani/gc-bios
Tools: Load GameCube BIOS added
2017-05-26 10:23:03 +02:00
Leo Lam 933767f1bd Merge pull request #5475 from sepalani/map-vaddr
PPCSymbolDB: Fix LoadMap corrupting virtual addresses
2017-05-26 10:21:38 +02:00
Michael Maltese e041602416 CMake: remove references to D3D12
It's gone!
2017-05-26 01:16:04 -07:00
Michael Maltese 3ca03373ae MSVC: define HAVE_FFMPEG 2017-05-26 00:53:58 -07:00
Michael Maltese 53acd25de4 Rename define HAVE_LIBAV->HAVE_FFMPEG 2017-05-26 00:53:58 -07:00
Michael Maltese d951d2e4c4 CMake: libav/ffmpeg cleanups
Use @Orphis's FindFFmpeg module from ppsspp:
2149d3db7f

From that commit:

> This new module should be able to handle both libraries in the regular
> paths and fallback to pkg-config.
> It is also able to find dynamic libraries, not just static libraries.
> It will generate imported targets with the name FFmpeg::<lib> that you
> can use in your scripts.
2017-05-26 00:53:58 -07:00
Pierre Bourdon d592bdd4d4 Migrate to Visual Studio 2017.
Auto-generated by the IDE, I'll trust it knows what it's doing.
2017-05-25 15:58:59 -07:00
Sepalani 2d75a99426 ConfigManager: GetBootROMPath added 2017-05-25 13:11:12 +01:00
Leo Lam 0f020857c5 Merge pull request #5448 from XeR/master
GeckoCode: install code handler even if no codes are activated
2017-05-25 11:16:16 +02:00
Sepalani 82695ccd99 PPCSymbolDB: Fix LoadMap corrupting virtual addresses 2017-05-24 21:08:15 +01:00
Sepalani c1afdc6f47 CodeView: Fix missing bl details 2017-05-24 20:34:23 +01:00
Léo Lam 57ce091ef5 IOS/ES: Implement ES_DeleteStreamKey (0x3d) 2017-05-24 18:16:35 +02:00
Léo Lam 90d590d1f3 IOS/ES: Implement ES_DeleteContent (0x3e) 2017-05-24 18:16:35 +02:00
Léo Lam ced049c5e8 IOS/ES: Prevent usage of ES_DiVerifyWithView for the PPC
ES_DiVerifyWithView (0x3b) is another private ioctlv that can only be
used from DI. Calling it from anywhere else returns -1017.
2017-05-24 18:16:34 +02:00
Leo Lam 98b6446249 Merge pull request #5459 from sepalani/code
PPCSymbolDB: Split SaveMap function
2017-05-24 13:59:28 +02:00
JosJuice 0408c99884 Merge pull request #5472 from leoetlino/formatting
Qt: Fix code formatting
2017-05-24 13:55:14 +02:00
Leo Lam 0d7faf8b61 Merge pull request #5471 from spycrab/qt_crash_gamestart
Qt: Fix games crashing on start
2017-05-24 13:52:00 +02:00
Léo Lam b6db4f22b5 Qt: Fix code formatting 2017-05-24 13:09:05 +02:00
spycrab d65006b91b Qt: Fix games crashing on start 2017-05-23 22:12:01 +02:00
Anthony 289005f702 Merge pull request #5379 from Ryanel/qt-settings-cpu
Qt: Copy General Tab from WX
2017-05-23 07:08:21 -07:00
Markus Wick 6a599e2796 Merge pull request #5428 from ligfx/makedspdumpconsistent
Make DSP code dumping consistent between DSP-LLE and DSP-HLE
2017-05-23 14:48:10 +02:00
Markus Wick e2d4fe6881 Merge pull request #5421 from JosJuice/load-bs2-setupbat
Use SetupBAT in Load_BS2
2017-05-23 14:40:11 +02:00
Markus Wick 4870e4119b Merge pull request #5435 from sepalani/add-function
PPCSymbolDB: Remove biased address check
2017-05-23 14:39:36 +02:00
Markus Wick e3980d4c22 Merge pull request #5450 from ligfx/dspassemblefreerom
Small cleanups of DSPAssembler and the free DSP ROM code
2017-05-23 14:36:16 +02:00
Markus Wick 3a2ec8c8a1 Merge pull request #5440 from ligfx/axhledelayinterrupt
AX-HLE: delay sending interrupt when done processing command list
2017-05-23 14:29:45 +02:00
Corwin McKnight 07dc2e17f3 Qt: Update General, Interface pane 2017-05-23 00:19:02 -07:00
Mat M 3f437337a1 Merge pull request #5466 from lioncash/db
SignatureDB: Minor cleanup
2017-05-22 21:25:36 -04:00
Mat M 4bfd464b0c Merge pull request #5468 from leoetlino/headers
Fix some header includes
2017-05-22 21:22:04 -04:00
Sepalani 95ea721f06 Tools: Load GameCube BIOS added 2017-05-22 22:44:21 +01:00
Léo Lam cf0c4455cd Fix indirect includes 2017-05-22 10:39:36 +02:00
Leo Lam f994538875 Merge pull request #5455 from leoetlino/es-get-ticket-from-view
IOS/ES: Implement ES_GetTicketFromView ioctlvs
2017-05-22 10:11:25 +02:00
Léo Lam 531378e8e6 IOSC: Fix header includes 2017-05-22 02:07:14 +02:00
Léo Lam 7bdf3d7ea7 ESFormats: Fix header includes 2017-05-22 02:06:49 +02:00
Léo Lam 6bc4cc984f TitleDatabase: Fix header includes
Remove unneeded includes, and add missing includes.
2017-05-22 02:02:04 +02:00
Lioncash 73b72c6a62 TitleDatabase: Remove unused <iostream> header
Many implementations of <iostream> inject a static constructor into the
translation unit, it's included in, even if nothing from the header is used.
2017-05-21 17:51:47 -04:00
Lioncash c3bab0b0e7 SignatureDB: Remove unnecessary header 2017-05-21 17:39:44 -04:00
Lioncash bbe1e643fb SignatureDB: in-class initialize DBFunc members 2017-05-21 17:39:42 -04:00
Lioncash d0089191e1 SignatureDB: default the format handler destructor 2017-05-21 17:39:41 -04:00
Lioncash 5301efddd0 SignatureDB: Remove unnecessary qualifiers and virtual keywords 2017-05-21 17:39:40 -04:00
Lioncash 3c94962332 SignatureDB: Move two functions into the cpp file
These are implementation details.
2017-05-21 17:39:34 -04:00
Anthony e328b13ae2 Merge pull request #5462 from spycrab/qt_refresh_devices
Qt: Fix default device handling
2017-05-21 13:29:11 -07:00
Anthony 1072da11fe Merge pull request #5460 from spycrab/qt_fix_rounding_errors
Qt: Fix rounding errors
2017-05-21 13:28:42 -07:00
Léo Lam 964f546e69 UI: Expose the "show active title" setting 2017-05-21 18:58:32 +02:00
Léo Lam cfc0cc1453 Add an option to show the active title in the title
This can be useful for figuring out at a glance what title is running,
along with its game ID / title ID.
2017-05-21 18:58:32 +02:00
Léo Lam 2f5f9be9ac WX: Use TitleDatabase for getting title names 2017-05-21 18:57:55 +02:00
Léo Lam 4a55d757dd Add a TitleDatabase
Add a TitleDatabase to allow easily querying a title database to get
a user-friendly string for a game ID.
2017-05-21 18:57:55 +02:00
Léo Lam ef5ecedded Analytics: Report game start on title change
Otherwise, we may be missing some reports.
2017-05-21 18:53:07 +02:00
spycrab 6370f094ba Qt: Fix default device handling 2017-05-21 14:47:35 +02:00
Silvan Jegen d8db6a7139 NANDImporter: fix printf warning
gcc complains that the printf %x formatting instruction expects an
'unsigned int' but we pass a 'size_t'.  We add the 'z' length formatting
specifier used for 'size_t'
2017-05-21 13:06:40 +02:00
Léo Lam 48d02f91a8 IOS/ES: Mark ioctlv 0x3f as invalid
It's not used in IOS. Looks like they just decided to skip 0x3f.
2017-05-21 12:28:30 +02:00
Léo Lam e92308fe7e IOS/ES: Implement ES_GetTicketFromView ioctlvs
This implements ioctlvs 0x40, 0x43, 0x44.
2017-05-21 12:28:30 +02:00
Leo Lam 7af05fd9e6 Merge pull request #5454 from leoetlino/es-delete-shared-content
IOS/ES: Implement ES_DeleteSharedContent
2017-05-21 12:11:48 +02:00
spycrab e8bfa2273c Qt: Fix rounding errors 2017-05-21 12:03:13 +02:00
Sepalani 56f2d523dd PPCSymbolDB: Split SaveMap function
Rewrite the code map file generation
2017-05-21 01:00:36 +01:00
spycrab 6e28f4dae6 Qt: Implement analytics (+ prompt) 2017-05-20 23:41:02 +02:00
Leo Lam dc8bc95a6b Merge pull request #5456 from JosJuice/wii-disc-formats
VolumeWiiCrypted: Use Formats.cpp more
2017-05-20 22:39:52 +02:00
Anthony 373fc58428 Merge pull request #5457 from spycrab/qt_fix_labels
Qt: Fix Wii Motioncontrol button mapping labels
2017-05-20 12:22:15 -07:00
spycrab cf747fb050 Qt: Fix Wii Motioncontrol button mapping labels 2017-05-20 21:08:31 +02:00
JosJuice 1575020c3a VolumeWiiCrypted: Get title keys from TicketReader 2017-05-20 20:44:12 +02:00
JosJuice 26f5b53ecb VolumeWiiCrypted: Get title IDs from TicketReader 2017-05-20 20:43:31 +02:00
JosJuice 5c68a03ae4 VolumeWiiCrypted: Cache TMDs and tickets 2017-05-20 20:42:44 +02:00
Anthony cf60564d84 Merge pull request #5405 from spycrab/qt_mapping_windows
Qt: Implement mapping dialogs
2017-05-20 09:28:57 -07:00
spycrab 33e111e92f Qt: Implement button mapping dialogs 2017-05-20 17:53:17 +02:00
Léo Lam 2e8e420623 IOS/ES: Implement ES_DeleteSharedContent 2017-05-20 14:46:28 +02:00
Léo Lam 1231226ad9 WX: Use the proper format specifier 2017-05-20 11:43:06 +02:00
Leo Lam 445b77f738 Merge pull request #5452 from spycrab/qt_rnd_crashes
Qt: Fix random crashes
2017-05-20 11:29:06 +02:00
Leo Lam 8b113ea06c Merge pull request #5438 from Starsam80/nand-importer-fixes
NANDImporter: Fix GUI freezing + add logging
2017-05-20 11:24:50 +02:00
spycrab a4b24ac265 Qt: Fix random crashes 2017-05-20 11:10:39 +02:00
Leo Lam 1d2b272b00 Merge pull request #5422 from MerryMage/sysconf-ini
ConfigManager: Remove load/save code to INI for SYSCONF settings
2017-05-20 10:39:58 +02:00
JosJuice e019872d62 Remove no-pie build flags 2017-05-20 09:35:53 +02:00
JosJuice 89e60a41eb MemoryUtil: 0 -> nullptr 2017-05-20 09:35:53 +02:00
JosJuice 4b4cf509f8 Remove code for only allocating low memory
This is unnecessary when we have position-independent code.
2017-05-20 09:35:53 +02:00
Michael Maltese 1683c69fb7 DSPAssembler: add WARNPC directive from xkas (technically, from asar)
This adds the WARNPC directive from xkas/asar to complement the existing ORG
directive. A common useful idiom is "WARNPC 0xXXXX\nORG 0xXXXX," which only
seeks forward and raises an error if you've already written to that part
of the file.
2017-05-19 19:53:38 -07:00
Michael Maltese a4cb691058 DSPAssembler: make ORG directive correctly seek forward
The xkas assembler says about org: "You can seek forward and backward
into a file."
2017-05-19 19:53:38 -07:00
Michael Maltese f3c8291c26 DSPAssembler: remove temporary file 2017-05-19 19:53:38 -07:00
Michael Maltese 2fad33cafe DSP-HLE: cleanup PushMail argument names 2017-05-19 19:04:06 -07:00
Michael Maltese 43c09c63d8 AX-HLE: delay sending interrupt when done processing command list
Fixes https://bugs.dolphin-emu.org/issues/10265 (Star Wars: The Clone
Wars hangs on loading screen with DSP-HLE and JIT Recompiler).

The Clone Wars hangs upon initial boot if this interrupt happens too
quickly after submitting a command list. When played in DSP-LLE, the
interrupt lags by about 160,000 cycles, though any value greater than or
equal to 814 will work. In other games, the lag can be as small as 50,000
cycles (in Metroid Prime) and as large as 718,092 cycles (in Tales of
Symphonia!).

All credit to @hthh, who put in a heroic(!) amount of detective work and
discovered that The Clone Wars tracks a "AXCommandListCycles" variable
which matches the aforementioned 160,000 cycles. It's initialized to ~2500
cycles for a minimal, empty command list, so that should be a safe number
for pretty much anything a game does (*crosses fingers*).
2017-05-19 19:04:06 -07:00
Mat M b47d44ab15 Merge pull request #5445 from JosJuice/remove-jitil
Remove JITIL
2017-05-19 21:33:38 -04:00
MerryMage df2fc3c32f ConfigManager: Remove load/save code to INI for SYSCONF settings
These settings are already loaded and saved to the SYSCONF. The INI
load/saves are redundant and do not work anyway because they are
overwritten by SYSCONF.
2017-05-19 23:57:08 +01:00
Starsam80 3229cde292
NANDImporter: Add logging 2017-05-19 16:36:06 -06:00
Starsam80 618eb9f743
NANDImporter: Use a indeterminate progress meter 2017-05-19 16:31:47 -06:00
XeR d30eb7ea70 GeckoCode: install code handler even if no codes are activated
This let users use the gecko code handler debugging protocol with existing
tools even when no gecko codes are enabled.
2017-05-19 23:54:22 +02:00
JosJuice 4dce620130 Merge pull request #5433 from leoetlino/cleanup
Drop remnants of the plugin system
2017-05-19 23:54:09 +02:00
JosJuice 256a0cf4db Remove JITIL 2017-05-19 22:21:07 +02:00
JosJuice 78effbabc6 Replace some usages of IVolume::ReadSwapped with IBlobReader::ReadSwapped
Skips needing to specify PARTITION_NONE.
2017-05-19 21:31:47 +02:00
JosJuice fcb2c5bd29 Remove CBlobBigEndianReader
We can simply put ReadSwapped directly in IBlobReader.
2017-05-19 21:23:00 +02:00
Léo Lam f96ab66d31 Drop remnants of the plugin system 2017-05-19 19:13:16 +02:00
JosJuice ac5c82b36b DiscIO: Remove VolumeCreator
This file is pretty small now that it doesn't handle Wii
partitions anymore, so let's move its contents to Volume.cpp.
This is also more consistent with how blob creation works.
2017-05-19 18:33:21 +02:00
JosJuice 56b218a750 DiscIO: Simplify volume creation
Basically inlining GetDiscType into CreateVolumeFromFilename.
2017-05-19 18:18:43 +02:00
Leo Lam bc5496e119 Merge pull request #5444 from sepalani/code
FrameTools: Prevent dummy code map to be saved
2017-05-19 16:33:40 +02:00
Sepalani 649eb43d98 FrameTools: Prevent dummy code map to be saved 2017-05-19 15:04:11 +01:00
Mat M 1880a97bb0 Merge pull request #4424 from Helios747/remove_more_features
Remove D3D12
2017-05-18 20:04:40 -04:00
Helios747 a465c483f3 Remove D3D12 2017-05-18 17:01:12 -07:00
Mat M 35a8771e68 Merge pull request #5427 from lioncash/host
Host: Get rid of Host_SetStartupDebuggingParameters()
2017-05-18 19:04:25 -04:00
Sepalani e0231d0b30 PPCSymbolDB: Remove biased address check
The appropriate check is already done by PPCAnalyst::AnalyzeFunction.
2017-05-17 19:37:27 +01:00
Tilka 8be41d3b7c Merge pull request #5437 from sepalani/ppc-ibat
PPCAnalyst: Use the proper RAM check
2017-05-17 13:28:13 +01:00
Sepalani aa65ca4b6b PPCAnalyst: Use the proper RAM check 2017-05-17 02:10:26 +01:00
JosJuice fa06d10f4a Merge pull request #2353 from JosJuice/wii-partition-cleanup
VolumeWiiCrypted: Replace ChangePartition with a partition parameter
2017-05-16 23:06:32 +02:00
JosJuice 2bcad57225 Check file system validity before reading opening.bnr
This happened to work without any problems because the only way for a
file system to be invalid was to not have the right GC/Wii magic word
in the unencrypted area, and a volume could not be created without
having the right GC/Wii magic word there. Now that file systems read
the magic word from a partition instead, a fix is needed.
2017-05-16 22:59:01 +02:00
JosJuice 639ce6c484 FileSystemGCWii: Replace m_Wii with m_offset_shift
I replaced m_OffsetShift with m_Wii in bb93336 to support
the decrypt parameter for read functions. Doing that is no
longer necessary, so m_offset_shift is now used like before.
2017-05-16 22:58:57 +02:00
JosJuice 19b8f1c10a VolumeWiiCrypted: Replace ChangePartition with a partition parameter
By removing mutable state in VolumeWiiCrypted, this change makes
partition-related code simpler. It also gets rid of other ugly things,
like ISOProperties's "over 9000" loop that creates a list of
partitions by trying possible combinations, and DiscScrubber's
volume swapping that recreates the entire volume when it needs to
change partition.
2017-05-16 22:58:15 +02:00
JosJuice 74d84c5af2 VolumeWiiCrypted: Turn m_dataOffset into a constant 2017-05-16 22:56:53 +02:00
Michael Maltese 930c165c4e DSPHWInterface: cleanup gdsp_idma_in 2017-05-15 20:33:42 -07:00
Michael Maltese 5f68a0dcdd DSP: cleanup DumpDSPCode and remove temp file write 2017-05-15 15:11:09 -07:00
JosJuice f4e8a01d16 Merge pull request #5431 from leoetlino/change-disc
DVDInterface: Fix a regression with changing discs
2017-05-15 23:57:51 +02:00
Michael Maltese 59c863329d DSP-LLE: calculate code CRC _before_ swapping endianness
- Makes DSP-LLE code checksums the same as those from DSP-HLE. I'm
  assuming DSP-HLE was doing it correctly, since there are numerous
  references to these pre-endian-swapped checksums (including in
  DSPHost.cpp itself).
- Fixes disassembly when dumping code from DSP-LLE, which was using the
  wrong endianness and giving totally bogus output.
- Reveals error messages of the format, "Bah! ReadAnnotatedAssembly
  couldn't find the file ../../docs/DSP/DSP_UC_AX_07F88145.txt," which
  seems to be intended behavior that was previously hidden.
2017-05-15 14:27:39 -07:00
Leo Lam 8e38eca150 Merge pull request #5426 from spycrab/qt_c_refreshbutton
Qt: Implement Wiimote Refresh button
2017-05-15 19:51:49 +02:00
Léo Lam c660dfcbd9 DVDInterface: Fix a regression with changing discs
We were not clearing s_disc_path_to_insert, which would cause disc
changes to be only possible once.
2017-05-15 19:20:29 +02:00
Leo Lam d2d7247ebe Merge pull request #5430 from sepalani/connect-log
IOS/Network: Log IOCTL_SO_CONNECT return value
2017-05-15 18:12:56 +02:00
Sepalani b323c8b34f IOS/Network: Log IOCTL_SO_CONNECT return value 2017-05-15 17:03:03 +01:00
Michael Maltese c67bae5491 DSP-HLE: use DumpDSPCode to de-duplicate logic (and gain disassembly)
This change centralizes all of the path handling and file writing logic
in DumpDSPCode. DSP-HLE also gains the feature of DSP-LLE to
automatically disassemble dumped code and write it to an accompanying
text file.
2017-05-15 02:38:51 -07:00
Michael Maltese f985e0faac DSP: remove unused DSPLLETools
With the relocation of DumpDSPCode to DSPCodeUtils, the only remaining
function in DSPLLETools is DumpCWCode. This function 1) is not used
anywhere (not even in DSPTool), 2) doesn't seem to really do anything,
and 3) has a single comment saying "TODO make this useful :p"
2017-05-15 02:35:56 -07:00
Michael Maltese e4c779de0b DSP: move DumpDSPCode from DSPLLETools to DSPCodeUtil
This code is useful outside of DSP-LLE, and I plan to modify DSP-HLE to
use it in a future commit.
2017-05-15 02:34:43 -07:00
Michael Maltese edb16cd399 DSP-LLE: dump code if m_DumpUCode instead of DEBUG
This change makes the behavior consistent with that of DSP-HLE.
2017-05-15 02:33:50 -07:00
spycrab 4bf9f5e835 Qt: Implement Wiimote Refresh button 2017-05-15 05:14:45 +02:00
Lioncash 7baabe99d1 Host: Get rid of Host_SetStartupDebuggingParameters()
This is something that should be the responsibility of the frontend
booting the game. Making this part of the host 'interface' inherently
requires frontends to leak internal details (much like the other
UI-related functions in the interface).

This also decouples more behavior from the debugger and the
initialization process in the wx frontend. This also eliminates several
usages of the parent menubar in the debugger code window.
2017-05-14 19:12:59 -04:00
JosJuice 1e56972e4f Make Load_BS2's MSR poking more readable 2017-05-14 23:56:19 +02:00
JosJuice a6283f6eec Use SetupBAT in Load_BS2 2017-05-14 23:56:19 +02:00
JosJuice 4726c9075f Split SetupBAT into SetupMSR and SetupBAT 2017-05-14 23:56:19 +02:00
Leo Lam ed5e98c3cc Merge pull request #5419 from leoetlino/import-code-reuse
Reuse the IOS code for WAD installation
2017-05-14 23:35:43 +02:00
Leo Lam 072b24a3d2 Merge pull request #5425 from sepalani/get-interface-opt
IP/Top: Implement GetInterfaceOpt hardcoded cases
2017-05-14 23:27:53 +02:00
JosJuice 405643b902 VolumeWiiCrypted: Use std::min 2017-05-14 22:52:21 +02:00
JosJuice 5c46810a36 VolumeWiiCrypted: Store last decrypted offset instead of block number
This makes it unnecessary to reset m_last_decrypted_offset
when changing partition.
2017-05-14 22:52:21 +02:00
Sepalani 6ba8130e11 IP/Top: Implement GetInterfaceOpt hardcoded cases 2017-05-14 21:47:41 +01:00
JosJuice 651340826d Merge pull request #5424 from lioncash/override
MEGASignatureDB: Add missing override specifiers
2017-05-14 22:39:14 +02:00
Lioncash 198d686a41 MEGASignatureDB: Add missing override specifiers 2017-05-14 16:20:45 -04:00
JosJuice 486de022df Don't run EmulatedBS2_Wii with VolumeDirectory
VolumeDirectory doesn't support necessities like TMDs,
so thanks to 5.0-2172 (18968ab), EmulatedBS2_Wii crashes
when the inserted disc is a VolumeDirectory.
This commit fixes that.

This commit makes our DOL booting code very similar to our
ELF booting code. One exception is that the DOL booting
code still always calls SetupBAT. (Note that EmulatedBS2_GC
calls SetupBAT even if no disc is inserted.) I'm not sure
if there's a point to the difference, but I thought I'd
better avoid changing it so that I don't break anything.
2017-05-14 22:01:36 +02:00
Leo Lam 2fca1b925f Merge pull request #4241 from JosJuice/remove-getvolume
Remove DVDInterface::GetVolume
2017-05-14 21:46:28 +02:00
JosJuice 2a2db16087 DVDInterface: Remove GetVolume
For thread safety reasons, the currently inserted volume must
only be accessed by the DVD thread (or by the CPU thread if it
calls DVDThread::WaitUntilIdle() first). After this commit,
only DVDThread.cpp can access the volume, which prevents code in
other files from accessing the volume in a non-threadsafe way.
2017-05-14 21:11:46 +02:00
Léo Lam aa3dc9a057 IOS/ES: Consider hidden channels/system menu as channels 2017-05-14 17:39:42 +02:00
Léo Lam c8bffb0153 Reuse the IOS code for WAD installation
* Less code and logic duplication.

* Fixes a bug with the data dir not being created, steps being done in
  the wrong order.
2017-05-14 15:30:42 +02:00
Léo Lam afcda22da9 DiscIO: Add GetContent() for reading content from WADs
Direct access to the WAD bytes is required to read contents with proper
padding data (since they can sometimes end up being outside of the
data app section). Allowing the whole buffer to be accessed directly
would be error prone, so this commit adds GetContent() to WiiWAD
for getting raw content data by index.
2017-05-14 15:30:42 +02:00
Léo Lam 6916a3d85b Hide non-channel WADs
These cannot be booted, so it is bad UX to show them in the UI as if
they were regular titles, and yet have different behaviour for them.

And technically, there is no reason to allow them to be used to boot
in the first place.

Another reason they should not be shown is that Dolphin fails
spectacularly with WADs that have a valid boot content index, but are
not PPC titles (e.g. IOS WADs). The only reliable way to avoid this
is to check for the title type and only show channels, just like
the Wii System Menu.
2017-05-14 15:30:42 +02:00
Léo Lam 2058f37596 IOS/ES: Implement ImportTitleCancel properly
Mistakenly used the wrong TMD to clean up the import.

The original TMD is the one that is supposed to be used when
cancelling an import, but I forgot it's in the /import directory after
starting an import.
2017-05-14 15:30:39 +02:00
Léo Lam 5587342ca1 IOS/ES: Expose title management ioctlvs
This exposes all ES title management ioctlvs to avoid duplicating IOS
code everywhere and to make it easier to reuse (since this way it's
not unnecessarily tied to the PPC IPC mechanism anymore) and unit test.

Some functions were also renamed for consistency with the other names,
*and* with official names.
2017-05-14 15:30:09 +02:00
Léo Lam f8ffcb2483 IOS/ES: Remove unused struct 2017-05-14 15:30:08 +02:00
Leo Lam ad27e90263 Merge pull request #5420 from JosJuice/elf-setupbat
Use SetupBAT in Boot_ELF
2017-05-14 15:29:27 +02:00
JosJuice 41b3b05cfe Use SetupBAT in Boot_ELF
Sigh...
2017-05-14 15:18:58 +02:00
JosJuice 5a55957741 Boot: Pass volume as argument to functions
Avoids using DVDInterface's global state in the boot process.
2017-05-14 13:29:47 +02:00
Leo Lam 690e61b997 Merge pull request #5417 from leoetlino/constructor
IOS: Fix AddCoreDevices being called twice
2017-05-13 23:20:22 +02:00
JosJuice 807e242d05 DVDInterface: Replace SetVolume functions
It's better to just let the calling code provide a volume
object instead of needing one SetVolume for each way of
creating a volume. This simplifies InsertDiscCallback and
is needed for the following commits.
2017-05-13 22:56:11 +02:00
Léo Lam adf9218e74 IOS: Fix AddCoreDevices being called twice
Also make sure m_title_id is set as soon as possible.
2017-05-13 22:14:29 +02:00
shuffle2 0f504e7a84 Merge pull request #5416 from lcsondes/d3d12-build-fix
VS2017 build fix after upgrading project
2017-05-13 13:10:02 -07:00
shuffle2 67d640bd12 Merge pull request #5376 from ligfx/fixfourswordshle
[RFC] Tweaks to Zelda-HLE to allow multiple GBA connections
2017-05-13 13:06:02 -07:00
lcsondes 94be591606 VS2017 build fix after upgrading project 2017-05-13 20:34:27 +01:00
Tilka 327180daa7 Merge pull request #5415 from MerryMage/frame-toggle-dual-core
Frame: Remove unused member function OnToggleDualCore
2017-05-13 20:15:42 +01:00
MerryMage c68c6d0f2d Frame: Remove unused member function OnToggleDualCore 2017-05-13 19:43:49 +01:00
Anthony 6cf0377ef8 Merge pull request #5386 from sepalani/ppc-analyst-target
PPCAnalyst: Fix annoyances
2017-05-13 09:03:34 -07:00
Tilka d95b82abc3 Merge pull request #5413 from leoetlino/dsphle-fixes
DSPHLE: Typo fix
2017-05-13 15:59:15 +01:00
MerryMage bd3e493695 Section: Fix Section::Get 2017-05-13 15:22:29 +01:00
MerryMage af33ae0e02 Core: Move ConfigLoaders to a ConfigLoaders filter 2017-05-13 15:22:28 +01:00
MerryMage dd9e622155 GameConfigLoader: Fix blank keys for variable sections 2017-05-13 15:22:26 +01:00
Léo Lam df63638b4a DSPHLE: Fix a typo in the savestate code
https://github.com/dolphin-emu/dolphin/pull/5306#discussion_r112840565
2017-05-13 16:08:12 +02:00
JosJuice 9e8293f5e3 Boot: Small simplifications and formatting cleanup 2017-05-13 12:13:33 +02:00
JosJuice 42370e4b5b Use console-appropriate SetupBAT when booting DOL files 2017-05-13 09:24:06 +02:00
Matthew Parlane fe71836127 Merge pull request #5409 from sepalani/vcxproj
Fix DolphinWX.vcxproj.filters
2017-05-13 14:27:38 +12:00
Tilka f77fc55568 Merge pull request #5306 from leoetlino/dsphle-ptrs
DSPHLE: Use unique_ptr for ucodes
2017-05-13 03:25:54 +01:00
Sepalani cc1f4c951f Fix DolphinWX.vcxproj.filters 2017-05-13 01:40:03 +01:00
Leo Lam ea89e8566e Merge pull request #5391 from leoetlino/delete-title-content
IOS/ES: Implement DeleteTitleContent properly
2017-05-13 00:48:28 +02:00
Leo Lam dae46fa3d2 Merge pull request #5385 from douglasjv/master
Fix for Emulator Issue #10267: Game list column sizes are being incorrectly calculated.
2017-05-13 00:41:16 +02:00
Leo Lam a44fa16601 Merge pull request #5370 from Ryanel/qt-settings-general
Qt: Add General Pane to Settings
2017-05-13 00:37:31 +02:00
Léo Lam bacf52384f IOS/ES: Implement DeleteTitleContent properly
Just like DeleteTitle, Using CNANDContentManager is overkill,
inefficient and useless. And it results in a few failures in
situations where a delete should just always work.

But here it gets bonus points, because it manages to actually use
the TMD for deleting contents, when IOS does none of that and just
deletes files ending with .app in the title content directory. :)
2017-05-13 00:34:58 +02:00
Léo Lam 12801fd722 IOS: Allow instances that are not tied to emulation
This enables constructing an IOS instance that is not tied to emulation
and that can be simply used for internal purposes (ES, FS).

NAND root initialisation was moved to IOS since we cannot rely on HW
doing that for us anymore, and technically the NAND is entirely managed
by IOS anyway.
2017-05-13 00:34:58 +02:00
Leo Lam f4e115b322 Merge pull request #5406 from JosJuice/refactor-emulatedbs2
Boot: Refactor EmulatedBS2
2017-05-13 00:31:11 +02:00
Léo Lam 8a9075ac1d DSPHLE: Use unique_ptr for ucodes 2017-05-12 23:55:13 +02:00
spycrab dd54f3c0c1 Qt: Fix Interface Pane 2017-05-12 20:56:00 +02:00
JosJuice 20f7a7a3e3 Boot: Read apploader trailer for Wii discs too
This was probably an oversight from back when the code
was duplicated between EmulatedBS2_GC and EmulatedBS2_Wii.
2017-05-12 18:49:00 +02:00
JosJuice 22c499aafe Boot: Deduplicate code by creating a RunApploader function 2017-05-12 18:00:17 +02:00
JosJuice 5e1fb1a596 Boot: Deduplicate code by creating a SetupBAT function 2017-05-12 17:53:15 +02:00
Corwin McKnight e8a214ad14 Qt: Fix how Icons are assigned in Settings Window. 2017-05-11 13:14:47 -07:00
Corwin McKnight a2d2acf741 Qt: Add General Pane to Settings
Replace SConfig references with Settings()
2017-05-11 12:40:14 -07:00
Anthony 33980d816a Merge pull request #5378 from Ryanel/qt-settings-interface
Qt: Add Interface Pane to Settings
2017-05-11 11:19:27 -07:00
Leo Lam ade0e51a78 Merge pull request #5403 from leoetlino/formatting
Config: Fix a formatting issue
2017-05-10 20:33:59 +02:00
Anthony eab243d6ee Merge pull request #5402 from spycrab/qt_gamelist_cfix
Qt: Fix that some columns are not hidden properly
2017-05-10 11:30:52 -07:00
Léo Lam 6185933d18 Config: Fix a formatting issue
Not sure why clang-format did not catch this on the lint builder, but
it definitely doesn't like the lines being too long here.
2017-05-10 17:56:09 +02:00
spycrab 4d4dc03801 Qt: Fix that some columns are not hidden properly 2017-05-10 11:04:21 +02:00
Leo Lam f1f8beef25 Merge pull request #5397 from MerryMage/do-not-cast-derived-to-base
Config/Layer: Fix accidental cast of RecursiveSection to Section
2017-05-09 23:27:46 +02:00
Léo Lam 6b8cb2ee41 IOS/ES: Handle fake-signed tickets properly
Fake-signed tickets have a bogus common key index, in which case we
must assume and use the normal common key to decrypt contents.
2017-05-09 20:58:20 +02:00
spycrab c8d0b647ac Qt: Add controller (overview) window 2017-05-09 18:49:10 +02:00
Anthony f8ca0901a7 Merge pull request #5395 from spycrab/qt_gamelist_columns
Qt: Bring Gamelist up to Wx standards
2017-05-09 08:31:31 -07:00
Douglas 3e1cc46523 Fix for Emulator Issue #10267: Game list column sizes are being incorrectly calculated.
Default column width was being used for  math related to automatic column sizing, in the case of COLUMN_SIZE the default width was -1  which resulted in an issue where an errant scrollbar would appear.
2017-05-08 17:40:42 -07:00
MerryMage 32d9428171 Config/Layer: Fix accidental cast of RecursiveSection to Section 2017-05-09 00:17:00 +01:00
spycrab 6bf7b5ff0f Qt: Bring Gamelist up to Wx standards 2017-05-08 19:03:59 +02:00
Corwin McKnight 8112c736fe Qt: Interface Pane
Adds the interface pane to Qt Settings. Very basic, just some UI
customization options.
2017-05-07 12:57:13 -07:00
Leo Lam 9f39fa2e13 Merge pull request #5380 from JosJuice/minor-text-fixes
Minor text fixes
2017-05-07 21:04:30 +02:00
JosJuice 994b4040bf NetPlaySetupFrame: Remove spaces that shouldn't be present 2017-05-07 20:55:58 +02:00
JosJuice b8721b6839 Unify memory breakpoint strings
The MemoryWindow.cpp strings should be the same as the
MemoryCheckDlg.cpp strings so that translators don't
have to translate very similar strings twice.

Also adding i18n comments. These strings are *very* easy
to misinterpret in my opinion.
2017-05-07 20:55:34 +02:00
Léo Lam 57f8520242 WX: Don't create data dir if it is missing
This is unsafe, because the NAND should not be accessed and messed with
while it is being used. In fact, this kind of inappropriate behaviour
will not be possible when we get NAND image support.

And even if there were no safety issue, there is still no reason
a *getter* function should *do* something that has lasting effects
on user data. GetWiiFSPath() should *just* return a path!
2017-05-07 18:56:54 +02:00
Léo Lam eff8c1eb48 Merge pull request #5383 from JosJuice/getwiifspath-condition
ISOFile/GameFile: Correct GetWiiFSPath condition
2017-05-07 18:48:43 +02:00
Léo Lam 71400745cc Merge pull request #5356 from sepalani/hle-app
HLE: Use a proper apploader OSReport
2017-05-07 18:45:58 +02:00
Léo Lam 18b1ee59ed Merge pull request #5389 from leoetlino/delete-title
IOS/ES: Fix DeleteTitle to not use CNANDContentManager
2017-05-07 17:14:04 +02:00
Léo Lam 131aeec580 Boot_WiiWAD: Set the UID and GID on launch
This adds code to update the PPC's UID and GID, which fixes a
regression with the system menu. Ideally, we would simply rely on IOS's
ES_Launch here and not duplicate the logic here, but we cannot do that
properly until the direct WAD launch hack is dropped, *and* until the
IOS changes that would enable internal calls are ready.

Since this fixes a semi-important regression with managing saves from
the SM, and the duplication is not too terrible, I believe it is a good
idea to get this fixed right now to avoid affecting users too much.

I do plan to fix this properly in the future.
2017-05-07 17:02:36 +02:00
Léo Lam 3cdb8fd297 IOS/ES: Fix DeleteTitle to not use CNANDContentManager
* CNANDContentManager does things that are absolutely useless. In
  particular, it parses the ticket, the TMD, reads contents, etc.
  when we only need to remove the title directory.

* This means it will fail if the ticket cannot be found, when that
  should not be the case.

* This also obviously caused DeleteTitle to be incredibly inefficient.

* We are already removing the title directory later in the function,
  as CNANDContentManager does not even delete titles correctly.
  DeleteTitle != DeleteTitleContents.
2017-05-07 16:20:41 +02:00
Léo Lam cc5b5c15ac IOS/ES: Fix a ticket validity check 2017-05-07 16:16:41 +02:00
Corwin McKnight 24657f557e Qt: Port help menu items. 2017-05-07 03:47:10 -07:00
JosJuice 9b8089bb70 ISOFile: Simplify error handling in GetWiiFSPath 2017-05-07 09:28:20 +02:00
JosJuice 55960f7feb ISOFile/GameFile: Correct GetWiiFSPath condition
This code was originally written when there only were three
possible types, but nowadays we also have the DOL/ELF type.
2017-05-07 09:27:20 +02:00
Sepalani 40c243df28 PPCAnalyst: Fix off by one instruction 2017-05-07 04:56:16 +01:00
Sepalani 93ba6aa9f2 PPCAnalyst: Function calls without link added 2017-05-07 04:55:36 +01:00
Sepalani 95d0a48759 PPCAnalyst: EvaluateBranchTarget improved 2017-05-07 04:55:36 +01:00
Mat M ef4a1f0ec7 Merge pull request #5384 from leoetlino/disable
WX: Disable NAND import when emulation is running
2017-05-06 19:38:07 -04:00
Léo Lam 6426ea2b1a WX: Disable NAND import when emulation is running
Oversight from the NAND import PR. Allowing this while Wii
emulation is running is a recipe for failure.
2017-05-07 01:30:44 +02:00
JosJuice 71d105e545 DolphinWX: Use title ID from ISOFile when possible
This skips creating volume objects, which can take a while.
2017-05-06 18:39:51 +02:00
JosJuice 40653a6607 NandPaths: Make .h function order match .cpp 2017-05-06 17:51:50 +02:00
JosJuice 36b9e3dd35 Don't duplicate code for getting paths based on title IDs
I've seen the expression (u32)(title_id >> 32), (u32)title_id
a few more times in my life than I would've liked to...
2017-05-06 17:45:08 +02:00
JosJuice 0146456af0 Don't translate button names
Since these button names are printed on all real controllers,
we should show them in the same way as they are printed on
the controllers, regardless of the user's language. It seems
like this was intended all along (except for "Start"), but the
_ markers in TASInputDlg.cpp (accidentally?) led to the button
names in the controller configs also becoming translatable.

I'm making exceptions for "L" and "R" because translators
may want to mark them in some way (for instance "L-Digital")
to clarify the difference from "L-Analog" and "R-Analog".

I'm also making an exception for START/PAUSE because it's
referred to as スタート in Japanese games.

I'm changing "Home" and "Start" to uppercase for consistency
with how Nintendo refers to those buttons, and because someone
who isn't familiar with the Latin script might not know the
connection between the lowercase and uppercase letters (most
users likely do know the connection, but we shouldn't assume it),
and because leaving "Start" as "Start" makes it "collide" with
unrelated strings, such as the string for the button that starts
a netplay session.

To rename "Start" and "Home" without breaking INI
compatibility, I added a ui_name variable like in f5c82ad.
2017-05-06 16:29:10 +02:00
Sepalani 21183db4df CodeView: Remove accelerator duplicates 2017-05-06 13:18:12 +01:00
Sepalani 960344d64d CodeView: Set Symbol End Address added 2017-05-06 13:18:11 +01:00
Sepalani 7f552581e7 CodeView: Set Symbol Size added 2017-05-06 13:18:00 +01:00
Léo Lam f4179f45b4 Merge pull request #5373 from leoetlino/delete-ticket
IOS/ES: Fix the implementation of ES_DeleteTicket
2017-05-06 13:59:11 +02:00
Léo Lam a24ad85463 Merge pull request #5332 from spycrab/wiimote_casts
Clean up Wiimote* code (comments, casts, underscore variable names)
2017-05-06 13:27:04 +02:00
spycrab c3f435287e Clean up Wiimote* code (comments, casts, variable names) 2017-05-06 12:44:56 +02:00
Markus Wick b4aaf806ec Merge pull request #5372 from JonnyH/WIP/powervr-fixes
Add a workaround for a PowerVR glsl compiler bug
2017-05-05 12:17:25 +02:00
Michael Maltese b14466b7e3 Zelda-HLE: set state to waiting when replacing ucode
Part 2/2 of a fix for using multiple GBAs in Four Swords Adventures.
2017-05-05 02:25:42 -07:00
Michael Maltese 01cc36693a Zelda-HLE: run pending commands when replacing ucode
Part 1/2 of a fix for using multiple GBAs in Four Swords Adventures.
2017-05-05 02:24:53 -07:00
Léo Lam 5fb2ad2b3a IOS/ES: Fix the implementation of ES_DeleteTicket
* It should take a ticket view, not a title ID.
* It's missing a lot of checks.
* It's not deleting tickets properly.
* It's not deleting only the ticket it needs to delete.
* It should not return -1017 when the ticket doesn't exist.
* It's not returning the proper error code when a read/write fails.
* It's not cleaning up the ticket directory if there is nothing left.

This commit fixes its implementation.
2017-05-05 00:32:58 +02:00
Léo Lam a7680a3d1a IOS/ES: Drop code handling non-RSA2048 tickets
* Supporting other ticket types makes the logic slightly more complex.

* There have been no such non-RSA2048 tickets seen during the Wii's
  lifetime.

* The Wii's IOS doesn't even have support for them.
2017-05-05 00:32:57 +02:00
Léo Lam e9571106c2 Merge pull request #5353 from spycrab/qt_contextmenu
Qt: Add missing gamelist contextmenu options
2017-05-04 23:47:21 +02:00
spycrab 2f523afc41 Qt: Add missing gamelist contextmenu options 2017-05-04 23:01:12 +02:00
Léo Lam 5088fac54b Merge pull request #5354 from leoetlino/iosc
IOS: Implement IOSC-like library (+ bug fixes)
2017-05-04 19:58:47 +02:00
Anthony dc4f8dd70b Merge pull request #5345 from JosJuice/consistent-controller-translation
Use _trans consistently for controllers
2017-05-04 09:00:41 -07:00
Jonathan Hamilton 35caf48d7d Add a workaround for a PowerVR glsl compiler bug
It seems it doesn't like negating arguments for bitops, so suff like
"var <<= (-othervar);"
fails to compile
2017-05-03 19:33:56 -07:00
Mat M f3052b7a15 Merge pull request #5318 from ligfx/cmakehidapi
CMake: clean up HIDAPI build
2017-05-03 19:54:06 -04:00
Tilka 2c817545fd Merge pull request #5368 from ligfx/bluezcmake
CMake: only look for Bluez on Linux
2017-05-04 00:32:44 +01:00
Michael Maltese 5230a8c996 CMake: only look for Bluez on Linux
Stops CMake from saying "BlueZ NOT found, disabling bluetooth support"
on other OSes. Windows, macOS, and Android support Bluetooth using other
libraries. I'm not sure if non-Linux, non-Android Unices (like FreeBSD)
need another message?
2017-05-03 15:15:47 -07:00
degasus 7389f0f55e Analytics: Set proper thread name. 2017-05-03 23:59:29 +02:00
degasus afb0beb9ab OpenGL: Mute nvidia performance warning about stalling the GPU.
They are right, our perf query implementation is terrible.
But raising a warning makes it just even slower.
2017-05-03 23:48:14 +02:00
degasus 90d551e0d1 JitArm64: Drop ps_res.
The accuracy doesn't match ppc, and worse, it doesn't set the error flags if the input is zero.

Lets stop to ship broken instructions, so right now, the interpreter is the closest one.
2017-05-03 23:48:14 +02:00
Markus Wick eaa4565e63 Merge pull request #5362 from Tilka/hash
Common/Hash: small cleanup
2017-05-03 23:44:48 +02:00
Tillmann Karras 5c93c98c05 JitArm64: fix ps_res 2017-05-03 08:02:35 +01:00
Tillmann Karras c54c49714d Arm64Emitter: add FRECPE 2017-05-03 08:02:35 +01:00
Tillmann Karras 3a13e1aa7a Common/Hash: small cleanup 2017-05-03 06:40:52 +01:00
Tillmann Karras 25f61f0329 Common/Hash: use __crc32d() intrinsic on ARM64 2017-05-03 06:40:47 +01:00
Anthony e4e37b3a82 Merge pull request #5255 from MerryMage/latency
ConfigManager: Increase default latency for OpenAL backend to 5
2017-05-02 22:18:58 -07:00
Michael Maltese 89eb019788 SignatureDB: fix prevented copy elision
Clang warning:

```
Source/Core/Core/PowerPC/SignatureDB/SignatureDB.cpp:22:17: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
    : m_handler(std::move(CreateFormatHandler(handler)))
                ^
Source/Core/Core/PowerPC/SignatureDB/SignatureDB.cpp:22:17: note: remove std::move call here
    : m_handler(std::move(CreateFormatHandler(handler)))
                ^~~~~~~~~~                            ~
```
2017-05-02 20:01:32 -07:00
Anthony ad829ec7a9 Merge pull request #5232 from MerryMage/osx-screensaver
Disable screensaver on OS X
2017-05-02 19:00:21 -07:00
Mat M 7c3905a612 Merge pull request #5140 from sepalani/signature_db
SignatureDB: Rewrite FormatHandler API
2017-05-02 19:23:46 -04:00
Mat M c51e40f92f Merge pull request #5357 from ligfx/jitintegerwarning
Jit64: fix braces warning in Jit_Integer
2017-05-02 18:44:02 -04:00
Michael Maltese f04747e910 NANDImporter: fix printf warning
Fixes warning:

```
Source/Core/DiscIO/NANDImporter.cpp:55:17: warning: format specifies type 'unsigned long' but the argument has type 'u64' (aka 'unsigned long long') [-Wformat]
                file.GetSize(), NAND_BIN_SIZE);
                ^~~~~~~~~~~~~~
1 warning generated.

```
2017-05-02 15:13:46 -07:00
Léo Lam 08f6c31287 IOS: Reuse more code for crypto operations
This changes some parts of IOS (actually just ES) to reuse more crypto
code from IOSC or Common::AES.

TicketReader still returns the title key directly as opposed to having
ES use IOSC directly to avoid duplicating the title key IV stuff.

Side effects:

* A nasty unbounded array access bug is now fixed.

* ES_Decrypt/ES_Encrypt now returns sane results for keys other than
  the SD key.

* Titles with a Korean ticket can now be decrypted properly.

And in the future, we can look into implementing ioctlv 0x3c and 0x3d
now that we have the proper "infra" for IOSC calls.
2017-05-02 23:49:22 +02:00
Léo Lam f8fb9e2d03 IOS: Implement IOSC-like API
This prevents the IOS crypto code and keys from being spread over
the codebase. Things only have to be implemented once, and can be
used everywhere from the IOS code.

Additionally, since ES exposes some IOSC calls directly (DeleteObject
and Encrypt/Decrypt), we need this for proper emulation.

Currently, this only supports AES key objects.
2017-05-02 23:49:22 +02:00
Léo Lam e01624f64b IOS: Add/move some useful enums/structs 2017-05-02 23:49:21 +02:00
spycrab f18dd7550a Qt: Fix no games at all showing up all 2017-05-02 23:42:55 +02:00
Michael Maltese b5223fb15f Jit64: fix braces warning in Jit_Integer
Fixes a warning:

```
Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp:54:45: warning: suggest braces around initialization of subobject [-Wmissing-braces]
  static const std::array<u8, 4> ovtable = {0, 0, XER_SO_MASK, XER_SO_MASK};
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            {                             }
```
2017-05-02 14:30:28 -07:00
Anthony 0031a490c1 Merge pull request #5355 from spycrab/qt_duplicate_entry
Qt: Fix gamelist updating
2017-05-02 12:52:53 -07:00
Sepalani 0f74f1ffb3 HLE: Use a proper apploader OSReport 2017-05-02 20:47:47 +01:00
Anthony d4e424fad5 Merge pull request #5272 from spycrab/master
Convert VolumeDirectory names back to SHIFT-JIS (issue #9988)
2017-05-02 11:41:53 -07:00
spycrab 7455c9bf51 Qt: Fix gamelist updating 2017-05-02 17:38:47 +02:00
JosJuice 252bb4471d Merge pull request #5350 from lioncash/frame
Frame: Normalize member names
2017-05-02 15:34:50 +02:00
Matthew Parlane e9ad0ec612 Merge pull request #5322 from ligfx/cleanfifofile
FifoPlayer: replace union structures with explicit byte padding
2017-05-02 13:16:24 +12:00
Anthony 86a8a3f656 Merge pull request #5352 from spycrab/qt_gamelist_icons
Qt: Fix platform icons
2017-05-01 14:02:40 -07:00
Pierre Bourdon e9349cf029 Merge pull request #5283 from spycrab/issue_9622
Make ENABLE_ANALYTICS=0 do something (Issue #9622)
2017-05-01 21:09:55 +02:00
spycrab e66ad018f4 Convert VolumeDirectory names back to SHIFT-JIS (issue #9988) 2017-05-01 14:08:47 +02:00
spycrab 13ca98923b Qt: Fix platform icons 2017-05-01 13:40:23 +02:00
Léo Lam 3be987be40 IOS/ES: Extend the "fake IOSes" hack to netplay/TAS
Netplay uses a blank NAND, which means that homebrew launchers like
Gecko will force users to install IOSes.

Expecting netplay users to have a proper NAND setup is unrealistic,
and we don't actually give them a good way of syncing NANDs, so
let's extend the hack to netplay/TAS until we have a better way
of dealing with the issue.
2017-05-01 11:32:27 +02:00
Lioncash 9e71031e23 Frame: Normalize member names 2017-05-01 05:13:19 -04:00
Mat M 1bad3bef4b Merge pull request #5344 from lioncash/table
MemoryWindow: Minor cleanup
2017-04-30 18:32:29 -04:00
Mat M 344767a258 Merge pull request #5336 from JosJuice/memcard-shiftjis
Fix display of Japanese text in the Memory Card Manager
2017-04-30 18:22:47 -04:00
Mat M d5534e069c Merge pull request #5334 from spycrab/wx_gamelist_cleanup
Refactor GameListCtrl
2017-04-30 18:21:50 -04:00
Mat M eb8dbe03ad Merge pull request #5349 from JosJuice/more-incorrect-trans
Remove incorrect usage of _trans
2017-04-30 18:20:19 -04:00
Mat M 4f2ecf03b3 Merge pull request #5348 from JosJuice/host-code-ip-address
Mark "Host Code:" and "IP Address:" as translatable
2017-04-30 18:19:21 -04:00
Léo Lam 8e2028e8da Merge pull request #5340 from leoetlino/ios-reorg
IOS: Convert the IOS kernel HLE code to a class
2017-04-30 18:03:32 +02:00
Léo Lam 58fe0f12a4 IOS: Reorder functions in IOS.cpp
Puts them in a more logical order.
2017-04-30 17:18:53 +02:00
Léo Lam 2fc5047d26 IOS: Convert the IOS kernel HLE code to a class
This changes the main IOS code (roughly the equivalent of the kernel)
to a class instead of being a set of free functions + tons of static
variables.

The reason for this change is that keeping tons of static variables
like that prevents us from making an IOS instance and reusing IOS
code easily.

Converting the IOS code to a class also allows us to mostly decouple
IOS from the PPC emulation.

The more interesting changes are in Core/IOS/IOS. Everything else is
mostly just boring stuff required by this change...

* Because the devices themselves call back to the main IOS code
  for various things (getting the current version, replying to a
  request, and other syscall-like functions), just like processes in
  IOS call kernel syscalls, we have to pass a reference to the kernel
  to anything that uses IOS syscalls.

* Change DoState to save device names instead of device IDs to simplify
  AddDevice() and get rid of an ugly static count.

* Change ES_Launch's ack to be sent at IOS boot, now that we can do
  this properly.
2017-04-30 17:18:53 +02:00
JosJuice 8b5980f33e Remove incorrect usage of _trans
It only marks a string for translation. It doesn't actually do anything
at runtime, so the string will always be displayed in English. Even if
we would've had a way to make the translation work, we shouldn't
translate this, because OSD doesn't support non-ASCII characters.
2017-04-30 15:15:08 +02:00
JosJuice f92331b925 Mark "Host Code:" and "IP Address:" as translatable
Also remove some spaces before colons.
2017-04-30 15:09:57 +02:00
JosJuice b248016e41 Mark "Recenter" for translation 2017-04-30 14:05:05 +02:00
JosJuice 0e93c18902 Use _trans consistently for controllers
Some strings were marked with _trans in some places but not
others. This commit adds extra _trans markers so that the
usage of _trans is consistent.

This shouldn't have any effect on which strings actually get
translated. (Note that _trans doesn't do anything at runtime.)

I also added a few new i18n comments.
2017-04-30 14:04:21 +02:00
Lioncash 683462679b MemoryWindow: Remove unused member variable 2017-04-30 06:35:59 -04:00
Lioncash 9a778786df MemoryWindow: Convert event table over to bound events
Event tables are the old method of performing event binding.
2017-04-30 06:35:41 -04:00
Lioncash aad9fd6751 MemoryWindow: Localize sizer creation code
Keeps specific UI element initialization separate from one another.
2017-04-30 06:20:26 -04:00
Lioncash 402faf3758 MemoryWindow: Make constructor explicit 2017-04-30 03:22:36 -04:00
Lioncash 7941a05a80 MemoryWindow: Add missing translation markers for UI strings 2017-04-30 03:22:35 -04:00
Lioncash 4c70f05fe0 MemoryWindow: Get rid of unnecessary std::string constructions
std::string's operator+ will handle this. Also move std::string to where
they're actually needed. There's no need to construct an unnecessary
string if the first failure case occurs.
2017-04-30 03:22:34 -04:00
Lioncash 7cf78a00eb MemoryWindow: Normalize variable naming 2017-04-30 03:22:25 -04:00
Tilka f0a89f8daf Merge pull request #5342 from sepalani/ppc-analyst-crash
PPCAnalyst: Prevent a crash when outside the RAM
2017-04-30 03:47:33 +01:00
Sepalani 2f0f63fdbc PPCAnalyst: Prevent a crash when outside the RAM 2017-04-30 02:45:10 +01:00
Sepalani 02f9c03c45 HLE: Fix apploader regression 2017-04-30 02:21:50 +01:00
Léo Lam f56a9b660d Merge pull request #5077 from ds84182/volume_directory_off_by_uno
Fix VolumeDirectory for Wii games
2017-04-29 23:57:32 +02:00
Léo Lam 4105beb999 Merge pull request #5321 from leoetlino/wad-uninstall
WX: Add the ability to uninstall WADs from the game list
2017-04-29 22:24:41 +02:00
Anthony ecf5f7d5f4 Merge pull request #4469 from sepalani/fix_xfb_debug
[HLE] Fixes XFB issues in Debug Mode
2017-04-29 12:48:53 -07:00
Anthony 4245ed8895 Merge pull request #5178 from sepalani/fix-sym-map-read
BootWiiWAD: Prevents SymbolMap loading
2017-04-29 12:48:05 -07:00
Anthony cb2e7a6cac Merge pull request #5240 from sepalani/find_handlers
PPCAnalyst: Find interrupt/exception handlers
2017-04-29 12:44:41 -07:00
Anthony 4d3a794942 Merge pull request #5238 from sepalani/ppc-analyst-rfi
PPCAnalyst: Support return from interrupt
2017-04-29 12:44:18 -07:00
Sepalani f9b4901825 MemoryView: Fix empty string 2017-04-29 20:28:49 +01:00
Sepalani f8465d08e8 MemoryView: Prevent non-ascii characters 2017-04-29 20:27:51 +01:00
Sepalani e8f52e467b PPCAnalyst: Find interrupt/exception handlers 2017-04-29 20:21:21 +01:00
Sepalani 7cee62bbb3 PPCAnalyst: Support return from interrupt 2017-04-29 20:16:31 +01:00
Sepalani dd039cd311 PPCAnalyst: Skip nop alignment 2017-04-29 20:10:52 +01:00
Sepalani 3f2f3679cd PPCAnalyst: Prevent PanicAlert due to invalid read 2017-04-29 20:08:25 +01:00
Sepalani d20a404a87 BootWiiWAD: Prevents SymbolMap loading 2017-04-29 20:00:13 +01:00
Sepalani 5f81226d8d SignatureDB: MEGA FormatHandler added 2017-04-29 19:50:21 +01:00
Sepalani 82afda94f4 SignatureDB: Use explicit construction 2017-04-29 19:50:20 +01:00
Sepalani a9b52ce91b SignatureDB: Rewrite FormatHandler API 2017-04-29 19:50:20 +01:00
Sepalani 2daf5cb86f SignatureDB: const correctness and cleanup 2017-04-29 19:50:19 +01:00
Sepalani f392e472cc [HLE] JitIL: Fixes invalid logs 2017-04-29 19:38:42 +01:00
Sepalani 5ea798b726 [HLE] Jit: Fixes invalid logs 2017-04-29 19:38:41 +01:00
Sepalani 51def492c7 [HLE] CachedInterpreter: Fixes invalid logs 2017-04-29 19:38:41 +01:00
Sepalani e0e93fc3a6 [HLE] Interpreter: Fixes invalid logs 2017-04-29 19:38:40 +01:00
Sepalani 4f9e5e1141 [HLE] Added GetFirstFunctionIndex matching the start address 2017-04-29 19:38:40 +01:00
Sepalani e259b3fa76 [HLE] Fixes XFB and invisible printf 2017-04-29 19:38:39 +01:00
Stenzek a2cba6d72f Merge pull request #5279 from stenzek/compressed-custom-textures
Native compressed custom texture support
2017-04-30 00:44:06 +10:00
Léo Lam da880c2a98 Merge pull request #5333 from leoetlino/es-functions
IOS/ES: Handle contexts properly
2017-04-29 14:06:10 +02:00
Léo Lam f8ab521e6d Merge pull request #5335 from JosJuice/clinclude-tgcblob
Fix TGCBlob.h's listing in DiscIO.vcxproj.filters
2017-04-29 13:35:26 +02:00
JosJuice d2b20f3163 Fix display of Japanese text in the Memory Card Manager 2017-04-29 11:18:08 +02:00
MerryMage d4e2529f13 JitArm64: Use CR cache 2017-04-29 09:31:28 +01:00
MerryMage a9fbf69cad JitArm64_RegCache: Implement caching of cr_val 2017-04-29 09:31:28 +01:00
Stenzek cc851c41c1 TextureCache: Move host texture utility functions to VideoCommon
The appropriate place for these would be AbstractTexture, once it is
finished.
2017-04-29 13:46:43 +10:00
Stenzek de348fc952 HiresTextures: Support loading uncompressed .DDS files
Will load files with formats RGBA8, RGBX8, BGRA8, BGRX8, RGB8.
2017-04-29 13:46:43 +10:00
Stenzek 20cbef8e9f HiresTextures: Move the maximum mip level check from DDS to main loader
This way that the mip count check occurs on .png and uncombined DDS
textures as well.
2017-04-29 13:46:43 +10:00
Stenzek a6a13f51c1 HiresTextures: Support DXT10 extended header in DDS loader 2017-04-29 13:46:43 +10:00
Stenzek 8761c8244d HiresTextures: Load full mipmap chain from DDS files
This removes the need for multiple texture files to store the mipmap
chain for a texture. As many mipmaps will be loaded as are present in
the DDS file, and any remaining mipmaps will fall back to the old
behavior.
2017-04-29 13:46:43 +10:00
Stenzek c53a60f3c3 Vulkan: Support native compressed textures 2017-04-29 13:46:42 +10:00
Stenzek 3f18c5e0f1 D3D12: Support native compressed textures 2017-04-29 13:46:42 +10:00
Stenzek 2d75c2ab10 D3D11: Support native compressed textures 2017-04-29 13:46:42 +10:00
Léo Lam c4136d0365 IOS/ES: Handle contexts properly
This changes the IOS code to handle ES contexts inside of ES, instead
of leaking out implementation details into the IPC request dispatcher.

The intent is to clarify what's shared between every single ES context,
and what is specific to an ES context. (Not much.) This should reduce
the number of static members in the ES class.

The other changes are there just because we now keep track of the
IPC FD inside of ES.

Future plans:

* After the WAD direct launch hack is dropped, the title context
  will be made a class member.

* Have proper function prototypes, instead of having every single one
  of them take ioctlv requests. This will allow reusing IOS code in
  other parts of the Dolphin codebase without having to construct
  ioctlv requests.
2017-04-28 20:20:51 +02:00
JosJuice d1b54f7697 Fix TGCBlob.h's listing in DiscIO.vcxproj.filters 2017-04-28 18:16:08 +02:00
spycrab 303b54a3a5 Refactor GameListCtrl 2017-04-28 17:35:23 +02:00
Stenzek f5d95dcc86 OGL: Use native compressed textures on supported drivers 2017-04-29 00:44:34 +10:00
Stenzek 12bde06dc3 GLExtensions: Add GL_EXT_texture_compression_s3tc 2017-04-29 00:14:23 +10:00
Stenzek f4b848949c TextureCache: Support compressed textures and pass pitch/size to upload
This also removes an extra copy of the image for custom textures.
2017-04-29 00:14:23 +10:00
Stenzek bc8a96d713 HiresTextures: Support parsing DDS files directly
This leaves DDS textures using DXT1/3/5 compressed in-memory, which can
be passed directly to the backend.
2017-04-29 00:14:23 +10:00
Stenzek 68ee4fc932 Merge pull request #5296 from stenzek/vulkan-postprocessing
Vulkan: Implement support for post-processing
2017-04-28 22:50:14 +10:00
Michael Maltese 655ab9b4e2 CMake: clean up HIDAPI build 2017-04-27 02:41:00 -07:00
Léo Lam 65d37ee2dc IOS/ES: Drop unnecessary memset for vectors
IOS doesn't do it, and we don't need it anyway, so let's not do it.
2017-04-27 00:01:26 +02:00
Léo Lam 9fc394f9c7 Merge pull request #5328 from leoetlino/wiimote-fix
Fix emulated Wiimotes
2017-04-26 23:58:53 +02:00
Léo Lam 4d42a098c3 WiimoteCommon: add static_assert for struct sizes 2017-04-26 23:53:44 +02:00
Léo Lam 6c1c8e03b8 Fix emulated Wiimotes 2017-04-26 23:30:24 +02:00
spycrab 366aeeb488 Make ENABLE_ANALYTICS=0 do something 2017-04-26 23:27:13 +02:00
MerryMage 8799f6b64f JitArm64_SystemRegisters: Fix crXXX (set 32nd bit) 2017-04-26 21:51:47 +01:00
Léo Lam 341fefd65a Merge pull request #5289 from sepalani/mem-find
MemoryWindow: Replace Search with Find Next/Previous buttons
2017-04-26 21:16:08 +02:00
Léo Lam 560c66f9c6 Merge pull request #5324 from leoetlino/build-fix
WX: Build fix
2017-04-26 20:30:51 +02:00
Léo Lam 5fa206e529 Merge pull request #5325 from spycrab/wiimote_common
Move shared Wiimote files into WiimoteCommon
2017-04-26 20:25:36 +02:00
Léo Lam 831ae6a962 CMake/WX: specify PRIVATE for target_link_libraries 2017-04-26 20:24:21 +02:00
Léo Lam fa0c61eb6d WX: Build fix
GTK2 is a dependency on Linux whenever USE_X11 is true, but we were
not linking or adding the include directory for GTK for DolphinWX.

Fixes a regression introduced by 6197d9622.
2017-04-26 20:23:12 +02:00
spycrab 823dba47f5 Move shared Wiimote files into WiimoteCommon 2017-04-26 19:30:14 +02:00
Léo Lam 33f56a84b2 Merge pull request #5319 from leoetlino/ticket-view-version
ESFormats: Fix the first field of ticket views
2017-04-26 11:24:13 +02:00
Mat M 255fd14db6 Merge pull request #5316 from ligfx/cmakewxwidgets
Various CMake cleanups for DolphinWX
2017-04-25 21:21:54 -04:00
Michael Maltese 82d0f6edb2 FifoDataFile: static_assert that structs are right size 2017-04-25 17:43:37 -07:00
Michael Maltese 6a6bfa0dbb FifoPlayer: subsume FifoFileStruct.h into FifoDataFile.cpp
There's no reason for it to be in its own file, and it's confusing.
2017-04-25 17:36:36 -07:00
Michael Maltese f9a67fbf6f FifoFileStruct: replace unions with explicit padding 2017-04-25 17:36:30 -07:00
Michael Maltese b955805b2b CMake: remove DolphinWX $DOLPHIN_EXE abstraction 2017-04-25 17:18:21 -07:00
Michael Maltese bd4ffb680c CMake: don't make DolphinWX link to dl 2017-04-25 17:18:21 -07:00
Michael Maltese c214c29b01 CMake: DolphinWX cleanup 2017-04-25 17:18:20 -07:00
Michael Maltese 6e1940c404 CMake: don't globally include wxWidgets headers 2017-04-25 17:18:20 -07:00
Léo Lam 3124f3c4d8 WX: Add the ability to uninstall WADs from the game list
Simple quality-of-life addition that allows "uninstalling" WADs
(removing the corresponding installed title) from the NAND.

The option is only enabled when the WAD can be uninstalled

The motivation for this is actually to encourage proper usage of the
WAD launch feature (installing it to the NAND first), so we can
drop the "direct WAD title launch" hack.
2017-04-25 23:34:32 +02:00
Léo Lam 1b3b7518e6 ESFormats: Fix the first field of ticket views
Looking more carefully at the IOS ticket view generation code reveals
that the first field in the TicketView struct is copied over from
the ticket version, extended to 4 bytes.
2017-04-25 20:59:40 +02:00
Léo Lam 4d52df150b Merge pull request #5317 from leoetlino/es-setuid
IOS/ES: Implement ES_SetUid
2017-04-25 20:00:28 +02:00
Léo Lam 7a615afe17 Merge pull request #5315 from sepalani/debug-pause
DoStop() shouldn't unpause in debug mode
2017-04-25 16:48:31 +02:00
Markus Wick 262adbe2bc Merge pull request #5262 from MerryMage/mfspr-arm64
JitArm64: Implement timer SPRs
2017-04-25 13:31:28 +02:00
MerryMage e3d0de7442 JitArm64: Implement timer SPRs 2017-04-25 09:20:09 +01:00
Stenzek 27ae5b8d34 VideoConfigDiag: Move post-processing shader list to post processor
The backends don't use this list at all, and since more than one
backend supports post-processing now, it's duplicate code.
2017-04-25 14:27:05 +10:00
Stenzek 417a4ca206 Vulkan: Implement post-processing backend
No new features, just parity with OpenGL.
2017-04-25 14:27:02 +10:00
Stenzek a10e8b1ef5 VideoCommon: Move the blit methods to the backend class
The parameter types will be different for each backend currently,
anyway (e.g. textures/render passes/etc).
2017-04-25 14:25:41 +10:00
Léo Lam cc40389f88 IOS/ES: Implement ES_SetUid
This implements ES_SetUid, which is used by the system menu to change
its own permissions. This is required for implementing permission
checks and proper NAND metadata support in the future.
2017-04-25 00:15:51 +02:00
Léo Lam c01fda6255 IOS: Include the UID and GID in open requests
Accuracy change. Required to implement ES contexts properly.
2017-04-25 00:11:19 +02:00
Léo Lam dd31a403db Merge pull request #5285 from spycrab/fr_9952
Make title column toggleable (Issue #9952)
2017-04-24 23:12:39 +02:00
Léo Lam 286e9b74ee Merge pull request #5309 from leoetlino/ios-uid-gid
IOS: Implement UID/GID changes for the PPC
2017-04-24 22:50:03 +02:00
Sepalani 4a55398069 DoStop() shouldn't unpause in debug mode 2017-04-24 17:32:15 +01:00
Michael Maltese 3158a5bc35 RenderBase: clean up UpdateDrawRectangle 2017-04-24 00:39:25 -07:00
Léo Lam 24d5d89056 Merge pull request #5275 from ligfx/fixhidapithread
WiimoteReal: init and destroy ScannerBackends in same thread
2017-04-24 02:31:16 +02:00
Michael Maltese 4c5e283e75 WiimoteReal: init and destroy ScannerBackends in same thread
This fixes an error condition on macOS when HIDAPI calls
IOHIDManagerCreate and IOHIDManagerClose on different threads. The
error behavior is non-deterministic, but can cause EXC_BAD_ACCES and
kill the program.
2017-04-23 17:11:27 -07:00
Tilka c6bc474c29 Merge pull request #5291 from Starsam80/fix-10221
WX: Don't specify a parent frame for the render frame
2017-04-23 23:40:32 +01:00
Tilka a8dfb32576 Merge pull request #5304 from FRtranslator/Small_rework_Audio_cfg
DolphinWX: Small rework of the Audio config dialog
2017-04-23 23:37:41 +01:00
Léo Lam dae950ff90 IOS: Implement UID/GID changes for the PPC
This will be required for permission checks in the future.

Note that this is only for the PPC as we do not have actual processes.
Keeping track of other modules' UIDs/GIDs is virtually useless anyway.

UID/GID changes are implemented in the following functions:

* ES_Launch
* ES_DIVerify

ES_SetUid is not implemented yet because it'd need further changes.
2017-04-23 23:09:44 +02:00
Tilka 8a559f2e58 Merge pull request #5307 from JosJuice/more-gfx-debug-strings
Remove more seemingly unused debug UI strings
2017-04-23 17:25:58 +01:00
Tilka 111d92c03d Merge pull request #5303 from MerryMage/DPL2Decoder
DPL2Decoder cleanup
2017-04-23 17:07:14 +01:00
JosJuice 8c2e5689ad Remove more seemingly unused debug UI strings
Same as 2052bb8 but for buttons.
2017-04-23 12:39:00 +02:00
MerryMage c9f50fd4ed DPL2Decoder: Prefer static_cast to C-style casts 2017-04-23 09:21:30 +01:00
MerryMage 4f884d0b2f DPL2Decoder: Simplify DotProduct 2017-04-23 09:21:30 +01:00
MerryMage 42a1f7939d DPL2Decoder: Prefer std::vector to calloc-ed array 2017-04-23 09:21:29 +01:00
MerryMage 71dc810418 DPL2Decoder: Make constant variables const in DesignFIR 2017-04-23 09:18:29 +01:00
MerryMage 751351fd20 DPL2Decoder: Simplify cut-off frequency logic in DesignFIR 2017-04-23 09:18:29 +01:00
MerryMage 24027c1d4a DPL2Decoder: Reduce scope of variable in DesignFIR 2017-04-23 09:18:29 +01:00
MerryMage d0e75bb438 DPL2Decoder: Remove unnecessary pointer arguments of DesignFIR 2017-04-23 09:18:28 +01:00
FRtranslator c9c68a8fd4 DolphinWX: Small rework of the Audio config dialog 2017-04-23 02:32:04 +02:00
Mat M 9090f37347 Merge pull request #5299 from FRtranslator/Tools_menu_reorder
Reorder the Tools menu, with more separators
2017-04-22 17:41:01 -04:00
Mat M 4c711de309 Merge pull request #5301 from JosJuice/delete-wxinputbase
Delete WXInputBase
2017-04-22 17:37:38 -04:00
FRtranslator a27b653d61 Reorder the Tools menu, with more separators 2017-04-22 20:59:42 +02:00
Léo Lam 8fe0befbc3 Merge pull request #5245 from JosJuice/top-on-top
Put "Top" on top of "Bottom" in the sensor bar position dropdown
2017-04-22 20:11:28 +02:00
JosJuice 26b6b78f3a Delete WXInputBase
It's unused (apparently since cf8f049). Deleting it will
lighten the load for translators.
2017-04-22 19:39:17 +02:00
MerryMage bd4cfaaed7 Jit_Integer: Use constant pool in GenerateOverflow 2017-04-22 10:15:04 +01:00
Markus Wick b5c857d14b Merge pull request #5210 from leoetlino/es-shared-contents
IOS/ES: Implement GetSharedContents (+ count)
2017-04-22 01:55:22 +02:00
Léo Lam bca9a9d4d9 Merge pull request #5113 from Starsam80/nand-import
Add BootMii NAND import functionality
2017-04-21 22:02:15 +02:00
Léo Lam b09561ece2 IOS/ES: Implement GetSharedContents (+ count)
Used by the system menu when importing a title from SD.

These are probably the last two ioctlvs used by a major title.
2017-04-21 19:30:20 +02:00
Markus Wick 1035a8b697 Merge pull request #5295 from MerryMage/ACD
ArmCPUDetect: Add missing include
2017-04-21 12:24:41 +02:00
MerryMage 73cdf9ecb5 ArmCPUDetect: Add missing include
<cstring> is required for strncpy
2017-04-21 11:03:40 +01:00
Markus Wick 207a95f4dc Merge pull request #5267 from leoetlino/more-es-ioctlvs
IOS/ES: Implement ES_DIGetTMD and ES_DIGetTMDSize
2017-04-21 11:08:05 +02:00
Markus Wick 50349098c1 Merge pull request #5292 from ligfx/setvolumeafterstart
AudioCommon: set volume _after_ starting stream
2017-04-21 10:29:21 +02:00
Mat M 4517231a1a Merge pull request #5287 from sepalani/rso
Generate Symbols From RSO Modules added
2017-04-20 20:06:03 -04:00
Sepalani 694b10da11 Generate Symbols From RSO Modules added 2017-04-21 00:32:06 +01:00
Michael Maltese c538cdcd47 AudioCommon: set volume _after_ starting stream
Fixes an error with the CoreAudio backend, which apparently doesn't
allow you to set the volume before starting the stream:

```
59:31:087 AudioCommon/CoreAudioSoundStream.cpp:97 E[Audio]: error setting volume
```

This shouldn't cause any problems with other backends, since the mixer
starts with silence anyways.
2017-04-20 02:06:42 -07:00
Michael Maltese c6a90c95be Make EXIDEVICE_MEMORYCARDFOLDER the default for slot A
The average user doesn't care, and for users who mix NTSC and PAL games
it avoids the "Memory Card is formatted for another market" message. For
non-average users, it's probably fine to have save data as separate
files anyways.

Might need some interface/string changes to explain what GCI Folder is
and why it's the default?
2017-04-19 19:18:53 -07:00
Starsam80 a41c0d3caa
WX: Don't specify a parent frame for the render frame 2017-04-19 20:06:33 -06:00
Sepalani 58e7415fe5 MemoryWindow: FindPrevious button added 2017-04-18 23:47:52 +01:00
Sepalani 5123dc2651 MemoryWindow: Replace Search with FindNext 2017-04-18 19:08:44 +01:00
Stenzek d1dc9d5a0c Merge pull request #5284 from stenzek/vulkan-videocommon-blending-state
Vulkan: Use BlendingState from VideoCommon
2017-04-18 22:16:32 +10:00
Stenzek 16a947a88b Merge pull request #5270 from stenzek/vulkan-aa
Vulkan: MSAA and frame dumping fixes
2017-04-18 21:58:14 +10:00
Stenzek fd896bd9e0 OGL: Drop BlendingState.dither
How GL_DITHER works is implementation-defined, and we handle the
non-blended case in the pixel shader.
2017-04-18 21:55:23 +10:00
Stenzek ddc5275071 VideoCommon: Drop SetDitherMode()
It was a no-op on all backends apart from GL anyhow.
2017-04-18 21:55:22 +10:00
Stenzek 9dc7358395 Vulkan: Use BlendingState from VideoCommon
Remove the internal BlendState union. Also fixes Kirby's Return to
Dreamland shadows.
2017-04-18 21:55:22 +10:00
Stenzek 34ad5b457d VideoCommon: Add usedualsrc field to BlendingState
This is because we re-use BlendingState for our internal drawing (e.g.
RasterFont) and for these shaders, we can't assume the presence of a
second color output.
2017-04-18 21:33:40 +10:00
Markus Wick 936910163a Merge pull request #5286 from lioncash/mmu
MMU: Get rid of pointer casts
2017-04-18 12:35:42 +02:00
JosJuice fd0b99be2e Merge pull request #5273 from JosJuice/android-x86-64
x86-64 support on Android
2017-04-18 09:54:04 +02:00
Markus Wick f3f9489852 Merge pull request #5277 from stenzek/glsl-token-pasting
OGL: Use struct for post-processing shader options
2017-04-18 09:37:34 +02:00
Lioncash a58d5fa8ee MMU: Get rid of pointer casts
These sort of casts invoke undefined behavior (u8, u16, u32, and u64 all have
completely different alignment requirements).
2017-04-17 20:52:57 -04:00
Lioncash 9cfc671c69 MMU: Get rid of unnecessary temporaries in HostRead_[8|16|32] functions 2017-04-17 19:13:47 -04:00
spycrab 72e92add8a Make title column toggleable (Issue #9952) 2017-04-17 19:34:14 +02:00
spycrab 01e07d7853 Lazily initialize m_main_config_dialog (Issue #10213) 2017-04-16 13:00:11 +02:00
JosJuice 9cd9ae902a x86-64 support on Android
We can do this now that the x86-64 JIT supports PIE.

JITIL is deliberately excluded from the GUI because it
doesn't support PIE yet. (JITIL will be used if it's
set in the INI, though.)
2017-04-16 11:53:33 +02:00
Mat M d22509984c Merge pull request #5252 from JosJuice/pitch-text
Update text about pitch depending on emulation speed
2017-04-16 05:48:57 -04:00
Markus Wick b6433b2ae8 Merge pull request #5266 from JosJuice/misc
Rename Misc.cpp to CommonFuncs.cpp
2017-04-16 11:44:08 +02:00
Stenzek e370f6a82a OGL: Use struct for post-processing shader options
This removes the need for token pasting, which isn't supported in GLSL
ES. Shouldn't cause any issues unless people are using reserved keywords
as option names.
2017-04-16 14:00:02 +10:00
Michael Maltese c63925dc21 AGL: small style fixes 2017-04-15 20:54:19 -07:00
Michael Maltese 4770e66811 AGL: refactor some functions 2017-04-15 20:53:47 -07:00
Michael Maltese 5298328cb1 Add headless support on macOS 2017-04-15 19:34:42 -07:00
Dwayne Slater 1b9268485c VolumeDirectory: Pass address shift to WriteEntryData as argument 2017-04-15 14:04:17 -04:00
Dwayne Slater 108d59b131 VolumeDirectory: Correctly check name_offset alignment in assert 2017-04-15 14:04:10 -04:00
Dwayne Slater ec9579ebcd Boot: When loading an FST for a Wii game, update IOS_MEM1_ARENA_END
Without doing this, Wii games loaded as an ELF will zero out the FST.
This mirrors the behavior of the actual apploader.
2017-04-15 14:03:38 -04:00
Dwayne Slater 138b0cb14e VolumeDirectory: Align the name table size up properly
If the name table isn't rounded up, a Wii game can read an incorrect
number of bytes when fetching the FST.
2017-04-15 14:03:31 -04:00
Dwayne Slater 9d633307e3 VolumeDirectory: Shift parent_entry_index by m_address_shift
Parent entrys were written correctly for GameCube (since the address
shift is 0), but not for Wii (since the address shift is 2).
2017-04-15 13:53:59 -04:00
Dwayne Slater d3e9569cf0 VolumeDirectory: Compare case-insensitive file names as uppercase, not lowercase
Fixes file ordering in games that use ASCII characters between lowercase
'z' and uppercase 'A' (underscores).

MySims Kingdom has the files "terrainLightMapTinted.shader",
"terrainLightMapTintedGrid.shader", and
"terrainLightMapTinted_no_shadow.shader". In lowercase,
"terrainLightMapTinted_no_shadow.shader" comes before
"terrainLightMapTinted.shader" and "terrainLightMapTintedGrid.shader",
which is invalid.
2017-04-15 13:53:53 -04:00
Dwayne Slater 7908302782 VolumeDirectory: Fix off-by-one in entry count calculation
The size field in FSTEntry contains the total amount of children, not
including the parent, but the parent needs to be included.

VolumeDirectory: Fix off-by-one in entry count calculation

The size field in FSTEntry contains the total amount of children, not
including the parent, but the parent needs to be included.
2017-04-15 13:52:46 -04:00
Markus Wick a389ae0711 Merge pull request #5260 from MerryMage/CheckIfSafeAddress
EmuCodeBlock: Make CheckIfSafeAddress PIE-compliant
2017-04-15 13:26:05 +02:00
Stenzek 3fd1e6c2f6 Vulkan: Ensure all frames are written before resizing framedump buffer
Prevents destroying a framebuffer that may still be in use by a previous
frame dump.
2017-04-15 20:00:40 +10:00
Stenzek 48da42b49f Vulkan: Ensure framedump texture is incorrect layout for render/readback 2017-04-15 19:57:25 +10:00
Stenzek 69b0a31938 Vulkan: Clamp framebuffer resolve rectangle to texture size
This is invalid and was causing the NVIDIA driver to throw an error.
2017-04-15 19:55:32 +10:00
MerryMage cb900106c6 IR_X86: Prefer static_cast to C-style casts 2017-04-15 10:35:40 +01:00
MerryMage 860ac52a79 IR_X86: Use PtrOffset instead of casting pointers 2017-04-15 10:35:24 +01:00
MerryMage 6d8738e6e4 IR_X86: Simplify trinary expressions 2017-04-15 10:35:01 +01:00
Markus Wick 8d4be36963 Merge pull request #5259 from MerryMage/quantload
Jit64: Make psq_lXX PIE-compliant
2017-04-15 11:20:09 +02:00
Markus Wick fb805e3acb Merge pull request #5263 from MerryMage/dcbz
Jit_LoadStore: Fix dbat memory access
2017-04-15 11:19:24 +02:00
Markus Wick 6b32c17d1b Merge pull request #5268 from MerryMage/gpfifo3
JitArm64: Fix bugs introduced by #5257
2017-04-15 11:00:04 +02:00
Stenzek eef7b6cf7a Vulkan: Fix invalid resolve at swap time when MSAA is enabled 2017-04-15 18:35:58 +10:00
Stenzek 2a91b2a4dd Merge pull request #5258 from stenzek/vulkan-out-of-range-clear
Vulkan: Fix incorrect render pass for out-of-range clears
2017-04-15 18:13:45 +10:00
MerryMage 03d07c36ae JitArm64: Reserve W30 in SafeStoreFromReg and stfXX
Bug introduced in c45028a708.

EmitBackpatchRoutine assumes that X30 is available as a temporary.
2017-04-15 08:23:14 +01:00
MerryMage 3fb886141d JitArm64_LoadStore: Fix bug in writing byte to gather pipe
Introduced by c45028a708.
2017-04-15 07:26:27 +01:00
JosJuice 2f9df072d6 Rename Misc.cpp to CommonFuncs.cpp
Because its only function is declared in CommonFuncs.h.
2017-04-15 00:41:09 +02:00
Léo Lam 183193e6ed IOS/ES: Implement ES_DIGetTMD and ES_DIGetTMDSize
Used by Metroid Prime.
2017-04-15 00:39:34 +02:00
MerryMage b792299ef1 Jit_LoadStore: Fix dbat memory access
Was broken by e10b715666
2017-04-14 14:06:13 +01:00
MerryMage daa03cd106 EmuCodeBlock: Make CheckIfSafeAddress PIE-compliant 2017-04-14 12:39:12 +01:00
MerryMage e10b715666 Jit_LoadStore: Make dcbz PIE-compliant 2017-04-14 12:33:25 +01:00
MerryMage cac77527e9 Jit64: Make psq_lXX PIE-compliant 2017-04-14 11:52:33 +01:00
Markus Wick 05fec44ff5 Merge pull request #5257 from MerryMage/gpfifo2
GPFifo: Use a pointer instead of an index
2017-04-14 12:27:51 +02:00
MerryMage c45028a708 GPFifo: Use a pointer instead of an index
This simplifies code generated by the jits.
x86_64 jit now emits PIC.
2017-04-14 10:37:47 +01:00
Stenzek c8b98dca1a Vulkan: Raise the number of texel buffer/storage image descriptors
Running with GPU texture decoding enabled could cause us to run out of
descriptors within a single frame.
2017-04-14 18:29:53 +10:00
Stenzek f4bdfe3e0c Vulkan: Fix incorrect render pass area for out-of-range clears
This occured when a game set an out-of-range EFB clear region.
2017-04-14 18:29:48 +10:00
Markus Wick 45e4a048ea Merge pull request #4708 from degasus/PIE
Jit64: Use a temporary register for memory references.
2017-04-14 09:42:45 +02:00
MerryMage f2e323de9c ConfigManager: Increase default latency for OpenAL backend to 5 2017-04-13 10:41:18 +01:00
Lioncash 8811937756 JitArm64_RegCache: Use std::array where applicable
There's no need to use std::vector for fixed enum values.
2017-04-12 22:34:34 -04:00
Markus Wick 7e40f1757e Merge pull request #5253 from ligfx/fixtextureconversionshader
TextureConversionShader: fix syntax error
2017-04-12 23:38:49 +02:00
Michael Maltese 05b4d14bf0 TextureConversionShader: fix syntax error
Fixes a situation where the following invalid GLSL code is generated:

```glsl
float3 texSample0 = texture(samp0, float3(uv0 + float2(0, 0) * sample_offset, 0.0)).rgb;
float3 texSample0 = floor(float3 texSample0 * 63.0) / 63.0;
float3 texSample1 = texture(samp0, float3(uv0 + float2(1, 0) * sample_offset, 0.0)).rgb;
float3 texSample1 = floor(float3 texSample1 * 63.0) / 63.0;
```
2017-04-12 14:23:25 -07:00
Mat M 733df23e98 Merge pull request #5251 from JosJuice/audio-backend-tooltip
Remove audio backend tooltip
2017-04-12 17:10:13 -04:00
JosJuice 741aa9d983 Update text about pitch depending on emulation speed
Now that we have an audio stretching option, it's possible to
change the emulation speed while still having the right pitch.
2017-04-12 21:03:53 +02:00
JosJuice 7d41b5874c Remove audio backend tooltip
The audio backend option automatically gets disabled when
emulation is running, so it's pointless to tell people what
would (not) happen if they changed the audio backend while
emulation is running.
2017-04-12 21:03:36 +02:00
degasus 64ccf803bd Jit64: Use a temporary register for memory references. Part 4. 2017-04-12 20:53:17 +02:00
degasus 0ddd90b539 Jit64: Use a temporary register for memory references. Part 3. 2017-04-12 20:53:17 +02:00
degasus 78b36921d2 Jit64: Use a temporary register for memory references. Part 1. 2017-04-12 20:53:17 +02:00
Markus Wick 60d8ee4916 Merge pull request #5250 from MerryMage/psq_st
Jit_LoadStorePaired: Make psq_st PIE-compliant
2017-04-12 20:52:59 +02:00
MerryMage 265f0da256 Jit_LoadStorePaired: Make psq_st PIE-compliant 2017-04-12 19:30:42 +01:00
Markus Wick 2151858fb1 Merge pull request #5241 from MerryMage/stretch
Pitch-Preserving Audio Stretching
2017-04-12 20:27:26 +02:00
MerryMage cbaa00457a Mixer: Tweak audio stretch parameters 2017-04-12 17:56:58 +01:00
MerryMage 9397fdfe95 Mixer: Use a temporary buffer when stretching audio 2017-04-12 14:58:20 +01:00
MerryMage f5018010d3 Mixer: Calculate actual_samples based on availability in all FIFOs 2017-04-12 14:58:19 +01:00
MerryMage ac0df5b2db Mixer: Disable frequency shifting when stretching is enabled 2017-04-12 13:56:29 +01:00
MerryMage 71e748b68f AudioConfigPane: Allow user-configuration of audio stretching 2017-04-12 13:56:29 +01:00
MerryMage 26514358f4 Add audio stretching as a configuration option 2017-04-12 13:56:29 +01:00
MerryMage b8c867dd7a Mixer: Implement audio stretching 2017-04-12 13:56:28 +01:00
MerryMage 5b81f2a31d Mixer: Return actual number of samples mixed into buffer from MixerFifo::Mix
No code in the codebase currently depends on the return value of this function.
2017-04-12 13:15:00 +01:00
MerryMage 6a4945090c OpenALStream: Remove audio stretching 2017-04-12 13:15:00 +01:00
Mat M 21544f8661 Merge pull request #5228 from JosJuice/why-did-this-exist
Get rid of some nonsense related to booting DOL/ELF files
2017-04-12 08:07:54 -04:00