Commit Graph

17513 Commits

Author SHA1 Message Date
Stenzek fdf2efdac6 TextureConversionShader: Add missing swap for index of C14X2 textures 2017-04-06 23:29:40 +10:00
Léo Lam 60d47eaeff IOS/ES: Return IPC_EINVAL for unknown ioctlvs
Instead of allowing unknown ioctlvs and faking success for both unknown
and unimplemented ioctlvs, which can possibly result in nasty, hard to
debug bugs (if the emulated software behaves unexpectedly), we should
reject unknown ioctlvs and log known, but unimplemented ioctlvs.
2017-04-06 15:18:23 +02:00
Léo Lam 98dea421ba IOS/ES: Block ES_DIVerify from the IPC interface
Simple accuracy change.

DIVerify is an internal ioctlv in unpatched, up-to-date IOSes,
where calling it from the PPC just returns -1017.
2017-04-06 10:38:06 +02:00
Stenzek c6075f4c36 TextureConversionShader: Fix compile error in C14X2 decoder 2017-04-06 13:59:06 +10:00
Michael Maltese d10d09ccc1 VideoCommon: rework anamorphic widescreen heuristic
Some widescreen hacks (see below) properly force anamorphic output, but
don't make the last projection in a frame 16:9, so Dolphin doesn't
display it correctly.

This changes the heuristic code to assume a frame is anamorphic based on
the total number of vertex flushes in 4:3 and 16:9 projections that
frame. It also adds a bit of "aspect ratio inertia" by making it harder
to switch aspect ratios, which takes care of aspect ratio flickering
that some games / widescreen hacks would be susceptible with the new
logic.

I've tested this on SSX Tricky's native anamorphic support, Tom Clancy's
Splinter Cell (it stayed in 4:3 the whole time), and on the following
widescreen hacks for which the heuristic doesn't currently work:

Paper Mario: The Thousand-Year Door (Gecko widescreen code from Nintendont)
C202F310 00000003
3DC08042 3DE03FD8
91EEF6D8 4E800020
60000000 00000000
04199598 4E800020
C200F500 00000004
3DE08082 3DC0402B
61CE12A2 91CFA1BC
60000000 387D015C
60000000 00000000
C200F508 00000004
3DE08082 3DC04063
61CEE8D3 91CFA1BC
60000000 7FC3F378
60000000 00000000

The Simpsons: Hit & Run (AR widescreen code from the wiki)
04004600 C002A604
04004604 C09F0014
04004608 FC002040
0400460C 4082000C
04004610 C002A608
04004614 EC630032
04004618 48220508
04041A5C 38600001
04224344 C002A60C
04224B1C 4BDDFAE4
044786B0 3FAAAAAB
04479F28 3FA33333
2017-04-05 17:23:16 -07:00
Léo Lam d8089a457f WX: Disable a few menu items when a Wii title is running
Unsafe and keeping them enabled would allow inaccurate behaviour that
can break games.
2017-04-05 20:54:48 +02:00
Léo Lam c4d5076696 Common: Add missing set(LIBS ...) for mbedtls 2017-04-05 20:54:11 +02:00
MerryMage 19eb09b086 Jit_SystemRegisters: Make mfspr PIE-compliant 2017-04-05 10:22:48 +01:00
MerryMage 38917a151d CoreTiming: Pull globals into a single struct 2017-04-05 10:22:48 +01:00
Scott Mansell 4c0a392698 Merge pull request #4715 from iwubcode/efb_copy_corruption_at_higher_ir
Add configurable toggle to round vertices to nearest pixel
2017-04-05 19:41:52 +12:00
Stenzek 27e9e469d4 Merge pull request #5206 from ligfx/fixcustomtextures
TextureCacheBase: fix custom textures not being loaded
2017-04-05 16:49:54 +10:00
Lioncash 14c81764df ControllerEmu: Replace includes with forward declarations
Replaces includes with forward declarations where applicable, and moves
includes to where they're actually needed.
2017-04-04 20:38:30 -04:00
Michael Maltese e9e3226026 TextureCacheBase: fix custom textures not being loaded
Fixes bug #10183 [0] introduced by 3bd184a / PR #4467 [1].

TextureCacheBase was no longer calling `entry->Load` for custom textures
since the compute shader decoding logic was added. This adds it back in.
It also slightly restructures the decoding if-group to match the one
below, which I think makes the logic more obvious.

(recommend viewing with `git diff -b` to ignore the indentation changes)

[0]: https://bugs.dolphin-emu.org/issues/10183
[1]: https://github.com/dolphin-emu/dolphin/pull/4467
2017-04-04 14:34:46 -07:00
Léo Lam cf0492468d IOS/WFS: Fix logging message 2017-04-04 17:37:08 +02:00
Anthony d8c476b015 Merge pull request #5204 from leoetlino/tmd-view-fixes
IOS/ES: Fix GetTMDView
2017-04-04 15:14:04 +00:00
iwubcode a9d08a31a6 Add configurable toggle that rounds vertices to the nearest pixel when
w=1.  This fixes some games at higher IRs.
2017-04-04 09:52:18 -05:00
Léo Lam 6f8c30c863 IOS/ES: Fix GetTMDView
We had missing checks *and* were checking for the out vector size
improperly.

Rewritten based on the actual behaviour in IOS.
2017-04-04 16:04:24 +02:00
Stenzek 97dc773a3e D3D: Drop redundant interface TextureEncoder 2017-04-04 22:57:23 +10:00
Anthony 90acceaf41 Merge pull request #5201 from lioncash/determinism
Core: Hide determinism global
2017-04-04 06:21:07 +00:00
Anthony 840e58c032 Merge pull request #5196 from lioncash/tasdlg
TASInputDlg: Minor changes
2017-04-03 20:27:37 +00:00
Lioncash 0c1d56c16f Core: Hide determinism global
This is only ever queried and not set outside of the Core.cpp, so this
should just be hidden internally and just have a function exposed that
allows querying it.
2017-04-03 14:56:12 -04:00
Lioncash ad1a899a7c Core: Make EmuThread internally linked 2017-04-03 13:27:35 -04:00
Lioncash ed2e9e9e41 Core: Remove unnecessary forward declaration 2017-04-03 13:26:15 -04:00
Markus Wick 9d1ae76d0d Merge pull request #5200 from lioncash/frame
Frame: Remove callback function prototypes from header.
2017-04-03 13:35:35 +02:00
Lioncash b67968c3d8 Core: Remove unimplemented function prototype SetBlockStart 2017-04-03 06:34:49 -04:00
Lioncash c457ee4995 Frame: Remove callback function prototypes from header
Gets rid of more direct usages of the main_frame global, keeping the
callbacks internal to the frame itself.
2017-04-03 06:34:36 -04:00
Matthew Parlane 637bdc45b3 Merge pull request #5197 from leoetlino/ios-reset
IOS: Don't expose HLE::Reset()
2017-04-03 21:26:01 +12:00
Markus Wick 3bd184a255 Merge pull request #4467 from stenzek/gpu-texture-decoding
VideoBackends: GPU Texture Decoding
2017-04-03 10:46:13 +02:00
Lioncash f3ab0fc3f8 TASInputDlg: Use an enum for ID constants
These are all related constants (and it doesn't make sense to allow
taking the address of them).
2017-04-03 04:29:15 -04:00
Lioncash 9dd29895cd TASInputDlg: Replace includes with forward declarations 2017-04-03 04:29:15 -04:00
Lioncash 2a968f02d7 TASInputDlg: Make constructor explicit 2017-04-03 04:29:14 -04:00
Lioncash 28395c6302 TASInputDlg: Simplify event queueing calls
wxQueueEvent/wxPostEvent are useful when the event is being dispatched
to another separate window, but aren't really necessary when the event
will be handled by the same window it's dispatched from.

GetEventHandler() is unnecessary here for the same reason. It's an event
intended to be handled by the dialog itself.
2017-04-03 04:29:14 -04:00
Lioncash 598a92426f TASInputDlg: Get rid of unnecessary event casts
wxCommandEvent already stores the necessary data; the control object
itself doesn't need to be retrieved and casted.
2017-04-03 04:29:14 -04:00
Lioncash 2af5b64f32 TASInputDlg: Apply auto to UI control initializations where appropriate
As all UI controls are essentially constructed with new expressions, the
type is already visible on the right-hand side, so repeating the type
twice isn't necessary.
2017-04-03 04:29:11 -04:00
Lioncash b809db52d1 TASInputDlg: Use std::array where applicable 2017-04-03 04:28:11 -04:00
Michael Maltese f1dfa7933c FrameTools: unbind KEY_DOWN handler when game stops
Fixes issue 10162: Cannot type window text fields in macOS builds[0]

[0]: https://bugs.dolphin-emu.org/issues/10162
2017-04-02 19:17:35 -07:00
Léo Lam 0dbad29bf4 IOS: Don't expose HLE::Reset()
This is an implementation detail that does not have to be exposed.

It was used in WII_IPC whenever the IPC gets reset, but that does not
make much sense to me: the only time when IOS loses state and the IPC
registers are set up again is when it's reloaded. And reloading IOS
already calls Reset() indirectly.

Also, an IPC reset from the PPC definitely should not close all opened
devices!

This also gets rid of a special case for clear_devices, which is now
completely unneeded.
2017-04-02 18:00:32 +02:00
Markus Wick fd7f7c5541 Merge pull request #5159 from ligfx/arm64warnings
Arm64: a slew of warning fixes
2017-04-02 17:07:17 +02:00
Markus Wick 40cfa708a8 Merge pull request #5180 from lioncash/enum
CPU: Convert state enum to an enum class
2017-04-02 17:01:25 +02:00
Markus Wick 86e48fc1ca Merge pull request #5194 from lioncash/dialog
Frame: Make TAS dialogs private
2017-04-02 16:53:31 +02:00
Léo Lam 64b1a4d308 IOS/IPC: Remove unneeded forward declaration
CoreTiming.h is already included.
2017-04-02 12:41:47 +02:00
Lioncash 05872336a9 ExpressionParser: Rename ParseStatus' Success member to Successful
This clashes with X11's preprocessor define named Success (because using
non-prefixed lowercase identifiers in C was apparently a fantastic idea
at some point), causing compilation errors.
2017-04-02 06:13:18 -04:00
Lioncash c09f7bd84b Frame: Convert TAS dialog C array to std::array 2017-04-02 04:11:58 -04:00
Lioncash 678905764a Movie/Frame: Amend variable naming
Amends variable naming related to translation unit locals and TAS input
dialogs that were modified in the previous commit.
2017-04-02 04:11:58 -04:00
Lioncash 7f0203a5b0 Frame: Make TAS dialogs private
Amends the TAS callbacks to internally store functions using
std::function instead of raw function pointers. This allows binding
extra contextual state via lambda functions, as well as keeping the
dialogs internal to the main frame (on top of being a more flexible
interface).
2017-04-02 04:11:47 -04:00
Lioncash 5620f78b5c Core: Amend VS filter tag 2017-04-02 00:30:26 -04:00
Jussi Virtanen 92ad1b9c4d Use pointers inside ini loop to retain references to ini files 2017-04-01 17:52:25 +03:00
Stenzek 739aced97c Vulkan: Implement compute-shader based GPU texture decoding 2017-04-01 12:32:57 +10:00
Stenzek 5fbc63fbcf Vulkan: Compute shader support 2017-04-01 12:32:57 +10:00
Stenzek 02f887ede0 OGL: Add GPUTimer class for measuring execution time of a draw/dispatch 2017-04-01 12:32:57 +10:00
Stenzek b01bcb80f4 OGL: Implement GPU texture decoding backend 2017-04-01 12:32:56 +10:00
Stenzek 79ba946d70 VideoCommon: Changes to TextureCache to support decoding in backend 2017-04-01 12:32:10 +10:00
Stenzek 6ffc16d1b0 VideoCommon: Add texture decoding shader generators 2017-04-01 12:32:10 +10:00
Stenzek 82fd984f3e VideoBackends: Add configuration field for GPU texture decoding 2017-04-01 12:32:05 +10:00
Stenzek abc662d69c OGL: Support compute shaders and emitting GLSL 4.3
This also changes bSupportsEarlyFragmentTests to
bSupportsImageLoadStore, as it is used for both.
2017-04-01 12:31:41 +10:00
Stenzek b987f220e1 VideoBackends: Add support flag for compute shaders 2017-04-01 12:31:41 +10:00
Stenzek a8876a29fe OGL: Use ARB_texture_storage to allocate TextureCache entries
This ensures that they are complete textures by decoding time, as when
using compute shaders we write directly to the destination texture.
2017-04-01 12:31:41 +10:00
Stenzek c8cbbd831d GLExtensions: Seperate GL_ARB_compute_shader from GL 4.3
Allows the usage of glDispatchCompute from GLES (requires GLES 3.1).
2017-04-01 12:31:40 +10:00
Stenzek 4e24bfd0ce GLExtensions: Seperate GL_ARB_shader_image_load_store from GL 4.2
Allows the usage of glBindImageTexture and glMemoryBarrier from GLES
(requires GLES 3.1).
2017-04-01 12:31:40 +10:00
Stenzek bd15d0352a GLExtensions: Seperate GL_ARB_texture_storage from GL 4.2
This allows us to use glTexStorage on GL3.3 implementations that support
the extension.
2017-04-01 12:31:40 +10:00
Stenzek f8059eae43 OGL: Fix render-target texture mipmap allocation
The loop was allocating one-too-many levels, as well as incorrect sizes
for each level. Probably not an issue as mipmapped render targets aren't
used, but the logic should be correct anyway.
2017-04-01 12:31:40 +10:00
Matthew Parlane 22fa199caf Merge pull request #5190 from ligfx/removeao
Remove libao sound backend
2017-04-01 12:15:17 +13:00
Matthew Parlane 587ed3213c Merge pull request #5189 from stenzek/gl-msaa
OGL: Fix MSAA being forced to 1x
2017-04-01 12:14:51 +13:00
Michael Maltese af63235dc4 Remove libao sound backend
A single person uses it[0], and it sometimes messes up the Linux
buildbots ("ninja: error: 'ao', needed by 'Binaries/dolphin-emu', missing
and no known rule to make it").

[0]: https://analytics.dolphin-emu.org/stats/popular-audio-backends.txt
2017-03-31 14:59:57 -07:00
JosJuice 020618a427 Move DVDInterface's pure (stateless) math code to a new file 2017-03-31 17:27:23 +02:00
JosJuice f106ba70d4 Move DVD code to a new directory 2017-03-31 17:27:23 +02:00
Stenzek 5326a18fdf OGL: Fix MSAA being forced to 1x
This was a regression from the remove-everything-static-from-renderer
PR. As the comment indicates, it would be nice to move all of this logic
out of the Renderer constructor, but this is a much larger change.
2017-03-31 21:55:26 +10:00
Matthew Parlane 9b2c6e9a9a Merge pull request #5186 from lioncash/frame
DolphinWX/Frame: Remove GetGameListCtrl()
2017-03-31 20:51:14 +13:00
Mat M 006381bb47 Merge pull request #5184 from leoetlino/dead-code
Common: Remove dead code in NandPaths
2017-03-31 00:21:49 -04:00
Mat M 6b198679bc Merge pull request #5129 from ligfx/breakpointprintf
Breakpoints.cpp: fix format string warnings
2017-03-31 00:13:06 -04:00
Mat M 80a812322e Merge pull request #5152 from ligfx/disciomaybeuninitialized
DiscIO: initialize out args to ReadSwapped (fixes warning)
2017-03-31 00:11:53 -04:00
Lioncash 6495becaf7 Frame: Remove GetGameListCtrl()
This is currently unused and shouldn't actually be a part of the frame's
public interface. The event system should be used instead to dispatch
messages to the game list control if necessary.
2017-03-30 16:05:20 -04:00
Léo Lam e1020cb674 Common: Remove dead code in NandPaths 2017-03-30 18:48:50 +02:00
Matthew Parlane de6c9404fc Merge pull request #5182 from leoetlino/ios-enums
IOS: Move ES return codes
2017-03-30 14:57:03 +13:00
Matthew Parlane 595c1f5597 Merge pull request #5179 from lioncash/cast
Fifo: Remove unnecessary integral casts
2017-03-29 10:55:52 +13:00
Lioncash 497292cb1b MainMenuBar: Amend MEGA signature help tooltip
Keeps it consistent with the regular signature DB option
2017-03-28 17:14:04 -04:00
Lioncash 5637bbd1cf MEGASignatureDB: Remove unused variable in Apply 2017-03-28 16:19:19 -04:00
Lioncash eec4b705d5 MEGASignatureDB: Move objects where applicable
Signatures during loading and strings during reference retrieval can be
moved.
2017-03-28 16:18:31 -04:00
Lioncash c0171975ea MEGASignatureDB: Move implementation details into the cpp file
These functions aren't dependent on any database state and can be hidden.
2017-03-28 15:43:21 -04:00
Anthony fee2577e25 Merge pull request #5088 from sepalani/mega_signature
SignatureDB: Support for WiiTools MEGA files added
2017-03-28 12:28:21 -07:00
Sepalani 4cb84d06f0 SignatureDB: Support for WiiTools MEGA files added 2017-03-28 20:16:09 +01:00
Léo Lam 68cd8fc910 IOS: Move ES return codes
This keeps all of the return codes in the same place and exposed
publicly (as they are not internal to ES).

I have also added proper IOSC error codes and renamed some codes
for more consistency. (Unix ones have an E prefix, others do not.)
2017-03-28 20:02:26 +02:00
Anthony bcb1729dc9 Merge pull request #5124 from leoetlino/more-accurate-import
IOS/ES: Handle imports more accurately
2017-03-28 09:20:28 -07:00
Anthony cdd3ac023c Merge pull request #5133 from leoetlino/ugh-windows
Fix issues introduced by cpp-optparse on Windows
2017-03-28 09:17:02 -07:00
Anthony 2c531889b2 Merge pull request #5139 from lioncash/bitfield
BitField: Minor cleanup
2017-03-28 09:15:37 -07:00
Lioncash 8d98ac6509 CPU: Convert state enum to an enum class
Gets enum constants out of the immediate namespace. Also makes it
strongly typed like the other state enums.
2017-03-28 11:48:28 -04:00
Lioncash 41fbc659bf Fifo: Remove unnecessary integral casts
FIFO_SIZE is a u32, so %u can just be used instead.
2017-03-28 10:35:26 -04:00
Matthew Parlane 85d74a506f Merge pull request #4951 from waddlesplash/haiku-2
Initial support for Haiku.
2017-03-28 17:19:35 +13:00
Augustin Cavalier 0831dad467 Initial support for Haiku. 2017-03-27 23:46:19 -04:00
Matthew Parlane 8c23888968 Merge pull request #5174 from lioncash/vi
VideoInterface: Minor changes
2017-03-28 16:15:59 +13:00
Matthew Parlane 94dd435336 Merge pull request #5176 from lioncash/retval
VertexLoader: Return debug strings by value
2017-03-28 15:38:32 +13:00
Matthew Parlane 3000cc7c05 Merge pull request #5175 from lioncash/fifo
Fifo: const correctness
2017-03-28 15:37:18 +13:00
Matthew Parlane 3eff869937 Merge pull request #5156 from sepalani/gen-sym
Generate Symbols From menu added
2017-03-28 15:36:33 +13:00
Sepalani 5b88782e30 Generate Symbols From menu added 2017-03-28 02:05:27 +01:00
Matthew Parlane 22256d1bd8 Merge pull request #5170 from leoetlino/bt-fix
libusb fixes (mostly for IOS)
2017-03-28 13:47:47 +13:00
Lioncash 9ebd84e54a VertexLoaderManager: Return debug strings by value
This also renames AppendListToString to VertexLoadersToString.
2017-03-26 23:50:09 -04:00
Lioncash 9859533ab4 VertexLoaderBase: Return debug strings by value
An out parameter for this sort of thing is a C++03 hold-over. This also
renames AppendToString to ToString.
2017-03-26 23:49:59 -04:00
Lioncash d44844ba29 XFStructs: Get rid of an unnecessary pointer cast
Also gets rid of implicit sign conversions.
2017-03-26 23:09:30 -04:00
Lioncash 62db55dee2 Fifo: const correctness
PushFifoAuxBuffer only memcpys data using ptr as the source pointer, so
it can be a pointer to const data because of that.
2017-03-26 23:08:33 -04:00
Matthew Parlane dc2d11c1a7 Merge pull request #5172 from lioncash/dsp
DSPIntMultiplier: Place translation unit local functions in an anonymous namespace
2017-03-27 16:06:39 +13:00