Commit Graph

22780 Commits

Author SHA1 Message Date
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
Markus Wick dd189f311f Merge pull request #5244 from JosJuice/shorter-wii-pane
Make the Wii config pane shorter
2017-04-12 12:37:07 +02:00
MerryMage a95010bc72 x64Emitter: Allow code alignment to arbitrary power of 2 2017-04-12 08:41:51 +01:00
MerryMage 6df8343e72 MathUtil: References can be const 2017-04-12 06:15:18 +01:00
Markus Wick 29344cb5ff Merge pull request #5202 from stenzek/efb-copy-source-format
TextureConversionShader: Consider source format of EFB for EFB2RAM
2017-04-12 01:09:30 +02:00
Mat M 8ecc5e9b7a Merge pull request #5246 from MerryMage/math-util
Jit64AsmCommon: Make frsqrte and fres PIE-compliant
2017-04-11 16:11:19 -04:00
MerryMage f7ed979e30 Jit64AsmCommon: Make frsqrte and fres PIE-compliant 2017-04-11 20:25:18 +01:00
MerryMage 433999d60f ConstantPool: Return a pointer instead of an OpArg
This allows for greater flexibility.
2017-04-11 20:25:18 +01:00
Anthony 464df471ff Merge pull request #5081 from lioncash/sd
IOS/SDIOSlot0: Separate IOCtl/IOCtlV behavior into individual functions
2017-04-11 10:38:49 -07:00
Stenzek 5e7bd03d0b Vulkan: Linear filter >1xIR EFB copies, matching the other backends 2017-04-12 00:11:22 +10:00
Stenzek e9850aa0f2 VideoBackends: Support updated texture encoding shader generators 2017-04-12 00:11:22 +10:00
Stenzek 3847e226ab TextureConversionShader: Consider source format of EFB for EFB2RAM
Currently, we use the alpha channel from the EFB even if the current
format does not include an alpha channel. Now, the alpha channel is set
to 1 if the format does not have an alpha channel, as well as truncating
to 5/6 bits per channel. This matches the EFB-to-texture behavior.
2017-04-12 00:11:22 +10:00
JosJuice e6317eaa36 Put "Top" on top of "Bottom" in the sensor bar position dropdown 2017-04-11 11:43:06 +02:00
Markus Wick 4e90c5da8b Merge pull request #5234 from lioncash/tuple
RenderBase: Return tuples from CalculateTargetScale and ConvertStereoRectangle instead of using out parameters
2017-04-11 10:27:16 +02:00
JosJuice cc8976f71e Make the Wii config pane shorter
This commit merges the Wii pane's Device Settings with Misc Settings
so that the whole general config window won't be so tall.
2017-04-11 10:19:19 +02:00
Mat M ae80a7541d Merge pull request #5239 from sepalani/is-valid-instruction
PPCTables: Do not consider OPTYPE_UNKNOWN as valid instruction
2017-04-10 16:50:22 -04:00
Markus Wick 34ac749b8b Merge pull request #5144 from MerryMage/mfspr
Jit_SystemRegisters: Make mfspr PIE-compliant
2017-04-10 22:30:56 +02:00
Sepalani 27dcf92faa PPCTables: Do not consider OPTYPE_UNKNOWN as valid instruction 2017-04-10 18:31:24 +01:00
Scott Mansell e6476b805e Merge pull request #5008 from ligfx/aspectheuristic
VideoCommon: rework anamorphic widescreen heuristic
2017-04-10 11:30:34 +12:00
MerryMage 4537969822 Frame: Use kIOPMAssertionTypePreventUserIdleDisplaySleep to inhibit screensaver on macOS 2017-04-09 22:14:35 +01:00
MerryMage c9b2c29ead Frame: Extract screensaver-related code into InhibitScreensaver/UninhibitScreensaver 2017-04-09 22:14:35 +01:00
Anthony c6b553b6d2 Merge pull request #5220 from stenzek/small-nonsquare-mips
TextureCache: Fix incomplete GPU texture decoding of non-square mips
2017-04-09 13:45:38 -07:00
Starsam80 6bccc13f3b
Add BootMii NAND import functionality 2017-04-09 13:14:05 -06:00
Lioncash c7ab6861c2 RenderBase: Return a tuple from ConvertStereoRectangle instead of using out parameters 2017-04-09 15:11:59 -04:00
Lioncash 671b5f9747 RenderBase: Return a tuple from CalculateTargetScale instead of using out parameters 2017-04-09 14:41:51 -04:00
Salehen Shovon Rahman 65250c0452 Disable screensaver on OS X
When playing a game on OS X, although the screen does not go to
sleep, the screensaver is still enabled, and therefore, during
gameplay, the screensaver may start running, which is not in
accordance to the behaviour on other other environments (Windows
and X11). It can be argued that the screensaver interrupting
gameplay is a nuissance to many players.

The changes in this commit are intended to allow Dolphin to disable
the screensaver during gameplay, just as intended on other platforms.

The changes have been tested on OS X 10.11 (El Capitan).
2017-04-09 15:16:52 +01:00
Sepalani 5a1ebe232e HLE: Add Reload() function 2017-04-09 14:02:34 +01:00
Sepalani 20a9c5b12d HLE: Add PatchFixedFunctions() function 2017-04-09 14:02:34 +01:00
Sepalani 61b36d1f9a PatchEngine: Add Reload() function 2017-04-09 14:02:33 +01:00
JosJuice 776d63bcd3 Simplify condition for enabling/disabling vertex rounding checkbox
Also moving the code further up in the function so that
it's consistent with how the other settings are handled.
2017-04-09 10:54:02 +02:00
JosJuice 055adad8f1 Merge pull request #5218 from lioncash/video
VideoConfigDiag: Move event implementations into the cpp file
2017-04-09 10:42:10 +02:00
Matthew Parlane 394b847b6c Merge pull request #5229 from lioncash/si-id
SI_Devices: Get rid of pointer casts for ID assignment in RunBuffer
2017-04-09 20:09:44 +12:00
Lioncash cc803db042 RenderBase: Eliminate renderer global accesses within the Renderer class
There's no need to access these globals, the instance itself has access
to these data members and functions.
2017-04-08 20:15:39 -04:00
Lioncash caf25653d8 RenderBase: const correctness 2017-04-08 20:11:29 -04:00
Lioncash 0540950e7a VideoConfigDiag: Move event implementations into the cpp file
Also removes the unused Event_Adapter event stub which did nothing. It
wasn't even hooked up to wx's event system.

Allows removing several includes from the header file and moving them to
the cpp file. Prevents includes being dumped into other source files
that include the header.

This uncovered an indirect include in Main for MsgHandler utilities.
2017-04-08 17:35:50 -04:00
Mat M 96e70ad5a3 Merge pull request #5217 from lioncash/cheats
Frame: Make cheat dialog private
2017-04-08 17:30:27 -04:00
Mat M 3013252d4f Merge pull request #5222 from MerryMage/keyb
Frame: Fix macOS keyboard while emulation is running
2017-04-08 17:28:13 -04:00
Mat M 59d93f3a0d Merge pull request #5219 from lioncash/common
FileSearch: Namespace functions under the Common namespace
2017-04-08 17:19:00 -04:00
Mat M 579b7538e7 Merge pull request #5224 from ligfx/cachedinterpreterhle
CachedInterpreter: fix HLEFunction argument
2017-04-08 17:17:28 -04:00
Mat M ab18eba9de Merge pull request #5105 from lioncash/namespace
EXI: Namespace device classes
2017-04-08 17:12:56 -04:00
Mat M f09d17f40f Merge pull request #5161 from leoetlino/es-formats-tests
Add unit tests for IOS/ESFormats
2017-04-08 17:10:57 -04:00
Mat M 11d1124fa5 Merge pull request #5209 from leoetlino/block-es-diverify
IOS/ES: Block ES_DIVerify from the IPC interface
2017-04-08 16:57:40 -04:00
Mat M d55d9f93a7 Merge pull request #5212 from leoetlino/es-unknown-ioctlvs
IOS/ES: Return IPC_EINVAL for unknown ioctlvs
2017-04-08 16:56:50 -04:00
Mat M 1e182706ca Merge pull request #5185 from leoetlino/disable-nand-items
WX: Disable a few menu items when a Wii title is running
2017-04-08 16:54:52 -04:00
Mat M 5d7bd357c1 Merge pull request #5227 from JosJuice/revise-new-settings-strings
Revise descriptions for new settings
2017-04-08 16:51:35 -04:00
Mat M 4ba6184785 Merge pull request #5216 from ligfx/removeshadowedtlut
TextureCacheBase: remove duplicated variable
2017-04-08 16:49:04 -04:00
Mat M 9a7c28026b Merge pull request #5214 from sepalani/strutil-fix
StringUtil: Fix a ctype assertion
2017-04-08 16:45:29 -04:00
Lioncash 069b70b2b4 SI_Devices: Get rid of pointer casts for ID assignment in RunBuffer
This is actually undefined behavior (pointer casting to a non-char type and
dereferencing it).
2017-04-08 16:36:14 -04:00
JosJuice 9d73196e4f Boot: Make default ISO code for DOLs consistent with ELFs 2017-04-08 18:52:39 +02:00
JosJuice 0b78386044 Boot: Allow setting a default ISO for Wii DOLs
I have no idea why there was a special case preventing this...
2017-04-08 18:52:33 +02:00
JosJuice 6263830d6d Boot: Always emulate BS2 once when booting a DOL
The old code could do it 0, 1 or 2 times.
2017-04-08 18:52:12 +02:00
JosJuice 31eec8c75b Boot: Remove useless check
No disc is inserted at this point, so IsDiscInside is always false.
2017-04-08 18:45:01 +02:00
JosJuice 4424d24fd0 Revise descriptions for new settings
I replaced "1x IR" with "native internal resolution" because
the IR setting never says "1x" or "IR", and I also did some
minor rewording and normalized the sentence-ending spaces.
2017-04-08 18:39:46 +02:00
Pierre Bourdon e7d632d1af Merge pull request #5226 from JosJuice/ir-18n-comments
Add i18n comments for the acronym IR
2017-04-08 18:00:12 +02:00
MerryMage 8ad6f2cecc AX: Add support for UCodes without LPF 2017-04-08 16:04:09 +01:00
JosJuice 254df247b1 Add i18n comments for the acronym IR 2017-04-08 16:00:09 +02:00
Michael Maltese 1bd87f5a79 CachedInterpreter: fix HLEFunction argument 2017-04-07 17:54:59 -07:00
Sepalani eb45ea5f7f Boot: Prevent ELF to be considered as a disc 2017-04-08 00:04:50 +01:00
MerryMage 8f8e7681b2 AX: Implement loop counter
Required for Rogue Squadron.
2017-04-07 20:54:34 +01:00
MerryMage a793b4d06f Frame: Fix macOS keyboard while emulation is running 2017-04-07 19:44:04 +01:00
Stenzek 2492f196a7 TextureCache: Fix incomplete GPU texture decoding of non-square mips 2017-04-07 23:03:14 +10:00
Lioncash f7a2f6ad01 FileSearch: Namespace functions under the Common namespace 2017-04-07 01:02:14 -04:00
Lioncash c61d0dfe87 Frame: Make cheat dialog private
Rather than destroy and reinitialize the dialog whenever it's closed,
and opened this dialog can just be hidden from view when it's not
needed, and shown again when it is needed.

Also, a dialog should really not be managing any live instances of
itself, including the one directly in the main frame.

This gets rid of another usage of the main frame global.
2017-04-06 21:25:26 -04:00
Michael Maltese cef5bd4a09 TextureCacheBase: remove duplicated variable
Fixes warning:

```
Source/Core/VideoCommon/TextureCacheBase.cpp:869:17: warning: declaration shadows a local variable [-Wshadow]
      const u8* tlut = &texMem[tlutaddr];
                ^
Source/Core/VideoCommon/TextureCacheBase.cpp:784:13: note: previous declaration is here
  const u8* tlut = &texMem[tlutaddr];
            ^
```
2017-04-06 13:52:42 -07:00
Sepalani c170659189 StringUtil: Fix a ctype assertion 2017-04-06 15:02:21 +01:00
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
Michael Maltese 2fd63ffa9f GeckoCodeConfig: Use Curl instead of SFML::Http 2017-04-05 12:58:42 -07:00
Michael Maltese 6a066bb2ed Move GeckoCodeDiag download logic to GeckoCodeConfig 2017-04-05 12:48:35 -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
Lioncash 8033a72f0b VertexLoaderBase: Use std::array where applicable 2017-03-26 22:12:20 -04:00
Lioncash adbffc24e9 VideoInterface: Make clock frequency array constexpr
This is only ever read from.
2017-03-26 19:30:44 -04:00
Lioncash ec5637fe46 VideoInterface: Utilize std::array where applicable 2017-03-26 19:28:56 -04:00
Lioncash ae29cd042e VideoInterface: Initialize union members directly where applicable 2017-03-26 18:42:09 -04:00
Lioncash 0a7a6142eb GCMemcardDirectory: Move flush interval constant into the cpp file
This isn't necessary to be within the header.
2017-03-26 17:55:30 -04:00
Lioncash a5c5645bed DSPIntMultiplier: Place translation unit local functions in an anonymous namespace
Unlike inline, this makes the functions internally linked.
2017-03-26 16:42:35 -04:00
Léo Lam 69705e3a41 IOS/ES: Handle imports more accurately
A set of small changes to handle title imports more accurately.

* Clean up the import directory after an import, exactly like IOS.
  This should prevent the title directory from having useless leftover
  contents, which could confuse the emulated software.

* More robust failsafe in case an import does not complete normally.
  IOS checks for stale imports and handles them appropriately on boot.
  We now do the same.

* Create all directories as IOS does. This includes the data directory.
2017-03-26 22:17:31 +02:00
Matthew Parlane 76cece8157 Merge pull request #5115 from leoetlino/proper-location-for-es-stuff
IOS/ES: Move shared content map, uid.sys code
2017-03-27 08:53:14 +13:00
Léo Lam 9aaaa2b924 IOS/USB: Unref libusb devices manually 2017-03-26 15:58:30 +02:00
Léo Lam 32a1b5068a Revert "Use a single libusb context"
This reverts commit c8a6dc6c23.

libusb on Windows isn't really safe to use from different threads
with a single context.
2017-03-26 15:58:30 +02:00
BhaaL a9afd5b243 fix incomplete end-tag 2017-03-26 14:44:42 +02:00
Léo Lam 6c62cfb1aa IOS/BTReal: Properly check for libusb failures 2017-03-26 12:22:29 +02:00
Léo Lam 7b17163a7a IOS/ES: Move shared content map, uid.sys code
These are all specific to ES and belong there.

The SharedContentMap and UIDSys classes were also modernised.
2017-03-26 12:16:28 +02:00
Léo Lam 3cfd9ea9b2 IOS/BTReal: Always use config descriptor 0
This may fix LIBUSB_ERROR_NOT_FOUND whenever devices end up being in
an unconfigured state. We don't need anything more than the first
config descriptor anyway.
2017-03-26 12:08:53 +02:00
Markus Wick 0b6170cc33 Merge pull request #5167 from stenzek/jit64-crash
Jit64: Fix crash at startup
2017-03-26 09:17:21 +02:00
Anthony fbfb94ec79 Merge pull request #5157 from sepalani/sym-name
Fix wrong address in zz_ symbol name
2017-03-25 19:38:16 -07:00
Matthew Parlane 5d40daa507 Merge pull request #5123 from ligfx/fixwiimoteemu
WiimoteEmu: refer to settings by name, not index
2017-03-26 14:56:44 +13:00
Matthew Parlane 28916997a5 Merge pull request #5130 from ligfx/inputconfigdiagbitmapsswitchdefault
InputConfigDiagBitmaps: add switch empty cases (fixes warning)
2017-03-26 14:54:50 +13:00
Matthew Parlane 9dd9573ec0 Merge pull request #5148 from ligfx/iptopwarning
IP/Top: rename private methods à la HandleXRequest
2017-03-26 14:54:31 +13:00
Matthew Parlane 89de08d649 Merge pull request #5166 from ligfx/eglwarning
EGL: Fix missing-braces warning
2017-03-26 14:52:09 +13:00
Stenzek 724a8437eb Jit64: Fix crash at startup
This was a regression introduced by 4d8d045. stored_stack_pointer within
PPCSTATE was being accessed before the PPCSTATE (RBP) register was
initialized.
2017-03-26 11:37:55 +10:00
Matthew Parlane 4f160b2547 Merge pull request #5163 from lioncash/array
TextureCacheBase: Convert bound_textures from a C array to a std::array
2017-03-26 14:35:12 +13:00
Michael Maltese 3f8a471d64 EGL: Fix missing-braces warning
Fixes warning:

```
../Source/Core/Common/GL/GLInterface/EGL.cpp:57:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
      EGL_OPENGL_BIT, (1 << 6), /* EGL_OPENGL_ES3_BIT_KHR */
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
2017-03-25 17:09:50 -07:00
Léo Lam c1cd7d9c0e WX: Redirect stdout to console output
Thank Windows for its default console handling.

This fixes std::cout not working on Windows.
2017-03-25 23:28:45 +01:00
Léo Lam 77b389bf99 WX: Move init mutex lock to after command line
Calling std::exit while having a mutex locked leads to an assertion.

Moving the lock is fine, since all it protects against is really just
UICommon.
2017-03-25 23:24:02 +01:00
Markus Wick 86e6b44271 Merge pull request #5146 from ligfx/mmuwarning
MMU: rewrite loop to avoid warning
2017-03-25 23:18:56 +01:00
Michael Maltese 9afe3946d1 JitArm64_Integer: fix signedness comparison warning
Fixes warning:

```
dolphin/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp:1139:64: warning: comparison of integers of different signs: 'u32' (aka 'unsigned int') and 'int' [-Wsign-compare]
  else if (gpr.IsImm(b) && gpr.GetImm(b) != 0 && gpr.GetImm(b) != -1)
                                                 ~~~~~~~~~~~~~ ^  ~~
```
2017-03-25 14:51:10 -07:00
Michael Maltese 428bac6e32 JitArm64_Integer: remove unused imm_neg 2017-03-25 14:51:10 -07:00
Michael Maltese 5892ef1792 JitArm64_Integer: extract bit operation lambdas
Fixes warnings like:

```
dolphin/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp:132:37: warning: declaration shadows a local variable [-Wshadow]
    reg_imm(a, s, inst.UIMM, [](u32 a, u32 b) { return a | b; }, &ARM64XEmitter::ORRI2R);
                                    ^
/Users/michaelmaltese/Downloads/dolphin/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp:122:7: note: previous declaration is here
  u32 a = inst.RA, s = inst.RS;
      ^
```
2017-03-25 14:51:09 -07:00
Michael Maltese 3d7bace9da Arm64Emitter: extract lambda to AddImmediate()
Fixes warning:

```
Source/Core/Common/Arm64Emitter.cpp:4108:31: error: declaration shadows a local variable [-Werror,-Wshadow]
    auto addi = [this](ARM64Reg Rd, ARM64Reg Rn, u64 imm, bool shift, bool negative, bool flags) {
                                ^
  /var/lib/buildbot/slave/pr-android/build/Source/Core/Common/Arm64Emitter.cpp:4105:46: note: previous declaration is here
  void ARM64XEmitter::ADDI2R_internal(ARM64Reg Rd, ARM64Reg Rn, u64 imm, bool negative, bool flags,
                                               ^
```
2017-03-25 14:21:19 -07:00
Michael Maltese c58ba93503 Arm64: Use PRIi64/PRIx64 for printf 2017-03-25 14:20:44 -07:00
Michael Maltese 4cd9a2ef1e DiscIO: make sure to initialize out args to ReadSwapped
Fixes warnings:

```
../Source/Core/DiscIO/VolumeGC.cpp: In member function 'virtual u8 DiscIO::CVolumeGC::GetDiscNumber() const':
../Source/Core/DiscIO/VolumeGC.cpp:178:10: error: 'disc_number' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   return disc_number;
          ^
../Source/Core/DiscIO/VolumeWiiCrypted.cpp: In member function 'virtual u8 DiscIO::CVolumeWiiCrypted::GetDiscNumber() const':
../Source/Core/DiscIO/VolumeWiiCrypted.cpp:258:10: error: 'disc_number' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   return disc_number;
          ^
../Source/Core/DiscIO/VolumeWiiCrypted.cpp: In member function 'virtual IOS::ES::TMDReader DiscIO::CVolumeWiiCrypted::GetTMD() const':
../Source/Core/DiscIO/VolumeWiiCrypted.cpp:123:20: error: 'tmd_address' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   tmd_address <<= 2;
                    ^
```
2017-03-25 13:50:23 -07:00
Lioncash 57c21b9576 TextureCacheBase: Convert bound_textures from a C array to a std::array
Prevents array-to-pointer decay and simplifies some code.
2017-03-25 14:53:25 -04:00
Markus Wick 4d8d0451e3 Merge pull request #5142 from MerryMage/stored_stack_pointer
JitAsm: Use stored_stack_pointer instead of s_saved_rsp
2017-03-25 17:37:48 +01:00
Markus Wick 3898707ef9 Merge pull request #5141 from MerryMage/ConvertDoubleToSingle
EmuCodeBlock: Place ConvertDoubleToSingle temporaries on the stack
2017-03-25 17:37:29 +01:00
Anthony b099a1c02a Merge pull request #5135 from lioncash/ini
IniFile: Minor changes
2017-03-24 19:33:09 -07:00
Anthony e2a7e8a40d Merge pull request #5143 from JosJuice/wii-menu-region-log
Clarify the log message for unknown Wii Menu regions
2017-03-24 19:31:52 -07:00
Sepalani 6eca605284 Fix wrong address in zz_ symbol name 2017-03-25 01:21:13 +00:00
JosJuice f5469878ba DVDInterface: Update comment about buffer speed
The actual code was changed based on mmastrac's hardware
tests, but it seems like we forgot to edit this comment.
2017-03-24 20:04:26 +01:00
Michael Maltese a098fe57c5 IP/Top: rename private methods à la HandleXRequest
Fixes this warning everytime Top.h is included:

```
../Source/Core/Core/IOS/Network/IP/Top.h:76:20: warning: 'IOS::HLE::Device::NetIPTop::Close' hides overloaded virtual function [-Woverloaded-virtual]
  IPCCommandResult Close(const IOCtlRequest& request);
                   ^
../Source/Core/Core/IOS/Device.h:158:16: note: hidden overloaded virtual function 'IOS::HLE::Device::Device::Close' declared here: different number of parameters (0 vs 1)
  virtual void Close();
               ^
```
2017-03-24 11:52:39 -07:00
Michael Maltese 8387b00f42 MMU: rewrite loop to avoid warning
Fixes warning:

```
dolphin/Source/Core/Core/PowerPC/MMU.cpp:278:43: warning: shift count >= width of type [-Wshift-count-overflow]
           addr++, addr_translated++, val >>= 8)
```
2017-03-24 11:45:21 -07:00
JosJuice a31bb7a27c Clarify the log message for unknown Wii Menu regions
Saying just "title" made it seem like we are showing the title
ID, but what we actually are showing is the title version.
2017-03-24 16:44:38 +01:00
MerryMage 61198199cd JitAsm: Use stored_stack_pointer instead of s_saved_rsp 2017-03-24 11:31:40 +00:00
MerryMage 918d7fa3d1 EmuCodeBlock: Place ConvertDoubleToSingle temporaries on the stack 2017-03-24 10:59:55 +00:00
Michael Maltese 0767c3d94d DiscIO: add empty UNKNOWN_REGION case (fixes warning)
Fixes warning:

```
dolphin/Source/Core/DiscIO/Enums.cpp:171:11: warning: enumeration value 'UNKNOWN_REGION' not handled in switch [-Wswitch]
  switch (GetSysMenuRegion(title_version))
          ^
```
2017-03-23 20:14:11 -07:00
Lioncash b711daee5f BitField: Get rid of a C-style cast
This can simply be the max value of the unsigned type.
2017-03-23 15:28:58 -04:00
Lioncash e43c495ce5 BitField: Convert typedefs to using aliases 2017-03-23 15:28:50 -04:00
Lioncash caef08988e BitField: Make mostly constexpr capable
Makes the constructor and retrieval functions constexpr.
2017-03-23 11:45:45 -04:00
Markus Wick 6e2e48e9ea Merge pull request #5137 from lioncash/arm
Arm64Emitter: Get rid of pointer casts in PoisonMemory
2017-03-23 15:52:58 +01:00
Markus Wick 4b5995a6e0 Merge pull request #5138 from lioncash/init
VertexLoaderBase: In-class initialize class members where applicable
2017-03-23 15:15:32 +01:00
Lioncash da2e34f69b VertexLoaderBase: In-class initialize class members where applicable
Same thing, less code.
2017-03-23 08:37:18 -04:00
Lioncash a7ec2d3831 Arm64Emitter: Get rid of pointer casts in PoisonMemory
The previous code invokes undefined behavior.
2017-03-23 07:10:21 -04:00
Markus Wick 6d065a02b5 Merge pull request #5134 from degasus/texture_cache
TextureCache: Don't lock freed rendertargets for one frame.
2017-03-23 09:48:32 +01:00
Lioncash 1d6d85963f ARDecrypt: const correctness 2017-03-22 20:35:00 -04:00
Lioncash 29ca22905b IniFile: Replace a character erase with pop_back()
Same thing, more straightforward.
2017-03-22 19:32:10 -04:00
Lioncash 35959bdaf9 IniFile: Replace string joining code with JoinString 2017-03-22 19:30:15 -04:00
Lioncash b92871111a IniFile: std::move a std::string in GetLines
Also gets rid of an unnecessary string copy.
2017-03-22 19:09:25 -04:00
Lioncash dbdf693c81 IniFile: Use character literals instead of string literals where applicable
Character overloads are generally better overall (range checks aren't
necessary, etc).
2017-03-22 19:03:17 -04:00
Lioncash d8998b6392 IniFile: Provide an rvalue reference overload for SetLines
Allows moving in vectors instead of performing an unnecessary copy.
2017-03-22 18:49:13 -04:00
Lioncash 46d74a7760 IniFile: Make Section's string constructor instances take strings by value
As the name is immediately stored into a class member, a move here is a
better choice.

This also moves the constructor implementations into the cpp file to
avoid an otherwise unnecessary inclusion in the header. This is also
likely a better choice as Section contains several non-trivial members,
so this would avoid potentially inlining a bunch of setup and teardown
code related to them as a side-benefit.
2017-03-22 18:47:19 -04:00
degasus ca8d9e2215 TextureCache: Don't lock freed rendertargets for one frame.
New Super Mario Bros on PAL still renders at 60 fps, but skips every 5th XFB copy.
So our detection of "per frame" fails, and we require twice the amound of texture objects.
But our pool frees unused textures after 3 frames, so half of them needs to be reallocated
every few frames.

This commit removes the lock for render targets. It was introduced to not update a texture
while it is still in use. But render targets aren't updated while rendering, so this
lock isn't needed. Non-rendertarget textures however aren't as dynamic, so the lock should
have no performance update.
2017-03-22 23:28:42 +01:00
Lioncash 99adc73383 IniFile: Make Section constructor explicit 2017-03-22 18:07:23 -04:00
Markus Wick 9ea59133b3 Merge pull request #5121 from MerryMage/children-happen
Jit64: Merge memory allocations into a single allocation
2017-03-22 22:42:46 +01:00
Michael Maltese c4bb452f2b InputConfigDiagBitmaps: add switch empty cases (fixes warning)
Fixes warning:

```
dolphin/Source/Core/DolphinWX/Input/InputConfigDiagBitmaps.cpp:170:13: warning: 7 enumeration values not handled in switch: 'Other', 'MixedTriggers', 'Buttons'... [-Wswitch]
    switch (g->control_group->type)
            ^
```
2017-03-22 13:00:54 -07:00
Matthew Parlane 8804f759b9 Merge pull request #5127 from lioncash/gcode
GeckoCodeConfig: Minor changes
2017-03-23 07:13:45 +13:00
Markus Wick 09f4d494ef Merge pull request #5132 from ligfx/commentoutpagetagshift
MMU: comment-out unused var HW_PAGE_TAG_SHIFT
2017-03-22 09:43:45 +01:00
Michael Maltese da6a1daef6 MMU: remove unused var HW_PAGE_TAG_SHIFT
It's not used, so produces a warning during compilation.
2017-03-21 23:47:10 -07:00
Michael Maltese 9e430cbdd6 Breakpoints.cpp: fix format string warnings
Fixes warnings:

```
dolphin/Source/Core/Core/PowerPC/BreakPoints.cpp:246:89: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
                 debug_interface->GetDescription(pc).c_str(), write ? "Write" : "Read", size * 8,
                                                                                        ^~~~~~~~
dolphin/Source/Core/Core/PowerPC/BreakPoints.cpp:245:50: warning: field width should have type 'int', but argument has type 'unsigned long' [-Wformat]
      NOTICE_LOG(MEMMAP, "MBP %08x (%s) %s%zu %0*x at %08x (%s)", pc,
                                              ~~~^
```
2017-03-21 23:25:17 -07:00
Lioncash 2f52d04e30 GeckoCodeConfig: Use compare instead of substr for comparing substrings
Gets rid of an unnecessary string construction.
2017-03-21 18:12:40 -04:00
Matthew Parlane a32a2d1a02 Merge pull request #5126 from leoetlino/version
UICommon: Don't print --version option twice
2017-03-22 11:10:36 +13:00
Lioncash 0d0e9f626d GeckoCodeConfig: Amend unnecessary string literals to char literals
Also gets rid of an unnecessary std::string construction in a loop.
std::string already has an operator+ overload to prepend characters.
2017-03-21 18:03:06 -04:00
Lioncash 28235b5cb6 GeckoCodeConfig: Remove unused commented out code 2017-03-21 18:03:06 -04:00
Lioncash f0fa692457 GeckoCodeConfig: Move gecko code title building to its own function
Keeps it separate from the rest of the saving code and also allows for
easy rvalue-reference moving into the lines vector as a side-benefit.
2017-03-21 18:03:02 -04:00
Léo Lam 3028158873 UICommon: Don't print --version option twice
cpp-optparse already has the --version option built-in, so having our
own version option results in --version being shown twice.
2017-03-21 22:29:01 +01:00
Lioncash f91292eff2 GeckoCodeConfig: Return vector by value for LoadCodes()
Using an out-param is a leftover from C++03. Action Replay codes already
return the vector of codes by value as well.
2017-03-21 16:58:13 -04:00
Michael Maltese 7c52b8f838 WiimoteEmu: refer to settings by name, not index
Fixes https://bugs.dolphin-emu.org/issues/10159 "Emulated Wii remote
options not working correctly," which was introduced by PR #4856: "Move
'Background Input' out of individual controller configurations."
2017-03-21 13:31:42 -07:00
MerryMage cb7d9556bf Jit64: Merge memory allocations into a single allocation
Instead of each component allocating their own memory, we instead allocate
the memory once and divvy that up among the components as required. This
ensures that relative memory offsets remain within architecture limits.
2017-03-21 20:16:12 +00:00
MerryMage da434e1a1c ConstantPool: Externalize memory allocation 2017-03-21 20:16:12 +00:00
MerryMage 615fcc621d CodeBlock: Add support for multiple children 2017-03-21 20:16:12 +00:00
Lioncash 780dffcb13 FifoDataFile: In-class initialize member variables where applicable 2017-03-21 15:41:05 -04:00
Lioncash 4e5e7cff0a FifoRecorder: In-class initialize member variables where applicable 2017-03-21 15:41:05 -04:00
Lioncash eda27ee397 FifoPlayer: In-class initialize member variables where applicable 2017-03-21 15:40:56 -04:00
Lioncash 0d1bc53e55 JitBase: Rename MergeAllowedNextInstructions to CanMergeNextInstructions
This is more indicative that it's checking for something
2017-03-21 13:50:03 -04:00
Lioncash f98211bfcf JitBase: Make MergeAllowedNextInstructions a const member function 2017-03-21 13:45:18 -04:00
Markus Wick f03fa54bcb Merge pull request #5116 from degasus/ArmRegCache
JitArm64: Fix usages in conditional code.
2017-03-21 18:14:16 +01:00
MerryMage 8a788ebdd9 JitAsm: Add missing forward declaration of X64CodeBlock 2017-03-21 16:56:43 +00:00
Anthony d2690568f9 Merge pull request #5110 from MerryMage/const-pool
Jit64: Implement a constant pool
2017-03-20 13:29:57 -07:00
MerryMage 4491e9b829 Jit_SystemRegisters: Add missing sizes to constant arrays 2017-03-20 20:21:43 +00:00
MerryMage 9058ccea3f IR_X86: Use MConst for constants 2017-03-20 20:21:43 +00:00
MerryMage 3dccc369d3 Jit64AsmCommon: Use MConst for constants 2017-03-20 20:21:43 +00:00
MerryMage 4814c4ac5a EmuCodeBlock: Use MConst for constants 2017-03-20 20:21:43 +00:00
MerryMage 8b93baefb7 Jit_SystemRegisters: Use MConst for constants 2017-03-20 20:21:43 +00:00
MerryMage 0fe234ec9b Jit_FloatingPoint: Use MConst for constants 2017-03-20 20:21:42 +00:00
MerryMage ff441efc26 EmuCodeBlock: Use ConstantPool 2017-03-20 20:21:42 +00:00
MerryMage 9951961338 ConstantPool: Implement a constant pool
Constants are copied into this pool so that they live at a memory
location that is close to the code that references it. The pool allocates
memory from a provided X64CodeBlock to use.

The purpose of the pool is to overcome the 32-bit offset limitation that
RIP-relative addressing has.`
2017-03-20 20:21:42 +00:00
MerryMage b0d6c29073 JitAsmCommon: Add missing sizes to constant arrays
This allows generic code to determine the size of these arrays.
2017-03-20 20:21:41 +00:00
degasus c5b9c740c9 JitArm64: Fix gpr.R() usages in conditional code. 2017-03-20 21:18:13 +01:00
degasus f7a52c0c35 JitArm64: Fix gpr.GetReg usages in conditional code. 2017-03-20 21:18:13 +01:00
Anthony 26bb26fe54 Merge pull request #4901 from JosJuice/filemonitor-redesign
FileMonitor redesign
2017-03-20 12:46:19 -07:00
Anthony 50faffc9c2 Merge pull request #5009 from aldelaro5/memcheck-fix
Fix memory breakpoint when checking the middle of the data
2017-03-20 12:41:02 -07:00
Markus Wick 5cc55f0fe3 Merge pull request #5096 from Armada651/anything-with-a-viewport
VertexShaderGen: Correct for negative viewport dimensions.
2017-03-20 10:55:56 +01:00
Anthony b35bbdfb58 Merge pull request #4856 from ligfx/backgroundinput
Move "Background Input" out of individual controller configurations
2017-03-19 22:31:30 -07:00
Matthew Parlane 8eb26d298e Merge pull request #5099 from JosJuice/wii-menu-strings
Display nicer version strings for the Wii Menu
2017-03-20 14:03:04 +13:00
Matthew Parlane 9da35edd15 Merge pull request #5093 from JosJuice/six-char-game-ids
Use 6-char game IDs for NAND tiles (if they are printable)
2017-03-20 13:38:35 +13:00
Matthew Parlane 910360f7e7 Merge pull request #5085 from leoetlino/es-nandutils
IOS: Add NandUtils
2017-03-20 13:27:17 +13:00
Matthew Parlane a20b73cfb4 Merge pull request #5112 from MerryMage/quantize
Jit64AsmCommon: Use correct quantization table
2017-03-20 13:26:38 +13:00
MerryMage 5f59755d15 Jit64AsmCommon: Use correct quantization table
Stores quantize, loads dequantize.
2017-03-19 14:49:24 +00:00
Lioncash 35c230a418 NetPlayServer: const correctness 2017-03-19 09:36:40 -04:00
Lioncash 025eac9062 NetPlayClient: const correctness 2017-03-19 09:32:58 -04:00
Léo Lam 98e27ad9cb IOS/ES: Use FindInstalledTMD instead of content loader
Proper semantics.

IOS only cares about the TMD and nothing else, so we should use
FindInstalledTMD, instead of reading/parsing/decrypting a bunch of
useless stuff, which is slow *and* causes issues because of the cache.
2017-03-19 11:27:34 +01:00
Léo Lam 8984112501 IOS/ES: Move GetStoredContentsFromTMD to NandUtils 2017-03-19 11:10:45 +01:00
Léo Lam 0ed8d68192 IOS/ES: Add functions to get TMDs 2017-03-19 11:10:45 +01:00
Léo Lam 194b0ae36d IOS: Add NandUtils
This keeps the ES specific NAND code in a single place and makes it
reusable. Eventually, other ES specific code will be moved to it.
2017-03-19 11:10:45 +01:00
Anthony 9604a06921 Merge pull request #5102 from leoetlino/channel-title-type
Check whether WAD is a channel before reading names
2017-03-18 23:30:27 -07:00
Matthew Parlane cb87b25ac6 Merge pull request #5106 from lioncash/constant
Memmap: Replace '0' constant with nullptr
2017-03-19 16:42:36 +13:00
Matthew Parlane 036d676230 Merge pull request #5107 from lioncash/unused
ES: Remove unused string format argument in LaunchPPCTitle
2017-03-19 16:41:28 +13:00
Lioncash 8e999b209a NetPlayClient: Eliminate variable shadowing
Gets rid of two -Wshadow warnings
2017-03-18 22:58:07 -04:00
aldelaro5 8bf27cf42f Fix memory breakpoint when checking the middle of the data
If the delimiters of a memory aren't exactly the same as an address, but their size includes the memory breakpoint delimiter, the break will not go through.  This makes it so that you can specify a search for a memory breakpoint with a data size and will check if the data fits with that size on all memory breakpoints so the breaks go through.
2017-03-18 22:48:57 -04:00
Lioncash 3404057732 ES: Remove unused string format argument in LaunchPPCTitle
Gets rid of a -Wformat-extra-args warning.
2017-03-18 22:44:46 -04:00
Lioncash 2b8abddadf Memmap: Replace '0' constant with nullptr 2017-03-18 22:35:35 -04:00
Lioncash 44fb429e7e EXI: Namespace device classes 2017-03-18 21:13:12 -04:00
Léo Lam c987f58319 Check whether WAD is a channel before reading names
Dolphin assumes that content 0 is opening.bnr, without checking
whether content 0 exists or if it is even supposed to be there (it's
only there for channels). This results in sometimes reading garbage.

This adds a check to only try to read names from content 0's header
if the title is a channel (channel, system channel or game channel).
2017-03-18 19:07:11 +01:00
Matthew Parlane ce034a8186 Merge pull request #5101 from JosJuice/es-launch-wii-menu
Display a different error message when failing to ES_Launch the Wii Menu
2017-03-19 01:00:59 +13:00
JosJuice 998a215a0d Display a different error message when failing to ES_Launch the Wii Menu
Trying to return to the Wii Menu from a game is the easiest
way to trigger this error. Just saying 0000000100000002
when that happens doesn't mean much to most users.
2017-03-18 12:13:17 +01:00
JosJuice 9d54e4a9de Return a more meaningful type from GetSysMenuRegion 2017-03-18 10:13:36 +01:00
JosJuice 04c49aa395 Fix GetSysMenuRegion's handling of Wii Menu 1.0
This was a regression in 58bd129.
2017-03-18 10:13:31 +01:00
JosJuice 19d6092847 Display nicer version strings for the Wii Menu
The Tools > Load System Menu option displays the version of the
installed Wii Menu. This commit changes the way we display that
version, like so: "Load System Menu 514P" -> "Load System Menu 4.3E"

The numbers are from http://wiibrew.org/wiki/System_Menu
2017-03-18 10:08:13 +01:00
Markus Wick 08351aa334 Merge pull request #5005 from aldelaro5/remove-save-load-debug
Don't save watches and breakpoints on stop and load on boot
2017-03-18 08:45:01 +01:00
Markus Wick 609d195822 Merge pull request #5100 from VinDuv/fix-texture-type-checks
OGL: Fix texture_type checks in FrameBufferManager::CreateTexture
2017-03-18 08:35:44 +01:00
Matthew Parlane 8669426b0b Merge pull request #5092 from lioncash/namespace
SI: Namespace device classes
2017-03-18 19:30:38 +13:00
Vincent Duvert bbb5945375 OGL: Fix texture_type checks in CreateTexture
The FrameBufferManager::CreateTexture (from the OpenGL backend) method introduced by commit 69cedf41 incorrectly compares the texture variable (which contains a name provided by glGenTextures) against GL_TEXTURE_2D_MULTISAMPLE_ARRAY and GL_TEXTURE_2D_MULTISAMPLE.
It should instead use the texture_type variable for this (as done in the first branch of the if).
2017-03-17 23:53:56 +01:00
Markus Wick b7f605e88e Merge pull request #5097 from MerryMage/pic
PIE support for the DSP JIT
2017-03-17 22:24:03 +01:00
MerryMage 5e7d01dea4 DSPJitRegCache: Remove ebp_store
Restoring RBP before function calls is a no-op.
2017-03-17 17:10:25 +00:00
MerryMage 14739c55c3 DSP/Jit: PIE support 2017-03-17 17:10:24 +00:00
Markus Wick b7ba391041 Merge pull request #5084 from MerryMage/Update_SR_Register
DSP/Jit: Explicitly specify scratch register for Update_SR_Register
2017-03-17 17:21:21 +01:00
Matthew Parlane 47fe78a76a Merge pull request #5094 from lioncash/magic
SI: Convert SI buffer from a C array to std::array
2017-03-17 20:49:26 +13:00
Matthew Parlane 9b883d999e Merge pull request #5095 from JosJuice/simplify-getsysmenuregion
Simplify GetSysMenuRegion
2017-03-17 20:47:36 +13:00
Markus Wick a0acdfc070 Merge pull request #5029 from ligfx/bboximagemask
OGL: implement Bounding Box on systems w/o SSBO
2017-03-16 21:39:17 +01:00
aldelaro5 4738e3195c Fix memory breakpoints not triggering on Windows
For some reasons, they worked on Linux even though it was incorrect, this commit does it correctly and so it fixes that on Windows.
2017-03-16 16:31:20 -04:00
BhaaL 1470c346b6 change parameter names to match our coding style while we're at it 2017-03-16 18:22:51 +01:00
BhaaL d0d91f2530 add the hash for the PAL v1.1 BIOS
reported on the forums by user hackintoshftw1
2017-03-16 18:22:51 +01:00
BhaaL 70a25bef4c put the source reference onto its own line to avoid the awkward formatting
also, make them constexpr, because i guess it makes sense...
2017-03-16 18:22:51 +01:00
Markus Wick 907e73a1fc Merge pull request #5012 from degasus/BAT
MMU: Create constants for our BAT flags.
2017-03-16 16:02:16 +01:00
Jules Blok cbfb07152f VertexShaderGen: Correct for negative viewport dimensions. 2017-03-16 12:34:19 +01:00
JosJuice ff7425214a Use 6-char game IDs for NAND tiles (if they are printable)
5.0-2712 made ES's code for setting the game ID use the
title ID converted to hex (except for disc titles) instead
of using a 6-char game ID like before. Then, 5.0-2830 made
us use that code even when loading game INIs. This breaks the
expectations of both users and the game INIs we ship with.

This commit makes Dolphin use 6-char game IDs for all
titles (unless the 6-char ID would contain unprintable
characters, which is the case with e.g. the Wii Menu).

I'm also putting unprintability checks in VolumeWad
for consistency.
2017-03-16 11:21:31 +01:00
JosJuice 58bd129987 Simplify GetSysMenuRegion 2017-03-16 10:45:57 +01:00
Lioncash 6cf3c2262c SI: Convert SI buffer from a C array to std::array
Stronger typing (no implicit pointer decay), nicer aggregate
initialization.

Also gets rid of magic constants where applicable.
2017-03-16 05:37:03 -04:00
Markus Wick bb708397db Merge pull request #5090 from lioncash/si
SI: Minor cleanup
2017-03-16 09:57:04 +01:00
Lioncash f0eeb3c63a SI: Namespace device classes
Places all of the SI code under the SerialInterface namespace instead of
only the main source file. This keeps all SI code under a common name,
as well as out of the global namespace
2017-03-16 04:41:39 -04:00
Lioncash 9c3b35fccb EXI: Move enum constants into the ExpansionInterface namespace
Given these are related to EXI itself, these should be within the
namespace itself.
2017-03-16 02:06:29 -04:00
Lioncash a728d858b3 SI: Move MAX_SI_CHANNELS into the SerialInterface namespace
Given this constant is related to the serial interface, it shouldn't be
outside of the namespace.
2017-03-16 01:57:57 -04:00
Lioncash 46991e2bdd SI: Amend variable naming 2017-03-16 01:37:50 -04:00
Michael Maltese 134317e07f videoconfig: add BBoxPreferStencilImplementation
@JMC47 requested this to be able to do performance comparisons.
2017-03-15 17:41:33 -07:00
Michael Maltese 53224d41d0 OGL: only create stencil buffer when needed 2017-03-15 17:41:33 -07:00
Michael Maltese ba6e917b49 OGL: implement Bounding Box on systems w/o SSBO
This commit should have zero performance effect if SSBOs are supported.

If they aren't (e.g. on all Macs), this commit alters FramebufferManager
to attach a new stencil buffer and VertexManager to draw to it when
bounding box is active. `BBoxRead` gets the pixel data from the buffer
and dumbly loops through it to find the bounding box.

This patch can run Paper Mario: The Thousand-Year Door at almost full
speed (50–60 FPS) without Dual-Core enabled for all common bounding
box-using actions I tested (going through pipes, Plane Mode, Paper
Mode, Prof. Frankly's gate, combat, walking around the overworld, etc.)
on my computer (macOS 10.12.3, 2.8 GHz Intel Core i7, 16 GB 1600 MHz
DDR3, and Intel Iris 1536 MB).

A few more demanding scenes (e.g. the self-building bridge on the way
to Petalburg) slow to ~15% of their speed without this patch (though
they don't run quite at full speed even on master). The slowdown is
caused almost solely by `glReadPixels` in `OGL::BoundingBox::Get`.

Other implementation ideas:

- Use a stencil buffer that's separate from the depth buffer. This would
  require ARB_texture_stencil8 / OpenGL 4.4, which isn't available on
  macOS.

- Use `glGetTexImage` instead of `glReadPixels`. This is ~5 FPS slower
  on my computer, presumably because it has to transfer the entire
  combined depth-stencil buffer instead of only the stencil data.
  Getting only stencil data from `glGetTexImage` requires
  ARB_texture_stencil8 / OpenGL 4.4, which (again) is not available on
  macOS.

- Don't use a PBO, and use `glReadPixels` synchronously. This has no
  visible performance effect on my computer, and is theoretically
  slower.
2017-03-15 17:41:32 -07:00
Michael Maltese 56fe938366 extract OGL::FramebufferManager::BindLayeredTexture 2017-03-15 17:20:47 -07:00
Michael Maltese 69cedf4144 extract OGL::FramebufferManager::CreateTexture 2017-03-15 17:20:47 -07:00
Michael Maltese de940a5fd6 VideoConfig: add bSupportsFragmentStoresAndAtomics 2017-03-15 17:20:47 -07:00
Anthony 8e6d256722 Merge pull request #5080 from leoetlino/ssl-verify
Default to SSL verify on
2017-03-15 13:56:56 -07:00
Markus Wick 1e7dd1ed2d Merge pull request #5086 from lioncash/si
SI_Devices: Minor cleanup
2017-03-15 10:07:27 +01:00
degasus 5152c997a4 MMU: Create constants for our BAT flags.
This avoids a few hard-coded constants in several files.
2017-03-15 09:20:40 +01:00
Lioncash 4df8ac7820 GCMemcardRaw: Amend variable naming 2017-03-15 00:16:45 -04:00
Lioncash 79246d9642 GCMemcardDirectory: Amend variable naming 2017-03-14 23:58:31 -04:00
Lioncash 647bec4c17 GCMemcard: Amend variable naming for MemoryCardBase 2017-03-14 23:58:27 -04:00
Lioncash 09d4871067 GCMemcard: Move memcard source files to their own directory
GCMemcard.h has quite a bit of different classes implemented within it
that could likely be split up into other files to make it a little
easier to read. However, they should be moved into their own folder
first so that they don't clutter up the base HW directory.
2017-03-14 21:55:25 -04:00
Lioncash 8b8a1f3b35 SI_DeviceKeyboard: Amend variable naming 2017-03-14 18:15:25 -04:00
Lioncash 4478b9bc9a SI_DeviceKeyboard: In-class initialize variables 2017-03-14 18:03:36 -04:00
Lioncash c45f8e2e3c SI_DeviceGCSteeringWheel: Amend variable naming 2017-03-14 17:54:18 -04:00
Lioncash 89f5b3b5d9 SI_DeviceGCAdapter: Amend variable naming 2017-03-14 17:47:56 -04:00
Lioncash e68e99ef71 SI_DeviceDanceMat: Amend variable naming 2017-03-14 17:46:09 -04:00
Léo Lam 834a3bf857 Default to SSL verify on
Defaulting to SSL verification off, *and* forcing it to be off even
when the emulated software asks us to enable it is very bad behaviour,
inaccurate and insecure.

Because the old option defaulted to off, we have to change the INI
option name to force the new default to be used. Unfortunate,
but without this we cannot ensure our users' security.
2017-03-14 20:57:49 +01:00
MerryMage 1020a3cb8e DSP/Jit: Explicitly specify scratch register for Update_SR_Register
There were cases when the value register was RDX and thus was being
clobbered as RDX was implictly used as a scratch register.
2017-03-14 19:18:56 +00:00
Anthony a3557ed199 Merge pull request #4964 from DisorderIy/arcode-removal-fix
Fix remove and add buttons not disabling after removing Action Replay code
2017-03-14 11:21:39 -07:00
Markus Wick 3aa5b8fbf6 Merge pull request #5079 from JosJuice/move-loadpatches
Move LoadPatches calls
2017-03-14 10:44:38 +01:00
Markus Wick 884d3973e4 Merge pull request #5083 from lioncash/si
SI_DeviceGCController: Minor cleanup
2017-03-14 10:37:28 +01:00
Markus Wick c30db8eddc Merge pull request #4932 from PEmu1/toggle-fullscreen
Change "Fullscreen" Menu Option to "Toggle Fullscreen"
2017-03-14 10:30:34 +01:00
Markus Wick d05f59e31d Merge pull request #4876 from ligfx/netplay_move_semantics
NetPlay: use move semantics instead of unique_ptrs
2017-03-14 10:20:47 +01:00
Lioncash 46fd06b956 SI_DeviceGCController: Amend variable names 2017-03-14 05:15:48 -04:00
Markus Wick 31bb41c532 Merge pull request #4973 from z0z0z/master
Disable pinned memory for AMD mesa drivers
2017-03-14 10:02:05 +01:00
Lioncash 890f799fdd SI_DeviceGCController: In-class initialize variables 2017-03-14 03:34:52 -04:00
Jules Blok 0a2b58c896 OGL: Remove support for NV_depth_buffer_float.
We can't clamp the depth values to the 24-bit range while this extension is active.
2017-03-14 01:02:13 +01:00
Lioncash 225ac37f21 SDIOSlot0: Separate IOCtl/IOCtlV behavior into individual functions
Keeps the individual behaviors separate from one another.
2017-03-13 18:43:04 -04:00
JosJuice 09682cfaa4 Move LoadPatches calls
LoadPatches was apparently never being called when booting
Wii discs. Maybe this will fix the recent regression with
cheat codes not getting loaded? I don't know how this
managed to work to begin with, though...

(The call was also moved for WADs, just for consistency.)
2017-03-13 22:29:55 +01:00
Michael Maltese 1b0701e988 Make ControllerEmu::BooleanSetting non-virtual 2017-03-13 13:47:06 -07:00
Michael Maltese c4ba046aa3 Remove unused ControllerEmu::BackgroundInputSetting 2017-03-13 13:47:01 -07:00
Michael Maltese 24a5411af5 Move 'Background Input' to controller config dialog 2017-03-13 13:43:20 -07:00
Michael Maltese 8adad0729e Implement hotkey options group in HotkeyInputConfigDiag 2017-03-13 13:39:52 -07:00
Michael Maltese a6bc56b626 InputConfigDiag: make m_iterate protected, not private 2017-03-13 13:22:09 -07:00
Michael Maltese a1978c28f9 HotkeyInputConfigDiag: set DeviceRelatedSizer to wxEXPAND
Somehow it acts as though it has wxEXPAND, but that stops working if the
code is edited (as in the next commit).
2017-03-13 13:22:09 -07:00
Markus Wick f0c2bae778 Merge pull request #5078 from lioncash/si
SI_DeviceGBA: Minor cleanup
2017-03-13 21:00:36 +01:00
Markus Wick 13d23c21b7 Merge pull request #5071 from leoetlino/reorganise-es
IOS/ES: Split the ES code
2017-03-13 20:51:22 +01:00
Markus Wick 3df19c6643 Merge pull request #5075 from lioncash/cruft
DSPLLE: Remove commented out code
2017-03-13 20:47:27 +01:00
Lioncash deda29d7ff SI_DeviceGBA: Amend printf formatting specifier for size_t
%zu is the correct specifier for printing size_t.
2017-03-13 15:28:07 -04:00
Lioncash 8d2078de2d SI_DeviceGBA: Amend variable naming 2017-03-13 15:27:36 -04:00
Léo Lam 204703ae0d IOS/ES: Split the ES code
ES.cpp was becoming pretty huge. This commit splits the ES code into
several files:

* Main ES (launch, UID, current title directory and title ID, etc.)
* Device identity and encryption (ID and cert, keys, encrypt/decrypt)
* Title management (imports, exports, deletions)
* Title contents (open/close/read/seek)
* Title information (titles, stored contents, TMDs)
* Views (for tickets and TMDs)
2017-03-13 20:01:08 +01:00
Lioncash 9f40596de5 SI_DeviceGBA: Make GBASockServer's constructor explicit
Prevents potential implicit construction scenarios involving ints.
2017-03-13 14:53:50 -04:00
Lioncash 14f261079f SI_DeviceGBA: Place implementations within the cpp file
Prevents potential recompilation of other files if these ever need to
change.
2017-03-13 14:51:18 -04:00
Lioncash 64aa7f3b8f SI_DeviceGBA: Use std::array class members instead of C arrays 2017-03-13 14:46:35 -04:00
Lioncash ea59d30e9f SI_DeviceGBA: In-class initialize variables 2017-03-13 13:52:45 -04:00
Lioncash 70b1933661 SI_DeviceGBA: Store the device number as an int
This prevents truncation when assigning to this member in the
constructor. This isn't size-critical code, so opting for the more
straightforward assignment is fine here.
2017-03-13 13:30:02 -04:00
Lioncash 31644eaf93 DSPLLE: Remove commented out code
Just throwing out the trash
2017-03-13 12:36:53 -04:00
Lioncash f183d6759a HW/DSP: Remove prefixed underscores from parameter names
Avoids stepping on potentially reserved names and is more consistent
with the rest of the surrounding code.
2017-03-13 12:27:38 -04:00
JosJuice 98b4ff12f4 FileMonitor: Move file system parsing to DVD thread 2017-03-13 17:13:20 +01:00
JosJuice b470fa5454 FileMonitor redesign
Advantages:

* Simpler code in general
* No extra volume objects created
* Now actually notices if the disc or partition gets
  changed while the core is running
* No longer picks up on disc access done by the GUI
  (it used to do so as long as the core was running)
* Gets rid of a Core dependency in DiscIO

There are two performance disadvantages:

* FileMonitor is now a bit slower when used with VolumeDirectory
  because FileMonitor now always uses the FileSystemGCWii code
  for finding filenames instead of VolumeDirectory finding the
  filename on its own and directly hooking into FileMonitor.
  But this isn't such a big deal, because it's happening on the
  DVD thread, and my currently unmerged file system PR will make
  FileSystemGCWii's file finding code about as fast as
  VolumeDirectory's.
* FileMonitor's creation of the file system object is now
  done on the CPU thread instead of the DVD thread, and
  it will be done even if FileMonitor logging is disabled.
  This will be fixed in the next commit.
2017-03-13 17:13:20 +01:00
Markus Wick 8035270aa8 Merge pull request #4411 from JosJuice/blob-nullptr
Remove Blob nullptr checks from Volume code
2017-03-13 16:35:40 +01:00
JosJuice 652b323715 Fix VolumeIsValid being referenced even though it was deleted
PR #3582 removed VolumeIsValid, then PR #3582 added a call
to VolumeIsValid, then both PRs were merged without either
of them being rebased on top of the other.
2017-03-13 15:37:08 +01:00
Markus Wick 7b19475911 Merge pull request #4548 from stenzek/gcc-sse
Support SSSE3 texture decoders and CRC32 hashing on non-native builds (gcc)
2017-03-13 14:28:01 +01:00
JosJuice c48ee87f0a Merge pull request #3582 from JosJuice/disc-inside-cleanup
DVDInterface: Cleanup for setting/getting whether a disc is inside
2017-03-13 14:26:15 +01:00
JosJuice acec02ffc6 Remove Blob nullptr checks from Volume code
There's no point in creating a volume without a blob,
since essentially all the functionality of a volume
requires a blob to be used.

Also, VolumeCreator doesn't support creating volumes
without blobs (it can't even figure out the volume type
unless it gets a blob), so it's currently impossible
for a volume to be created without a blob.
2017-03-13 14:13:55 +01:00
Markus Wick f63d40270d Merge pull request #5056 from JosJuice/use-readswapped
Volume: Use ReadSwapped more
2017-03-13 10:30:55 +01:00
Matthew Parlane 1eba936749 Merge pull request #5072 from lioncash/const
DSPEmitter/DSPInterpreter: Remove unnecessary const specifiers from function declaration parameters
2017-03-13 14:13:53 +13:00
Lioncash ade7718636 DSPInterpreter: Remove unnecessary const specifiers from function declaration parameters 2017-03-12 17:38:04 -04:00
Lioncash a33cd805f9 DSPEmitter: Remove unnecessary const specifiers from function declaration parameters
These only matter for types being passed by value within the definition,
not the declaration.
2017-03-12 17:37:07 -04:00
Léo Lam 2111e4dd92 IOS/ES: Fix GetStoredContentsFromTMD
We were checking for the wrong files (title content directory instead
of checking whether the content files themselves exist)... Whoops!
2017-03-12 14:32:01 +01:00
Starsam80 0f44d22db5
Fix `ReadCertFile` by opening as binary file 2017-03-11 23:44:30 -07:00
Matthew Parlane b1bd231421 Merge pull request #5020 from leoetlino/es-safer-import
IOS/ES: Implement ES_AddTitleCancel (and slightly safer import process)
2017-03-12 16:14:17 +13:00
Matthew Parlane c62fc192ef Merge pull request #5027 from leoetlino/ssl-check
IOS/SSL: Make sure we are using a correct cert/key
2017-03-12 16:13:37 +13:00
Matthew Parlane d042121ebd Merge pull request #5043 from lioncash/net
IOS/Network/IP/Top: Separate behaviors into their own functions
2017-03-12 16:12:43 +13:00
Matthew Parlane 29cf19f3d0 Merge pull request #5066 from leoetlino/personalised-tickets
IOS/ES: Handle personalised tickets properly
2017-03-12 16:12:21 +13:00
Lioncash 26e9c54886 DSPEmitter: Make helper functions private
Given none of these are used outside of the DSPEmitter class (nor does
it really make sense to allow them to be used outside of the class),
these should all be made private.
2017-03-11 20:33:07 -05:00
MerryMage dc1a8c46e9 DSP/Jit: Load address of m_cycles_left into register
On some platforms, the address of m_cycles_left exceeds the maximal 32-bit
offset from RIP.
2017-03-11 22:51:41 +00:00
Léo Lam 9c31d6f5c5 IOS/ES: Handle personalised tickets properly
IOS unpersonalises device-specific ("personalised") tickets prior to
storing them on the NAND.
2017-03-11 21:14:26 +01:00
Mat M 71273c05a9 Merge pull request #5054 from leoetlino/es-get-contents
IOS/ES: Implement ES_GetStoredContents ioctlvs properly
2017-03-11 10:52:53 -05:00
Mat M 3d041fa4ea Merge pull request #5055 from leoetlino/es-ticket-view-fix
IOS/ES: Fix GetViews to not check for the TMD
2017-03-11 10:50:50 -05:00
Stenzek 27d7a1646c Merge pull request #5065 from JosJuice/character
Fix issue 10146 (compilation issue because of colliding defines)
2017-03-11 18:26:26 +10:00
JosJuice 40e707348c Fix issue 10146 (compilation issue because of colliding defines) 2017-03-11 08:59:14 +01:00
Léo Lam 3cbf47d51d IOS/ES: Fix GetViews to not check for the TMD
Using DiscIO's NAND content loader is the wrong way to get the ticket
for a title, because it checks whether the TMD is present and the
validity check fails if it isn't. This is not the correct behaviour:
we should just read the ticket from /ticket without caring about TMDs.
2017-03-10 22:59:34 +01:00
Léo Lam 28519328d2 IOS/ES: Implement ES_GetStoredContents ioctlvs properly
* IOS doesn't rely on the number of contents indicated in the TMD.
  Instead, it checks whether the contents *do* exist on the NAND.

* Implement ES_GetTMDStoredContents (and the count ioctlv).

* Drop a hack in ES_GetStoredContents, which is unnecessary now that
  we do it properly.
2017-03-10 22:45:08 +01:00
Léo Lam 62ea76e04c IOS/ES: Clear /import on ES initialization
Something IOS does and we didn't do.
2017-03-10 22:44:26 +01:00
Léo Lam d6499aba50 IOS/ES: Implement ES_AddTitleCancel 2017-03-10 22:44:26 +01:00
Léo Lam e656258949 IOS/ES: Write import files to /import first
This is slightly safer than writing contents to /title directly.
We still cannot rename everything in one go atomically, but this allows
implementing AddTitleCancel very easily.

Also, this ensures that when a title import fails, no incomplete files
will be left in the title directory, which can mess up the system menu.
2017-03-10 22:44:26 +01:00
Michael Maltese 418a7723c8 GLExtensions: remove NV_depth_buffer_float from OpenGL 3.0
Regression introduced in e99cd57 / 4935: VideoBackends: Set the maximum
range when the depth range is oversized[1]. The NV_depth_buffer_float
extension is not part of OpenGL 3.0, and requiring it causes a hard
crash when it's not supported (e.g. macOS).

[1]: https://github.com/dolphin-emu/dolphin/pull/4935
2017-03-10 12:54:46 -08:00
Markus Wick e99cd57eb3 Merge pull request #4935 from Armada651/depth-range-fix
VideoBackends: Set the maximum range when the depth range is oversized.
2017-03-10 18:05:52 +01:00
Jules Blok 3f41e6d4cf RenderBase: Check if early ztest is enabled before falling back to vertex depth range. 2017-03-10 15:43:32 +01:00
Stenzek 42993eeabc D3D11: Fix error on startup with >2.5xIR selected 2017-03-10 23:41:20 +10:00
Markus Wick ae0f9c200d Merge pull request #5038 from vladfi1/separate-nogui
Separate nogui
2017-03-10 10:50:08 +01:00
Lioncash b61ce51d3b IOS/Network/IP/Top: Separate behaviors into their own functions
Localizes behavior and separates the code out from the IOCtl/IOCtlV
switch blocks.
2017-03-09 20:58:45 -05:00
Markus Wick ef74c5eabd Merge pull request #5051 from stenzek/renderer-fixes
VideoBackends: Fix crashes introduced by #4999
2017-03-09 21:06:50 +01:00
JosJuice 135733e285 Volume: Use ReadSwapped more
Most of the Volume code was written before this
convenience function was added. Let's use it more.

Also deleting m_pReader nullptr checks that are
unnecessary because of Read (which ReadSwapped calls)
already having a nullptr check.
2017-03-09 21:03:28 +01:00
Anthony cf848b7c42 Merge pull request #5045 from JosJuice/unify-setting-game-metadata
Unify the way of setting game ID, title ID, revision
2017-03-09 18:13:02 +00:00
JosJuice ab616145c2 Get the right game ID for SSBB's Masterpiece partitions 2017-03-09 18:47:40 +01:00
JosJuice e04245a10e ConfigManager: Hack for getting the right revision on ES_Launch 2017-03-09 18:07:20 +01:00
Anthony dc42f7fb28 Merge pull request #4991 from leoetlino/config-loaders
New config loaders
2017-03-09 16:56:14 +00:00
JosJuice ced1614cac Unify the way of setting game ID, title ID, revision
The existing code from ConfigManager, ES and MIOS is merged
into a new set of functions called SetRunningGameMetadata.
2017-03-09 15:34:14 +01:00
Stenzek 2cd240af0d VideoBackends: Move max texture size to VideoConfig
This stops the virtual method call from within the Renderer constructor.

The initialization here for GL had to be moved to VideoBackend, as the
Renderer constructor will not have been executed before the value is
required.
2017-03-10 00:04:13 +10:00
Stenzek 4012166085 VideoCommon: Fix crash at startup with virtual XFB enabled 2017-03-09 23:39:48 +10:00
Léo Lam 2f02cc2996 IOS/SSL: Make sure we are using a correct cert/key
This adds a check to the SSL code to make sure we are using the correct
client certificate and key (and root CA).

Now, instead of silently failing, the user will be notified whenever a
file is missing or when it is invalid, i.e. when the hash does not
match; this is likely to happen for existing users as the program
linked in the network guide extracted the wrong certs :(
2017-03-09 13:57:23 +01:00
Lioncash 40cdd32760 GCMemcard: Mark class constructors explicit where applicable
Prevents potential implicit instantation.
2017-03-08 19:11:16 -05:00
Anthony 883bec873f Merge pull request #4939 from sjnewbury/gamelist-text
Always use visible text in GameList
2017-03-08 22:38:23 +00:00
Léo Lam dc224cba3c IOS/ES: Partially restore hack to fake IOS titles
This partially restores a hack which causes ES to fake ticket views for
IOS titles.

This is necessary because we still allow users to boot games from the
game list, so, with no way of making sure the required IOSes are
installed beforehand, games may OSPanic() when they try to reload to
some IOS version and just find out that the IOS is not installed
(something which *never* happens on the real console, of course).

A warning is printed in the logs to make sure technical users know the
IOS titles are being faked. To try and keep things accurate in all
other cases, this hack is only active when it is needed (when the
current title is a disc title which was launched from the game list).
2017-03-08 23:09:10 +01:00
Matthew Parlane cd826cee34 Merge pull request #5039 from leoetlino/es-import-hash-check
IOS/ES: Check the content hash during imports
2017-03-09 10:58:06 +13:00
Vlad Firoiu 68adcbd209 Don't special-case nogui exe name on Apple. 2017-03-08 13:17:49 -08:00
Markus Wick be8de62b88 Merge pull request #5041 from JosJuice/hi-2007
PatchEngine: Remove an unneeded comment
2017-03-08 21:23:40 +01:00
JosJuice 08954e99f5 PatchEngine: Remove an unneeded comment 2017-03-08 21:03:10 +01:00
JosJuice a1f874a66b ConfigManager: Remove m_strName
m_strName has limited usefulness, because GetInternalName()
can be inaccurate or even completely wrong. It was almost
completely unused anyway.
2017-03-08 21:01:57 +01:00
JosJuice ac3bf7ad0b DVDInterface: Assert IsDiscInside() in GetVolume() 2017-03-08 19:27:04 +01:00
JosJuice a176bf0229 DVDInterface: Remove VolumeIsValid
It's the same as IsDiscInside.
2017-03-08 19:27:00 +01:00
JosJuice 3b632f5990 DVDInterface: Remove SetDiscInside
It's only a call to SetLidOpen now.
2017-03-08 19:26:56 +01:00
JosJuice 167d16ded6 DVDInterface: Remove the SetLidOpen parameter
The lid must always be consistent with whether a disc is inserted.
Callers shouldn't be able to set inconsistent states.
2017-03-08 19:26:50 +01:00
JosJuice 900793ef1d DVDInterface: Remove s_disc_inside
There's no point in having a variable for whether there is a disc
when it's simpler to just directly check whether there is a disc.
2017-03-08 19:26:31 +01:00
Steven Newbury 28f4793785 Always use visible text in GameList
Depending upon the desktop colour scheme, the light/dark
GameList backgrounds can cause the always white text
to become unreadble.

Use the common luminance approximation algorithm to
determine whether black text should be used instead.
2017-03-08 18:03:51 +00:00
JosJuice 740e4d0992 DVDInterface: Move a check from SetDiscInside to SetLidOpen 2017-03-08 18:35:40 +01:00
JosJuice 0abf875a3f DVDInterface: Call SetDiscInside when setting volume
SetDiscInside is an implementation detail that callers shouldn't
have to call on their own.
2017-03-08 18:35:40 +01:00
Léo Lam daa5ff9a81 IOS/ES: Check the content hash during imports
This adds a hash check for imported contents. IOS does it for security;
we do it for a somewhat different reason, to catch content decryption
bugs before incorrectly decrypted contents get written to the NAND,
which can cause titles to be corrupted.

Either way, we should have been doing this check in all cases.
2017-03-08 16:32:38 +01:00
Markus Wick 489d90b6f3 Merge pull request #4999 from stenzek/renderer-statics
VideoCommon: Eliminate static state in Renderer
2017-03-08 11:02:20 +01:00
Markus Wick 9c1eac1f4f Merge pull request #4944 from vladfi1/framedump
Framedump extensions
2017-03-08 11:01:53 +01:00
Markus Wick a911d256a7 Merge pull request #5018 from Tilka/trunc
VideoCommon: remove unnecessary trunc()
2017-03-08 11:01:17 +01:00
Vlad Firoiu 096f58b172 Save new framedump options. 2017-03-08 01:38:40 -08:00
Vlad Firoiu bc9db6de56 Moved NoGUI out of DolphinWx. 2017-03-08 01:24:18 -08:00
Vlad Firoiu 6a89cf0201 Moved X11Utils into UICommon. 2017-03-08 01:24:10 -08:00
Markus Wick 7cc5604a2c Merge pull request #5033 from vladfi1/nogui-user
Parse user directory on nogui CLI.
2017-03-08 10:04:12 +01:00
Markus Wick ac914e939b Merge pull request #5035 from lioncash/out-of-bounds
GCAdapter_Android: Fix an array bounds overrun in Read()
2017-03-08 10:01:34 +01:00
Florent Castelli b69d3f13cb common: Don't include intrin.h in a namespace
Fixes compilation with VS2017
2017-03-08 06:55:06 +01:00
Florent Castelli cf68ecf066 core: Add missing include 2017-03-08 06:55:05 +01:00
Matthew Parlane 028da93d35 Merge pull request #5030 from sepalani/fix_pr_5002
Fix a vector assertion introduced by PR #5002
2017-03-07 23:23:11 +13:00
Matthew Parlane cfc909f422 Merge pull request #4867 from lioncash/simplify
Boot_WiiWAD: Simplify state_checksum()
2017-03-07 18:27:50 +13:00
Matthew Parlane 52f22e240b Merge pull request #5031 from lioncash/cast
CachedInterpreter: Get rid of an unnecessary cast
2017-03-07 18:11:00 +13:00
Matthew Parlane 4d02d38bf0 Merge pull request #5032 from lioncash/const
Memmap/PowerPC: Remove unnecessary const on function declaration parameters
2017-03-07 18:10:31 +13:00
Lioncash b914edd441 GCAdapter_Android: Fix an array bounds overrun in Read()
s_controller_payload is 37 bytes long, but Read() would copy 0x37 (a.k.a
55) bytes, overrunning the array.
2017-03-06 23:05:17 -05:00
Lioncash 26f7f55a66 GeneralConfigPane: Fix analytics sizer's right side being misaligned by 5 units 2017-03-06 22:19:54 -05:00
Vlad Firoiu ac3586f46c Parse user directory on nogui CLI. 2017-03-06 12:24:38 -08:00
Lioncash 4d1a4ba759 PowerPC: Remove unnecessary const on function declaration parameters 2017-03-06 14:10:33 -05:00
Lioncash 248a04f68f Memmap: Remove unnecessary const on function declaration parameters
const, when used on value type parameters in the declaration,
is superfluous. This doesn't really convey any information to take note
of when using the function. This only matters in the definition when you
want to prevent accidental modification.

e.g.

// Header
void CalculateSomething(int lhs, int rhs);

// Definition
void CalculateSomething(const int lhs, const int rhs)
{
  // lhs and rhs can't accidentally be modified
}
2017-03-06 14:08:07 -05:00
Lioncash a9c570a9f8 CachedInterpreter: Get rid of an unnecessary cast
This is only ever used to read a value and not modify data, so this can
just be constructed by value.
2017-03-06 13:18:46 -05:00
Matthew Parlane 7d681f9c93 Merge pull request #5016 from leoetlino/es-di-gettmd
IOS/ES: Implement ES_DIGetTMDView (and GetTMDViewSize)
2017-03-07 00:05:47 +13:00
Sepalani bc1990ce5d Fix a vector assertion introduced by PR#5002 2017-03-06 01:41:42 +00:00
Vlad Firoiu 71c0e30655 Appease linter. 2017-03-05 17:29:46 -08:00
Vlad Firoiu fbff74c1eb Warn on invalid video codec. 2017-03-05 17:08:59 -08:00
Vlad Firoiu 9155af5103 GetDumpPath function. 2017-03-05 17:08:59 -08:00
Vlad Firoiu 8c24387509 Use ffv1 if user requests it. 2017-03-05 17:08:59 -08:00
Matthew Parlane f9f4381461 Merge pull request #4525 from RisingFog/gci_dtm
GCI Folder support for TAS Recording/Playback
2017-03-06 13:26:16 +13:00
Chris Burgener 5193813b50 GCI Folder support for TAS Recording/Playback 2017-03-05 19:12:09 -05:00
Mat M 029ff4d9e5 Merge pull request #5022 from lioncash/header
BTStub: Get rid of an unnecessary forward declaration in the cpp file
2017-03-05 19:03:56 -05:00
Léo Lam dd8b0e3c3f IOS/ES: Fix logging type for dumping unknown ioctlvs 2017-03-06 00:38:13 +01:00
Léo Lam 5049451a85 IOS/ES: Implement ES_DIGetTMDView (and GetTMDViewSize)
This is required for online updates to work in the system menu.
2017-03-05 22:44:58 +01:00
Lioncash f80f875e27 BTStub: Get rid of an unnecessary forward declaration in the cpp file
This should be using the header file in order to find the function name.
2017-03-05 09:51:47 -05:00
Ryan Houdek 9373c7eca9 Update Visual Studio build files 2017-03-05 15:47:25 +01:00
Ryan Houdek 711f1cb7a3 Add core loaders to cmake 2017-03-05 15:47:25 +01:00
Ryan Houdek b93609e1ff Movie configuration loader 2017-03-05 15:47:25 +01:00
Ryan Houdek 1902f9f35a NetPlay configuration loader 2017-03-05 15:47:25 +01:00
Léo Lam b0d54a67cc GameConfigLoader: Fix issues mentioned in code review 2017-03-05 15:47:25 +01:00
Léo Lam fa98d07f7a GameConfigLoader: Implement missing Save function 2017-03-05 15:47:24 +01:00
Léo Lam 4761afe179 GameConfigLoader: Ignore unknown entries
It's not necessarily an issue. For example, memory breakpoints are
handled in a different location.
2017-03-05 15:47:24 +01:00
Ryan Houdek 9dbb6f9022 Game configuration loader 2017-03-05 15:47:24 +01:00
Ryan Houdek 1eb11b55a0 Base configuration loader 2017-03-05 15:47:24 +01:00
Ryan Houdek 94d35ab7cb Implement command line option setting 2017-03-05 15:47:23 +01:00
Ryan Houdek ead8be9d19 Move IniFile section chunk handling to IniFile::Section 2017-03-05 15:47:23 +01:00
Léo Lam b7a1c6f504 Logging: Add CORE type 2017-03-05 15:47:23 +01:00
Mat M 7fa14169e9 Merge pull request #5007 from lioncash/swap
Common: Move byte swapping utilities into their own header
2017-03-05 09:45:29 -05:00
Tillmann Karras 8a72e84ece VideoCommon: remove unnecessary trunc() 2017-03-05 01:53:54 +00:00
Matthew Parlane c2594695b8 Merge pull request #5001 from leoetlino/es-titles
IOS/ES: Fix ES_GetTitles and implement ES_GetOwnedTitles
2017-03-05 14:28:28 +13:00
Lioncash 0e5a367ca3 SysConf: const-correctness 2017-03-04 19:19:42 -05:00
Lioncash 1ebd2cd7c3 SysConf: Get rid of pointer casts 2017-03-04 19:06:22 -05:00
Léo Lam 52e8486b7c IOS/ES: Refactor GetTitles into a utility function 2017-03-04 20:33:35 +01:00
Léo Lam 1525396ecf IOS/ES: Properly handle missing TMD in GetStoredTMD
When the TMD doesn't exist on the NAND, IOS returns -106.

This commit also changes IsValid() to not check for the TMD validity,
since this is not always something we want. (IOS can have different
error codes when the TMD is missing, or even worse, simply assume
that the TMD is valid.)
2017-03-04 20:33:35 +01:00
Léo Lam b1ffbef5ce IOS/ES: Implement ES_GetOwnedTitles 2017-03-04 20:33:35 +01:00
Léo Lam 35995e98d7 IOS/ES: Fix GetTitles implementation
IOS determines installed titles by looking at /title, not uid.sys,
which is more like a history of installed titles. And it does not care
at all about the installed TMD (or even if it is present at all).
2017-03-04 20:33:34 +01:00
Markus Wick 7304cb0f8e Merge pull request #5011 from stenzek/d3d-texture-corruption
D3D11: Use default usage for TextureCache entries
2017-03-04 15:55:58 +01:00
Stenzek 725d5bc3a1 D3D11: Drop unused method ReplaceRGBATexture2D 2017-03-04 22:37:10 +10:00
Stenzek 526fa9bc85 D3D11: Use D3D11_USAGE_DEFAULT for all TextureCache textures 2017-03-04 22:36:33 +10:00
Markus Wick 3c511f2a94 Merge pull request #5003 from lioncash/memory
UICommon: Make GetNewDisassembler() return a unique_ptr
2017-03-04 12:14:35 +01:00
Markus Wick 01143d761e Merge pull request #5006 from lioncash/settings
ControllerEmu: Initialize settings class' values to default values on construction
2017-03-04 12:13:24 +01:00
Stenzek 4cea9a2f99 Vulkan: Fix underflow in StreamBuffer::WaitForClearSpace
This could cause the assertion on line 212 to fail when uploading large
amounts of data in between command buffer executions.
2017-03-04 18:07:04 +10:00
Stenzek 459a5ab554 Android: Move screenshot waiting logic to Renderer 2017-03-04 16:53:16 +10:00
Stenzek 811eafda57 VideoCommon: Store last window request width/height
This avoids the need to send a window resize event every frame.
2017-03-04 16:53:12 +10:00
Stenzek 00a0a91513 VideoCommon: Move last EFB scale handling to CalculateTargetSize 2017-03-04 16:53:07 +10:00
Stenzek afc25fdca0 VideoCommon: Rename Renderer s_ prefixes to m_ 2017-03-04 16:42:21 +10:00
Stenzek 238a70b006 VideoCommon: Move some common initialization logic to RenderBase 2017-03-04 16:42:16 +10:00
Stenzek 277829d842 VideoCommon: Eliminate static state in Renderer 2017-03-04 16:39:50 +10:00
Anthony de230f3ebe Merge pull request #4998 from stenzek/vulkan-aspect-changes
Vulkan: Fix issue where target rectangle changes weren't detected
2017-03-03 21:47:29 -08:00
Lioncash 552c0d8404 Common: Move byte swapping utilities into their own header
This moves all the byte swapping utilities into a header named Swap.h.

A dedicated header is much more preferable here due to the size of the
code itself. In general usage throughout the codebase, CommonFuncs.h was
generally only included for these functions anyway. These being in their
own header avoids dumping the lesser used utilities into scope. As well
as providing a localized area for more utilities related to byte
swapping in the future (should they be needed). This also makes it nicer
to identify which files depend on the byte swapping utilities in
particular.

Since this is a completely new header, moving the code uncovered a few
indirect includes, as well as making some other inclusions unnecessary.
2017-03-03 17:18:18 -05:00
Lioncash b592e4887e BooleanSetting: Initialize m_value to default_value in the constructor
Ensures all class state is initialized to valid values on construction.
2017-03-03 14:09:48 -05:00
Lioncash 25e70570b5 NumericSettings: Initialize m_value to default_value in the constructor
Ensures that all class state is initialized to valid values.
2017-03-03 14:06:16 -05:00
aldelaro5 654f582446 Don't save watches and breakpoints on stop and load on boot
Not only this is pretty pointless because there is a load and save button on the appropriate panels, but for the breakpoints one, it caused an error while mapping the memory since adding memory breakpoint requires to update the DBAT and this is done too early (right after boot).  This also only worked if you had the right panel on making it even more useless because it would fail to laod if you didn't have the right panel on.  It's better to just let the user click load and save.
2017-03-03 05:18:33 -05:00
Lioncash 13757b7d35 UICommon: Make GetNewDisassembler() return a unique_ptr
Much better than just returning raw memory.
2017-03-02 21:26:17 -05:00
Matthew Parlane 51e932b4ec Merge pull request #4975 from ligfx/controlsetting
InputCommon: move Setting classes out of ControlGroup
2017-03-03 15:17:25 +13:00
Michael Maltese 1539ff6691 InputCommon: move Setting classes out of ControlGroup 2017-03-02 18:08:37 -08:00
Anthony 1392b88879 Merge pull request #5002 from leoetlino/es-di-ioctlvs
IOS/ES: Implement ES_DIGetTicketView
2017-03-02 17:54:54 -08:00
Matthew Parlane dffb14cfc7 Merge pull request #5000 from lioncash/fwd
JitInterface: Convert includes into forward declarations where applicable
2017-03-03 14:54:24 +13:00
Léo Lam 34adc72d1c IOS/ES: Implement ES_DIGetTicketView
One of the remaining ioctlvs that were not implemented, and which were
used by games (even though they did not really depend on the view).
2017-03-02 22:13:45 +01:00
Léo Lam d97ae1054f Remove useless ES wrappers from the main IOS file
This removes wrappers for ES_DIVerify and ES::LoadWAD. They are not
really useful as we can simply call the ES function directly, and
it is actually somewhat confusing because both functions are static
and are not tied to a particular ES instance.
2017-03-02 20:29:01 +01:00
Léo Lam 5a74343d06 IOS/ES: Add logging for title context changes 2017-03-02 20:29:01 +01:00
Léo Lam c191fe5348 IOS/ES: Update running game info on title change
This allows Dolphin to stay up-to-date about what title is currently
running, which fixes savestates, screenshots, etc. after an ES_Launch.

Same limitation as with MIOS: currently, GameINIs are not reloaded,
because it's a pain with the current config system. It'll happen
when the new config system is done, and this commit makes it much
easier to do!
2017-03-02 20:29:00 +01:00
Léo Lam 9c18eea812 IOS/ES: Mark members shared between instances as static
Some members are shared between ES instances, and they are just global
variables in IOS.

This is more efficient than getting the installed titles or setting the
current active title tons of times for no reason.
2017-03-02 20:29:00 +01:00
Léo Lam 4d776ffa8f IOS/ES: Keep track of the active title properly
This changes ES to keep track of the active title properly,
just like IOS:

* It is NOT changed on resource manager open/close.
* It is reset on IOS reload.
* It is changed by ES_DIVerify and ES_Launch.

IOS stores the active title in a structure like this:

    struct ESTitleContext
    {
      Ticket* ticket;
      TMD* tmd;
      u32 active;
    };

With this commit, we also do keep the Ticket and TMD around. This
makes some of the DI ioctlvs (which return data about the current
active title) trivial to implement in the future.

This fixes the System Menu not being able to see update partitions
and also allows us to change Dolphin's active game info in the future.
2017-03-02 20:28:01 +01:00
Mat M 78e7f4aae3 Merge pull request #4984 from leoetlino/content-fixes
IOS/ES: Title import fixes + hack removals (fix for System Menu disc updates)
2017-03-02 14:17:29 -05:00
Lioncash c6200a5b07 JitInterface: Convert includes into forward declarations where applicable 2017-03-02 13:20:29 -05:00
Stenzek 2fd77895a2 Vulkan: Fix issue where target rectangle changes weren't detected
This was causing issues when toggling the crop setting, as well as some
widescreen hacks.
2017-03-02 21:53:42 +10:00
Stenzek 3390e6f258 Merge pull request #4993 from ligfx/fixsonicadventure2
OGL SetBlendMode: always set blend equation and func
2017-03-02 21:30:10 +10:00
Markus Wick 7982ba120f Merge pull request #4995 from lioncash/normalize
CMakeLists: Normalize whitespace
2017-03-02 11:51:06 +01:00
Markus Wick 521a777ade Merge pull request #4961 from aldelaro5/fast-memchecks
Make memory breakpoint faster
2017-03-02 11:13:18 +01:00
aldelaro5 9ad6c8f334 Make memory breakpoint faster
Currently, slowmem is used at any time that memory breakpoints are in use.  This commit makes it so that whenever the DBAT gets updated, if the address is overllaping any memchecks, it forces the use of slowmem.  This allows to keep fastmem for any other cases and noticably increases performance when using memory breakpoints.
2017-03-02 04:46:27 -05:00
Lioncash ee61bd6f2e CMakeLists: Normalize whitespace
Normalizes tabs to spaces to follow our codebase's indentation style.
2017-03-01 14:53:23 -05:00
Léo Lam ac27aff9c8 Add ES::Content::IsShared to avoid hardcoding 0x8000 2017-03-01 17:36:07 +01:00
Léo Lam 3bd34008c9 IOS/ES: Fix GetTMDView when title doesn't exist
This fixes ES_GetTMDView and ES_GetTMDViewSize to return -106
(FS_ENOENT) if the title does not exist (and more specifically when no
TMD exists in the NAND). This allows installed (or not installed) IOSes
to be detected properly.
2017-03-01 17:36:07 +01:00
Léo Lam 90aaefaef7 IOS/ES: Drop 'fake IOS titles' hack
It prevents system updates from working properly, because we always
returned that the latest version of every single IOS was installed.
2017-03-01 17:36:07 +01:00
Léo Lam e5d9bcaf43 IOS/ES: Edit uid.sys on AddTitleStart
This allows channels to be registered and installed properly.
(And it is what IOS does.)
2017-03-01 17:36:07 +01:00
Léo Lam 1e3f8c1a1d IOS/ES: Add sanity checks to AddTitleFinish 2017-03-01 17:36:06 +01:00
Léo Lam 9263cb1996 IOS/ES: Handle adding shared contents properly 2017-03-01 17:34:59 +01:00
Mat M 8364a0002f Merge pull request #4956 from leoetlino/es-checks
ES: Replace useless asserts with proper checks
2017-03-01 11:30:25 -05:00
Anthony 8dc96fce4d Merge pull request #4776 from lioncash/dspemitter
DSPEmitter: Convert a C array to a std::array
2017-03-01 08:11:26 -08:00
Léo Lam 24e35f96fa ES: Replace useless asserts with proper checks
It makes absolutely no sense to have asserts for what is obviously an
error condition. And they should definitely not cause Dolphin to crash
because it assumes that everything is valid, and Dolphin should not
report those to the user either, as it is very obviously a bug in the
emulated software and there is nothing the user (or we) can do.

This commit replaces all of the request asserts with proper checks
and adds missing checks for some ioctlvs. We still do not check sizes
yet; this will be done later.
2017-03-01 16:05:33 +01:00
Michael Maltese db1d826ac3 OGL SetBlendMode: always set blend equation and func
Before #4581, an invocation of `SetBlendMode` could invoke
`glBlendEquationSeparate` and `glBlendFuncSeparate` even when it was
setting `glDisable(GL_BLEND)`. I couldn't figure out how to map the old
behavior over to the new BlendingState code, so I changed it to always
call the two blend functions.

Fixes https://bugs.dolphin-emu.org/issues/10120 : "Sonic Adventure 2
Battle: graphics crash when loading first Dark level".
2017-03-01 00:49:14 -08:00
Jules Blok 83bd74aef0 Merge pull request #4974 from gamemasterplc/master
Widescreen Hack improvement
2017-03-01 02:17:33 +01:00
Michael Maltese c277c91b29 NetPlayClient: rename variables: spac -> packet 2017-02-28 14:37:45 -08:00
Michael Maltese 1834833edd NetPlay: use move semantics instead of unique_ptrs 2017-02-28 14:29:27 -08:00
aldelaro5 52fe05af6b Make memory breakpoint faster
Currently, slowmem is used at any time that memory breakpoints are in use.  This commit makes it so that whenever the DBAT gets updated, if the address is overllaping any memchecks, it forces the use of slowmem.  This allows to keep fastmem for any other cases and noticably increases performance when using memory breakpoints.
2017-02-28 13:02:04 -05:00
Anthony f4ccc11b73 Merge pull request #4988 from leoetlino/tikview
ESFormats: Fix calculation of the ticket start offset
2017-02-28 09:57:04 -08:00
Markus Wick 0a8b5b79ef Merge pull request #4985 from lioncash/enum-class
ExpressionParser: Convert parse state enum into an enum class
2017-02-28 18:48:45 +01:00
Markus Wick bd89c7b2c4 Merge pull request #4986 from lioncash/namespace
PixelEngine: Move enum constants into the PixelEngine namespace
2017-02-28 18:46:45 +01:00
Léo Lam e9f23fbc92 ESFormats: Fix calculation of the ticket start offset
The signature part doesn't seem to appear more than once in a signed
ticket, so we should always add that offset regardless of the
ticket number.
2017-02-28 18:42:06 +01:00
Anthony fcc05c0b0e Merge pull request #4983 from degasus/jitcache
JitCache: Fix two block invalidation issues.
2017-02-28 09:20:24 -08:00
Lioncash 5ed55ffb34 PixelEngine: Move enum constants into the PixelEngine namespace
Gets some identifier names out of the global namespace.
2017-02-28 07:01:50 -05:00
Lioncash d104e5e916 ExpressionParser: Convert parse state enum into an enum class 2017-02-28 05:07:21 -05:00
Vlad Firoiu a3af5b09d3 error logs 2017-02-27 23:45:35 -08:00
Vlad Firoiu 6b1910a078 Appease global header warning. 2017-02-27 23:45:35 -08:00
Vlad Firoiu f82e3de763 Dump to arbitrary URLs. 2017-02-27 23:45:34 -08:00
Vlad Firoiu 21e66e60e3 Configable dump codec. 2017-02-27 23:45:12 -08:00
Vlad Firoiu a1a9e488a5 XVID FourCC for MPEG-4 codecs. 2017-02-27 23:44:33 -08:00
Vlad Firoiu d4686aa1a7 More warnings for AVIDump. 2017-02-27 23:44:33 -08:00
Vlad Firoiu 86a8382376 Arbitrary dump formats. 2017-02-27 23:44:29 -08:00
Vlad Firoiu 1723645c99 guess format before allocating context 2017-02-27 23:43:15 -08:00
Vlad Firoiu 8fb2eb889d Handle delayed frames at the end of the movie. 2017-02-27 23:43:15 -08:00
Anthony e375c96693 Merge pull request #4982 from leoetlino/copy
ESFormats: Fix GetRawTicketView
2017-02-27 17:08:27 -08:00
Markus Wick deb228f134 Merge pull request #4774 from degasus/speedhack
PatchEngine: Apply speedhack per PC, not only per block entry.
2017-02-27 23:51:12 +01:00
degasus ffa61fcf57 JitCache: Also unlink exits of the current block.
We might still be in the current block. This is fine, but the next one might also be invalidated later on. But we may never also call the next one.
2017-02-27 23:50:16 +01:00
degasus c1ddc2678e JitCache: Fix removing of blocks. 2017-02-27 23:50:16 +01:00
Léo Lam 6edcba4af8 Bump the savestate version (for ES changes) 2017-02-27 21:26:30 +01:00
Léo Lam 6f79f741d5 IOS/ES: Check that m_addtitle_tmd is valid before use 2017-02-27 21:26:29 +01:00
Léo Lam 95aa48d086 IOS/ES: Implement AddTMD 2017-02-27 21:26:29 +01:00
Léo Lam 6327a29847 IOS/ES: Implement ES_Export* ioctlvs
This should allow channels to be copied to the SD properly.
2017-02-27 21:26:28 +01:00
Léo Lam 345d252ef3 IOS/ES: Deduplicate fields for opened content entries
Now that we have a proper Content structure for contents,
let's just use it instead of duplicating the fields.
2017-02-27 21:25:47 +01:00
Léo Lam 4e462d44f9 ESFormats: Fix GetRawTicketView
The vector was not constructed with the proper size, which results in a
buffer overflow as we were using memcpy.

This commit fixes that mistake and also uses a safer way of copying the
ticket view data (std::vector::insert instead of memcpy).
2017-02-27 21:19:05 +01:00
Anthony c4137c2880 Merge pull request #4965 from leoetlino/delete-everything
IOS/ES: Implement DeleteTitle
2017-02-27 12:18:47 -08:00
Anthony 7ac95c2673 Merge pull request #4906 from leoetlino/es-launch
IOS: Handle ES_Launch more accurately
2017-02-27 11:51:43 -08:00
Léo Lam fff4634a1c IOS: Handle ES_Launch more accurately
This commit fixes ES_Launch to work mostly the same as the real IOS
(except temporary, internal files such as /sys/launch.sys and title
handling; the latter will be handled in a future PR).

First of all, this adds two IOS functions, which correspond to two
IOS syscalls: 0x41 (boot_ppc) and 0x42 (boot_ios).

boot_ios() writes the new version to 0x3140, loads the new kernel,
which then proceeds to reinit IPC and load modules as part of its
boot process. Note that this doesn't include writing to any of the
other constants in the 0x3100 region.
In Dolphin, this is implemented by changing the active IOS
version variable, writing to 0x3140 and resetting all devices. This
has exactly the same effect as the real syscall.

The other syscall, boot_ppc(), writes code to the EXI boot buffer,
pokes all constants to memory before bootstrapping the PPC with a
binary from the NAND.
We skip the low level stuff and just load the DOL to memory (and set
the PPC's PC to 0x3400), which is essentially what IOS does.

The other change is mostly related to how ES_Launch is handled.

With a real IOS, if the launched title type is 00000001 (system) and
the title is not 1-2 (System Menu), ES calls boot_ios().

Otherwise, ES handles the launch as a PPC title. It reads the TMD
to determine the required IOS version. If it is the same, boot_ppc()
is called directly. If not, ES saves the title to launch to the NAND
before launching the new IOS. After the new IOS has finished booting,
it will notice the flag and then launch the requested title.

What this commit does is really just implement this logic into IOS HLE.
The result is a fix for a regression introduced by SetupMemory,
where reloading an IOS would have overwritten some OS constants.
This fixes booting games from the disc channel.
2017-02-27 20:44:30 +01:00
Anthony ed6a46a193 Merge pull request #4958 from RisingFog/avidump_bitrate
Add configurable video dump bitrate to INI
2017-02-27 10:15:19 -08:00
Anthony 63c5230d9b Merge pull request #4959 from lioncash/ini
IniFile: Handle s64/u64 values
2017-02-27 10:02:53 -08:00
Anthony 0cac00a39c Merge pull request #4977 from ligfx/fixwxmainmenubar
DolphinWX: don't refresh MainMenuBar on construction
2017-02-27 09:42:01 -08:00
Anthony b16cebc297 Merge pull request #4978 from ligfx/avidumpclosefiles
AVIDump[regression]: close avio handles
2017-02-27 09:39:40 -08:00
Jules Blok f5d14e3691 Merge pull request #4933 from Armada651/disable-cache
VideoBackends: Add a developer option to disable the shader cache.
2017-02-27 17:35:01 +01:00
Léo Lam ac43836714 IOS/ES: Implement DeleteTitle
No idea why this wasn't implemented whereas ES_DeleteTicket and
ES_DeleteTitleContent were.

This probably fixes title deletion in old System Menus, and maybe
the new ones as well in some cases; I've seen 4.3 use this ioctlv.
2017-02-27 15:32:31 +01:00
Michael Maltese 621472336c AVIDump[regression]: close avio handles 2017-02-26 23:26:31 -08:00
Matthew Parlane d666363ac4 Merge pull request #4966 from RisingFog/remove_traversal_server_debug_mode
Turn Off Debug Mode for Traversal Server
2017-02-27 16:18:13 +13:00
Matthew Parlane ca9504d0fa Merge pull request #4969 from leoetlino/clear-tmp
IOS: Clear the /tmp directory on IOS boot
2017-02-27 16:17:49 +13:00
Matthew Parlane 48aeb5bf4b Merge pull request #4896 from leoetlino/esformats
Use ESFormats for tickets, TMDs and views
2017-02-27 16:15:05 +13:00
Michael Maltese 720f0ab93f DolphinWX: don't refresh MainMenuBar on construction
On startup, wxWidgets pops up an assertion error:

> ./src/osx/menu_osx.cpp(648): assert ""IsAttached()"" failed in
> Refresh(): can't refresh unatteched menubar
2017-02-26 17:50:36 -08:00
Michael Maltese a3e3986906 DolphinWX: provide empty OnCmdLineParsed
Starting in #4916, upon startup wxWidgets pops up an assertion error:

> ./src/common/cmdline.cpp(527): assert ""Assert failure"" failed in
> FindOptionByAnyName(): Unknown option verbose

Fix this by overriding wxApp::OnCmdLineParsed to disable the default
handling (since we also disable the default options in
DolphinApp::OnInitCmdLine).
2017-02-26 17:38:18 -08:00
Anthony 7bcff99d89 Merge pull request #4963 from leoetlino/sysconf
SysConf: Use vectors instead of raw pointers
2017-02-26 16:09:17 -08:00
Anthony 832e0501db Merge pull request #4960 from lioncash/type
ControlGroup: Convert group type enum into an enum class
2017-02-26 15:56:34 -08:00
Anthony 0dde642b7d Merge pull request #4917 from leoetlino/config
New configuration namespace
2017-02-26 15:54:25 -08:00
Anthony 06428c3f14 Merge pull request #4916 from leoetlino/cpp-optparse
Use cpp-optparse for command line parsing
2017-02-26 15:51:35 -08:00
Anthony 722ff4c020 Merge pull request #4915 from leoetlino/ini-changes
Expose some ways to manage an INI file
2017-02-26 15:48:53 -08:00
gamemasterplc 4c4a96bfc5 Widescreen Hack improvement
Fixes Projection alignment in some N64 VC games. The original code forgot to multiply rawProjection[1] and rawProjection[3].
2017-02-26 12:55:57 -06:00
Léo Lam 44a3db21e4 ES: Make sure the TMD and ticket are valid before use 2017-02-26 19:46:30 +01:00
Léo Lam 5104caf6a6 Move AES code to Common/Crypto 2017-02-26 19:46:30 +01:00
Léo Lam c1a139e8ac Use ESFormats for TMDs
We already have a TMDReader, so let's actually use it.

And move ESFormats to IOS::ES, since it's definitely part of IOS.
This adds a DiscIO dependency on Core which will be fixed in a
follow-up PR.
2017-02-26 19:46:29 +01:00
Léo Lam bf1f70db0a Move the ticket code to ESFormats
This moves some parsing code for tickets and ticket views to ESFormats
instead of duplicating it over DiscIO and Core.
2017-02-26 19:46:28 +01:00
JosJuice a62711de55 Merge pull request #4968 from lioncash/const-parser
ExpressionParser: Const-correctness changes
2017-02-26 19:24:21 +01:00
JosJuice 6c869f7891 Merge pull request #4955 from leoetlino/wat
Fix the build on non-Windows platforms when not using WX from Externals
2017-02-26 19:19:06 +01:00
z0z0z 005e6796b8 Disable pinned memory for AMD mesa drivers 2017-02-26 10:49:28 -05:00
Léo Lam 31ebe9b080 IOS: Clear the /tmp directory on IOS boot
The /tmp directory is cleared every time IOS boots up (when the FS
driver is initialized), *not* when /dev/fs is opened.

Although this should have no effect, it fixes the case where files
could be left in /tmp and seen before opening /dev/fs.
2017-02-26 12:19:57 +01:00
Jules Blok a15555fe03 VideoBackends: Use vertex shader depth range if ztexture is used. 2017-02-26 11:34:48 +01:00
Lioncash f0203157d4 ExpressionParser: Const-correctness changes 2017-02-26 02:09:34 -05:00
Chris Burgener bfb17d5a9e Add configurable video dump bitrate to INI 2017-02-25 23:58:21 -05:00
Chris Burgener 4669b50e0b Turn Off Debug Mode for Traversal Server 2017-02-25 23:41:12 -05:00
Léo Lam a1e16c47db SysConf: Use vectors instead of raw pointers 2017-02-26 00:39:50 +01:00
Adam Diffin 54f931e651 Fixed the remove and add buttons not disabling after removing a code. 2017-02-25 22:59:24 +00:00
Lioncash 26f17a1723 ControlGroup: Convert group type enum into an enum class
Gets some constants out of the ControllerEmu namespace, and modifies
ControlGroup so that it uses the enum type itself to represent the
underlying type, rather than a u32 value.
2017-02-25 01:15:04 -05:00
Lioncash beec40f178 IniFile: Handle s64/u64 values 2017-02-25 00:03:20 -05:00
Markus Wick 51136681df Merge pull request #4953 from lioncash/fwd
CachedInterpreter: Forward declare instruction struct
2017-02-24 23:36:11 +01:00
Léo Lam 6702e547cb Fix the build on Linux when not using WX from Externals
No idea why we were including a Windows specific header *without* a
ifdef.
2017-02-24 18:48:26 +01:00
Jules Blok bde8126913 VideoBackends: Remove depth range clamping hacks.
Oversized depth ranges are handled correctly now, we don't need to hack around them with clamps anymore.
2017-02-24 14:54:20 +01:00
Jules Blok 94522d4cf3 OGL: Add support for glDepthRangedNV to handle oversized depth ranges. 2017-02-24 14:54:16 +01:00
Markus Wick 1f04bab967 Merge pull request #4952 from ligfx/fix_10110
PatchEngine: check instruction at link addr is non-zero
2017-02-24 11:08:15 +01:00
Markus Wick 25fc7ed8c1 Merge pull request #4954 from lioncash/jitbase
JitBase: Put constructor and destructor in the cpp file
2017-02-24 11:05:57 +01:00
Lioncash 0783476464 CachedInterpreter: Forward declare instruction struct
Allows changes to be made to the instruction struct without recompiling
other source files.
2017-02-23 18:08:20 -05:00
Anthony 4e93002adb Merge pull request #4800 from JosJuice/movie-dual-core-determinism
Remove special condition for auto dual core determinism
2017-02-23 13:19:39 -08:00
Anthony ba5f1c6f59 Merge pull request #4864 from JosJuice/idws-on-temp-nand-only
WiiRoot: Only call InitializeDeterministicWiiSaves on temporary NAND
2017-02-23 13:18:23 -08:00
Anthony 27a5e33b92 Merge pull request #4877 from ligfx/forward_declare_xlib
Remove include X11/Xlib.h from X11Utils.h
2017-02-23 13:17:37 -08:00
Anthony ecb7d01347 Merge pull request #4889 from ligfx/netwindow
NetWindow: explicitly tell wxWidgets to clean up Windows macros
2017-02-23 13:16:59 -08:00
Anthony e9850382e3 Merge pull request #4930 from JosJuice/sideways-wiimote-name
Change INI keys containing "Wii Remote" back to "Wiimote"
2017-02-23 13:13:43 -08:00
Anthony fb8369d0e0 Merge pull request #4950 from leoetlino/set-remotes-before-booting
Netplay: Change Wiimote sources before booting
2017-02-23 13:13:13 -08:00
Lioncash 359528b805 JitBase: Put constructor and destructor in the cpp file
As this is a base class with virtuals, there needs to be an out-of-line
function definition to prevent the vtable of the class being placed within
every translation unit it's used in (i.e. every JIT implementation).
2017-02-23 13:50:47 -05:00
Léo Lam 88a21dd2b9 Fix things mentioned during code review
Ref: https://github.com/dolphin-emu/dolphin/pull/4917
2017-02-23 18:15:12 +01:00
Léo Lam abe6f8766a Config: Add a few helper functions for repetitive tasks
Getting and setting configuration from the base config layer are common
and repetitive tasks. This commit adds some simpler to use functions to
make the new system easier to work with.

Config::Get and Config::Set are intended to make switching from
SConfig a bit less painful. They always operate on the main system.

Example usage:

    // before
    auto base_layer = Config::GetLayer(Config::LayerType::Base);
    auto core = base_layer->GetOrCreateSection(Config::System::Main, "Core");
    u8 language;
    core->Get("Language", &language, 0);
    SetData("IPL.LNG", language);

    // now
    auto base_layer = Config::GetLayer(Config::LayerType::Base);
    auto core = base_layer->GetOrCreateSection(Config::System::Main, "Core");
    SetData("IPL.LNG", core->Get<u8>("Language", 0));

    // or simply
    SetData("IPL.LNG", Config::Get<u8>("Core", "Language", 0));
2017-02-23 18:15:12 +01:00
Léo Lam 7bd34ac0b5 Config: Trigger callbacks on layer save
And remove an extraneous callback trigger in Config::Load.
2017-02-23 18:15:12 +01:00
Léo Lam 9c3265f1ef Config: Keep track of deleted keys
This allows deleted keys to be deleted from INIs properly.
2017-02-23 18:15:12 +01:00
Léo Lam b51c6023ba Config: Only save settings if they have been changed 2017-02-23 18:15:12 +01:00
Ryan Houdek 8360e358ee New configuration namespace 2017-02-23 18:15:11 +01:00
Anthony f7a09c41a1 Merge pull request #4941 from JosJuice/no-compressed-color
DolphinWX: Don't use a special color for compressed games
2017-02-23 07:17:48 -08:00
Markus Wick 0a3a2fe155 Merge pull request #4922 from sepalani/more_format
HLE: More printf floating point types handled
2017-02-23 11:03:32 +01:00
Markus Wick 1fc2edae51 Merge pull request #4928 from lioncash/const
PPCAnalyst: Make SetInstructionStats' opinfo parameter a const pointer
2017-02-23 10:55:58 +01:00
Markus Wick 25a569e6e9 Merge pull request #4929 from lioncash/symboldb
SymbolDB: Simplify GetSymbolsFromHash
2017-02-23 10:55:28 +01:00
Markus Wick ae8010caff Merge pull request #4943 from lioncash/const-table
JIT: Make initialization instruction tables const
2017-02-23 10:27:21 +01:00
Markus Wick 51b654ed00 Merge pull request #4945 from lioncash/jit-global
DolphinWX: Eliminate direct usage of the JIT global
2017-02-23 10:24:55 +01:00
Markus Wick d4453db2ea Merge pull request #4946 from lioncash/naming
JitInterface: Amend ExceptionType enum value names
2017-02-23 10:23:37 +01:00
Michael Maltese da35abbbe2 PatchEngine: check instruction at link addr is non-zero
Regression introduced in #4738. Fixes
https://bugs.dolphin-emu.org/issues/10110.
2017-02-22 21:14:57 -08:00
Léo Lam fb46520c74 Netplay: Change Wiimote sources before booting
It is kind of silly to connect all of the configured Wii remotes (from
the user config; NOT netplay assigned remotes), then connect/disconnect
additional Wii remotes *after* the core has booted.

(The bWii check has been removed, because it's actually unneeded;
m_wiimote_map is always usable regardless of bWii. And we can't get
info about the currently running game without booting the core with our
current config system…)

This should fix Netplay trying to connect all configured Wii remotes.
2017-02-22 22:52:13 +01:00
JosJuice 9b0ce31906 Merge pull request #4948 from leoetlino/file
IOS/FFSP: Fix the "past EOF" check
2017-02-22 22:43:40 +01:00
Markus Wick fa9b89fdf9 Merge pull request #4911 from degasus/ABI
JitArm64: Extract block exit link area generation.
2017-02-22 22:26:08 +01:00
Mat M c81cf111ef Merge pull request #4921 from waddlesplash/netmap
IOS/Network/Net: Use a conversion function instead of a static array for SOCKOPT mapping
2017-02-22 16:11:53 -05:00
Léo Lam b0a132875a IOS/FFSP: Fix the "past EOF" check
Fixes a logic bug I introduced as part of #4942. We were not
handling the "read past EOF" case correctly, which caused
requested_read_length to underflow in some cases.

Also fixes a comparison (though this is unlikely to change anything).
2017-02-22 20:54:02 +01:00
Augustin Cavalier 806bb2a4d0 IOS/Network/Net: Use a mapper function instead of a static array for SOCKOPT mapping.
Some platforms (e.g. Haiku) define SOL_SOCKET to be -1, which obviously
does not work with static arrays. Plus, this is cleaner.
2017-02-22 10:55:38 -05:00
Lioncash 70d336d2a9 DolphinWX: Eliminate direct usage of the JIT global
Instead, the JitInterface namespace functions should be used instead. This
gets rid of all usages of the JIT global from the wxWidgets UI code.

The null check isn't needed as the JIT core would already need to be
initialized in order to be within a paused state. The null check is just a
remnant from 2011 that existed before the check for a paused state was
added.
2017-02-21 16:15:47 -05:00
JMC47 d320a2a067 Force Wallace and Gromit to use smaller memcard. 2017-02-21 16:09:49 -05:00
Lioncash ff0f60c9f9 JitInterface: Amend ExceptionType enum value names
Since ExceptionType is an enum class, its name already acts like the
common prefix.
2017-02-21 15:40:00 -05:00
Mat M 95b2b033b0 Merge pull request #4925 from RisingFog/remove_readonly_check
Remove IsReadOnly check when stop recording
2017-02-21 10:53:24 -05:00
Lioncash f65c34d63d JitArm64_Tables: Make initialization instruction tables constexpr 2017-02-21 10:23:39 -05:00
Lioncash 4b342fbbfc JitIL_Tables: Make initialization instruction tables const 2017-02-21 09:55:08 -05:00
Lioncash 092d21253d Jit64_Tables: Make initialization instruction tables const 2017-02-21 09:54:51 -05:00
Pierre Bourdon 8e3e1e7750 Merge pull request #4942 from leoetlino/ios-ffsp-read
IOS/FFSP: Fix the read handler logic
2017-02-21 11:46:30 +01:00
Jules Blok 28e6e259ed VideoBackends: Set the maximum range when the depth range is oversized.
The depth values generated by the vertex shader need to be clamped correctly.
2017-02-21 02:57:23 +01:00
Léo Lam a6649da088 IOS/FFSP: Fix the read handler logic
This changes the read request handler to work just like IOS:

* To make things clearer, we now return early from error conditions,
  instead of having nested ifs.

* IOS does an additional check on the requested read length, and
  substracts the current seek position from it, if the read would
  cause IOS to read past the EOF (not sure what the purpose of this
  check is, but IOS does it, so we should too).

* The most significant one: IOS does *not* return the requested read
  length, or update the file seek position with it. Instead, it uses
  the *actual* read length.

As a result of simply doing what IOS does, this fixes _Mushroom Men_.
The game creates a save file, reads 2560 bytes from it, then
immediately writes 16384 bytes to it. With IOS, the first read does not
change the seek position at all, so the save data is written at
offset 0, not 2560. With Dolphin, the read erroneously set the
seek position to 2560, which caused the data to be written at
the wrong location.

Behavior confirmed by comparing IPC replies with IOS LLE and by looking
at the FS module in IOS.
2017-02-20 23:13:15 +01:00
Mat M 6fbb23e365 Merge pull request #4938 from sjnewbury/GCC7-build-fix
Add missing "functional" include for GCC7
2017-02-20 10:51:10 -05:00
JosJuice a7e11db4bf DolphinWX: Remove usage of IsCompressed() in compression code
What we actually care about is whether it's a GCZ file,
not whether it's compressed. (This commit doesn't change
the behavior, since the beginning of CompressSelection
discards items that aren't BlobType::GCZ or BlobType::PLAIN.)
2017-02-20 16:08:07 +01:00
JosJuice b1589a6337 DolphinWX: Don't use a special color for compressed games
- There's no clear definition of what it means for a GC/Wii game
  to be compressed. GC games in GCZ are obviously compressed,
  but what about formats like WBFS and CISO that just discard data?
- Hardcoded colors might have bad contrast with the used theme.
- It feels Windows XP to me.
2017-02-20 16:02:30 +01:00
Steven Newbury 02681bc352 Add missing "functional" include
Building fails on GCC7 without an explicit
2017-02-20 14:25:55 +00:00
Pierre Bourdon f07a6944d1 Merge pull request #4934 from leoetlino/es-cfd
IOS/ES: Fix the initial content FD value
2017-02-20 12:40:00 +01:00
Léo Lam 696e493acc IOS/ES: Fix the initial content FD value
YYCJ is one of the last titles to be completely broken in Dolphin.
It would hang right after the Wii remote screen. Looking at the
game's debug messages reveals that it was failing to find some of
its files.

IOS LLE booted the game just fine, which confirmed that it was an issue
with IOS HLE.

By comparing the ioctlv requests and responses with IOS, it turns out
that one of the very first ES replies was different between IOS HLE and
IOS: there was a mismatch for the content fd returned by ES.

Changing the initial content FD to what IOS returns fixes the issue.

IOS
000000: 00 00 00 08 00 00 00 00 00 00 00 07 00 00 00 09  ................
000010: 00 00 00 01 00 00 00 00 01 38 66 f0 00 00 00 20  .........8f....
000020: 00 00 00 00 00 00 00 00 00 00 00 00 81 36 d3 18  .............6..
000030: 81 36 d3 18 00 00 ff ff ff ff ff ff ff ff ff ff  .6..............

Dolphin
000000: 00 00 00 08 06 00 00 00 00 00 00 07 00 00 00 09  ................
000010: 00 00 00 01 00 00 00 00 01 38 66 f0 00 00 00 20  .........8f....
000020: 00 00 00 00 00 00 00 00 00 00 00 00 81 36 d3 18  .............6..
000030: 81 36 d3 18 00 00 ff ff ff ff ff ff ff ff ff ff  .6..............

So where did 0x6000000 come from?
2017-02-19 15:46:51 +01:00
Jules Blok 21967b1f6e VideoBackends: Add a developer option to disable the shader cache.
Makes it easier to disable the cache while working on the shaders.
2017-02-19 12:05:44 +01:00
JosJuice 298e81881f Forward declare IBlobReader in Volume headers
We have to do this (or include Blob.h) since the
constructors take unique_ptr<IBlobReader> parameters.
2017-02-19 08:40:30 +01:00
PEmu1 8fde22bcc8 Change "Fullscreen" Menu Option to "Toggle Fullscreen" 2017-02-18 16:37:49 -08:00
JosJuice f5c82adc59 Change INI keys containing "Wii Remote" back to "Wiimote"
4bd5674 changed "Wiimote" to "Wii Remote" in the GUI
(intentionally) but also did the same change for two INI
keys (seemingly unintentional, breaks backwards compatibility,
and is inconsistent with the INI's filename). This commit
reverts the INI keys but not the GUI strings.

This commit uses the same approach as cbd539e used for GameCube
sticks (but I made sure to avoid the bug that 56531a0 fixed).
2017-02-18 12:59:36 +01:00
Stenzek b8eb1080ce Merge pull request #4924 from stenzek/vulkan-list-restart
Vulkan: Fix GPU hangs on AMD Polaris
2017-02-18 21:58:30 +10:00
Markus Wick 6acad27919 Merge pull request #4927 from lioncash/unique-ptr
VertexManagerBase: Make CreateNativeVertexFormat return a unique_ptr
2017-02-18 12:40:00 +01:00
Lioncash 2f2aab963d SymbolDB: Simplify GetSymbolsFromHash
Given a std::map can't have duplicate keys, iterating over the map
explicitly isn't necessary, and find() can just be used instead.

Also, instead of manually calling push_back() for every entry to
be added, the range constructor of std::vector can be used instead to add
the whole range all at once.
2017-02-18 06:30:20 -05:00
Lioncash aaa6430db6 PPCAnalyst: Make SetInstructionStats' opinfo parameter a const pointer
trivial const-correctness stuff
2017-02-18 04:14:26 -05:00
Lioncash 1fa81f24d3 VertexManagerBase: Make CreateNativeVertexFormat return a unique_ptr
Much safer as opposed to just returning raw allocated memory.
2017-02-18 03:16:24 -05:00
Matthew Parlane 5814d23fd9 Merge pull request #4926 from lioncash/net
IOS Network: Split ncd/manage code and wd/command code into their own source files
2017-02-18 21:13:24 +13:00
Matthew Parlane 4da7164f66 Merge pull request #4596 from ligfx/updateffmpeg
AVIDump: Updates to avoid deprecation warnings
2017-02-18 21:12:37 +13:00
Lioncash a8eb2e2a8f IOS Network: Split wd/command code into its own source files 2017-02-18 02:35:53 -05:00
Stenzek e2ddb3853e DriverDetails: Set BUG_PRIMITIVE_RESTART for AMD drivers 2017-02-18 15:07:35 +10:00
Stenzek 50fa135594 Vulkan: Handle BUG_PRIMITIVE_RESTART 2017-02-18 15:07:34 +10:00
Stenzek 4094268009 Vulkan: Use TRIANGLE_LIST when primitive restart is not supported 2017-02-18 15:07:33 +10:00
Stenzek 6965dc0481 Vulkan: Don't enable primitive restart on list topologies 2017-02-18 15:07:32 +10:00
Lioncash ec298d9ea9 IOS Network: Split ncd/manage code into its own source files 2017-02-17 23:55:33 -05:00
Chris Burgener 8bfe2671b2 Remove IsReadOnly check when stop recording 2017-02-17 23:23:42 -05:00
Mat M 82734fffaa Merge pull request #4910 from lioncash/netsplit
IOS Network: Move net/ip/top code into its own source files
2017-02-17 22:42:28 -05:00
degasus 674e7430d0 JitArm64: Extract block exit link area generation.
Always use 3 instructions on linking.
2017-02-17 23:07:28 +01:00
Sepalani 5f7002da5c HLE: More printf floating point types handled 2017-02-17 10:51:10 +00:00
Léo Lam aa9ed91bc8 IOS: Add constants for IOS40
This adds memory constants for IOS40.

We should now support every system menu, courtesy of Bent82:
https://github.com/dolphin-emu/dolphin/pull/4907#issuecomment-280433023
2017-02-16 20:50:02 +01:00
Ryan Houdek c2d5fe3ec9 Move DolphinWX over to command command line parsing. 2017-02-16 17:24:59 +01:00
Ryan Houdek 36a9479c17 Change NoGUI over to using common command line parsing 2017-02-16 17:24:58 +01:00
Ryan Houdek f61363a791 Add command line parsing to UICommon. 2017-02-16 17:24:58 +01:00
Ryan Houdek 77c7fa836f Add the cpp-optparse project to Externals.
From https://github.com/weisslj/cpp-argparse
2017-02-16 14:09:13 +01:00
Ryan Houdek 85c3e677da Expose some ways to manage an INI file.
This is required for our later INI file loaders and savers
2017-02-16 09:34:25 +01:00
Ryan Houdek a2f5c3dbe0 Add some missing INI files to FileUtil 2017-02-16 09:33:50 +01:00
Phil Christensen 34b0b1b9d6 wxWidgets expects non-const
revert my previous change to these files and instead create a named temporary.
2017-02-15 21:20:29 -08:00
Phil Christensen 2ed61b0ee1 C++ conformance fixes (MSVC /permissive-)
We (the Microsoft C++ team) use the dolphin project as part of our "Real world code" tests.
I noticed a few issues in windows specific code when building dolphin with the MSVC compiler
in its conformance mode (/permissive-).  For more information on /permissive- see our blog
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/.

These changes are to address 3 different types of issues:

1) Use of qualified names in member declarations

    struct A {
        void A::f() { } // error C4596: illegal qualified name in member declaration
                        // remove redundant 'A::' to fix
    };

2) Binding a non-const reference to a temporary

    struct S{};
  
    // If arg is in 'in' parameter, then it should be made const.
    void func(S& arg){}
  
    int main() {
      //error C2664: 'void func(S &)': cannot convert argument 1 from 'S' to 'S &'
      //note: A non-const reference may only be bound to an lvalue
      func( S() );
   
      //Work around this by creating a local, and using it to call the function
      S s;
      func( s );
    }

3) Add missing #include <intrin.h>

Because of the workaround you are using in the code you will need to include
this.  This is because of changes in the libraries and not /permissive-
2017-02-15 20:37:04 -08:00
Michael Maltese 88f7056a41 Remove include Xlib.h from X11Utils.h 2017-02-15 16:49:21 -08:00
JosJuice f80f7b6f9c Merge pull request #4883 from JosJuice/dvd-timing-address-translation-2
DVDInterface: Translate Wii partition offsets for timing purposes
2017-02-15 21:12:42 +01:00
JosJuice 339f6e353d Merge pull request #4907 from leoetlino/ios-constants
IOS: Add constants for some missing IOSes
2017-02-15 21:09:42 +01:00
Lioncash 92e17d2eb8 IOS: Move net/ip/top code to its own source files 2017-02-15 14:42:43 -05:00
Lioncash 245de3fa4f IOS: Move network MAC utilities to their own source files
All three implementations within Net.cpp currently rely on these
functions.
2017-02-15 13:38:52 -05:00
Lioncash 0da963c32c NetKDRequest: Make lookup maps const 2017-02-15 11:50:37 -05:00
Mat M 6f272b3a4c Merge pull request #4862 from lioncash/compile
CPU Backends: Make instruction table initialization private
2017-02-15 11:44:37 -05:00
Mat M 8fd16db80d Merge pull request #4778 from leoetlino/update-mbedtls
Externals: Update mbedtls to 2.4.1
2017-02-15 11:30:18 -05:00
Mat M 5a53763c1a Merge pull request #4892 from lioncash/control
Control: Convert raw pointer parameter into unique_ptr
2017-02-15 11:26:53 -05:00
Mat M 3d1f00e98d Merge pull request #4874 from ligfx/movie_magic_number
Movie: replace magic number 8 with sizeof(ControllerState)
2017-02-15 11:25:26 -05:00
Mat M 28a6575244 Merge pull request #4900 from lioncash/netkd
IOS: Separate net/kd code out from Net.cpp
2017-02-15 11:21:01 -05:00
Mat M 30ee4dfcdf Merge pull request #4908 from leoetlino/apostrophe
Remove C++14 optional digit separator
2017-02-14 11:06:08 -05:00
Markus Wick 032b6252a0 Merge pull request #4875 from degasus/ABI
JitArm64: Optimize GPR register push/pop and fix the FPR one.
2017-02-14 17:02:17 +01:00
Léo Lam 089f45212e IOS: Add constants for some missing IOSes
This adds memory values for IOS11, 20, 30, 50, 51, 52, 60 and 70.

Unfortunately, IOS40 (in its working version) is not present on NUS, so
constants for that one are still missing.
2017-02-14 12:18:58 +01:00
Anthony f966354044 Merge pull request #4898 from RisingFog/stop_recording_dtm
Add Stop Play/Recording Input Menu
2017-02-13 14:10:23 -08:00
Mat M f68955502a Merge pull request #4905 from JosJuice/rename-copy-wii-save
Rename "Copy Wii Save" to "Load Wii Save"
2017-02-13 09:55:54 -05:00
Léo Lam 1aae7fb9c8 Remove C++14 optional digit separator
It confuses GitHub and localization tools. And some people as well.
2017-02-13 14:25:14 +01:00
Matthew Parlane d1ade5de22 Merge pull request #4904 from JosJuice/oh0-usb-state-warning
Don't show savestate USB warning when not using USB passthrough
2017-02-13 14:36:26 +13:00
JosJuice fc798ca410 Rename "Copy Wii Save" to "Load Wii Save"
That netplay uses a separate NAND isn't obvious,
so what "copy" means might not be clear.
2017-02-12 18:40:54 +01:00
JosJuice 8a6b8f7b53 Don't show savestate USB warning when not using USB passthrough 2017-02-12 18:16:26 +01:00
Pierre Bourdon 047394c099 Merge pull request #4903 from leoetlino/usb-kbd-stub
IOS/USB_KBD: Re-add the Write stub handler
2017-02-12 16:33:02 +01:00
Léo Lam 5add8c23ee IOS/USB_KBD: Re-add the Write stub handler
This is something I removed by mistake. It didn't break anything in
most titles, but the Mii Channel *requires* write requests to
/dev/usb/kbd to succeed before exiting, so this commit readds the stub.
2017-02-12 16:00:50 +01:00
Mat M da5683cf27 Merge pull request #4880 from ligfx/windowsmanifest
Use .manifest file for apps on Windows
2017-02-12 08:44:38 -05:00
JosJuice 5e799fd469 Merge pull request #4902 from lioncash/unused
Boot: Remove unused game ID string
2017-02-12 14:20:05 +01:00
Lioncash 921ab22cb7 Boot: Remove unused game ID string 2017-02-12 07:55:49 -05:00
Léo Lam b8dd3e690f Externals: Update mbedtls to 2.4.1
The latest version has tons of security fixes (which is expected for a
library such as mbedtls).

Updating also allows getting rid of a few deprecation warnings.
2017-02-12 10:29:02 +01:00
JosJuice 49ec22bc42 DVDInterface: Translate Wii partition offsets for timing purposes
Until now, Dolphin has been using the wrong values
for calculating DVD timing for decrypted Wii reads
(which Wii games essentially always use).
2017-02-12 09:37:39 +01:00
Lioncash 40cea773bc IOS: Separate net/kd code out from Net.cpp
Net.cpp is just a huge glob of network related things, this separates the
KD portion out to make things a little more manageable.
2017-02-11 23:09:08 -05:00
Lioncash 1a99e70ed7 Force: Use std::array for m_swing 2017-02-11 20:22:50 -05:00
Lioncash df3a4580ea Tilt: Use std::array for m_tilt 2017-02-11 20:22:42 -05:00
Mat M 0e961776e6 Merge pull request #4879 from orbea/llvm
CMake: Fix LLVM error
2017-02-11 20:07:34 -05:00
Mat M 3e016ecc1d Merge pull request #4888 from leoetlino/good-bye-singleton
Get rid of a singleton for NAND shared contents
2017-02-11 20:02:52 -05:00
Mat M 9cdb07b2ef Merge pull request #4886 from leoetlino/no-prefix
FileIO: Minor cleanup
2017-02-11 20:00:58 -05:00
Mat M 295600c86e Merge pull request #4884 from leoetlino/wii-connect-on-boot
Fix connecting Wii remotes on boot
2017-02-11 19:59:50 -05:00
Chris Burgener 28c9f2a44d Add Stop Play/Recording Input Menu 2017-02-11 19:59:19 -05:00
Anthony bb82586a3d Merge pull request #4897 from JosJuice/correct-es-comment
Correct the comment about the number of ES devices
2017-02-11 10:27:35 -08:00
JosJuice aaa8ad330a Correct the comment about the number of ES devices 2017-02-11 17:13:42 +01:00
JosJuice c96bcace2f VolumeWiiCrypted: Use constant naming style for constants 2017-02-11 12:56:48 +01:00
JosJuice d19aabb55b Merge pull request #4895 from lioncash/const
ControllerEmu: Add const to UpdateReferences() first reference parameter
2017-02-11 09:27:37 +01:00
JosJuice e568d57022 Merge pull request #4894 from lioncash/private
Cursor: Make m_z private
2017-02-11 09:26:30 +01:00
Léo Lam 81b1425b52 Remove useless Wiimote reconnect code on ES_Launch
Turns out it is completely unneeded and it actually works better
*without* it.

Just try launching the system menu from the HBC; in current master, it
will disconnect the remote and not connect it automatically again. With
this change, it will.
2017-02-11 09:02:32 +01:00
Léo Lam c14becd575 Fix connecting Wii remotes on boot
The recent IOS initialization changes caused the Bluetooth device to
no longer exist before "starting" IOS (as it should be…), which meant
that Core could not activate Wii remotes during the boot process
anymore.

But that is actually completely useless, because we can just have the
emulated Bluetooth code itself activate Wii remotes as appropriate,
at the right moment.
2017-02-11 08:58:47 +01:00
Lioncash 98145d2160 ControllerEmu: Add const to UpdateReferences() first reference parameter
None of these parameters are modified.
2017-02-11 00:31:49 -05:00
Lioncash e4bdc88494 Cursor: Make m_z private
This isn't used directly anywhere (and really shouldn't be public
anyways).
2017-02-10 23:57:50 -05:00
orbea 6913e8c3ac Fix LLVM error 2017-02-10 19:07:30 -08:00
Lioncash 3c071cefa0 Boot_WiiWAD: Simplify state_checksum
Simplifies the interface and gets rid of pointer casts.
2017-02-10 21:14:39 -05:00
Lioncash fda235b6e3 Buttons: Use a delegating constructor
Basic code deduplication
2017-02-10 19:52:15 -05:00
Lioncash d07d9f3110 Control: Convert raw pointer parameter into unique_ptr
Raw pointers shouldn't be used as boundaries in scenarios where ownership
is being taken.
2017-02-10 19:35:02 -05:00
Michael Maltese 2b65e41d97 NetWindow: explicitly tell wxWidgets to clean up Windows macros
wxWidgets headers don't play well with some of the macros defined in
Windows headers and perform their own magic to fix things, as long as
they're included entirely either before or after any Windows headers.

This file can cause a conflict in other DolphinWX files because NetPlay
headers directly include ENet headers, which leak Windows header macros.
To fix this, explicitly tell wxWidgets here that it needs to re-clean
macros.
2017-02-10 16:14:25 -08:00
degasus 8829af62cb JitArm64: Fix for stack push/pop ABI. 2017-02-11 00:59:12 +01:00
degasus 6aa54a029e JitArm64: Optimize GPR register push/pop. 2017-02-11 00:59:12 +01:00
Michael Maltese 715170759c Use .manifest file for apps on Windows
Works with CMake, and also adds DPI awareness to DolphinQt2 (which
wasn't enabled before).
2017-02-10 14:18:45 -08:00
Léo Lam 850802ea88 Get rid of a singleton for NAND shared contents
This also allows shared contents to be installed to the configured root
when installing a WAD.
2017-02-10 22:46:38 +01:00
Léo Lam f96d71ce81 FileIO: Simplify Seek()
We can return early from invalid conditions, which allows getting rid
of quite a few levels of indentation.

And let's not duplicate the new_position > file_size check.
2017-02-10 21:06:23 +01:00
Léo Lam ca4d2969a0 Remove the HLE_IPC prefix from some functions
Those were left over during the namespacing.
2017-02-10 20:58:41 +01:00
Lioncash 68dcb0f195 ControlReference: Add missing virtual destructor
ControllerEmu::Control instances have a unique_ptr<ControlReference>
member, which is passed either an InputReference or OutputReference.

Without this virtual destructor, deleting a derived class through a
pointer to the base class is undefined behavior.
2017-02-10 13:58:44 -05:00
Mat M f6d364e37b Merge pull request #4873 from lioncash/controller-emu
ControllerEmu: Separate ControlGroup from ControllerEmu
2017-02-10 13:50:33 -05:00
Anthony 8f81051df3 Merge pull request #4882 from leoetlino/elf-fix
Fix booting Wii DOLs
2017-02-10 10:21:08 -08:00
Léo Lam 328359118c Fix booting Wii DOLs
We did not set up any kind of constants in memory for Wii DOLs or even
initialize IOS, so a lot of homebrew would just crash when opening ES.
2017-02-10 19:14:34 +01:00
Léo Lam 7a1f676ef4 Always use configured root when installing WAD
This prevents Dolphin from writing to /sys/uid.sys (on the host; root
partition) when installing a WAD before starting emulation, because
the session root is not initialized at that moment.

Incidentally, this also gets rid of a singleton.
2017-02-10 19:12:08 +01:00
Lioncash 1ce1304d0f CPU Backends: Make each CPU backend responsible for initializing its own
instruction tables

Previously, all of the internals that handled how the instruction tables
are initialized were exposed externally. However, this can all be made
private to each CPU backend.

If each backend has an Init() function, then this is where the instruction
tables should be initialized, it shouldn't be the responsibility of
external code to ensure internal validity.

This allows for getting rid of all the table initialization shenanigans
within JitInterface and PPCTables.
2017-02-10 13:08:14 -05:00
Lioncash 5da7d700ca JIT: Make compilation functions a part of the JIT classes 2017-02-10 13:05:44 -05:00
Anthony 96e83b5d54 Merge pull request #4764 from aldelaro5/crash-fix-inputconfig
InputConfigDialog pass the device_cbox to the wiimote extension dialogs
2017-02-09 21:50:44 -08:00
degasus 4d3883a756 JitArm64: Handle stack faults. 2017-02-10 00:32:21 +01:00
degasus 40b7cc9252 JitArm64: Use a custom stack with proper guard pages. 2017-02-10 00:32:17 +01:00
Lioncash 6a75ea5653 ControllerEmu: Separate ControlGroup from ControllerEmu
ControllerEmu, the class, is essentially acting like a namespace for
ControlGroup. This makes it impossible to forward declare any of the
internals. It also globs a bunch of classes together which is kind of a
pain to manage.

This splits ControlGroup and the classes it contains into their own source
files and situates them all within a namespace, which gets them out of
global scope.

Since this allows forward declarations for the once-internal classes, it
now requires significantly less files to be rebuilt if anything is changed
in the ControllerEmu portion of code.

It does not split out the settings classes yet, however, as it
would be preferable to make a settings base class that all settings derive
from, but this would be a functional change -- this commit only intends to
move around existing code. Extracting the settings class will be done in
another commit.
2017-02-09 18:18:52 -05:00
Michael Maltese 31e3424367 Movie: replace magic number 8 with sizeof(ControllerState)
(Bonus points for rhyming commit message)
2017-02-09 15:07:47 -08:00
JosJuice 657639899f Merge pull request #4872 from lioncash/scan
GameListCtrl: Separate some scanning code into functions
2017-02-09 20:56:29 +01:00
Lioncash ea6e75d45f GameListCtrl: Separate some scanning code into functions
Several of the things done while performing a scan are logically their own
behavior (e.g. loading a titles file, checking if an entry should be added, etc).
2017-02-09 14:50:20 -05:00
Lioncash 56531a0b7f ControllerEmu: Fix incorrect default radius being set in AnalogStick
The three parameter AnalogStick constructor takes an internal name, a
display name, and a default radius argument. The delegated constructor is
the one that calls the ControlGroup constructor, setting the group type,
so passing the group type here is a logic bug.

The only reason this appeared to work despite this bug is because
GROUP_TYPE_STICK has a value of 1, and the default radius value used for
attachment sticks is 1.0.
2017-02-08 23:08:13 -05:00
Mat M 73382852b7 Merge pull request #4502 from ligfx/extractcontrolreference
InputCommon: Extract ControlReference from ControllerInterface
2017-02-08 20:01:18 -05:00
Pierre Bourdon 17e4b450fb Merge pull request #4784 from leoetlino/mios
IOS: Implement MIOS functionality
2017-02-09 01:57:16 +01:00
JosJuice 01073946b4 Fix default audio backend on Android being "No audio output"
People who already have encountered the problem will need to
manually change the audio backend (or delete the config INI).
2017-02-08 21:29:27 +01:00
Lioncash 90273191da Boot: Add missing includes 2017-02-08 10:57:24 -05:00
Lioncash 3b41d4806c Boot_BS2Emu: Get rid of unnecessary headers 2017-02-08 10:57:16 -05:00
Lioncash 57d543b10a ElfReader: Get rid of unnecessary includes 2017-02-08 10:57:10 -05:00
Lioncash 95a918b9f8 Boot_WiiWAD: Get rid of unnecessary includes 2017-02-08 10:43:50 -05:00
Léo Lam a085cd431d Adjust event times after a PPC clock change
This likely doesn't change much, but it makes events trigger at the
correct time after a clock change.
2017-02-08 16:22:27 +01:00
Lioncash e6ffce3ac9 ElfReader: Make constructor explicit
Allowing implicit conversions here is definitely not desirable.
2017-02-08 10:20:06 -05:00
Léo Lam fdfe57a49b IOS: Implement MIOS functionality
This implements MIOS's PPC bootstrapping functionality, which enables
users to start a GameCube game from the Wii System Menu.

Because we aren't doing Starlet LLE (and don't have a boot1), we can
just jump to MIOS when the emulated software does an ES_LAUNCH or uses
ioctlv 0x25 to launch BC.

Note that the process is more complex on a real Wii and goes through
several more steps before getting to MIOS:

* The System Menu detects a GameCube disc and launches BC (1-100)
  instead of the game. [Dolphin does this too.]

* BC, which is reportedly very similar to boot1, lowers the Hollywood
  clock speed to the Flipper's and then launches boot2.

* boot2 sees the lowered clock speed and launches MIOS (1-101) instead
  of the System Menu.

MIOS runs instead of IOS in GC mode and has an embedded GC IPL (which
is the code actually responsible for loading the disc game) and a PPC
bootstrap code. To get things working properly, we simply need to load
both to memory, then jump to the bootstrap code at 0x3400.

Obviously, because of the way this works, a real MIOS is required.
2017-02-08 15:07:34 +01:00
Léo Lam 4662e25cbb DolphinWX: Fix overclock slider clock display 2017-02-08 15:07:34 +01:00
Léo Lam fd49a1b2d5 Get rid of GetUsbPointer for emulated Bluetooth
It held a raw pointer to a IOS::HLE::Device::BluetoothEmu that is not
guaranteed to exist (and of course, nothing checked that it wasn't
nullptr), but what is more, it's totally unnecessary because we have
IOS::HLE::GetDeviceByName().

Since we cannot always inform the host that Wii remotes are
disconnected from ES, that is now done in BluetoothEmu's destructor.
2017-02-08 15:07:33 +01:00
Léo Lam 5fd5eeb82a IOS/ES: Don't write anything to the request after ES_Launch
Unless IOS failed at ES_Launch, it doesn't appear to write anything
back to the request after a launch, because the request is never
actually replied to in the normal way.

So let's just drop the writes to make things less confusing.
2017-02-08 15:07:33 +01:00
Léo Lam 9e6f5b203e IOS/ES: Implement ioctlv 0x25 (ES_LaunchBC)
This ioctlv is used to launch BC. Not sure if that's useful,
since only the system menu is known to launch BC and it does that
through a regular ES_LAUNCH; but let's implement it anyway.

(Implementation based on IOS59.)
2017-02-08 15:07:32 +01:00
Léo Lam ab38be1ee2 IOS: Clarify Init, Reinit, Reset, Shutdown
Some minor changes to make things slightly less confusing:

* Reinit doesn't actually init anything. It just adds static devices to
  the map, so let's give it an actually descriptive name. And let's not
  expose it in the header when it should not be.

* Reset's parameter name was changed from "force" -- which totally does
  not describe what it does -- to "clear_devices".

* Add a reload function which handles the reload process properly
  (reset all devices, set up memory values, re-add devices) and
  without publicly exposing implementation details.
2017-02-08 15:07:29 +01:00
JosJuice 14bb81716c WiiRoot: Only call InitializeDeterministicWiiSaves on temporary NAND
Shouldn't make any difference in practice because
both IsRecordingInput and IsNetPlayRunning should
be false if a temporary NAND isn't being set up,
but doing it this way is cleaner regardless.
2017-02-08 14:26:25 +01:00
Matt Mastracci 961f84b767 DVD read chunking
Splits DVD reads up into smaller chunks so that data is available
before the final interrupt is triggered. This better simulates the DMA
that happens on a real device, which some games will take advantage of -
by either playing back data as it is loading or by using data that is
going to be overwritten shortly by an outstanding read.
2017-02-08 14:18:55 +01:00
JosJuice 99492c22a6 Merge pull request #4839 from leoetlino/better-warnings
Be less annoying when usbdk is not installed
2017-02-08 14:00:12 +01:00
Markus Wick 027719d8e2 Merge pull request #4711 from lioncash/tables
JIT Instruction Tables: Eliminate JIT global usages
2017-02-08 09:39:50 +01:00
Michael Maltese 2d51bf579f ControlReference: put parsed_expression in a unique_ptr 2017-02-07 22:59:29 -08:00
Michael Maltese 492d5b6ac7 ControlReference: hide parse_error behind GetParseStatus() 2017-02-07 22:59:26 -08:00
Michael Maltese 9a632ea7b9 ControlReference: hide is_input behind function 2017-02-07 22:59:21 -08:00
Michael Maltese 813a725f68 ControlReference: move function bodies out of header 2017-02-07 22:59:14 -08:00
Michael Maltese a509f56116 InputCommon: Extract ControlReference from ControllerInterface
Better separation of concerns. Relegates `ControllerInterface` to
enumerating input controls, and the new `ControlReference` deals with
combining inputs and configuration expression parsing.
2017-02-07 22:59:10 -08:00
Matthew Parlane e2706b4381 Merge pull request #4860 from lioncash/lock
FifoPlayerDlg: Use std::lock_guard instead of manual mutex locking/unlocking
2017-02-08 18:59:28 +13:00
Matthew Parlane f838d16b0c Merge pull request #4546 from RisingFog/tas_wii_nand
Copy Wii save for current game for Netplay and TAS
2017-02-08 18:58:28 +13:00
Lioncash 399757a771 FifoPlayerDlg: Use std::lock_guard instead of manual mutex locking/unlocking
Same thing, but less error prone.
2017-02-08 00:26:32 -05:00
Matthew Parlane 4b7dd1f638 Merge pull request #4846 from aldelaro5/fix-symbols-newline
Fix symbols name from maps taking 2 lines instead of one
2017-02-08 18:18:56 +13:00
Matthew Parlane 7b3b8f26a3 Merge pull request #4789 from lioncash/input
InputCommon: Move ControllerEmu to its own directory
2017-02-08 18:16:14 +13:00
Matthew Parlane dac6a66252 Merge pull request #4769 from lioncash/settingshandler
SettingsHandler: Minor cleanup
2017-02-08 18:15:37 +13:00
Matthew Parlane f456fcec48 Merge pull request #4840 from lioncash/net
NetWindow: Eliminate usages of the main_window global
2017-02-08 18:12:56 +13:00
Matthew Parlane 691abc223b Merge pull request #4859 from lioncash/opcodedecoder
OpcodeDecoding: Convert #defines into enum constants
2017-02-08 18:12:11 +13:00
Matthew Parlane 5b7c0d86cd Merge pull request #4850 from lioncash/redundant
Core: Remove redundant returns in FifoPlayerThread() and CpuThread()
2017-02-08 18:11:30 +13:00
Matthew Parlane f91290d702 Merge pull request #4857 from lioncash/global
DSPCore: Make g_cycles_left a regular member variable of DSPEmitter
2017-02-08 18:10:59 +13:00
Matthew Parlane b41921935c Merge pull request #4854 from lioncash/constant
PowerPC: Convert #defines into typed constants
2017-02-08 18:10:11 +13:00
Matthew Parlane a027aadb24 Merge pull request #4851 from leoetlino/fix-wifi-scanning
IOS: Fix Wi-Fi scanning in system menu
2017-02-08 18:09:12 +13:00
Lioncash d9d069e024 OpcodeDecoding: Convert #defines into enum constants
Gets several constants out of global scope.
2017-02-08 00:05:17 -05:00
Florent Castelli 2bc3ffe07d DolphinWX: Add missing include for no-PCH builds 2017-02-08 05:24:46 +01:00
Lioncash 31f037b187 InputCommon CMakeLists: Normalize whitespace
Tabs -> Spaces
2017-02-07 22:15:53 -05:00
Lioncash 3a66f2c008 ControllerEmu: Move into its own directory
ControllerEmu is a massive class with a lot of nested public classes.

The only reason these are nested is because the outer class acts as a
namespace. There's no reason to keep these classes nested just for that.

Keeping these classes nested makes it impossible to forward declare them, which leads to quite a few includes in other headers, making compilation take
longer.

This moves the source files to their own directory so classes can be
separated as necessary to their own source files, and be namespaced under the
ControllerEmu namespace.
2017-02-07 22:12:06 -05:00
Lioncash 4260afc848 DSPCore: Make g_cycles_left a regular member variable of DSPEmitter
Gets rid of a global within the DSP core.
2017-02-07 21:56:57 -05:00
Florent Castelli 9ca4037ed9 UICommon: Rename HAS_LLVM to HAVE_LLVM 2017-02-08 03:30:38 +01:00
Florent Castelli f649e26655 cmake: Move LLVM import to UICommon
To use it, with a modern LLVM (3.9+), set your CMAKE_PREFIX_PATH
to point to the LLVM install folder or to a LLVM build folder.
We're linking ALL of LLVM libs since I don't really know which ones we need.
LTO will take care of sliming the binary size...
2017-02-08 03:30:38 +01:00
Florent Castelli 8c82607c95 cmake: Don't use unqualified target_link_libraries
You can't mix unqualified and qualified link libraries (PUBLIC / PRIVATE).
Use the modern form.
2017-02-08 03:07:43 +01:00
Lioncash 13f70d4597 PowerPC: Convert #defines into typed constants 2017-02-07 20:17:15 -05:00
Florent Castelli 428d1624fa cmake: Move BlueZ detection to Core 2017-02-08 01:08:33 +01:00
Léo Lam e7b6b87ffe IOS: Fix Wi-Fi scanning in system menu
The second output vector should not be written to for
IOCTLV_NCD_READCONFIG. If it is, the system menu will never attempt
to open /dev/net/wd/command and request a Wi-Fi scan.
2017-02-08 00:43:38 +01:00
Lioncash 06f6ca8d81 Core: Remove redundant returns in FifoPlayerThread() and CpuThread()
There's no need to explicitly return at the end of a void function.
2017-02-07 17:59:03 -05:00
Florent Castelli c1dcd06043 cmake: Move PulseAudio detection to AudioCommon 2017-02-07 23:35:44 +01:00
Matthew Parlane 22fbcc67fc Merge pull request #4773 from lioncash/ucode
UCodes: Eliminate unnecessary includes in header
2017-02-08 10:54:12 +13:00
Matthew Parlane 47ccf52c5e Merge pull request #4845 from ligfx/addbraces
JitIL/IR.cpp: add braces around std::array initalizers
2017-02-08 09:42:48 +13:00
Matthew Parlane 2112acf500 Merge pull request #4847 from lioncash/exi
EXI_DeviceAD16: Minor changes
2017-02-08 09:40:59 +13:00
Lioncash 31dc2b9cc1 GCPadEmu: Make constructor explicit 2017-02-07 15:12:15 -05:00
Lioncash a2a188533a GCKeyboardEmu: Make constructor explicit 2017-02-07 15:11:49 -05:00
Lioncash 9f8177c9ac UCodes: Eliminate unnecessary includes in header 2017-02-07 15:08:57 -05:00
Michael Maltese 64405f26a8 lint JitILCommon/IR.cpp 2017-02-07 12:08:25 -08:00
Lioncash 1f14b7f907 EXI_DeviceAD16: Amend variable naming
Drops Hungarian Notation type prefixing and prefixed underscores.
2017-02-07 14:58:23 -05:00
Lioncash 2f74a6f552 EXI_DeviceAD16: In-class initialize member variables
Same thing, less code.
2017-02-07 14:54:54 -05:00
Mat M 3cda4e1d9c Merge pull request #4822 from ligfx/copysys
CMake: add CMAKE_CONFIGURE_DEPENDS on Data/Sys
2017-02-07 10:41:25 -05:00
Mat M db9720d038 Merge pull request #4842 from ligfx/fix_prix64_es
ES: use PRIx64 to print m_addtitle_tmd.GetTitleId()
2017-02-07 10:39:29 -05:00
aldelaro5 9dc9033b76 Fix symbols name from maps taking 2 lines instead of one
Symbols map may not only end with a \n, but they may also end with \r\n and only the \n would get removed.  This is the case with the Super Mario Sunshine map file which resulted in a weird looking symbols list and thus made it harder to scroll through it.  This removes the \r after the \n has been removed if it's present.
2017-02-07 09:56:19 -05:00
Michael Maltese 8048716efb JitIL/IR.cpp: add braces around std::array initalizers
Fixes the following warnings on macOS Clang:

```
Building CXX object Source/Core/Core/CMakeFiles/core.dir/PowerPC/JitILCommon/IR.cpp.o
Source/Core/Core/PowerPC/JitILCommon/IR.cpp:1374:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
        LoadCR,    LoadLink, LoadMSR,  LoadGReg,          LoadCTR, InterpreterBranch,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Source/Core/Core/PowerPC/JitILCommon/IR.cpp:1378:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
        StoreLink,
        ^~~~~~~~~~
Source/Core/Core/PowerPC/JitILCommon/IR.cpp:1419:9: warning: suggest braces around initialization of subobject [-Wmissing-braces]
        BranchCond,
        ^~~~~~~~~~~
3 warnings generated.
```
2017-02-07 01:10:43 -08:00
Michael Maltese fc0d88817f CMake: make option ENABLE_SDL work again
Broken in PR #4755 / commit f978765
2017-02-06 20:59:58 -08:00
Michael Maltese 58f01e60d6 ES: use PRIx64 to print m_addtitle_tmd.GetTitleId()
Fixes a warning on macOS with Clang.
2017-02-06 20:31:28 -08:00
Michael Maltese 04158dfe15 AVIDump: use a separate AVCodecContext
Using the AVCodecContext contained in AVStream for muxing is officially
discouraged[1] and AVStream::codec was deprecated in favor of
AVStream::codecpar in libavformat 57.33.100 / 57.5.0.

1: [FFmpeg-cvslog] lavf: replace AVStream.codec with AVStream.codecpar: https://ffmpeg.org/pipermail/ffmpeg-cvslog/2016-April/099152.html
2017-02-06 20:23:37 -08:00
Michael Maltese 867d6134c5 AVIDump: open codec before stream
Minor oversight in the existing code.
2017-02-06 20:23:37 -08:00
Michael Maltese dd3d8c7a4e AVIDump: use avformat_free_context
This function frees all associated streams and codec contexts, and
has existed since libavformat 52.96.0 (February 2011).
2017-02-06 20:23:37 -08:00
Michael Maltese ac214190fd AVIDump: Replace deprecated avcodec_encode_video2 2017-02-06 20:23:37 -08:00
Florent Castelli d1eaa59a8e cmake: Move detection of OpenAL to AudioCommon 2017-02-07 03:42:43 +01:00
Florent Castelli cbb7e4072a cmake: Move AO detection to AudioCommon 2017-02-07 03:42:43 +01:00
Léo Lam b6d526ba2e IOS: Do not init libusb unless passthrough is enabled 2017-02-07 00:47:21 +01:00
Léo Lam 6a0bf24e0b Move libusb context initialization to on first use
This prevents libusb warnings from showing up even when the user is
not using Bluetooth or USB passthrough, or the Wii U GC adapter.
2017-02-07 00:47:21 +01:00
Léo Lam db7ee668ff Notify user that USB won't work if libusb init fails 2017-02-07 00:47:21 +01:00
Lioncash c41f587c29 Frame: Hide functions that don't need to be exposed
Any functions left exposed are used elsewhere through the main_window
global. May as well prevent any more functions from being used in that
manner where possible.
2017-02-06 18:29:26 -05:00
Lioncash ead076d335 NetWindow: Get rid of direct use of the main_window global
Utilizes the event system (which is what should have been done here
initially), in order to prevent coupling between two different window frames.

This also makes booting games more versatile using the UI event system,
as the event can just act as a carrier for the filename, making directly
calling boot functions unnecessary. All that's needed is for the event to
propagate to the frame.
2017-02-06 18:29:20 -05:00
Michael Maltese 1fd1620e4e CMake: add CMAKE_CONFIGURE_DEPENDS on Data/Sys
Since files from Data/Sys are collected and added to a built macOS .app
bundle using GLOB, any new files won't get picked up until the next time
CMake is run. Tell CMake it should re-run itself every time the directory
is touched.
2017-02-06 13:55:35 -08:00
Léo Lam f5a3aac8e1 IOS: Check if libusb can be used instead of asserting
This prevents panic alerts from showing up three times when starting
Wii emulation whenever libusb could not be initialized. The user has
already seen a warning at startup -- no need to warn them 3 more times.
2017-02-06 22:09:43 +01:00
Markus Wick eb3c172b95 Merge pull request #4618 from Helios747/bounding_box_check
[Video] Warn when booting a bounding box game on an unsupported GPU
2017-02-06 21:58:19 +01:00
Matthew Parlane d244597b42 Merge pull request #4408 from leoetlino/usb
IOS: USB support (OH0, USB_VEN, USB_HID)
2017-02-07 09:17:05 +13:00
Matthew Parlane 2835cfde52 Merge pull request #4836 from lioncash/enum
DSPCore: Convert the DSPCoreState enum into an enum class
2017-02-07 09:14:22 +13:00
Anthony 0c7d9bbb73 Merge pull request #4837 from lioncash/npd
NetWindow: Make chat messages queue private
2017-02-06 10:20:29 -08:00
Lioncash 2597d2b69b NetWindow: Make chat messages queue private
This doesn't need to be publicly accessable.
2017-02-06 13:03:35 -05:00
Mat M f978765bf0 Merge pull request #4755 from Orphis/cmake_sdl
cmake: Modernize SDL discovery
2017-02-06 11:55:03 -05:00
Lioncash 063e4df5a1 DSPCore: Convert the DSPCoreState enum into an enum class 2017-02-06 11:47:19 -05:00
Mat M e4c17f126c Merge pull request #4835 from ligfx/configurefilescmrev
CMake: use configure_file to generate scmrev.h
2017-02-06 11:14:08 -05:00
Michael Maltese acc8dae2b3 CMake: use configure_file to generate scmrev.h
The built-in `configure_file` command correctly handles the case where
none of the variables change and scmrev.h doesn't need to be rebuilt.
This saves a full re-link of Dolphin any time CMake is re-run.
2017-02-05 22:26:49 -08:00
Lioncash 259f827e34 Core: Actually make the State enum an enum class
It helps if I actually make it a strongly typed enum.
2017-02-06 01:13:07 -05:00
Matthew Parlane b9fc79020d Merge pull request #4817 from sepalani/debug_print_case
Handle another case with HLE_GeneralDebugPrint
2017-02-06 17:40:44 +13:00
Matthew Parlane abe7081337 Merge pull request #4818 from ligfx/bundleutilities
CMake: use BundleUtilities to fix up Dolphin.app
2017-02-06 17:39:46 +13:00
Matthew Parlane d022913fb3 Merge pull request #4828 from lioncash/state
Core: Convert State enum into an enum class
2017-02-06 17:38:46 +13:00
Matthew Parlane 516ddc1d0c Merge pull request #4820 from JosJuice/translate-swedish
Translate Swedish in example strings to English
2017-02-06 17:36:41 +13:00
Florent Castelli a7c4fd9bf0 cmake: Move discovery of SDL to InputCommon 2017-02-06 05:02:45 +01:00
Chris Burgener 5224771dac Copy Wii save for current game for Netplay and TAS 2017-02-05 13:17:05 -05:00
Mat M 1f1a232546 Merge pull request #4629 from JosJuice/es-movie-title-id
Don't call Movie::SetTitleId from ES
2017-02-05 09:26:08 -05:00
Mat M af33c9714e Merge pull request #4825 from Orphis/cmake_alsa
CMake: Updates to AudioCommon & ALSA discovery
2017-02-05 08:50:34 -05:00
Lioncash e07383a783 Core: Convert State enum into an enum class 2017-02-05 08:32:23 -05:00
Matthew Parlane c4d470cbf2 Merge pull request #4827 from Kurausukun/master
Support Setting CPU Overclock via GameINIs
2017-02-06 01:36:05 +13:00
Matthew Parlane 4df22e03ca Merge pull request #4823 from lioncash/tlb
PowerPC: Rename tlb_entry struct to TLBEntry
2017-02-06 00:59:39 +13:00
Kurausukun 2479fe6e53 Support Setting CPU Overclock via GameINIs 2017-02-05 06:16:32 -05:00
Léo Lam b63b6111b3 IOS: Implement USB_VEN (/dev/usb/ven) 2017-02-05 11:36:49 +01:00
Léo Lam c9f4889437 IOS: Re-implement USB_HIDv4 (/dev/usb/hid)
This reimplements the USB HID v4 IOS device using the new common
USB code (to reuse more code and allow emulated HIDs to be added
more easily in the future).

The main difference is that HIDs now have to be whitelisted, like
every other USB device for OH0 and VEN.
2017-02-05 11:36:49 +01:00
Léo Lam ee188a1d5a IOS: Implement OH0 (/dev/usb/oh0) 2017-02-05 11:36:48 +01:00
Léo Lam c8a6dc6c23 Use a single libusb context
libusb on Windows is limited to only a single context. Trying to open
more than one can cause device enumerations to fail randomly.

libusb is thread-safe and we don't use the manual polling support (with
`poll()`) so this should be safe.
2017-02-05 11:36:48 +01:00
Léo Lam 73e55ccf44 IOS: Add base Host and USB::Device classes
The Host class will be used by the OH0, VEN and HID implementations
as the base class for the IOS HLE device. It handles scanning devices,
detecting device changes and everything that will be needed for OH0,
VEN and HID to be implemented, while mostly abstracting libusb away.

The Device class is for actual USB devices. This commit adds a
LibusbDevice which interacts with a real USB device and enables
USB passthrough.
2017-02-05 11:36:47 +01:00
Léo Lam b8c651eac4 IOS: Store the active IOS title ID
This allows us to get back the current active IOS version and expose
only devices which exist/can be used in that version.
2017-02-05 11:36:47 +01:00
Léo Lam e246afb049 IOS: Add UpdateWantDeterminism to devices
This will be useful for the USB devices to disconnect and hide any real
devices when Core::g_want_determinism is true.
2017-02-05 11:36:47 +01:00
Léo Lam b7cc25535f DolphinWX: Add USB passthrough settings
Allows adding/removing devices from USB passthrough.
2017-02-05 11:36:47 +01:00
Léo Lam 69a13a12e2 Add USB passthrough setting and USBUtils
This adds a USB passthrough setting to ConfigManager and everything
needed for the UI to show and manage the whitelist properly.
2017-02-05 11:36:46 +01:00
JosJuice e4d20647d4 Merge pull request #4824 from lioncash/coremode
PowerPC: Convert CoreMode enum into an enum class
2017-02-05 08:25:12 +01:00
Florent Castelli 2fceb016b4 cmake: Move ALSA detection to AudioCommon 2017-02-05 02:55:05 +01:00
Florent Castelli d615c0f868 cmake: Add imported target to FindALSA 2017-02-05 02:55:05 +01:00
Florent Castelli 9ebfaa9324 AudioCommon: Move logic for default sound backend there from ConfigManager
This way, we don't have to leak the HAVE_ALSA define there.
2017-02-05 02:55:04 +01:00
Florent Castelli 31dfaafe0b AudioCommon: Remove checks against NullSound::isValid()
The NullAudio backend is guaranteed to be compiled in, so no reason
to check it.
In addition to that, if it wasn't valid, it wouldn't work as a fallback
in InitSoundStream as there are uses to g_sound_stream later.
2017-02-05 02:55:04 +01:00
Florent Castelli ee8a21f1d0 cmake: In AudioCommon, append sources and dependencies to a real target 2017-02-05 02:55:04 +01:00
Florent Castelli f1ba7832a5 cmake: Reindent AudioCommon 2017-02-05 02:55:04 +01:00
Lioncash f7b9db9846 PowerPC: Convert CoreMode enum into an enum class
Prevents constants from polluting the namespace.
2017-02-04 19:34:56 -05:00
Lioncash 4b091f5872 MMU: Use references to TLBEntry instances instead of pointers
Same behavior, less verbosity.
2017-02-04 19:03:22 -05:00
Lioncash 52b45a3933 PowerPC: Rename tlb_entry struct to TLBEntry
Makes it consistent with our naming style.
2017-02-04 18:58:45 -05:00
JosJuice bc2b9f4c3c Translate Swedish in example strings to English 2017-02-04 22:51:01 +01:00
Helios747 4c22e6387d [Video] Warn when booting a bounding box game on an unsupported GPU 2017-02-04 10:08:52 -08:00
Markus Wick 3be364073d Merge pull request #4713 from JosJuice/core-init-gameini
Don't load game INIs in Core::Init
2017-02-04 08:32:03 +01:00
Markus Wick 2ad62bf5df Merge pull request #4777 from lioncash/dspstack
DSPCore: Convert DSP stack register enum into an enum class
2017-02-04 08:27:11 +01:00
Markus Wick 72d887cb20 Merge pull request #4816 from lioncash/pair
FramebufferManagerBase: Return a std::pair from GetTargetSize
2017-02-04 08:21:52 +01:00
Michael Maltese 38816bf51d CMake: use BundleUtilities to fix up Dolphin.app 2017-02-03 22:27:19 -08:00
Florent Castelli fb02a321b6 cmake: Move OpenSLES detection to AudioCommon through find_package() 2017-02-04 03:38:11 +01:00
Sepalani e280f5615a Handle another case with HLE_GeneralDebugPrint 2017-02-03 23:30:37 +00:00
Matthew Parlane 529dc6aa53 Merge pull request #4811 from lioncash/memcardmanager
MemcardManager: Minor changes
2017-02-04 10:09:01 +13:00
Matthew Parlane e2b0197ff6 Merge pull request #4807 from leoetlino/ios-version-for-wads
Remove unneeded write to 0x3140/0x3188 for WADs
2017-02-04 10:08:29 +13:00
JosJuice edcf6819e2 Don't load game INIs in Core::Init
The game INIs are already loaded in BootManager::BootCore,
which is executed right before. Let's put the g_aspect_wide
code there instead.
2017-02-03 21:56:45 +01:00
JosJuice c847a5258f BootManager: Use local SConfig reference when possible 2017-02-03 21:55:02 +01:00
Matthew Parlane 87c73cbeb3 Merge pull request #4812 from lioncash/define
PowerPC: Move page #define constants to MMU.cpp
2017-02-04 09:49:48 +13:00
Lioncash c85e0a2586 FramebufferManagerBase: Return a std::pair from GetTargetSize
Keeps associated data together. It also eliminates the possibility of out
parameters not being initialized properly. For example, consider the
following example:

-- some FramebufferManager implementation --

void FBMgrImpl::GetTargetSize(u32* width, u32* height) override
{
  // Do nothing
}

-- somewhere else where the function is used --

u32 width, height;
framebuffer_manager_instance->GetTargetSize(&width, &height);

if (texture_width != width) <-- Uninitialized variable usage
{
  ...
}

It makes it much more obvious to spot any initialization issues, because
it requires something to be returned, as opposed to allowing an
implementation to just not do anything.
2017-02-03 15:27:53 -05:00
JosJuice e572fb102f Move ES_DIVerify's Movie-related code to a more logical place 2017-02-03 19:53:35 +01:00
JosJuice 6aa41ebc55 Movie: Put Wii s_bClearSave handling in a more logical place 2017-02-03 19:53:23 +01:00
JosJuice 88e0a5e418 Don't call Movie::SetTitleId from ES
Movie basically just wants to get the title ID of
the initally booted game, so let's set the title ID in
ConfigManager at boot like we do with the regular game ID.

Aside from being cleaner, this should make the approach to
title IDs compatible with booting non-disc software (WADs).
2017-02-03 19:52:25 +01:00
Michael Maltese fa9881f0d2 CMake: actually call deploy-mac.py, don't just echo it 2017-02-03 09:22:30 -08:00
Lioncash a30c653f3d D3D: Add CommonTypes include to D3DTexture.h
Resolves a compile error on the Windows CMake build.
2017-02-03 12:07:53 -05:00
Lioncash c67d095787 PowerPC: Move page #define constants to MMU.cpp
These are only ever used here.

This also converts them into typed constants.
2017-02-03 11:48:42 -05:00
Lioncash 5ce82583f8 MemcardManager: Get rid of prefixed double-underscores from an identifier
Identifiers with prefixed double-underscores are reserved by the C++
standard.
2017-02-03 11:30:39 -05:00
Lioncash 9d523f52f2 MemcardManager: Convert C arrays to std::array 2017-02-03 11:15:46 -05:00
Florent Castelli ca42f08e7d cmake: Copy resources next to the DolphinWX binary on Windows 2017-02-03 04:54:54 +01:00
Florent Castelli 1a4f044e9e cmake: Add RC file on Windows to DolphinWX 2017-02-03 04:54:54 +01:00
Florent Castelli 3842a9b71c OpenAL: Move Windows binaries to lib folder and fix CMake detection
The module FindOpenAL is looking for the dll in a folder called lib, not x64.
This is only used on Windows x64, it's fine to remove the platform name.
2017-02-03 04:54:54 +01:00
Mat M 1b9b1a356b Merge pull request #4805 from Orphis/cmake_macos
CMake macOS fixes
2017-02-02 20:53:22 -05:00
Matthew Parlane 7f2753362f Merge pull request #4802 from lioncash/header
ShaderGenCommon: Remove unnecessary includes
2017-02-03 14:52:41 +13:00
Matthew Parlane 8b1fc5b753 Merge pull request #4806 from lioncash/memcard-dlg
MemcardManager: Use unique_ptr over raw pointers
2017-02-03 14:50:55 +13:00
Léo Lam 767cbcafb1 Remove unneeded write to 0x3140/0x3188 for WADs
This is unnecessary now that IOS::HLE is responsible for writing the
values to memory; removing the writes also prevents the IOS minor
version from being mangled (by the write to 0x3142).
2017-02-02 22:05:36 +01:00
Lioncash d72cf81dea MemcardManager: Use unique_ptr over raw pointers 2017-02-02 14:33:01 -05:00
degasus 384efb0cb2 JitArm64: Initial implementation of the BLR optimization. 2017-02-02 09:06:34 +01:00
Florent Castelli e9aac53cec macOS: Update how resources are copied in the bundle
Instead of using install() commands, we use the MACOSX_PACKAGE_LOCATION
property, which will allow the files to be identified and updated individually
by the build system without having to remove the entire folder and copy it
each time.

deploy-mac.py is now idempotent and should be working properly, so we'll
call it all the time from now on.
2017-02-02 03:51:32 +01:00
Florent Castelli 0f9a6697fb DolphinWX: Update how localization files are installed
On macOS, we want them copied in the bundle directly, otherwise we will
install them later in the system folder.
Obviously not working for Windows, but that's not any different from before!
2017-02-02 03:51:32 +01:00
Florent Castelli 62c439814f cmake: Move Qt5 search to DolphinQt build script 2017-02-01 21:49:26 +01:00
Lioncash 468f623d27 ShaderGenCommon: Remove unnecessary includes 2017-02-01 12:19:55 -05:00
Mat M c5d4ae6163 Merge pull request #4801 from JosJuice/wii-remote-rumble
"Wii Remote Motor" -> "Wii Remote Rumble"
2017-02-01 10:41:33 -05:00
JosJuice 91fe332036 "Wii Remote Motor" -> "Wii Remote Rumble"
I've never heard any user call this motor. Let's use the word
that Nintendo uses and people actually recognize.
2017-02-01 16:19:03 +01:00
JosJuice 045de7dd26 Remove special condition for auto dual core determinism 2017-02-01 15:43:47 +01:00
Markus Wick 543120c88e Merge pull request #4799 from lioncash/light-headered
LightingShaderGen: Remove unnecessary includes
2017-02-01 15:23:18 +01:00
Markus Wick f558ae4dd1 Merge pull request #4790 from lioncash/sram
Sram: Make SRAM dumps const
2017-02-01 13:27:03 +01:00
Markus Wick 094a75f3cb Merge pull request #4791 from degasus/temp
DSPLLE: Only enable the DSP JIT on x64.
2017-02-01 13:04:18 +01:00
Lioncash 273ace7bb7 LightingShaderGen: Remove unnecessary includes 2017-02-01 01:06:00 -05:00
Matthew Parlane a9627ac881 Merge pull request #4797 from lioncash/cast
RenderBase: Get rid of unnecessary casts
2017-02-01 17:18:12 +13:00
Mat M 6fd0e96ea3 Merge pull request #4785 from lioncash/ios-fs
IOS FS: Move behavior to separate functions
2017-01-31 22:28:42 -05:00
Mat M 84d81a4b7a Merge pull request #4792 from sepalani/fix_isctype_assert
Fixes std::isprint undefined behavior
2017-01-31 21:53:12 -05:00
Sepalani 44196f6a55 Fixes std::isprint undefined behavior 2017-02-01 02:30:29 +00:00
Mat M 5b782b9f2d Merge pull request #4795 from sepalani/fix_sock
Fixes a crash when closing a socket
2017-01-31 20:30:26 -05:00
Lioncash 1f24cf2a2d RenderBase: Get rid of unnecessary casts 2017-01-31 20:25:50 -05:00
Sepalani 3fd08b6cee Fixes a crash when closing a socket 2017-02-01 00:11:19 +00:00
Markus Wick 24951fde2b Merge pull request #4793 from lioncash/asm-disasm
DSPAssembler/DSPDisassembler: Make constructors explicit
2017-01-31 00:25:27 +01:00
Lioncash a9db9fd217 DSPDisassembler: Make constructor explicit 2017-01-30 18:17:48 -05:00
Lioncash 546cd5d4be DSPAssembler: Make constructor explicit 2017-01-30 18:16:59 -05:00
degasus 2c69e976d0 DSPLLE: Only enable the DSP JIT on x64.
The x64 JIT is hardcoded right now, and it seems unlikely that we'll support another arch here soon.
So let's just disable the DSP JIT.
2017-01-30 23:53:58 +01:00
Lioncash 093b61139b Sram: Make SRAM dumps const
This is only used internally, and isn't written to.
2017-01-30 17:44:03 -05:00
Matthew Parlane 1603191145 Merge pull request #4786 from lioncash/fwd
IOS STM: Get rid of forward declarations in the cpp file
2017-01-30 22:20:58 +13:00
Markus Wick 2020928fd8 Merge pull request #4783 from degasus/temp
JitArm64: Fix immediate versions of cmpl.
2017-01-30 09:22:56 +01:00
Markus Wick 4f6dd2631d Merge pull request #4787 from booto/dcbz_arm64
Add LowDCBZHack and DCBZOFF to JitArm64
2017-01-30 08:54:27 +01:00
Lioncash b7e59f4e55 AVIDump: Rename CloseFile to CloseVideoFile
Retains symmetry with CreateVideoFile.
2017-01-29 22:05:12 -05:00
booto 9c4621d2b5 Forgot to add to JitArm64.
Also adds DCBZOFF to JitArm64.
2017-01-29 22:05:07 -05:00
Mat M 548e2d6353 Merge pull request #4709 from lioncash/exi-device
EXI_Device: Minor cleanup
2017-01-29 19:50:42 -05:00
Lioncash 1801180a30 IOS STM: Get rid of forward declarations in the cpp file
Forward declaring functions from a completely different header inside a cpp
file can lead to linker errors. Forward declaring also doesn't really
provide any benefit within cpp files unless it's to bring an internally
linked function within the same file into scope.
2017-01-29 19:30:56 -05:00
Lioncash d2da1897e7 IOS FS: Move behavior to separate functions 2017-01-29 18:32:59 -05:00
degasus 89cefe3103 JitArm64: Fix immediate versions of cmpl. 2017-01-29 18:38:43 +01:00
Stenzek 3b218c64b1 Vulkan: Refactor initialization to only use a single instance
Hopefully will fix the crash in vkDestroyInstance on the NV Shield TV,
and likely reduce boot times slightly for drivers that take a while
to create instances.
2017-01-29 22:18:53 +10:00
Matthew Parlane e823a9d80c Merge pull request #4779 from lioncash/fileio
IOS FileIO: Move GetFileStats code to its own function
2017-01-29 21:53:11 +13:00
Matthew Parlane a8c51d99f1 Merge pull request #4780 from booto/dcbz_hack
Hack to stop dcbz/dcbi over low MEM1 trashing memory.
2017-01-29 21:51:15 +13:00
Lioncash 5fd41716ae ec_wii: Make default data constexpr
None of these are modified anywhere.
2017-01-28 18:46:15 -05:00
Lioncash 926c9f995a ec_wii: Amend function casing 2017-01-28 18:46:14 -05:00
Lioncash 650071c3e4 ec_wii: Make getter functions const member functions 2017-01-28 18:45:56 -05:00
Lioncash 5b998ee9b0 ec_wii: Move implementation details into cpp file
Gets rid of the need for an include in the header file.
2017-01-28 18:45:04 -05:00
booto 2fbdf2a3ce Hack to stop dcbz/dcbi over low MEM1 trashing memory. 2017-01-28 18:04:44 -05:00
Lioncash 4c31bfef76 FileIO: Correct printf specifier in GetFileStats 2017-01-28 17:43:19 -05:00
Lioncash 6f0cabb1c5 FileIO: Move GetFileStats code to its own function 2017-01-28 17:41:40 -05:00
Mat M 66160c2781 Merge pull request #4743 from lioncash/es
ES: Separate IOCtlV code out into constituent functions
2017-01-28 15:33:34 -05:00
Markus Wick 69c4e6de41 Merge pull request #4767 from lioncash/mmio
MMIO: Get rid of a TODO regarding tuples
2017-01-28 15:38:49 +01:00
Lioncash 10d73988e7 DSPCore: Convert DSP stack register enum into an enum class
Makes it more self-documenting which stack is being loaded or stored to,
as C, D, and magic numbers are extremely vague. It also enforces a
strongly-typed API instead of accepting arbitrary integral values.

It also adds the two other missing stack register names -- loop address
and loop counter.
2017-01-28 09:17:27 -05:00
Lioncash 4846f26916 DSPEmitter: Convert a C array to a std::array 2017-01-28 07:39:22 -05:00
Markus Wick 3405f0ba01 Merge pull request #4739 from AdmiralCurtiss/auto-adjust-window-size-16-9
Make the "Auto Adjust Window Size" option respect the current game's aspect ratio.
2017-01-28 13:02:54 +01:00
Markus Wick b96b592c76 Merge pull request #4775 from lioncash/unused
DSPEmitter: Remove unused class member variable
2017-01-28 12:44:07 +01:00
Mat M ede9c6255a Merge pull request #4770 from degasus/fifo
CommandProcessor: Limit scope of ugly SCPFifoStruct.
2017-01-28 06:43:23 -05:00
Lioncash 7959f900ed DSPEmitter: Remove unused class member variable 2017-01-28 06:36:54 -05:00
degasus c2822ef7d3 PatchEngine: Apply speedhack per PC, not only per block entry.
This makes speedhacks indepdent of block assembly / inlining / conditional continue.
2017-01-28 12:36:13 +01:00
Markus Wick 04c3db8bfa Merge pull request #4771 from lioncash/dspemitter
DSPCore: Move emitter cycle code into DSPEmitter itself
2017-01-28 12:25:34 +01:00
Lioncash be3f9f7431 DSPEmitter: Fix -Wreorder warnings 2017-01-28 06:07:25 -05:00
Admiral H. Curtiss b2c40bf4c4 RenderBase: Let the Auto Adjust Window Size option request the final image size rather than the raw framebuffer size. 2017-01-28 11:40:53 +01:00
Admiral H. Curtiss e1fa6c374f RenderBase: Extract the framebuffer size to display size code into function. 2017-01-28 11:40:53 +01:00
Lioncash f5fe387a20 DSPEmitter: Make emitter dispatcher pointers private 2017-01-28 03:55:56 -05:00
Lioncash 0d42cbc923 DSPCore: Move JIT cycle code to DSPEmitter
Moves x86-specific emitter code out of DSPCore.
2017-01-28 03:55:40 -05:00
degasus ca10cf5afe PPCAnalyst: Update comments 2017-01-28 03:03:04 +01:00
degasus 4855764345 JitArm64: Implement leaf inlining.
There is no BLR stack, so this is quite trivial.
2017-01-28 02:48:56 +01:00
degasus f31b25fe39 Jit64: Enable branch following. 2017-01-28 02:48:56 +01:00
degasus 3787af9ee9 CommandProcessor: Limit scope of ugly SCPFifoStruct.
It's only used as an interface between two classes. So no need to declare
it in the backend export header.
2017-01-27 19:04:56 +01:00
Lioncash c748158182 SettingsHandler: Make GenerateSerialNumber static
This doesn't depend on class internals.
2017-01-27 10:29:57 -05:00
Lioncash 98291cd843 SettingsHandler: Add Open and Save member functions 2017-01-27 10:29:49 -05:00
Lioncash d680d1f81e MMIO: Get rid of a TODO regarding tuples 2017-01-27 02:54:07 -05:00
Markus Wick f37c5f1f1c Merge pull request #4766 from lioncash/dspemitter
DSPCore: Move CompileCurrent to the DSPEmitter
2017-01-27 08:09:52 +01:00
degasus ba1decf7bc PixelEngine: Use a DirectRead for the token.
No need to call a std::function, and a few games poll this value very often.
2017-01-27 07:49:47 +01:00
Lioncash 4003360bcb DSPCore: Move CompileCurrent to the DSPEmitter
This is only ever used here.
2017-01-27 01:36:29 -05:00
aldelaro5 334e33d4fa InputConfigDialog pass the device_cbox to the wiimote extension dialogs
This fixes a crash when trying to open the advanced input config dialog on the wiimote extensions.  The device_cbox wasn't initialised and it should have been with the wiimote one.
2017-01-27 01:06:38 -05:00
Matthew Parlane 017e8050b6 Merge pull request #4746 from JosJuice/volumedirectory-sort-case-insensitive
VolumeDirectory: Use case-insensitive comparison when sorting
2017-01-27 18:23:14 +13:00
Matthew Parlane 3d5821a9a7 Merge pull request #4745 from JosJuice/always-valid-region
ConfigManager: Always set a valid m_region
2017-01-27 18:18:37 +13:00
Matthew Parlane 06728ad687 Merge pull request #4757 from lioncash/dsptables
DSPTables: Hide remaining opcode tables
2017-01-27 18:17:36 +13:00
Matthew Parlane a0e598be10 Merge pull request #4763 from lioncash/dspemitter
DSPEmitter: Make most public variables private
2017-01-27 18:10:02 +13:00
Matthew Parlane 64b0773fc0 Merge pull request #4651 from leoetlino/bt-pass-savestates
Fix savestates in Bluetooth passthrough mode
2017-01-27 18:07:33 +13:00
Lioncash be52fcf651 DSPEmitter: Make most public variables private
Dispatchers and m_unresolved_jumps is utilized in code outside of the
emitter, so these are left as is for the time being.
2017-01-26 20:32:57 -05:00
Lioncash 970d969f63 DSPEmitter: Make conditional JIT functions in DSPJitBranch part of the emitter
These quite clearly have a dependency on the emitter itself, so these
should be a part of the emitter itself.

The template function can be modified to just simply take functions as a
parameter.
2017-01-26 20:32:34 -05:00
Lioncash 16aac00b8a DSPEmitter: Move private variables below function declarations 2017-01-26 19:25:49 -05:00
Lioncash ef52451954 DSPJitRegCache: Convert DSPJitSignExtend into an enum class
Prevents general names like SIGN, ZERO, and NONE from polluting the
surrounding namespace.
2017-01-26 18:33:50 -05:00
Lioncash bdd7034fcb DSPJitRegCache: Move allocation order array to the cpp file
As it's a private static implementation detail that doesn't rely on any
other internals of DSPJitRegCache, it can be hidden.
2017-01-26 17:12:55 -05:00
Lioncash 8f5ce50a25 DSPAssembler: Migrate VerifyParams over to an OpcodeType param instead of bool 2017-01-26 05:17:05 -05:00
Lioncash 6cb6707a4e DSPTables: Hide remaining exposed opcode tables
All opcode tables are now internal.
2017-01-26 05:17:01 -05:00
Markus Wick 0a07df13d2 Merge pull request #4753 from lioncash/dspjit
DSPEmitter: Amend member variable naming
2017-01-26 10:33:03 +01:00
Lioncash ac973e61bb ES: Separate behavior of IOCtlV into separate functions
This function is exceptionally large. Everything within a switch like this
also makes it quite error prone. Separating the functions out makes it
easier to change a certain request implementation as well as improving
code locality.
2017-01-25 19:39:22 -05:00
Lioncash 3c88c248dd ES: Convert typedef into a using alias 2017-01-25 19:31:13 -05:00
Lioncash 3cf3b50ab0 ES: Minor header reorganization
Places elements in the order:
- Structs/Enums definitions
- Functions
- Member variables
2017-01-25 19:31:13 -05:00
Lioncash f4415dd99c DSPEmitter: Amend member variable naming
Amends the variable names to follow our coding style.
2017-01-25 19:26:57 -05:00
Lioncash c2e3bd8d2f DSPAssembler: Amend printf specifiers in ShowError
code_line is a u32.
2017-01-25 17:20:25 -05:00
Lioncash 992b7f7ac0 DSPAssembler: Replace char buffer + sprintf with StringFromFormat 2017-01-25 17:20:21 -05:00
booto c889c81d8f 58 is 0x3a in hex, not 0x31 2017-01-26 01:52:10 +08:00
Léo Lam 0df2ca702b IOS: Get rid of static state in BT passthrough 2017-01-25 15:31:28 +01:00
Léo Lam 18957bdb0a IOS: Fix savestates for Bluetooth passthrough
This fixes savestates when using Bluetooth passthrough by keeping track
of pending transfer commands and discarding them on state load, so that
the emulated software receives a reply to IOS requests as expected.

With this change, savestates in BT passthrough should work as long as
no Wiimote is connected when creating the savestate and when
restoring it. Yes, I know this is an important limitation -- but
that is probably the best we can do, and it's still better than
completely broken savestates.
2017-01-25 15:31:28 +01:00
Florent Castelli 103361c846 cmake: Change endforeach(.*) to endforeach() 2017-01-25 15:07:32 +01:00
Florent Castelli 87380c1c2c cmake: Change endif(.*) to endif() 2017-01-25 15:07:32 +01:00
JosJuice 104faa9fb3 VolumeDirectory: Use case-insensitive comparison when sorting
This fixes a regression from 5.0-1556, but I don't know why
the regression occurred or why this fixes it. (Many games
failed to fully boot - I tried Metroid Prime and Twilight
Princess (both GC), and they never got to the title screen.)
2017-01-25 15:07:07 +01:00
Markus Wick 3c184dcf8d Merge pull request #4742 from lioncash/dspasm
DSPAssembler: Replace malloced output buffer with std::vector
2017-01-25 14:49:36 +01:00
JosJuice 188d36ff26 ConfigManager: Refactor setting the region into a new function 2017-01-25 14:42:11 +01:00
Pierre Bourdon 18968abbd7 Merge pull request #4723 from booto/ios-init
Set up IOS RAM information area with real values.
2017-01-25 11:41:26 +01:00
Matthew Parlane 54e7d4a3dd Merge pull request #4748 from lioncash/dspregcache
DSPJitRegCache: Make GetReg return by value
2017-01-25 22:49:16 +13:00
booto d16ca2e5c8 Load IOS from TMD when launching non-IOS title. 2017-01-25 01:11:48 -05:00
Lioncash 3734d6f16c DSPJitRegCache: Make GetReg return by value
Using out-references for this sort of thing is a C++03-ism.
2017-01-24 23:10:34 -05:00
degasus d3aee2de08 JitCache: Split off JIT call from dispatcher.
This avoid flushing the BLR optimization stack on fast_block_cache misses.
2017-01-25 01:51:19 +01:00
JosJuice 8475b03bd8 ConfigManager: Always set a valid m_region
Fixes a regression from f85266d that made WADs
with no detectable region not boot correctly.
The non-WAD code was already handling this correctly.
2017-01-24 16:34:08 +01:00
booto 3ba388138d Set up IOS RAM information area with real values. 2017-01-24 09:48:21 -05:00
Markus Wick eed64bb0fe Merge pull request #4744 from ligfx/cleanup-osx-cmake
CMake: Cleanup macOS-related logic
2017-01-24 14:36:10 +01:00
Markus Wick 63f56ccd02 Merge pull request #4741 from Orphis/cmake_cleanup
CMake cleanup
2017-01-24 14:35:05 +01:00
Stenzek 214aea1aea DSPHWInterface: Use SSSE3 function targeting 2017-01-24 20:04:55 +10:00
Stenzek d315052552 AudioCommon: Remove unused _M_SSE test 2017-01-24 20:04:55 +10:00
Stenzek 0f978227f5 Common: Use function-level targeting for CRC32 (SSE4.2) 2017-01-24 20:04:55 +10:00
Stenzek b74029ec57 TextureDecoder: Use target attributes on SSSE3 decoders 2017-01-24 20:04:55 +10:00
Stenzek 0f1b5a05ea Common: Support for function-specific instruction set target on x64 2017-01-24 20:04:55 +10:00
Michael Maltese 0ab3b1a3ff CMake: use CMAKE_OSX_DEPLOYMENT_TARGET 2017-01-24 01:27:41 -08:00
Matthew Parlane 221be63cb4 Merge pull request #4734 from leoetlino/info-ios-version
DolphinWX: Show the required IOS version in info panel
2017-01-24 18:47:14 +13:00
Florent Castelli a917d247ed DolphinWX: Remove HAVE_WX preprocessor define
I think we don't have to double check it when building the WX target.
2017-01-24 05:48:08 +01:00
Lioncash ed627a8cff DSPAssembler: Replace malloced output buffer with std::vector
Same thing, less manual memory management.
2017-01-23 22:03:40 -05:00
Florent Castelli 0baf1c78c0 vs: Move defines out of Common.h to the build system 2017-01-24 03:55:46 +01:00
Florent Castelli a7bf9271b5 Fix missing includes 2017-01-24 03:31:51 +01:00
Florent Castelli c649bf104b cmake: Prevent HAVE_OPENAL and HAVE_PORTAUDIO to be redefined 2017-01-24 03:22:03 +01:00
Florent Castelli cac53603c5 DolphinWX: Put wx related headers before including anything else
Including Windows.h before them creates compilation errors.
2017-01-24 03:22:03 +01:00
Matthew Parlane f70a1a27fa Merge pull request #4726 from ligfx/addingwindowsheaders
Fix building without PCH on Windows
2017-01-24 13:47:36 +13:00
Michael Maltese 0bc40cacda No longer need to //clang-format off for Windows headers 2017-01-23 16:23:37 -08:00
Matthew Parlane 00c993143f Merge pull request #4738 from EmptyChaos/pe-stackcheck-fix
PatchEngine: Fix potential crashing during stack probe
2017-01-24 11:27:44 +13:00
Matthew Parlane 98c4ceb3d1 Merge pull request #4737 from lioncash/bpmem
BPMemory: Minor changes
2017-01-24 11:00:25 +13:00
Lioncash 7a58a82a37 BPMemory: Add const specifier to member functions where applicable 2017-01-23 16:07:03 -05:00
Lioncash 1f596a23af BPMemory: Eliminate union type punning
This is undefined behavior in C++.
2017-01-23 16:05:32 -05:00
EmptyChaos 49873b1287 MMU/PatchEngine: Fix potential crash during stack probe
TryReadInstruction doesn't validate the address it resolves, that
can result in Memory::GetPointer failing and returning nullptr
which then leads to a nullptr dereference and a crash.

Created PowerPC::HostIsInstructionRAMAddress which works the same
way as PowerPC::HostIsRAMAddress for the IBAT.
2017-01-24 08:05:11 +11:00
Léo Lam 3d21280ab4 DiscIO: Fix out-of-bounds access in NANDContentDataBuffer
Accessing buffer[start + size] triggers an error (and a crash) in debug
builds. Using std::copy_n fixes this.
2017-01-23 21:49:26 +01:00
Matthew Parlane 86b758d7ca Merge pull request #4733 from leoetlino/expose-wad-tmd
VolumeWad: Implement GetTMD()
2017-01-24 09:20:14 +13:00
Léo Lam b892d78872 VolumeWad: Implement GetTMD()
This allows getting useful info like the required IOS version for WADs
(for showing it in the UI, for example).
2017-01-23 20:59:02 +01:00
Léo Lam ceb1797977 DolphinWX: Show the required IOS version in info panel
This is useful to know which IOS version is required by a title without
having to look at the TMD manually.

The IOS version row will only appear if there is a TMD, of course.
2017-01-23 20:42:36 +01:00
Léo Lam 1cb87a9e43 DolphinWX: Simplify item creation in InfoPanel 2017-01-23 20:42:36 +01:00
degasus 7f6b8e3555 JitCache: Extract ErasePhysicalRange as function. 2017-01-23 20:33:44 +01:00
degasus 70caf447b9 JitCache: Get physical addresses from PPCAnalyst.
So we support all kind of degenerated blocks now, not just range+length based ones.
2017-01-23 20:33:44 +01:00
degasus 3529af61c4 JitAnalyzer: Remove jit block cache workaround. 2017-01-23 20:33:44 +01:00
degasus f3ed993747 JitCache: Use a map with macro blocks for the occupied memory regions.
This also allow fast invalidation, without any restritions on the blocks itself.
So we can now implement inlining.
2017-01-23 20:33:44 +01:00
degasus dc0fbc15f0 JitCache: Drop block_map.
It is only used for invalidation, and in a bad way. Just scan over all elements,
as it is still in O(n), this shouldn't matter much.
2017-01-23 20:33:44 +01:00
Matthew Parlane 98311cd9f4 Merge pull request #4728 from lioncash/virtual-dtor
ControllerEmu: Add missing virtual destructor to BooleanSetting
2017-01-24 08:19:23 +13:00
Matthew Parlane ee065181d7 Merge pull request #4730 from leoetlino/tmdreader
TMDReader: Add a way to get the required IOS version
2017-01-24 08:19:07 +13:00
Matthew Parlane d97a2aba8d Merge pull request #4731 from leoetlino/volumewad
Minor cleanup to VolumeWad
2017-01-24 08:18:02 +13:00
Lioncash 70cf774a5c RenderBase: Forward declare EFBAccessType 2017-01-23 12:41:26 -05:00
Léo Lam f89aaee91a VolumeWad: Remove useless else after return 2017-01-23 18:17:34 +01:00
Léo Lam 2cd287baf7 VolumeWad: Add missing forward declaration 2017-01-23 18:17:34 +01:00
Léo Lam 6128679396 VolumeWad: Clean up variable naming 2017-01-23 18:07:23 +01:00
Léo Lam 6d909b3e30 VolumeWad: In-class initialise member variables 2017-01-23 18:07:21 +01:00
Léo Lam 0d8ddfb7d9 TMDReader: Add a way to get the required IOS version 2017-01-23 17:44:24 +01:00
Markus Wick 1c854f2daa Merge pull request #4727 from lioncash/enum-class
VideoBackendBase: Convert EFBAccessType and FieldType into enum classes
2017-01-23 17:14:06 +01:00
JosJuice 6d879f7f3a Merge pull request #4729 from lioncash/table
ES: Move the key table into the cpp file
2017-01-23 15:51:42 +01:00
Mat M 93faf26217 Merge pull request #4721 from RisingFog/remove_dead_audiodump_code
Remove dead audio dumping code
2017-01-23 09:17:11 -05:00
Chris Burgener dd9709509c Remove dead audio dumping code 2017-01-23 09:11:48 -05:00
Lioncash fd772f6726 ES: Move the key table into the cpp file
This is a static implementation detail, so there's no need to bind it to the class directly.

This also makes the tables read-only.
2017-01-23 08:16:28 -05:00
Markus Wick c0e8280240 Merge pull request #4706 from lioncash/dspasm
DSPAssembler: Minor cleanup
2017-01-23 12:12:01 +01:00
Lioncash a9da2d9e20 ControllerEmu: Add missing virtual destructor to BooleanSetting 2017-01-23 05:08:19 -05:00
Markus Wick 4436011c50 Merge pull request #4725 from lioncash/attachments
Attachments: Minor cleanup
2017-01-23 10:55:04 +01:00
Lioncash 34768617d2 Attachment: Make constructors explicit where applicable 2017-01-23 04:42:27 -05:00
Lioncash 34262ee3d8 Attachment: Move implementation details into the cpp file 2017-01-23 04:42:26 -05:00
Lioncash c87ee2a00e Attachment: Use std::array over C arrays 2017-01-23 04:42:21 -05:00
Michael Maltese 713ec5ffd5 Add includes for building on Windows without PCH 2017-01-23 01:37:41 -08:00
Lioncash 940aa6f32d VideoBackendBase: Convert FieldType into an enum class 2017-01-23 03:54:01 -05:00
Lioncash 5b461f50af VideoBackendBase: Convert EFBAccessType into an enum class 2017-01-23 03:53:38 -05:00
Michael Maltese c3a1547d9a AVIDump: rename CreateFile -> CreateVideoFile (conflict with windows.h) 2017-01-23 00:35:18 -08:00
Matthew Parlane 836f43038a Merge pull request #4722 from lioncash/si-device
SI_Device: Minor cleanup
2017-01-23 21:28:58 +13:00
degasus 819ebfb213 JitCache: Freeing hotfix.
Sorry, I'm too stupid to test my code.
2017-01-23 06:58:02 +01:00
Markus Wick 9cd34c7985 Merge pull request #4717 from degasus/arm
JitArm64: Fix dcbz.
2017-01-23 06:32:11 +01:00
Lioncash 4b2f40a634 Attachment: Make class members non-public 2017-01-22 23:53:13 -05:00
Lioncash fbcf86870d SI_Device: Remove const specifiers from SIDevice_Create declaration's parameters
These are only relevant on the definition of the function.
2017-01-22 22:34:23 -05:00
Lioncash 0adb0dfeef SI_Device: Move implementation details into the cpp file
Any changes to the base class' default behavior now won't require
all SI device source files to be recompiled.
2017-01-22 22:33:27 -05:00
Lioncash fb8f19f553 SI_Device: Amend variable naming 2017-01-22 22:20:16 -05:00
Lioncash f41e5eac2e SI_Device: Move protected interface below public interface 2017-01-22 22:10:43 -05:00
Lioncash 7f4ef74542 SI_Device: Move the null device implementation to its own source files 2017-01-22 21:18:51 -05:00
degasus a19993c2a0 JitArm64: Fix dcbz.
This fixes the hidden wall in xenoblade.
2017-01-23 00:26:38 +01:00
Matthew Parlane ba5c3f4c46 Merge pull request #4582 from iwubcode/per_game_wii_lang
Add support for specifying the GC/Wii system language per-game
2017-01-23 11:51:37 +13:00
Matthew Parlane ef7a809fad Merge pull request #4678 from degasus/jitcache
JitCache: Store the JIT blocks in the std::map.
2017-01-23 11:49:46 +13:00
Matthew Parlane 5cee3f99ce Merge pull request #4710 from leoetlino/save-stm-hook
IOS: STM: Save event hook to savestates
2017-01-23 11:11:08 +13:00
iwubcode a7a8e35823 Add support for specifying the GC/Wii system language per-game 2017-01-22 12:00:45 -06:00
Markus Wick 90ee85f4e8 Merge pull request #4714 from JosJuice/wbfs-file-entry
Fix -Wshadow warning for file_entry
2017-01-22 17:56:51 +01:00
Léo Lam 6291cd0bce IOS: STM: Save event hook to savestates
This allows a STM event hook to be saved and restored correctly and
fixes the power/reset button after loading a state in some cases.
2017-01-22 17:29:39 +01:00
JosJuice 79f3b5c5ff Fix -Wshadow warning for file_entry
This struct didn't follow our naming convention,
so let's rename the struct itself instead of
the variable that triggered the warning.
2017-01-22 17:27:37 +01:00
degasus 8e00c411a3 JitCache::Rename iCache to fast_block_map.
iCache sounds too much like emulation.
2017-01-22 17:10:28 +01:00
degasus 830ae6a2c1 JitCache: Store the JitBlock in the std::map. 2017-01-22 16:50:46 +01:00
degasus 43cdbab515 Jit64: Add a switch for easier fallback to the C++ dispatcher. 2017-01-22 16:50:46 +01:00
degasus 9b77a39767 JitCache: Only call DestroyBlock on valid blocks. 2017-01-22 16:50:46 +01:00
degasus 113d6b3b84 JitCache: Use a multimap for block_map and start_block_map.
We may have duplicated entries here because of MSR mismatch. Just
store both and validate the matching one on cache access.
2017-01-22 16:50:46 +01:00
degasus 9d58127dec JitCache: Move JitBlock config variable. 2017-01-22 16:50:46 +01:00
degasus 352909fc4c JitCache: Track the ICache entry of jit blocks.
This guarantees that no invalidated jit block is still in the icache.
2017-01-22 16:50:14 +01:00
Lioncash a97aef2e94 Jit: Eliminate JIT global usages 2017-01-22 06:01:30 -05:00
Lioncash a18ab5e154 JitArm64_LoadStore: Eliminate JIT global usages 2017-01-22 05:59:38 -05:00
Lioncash 4601499179 JitArm64_LoadStoreFloating: Eliminate JIT global usages 2017-01-22 05:57:44 -05:00
Lioncash b4e00115c5 JitArm64_Tables: Eliminate usages of the JIT global 2017-01-22 05:54:33 -05:00
Lioncash b0605c24d3 JitIL_Tables: Eliminate usages of the JIT global 2017-01-22 05:43:40 -05:00
Lioncash 3ee31890d3 Jit64_Tables: Eliminate usages of the JIT global 2017-01-22 05:43:34 -05:00
degasus c9c5437cb8 JitCache: Fix links_to updates on destroying blocks. 2017-01-22 11:37:22 +01:00
Lioncash 6cddc1be95 EXI_Device: Get rid of an unnecesary cast 2017-01-22 04:28:49 -05:00
Lioncash 2e85ddef60 EXI_Device: Remove unnecessary const on EXIDevice_Create declaration parameters
These are only relevant on its definition.
2017-01-22 04:28:48 -05:00
Lioncash 07a61b0d15 EXI_Device: Move implementation details into the cpp file
Any change to the default behavior of any device methods now won't require
the recompilation of all EXI devices.
2017-01-22 04:28:44 -05:00
Lioncash e41a6ac9a3 EXI_Device: Amend variable naming 2017-01-22 04:08:49 -05:00
Lioncash 4115d93c71 EXI_Device: Move destructor to beginning of public section
Constructors and destructors should be the first thing shown in a public
interface.
2017-01-22 02:35:20 -05:00
Lioncash a5c0409050 EXI_Device: Move private details below the public interface 2017-01-22 02:30:10 -05:00
Lioncash 7c0b96f638 EXI_Device: Move the dummy implementation to its own source files 2017-01-22 02:15:36 -05:00
Lioncash d6bdbfe90e DSPAssembler: Use std::string instead of malloced char buffers in AssembleFile 2017-01-22 01:15:36 -05:00
Lioncash cbe1ec51df DSPAssembler: Make AssembleFile take a std::string
File paths passed to it would have been implicitly converted to std::strings
prior to this function being reached, so it gets rid of some string churn.
It also makes it safer since nullptr can't be passed in.
2017-01-22 01:15:31 -05:00
Matthew Parlane d9c873bc8b Merge pull request #4704 from lioncash/exi-channel
EXI_Channel: Minor cleanup
2017-01-22 16:53:09 +13:00
Lioncash d2ff34e510 EXI_Channel: Remove const qualifiers from member function declaration parameters
Const used on value types only really has a use when used within the
definition.
2017-01-21 22:36:09 -05:00
Lioncash 387769b4e2 EXI_Channel: Move SetEXIINT implementation into the cpp file 2017-01-21 22:36:09 -05:00
Lioncash edf8a79005 EXI_Channel: Make constructor explicit 2017-01-21 22:36:09 -05:00
Lioncash 5a85001d30 EXI_Channel: Amend variable casing 2017-01-21 22:36:04 -05:00
Matthew Parlane 2252b7a355 Merge pull request #4705 from lioncash/mmu
MMU: Change '0' literals to 'false' in IsOptimizableGatherPipeWrite
2017-01-22 16:24:49 +13:00
Lioncash 0dee9bc4f0 MMU: Change '0' literals to 'false' in IsOptimizableGatherPipeWrite 2017-01-21 21:16:41 -05:00
Matthew Parlane 507715f316 Merge pull request #4700 from degasus/videoconfig
VideoConfig: Fix boolean default values.
2017-01-22 14:52:37 +13:00
Lioncash 688225616e EXI_Channel: In-class initialize variables 2017-01-21 18:44:54 -05:00
Lioncash 489e4c49bc EXI_Channel: Move private interface below public interface 2017-01-21 18:42:18 -05:00
BhaaL 07d1f18f53 CompressFileToBlob: add an explicit seek to make sure we're at the start 2017-01-21 21:42:58 +01:00
BhaaL 30e0f3d9ca DecompressFileToBlob: don't assume success if decompression failed 2017-01-21 21:42:58 +01:00
BhaaL 24be8c0814 IsGCZBlob: try to leave the file position where it was before
callers that don't seek afterwards might be missing a few bytes that way.
2017-01-21 21:42:57 +01:00
Léo Lam 3eb81ad219 Netplay: Fix wrong mapping info being used in dialog
Obvious fix for a small mistake.
2017-01-21 20:42:30 +01:00
degasus 65e3aa796e VideoConfig: Fix boolean default values. 2017-01-21 11:31:44 +01:00
Matthew Parlane 7ebfd357b5 Merge pull request #4699 from Orphis/cmake_cleanup
CMake cleanup (but wait, there's more!)
2017-01-21 16:38:09 +13:00
Florent Castelli 59fb8042d1 cmake: Add XInput file to the InputCommon target 2017-01-21 02:44:18 +01:00
Florent Castelli 6c197a8f6a cmake: Rename variable for libxi to X11_INPUT 2017-01-21 02:44:18 +01:00
Lioncash 794d0a9d7c Core: Move SI source files to their own directory 2017-01-20 19:33:24 -05:00
Matthew Parlane 71ea457874 Merge pull request #4696 from Orphis/cmake_cleanup
CMake cleanup for Windows (moar!)
2017-01-21 13:09:52 +13:00
Matthew Parlane a945b4ea9b Merge pull request #4691 from lioncash/dsptables
DSPTables: Hide/Eliminate some extern variables
2017-01-21 12:39:47 +13:00
Florent Castelli b6a7216b07 cmake: Mark DolphinWX target as a Windows application (instead of console) 2017-01-21 00:35:55 +01:00
Florent Castelli 2ff10ad021 cmake: Add missing Windows file to common 2017-01-21 00:35:55 +01:00
Florent Castelli 5540cda820 cmake: Don't build traversal_server on Windows, it requires posix platform 2017-01-21 00:35:55 +01:00
Florent Castelli e55ec1ed35 cmake: Build D3D and D3D12 video backends 2017-01-21 00:35:55 +01:00
Florent Castelli 1516361d1d cmake: Add missing dependencies on libs on Windows 2017-01-21 00:35:55 +01:00
Florent Castelli b5b9c0cfc3 cmake: Build XAudio 2.7 backend on Windows 2017-01-21 00:34:02 +01:00
Matthew Parlane 83dc03416e Merge pull request #4690 from leoetlino/common-usb
IOS: Move out common USB structures
2017-01-21 12:33:06 +13:00
Matthew Parlane 2f9bf297f1 Merge pull request #4693 from lioncash/interp-naming
Interpreter: Amend parameter naming
2017-01-21 12:31:51 +13:00
Lioncash 8078c18a80 Core: Move EXI source files to their own directory
Keeps related source files together and cleans up the root directory of HW
a little bit.
2017-01-20 16:06:35 -05:00
Lioncash 4d92ffb949 Interpreter: Amend parameter naming
Drops prefixed underscores from parameters

The C++14 standard states in section 2.10 subsection 3.2:

"Each identifier that begins with an underscore is reserved to the
implementation for use as a name in the global namespace."

It's highly unlikely an implementation will ever use '_inst' as a global
identifier, however it's better to just amend the names and alleviate
the concern altogether.
2017-01-20 14:51:00 -05:00
Léo Lam 954c41d6e9 IOS: Move out common USB structures
Some structures will be reused and shared between several IOS USB
device implementations. This prepares for the upcoming USB PR.

I've also removed GetPointer calls in the trivial case (BT passthrough)
2017-01-20 18:29:21 +01:00
Matthew Parlane 25c779943b Merge pull request #4687 from lioncash/ppc-state
PowerPC: Explicitly savestate PowerPCState members
2017-01-20 17:51:42 +13:00
Lioncash c73f4bd226 DSPTables: Hide main opcode tables
Hides the opcode tables that the interpreter and JIT interface with to
execute instructions.

This does not, however, hide the read-only tables that the assembler and
disassembler use.
2017-01-19 17:46:07 -05:00
Lioncash 2b5b21f2a4 DSPAssembler: Rename FindOpcode parameters
Having opcod and opcode as parameter names is kind of silly.
2017-01-19 17:46:01 -05:00
Lioncash 14f0e66809 DSPTables: Use std::array instead of C arrays 2017-01-19 17:07:31 -05:00
Matthew Parlane 2acb3ef3f5 Merge pull request #4688 from leoetlino/ios-prefix
IOS: Remove IOS prefix on a few structs/enums
2017-01-20 11:04:10 +13:00
Léo Lam a000a3c23f Only allow reset/power when core is running
If we don't check for Core::IsRunning(), event types such as
iosNotifyResetButton may actually be nullptr, or some random invalid
pointer (after an emulation start then shutdown) and be used when the
user triggers a reset, which causes random crashes.
2017-01-19 22:08:13 +01:00
Léo Lam e33d943459 IOS: Remove IOS prefix on a few structs/enums
Now that IOS code is namespaced, we don't need the prefix anymore.
2017-01-19 19:10:31 +01:00
Matthew Parlane 629fcb437a Merge pull request #4683 from leoetlino/rename-ipc-hle
Reorganise the IOS HLE source files (and drop WII_IPC_HLE)
2017-01-19 20:54:35 +13:00
Lioncash d266be5b56 PowerPC: Explicitly savestate PowerPCState members
Makes it more obvious which data is going into the savestate.
It also allows PowerPCState and InstructionCache to potentially
contain members that don't necessarily need to be saved to the save state.

It also gets rid of any potential padding data being put into the save
state.
2017-01-18 23:44:46 -05:00
Lioncash c761f98ede PowerPC: Simplify TLB resetting
Member initializers and std::array make this trivial for fixed value initialization.
2017-01-18 19:31:04 -05:00
Lioncash b2351ddb29 PowerPC: Move CPU core initialization to its own function 2017-01-18 19:13:52 -05:00
Lioncash e86def732a PowerPC: Move zeroing of segment registers into ResetRegisters 2017-01-18 16:03:31 -05:00
Léo Lam ef5a855b8e Update log types names from IPC_HLE to IOS
For consistency with the other changes.

WII_IPC_DVD was changed to IOS_DI, as this describes what the log type
is used for in a more specific way.
2017-01-18 21:43:37 +01:00
Léo Lam 49b9c723e2 Put IOS devices in a namespace and drop WII_IPC_HLE prefix 2017-01-18 21:42:33 +01:00
Matthew Parlane f94bd7d865 Merge pull request #4684 from lioncash/dsp-emu
DSPEmulator: Amend variable casing
2017-01-19 09:10:58 +13:00
Léo Lam 24199293d3 IOS: Reorganise the source files and IPC_HLE→IOS
IPC_HLE is actually IOS HLE. The actual IPC emulation is not in
IPC_HLE, but in HW/WII_IPC.cpp. So calling IPC_HLE IOS is more
accurate. (If IOS LLE gets ever implemented, it'll likely be at
a lower level -- Starlet LLE.)

This also totally gets rid of the IPC_HLE prefix in file names, and
moves some source files to their own subdirectories to make the file
hierarchy cleaner.

We're going to get ~14 additional source files with the USB PR,
and this is really needed to keep things from becoming a total pain.
2017-01-18 20:43:10 +01:00
Lioncash cf1c194b88 DSPLLE: Amend variable casing 2017-01-18 12:50:58 -05:00
Lioncash 0f70650e93 DSPHLE: Amend variable casing 2017-01-18 12:44:27 -05:00
Lioncash a57b378116 DSPEmulator: Amend variable casing 2017-01-18 12:20:13 -05:00
Lioncash bba6a31eb6 Interpreter_Tables: Amend leftover comment 2017-01-18 03:03:44 -05:00
Lioncash 06488477a9 Interpreter_Tables: Ensure all instructions fit within m_allInstruction at compile-time 2017-01-18 03:03:42 -05:00
Lioncash 6c61021eb1 PPCTables: Use std::array instead of raw C arrays 2017-01-18 03:03:00 -05:00
Lioncash 1a1ce42889 Interpreter_Tables: Use std::array for instruction tables 2017-01-18 03:02:55 -05:00
Matthew Parlane 01b322d45f Merge pull request #4679 from lioncash/ipc
IPC_HLE: Namespace IPC HLE
2017-01-18 17:33:08 +13:00
Matthew Parlane 41f7995916 Merge pull request #4680 from lioncash/ir
IR: Minor changes
2017-01-18 17:31:40 +13:00
Lioncash e4ea9f7ace Interpreter: Use std::array for instruction tables 2017-01-17 22:06:52 -05:00
Lioncash f0abdbdeb5 Interpreter: Correct member variable casing 2017-01-17 21:50:01 -05:00
Lioncash e9b506638f Interpreter: Make m_EndBlock private 2017-01-17 21:16:14 -05:00
Lioncash 722162b54a IPC_HLE: Namespace IOS HLE
Gets all of the IOS HLE code out of the global scope.
2017-01-17 20:46:58 -05:00
Lioncash f1542c8e5a Common: Namespace Network.h/.cpp
Necessary to avoid namespace clashes with IOS HLE's namespace name.
2017-01-17 20:46:48 -05:00
Lioncash bb49012445 IR: Deduplicate code in Reset and FoldFallbackToInterpreter 2017-01-17 20:35:02 -05:00
Lioncash 89473d5996 IR: Clean up getNumberOfOperands
- Use std::array
- Make arrays constexpr where their contents aren't modified.
2017-01-17 20:22:38 -05:00
Lioncash d3aed03563 IR: Make trivial helper functions constexpr 2017-01-17 19:42:36 -05:00
Lioncash d1f39185dd IR: Convert typedefs to using aliases 2017-01-17 19:40:56 -05:00
Matthew Parlane f785d7f869 Merge pull request #4675 from lioncash/jitil
JitILBase: Make the IRBuilder protected
2017-01-18 13:10:31 +13:00
Florent Castelli 875563787f cmake: include(Find…)->find_package(…) 2017-01-17 21:50:44 +01:00
Lioncash 1516c22a22 JitILBase: Make the IRBuilder instance protected
There's no need to make it public.
2017-01-17 14:55:45 -05:00
Lioncash e924814d62 JitILBase: Move protected members below public 2017-01-17 14:45:40 -05:00
Matthew Parlane 63011f1402 Merge pull request #4661 from leoetlino/ios-request
IOS HLE: Deduplicate the request parsing code
2017-01-18 08:38:37 +13:00
Matthew Parlane 753455b379 Merge pull request #4671 from endrift/fix-libusb
InputCommon: Fix FreeBSD 11 libusb incompatibilities
2017-01-17 21:43:08 +13:00
Jeffrey Pfau c5b3b52d55 InputCommon: Fix FreeBSD 11 libusb incompatibilities 2017-01-17 00:30:08 -08:00
Lioncash 8346f86ee4 IR: Remove unnecessary semicolon on namespace brace 2017-01-16 19:54:42 -05:00
Lioncash 67fc73e82c IR: Make getNumInsts return type size_t
There's no need to cast here.
2017-01-16 19:38:30 -05:00
Lioncash 459a6e73c3 IR: Remove unused function 2017-01-16 19:32:13 -05:00
Lioncash cd12b2c55f IR: Make IRBuilder uncopyable
Hiding and not implementing the copy constructor is a pre-C++11 thing.
It should also be noted that a copy constructor, as defined by the
language, contains a const qualifier on its parameter, so this wouldn't
have prevented copies from being performed.
2017-01-16 18:59:17 -05:00
Lioncash a8b2dd7fc3 IR: Use std::array instead of raw C arrays 2017-01-16 18:54:30 -05:00
Lioncash ef3e6de875 IR: Move implementation of the constructor and Reset into the cpp file
Neither of these are intended to be called extremely frequently to warrant
this.
2017-01-16 18:36:11 -05:00
Léo Lam 25f89ccae8 IOS HLE: Specify the return code when replying
This makes more sense than setting the return code on the request
struct first before replying.

Ref: https://github.com/dolphin-emu/dolphin/pull/4661#discussion_r96273253
2017-01-17 00:28:22 +01:00
Lioncash 47fc72f0a8 IR: Get rid of an unimplemented member function prototype 2017-01-16 18:11:54 -05:00
Lioncash 4f75590fdb IR: Move private details below public details 2017-01-16 18:08:11 -05:00
Léo Lam c6b1cfb222 IOS HLE: Remove old structs and methods
Now that everything has been changed to use the new structs, the old
methods and structs can be removed.

And while I was changing the base device class, I also moved the
"unsupported command" code to a separate function. It was pretty silly
to copy the same 3 lines for ~5 commands.
2017-01-16 23:55:57 +01:00
Léo Lam 8629a1f11c IOS HLE: Deduplicate request code in WFS 2017-01-16 23:55:57 +01:00
Léo Lam 4af67abb55 IOS HLE: Deduplicate request code in ES 2017-01-16 23:55:56 +01:00
Léo Lam 6bf0b487d1 IOS HLE: Deduplicate request code in USB_HID 2017-01-16 23:55:56 +01:00
Léo Lam 0e979ec75f IOS HLE: Deduplicate request code in FileIO and FS 2017-01-16 23:55:56 +01:00
Léo Lam 5a5985f674 IOS HLE: Deduplicate request code in DI 2017-01-16 23:55:55 +01:00
Léo Lam 469a31db32 IOS HLE: Deduplicate request code in sdio_slot0 2017-01-16 23:55:55 +01:00
Léo Lam a04902086a IOS HLE: Deduplicate request code in net/net_ssl 2017-01-16 23:55:55 +01:00
Léo Lam 84c8d0b66d IOS HLE: Deduplicate request code in stub 2017-01-16 23:55:54 +01:00
Léo Lam f9e806fd71 IOS HLE: Deduplicate request code in OH1 2017-01-16 23:55:54 +01:00
Léo Lam d4de87a973 IOS HLE: Deduplicate request code in USB_KBD 2017-01-16 23:55:53 +01:00
Léo Lam d536082e42 IOS HLE: Deduplicate request code in USB_VEN 2017-01-16 23:55:53 +01:00
Léo Lam d7b4e6ead5 IOS HLE: Deduplicate request code in STM 2017-01-16 23:55:52 +01:00
Léo Lam e2d072250f IOS HLE: Deduplicate request code in WII_IPC_HLE 2017-01-16 23:55:52 +01:00
Léo Lam d8b9b3825c IOS HLE: Add resource request structs
This adds well-defined structs that are responsible for parsing
resource requests, instead of duplicating the logic and offsets all
over IOS HLE. Command handler functions are now passed parsed requests
instead of a command address.

This may not seem like a very important change, but it removes the
need to remember all of the struct offsets or copy/paste existing
struct request variables. It also prevents nasty bugs which have
occurred in the past, such as parsing an ioctl as if it were an ioctlv
(that's way too easy to do if you pass command addresses directly);
or writing something to 0x0, which can easily happen by mistake with
a close handler that can be called with invalid command addresses.

Bonus changes:

- The return code is not an obscure Memory::Write_U32 anymore, but an
  explicit, more obvious SetReturnValue() call. (Which correctly takes
  a s32 instead of a u32, since return codes are signed.)

- Open handlers are now only responsible for returning an IOS ret code,
  and Close handlers don't return anything and don't have to worry
  about checking whether the request is a real one anymore.

- DumpAsync was moved to the ioctlv request struct, because it did
  not really make sense to make it part of the IOS device and it only
  works for ioctlvs.
  All current usages have been removed; they will be readded in a
  later commit.

As of this commit, nothing uses the structs yet. Usages will be
migrated progressively.
2017-01-16 23:55:52 +01:00
Matthew Parlane 53bfab057c Merge pull request #4666 from lioncash/jitil-ir
IR_X86: Minor changes to RegInfo
2017-01-17 11:52:44 +13:00
Matthew Parlane 8153772bfe Merge pull request #4662 from lioncash/memview
MemoryView: Separate memory string composition from OnPaint
2017-01-17 11:31:16 +13:00
Lioncash 43910e474b IR_X86: Use member initializers where applicable for RegInfo 2017-01-16 17:29:09 -05:00
Lioncash bc7374a5e1 IR_X86: Use std::array instead of raw C arrays in RegInfo 2017-01-16 17:29:09 -05:00
Lioncash 45f7883ed8 IR_X86: Make RegInfo uncopyable
Hiding and not implementing the copy constructor is a pre-C++11 thing.
It should also be noted that a copy constructor, as defined by the language,
contains a const qualifier on its parameter, so this wouldn't have
prevented copies from being performed.

It also follows that if the copy constructor is deleted, then copy
assignment should also be forbidden.
2017-01-16 17:27:03 -05:00
Matthew Parlane 3415a1ca18 Merge pull request #4614 from jackoalan/gba-hle-cleanup
DSP: Clean up GBA crypto HLE implementation
2017-01-17 11:10:50 +13:00
Matthew Parlane ed7589cb0f Merge pull request #4656 from hthh/cmpr-fixes
TextureDecoder: Fix off-by-one errors in CMPR
2017-01-17 11:05:42 +13:00
Lioncash 6788cb7266 HW/DSP: Correct prefixes of translation-unit-local variables
These aren't globals.
2017-01-16 14:53:37 -05:00
Lioncash 8cc4815fe2 HW/DSP: Hide the DSP state global 2017-01-16 14:14:03 -05:00
Markus Wick 1a01aee66e Merge pull request #4663 from lioncash/dsp-init
HW/DSP: Use member initializers with structs/unions where applicable
2017-01-15 23:51:13 +01:00
Markus Wick 23104b6939 Merge pull request #4655 from Armada651/vertex-depth-no-uid
VertexShaderGen: Remove the need for an extra UID.
2017-01-15 23:02:13 +01:00
Lioncash c6ec5de659 HW/DSP: Use member initializers with structs/unions where applicable 2017-01-15 16:03:12 -05:00
Lioncash 3848c2a018 MemoryView: Get rid of a type-punning cast from u32 to float
This is undefined behavior. The bits should be memcpyed.
2017-01-15 12:16:41 -05:00
Lioncash 2108bf1be6 MemoryView: Separate memory string composition from OnPaint
OnPaint should only care about drawing data, not directly creating
said data.
2017-01-15 12:13:08 -05:00
Pierre Bourdon 28f0d8e8a7 Merge pull request #4658 from lioncash/bits
Common: Add bit utility header
2017-01-15 17:23:30 +01:00
Markus Wick 5297309dfa Merge pull request #4650 from degasus/jitcache
JitCache: Use pointers in the ICache and dispatchers.
2017-01-15 15:59:10 +01:00
hthh 88d52b4d69 TextureDecoder: Deduplicate some utility code 2017-01-15 20:23:26 +11:00
Matthew Parlane e727e91be6 Merge pull request #4660 from JosJuice/gfx-debug-strings
Remove seemingly unused debug UI strings
2017-01-15 11:53:25 +13:00
JosJuice 2052bb8bea Remove seemingly unused debug UI strings
wxChoice controls don't display any titles.

By the way, why is the file called DebuggerPanel.cpp
even though it implements the Video debug panel specifically?
2017-01-14 22:34:49 +01:00
Pierre Bourdon dd9e6760c4 Merge pull request #4659 from leoetlino/chunkfile-set
Fix ChunkFile for std::set
2017-01-14 20:11:00 +01:00
Pierre Bourdon 45a1232920 IOS: Add partial wfsi/wfssrv implementations.
The current implementations do many things wrong but work well enough to
run the Dragon Quest X installer until the very end. The game itself
crashes when being launched from its System Menu channel unfortunately
so it is hard to verify whether the install properly worked or not.

There are plenty of "TODO(wfs)" sprinkled around this codebase with
things that are knowingly done wrong. The most important one right now
is that content extraction is done by buffering everything into memory
instead of properly streaming the data to disk (and processing
asynchronously), which causes freezes. It is likely to not cause any
practical issues since only the installer and the updater should use
this anyway.
2017-01-14 19:56:43 +01:00
Léo Lam ea0335f7c1 Fix ChunkFile for std::set
Without this, attempts to savestate std::set will fail with an error
about dropping the const qualifier.

<Lioncash> leoetlino: I'll try to break it down: So, when you do a
 ranged-for on a container, it's essentially syntactic sugar over begin
 and end iterators. std::set is an associative container where the key
 type is the same as the value type, and so it's required that all
 iterator functions return constant iterators. If this wasn't a
 requirement, it would allow changing the ordering of elements from
 outside of the set's API (this is bad).
2017-01-14 19:00:19 +01:00
Lioncash 0a6f0dfb74 Common: Add bit utility header
This attempts to make some bit arithmetic more self-documenting and also
make it easier during review to identify potential off-by-one errors by
making it possible to just specify which bits are being extracted.

Functions both support the case where bits being extracted can vary and
fixed bit extraction. In the case the bits are fixed, compile-time asserts
are present to prevent accidental API usage at compile-time.

e.g. Instead of shifting and masking to get bits 10 to 15,
Common::ExtractBits<10, 15>(value) can just be done instead.
2017-01-14 11:16:02 -05:00
Pierre Bourdon 45d27f7fc7 CommonPaths: Add D_WFSROOT_IDX.
Defaults to $USERDIR/WFS. Used to store the contents normally stored on
WFS mass storage devices.
2017-01-14 17:06:40 +01:00
Pierre Bourdon a8f7012cf7 IOS/ES: Implement basic title installation.
There are several things wrong with this implementation. The first being
that since we still don't have a proper ticket/tmd handling library, we
hardcode offsets once again to fetch TMD fields. The second being that
we don't stream data to the disk and we buffer everything in memory. The
third being that we don't properly fetch the content index for
decryption, which is prone to breaking.

But hey, it works well enough to install the DQX channel!
2017-01-14 17:06:40 +01:00
Pierre Bourdon 0a5cfd8946 IOS: Add ESFormats.{cpp,h}.
This library implements basic parsing support for some of the IOS ES
formats we need to extract data from. Currently only implements TMD
functions, but some ticket handling functions from DiscIO should likely
be moved here in the future.
2017-01-14 17:06:40 +01:00
Pierre Bourdon 334ddf754e DiscIO: Export GetKeyFromTicket
This function has more uses than just in DiscIO (e.g. WFS).
2017-01-14 17:06:40 +01:00
Pierre Bourdon 650a1fdb1f DiscIO: Implement functions to lookup tickets
These two functions load either a signed ticket or a raw ticket from the
emulated NAND.

The ticket signature skip is refactored out of the ticket writing in
order to be usable by the raw ticket reading function.
2017-01-14 17:06:40 +01:00
Pierre Bourdon 2ed352698f IOS/ES: Implement ES_AddTicket.
Refactor the existing DiscIO::AddTicket to not require the caller to
pass the requested title ID. We do not have the title ID in the ES case,
and it needs to be extracted from the ticket. Since this is always a
safe operation to do (title ID is always in the ticket), the
implementation is made default.
2017-01-14 15:23:16 +01:00
Pierre Bourdon c30635c70a IOS/ES: Factor out the ES_Decrypt implementation.
WFSI calls into ES to perform this operation, so expose a way for us to
do the same thing.
2017-01-14 15:23:16 +01:00
hthh 5d4e4aa561 TextureDecoder: Fix off-by-one errors in CMPR 2017-01-14 10:52:35 +11:00
Lioncash 45415e1057 ColorUtil: Make decodeCI8image's pal parameter const 2017-01-13 17:07:26 -05:00
Matthew Parlane 30e57cecf7 Merge pull request #4653 from lioncash/dsp-define
DSPInterpreter: Get rid of a #define constant
2017-01-14 10:54:48 +13:00
Jules Blok 271a9fe7a9 VertexShaderManager: Break up the conditions to make it readable. 2017-01-13 14:01:17 +01:00
Jules Blok f866748006 VertexShaderGen: Remove the need for an extra UID. 2017-01-13 14:01:17 +01:00
Matthew Parlane ad84b904e4 Merge pull request #4496 from Mystro256/master
Fix GCC build issue with Fedora (linux)
2017-01-13 23:13:08 +13:00
Matthew Parlane 0d43b0e0e4 Merge pull request #4652 from lioncash/memcard
GCMemcard: Const-correctness changes
2017-01-13 23:09:08 +13:00
Lioncash 35cc4a4202 DSPInterpreter: Get rid of a #define constant
This constant isn't particularly helpful, mainly because it's not
applicable to all DSP instructions. Some instructions don't have encoding
space for registers, and not all instructions that do encode registers
have one at the first five bits.

This change also has the benefit of removing all includes to the
interpreter within the JIT code, which keeps them fully separate from one
another. Changes to the interpreter header won't require some of the JIT
code to be rebuilt.
2017-01-12 20:36:52 -05:00
Lioncash 0035a4ef3d GCMemcard: Const-correctness changes
A few function reference and pointer parameters are only read from.
2017-01-12 20:01:19 -05:00
Léo Lam 5fd486014b DolphinWX: Always keep panic alerts on top
This should prevent silly things like panic alerts opening *behind* the
render window and thus being impossible to see.
2017-01-12 23:40:58 +01:00
Matthew Parlane 5790f15be8 Merge pull request #4299 from sepalani/hle_symbols
SymbolDB: Multiple symbols detection allowed
2017-01-13 10:05:32 +13:00
Matthew Parlane 9838afea41 Merge pull request #4479 from GerbilSoft/feature/RVT-R.dev-key
Support for RVT-R disc images
2017-01-13 09:56:50 +13:00
Matthew Parlane 22546aef37 Merge pull request #4499 from ligfx/msgalertmainthread
DolphinWX: pass wxMsgAlert to main thread on non-GTK too
2017-01-13 09:52:09 +13:00
Matthew Parlane 24f7ebc890 Merge pull request #4420 from JosJuice/memcard-header-time
Don't use GetEmulatedTime in GCMemcard
2017-01-13 09:49:35 +13:00
degasus fe41ed7fa1 JitCache: Use pointers in the ICache and dispatchers. 2017-01-12 21:43:28 +01:00
Léo Lam 64101137cd Remove pre-generated SYSCONF
Dolphin is able to generate one with all correct default settings, so
we don't need to ship with a pre-generated SYSCONF and worry about
syncing default settings.

Additionally, this commit changes SysConf to work with session SYSCONFs
so that Dolphin is able to generate a default one even for Movie/TAS.
Which SYSCONF needs to be touched is explicitly specified to avoid
confusion about which file SysConf is managing.

(Another notable change is that the Wii root functions are moved into
Core to prevent Common from depending on Core.)
2017-01-12 21:30:11 +01:00
Matthew Parlane d346d4ced1 Merge pull request #4544 from JosJuice/region-enum
DiscIO: Add GetRegion function and Region enum
2017-01-13 09:19:27 +13:00
Matthew Parlane 34c6672b97 Merge pull request #4446 from leoetlino/countries
ConfigManager: Don't overwrite the SYSCONF country
2017-01-13 09:09:56 +13:00
Matthew Parlane 356619642b Merge pull request #4647 from degasus/jitcache
JitCache: Clean up block id handling.
2017-01-13 09:00:46 +13:00
degasus d4a529614a Jit64: Use PPCSTATE reg if possible. 2017-01-12 20:55:17 +01:00
degasus a8b26937f3 JitCache: Clean up GetBlockFromStartAddress. 2017-01-12 20:24:43 +01:00
degasus 214f37ecef JitCache: Rename variables. 2017-01-12 20:23:14 +01:00
degasus 3ee178abe7 JitCache: Drop unused functions. 2017-01-12 20:23:14 +01:00
degasus 7e850361fb JitCache: Add a helper function to iterate over all blocks. 2017-01-12 20:23:14 +01:00
degasus ca026b58ab JitCache: Use a pointer in links_to. 2017-01-12 20:23:14 +01:00
degasus 928ccbef53 JitCache: Use a pointer in block_map. 2017-01-12 20:23:14 +01:00
degasus 74a27d9742 JitCache: Use a pointer in start_block_map. 2017-01-12 20:23:14 +01:00
degasus 2d5288dc10 JitCache: Return a pointer in AllocateBlock. 2017-01-12 20:23:14 +01:00
degasus f14cebf079 JitCache: Use a pointer in FinalizeBlock. 2017-01-12 20:23:14 +01:00
degasus d3aa8c8080 JitCache: Return a pointer in GetBlockFromStartAddress. 2017-01-12 20:23:14 +01:00
degasus f6ec96efbd JitCache: Use a pointer in DestroyBlock. 2017-01-12 20:23:14 +01:00
degasus 68c85d32f7 JitCache: Use a pointer in UnlinkBlock. 2017-01-12 20:23:14 +01:00
degasus eb390f3020 JitCache: Use a pointer in LinkBlock. 2017-01-12 20:23:14 +01:00
degasus ccb8c44a5a JitCache: Use a pointer in LinkBlockExits. 2017-01-12 20:23:14 +01:00
Matthew Parlane 119dfbb436 Merge pull request #4648 from lioncash/iofile
IOFile: Get rid of IOFile's ReleaseHandle function
2017-01-13 08:15:23 +13:00
Lioncash 6f08ef9a25 IOFile: Get rid of IOFile's ReleaseHandle function
Transfer of handles should be done via std::move.
2017-01-12 12:34:06 -05:00
Matthew Parlane 0b6e5765dd Merge pull request #4610 from ligfx/fixgamelist
DolphinWX: Fix position of GameListCtrl tooltips on macOS
2017-01-12 14:18:05 +13:00
Michael Maltese fdcf5aeb75 DolphinWX: Fix position of GameListCtrl tooltips on macOS 2017-01-11 16:59:15 -08:00
Matthew Parlane 04a86e1cee Merge pull request #4646 from leoetlino/minor-simplifications
IOS HLE: Minor simplifications
2017-01-12 12:32:05 +13:00
Matthew Parlane ed6e346664 Merge pull request #4617 from lioncash/hotkey
HotkeyInputConfigDialog: Move UI creation into named functions
2017-01-12 11:02:10 +13:00
Matthew Parlane c765087548 Merge pull request #4645 from lioncash/breakpoints
BreakPoints: Minor changes
2017-01-12 11:01:11 +13:00
Lioncash b760479f77 BreakPoints: Use std::any_of where applicable 2017-01-11 16:37:31 -05:00
Léo Lam 13c374b118 IOS HLE: Replace some loops with range-based loops 2017-01-11 21:20:15 +01:00
Léo Lam 36c4dda4ed IOS HLE: Simplify Reset() and SetDefaultContentFile()
Reset():
We only need to close IOS devices which were opened, and we can do that
simply by iterating over s_fdmap and closing any opened device.
With this change, s_device_map can be cleared at once.

SetDefaultContentFile():
We can just use s_es_handles which is guaranteed to contain three valid
ES devices. Gets rid of a downcast.
2017-01-11 17:52:28 +01:00
Lioncash e97953130d BreakPoints: Use character literals for finding single characters
The single character find overload is better suited over the one for
finding character sequences.
2017-01-11 10:08:14 -05:00
Lioncash 4e649c60c0 BreakPoints: Make getters const member functions
Just const-correctness stuff. The returned collection can't be modified,
so this makes sense.
2017-01-11 10:08:14 -05:00
Lioncash 0f8bcf412d BreakPoints: Rename variables
Drops Hungarian notation where applicable.Drops Hungarian notation where
applicable.
2017-01-11 10:08:11 -05:00
Lioncash 274ab8a262 BreakPoints: Make the memchecks class member private
There's no need to make this public.
2017-01-11 10:07:34 -05:00
Markus Wick f82d6c6fe1 Merge pull request #4644 from leoetlino/no-return-value
IOS HLE: Make Device::Update() return void
2017-01-11 15:09:41 +01:00
Mat M 55b82e323c Merge pull request #4537 from JosJuice/blob-open-less-files
Open less files when detecting/opening blobs
2017-01-11 08:30:16 -05:00
Léo Lam 15567ef2bf IOS HLE: Remove useless overrides in bt_stub
Since the Open command won't ever return with the stub, there's no way
we will get a Close/IOCtl/IOCtlV for it, so we don't have to
implement it at all.
2017-01-11 14:06:01 +01:00
Léo Lam f66aab6381 IOS HLE: Make Device::Update() return void
The return value is not used at all, so it's useless to keep it.
And the semantics of the return value were not even well defined.
2017-01-11 14:06:01 +01:00
Lioncash 93c5c0213f BreakPoints: Convert typedefs into using aliases 2017-01-11 07:59:43 -05:00
Lioncash 50ee01754e BreakPoints: Add initializers for TBreakPoint and TWatch
Ensures all members are consistently initialized.
2017-01-11 07:55:43 -05:00
Lioncash 588374349f BreakPoints: In-class initialize TMemCheck members
Same thing, less code.
2017-01-11 07:53:49 -05:00
JosJuice b1873264d7 WbfsBlob: Don't wrap file_entry in std::unique_ptr
There doesn't seem to be any reason for doing it.
2017-01-11 13:39:46 +01:00
JosJuice 0363be4320 WbfsBlob: Remove m_total_files
std::vector already keeps track of this for us.
2017-01-11 13:39:38 +01:00
JosJuice 5c02795af0 WbfsBlob: Only open each file once
The first file used to be opened once by
CreateBlobReader and once inside WbfsFileReader.
2017-01-11 13:33:27 +01:00
JosJuice 8d54bbc528 Don't create new IOFiles when creating a blob
...except for WBFS, which is special because
it has the ability to open multiple files.
2017-01-11 13:23:23 +01:00
JosJuice d1ea00ed88 Only open file once when detecting blob type 2017-01-11 13:23:19 +01:00
Markus Wick d9a37d38b4 Merge pull request #4571 from degasus/DSPHLE
Attempt re-adding the missing AXWii DSP_SYNC
2017-01-10 22:23:35 +01:00
Jack Andersen 3869eec53a DSP: Clean up GBA crypto HLE implementation 2017-01-10 10:34:34 -10:00
Markus Wick 52ec186f0a Merge pull request #4642 from stenzek/split-x64-texture-decoders
TextureDecoder: Seperate each format into its own function
2017-01-10 12:06:47 +01:00
Stenzek 2f223e24dc TextureDecoder: Seperate each format into its own function 2017-01-10 20:41:00 +10:00
Lioncash ea8fc594a5 Common: Move BreakPoints into Core
BreakPoints utilizes the jit global variable, so this was making Core and
Common cyclical dependencies on one another.
2017-01-10 05:24:44 -05:00
Matthew Parlane ab2542ea41 Merge pull request #4630 from PEmu1/refresh-game-list
Change "Refresh List" to "Refresh Game List" in Menu
2017-01-10 14:06:23 +13:00
Markus Wick 440a2f832c Merge pull request #4637 from lioncash/jitcache
JitCache: Get rid of reliance on the JIT global variable
2017-01-10 00:07:17 +01:00
Léo Lam a68aea1ace IOS HLE: Replace is_hardware with a proper device type
is_hardware is an obscure name (what does hardware mean?) and it forces
us to assume that anything that !is_hardware is a FileIO device. This
assumption prevents properly restoring OH0 child devices (which will be
implemented in the USB PR), so this commit replaces the is_hardware
bool with a device type.
2017-01-09 12:27:45 +01:00
Lioncash 37d10064b8 JitCache: Get rid of reliance on the JIT global variable 2017-01-09 04:43:06 -05:00
Lioncash f75aab1a85 CachedInterpreter: Separate the block cache from CachedInterpreter
An interpreter is not a block cache. It may utilize a block cache, it may
contain a block cache but it *is not* A block cache.
2017-01-09 04:43:05 -05:00
Lioncash eddccb3891 CachedInterpreter: Move to its own directory 2017-01-09 04:43:05 -05:00
Lioncash 2b8ede8dc6 JitCache: Move implementation details into the cpp file 2017-01-09 04:43:04 -05:00
Lioncash cf18aeb1eb JitCache: Move private class details below public details
Also organizes cpp file organization to match the function layout.
2017-01-09 04:42:59 -05:00
Lioncash 1dab2c8816 IOFile: Correct explicit operator bool semantics
The operator void* variant was m_good ? m_file : nullptr;
so this was leaving out the file handle check.
2017-01-08 22:52:44 -05:00
Matthew Parlane 0869c63048 Merge pull request #4634 from leoetlino/probably-pointless-ios-fixes
IOS HLE: Minor changes to match IOS behaviour
2017-01-09 13:49:32 +13:00
Lioncash 00baf193ac CodeBlock: Const correctness for IsInSpace 2017-01-08 18:40:09 -05:00
Léo Lam c761ac4f08 IOS HLE: Set return value to EINVAL for unknown commands
This matches IOS behaviour and allows getting rid of command handlers
which merely set the return value to EINVAL.
2017-01-08 21:18:08 +01:00
Léo Lam 45b59f01b8 IOS HLE: Allow up to 3 ES handles
Confirmed by a hardware test and a quick diassembly of /dev/es.

I'm not aware of anything that opens several ES handles, but
technically, this fixes a small inaccuracy in IOS HLE.
2017-01-08 21:16:10 +01:00
Léo Lam 23162ac722 IOS HLE: STM: Check if there is already an event hook
For IOCTL_STM_EVENTHOOK, IOS checks if there is already an event hook
to prevent overriding an existing event hook message with a new one,
without first releasing it.
2017-01-08 21:16:10 +01:00
Matthew Parlane 5135445298 Merge pull request #4627 from leoetlino/naming-cleanup
IOS HLE: Naming cleanup
2017-01-09 09:08:50 +13:00
Chris Burgener 47b3a9c68e Add Silent Audio Dumping INI Option 2017-01-08 13:53:44 -05:00
PEmu1 b25ed121d1 Change "Refresh List" to "Refresh Game List" in Menu
Make refresh list option more clear as to what it does and more consistent with other usage in the UI.
2017-01-08 09:24:17 -08:00
flacs c30216003e Merge pull request #4622 from degasus/videosw
VideoSW: Fix GL ES shader.
2017-01-08 17:03:57 +00:00
Lioncash 27350dbf1c Jit64Base: Use size_t to represent size in LogGeneratedX86 2017-01-07 21:57:19 -05:00
Lioncash 77756b44d5 Jit64Base: Const correctness for LogGeneratedX86 2017-01-07 21:53:06 -05:00
Matthew Parlane 7a4464c3e0 Merge pull request #4599 from stenzek/point-uvs
GeometryShaderGen: Use lower-left origin for point texture coordinates
2017-01-08 13:40:55 +13:00
Léo Lam 1f9269d0ea ConfigManager: Don't overwrite the SYSCONF country
Currently, the country is always overridden depending on the Wii
language setting. This makes it impossible to change the country
independently from the language, unlike on a Wii, since a language
will always be associated to an unique country (which is hardcoded
in Dolphin's codebase).

This behaviour was added in c881262 and changed in PR 4319 to happen
every time emulation is started. It doesn't seem to be needed anymore,
as a quick testing shows that a Japanese system menu is able to load
in Japanese even with the region set to France, or anything other than
Japan in fact. So what this commit changes is drop this code.

Fixes issue 9884.
2017-01-08 01:28:43 +01:00
Léo Lam c28b148783 IOS HLE: Clean up naming and remove unused defines
Removes #defines which have been unused for years and cleans up
naming.

This also changes IPC_REP_ASYNC to simply IPC_REPLY because it turns
out it's actually not specific to async replies, but used for all
command replies.
2017-01-08 01:20:40 +01:00
Léo Lam 7dcb3c5d55 IOS HLE: Clean up return codes
- Use an enum instead of defines.

- Only use the FS_ prefix for return codes which are actually related
  to FS stuff, not for everything.

- Remove duplicated error codes and clean up the names.
2017-01-08 01:20:35 +01:00
Matthew Parlane 7a5fe4b7ed Merge pull request #4624 from leoetlino/jit-warning-fixes
Add the g_ prefix to the jit global
2017-01-08 13:19:16 +13:00
Matthew Parlane c89aa79380 Merge pull request #4626 from lioncash/size
CodeBlock: Get rid of implicit sign-conversion in AllocCodeSpace
2017-01-08 13:14:02 +13:00
Lioncash 9d8e8652fb CodeBlock: Get rid of implicit sign-conversion in AllocCodeSpace
Size is internally stored as a size_t, so having an int parameter
would cause implicit sign-conversion from a signed value to an
unsigned value to occur.
2017-01-07 19:05:06 -05:00
Léo Lam 22fcb735ed IOS HLE: HID: Remove left-over align function
Also remove unneeded AlignUp usages.
2017-01-08 00:36:04 +01:00
Léo Lam 3c50c61606 IOS HLE: Remove copy and pasted Open()/Close()
This removes Open() and Close() functions from devices whenever they
did nothing more than the base class (setting m_Active, returning a
default reply).

Also, since IOS close commands practically always return FS_SUCCESS,
writing the return code is moved to HandleCommand() in WII_IPC_HLE,
which has two benefits: it's not duplicated all over the place
(so people will not forget it) and it gets rid of having to check
the force parameter, since HandleCommand() is always called for
real IOS commands, so command_address is guaranteed to be valid.
2017-01-07 23:31:04 +01:00
Léo Lam 27e6363214 IOS HLE: Remove unneeded GetDeviceID() writes
It looks like at some point Dolphin device IDs coincided with IOS file
descriptors, but this is not the case anymore, so keeping those
WriteReturnCode(GetDeviceID()) in every single IOS HLE device,
as if the device ID was used as IOS fd, is both unnecessary
and confusing.
2017-01-07 23:30:59 +01:00
Matthew Parlane 7847ca41e2 Merge pull request #4607 from leoetlino/execute
IOS HLE: Refactor ExecuteCommand
2017-01-08 11:20:49 +13:00
Léo Lam 8bef7259e3 Add the g_ prefix to the jit global
Jan 04 22:55:01 <leoetlino>   fwiw, it looks like there are new warnings in the RegCache code
Jan 04 22:55:04 <leoetlino>   Source/Core/Core/PowerPC/Jit64/FPURegCache.cpp:13:33: warning: declaration shadows a variable in the global namespace [-Wshadow]
Jan 04 22:56:19 <@Lioncash>   yeah, the jit global should have a g_ prefix.

This fixes shadowing warnings and adds the g_ prefix to a global.
2017-01-07 23:19:49 +01:00
degasus f12460d1f4 VideoSW: Fix GL ES shader. 2017-01-07 12:32:15 +01:00
Matthew Parlane 82e003ebb6 Merge pull request #4620 from JosJuice/android-byteswap
Don't use generic byteswapping on Android
2017-01-07 14:01:33 +13:00
degasus f6c7a258ed BlendState: Use masking as a fastpath for the logic op NO_OP. 2017-01-06 14:01:39 +01:00
degasus 23b0faeba5 OGL: Use VideoCommon blend state for framebuffer configuration. 2017-01-06 14:01:39 +01:00
degasus 3df828463d VideoCommon: Assembly blending state in a shared state object. 2017-01-06 14:01:36 +01:00
JosJuice 5e2b2f059f Don't use generic byteswapping on Android
This seems to work fine nowadays.
2017-01-06 13:56:53 +01:00
Markus Wick c33c9532a7 Merge pull request #4594 from lioncash/regcache
DSPJitRegCache: Make single argument constructor explicit
2017-01-06 13:01:40 +01:00
Markus Wick 878058ce68 Merge pull request #4613 from lioncash/scrubber
DiscScrubber: Minor changes
2017-01-06 13:00:51 +01:00
Markus Wick 82d45435fd Merge pull request #4616 from lioncash/hle
HLE: Align table formatting
2017-01-06 12:57:16 +01:00
Markus Wick c633eeb383 Merge pull request #4619 from PEmu1/configuration
Change "Configure" to "Configuration" in Menu
2017-01-06 12:54:17 +01:00
PEmu1 398d544ebf Change "Configure" to "Configuration" in Menu
Other settings options are nouns rather than verbs so this change makes the configuration option consistent with others. Also makes the menu option label the same as the windows title.
2017-01-05 14:33:24 -08:00
Lioncash 89da37b1c6 HotkeyInputConfigDialog: Move UI creation into named functions
The constructor shouldn't be used as a dumping ground for all UI-related
initialization. Doing so makes it somewhat more difficult to reason about
how certain UI elements get created. It also puts unrelated identifiers in
the same scope.

This separates the UI creation out so code relevant to each component
is self-contained.
2017-01-05 16:26:42 -05:00
Mat M e7359f247b Merge pull request #4595 from aldelaro5/add-debugger-hotkeys
Add debugger hotkeys
2017-01-05 14:33:10 -05:00
Mat M 6fe621f203 Merge pull request #4589 from ligfx/cleaninputconfigdiag
InputConfigDiag: move function bodies out of header
2017-01-05 14:29:35 -05:00
Mat M 0de4ad334f Merge pull request #4605 from PEmu1/tas-gamecube-contro
Clarify GameCube Controller in TAS Input
2017-01-05 14:28:54 -05:00
Mat M 495580637f Merge pull request #4606 from BhaaLseN/clang-format-union
specify custom brace style to fix unions
2017-01-05 14:27:27 -05:00
Mat M 9da6982ac3 Merge pull request #4608 from RisingFog/input_display_newlines
Add missing new lines for OSD
2017-01-05 14:25:24 -05:00
Mat M 189e5f87fb Merge pull request #4612 from PEmu1/memcard-menu
Don't Use Abbreviation for "Memory Card"
2017-01-05 14:22:54 -05:00
Lioncash a10bb15f17 HLE: Add explicit initializers for OSBreakPoints' stub entry
No behavior change, this just makes implicit values explicit.
2017-01-05 14:15:45 -05:00
Lioncash 2941468857 HLE: Align table formatting 2017-01-05 14:13:30 -05:00
PEmu1 6d195f3d65 Don't Use Abbreviation for "Memory Card" 2017-01-05 10:06:46 -08:00
BhaaL 23d99f2f2c specify custom brace style to fix unions
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
JosJuice 41101be545 Merge pull request #4611 from lioncash/fileutil
IOFile: Minor changes
2017-01-05 09:17:03 +01:00
Lioncash a93861ab49 DiscScrubber: Don't take SFileInfo instances by value
Avoids unnecessary copies.
2017-01-04 20:12:49 -05:00
Lioncash c52d1e735a DiscScrubber: Use an unsigned loop index in ParseDisc
Prevents an implicit signed to unsigned conversion when assigning a
partition's group number.
2017-01-04 20:03:12 -05:00
Lioncash 6ff21c48cb DiscScrubber: Correct printf specifiers 2017-01-04 19:56:39 -05:00
Lioncash b1a2dec78a DiscScrubber: Convert a #define into a typed constant 2017-01-04 19:53:31 -05:00
Léo Lam a15be890e1 WII_IPC_HLE: Update the "IOS basics" comment
The codebase has changed since it was written, so it needed
a small update.
2017-01-05 01:11:52 +01:00
Léo Lam 00268443ca WII_IPC_HLE: Replace #defines with constexpr 2017-01-05 01:04:20 +01:00
Léo Lam 9abfa54c9d IOS HLE: Remove s_es_inuse
We don't really have to keep track of device opens/closes manually,
since we can already check that by calling IsOpened() on the device.

This also replaces some loops with for range loops.
2017-01-05 01:04:19 +01:00
Lioncash 045a8400e6 IOFile: Make the move constructor and move assignment operator noexcept
Certain parts of the standard library try to determine whether or not a
transfer operation should either be a copy or a move. The prevalent notion
of move constructors/assignment operators is that they should not throw,
they simply move an already existing resource somewhere else.

This is typically done with 'std::move_if_noexcept'. Like the name says,
if a type's move constructor is noexcept, then the functions retrieves an
r-value reference (for move semantics), or an l-value (for copy semantics)
if it is not noexcept.

As IOFile deletes the copy constructor and copy assignment operators,
using IOFile with certain parts of the standard library can fail in
unexcepted ways (especially when used with various container
implementations). This prevents that.
2017-01-04 18:37:48 -05:00
Lioncash 9b8f5bce22 IOFile: Change 'operator void*' into 'explicit operator bool'
'operator void*' is basically a pre-C++11-ism that was used, as C++03
only had the notion of implicit type-conversion operators, but not explicit type
conversion operators (allowing implicit conversion of a file handle to
bool can go downhill pretty quickly).
2017-01-04 18:10:21 -05:00
Lioncash c541e1099e IOFile: Make class variables private
Internals shouldn't be directly exposed.
2017-01-04 17:48:46 -05:00
Lioncash c21dad9e83 IOFile: Get rid of unnecessary unimplemented copy constructor/assignment operator.
IOFile already inherits NonCopyable.
2017-01-04 17:47:40 -05:00
Michael Maltese 443815df16 DolphinWX: pass wxMsgAlert to main thread on non-GTK too
Fixes an issue on macOS where wxMessageBox always returns wxCANCEL when
not called from main thread.
2017-01-04 14:06:31 -08:00
Lioncash 5b1aae0cbf DiscScrubber: Make struct and variable names conformant to the coding style 2017-01-04 17:04:41 -05:00
Lioncash 4a9bc2340b DiscScrubber: Convert into a class
Allows potential multiple scrubbers to run at once. Also gets rid of the
need to explicitly clean up resources.
2017-01-04 16:06:21 -05:00
degasus 41b0c74e30 VideoCommon: Make dst_alpha state implicit. 2017-01-04 20:02:31 +01:00
degasus b7d8bd13a6 OGL/Vulkan: Drop dual pass alpha. 2017-01-04 19:59:41 +01:00
Léo Lam b65ad538ba IOS HLE: Refactor ExecuteCommand
ExecuteCommand was becoming pretty confusing with unused variables
for some commands, confusing names (device ID != IOS file descriptor),
duplicated checks, not keeping the indentation level low, and having
tons of things into a single function.

This commit gives more correct names to variables, deduplicates the
device checking code, and splits ExecuteCommand so that it's
easier to read.

It's worth noting that some device checks have been forgotten in the
past, which has caused a bug (which was recently fixed in 288e75f6).
2017-01-04 19:33:50 +01:00
JosJuice c5e731644c Don't use GetEmulatedTime in GCMemcard
GCMemcard is only used outside of the core and has
no real reason to use the core's RTC. GetEmulatedTime
isn't designed to be called when the core isn't running.
Should fix https://bugs.dolphin-emu.org/issues/9871
2017-01-04 19:17:51 +01:00
Lioncash 2cfc0dc8b6 DSPDisassembler: directly initialize AssemblerSettings struct members
Same thing, less code.
2017-01-04 12:53:22 -05:00
Chris Burgener afdcddc0c5 Add missing new lines for OSD 2017-01-04 10:49:52 -05:00
Markus Wick 9f164d7c33 Merge pull request #4593 from lioncash/enum
JitRegCache: Move FlushMode enum into RegCache
2017-01-04 16:21:21 +01:00
Stenzek 176177af49 GeometryShaderGen: Use lower-left origin for point texture coordinates
From what I can tell, the emulated GPU places (0,0) at the lower left of
the image, and we were generating texture coordinates so that (0,0) was
at the upper-left in the expansion geometry shader, causing textures
used by point sprites to be flipped vertically.

Fixes the upside-down A button in Mario Golf.
2017-01-04 20:23:07 +10:00
PEmu1 2dae72f817 Clarify GameCube Controller in TAS Input 2017-01-03 18:03:17 -08:00
Lioncash 5518c6625b PatchEngine: Get rid of a global variable 2017-01-03 18:59:33 -05:00
Stenzek 18792b2328 FifoPlayer: Don't set BPMEM_PRELOAD_MODE on load
Since in this case we're setting it based on the state at record start
time, not when a register is loaded, UseMemory would not be called, so
this could potentially wipe out texture memory that was valid.
2017-01-03 21:16:05 +10:00
Stenzek 5f3c878ba2 FifoPlayer: Save/restore texture memory state for fifo logs 2017-01-03 21:16:05 +10:00
Stenzek 438989668e FifoDataFile: Add support for storing texture memory state
This bumps the file version to 4.
2017-01-03 21:16:04 +10:00
Stenzek 5b315b7bb4 FifoPlayer: Reload initial state when looping back to first frame
This should ensure that when playing with loop enabled, the first frame is
in the same state each time. There is potentially still issues when the
start frame is set to something other than zero, but I'm not sure how we
could work around this without capturing the entire state on each frame.
2017-01-03 17:32:45 +10:00
aldelaro5 cc7c410cf1 Add debugging hotkeys
They are separated into 3 groups and will only be shown in the input config dialog if the emulator was in debug mode.
2017-01-02 18:16:52 -05:00
aldelaro5 00e03f1436 Update the breakpoint list after an add from the parent
Doing it from the add dialogs instead would prevent the call to these dialogs outside of a breakpointWindow which would be necessary for hotkeys binding.
2017-01-02 15:39:21 -05:00
JosJuice ec969da6bd EXI_DeviceIPL: Remove m_bNTSC
It's only used in the constructor.
2017-01-02 21:08:24 +01:00
Lioncash 342b76a594 DSPJitRegCache: Make single argument constructor explicit
Prevents implicit conversions.
2017-01-02 15:03:31 -05:00
JosJuice f85266df20 SConfig: Replace bNTSC with m_region
This lets us get rid of VideoInterface::SetRegionReg,
a huge hack in CEXIMemoryCard, and some minor things.
2017-01-02 20:57:48 +01:00
JosJuice 66ea9f5cc1 DiscIO: Add GetRegion function and Region enum
Instead of needing different switch cases for
converting countries to regions in multiple places,
we now only need a single country-to-region switch case
(in DiscIO/Enums.cpp), and we get a nice Region type.
2017-01-02 20:57:11 +01:00
Lioncash f8c6b3b5f1 JitRegCache: Move FlushMode enum into RegCache
This also makes it a strongly-typed enum.

Considering that the flushing mode is a trait/behavior for the register
cache, it doesn't really make sense to have the enum separate from it.

This also has the benefit of removing constants from global scope.
2017-01-02 13:43:37 -05:00
Lioncash 3b4290b5b7 DSPJitRegCache: Make class variables conform to the coding style 2017-01-02 12:16:29 -05:00
Markus Wick 6aef0630f7 Merge pull request #4588 from JosJuice/isoproperties-title-encoding
ISOProperties: Fix encoding errors in window title
2017-01-02 12:33:58 +01:00
Markus Wick 96314a0ec1 Merge pull request #4574 from stenzek/vulkan-alpha-clear
Vulkan: Clear alpha channel to 0 when pixel format has no alpha channel
2017-01-02 12:29:36 +01:00
Anthony b46dcc7768 Merge pull request #4495 from slashiee/dump-textures-hotkey
Add a hotkey for toggling texture dumps
2017-01-01 17:28:56 -08:00
Mat M 3f5f7fc564 Merge pull request #4590 from hthh/macos-no-pch-fix
macOS: Add missing includes to fix no-PCH build
2017-01-01 20:27:30 -05:00
Anthony a7f7ccc9d2 Merge pull request #4523 from RisingFog/overwrite_audio_warning
Display warning when dumping audio if file exists
2017-01-01 17:20:39 -08:00
hthh 387164a999 macOS: Add missing includes to fix no-PCH build 2017-01-02 11:45:24 +11:00
Mat M b10a0de769 Merge pull request #4535 from lioncash/regcache
Jit64: Make register caches not rely on the global jit variable
2017-01-01 18:01:29 -05:00
Mat M 6c5063c76b Merge pull request #4585 from lioncash/dspnamespace
DSP: Namespace remaining un-namespaced DSP code
2017-01-01 17:54:39 -05:00
Anthony 4c90ad7514 Merge pull request #4490 from leoetlino/wii-dsy
Add common Wii SDK function signatures to the signature DB
2016-12-31 16:31:50 -08:00
Anthony e8052fbf78 Merge pull request #4587 from aldelaro5/fix-hidpi-mic
Add an empty spacer in the Mic Input config dialog
2016-12-31 16:24:46 -08:00
Michael Maltese 35fe8f762a InputConfigDiag: move function bodies out of header 2016-12-31 15:47:56 -08:00
JosJuice 65d88776db ISOProperties: Fix encoding errors in window title
It seems to be a regression, but I haven't bisected it.
2017-01-01 00:34:29 +01:00
aldelaro5 d6674223db Fix some margin discrepancies 2016-12-31 17:58:39 -05:00
Lioncash 3eb25cea6f DSP: Namespace remaining un-namespaced DSP code 2016-12-31 17:20:14 -05:00
aldelaro5 42e4dde960 Add an empty spacer in the Mic Input config dialog
This is done to not have the device combo box be too small in width when making the main sizer fit into the window.  Not fitting the sizer would alternatively break Hidpi so it was best to just add an empty sizer to workaround this problem.
2016-12-31 16:17:47 -05:00
JosJuice 15de7d507f Merge pull request #4519 from sepalani/fix_import_save
Fixes WiiSave import
2016-12-31 12:33:45 +01:00
aldelaro5 a447213420 Remove the menu hotkeys of the debug menu bar
I think it's best to remove these if we are going to be adding new hotkeys since these would work no matter what so I can simply make these the default one instead.
2016-12-30 14:18:10 -05:00
Jules Blok a2e191649d Merge pull request #4471 from Armada651/hybrid-depth
VideoCommon: Don't process the depth range in the vertex shader if it's not oversized.
2016-12-29 18:49:27 +01:00
Lioncash efbf261e97 DSPAnalyzer: Fix two clang warnings about sign mismatched types 2016-12-29 10:10:38 -05:00
Lioncash 2aefa29941 DSP: Add the interpreter to the DSP namespace 2016-12-29 07:05:17 -05:00
Lioncash c79cc3f470 DSP: Namespace the JIT 2016-12-28 20:38:41 -05:00
Lioncash 407f3af8c3 JitRegCache: Get rid of reliance on the jit global variable 2016-12-28 17:52:58 -05:00
Lioncash 8ece485a2f JitRegCache: Make member variables conform to our coding style 2016-12-28 17:47:26 -05:00
Lioncash e291e8f1a7 JitRegCache: Convert #define macro into a typed constant 2016-12-28 17:47:26 -05:00
Lioncash 4ae23fc45c JitRegCache: Remove unused typedefs 2016-12-28 17:47:26 -05:00
Lioncash b629eb300a JitRegCache: Remove unused Flush function
This was kind of a pointless function, considering the parameter wasn't
used at all, so the other Flush() function could have been just directly
used instead.
2016-12-28 17:47:26 -05:00
Lioncash 41d47dda93 JitRegCache: Move implementation details into the cpp file where applicable
Any future changes to these register cache functions won't require everything that includes the register cache header to also be recompiled.
2016-12-28 17:47:26 -05:00
Lioncash d1fc694c02 JitRegCache: Move protected interface below public interface 2016-12-28 17:47:26 -05:00
Lioncash 1a34376f3a JitRegCache: Separate FPURegCache and GPRRegCache into their own files
Keeps them separated from one another and makes it less annoying to find
member functions (which were previously spread out all over the place).
2016-12-28 17:47:25 -05:00
Markus Wick 10b4f6a250 Merge pull request #4568 from degasus/texcache
TextureCache: Add a dirty bit for partial updates on overlapping EFB copies.
2016-12-28 16:38:16 +01:00
Michael Maltese 905750553f ControllerEmu: Fix LoadDefaults to use ciface argument 2016-12-27 17:46:40 -08:00
Lioncash 5c938ed41f DSPTables: Move function type aliases into DSPOPCTemplate
Gets two typedefs out of global scope
2016-12-27 18:31:42 -05:00
Jules Blok ee7a2edf35 Update comments 2016-12-27 21:32:52 +01:00
Jules Blok 65b5765858 VideoBackends: Clamp the range to the maximum depth value supported in the z buffer. 2016-12-27 20:25:40 +01:00
degasus d0a73c1d90 TextureCache: Add a dirty bit for partial updates on overlapping EFB copies. 2016-12-27 17:26:04 +01:00
Jules Blok 2ab6711f43 VideoBackends: Use the full depth range when inverted depth range is unsupported. 2016-12-27 14:31:17 +01:00
Jules Blok ef82aebb97 VideoCommon: Don't process the depth range in the vertex shader if it's not oversized. 2016-12-27 14:31:17 +01:00
Markus Wick 8e506cb974 Merge pull request #4572 from lioncash/flags
DSPAnalyzer: Hide implementation details
2016-12-27 10:36:12 +01:00
Stenzek e6249619a0 Vulkan/GL: Set the alpha channel to 0 when creating the EFB framebuffer 2016-12-27 13:06:08 +10:00
Techjar dd00f9ea34 Should fix being unable to change memory card slot A 2016-12-26 22:03:14 -05:00
Stenzek d1dd910f17 Vulkan: Clear alpha channel to 0 when pixel format has no alpha channel 2016-12-27 12:59:52 +10:00
Lioncash 12e335025d DSPEmitter: Make FlagsNeeded() a const member function
This doesn't modify any class data.
2016-12-26 21:18:24 -05:00
Lioncash a8459fc189 DSPAnalyzer: Hide implementation details
Makes accessing flags a part of the function interface instead of exposing
an internal variable.
2016-12-26 21:18:18 -05:00
Markus Wick cd29d565c4 Merge pull request #4570 from lioncash/dspemit
DSPEmitter: Minor cleanup
2016-12-27 02:05:10 +01:00
Pierre Bourdon 6b65344ccf axwii: re-add the missing sync -- might work better with the new MailHandler implementation 2016-12-27 02:03:58 +01:00
Pierre Bourdon 7c4bbcf22f ax: switch to new style interrupt triggering 2016-12-27 02:03:55 +01:00
Markus Wick fd54d4f767 Merge pull request #4569 from degasus/texcache2
TextureCache: Extract BP enum check to VideoCommon.
2016-12-27 01:43:57 +01:00
Lioncash 50b1fcb1ed DSPEmitter: Initialize compileSR in the initializer list 2016-12-26 19:42:09 -05:00
Lioncash f3d353a85d DSPEmitter: Move typedefs into DSPEmitter
Keeps them associated with the emitter itself, rather than just letting
them sit in global scope.
2016-12-26 19:19:39 -05:00
Lioncash 646d96a216 DSPEmitter: Convert defines into typed constants
Also moves them into more qualified scopes where possible.
2016-12-26 19:16:01 -05:00
Lioncash c37889efcb DSPEmitter: Use std::vector instead of raw allocation 2016-12-26 19:03:35 -05:00
Lioncash 400d5f6940 DSPEmitter: In-class initialize variables 2016-12-26 18:07:15 -05:00
degasus abf9bb170b TextureCache: Drop unused parameter in backend API. 2016-12-26 22:10:32 +01:00
degasus 04f319066d TextureCache: Extract BP enum check to VideoCommon.
We have TOO many video backends.
2016-12-26 22:10:21 +01:00
Mat M 1af9f68240 Merge pull request #4566 from JosJuice/charset-terminology
Remove incorrect usage of "ASCII" and "ANSI"
2016-12-26 15:40:45 -05:00
JosJuice 0f1ce0e1f4 Remove incorrect usage of "ASCII" and "ANSI"
Windows-1252 was sometimes being referred to as ASCII or ANSI
in Dolphin, which is incorrect. ASCII is only a subset of
Windows-1252, and ANSI is (rather improperly) used in Windows
to refer to the current code page (which often is 1252 on
Western systems, but can also be something entirely different).

The commit also replaces "SJIS" with "Shift JIS". "SJIS"
isn't misleading, but "Shift JIS" is more commonly used.
2016-12-26 15:49:39 +01:00
degasus 8f9f2b1f76 DSPHLE: Seperate HLE construction and initialization.
We must be able to construct the HLE without emulating the initialization
on loading a savestate.
2016-12-26 12:25:57 +01:00
Markus Wick 4ebd369218 Merge pull request #4564 from JosJuice/volumedirectory-references
VolumeDirectory: Don't use references inappropriately
2016-12-26 11:48:38 +01:00
JosJuice 8e4a781974 VolumeDirectory: Modernize variable names 2016-12-26 11:45:22 +01:00
JosJuice 00aa2d37e9 VolumeDirectory: Don't use references inappropriately
Integers should be passed as pointers when a function
modifies them (to make it clear that they get modified).
2016-12-26 09:52:18 +01:00
flacs 2d1bdae1f0 Merge pull request #4563 from lioncash/dspemit
DSPEmitter: Get rid of an unused member variable
2016-12-26 04:07:07 +01:00
Lioncash 042045012b DSPEmitter: Get rid of an unused member variable 2016-12-25 21:31:17 -05:00
Tillmann Karras 57a005ff3e evdev: reduce startup time
GetName() creates a new evdev device which calls tons of ioctls. But the
main culprit is close() which for input devices appears to be a slow
path in the kernel.

This commit reduces PopulateDevices() by 50% on my laptop, but ~730 ms
is still ridiculously slow for something that isn't needed right away.
2016-12-26 01:24:35 +01:00
Mat M 9c8e27e3bb Merge pull request #4558 from JosJuice/volumedirectory-fst-sort
VolumeDirectory: Sort the FST
2016-12-25 17:38:58 -05:00
Mat M 81d452ecda Merge pull request #4551 from JosJuice/movie-controller-comment
Movie: Replace incorrect name and comment for numControllers
2016-12-25 17:36:27 -05:00
Mat M 40e36ebd1e Merge pull request #4550 from linkmauve/no-readdir_r
Common: Replace deprecated readdir_r with readdir
2016-12-25 17:34:50 -05:00
Mat M 8ad6c3e911 Merge pull request #4555 from JosJuice/right-click-host-name
Fix player name not being loaded when using "Host with Netplay..."
2016-12-25 17:32:26 -05:00
Mat M 8da0396fc4 Merge pull request #4559 from JosJuice/volumedirectory-totalnamesize-local
VolumeDirectory: Make m_totalNameSize a local variable
2016-12-25 17:30:21 -05:00
Mat M 29ec069ac6 Merge pull request #4552 from JosJuice/pr-4461-translations
Mark strings added by PR #4461 for translation
2016-12-25 17:06:32 -05:00
JosJuice 3196f697bb VolumeDirectory: Use a range-based for loop in ComputeNameSize 2016-12-25 23:01:42 +01:00
JosJuice f3987d13ea VolumeDirectory: Make m_totalNameSize a local variable
After BuildFST finishes executing, it's never needed again.
2016-12-25 22:57:14 +01:00
Mat M d1defd71df Merge pull request #4557 from JosJuice/scandirectorytree-comments
Fix outdated comments in ScanDirectoryTree
2016-12-25 16:48:17 -05:00
JosJuice a502f069e8 VolumeDirectory: Sort the FST
We can't rely on the OS returning files and directories
in a deterministic order, so we should sort them on our own
if we want VolumeDirectory to work for movies and netplay.
2016-12-25 22:35:38 +01:00
JosJuice e56bec9c87 Fix outdated comments in ScanDirectoryTree 2016-12-25 21:57:33 +01:00
Markus Wick 190c6218ab Merge pull request #4493 from Tilka/evdev
Fix evdev threading
2016-12-25 20:55:50 +01:00
Tillmann Karras 44acd9fdb9 VideoCommon: use u32 for texture addresses 2016-12-25 18:48:19 +01:00
JosJuice 70d9440d10 Fix player name not being loaded when using "Host with Netplay..." 2016-12-25 16:36:19 +01:00
JosJuice c0710d3593 Mark strings added by PR #4461 for translation
Also fix the HKGP_FRANE_ADVANCE typo.
2016-12-24 19:26:21 +01:00
JosJuice 55fe77e986 Movie: Replace incorrect name and comment for numControllers
Also add similar comments to the variables memcards and bongos.
2016-12-24 18:27:56 +01:00
Mystro256 1963996dd0 Change RasterFont static const names
Fixes build issue with GCC/CPP 6.2.1 build issues on Fedora 26
2016-12-24 11:58:07 -05:00
Emmanuel Gil Peyrot 495dfdb16c Common: Replace deprecated readdir_r with readdir
Fixes a warning under recent glibc.
2016-12-24 16:18:47 +01:00
Mat M abfa297166 Merge pull request #4545 from leoetlino/stop-recording
Stop Movie/Netplay before triggering STM shutdown
2016-12-24 06:14:51 -05:00
Lioncash c5243d6d12 CommandProcessor: Remove unimplemented prototypes 2016-12-24 01:15:50 -05:00
Léo Lam ec729e2ee3 Stop Movie/Netplay before triggering STM shutdown
This fixes a bug which caused Movie (input recording or playback) or
netplay not to be stopped. DolphinWX previously triggered a STM power
event, and then the STM directly stopped the emulation; the code
which stops Movie/Netplay was completely skipped.

This is fixed by moving it /before/ sending the shutdown event.
2016-12-24 00:44:30 +01:00
Markus Wick 01c2c50f6a Merge pull request #4540 from lioncash/dspemit
DSP: Move DSPEmitter into the Jit subdirectory
2016-12-23 12:13:47 +01:00
Mat M 9160be50db Merge pull request #4224 from lioncash/tcache
TextureCacheBase: Eliminate static state
2016-12-23 04:33:42 -05:00
Dan Beste a309449a7f Silences an error during compilation due to an unused (but set) variable 2016-12-22 19:44:47 -06:00
Lioncash 5852e3961d DSPMemoryMap: Move function implementations into the cpp file
This allows removing DSPCore and DSPTables includes from the header file.
Doing allows resolving quite a bit of indirect includes that were present
throughout the DSP source files.

Another plus with this is that changes to the DSPEmitter don't require an
almost total rebuild of all DSP source files. The underlying reason for
most of the files being rebuilt it because DSPMemoryMap is used quite
extensively, however its header includes DSPTables.h. DSPTables.h includes
DSPEmitter.h as it uses the DSPEmitter type in a typedef. So any change to
the emitter would propagate through the DSPMemoryMap header. This will no
longer happen.
2016-12-22 20:09:52 -05:00
Lioncash af28ce7ecb DSP: Move DSPEmitter into the Jit directory
This is actually used as the DSP JIT, so this should be with the other JIT
source files.

This commit also makes it so changes to the JIT emitter don't require
recompiling all of the DSP core (i.e. changing the JIT won't require the
interpreter to be rebuilt).
2016-12-22 19:50:03 -05:00
Lioncash a4cd11ec87 DSP: Move interpreter source files to their own directory
Keeps code organized similar to the DSP JIT.
2016-12-22 18:18:48 -05:00
Lioncash 9131b994bb DSPTables: Move interpreter specifics to DSPInterpreter 2016-12-21 15:40:45 -05:00
Lioncash a5e555e609 DSPInterpreter: Alphabetically sort opcode function definitions
Makes browsing slightly nicer.
2016-12-21 14:43:38 -05:00
Lioncash 7ecf3d6955 DSPTables: Amend table formatting
Restores them to what they were before the codebase-wide reformatting and
adds annotations to specifically not format them.
2016-12-21 03:51:53 -05:00
Mat M 8192af9b3d Merge pull request #4533 from lioncash/jits
Jit64/JitIL: Get rid of trivial global jit variable usages
2016-12-20 21:09:50 -05:00
Anthony ca91b6df52 Merge pull request #4521 from JosJuice/tgc
Add TGC disc image compatibility
2016-12-20 17:45:39 -06:00
Lioncash a98fd57da7 JitArm64: Add missing override specifiers 2016-12-20 17:30:13 -05:00
Mat M cd4449f881 Merge pull request #4501 from flibitijibibo/disabletooltips
DolphinWX: Add 'DisableTooltips' config option (R2)
2016-12-20 17:20:24 -05:00
Neui 6da062eb6a UICommon: Use $DOLPHIN_EMU_PATH for the user directory, if set 2016-12-20 21:21:31 +01:00
Lioncash 513ace1c0c JitIL: Get rid of trivial global jit variable usages 2016-12-20 12:56:06 -05:00
Lioncash 66034de20b Jit64: Get rid of trivial global jit variable usages
Jit64 inherits from Jitx86Base which inherits from JitBase. JitBase
contains jo and js, which are instances of the JitOptions and JitState
structs. Because of the inheritance, there's no actual need to access the
jit global in order to get to these instances. They're already accessible
via the class hierarchy.
2016-12-20 12:55:58 -05:00
Markus Wick b5fe0b5b83 Merge pull request #4528 from stenzek/vulkan-descriptor-crash
Vulkan: Fix crash where a potentially deleted buffer is referenced
2016-12-20 11:11:54 +01:00
Lioncash 05af5b292f EmuCodeBlock: Amend member variable names to conform to coding style 2016-12-19 17:55:44 -05:00
Lioncash e373a48a51 EmuCodeBlock: Make farcode and nearcode protected
This is the only context they're used in.
2016-12-19 17:36:29 -05:00
Mat M 2c8cc0f648 Merge pull request #4527 from leoetlino/fix-dvd-backup
DolphinWX: Fix booting from DVD
2016-12-19 16:22:29 -05:00
Sepalani 8d812db9ad SymbolDB: Use set to map hash with symbols 2016-12-19 21:03:29 +00:00
Sepalani 7e974f1064 SymbolDB: GetSymbolsFromHash added 2016-12-19 21:03:28 +00:00
Sepalani d778b8a820 SymbolDB: GetSymbolsFromName added 2016-12-19 21:02:23 +00:00
Lioncash 0b12c6986a SignatureDB: Add missing license headers 2016-12-19 15:57:21 -05:00
Mat M 10862cd0e8 Merge pull request #4522 from lioncash/jitutil
Jit64Common: Split Jit64Util contents into separate files
2016-12-19 15:49:49 -05:00
Mat M 4e405010a3 Merge pull request #4497 from sepalani/totaldb.csv
Import/Export signature files as CSV
2016-12-19 15:45:21 -05:00
Mat M b9dc73d9cd Merge pull request #4529 from RisingFog/remove_dead_code
Remove leftover SkipIdle function
2016-12-19 15:32:43 -05:00
Chris Burgener 2e2ba37bc1 Remove leftover SkipIdle function 2016-12-19 15:20:56 -05:00
Stenzek 01047319f8 Merge pull request #4517 from stenzek/mp3-blotches
TextureCache: Use same color coefficients for EFB2Tex as EFB2RAM
2016-12-19 22:11:38 +10:00
Stenzek 9290bf5844 Vulkan: Fix crash where a potentially deleted buffer is referenced
This happened when the geometry shader was disabled, and the uniform
buffer was grown to a larger size. The update would be skipped, leaving
the old buffer to be included in the descriptor set.
2016-12-19 22:00:42 +10:00
Stenzek 344f2e57f6 VideoCommon: Use avg(color1, color2) for color3 in CMPR textures 2016-12-19 20:17:44 +10:00
Léo Lam adcfefecde DolphinWX: Fix booting from DVD
OnBootDrive used the "drives" member std::vector for drive paths, but
since PR #4363, this vector is not populated anymore, so we were
accessing it out of bounds.

Actually, drives was not needed in the first place, since we can
get the wxMenu from the event, and from there, get the label directly.
2016-12-19 10:45:33 +01:00
Markus Wick 989cdc0929 Merge pull request #4505 from hthh/macos-likes-pbos
OpenGL: Always use a PBO in EncodeToRamUsingShader
2016-12-19 09:47:40 +01:00
Sepalani b4bc1c9339 WiiSave: Fixes vector assertions 2016-12-18 19:44:00 +00:00
Sepalani 9774b3f640 WiiSave: Fixes directory issues 2016-12-18 19:43:55 +00:00
JosJuice 9bd514ed1c Add TGC disc image compatibility 2016-12-18 18:57:36 +01:00
Lioncash 94237b694b Jit64Common: Split Jit64Util contents into separate files
Much of Jit64Util consists of essentials, not utilities. Breaking these
out into their own files also prevents unrelated includes from being
present near other classes.

This also makes it easier to find and change certain components of the
x86-64 JIT, should it be necessary.
2016-12-18 02:27:58 -05:00
Chris Burgener debc40e85b Display warning when dumping audio if file exists 2016-12-17 22:45:01 -05:00
Sepalani a6114bad34 Import/Export signature files as CSV 2016-12-18 00:27:10 +00:00
Anthony f431b18675 Merge pull request #4491 from leoetlino/debugger-symbol-filter
DolphinWX: Add ability to filter symbols (by name)
2016-12-17 11:13:28 -06:00
Stenzek accce4294a TextureCache: Use same color coefficients for EFB2Tex as EFB2RAM 2016-12-15 02:20:46 +10:00
Stenzek d6cdf49769 VideoSoftware: Don't drop least significant bit of 5-bit blue channels 2016-12-14 23:56:06 +10:00
Lioncash 8b6f8892d6 TrampolineCache: Make constant constexpr 2016-12-14 04:43:32 -05:00
Lioncash d0c54fe15e Jit64Util: Make constants constexpr 2016-12-14 04:43:31 -05:00
Lioncash 9c1ad3dde6 Jit64Base: Replace #defines with concrete constants 2016-12-14 04:43:31 -05:00
Lioncash d010246af2 Jit64Base: Clean up casting
Mostly intended to clean up HandleFault than anything else.
2016-12-14 04:43:31 -05:00
Lioncash 1aff8c4eb1 BlockCache: Use const_cast 2016-12-14 04:43:30 -05:00
Lioncash 36c99df9f5 Jit: Move most x86-64-specific code out of JitCommon 2016-12-14 04:43:25 -05:00
Stenzek 5aaa5141ed PixelShaderGen: Fix incorrect indexing of tevLerpBias
Fixes the white box in the fortune street fifolog.
2016-12-13 00:03:25 +10:00
Markus Wick d64c9dd5c9 Merge pull request #4419 from degasus/master
Jit64: Fix a few trivial PIE issues.
2016-12-12 10:58:16 +01:00
hthh 801d1d1876 OpenGL: Always use a PBO in EncodeToRamUsingShader
This improves performance significantly on macOS, particularly
noticeably in the Super Mario Sunshine transition, which goes
from ~5FPS to ~17FPS.
2016-12-12 20:33:41 +11:00
Stenzek 607ce40f0b OGL: Fix black screen when MSAA is enabled 2016-12-12 17:51:19 +10:00
Markus Wick 863aeb383a Merge pull request #4509 from lioncash/assign
ShaderManagers: Use aggregate initialization for some variables.
2016-12-11 13:53:28 +01:00
Markus Wick 6ed462a059 Merge pull request #4511 from lioncash/ac
AudioCommon: Remove unnecessary headers
2016-12-11 13:52:59 +01:00
Lioncash 87f2a74c08 AudioCommon: Remove unnecessary headers
Now AudioCommon code won't need to be recompiled if the TAS movie header
is ever modified.
2016-12-11 06:11:37 -05:00
Lioncash 8dcb05802b ShaderManagers: Use aggregate initialization for some variables.
These provide the same semantics, however aggregate initialization
doesn't force the structs to be trivially copyable. memset, on the other
hand, does.
2016-12-10 17:33:51 -05:00
Stenzek 993e029f75 Merge pull request #4506 from stenzek/vulkan-no-depth-clamp
Vulkan: Fix viewport depth when depth clamp is unsupported
2016-12-11 01:57:25 +10:00
Mat M a0920afd5b Merge pull request #4500 from leoetlino/fileio-fix
IPC_HLE: Fix incorrect file path for IOCTL_SET_ATTR
2016-12-09 17:48:21 -05:00
Léo Lam 09fdab7fb4 HLE: Add a hook for JUTWarningConsole_f
JUTWarningConsole_f calls vprintf, but in a way we currently don't
handle (which messes up the printed message). However, it is a standard
debug print function, so we can directly hook it instead of waiting for
the vprintf call.

This is necessary to fix debug output in a few games now that vprintf
is properly detected in more games.
2016-12-09 23:40:06 +01:00
Lioncash 58a5395173 TextureCacheBase: Eliminate static state 2016-12-09 16:50:37 -05:00
Anthony 7a5bb46016 Merge pull request #4030 from clinchergt/fix-setfocus-rendertowindow
Fix focus bug when using the "render to main window" feature
2016-12-09 15:39:31 -06:00
Anthony 1fa61af413 Merge pull request #4492 from aldelaro5/gc-mic-ui-reimplement
Move the GameCube mic button configuration to the GameCube config dialog
2016-12-09 14:53:47 -06:00
Mat M b042377393 Merge pull request #4494 from lioncash/isoproperties
ISOProperties: Separate the filesystem tab out into its own class
2016-12-09 07:55:36 -05:00
Stenzek af706efaef Vulkan: Fix viewport depth when depth clamp is unsupported 2016-12-09 22:45:10 +10:00
Ethan Lee 7cfead6429 DolphinWX: Add 'DisableTooltips' config option
(Revision 2: Remove checkbox from WX GUI)
2016-12-07 13:20:37 -05:00
Léo Lam 10c7e56689 IPC_HLE: Fix incorrect file path for IOCTL_SET_ATTR
We were reading the string from the wrong location…
2016-12-07 13:52:44 +01:00
Léo Lam 31ccfffd38 Common: Add alignment header
Gets rid of duplicated alignment code.
2016-12-06 20:33:53 +01:00
aldelaro5 9ff95c58fa Add a special input configuration dialog for the GameCube Mic
This is more logical as the mic is plugged into an EXI slot so it should be configured via the GameCube config dialog.  This also allows to pass the right port number for the new dialog.
2016-12-05 18:09:31 -05:00
aldelaro5 431929fa1d Moved the Mic button of the GCPad to its own group.
This is needed to separate it from the GCPad input configuration dialog as it would be moved to its own dialog.
2016-12-05 18:09:23 -05:00
Michael e31aa70ff8 Add a hotkey for dumping textures 2016-12-05 08:20:45 -08:00
Markus Wick 7192789c11 Merge pull request #4486 from stenzek/gl-minimize-assert
OGL: Fix assertion when minimizing window
2016-12-05 12:46:29 +01:00
Lioncash ddeccf2622 ISOProperties: Separate the filesystem tab out into its own class 2016-12-04 22:35:01 -05:00
Stenzek bff394ec8a Merge pull request #4489 from stenzek/vulkan-minor-fixes
Vulkan: Minor fixes
2016-12-05 12:19:49 +10:00
Tillmann Karras f575902cf3 evdev: set flag in a thread-safe way 2016-12-05 00:47:26 +00:00
Tillmann Karras 3c090a37d4 evdev: fix shutdown hang
Note: This probably means our approach of populating from udev isn't
safe to be called multiple times.
2016-12-05 00:47:26 +00:00
Tillmann Karras 0043bd3547 Remove two unused variables 2016-12-05 00:47:26 +00:00
Léo Lam 59abfee11d DolphinWX: Add ability to filter symbols (by name)
This allows the user to filter symbols by name, instead of having to
scroll through a very, very long listbox…
2016-12-04 18:18:07 +01:00
degasus 5082a664c8 VertexLoaderX64: Avoid unchecked pointer cast. 2016-12-04 13:09:16 +01:00
degasus 21f3e97435 Jit64: Avoid pointer casts if possible. 2016-12-04 13:09:16 +01:00
degasus f325d41def DSPJit: Use tmp register for pointer immediate.
PIE.
2016-12-04 13:09:16 +01:00
degasus d26709f713 Jit64: Use ImmPtr for mtcrf.
Only a small overhead, but PIE compatible.
2016-12-04 13:09:16 +01:00
degasus 8189ef432b Jit64: Use ImmPtr for mcrxr.
Only a small overhead, but PIE compatible.
2016-12-04 13:09:16 +01:00
degasus 23c284c081 Jit64: Use ImmPtr for inst.OE handling.
A bit slower, but PIE compatible and *very* rarely.
2016-12-04 13:09:15 +01:00
Stenzek 8f97a24904 Vulkan: Enable GS instancing 2016-12-04 20:53:49 +10:00
Stenzek 9736198c3b Vulkan: Use explicit barriers instead of dependancies
At least on NV, some of these don't seem to have the intended effect. One
known instance of this is in texture conversion.
2016-12-04 20:10:13 +10:00
Stenzek a475792163 Vulkan: Fix incorrect logic in readback preemption
This could have been causing a large number of command buffer
submissions per frame, depending on when the readbacks occured.
2016-12-04 20:10:13 +10:00
Stenzek 58978c1440 Vulkan: Faster path for decoding XFB data
Using a texel buffer as the copy destination removes the need to copy to
an intermediate texture first.
2016-12-04 20:10:13 +10:00
Stenzek 804cd0ff03 Vulkan: Move XFB encoding/decoding to TextureConverter 2016-12-04 20:10:13 +10:00
Stenzek d67463e0a7 Vulkan: Simplify palette texture conversion 2016-12-04 20:10:13 +10:00
Stenzek add638538b Vulkan: Combine PaletteTextureConverter and TextureEncoder classes 2016-12-04 20:10:13 +10:00
Stenzek 804af42ccc Vulkan: Support binding texel buffers in UtilityShaderDraw 2016-12-04 20:10:13 +10:00
Stenzek e241ec6666 Vulkan: Implement StagingTexture2D on top of StagingBuffer
Greatly simplifies things, and we weren't using the linear texture
implementation anyway.
2016-12-04 20:10:13 +10:00
Stenzek 4bc0e14995 Vulkan: Use an enumeration to index pipeline layouts 2016-12-04 20:10:13 +10:00
Stenzek cd3481fbc7 Vulkan: Differentiate between descriptor set layouts and bind points
This also moves the pipeline and descriptor set layouts used for texture
conversion (texel buffers) to ObjectCache, and shares a binding location
with the SSBO set.
2016-12-04 20:10:13 +10:00
Stenzek 4e9018049d Vulkan: Support logging debug reports without enabling validation layers
There is a caveat, Host GPU must be checked prior to starting the game, as
we can't enable the extension at runtime without recreating the instance.
2016-12-04 19:55:12 +10:00
Stenzek 1cfb0a1185 Vulkan: Fix deadlock in some resize scenarios
Only have experienced this on a few occasions when using the anv driver.
2016-12-04 19:12:33 +10:00
Mat M d1c89db8c8 Merge pull request #4448 from lioncash/isoproperties
DolphinWX: Separate the information panel from ISOProperties
2016-12-03 19:15:25 -05:00
Stenzek 2ef884893a Vulkan: Fix map error when texture dumping is enabled 2016-12-04 00:23:34 +10:00
Stenzek 4c860ddb70 Vulkan: Fix typo in PopulateBackendInfoMultisampleModes 2016-12-04 00:23:30 +10:00
Stenzek 730ec3809a Vulkan: Remove unused variable 2016-12-04 00:23:25 +10:00
Stenzek 107e8c8ee7 OGL: Fix assertion when minimizing window
Also fixes a potential divide by zero in Renderer::RenderText.
2016-12-03 20:35:14 +10:00
Michael Maltese f798bcd5c0 DolphinQt2: InfoWidget: explicit type for std::min
Avoids errors on macOS:

```
Source/Core/DolphinQt2/Config/InfoWidget.cpp:190:21: error: no matching function for call to 'min'
    u64 read_size = std::min(file_data.size(), game_size - read_offset);
                    ^~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:2589:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('unsigned long' vs. 'unsigned long long')
min(const _Tp& __a, const _Tp& __b)

```
2016-12-02 21:26:18 -08:00
Stenzek 7b1966a680 Vulkan: Fix assertion triggering when geometry shaders are unsupported
Happened when loading the pipeline UID cache.
2016-12-02 17:37:10 +10:00
Lioncash 20fcfd0ed8 DolphinWX: Separate the information panel from ISOProperties
Makes the information panel self-contained.

This was done first, as opposed to isolating the GameConfig panel--the
first panel in the group--as this panel had code all over the place in
ISOProperties, so I figured it'd be best to fix this one up first.
2016-12-01 21:21:46 -05:00
Mat M 2e7c90eeb5 Merge pull request #4450 from PEmu1/fifo-player-capitalization
Update FIFO Player Window Capitalization
2016-12-01 21:09:44 -05:00
Anthony 0705c53681 Merge pull request #4340 from sepalani/step_timeout
CodeWindow: Fix step out issues
2016-12-01 13:32:44 -06:00
David Korth 25fe999a79 Added support for Wii RVT-R disc images.
These disc images are encrypted and signed using a different set of keys.
We only care about the master key, so we check the signature issuer. If
it matches the debug issuer, then we'll use the RVT-R key. Otherwise,
the previous set of common and Korean keys are used.
2016-12-01 07:51:29 -05:00
Anthony ffe20705dd Merge pull request #4362 from ligfx/osxhotplug
ControllerInterface: enable hotplugging on macOS
2016-12-01 00:29:56 -06:00
Michael Maltese 7ed8fb95c5 ControllerInterface: enable hotplugging on macOS 2016-11-30 22:27:46 -08:00
Anthony a95e3c875e Merge pull request #4343 from ligfx/fixsdlcrash
ControllerInterface: Fix crashes when using SDL controllers
2016-11-30 20:47:38 -06:00
Stenzek e2018f2208 Merge pull request #4480 from stenzek/vulkan-streambuffer-reuse
Vulkan: Fix stream buffer re-use problems
2016-12-01 12:38:31 +10:00
Michael Maltese 3e69d066f5 ControllerInterface: replace Reinitialize with RefreshDevices
The SDL backend crashes when you close a joystick after SDL_Quit has
been called. Some backends don't need to be shutdown and
re-initialized everytime, we can just ask to enumerate devices again.
2016-11-30 16:07:55 -08:00
Michael Maltese cebb4d84f2 ControllerInterface: clear devices before shutting down backends
The SDL backend faults if it tries to close a joystick after SDL_Quit
has been called.
2016-11-30 16:07:54 -08:00
Hector Martin 90c2dec02d Wii IPC HLE: do not clobber memory when launching a new title
It's questionable whether ES_LAUNCH should write *anything* to the
command structure at all, ever, given that it never actually returns
it back through the mailbox. But it *definitely* shouldn't write
anything to it if it has just launched a DOL, because otherwise it might
clobber code/data from the just-loaded application.
2016-12-01 06:55:15 +09:00
Hector Martin 288e75f672 Wii IPC HLE: Fix IPC missing reply fail 2016-12-01 06:38:51 +09:00
Hector Martin 2b906e3fc4 DOL/ELF loaders: enable HID4.SBE in Wii mode
When booting "cooked" executables, BATs should already be set up and
enabled. They should only really be disabled when booting NAND contents
in real mode.
2016-12-01 06:36:53 +09:00
Hector Martin a6742d9cf7 ELF boot: scan segments for Wii mode detection, not sections 2016-12-01 06:36:53 +09:00
Hector Martin 3f11879640 ES HLE / WAD boot: hardcode the entrypoint
NAND titles are always started at address 0x3400 with translation off.
The entrypoint in the DOL is ignored.
2016-12-01 06:36:53 +09:00
Stenzek ca691a9d95 Vulkan: Allow re-use of uniform buffers when doing per-stage uploads
This is safe now because we invalidate the pointers after submitting a
command buffer.
2016-11-30 23:34:46 +10:00
Stenzek 6a4eba1153 Vulkan: Replace explicit command buffer submits with wrapper function
Should we ever introduce anything else that has to be done when a command
buffer is executed (e.g. invalidating constants from previous commit), we
don't have to update all the callers.
2016-11-30 23:14:36 +10:00
Stenzek 3adeacb78d Vulkan: Fix case where uniforms could be overwritten
If a draw caused a command buffer submission, the current uniform storage
should not be used for the new command buffer.
2016-11-30 23:14:35 +10:00
Stenzek 4c11735bd5 Vulkan: Fix case where a draw's vertices could be overwritten
This could happen because the vertex memory was already committed, if a
uniform buffer allocation failed and caused a command buffer to be
executed, it would be associated with the previous command buffer rather
than the buffer containing the draw that consumed these vertices.
2016-11-30 22:45:00 +10:00
Stenzek 37550501cc Vulkan: Fix incorrect handling of buffer wrap-around in StreamBuffer
This was happening when a fence wait happened mid-frame. The data written
between the fence being queued and the allocation occuring was incorrectly
assumed to be consumed by the GPU.
2016-11-30 22:44:52 +10:00
JosJuice 3cfc49a613 Merge pull request #4472 from JosJuice/revert-absolute-path
IOS HLE: Replace broken path traversal prevention
2016-11-29 18:34:22 +01:00
aldelaro5 f705d8378e Fix the order of the name of the hotkeys 2016-11-29 11:51:55 -05:00
Stenzek aadc77c493 Merge pull request #3649 from stenzek/wgl-core-shared
GLInterface: Implement core and shared context creation for WGL
2016-11-29 22:59:31 +10:00
Mat M eebe4ef1fd Merge pull request #4461 from aldelaro5/hotkey-config-redo
Redo every input configuration dialog
2016-11-29 07:39:28 -05:00
Stenzek 7353cae707 GLInterface: Implement core and shared context creation for WGL 2016-11-29 20:04:32 +10:00
aldelaro5 32a0dae257 Completely redo All configuration dialog
Hotkeys

Make a new class that inherits from InputConfigDialog with a specialised constructor.  The changes are mainly the top portion and it now uses tabs to categorise the hotkeys.

Redo the GCPad configuration dialog

The layout is similar, but it now allows flexibility to change it more easily.

Redo the GC Keyboard configuration dialog

Same layout.

Redo completely the Wiimote configuration dialog

Separated the controls into 2 tabs to make them less imposing overall.

Redo the Nunchuk configuration dialog

Similar layout, except for 2 control group sizers.

Redo the Classic controller configuration dialog

Same layout.

Redo the Guitar input configuration dialog

Stacked 2 sets of group together.

Redo the Turntable configuration dialog

More stacked groups and the window is much less wide.
2016-11-28 08:26:34 -05:00
aldelaro5 03e0cae9b7 Prepare for having different extensions dialogs
Just setting up a switch on the type so that different dialogs can be instantiated.  This also makes the extension type an enum because I don't see why not here and finally, it removes ControlGroupSizer.  This removal allows to not dynamically generate the UI, but instead, let the specialised constructors do the layout.
2016-11-28 08:26:34 -05:00
aldelaro5 00f680b830 Add flexibility to InputConfigDialog
Removed the unecessary forced tabbed layout, removed the layout part of the constructor and remade some method in preparation for tabbed styled input dialog such as the new hotkey configuration one.  It breaks every inputconfigDialog, but this will get fixed in the next commits.

Also moved to a folder since there will be many more files created in the next commits so it gives better separation.
2016-11-28 08:26:27 -05:00
Stenzek 0212741574 Merge pull request #4436 from stenzek/vulkan-full-ir-framedump
VideoBackends: Internal resolution frame dumping
2016-11-28 22:05:16 +10:00
Stenzek 49e807b71f Merge pull request #4459 from stenzek/nogui-resize-notify
DolphinNoGUI: Receive resize events and notify backend when this occurs
2016-11-28 22:04:21 +10:00
Stenzek b81dee8b9a OGL: Support full-resolution frame dumping 2016-11-28 21:54:56 +10:00
Stenzek 93221e7f48 OGL: Move frame rendering procedures to seperate methods 2016-11-28 21:54:56 +10:00
Stenzek 1c1a686f63 Vulkan: Support full resolution frame dumping 2016-11-28 21:54:55 +10:00
Stenzek adc22a5e20 VideoCommon: Add method for calculating full-scale framedump rectangles 2016-11-28 21:54:54 +10:00
Stenzek 8d48319414 Vulkan: Validate the pipeline cache before using it
This ensures that if a user changes adapters or vendors we're not passing
invalid data to the driver.
2016-11-28 21:21:55 +10:00
Stenzek 9604b336c8 Vulkan: Don't destroy the device's pipeline cache on MSAA mode change
The user could switch back again, and this would mean this data would be
lost. Disk space is cheap, and it's not going to be much.
2016-11-28 21:21:54 +10:00
Stenzek aac66a1b61 Vulkan: Implement a pipeline UID cache
This stores enough information to recreate the pipeline, including the
shader UIDs, blend/depth/rasterization state, primitive and vertex format.
2016-11-28 21:21:53 +10:00
Stenzek 6db0ee9561 VideoCommon: Remove backbuffer size parameters from methods
We have the s_backbuffer_{width,height} fields to represent this, so
there's no point in passing them as parameters every time.
2016-11-28 20:14:59 +10:00
Stenzek a83ca587c6 VideoCommon: Make FramebufferManagerBase::GetTargetSize public 2016-11-28 20:14:59 +10:00
Stenzek a0a62c0f46 VideoConfig: Add option for full-resolution frame dumping 2016-11-28 20:14:59 +10:00
Stenzek 681294586b Merge pull request #4455 from stenzek/png-frame-dumping
VideoCommon: Support dumping frames to images
2016-11-28 20:03:50 +10:00
Stenzek e66373b7ff Merge pull request #4456 from stenzek/vulkan-framedump-fix-2
Vulkan: Fix black borders in frame dumps
2016-11-28 20:03:08 +10:00
Léo Lam 72e3f1ecec Remove unnecessary ConfigManager includes
Making changes to ConfigManager.h has always been a pain, because
it means rebuilding half of Dolphin, since a lot of files depend on
and include this header.

However, it turns out some includes are unnecessary. This commit
removes ConfigManager includes from files which don't contain
SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the
ConfigManager include is not used).

(I've also had to get rid of some indirect includes.)
2016-11-27 22:38:38 +01:00
JosJuice 7a4f19ed98 IOS HLE: Correct handling of paths that don't start with / 2016-11-27 22:10:41 +01:00
JosJuice c74c317ab5 IOS HLE: More robust escaping of NAND paths
Prevents path traversal without needing an absolute path
function, and also improves accuracy (character sequences
like ../ appear to have no special meaning in IOS).

This removes the creation and usage of /sys/replace,
because the new escapes are too complicated to all
be representable in its format and because no other
NAND handling software seems to use /sys/replace.
2016-11-26 22:49:46 +01:00
JosJuice de355a8521 Revert "IOS HLE: Prevent accessing host file system"
This reverts commit 141f3bfb3a.
The implementation of getting absolute paths wasn't working
on non-Windows systems, which is a huge problem for IOS HLE.
2016-11-26 15:50:28 +01:00
Anthony c84ab13e81 Merge pull request #4375 from leoetlino/ipc-hle-small-cleanup
IPC_HLE: Small cleanup
2016-11-25 17:50:14 -06:00
Anthony 6473a485d0 Merge pull request #4460 from linkmauve/no-miniupnpc
NetPlay: Fix build when miniupnpc is disabled
2016-11-25 16:28:27 -06:00
aldelaro5 7e99d03b7f Add the ability to get partial input group
For hotkeys, changed HotkeyManager to allow to get and make partial groups of hotkeys.

Also preserved the old configuration naming scheme for the ini, this is done to preserve compatibility with the older groups structure.

Add the ability to get GCPad control groups

Used like the HotkeyManager methods, this is used for the new GCPad configuration dialog.

Add the ability to get groups of Keyboard input

Same reasons as the previous ones.

Add ability to get groups of Wiimote input

Add the ability to get extensions group

This needed to pass to 3 classes.  Will be used for their respective dialogs.
2016-11-25 02:37:22 -05:00
Anthony 11243ac358 Merge pull request #4470 from aldelaro5/fix-slowdown-logs
Change the patch engine log to be debug level log
2016-11-24 16:25:53 -06:00
Léo Lam 5b44b37902 IPC_HLE: USB_KBD: Use the correct log type
Fixes logging to use the correct log type; it was originally STM
(likely an oversight).
2016-11-24 20:23:52 +01:00
Léo Lam 20f2955ad9 IPC_HLE: Remove dead code (Wiimote and emulated BT)
Neither needed or used in the emulated Bluetooth code.
2016-11-24 20:23:52 +01:00
Léo Lam f82051a365 IPC_HLE: In-class initialise member variables 2016-11-24 20:23:52 +01:00
Léo Lam 3263831928 IPC_HLE: Clean up includes (IWYU)
Apply automated fixes by include-what-you-use (IWYU) (with some minor
changes).

IPC_HLE should now be essentially free of indirect includes.
2016-11-24 20:23:51 +01:00
Léo Lam 1e94fdba3c IPC_HLE: Device: Separate implementation from declaration
I know there is already #3521, but it currently needs a rebase and I
needed to add something to IPC_HLE_Device properly, that is, without
putting everything in the header, so this commit cleans up
IPC_HLE_Device first. (And only IPC_HLE_Device: the rest will still
be handled by #3521.)

Also fixes a few indirect includes (removing unused header includes
from IPC_HLE_Device.h broke building)
2016-11-24 20:19:19 +01:00
Léo Lam 741a638f3e IPC_HLE: USB_VEN: Clean up (includes and naming) 2016-11-24 20:19:18 +01:00
Léo Lam b0377f02f0 IPC_HLE: Deduplicate syscall reply enqueue function
This is something that was copy-pasted across the IPC_HLE code
(because it's often used). Since all of the duplicated pieces of code
do the same thing as the previous EnqueueReply, except that they also
write to command_address + 0 and + 8 (to write the correct reply type),
this commit changes EnqueueReply to do that instead of having it
duplicated all over IPC HLE.
2016-11-24 20:19:18 +01:00
JosJuice 9bfea4a0f2 Merge pull request #4447 from JosJuice/hthh-hle-issues
Fix exploitable HLE problems reported by hthh
2016-11-24 15:53:23 +01:00
aldelaro5 c6b3c67ea1 Change the patch engine log to be debug level log
It was apparently causing heavy slowdowns on game even though it wouldn't spam much, probably caused by the amount of additional check caused by the logs levels changes.
2016-11-23 00:58:07 -05:00
Stenzek 6d0b9b816f VideoCommon: Support dumping frames to images
This is mainly for potential Android fifoci usage, and thus is not
exposed anywhere in the UI. To enable, set DumpFramesAsImages under
Settings in GFX.ini.
2016-11-23 12:07:49 +10:00
Ryan Meredith 6d55aebcf7 Typo_Fix 2016-11-21 23:23:48 -05:00
Emmanuel Gil Peyrot c4cd0d444a NetPlay: Fix build when miniupnpc is disabled. 2016-11-19 15:36:26 +00:00
Stenzek 1aecf90765 DolphinNoGUI: Receive resize events and notify backend when this occurs
Solves the viewport sizing issue for backends that cannot tell when the
window is resized (Vulkan on NV at least).
2016-11-19 23:03:20 +10:00
Stenzek d6d3341183 D3D: Fix strided XFB copies 2016-11-19 20:29:51 +10:00
Stenzek 6b88a854a7 Vulkan: Handle strided XFB copies
Where src_rect.width * 2 != dst_stride.
2016-11-19 20:29:47 +10:00
Léo Lam 165e3a9936 IPC_HLE: Fix emulated BT crash (uninitialised memory)
When the emulated BT device is created, m_HCIEndpoint (which is a
CtrlBuffer)'s m_cmd_address is not initialised to 0. So it ends up
being a random value. This is normally not an issue… but the
emulated Bluetooth code relies on m_cmd_address to know whether the
HCI endpoint is still valid.

This is a problem with ES_Launch, because the bt_emu class is
destructed and re-constructed, and while m_cmd_address is still
uninitialised, the ES_Launch code disconnects all Wii remotes,
which triggers a HCI event and hence the bug.
2016-11-19 00:11:41 +01:00
Stenzek 725ef4c5dc Vulkan: Pass target_rect to framebuffer draw methods
Fixes the black borders in frame dumps when the window was not sized to
the framebuffer aspect ratio.
2016-11-18 22:55:22 +10:00
hthh 4d2f058fe8 DolphinWX: Fix toolbar creation on macOS 2016-11-18 21:32:12 +11:00
Markus Wick 6c16f1be8a Merge pull request #4416 from stenzek/vulkan-cmdpool
Vulkan: Use multiple command pools, one per frame
2016-11-16 10:25:10 +01:00
Stenzek 3c92b35422 Vulkan: Use multiple command pools, one per frame
Instead of resetting two command buffers, now we only have to call
vkResetCommandPool once at the start of a frame.

NV's recommends using one pool per frame/thread. May offer a very small
boost in performance on some systems.
2016-11-15 00:40:15 +10:00
Stenzek e83bf5705a JitArm64: Don't emit normal block exit for branch-to-self instructions
The normal block exit is redundant as the exception exit will jump out of
the block first, meaning this code is never executed.
2016-11-15 00:28:14 +10:00
Stenzek c657134c86 Jit64: Treat branch-to-self instruction as an idle loop 2016-11-15 00:26:59 +10:00
Stenzek bd67adb362 Vulkan: Use correct sample count for EFB pokes with MSAA enabled 2016-11-14 20:24:16 +10:00
Stenzek 89176fe2ab Vulkan: Fix crash on EFB poke 2016-11-14 20:19:59 +10:00
Pringo f848418efa Update FIFO Player Window Capitalization 2016-11-13 20:44:18 -08:00
Jules Blok 99de9fbe33 Merge pull request #4443 from Armada651/exclusive-ui
D3D: Move exclusive mode switching to UI thread.
2016-11-14 01:45:07 +01:00
Jules Blok 7e35a47b51 Cosmetics. 2016-11-13 22:17:40 +01:00
Markus Wick bc98ec77be Merge pull request #4441 from stenzek/vulkan-max-image-count
Vulkan: Handle maxImageCount of zero when creating swap chain
2016-11-13 14:12:32 +01:00
Markus Wick c723532f0d Merge pull request #4430 from stenzek/vulkan-no-relaxed-vsync
Vulkan: Don't use FIFO_RELAXED present mode for vsync.
2016-11-13 14:10:58 +01:00
JosJuice 141f3bfb3a IOS HLE: Prevent accessing host file system 2016-11-13 10:03:23 +01:00
JosJuice a79c449493 Avoid buffer over-reads in /dev/net/ip/top
Also fixes the less serious problem of buffer overflows
in emulated memory when BufferOutSize is less than 2.
2016-11-13 08:44:05 +01:00
JosJuice b47e607105 HLE_OS: More bounds checking in GetStringVA 2016-11-12 19:17:15 +01:00
JosJuice 3d80d454ce HLE_OS: Implement %n in GetStringVA
%n writes to a pointer that's provided as a parameter.
We didn't have a custom implementation of this before,
meaning that %n would trigger a write to the host
memory instead of the emulated memory!
2016-11-12 19:16:55 +01:00
JosJuice 656999d4c2 Correct bounds checking for /dev/sdio/slot0
The bounds checks in IOCtl were using 0x200 as the size of
m_Registers, which is more than the actual size, 0x200 / 4.

This commit turns m_Registers into an std::array to allow
for a correct and obvious way of getting its size.
2016-11-12 19:09:03 +01:00
Jules Blok aa0e4472c0 Frame: Move exclusive mode switching to helper function. 2016-11-11 21:24:08 +01:00
Lioncash f207c01586 NetPlayLauncher: Add missing #pragma once 2016-11-11 14:58:20 -05:00
Jules Blok d8201a7e8b Frame: Remove exclusive mode OSD messages. 2016-11-11 20:36:11 +01:00
Jules Blok d7cf5e28b6 Frame: Use PauseAndLock when switching fullscreen modes.
This allows us to regain exclusive mode directly from OnActive().
2016-11-11 20:36:10 +01:00
Jules Blok 9909babe2c D3DBase: Create the swapchain in fullscreen mode if enabled. 2016-11-11 20:36:10 +01:00
Jules Blok 0028ee96b3 Host: Remove the Host_RequestFullscreen() method.
No longer needed, since the exclusive mode switch is now handled synchronously on the CPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok 0a194f8a3e VideoConfig: Remove fullscreen flags.
These weren't actually settings, they were used as a bad way to communicate with the GPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok c21efa0cad D3D: Move exclusive mode switching to UI thread.
This prevents deadlocks when switching to exclusive mode.
And it also allows the CPU thread to block until we've completed the switch.
2016-11-11 20:36:04 +01:00
Jules Blok f0ce3275af Merge pull request #4439 from Armada651/yield-ui
CPU: Fix deadlocks by periodically yielding to the UI message pump.
2016-11-11 20:30:31 +01:00
Lioncash cd9520f458 CodeWindow: In-class initialize variables where applicable 2016-11-11 13:31:36 -05:00
Lioncash 492b82042d CodeWindow: Remove unused parameter from constructor 2016-11-11 13:20:47 -05:00
Stenzek 160fee6791 Vulkan: Handle maxImageCount of zero when creating swap chain
anv seems to set this to zero, which is fine according to the spec, but
we were using it as a maximum, which was resulting in a swap chain
without any buffers being created.
2016-11-11 23:33:40 +10:00
Jules Blok 20d49ba97f DolphinQt2: Implement Host_YieldToUI(). 2016-11-11 13:42:18 +01:00
Jules Blok 05a3f927ee CPU: Fix deadlocks by periodically yielding to the UI message pump. 2016-11-11 13:37:03 +01:00
Jules Blok 8203ea929b BlockingLoop: Yield to UI message pump while waiting. 2016-11-11 13:37:02 +01:00
Lioncash 2d9ef3412a GCAdapterConfigDiag: Mark OnUpdateAdapter parameter as unused. 2016-11-10 20:19:53 -05:00
Lioncash 1ae9027a6b GCAdapterConfigDiag: Rename UpdateAdapter to OnUpdateAdapter
Uses the general naming convention for event functions.
2016-11-10 20:18:59 -05:00
Lioncash c5c7ff9fd6 GCAdapterConfigDiag: Make functions private where applicable
These don't need to be in the public interface.
2016-11-10 20:12:02 -05:00
Mat M c77d4a765d Merge pull request #4425 from lioncash/ipc
IPC_HLE: Move NWC24Config and WiiNetConfig to their own source files
2016-11-10 16:55:43 -05:00
Jules Blok 03878a44e1 Merge pull request #4433 from Armada651/the-emu-that-runs-faster-than-its-race-condition
FrameTools: Avoid deadlock in UpdateGUI().
2016-11-10 16:50:13 +01:00
Lioncash 97bd77c928 Frame: Remove unused menu variable
This has been unused since the introduction of the MainMenuBar class
that abstracts away all of the wxMenuBar UI loading.
2016-11-10 07:33:52 -05:00
Mat M 0b9562b0d5 Merge pull request #4434 from lioncash/path
PathConfigPane: Eliminate main frame global usage
2016-11-10 07:31:31 -05:00
degasus 193dd97759 VideoCommon: Drop FlipImageData.
This function isn't used any more, and good code shouldn't use it at all. Use negative strides instead.
2016-11-10 12:59:22 +01:00
degasus 3816207d7b OGL: Fix frame dump on emulation close. 2016-11-10 12:59:22 +01:00
degasus 21774bdc81 OGL: Only flush the frame dumping thread on dumping.
This fixes the screenshot stutter, as this needs more than a frame.
So we won't stall on the png writing at all until emulation stops or
a new screenshot is requested.
2016-11-10 12:59:22 +01:00
degasus 52caa4f2f5 VideoCommon/Render: Inplace frame dump encoding.
This increase the performance of good backends a bit, but slows down the bads one a lot.
Let's fix those backends instead of forcing stupid memcpy in the common code.
2016-11-10 12:59:19 +01:00
Stenzek 38c3ca5cd4 Vulkan: Implement asynchronous frame dumping 2016-11-10 01:07:46 +10:00
Lioncash be04215857 FrameTools: Clean up variable naming in UpdateLoadWiiMenuItem 2016-11-08 21:22:17 -05:00
Lioncash 2acf3570e0 PathConfigPane: Eliminate main frame global usage 2016-11-08 21:19:24 -05:00
Jules Blok de50fead5c FrameTools: Avoid deadlock in UpdateGUI(). 2016-11-09 01:45:30 +01:00
Mat M e05553acfc Merge pull request #4428 from lioncash/event
DolphinWX: Move common wxUpdateUIEvent functions to WxEventUtils
2016-11-08 17:11:16 -05:00
Markus Wick 5378b6ab85 Merge pull request #4345 from degasus/framedump_threaded
Renderer: Threaded frame dumping.
2016-11-08 11:01:40 +01:00
degasus 741debe229 OGL: Avoid reallocation of frame dumping PBO. 2016-11-07 22:32:54 +01:00
degasus f6a6cc9c67 OGL: Use PBO for framedump, with async readback. 2016-11-07 22:17:32 +01:00
degasus a47332bf8a VideoCommon/Render: Use a flag for screenshot. 2016-11-07 22:16:34 +01:00
degasus d79840078f Renderer: Threaded frame dumping. 2016-11-07 22:11:13 +01:00
Stenzek c09ce029df Vulkan: Don't use FIFO_RELAXED present mode for vsync. 2016-11-07 19:22:27 +10:00
Sepalani 744b993dcd CodeWindow: Fix step out issues 2016-11-06 20:30:24 +00:00
Lioncash 5022c0dfb5 DolphinWX: Move common wxUpdateUIEvent functions to WxEventUtils 2016-11-06 09:02:59 -05:00
Mat M 136a10482f Merge pull request #4427 from lioncash/config-update
DolphinWX: Enable/disable config UI options based on core state
2016-11-06 08:21:02 -05:00
Lioncash c2d00d25fe DolphinWX: Make the main config dialog modeless 2016-11-06 08:04:54 -05:00
Markus Wick 3924a99942 Merge pull request #4423 from degasus/framedump
Framedump: Use an object for the framedumping state.
2016-11-06 02:07:08 +01:00
Lioncash bfa9cc2736 DolphinWX: Enable/disable config UI options based on core state 2016-11-05 11:14:37 -04:00
Mat M 0ad4e70fc5 Merge pull request #4422 from lioncash/codewindow-menu
CodeWindow: Migrate more menubar handling code to CFrame
2016-11-05 08:19:28 -04:00
Lioncash b19842eec3 IPC_HLE: Move NWC24Config and WiiNetConfig to their own source files
Makes for a cleaner separation of functionality, as well as removing
multiple includes from the main header file. It also gets a bunch of
structs and enums out of the global namespace.

Coincidentally, this also gets rid of an indirect include cycle that
could have broken compilation of Core.cpp in the future, since it was
relying on IPC network includes to resolve functions in Common/NandPaths.h.

This makes it easier to separate out the individual net classes in a
follow-up. Separating these out would also make it less of a pain to
figure out what's going on, since you wouldn't need to sift through 1000+
lines of code.i
2016-11-05 03:12:07 -04:00
Lioncash 9543b9d20d CodeWindow: Rename GetMenuBar() to GetParentMenuBar() 2016-11-04 22:02:36 -04:00
Lioncash 07e3835a49 GeneralConfigPane: rename cpu_cores to m_cpu_cores 2016-11-04 21:57:46 -04:00
degasus 3c65c5f2c5 AVIDump: Drop frames which are delayed over a savestate. 2016-11-04 18:39:50 +01:00
degasus be29090aae AVIDump: Add a struct for the state.
So AddFrame use no global state and can be threaded well.
2016-11-04 18:35:42 +01:00
degasus dad5041737 AVIDump: Inline OSD error handling.
This fixes a review feedback in PR #4345.
2016-11-04 18:03:14 +01:00
degasus 03d8efc270 AVIDump: Merge redundant variables.
They were always the same. We also don't scale at all.
2016-11-04 18:03:14 +01:00
degasus 112e18a5d1 AVIDump: Drop stored frame.
This used an invalid pointer, which was only valid within AddFrame.

This drops a feature which shall dump the last frame as it might was dropped before.
A good implementation however should "overwrite" the last frame if the time matches.
But this needs to delay every frame a bit.
2016-11-04 18:03:14 +01:00
JosJuice d88295d5a1 Merge pull request #4421 from Pringo/wiimote-log
Change "Wiimote" to "Wii Remote" in Logs
2016-11-04 17:03:11 +01:00
Markus Wick 234691abf7 Merge pull request #4385 from leoetlino/disable-bt-check
Disable descriptor check for BT passthrough in some cases
2016-11-04 14:38:19 +01:00
Stenzek ac2971b30e Merge pull request #4374 from stenzek/vulkan-xfb
Vulkan: Cleanup and implement XFB support
2016-11-04 23:11:10 +10:00
Markus Wick d2fdafa155 Merge pull request #4415 from degasus/arm
JitArm64: Also push/pop gpr.R(addr).
2016-11-04 09:33:53 +01:00
Lioncash 5d4c714662 CodeWindow: Hide GetMenuBar()
This eliminates public usage of the GetMenuBar() function in CodeWindow.
The benefit of this is it also gets rid of the need to perform direct
access across the config dialog and the main frame. It also gets rid of
the use of the main_frame global.

GetMenuBar() will be removed entirely from CodeWindow in a follow-up that
also removes any related remnants of code made obsolete with its removal.
2016-11-04 00:09:47 -04:00
Lioncash 5ae6c21c2e CodeWindow: Eliminate explicit menu item updating from CodeWindow
Gets rid of more menu-related code from CodeWindow and puts it back in
CFrame where it belongs.

This turns the previous menu update function within CodeWindow into one
that simply updates the debugger font for its managed controls. It also
improves how the font is actually updated. Previously, fonts would change,
however this wouldn't actually reflect onto the respective controls until
a refresh or update event occurred. Since codeview, callstack, symbols,
callers, and calls windows are all managed by a wxAuiManager instance,
calling Update() on it after the font has been set will reflect font
changes immediately.
2016-11-04 00:01:45 -04:00
Pringo 93bdab64fa Change "Wiimote" to "Wii Remote" in Logs 2016-11-03 17:58:28 -07:00
Stenzek c880c37244 Vulkan: Rename screenshot buffer to frame dump buffer.
Name makes more sense given the methods it calls in the base class.
2016-11-03 22:38:48 +10:00
Stenzek 9aed27cdcf Vulkan: Combine frame dumping and present into one command buffer.
Small optimization that should make things slightly more efficient when
frame dumping is enabled.
2016-11-03 22:38:48 +10:00
Stenzek 690a6deeb3 Vulkan: Fix swapped top/bottom images in TAB stereo mode 2016-11-03 22:33:24 +10:00
Stenzek 70eb904536 Vulkan: Fix incorrect geometry shader input/output usage 2016-11-03 22:33:24 +10:00
Stenzek 5250f3c6a4 Vulkan: Add missing call to ObjectCache::RecompileSharedShaders
This was causing issues when the stereo mode was changed at runtime.
2016-11-03 22:33:24 +10:00
Stenzek d67877d27e Vulkan: Fix fast clear path not being used in all cases 2016-11-03 22:33:24 +10:00
Stenzek 5182e6b549 Vulkan: Implement virtual/real XFB support 2016-11-03 22:33:24 +10:00
Stenzek 3593fa27ab Vulkan: Move CopyRectangleFromTexture to TextureCache 2016-11-03 22:01:55 +10:00
Stenzek 01b3c0f036 Vulkan: Make TextureCache::TCacheEntry public 2016-11-03 22:01:54 +10:00
Stenzek b066d51dfa Vulkan: Remove parameters/members of single-instance classes
There's not a lot of point in passing these around or storing them
(texture cache/state tracker mainly) as there will only ever be a single
instance of the class.

Also adds downcast helpers such as Vulkan::Renderer::GetInstance().
2016-11-03 22:01:54 +10:00
shuffle2 ab9f539233 Merge pull request #4387 from aldelaro5/gpr1-and-gpr2-friendly-labels
Add precision about the names of r1, r2 and r13 for the register view
2016-11-03 02:29:40 -07:00
degasus abe9c30d3d JitArm64: Also push/pop gpr.R(addr).
This fixes slowmem load instruction with update.
2016-11-02 22:38:03 +01:00
JosJuice 25070d149e Merge pull request #4412 from JosJuice/more-debug-text
More debug text fixes
2016-11-02 17:58:59 +01:00
JosJuice 3c6742f66f More debug text fixes
Also a few small non-debug text changes.
2016-11-02 17:46:52 +01:00
Markus Wick 342c053bf5 Merge pull request #4368 from JosJuice/updatewantdeterminism-loadinput
Movie: Add missing calls to UpdateWantDeterminism
2016-11-02 16:26:48 +01:00
Markus Wick 9ce1cdde98 Merge pull request #4414 from linkmauve/single-newline
Remove double newlines at the end of *_LOG messages
2016-11-02 12:20:46 +01:00
aldelaro5 2f5d00450a Add precision about the names of r1, r2 and r13 for the register view
In the code view, it would never say r1 or r2, but rather sp (stack pointer) and rtoc (register of the table of content) respectively.  In the register view, all it says is the register number.  This is an inconvenience considering it might not be obvious which register belongs to which of these terms.

Also make r13 named the "sda" for small data area with the same convention as above.
2016-11-02 01:13:00 -04:00
Emmanuel Gil Peyrot c9e6b05ce9 Core: Remove double newlines at the end of *_LOG messages. 2016-11-02 02:09:33 +00:00
Markus Wick 24fa4c9e57 Merge pull request #4400 from degasus/master
JitArm64: Store the carry flag within the host flag.
2016-11-01 23:29:50 +01:00
Jules Blok 49ac577ac0 Merge pull request #4388 from ligfx/portaudio_static
CMake: build PortAudio as static library
2016-11-01 18:32:12 +01:00
degasus 5a8c52ce3a JitArm64: Fix srawx. 2016-11-01 11:55:06 +01:00
degasus 0a3e5a0fe8 JitArm64: srawix cleanups. 2016-10-31 23:40:09 +01:00
degasus c69903eb42 JitArm64: CR field cleanup. 2016-10-31 23:40:09 +01:00
degasus 3405f5ac1a JitArm64: Optimize carry behavior of srawix. 2016-10-31 23:40:09 +01:00
degasus 0d78f5926f JitArm64: Keep carry in the host flag for all integer instructions. 2016-10-31 23:40:08 +01:00
degasus f449541e65 JitArm64: Implement derefered carry usage. 2016-10-31 23:40:08 +01:00
degasus 4d88f5410e JitArm64: Store carry within the host carry flag. 2016-10-31 23:40:08 +01:00
shuffle2 41477c9ef5 Merge pull request #3080 from LAGonauta/openal-32bit-fixed-point-support
OpenAL 32-bit fixed point support
2016-10-31 13:07:35 -07:00
Jules Blok 2058a49465 PixelShaderGen: Remove unused global variable. 2016-10-31 15:02:08 +01:00
Jules Blok 086f839435 DriverDetails: Make the bug identifiers humanly readable. 2016-10-31 15:02:08 +01:00
JosJuice 479b909935 Merge pull request #4381 from JosJuice/small-debug-text
DolphinWX: Small debug text fixes
2016-10-31 13:13:51 +01:00
Markus Wick b9e4f67d3a Merge pull request #4405 from xrix4096/mac-unknown-joyaxis
Make analog triggers on PS3 controllers accessible on Mac
2016-10-31 13:01:47 +01:00
Markus Wick 2afa877119 Merge pull request #4376 from leoetlino/warning-fix
Warning fixes
2016-10-31 12:57:03 +01:00
Markus Wick b9e4370023 Merge pull request #4383 from Sintendo/minor-text-fixes
Fix minor comment typos
2016-10-31 12:51:42 +01:00
Markus Wick 4f5d0cd450 Merge pull request #4391 from Pringo/wii-remote
Change "Wiimote" to "Wii Remote" in Interface
2016-10-31 12:49:16 +01:00
Markus Wick 4eb5892e1a Merge pull request #4399 from JosJuice/unify-getgctime
EXI_DeviceIPL: Unify GetGCTime epoch handling
2016-10-31 12:47:06 +01:00
Markus Wick d5ca153c26 Merge pull request #4401 from JosJuice/rename-getuniqueid
DiscIO/SConfig: Rename GetUniqueID to GetGameID
2016-10-31 12:39:27 +01:00
Markus Wick 22779473bc Merge pull request #4402 from Armada651/dualsrc-bug
OGL: Fall back to the old dual-source blending behaviour.
2016-10-31 12:37:09 +01:00
JosJuice d80086adf5 Add debug i18n comments and revise existing i18n comments 2016-10-30 16:37:29 +01:00
Chris Pritchard 9da9ba616b Use the IOHIDElement cookie as a part of the axis name for unknown axis. Previously the 'usage' value was used to identify the axis by name, but this is not unique. For example on a PS3 controller *all* axis other than the well known ones return a usage of '1' so there are 30 or more axis all named "1". This stops things such as analog triggers being usable.
Using the element cookie uniquely identifies each axis and allows them to be assigned successfully as controls
2016-10-30 10:36:53 +00:00
Jules Blok d0e60492cf PixelShaderGen: Don't use a global variable. 2016-10-30 00:48:02 +02:00
Jules Blok d778400133 DriverDetails: Add OS X to the dual-source blending bug. 2016-10-30 00:47:02 +02:00
JosJuice 9950209bbf EXI_DeviceIPL: Unify GetGCTime epoch handling 2016-10-29 18:30:00 +02:00
Jules Blok ce9f717045 OGL: Fall back to the old dual-source blending behaviour. 2016-10-29 18:00:22 +02:00
JosJuice 1081497cad DiscIO/SConfig: Rename GetUniqueID to GetGameID
We call this "game ID" everywhere else, and it's not
actually completely unique.
2016-10-29 15:24:02 +02:00
Mat M 146ee6de91 Merge pull request #4398 from JosJuice/remove-volumecreator-logs
Remove VolumeCreator logs
2016-10-29 09:22:49 -04:00
Markus Wick e7635a0089 Merge pull request #4395 from degasus/master
JitArm64: Implement 4 ppc instructions.
2016-10-29 14:50:18 +02:00
Mat M 1eed48974d Merge pull request #4380 from lioncash/wx-toolbar
DolphinWX: Move toolbar creation to a wxToolBar subclass
2016-10-29 08:28:27 -04:00
degasus 041129fb34 JitArm64: Implement mcrxr. 2016-10-29 13:36:41 +02:00
degasus 293553f317 JitArm64: Implement subfzex. 2016-10-29 13:36:39 +02:00
degasus f1a67bb1a2 JitArm64: Implement divwx 2016-10-29 13:35:23 +02:00
degasus a8b1347ea9 JitArm64: Implement srawx. 2016-10-29 13:34:28 +02:00
JosJuice 8155a253c6 EXI_DeviceIPL: Remove old unused code 2016-10-29 13:14:18 +02:00
JosJuice d6731d34ef Remove VolumeCreator logs
These logs are very rarely useful and cause the issue
https://bugs.dolphin-emu.org/issues/9767
2016-10-29 13:08:24 +02:00
Anthony 41563c55cd Merge pull request #4394 from aldelaro5/fix-focus-detection-linux
Fix window focus detection on Linux (rebase from #3843)
2016-10-29 00:35:18 -05:00
Anthony 26902d89e8 Merge pull request #4377 from aldelaro5/fix-centerPc-on-toggleBreakpoint
Fix unnecessary Center PC calls in the CodeWindow
2016-10-29 00:16:09 -05:00
aldelaro5 63546b4f2e Fix unnecessary Center PC calls in the CodeWindow
This not only fixes a regression where toggling a breakpoint using the CodeWindow would cause a Center PC, but it also removes several redundant JumpToAddress(PC) calls.
2016-10-29 01:08:27 -04:00
aldelaro5 ee201455a8 Move UiHasFocus into DolphinApp
Using a wxEVT_ACTIVATE_APP event.
2016-10-28 20:03:35 -04:00
RenaKunisaki 2005b4430f Fix window focus detection on Linux
On Linux, the FindFocus method from wx simply doesn't work, it would on some environment report that dolphin has the focus while it doesn't have it.  This is why an alternative method has to be used which is to set a focus flag whenever the render frame gets activated.
2016-10-28 18:47:08 -04:00
Léo Lam e89ca79059 Disable Bluetooth descriptor check if adapter is forced
Some adapters don't have the correct interface class, so they are not
recognised as Bluetooth adapters. It seems that apart from hardcoding
VIDs/PIDs (which is how it's done in the Linux kernel, and which I'm
not very fond of), there is no other way to detect if a device is a
Bluetooth adapter or not.

This change makes Dolphin skip the descriptor check when trying to find
a usable adapter for Bluetooth Passthrough if the use of a specific
adapter was forced; it is assumed that the user knows what they are
doing if they hand-edited their config file.

This allows such adapters to be used.
2016-10-28 23:55:43 +02:00
Pringo 15a41a5d83 Change OSD Messages and PanicAlerts to Say "Wii Remote" Instead of "Wiimote" 2016-10-28 14:02:58 -07:00
Jules Blok 476cf3803d Merge pull request #4393 from Armada651/amd-dual-src
DriverDetails: Disable dual-source blending on AMD OGL drivers.
2016-10-28 13:31:03 +02:00
JosJuice a319f8777d DolphinWX: Small debug text fixes 2016-10-28 12:18:32 +02:00
Lioncash 5e8ccb15ff DolphinWX: Move toolbar creation to a wxToolBar subclass 2016-10-27 21:56:08 -04:00
LAGonauta 332e9bd378 Added 32-bit fixed point support to OpenAL backend.
Changed method to detect 32-bit floating point and
32-bit fixed point support.
2016-10-27 18:47:13 -02:00
Jules Blok afe707bc18 DriverDetails: Disable dual-source blending on AMD OGL drivers. 2016-10-27 22:03:25 +02:00
degasus 332d51858a JitArm64: Clean LSL 0.
This is a no-op in the instruction set.
2016-10-27 19:19:06 +02:00
degasus 8ad98d0046 ArmEmitter: Merge AddI2R helpers. 2016-10-27 19:19:06 +02:00
degasus 694e9b4132 JitArm64: ADDI2R optimizations 2. 2016-10-27 19:19:06 +02:00
degasus 1df694626d JitArm64: Optimize addi2r & subi2r. 2016-10-26 21:54:13 +02:00
degasus df250b84cc JitArm64: Avoid MOVI2R is possible.
Just use all kind of ADDI2R, SUBI2R, ...
They have some optimizations internally.
2016-10-26 21:54:09 +02:00
Michael Maltese 04e262513c CMake: build PortAudio as static library
Due to issues raised in #4255.
2016-10-26 11:53:14 -07:00
Pringo 4bd5674b85 Change "Wiimote" to "Wii Remote" in Interface
The usage of "Wii Remote" and "Wiimote" in the interface is inconsistent. "Wiimote" is also not a real word nor is it an official product name. Therefore I have changed instances of "Wiimote" in the UI to instead say "Wii Remote". I also made a couple of minor grammatical changes as well.

This is mostly a resubmission of #4338 but there are some minor other changes as well.
2016-10-25 19:49:41 -07:00
degasus 1a8a25cc93 JitArm64: Drop two DUP() usages.
And replace them with the aarch64 feature FMUL.
This skips one instruction in rarely used PPC instructions.

thx @ HdkR for spotting it.
2016-10-25 22:26:54 +02:00
Jules Blok 9e21ac8607 Merge pull request #4360 from VinDuv/fix-shader-compile
VideoCommon: Fix GetInterpolationQualifier calls
2016-10-25 11:53:20 +02:00
Sintendo f163bd1048 Fix various comment typos 2016-10-24 18:27:49 +02:00
Jules Blok 122ce96ed1 PixelShaderGen: Don't use dual source blend if unsupported. 2016-10-24 00:11:55 +02:00
Jules Blok 5c406b5ef0 PixelShaderGen: Fix implicit type conversions. 2016-10-23 19:54:28 +02:00
Léo Lam 1233697b2f Fix unused function warnings 2016-10-23 00:43:08 +02:00
Léo Lam 68156a02ed Fix -Wunused-result warnings 2016-10-23 00:43:08 +02:00
Léo Lam df76f2910b DVDInterface: Fix warnings (-Wformat) 2016-10-22 19:28:29 +02:00
aldelaro5 edd3177813 Fix a schedule event assert on ClearCacheThreadSafe
I didn't know that telling that you don't schedule from the CPU thread prevents an assert because it by default assumes you use the CPU thread, but in the case of ClearCacheThreadSafe, it's used from the GUI thread.
2016-10-21 20:25:11 -04:00
Jules Blok 2536e37ec5 Merge pull request #4194 from Armada651/efb-source-format
PixelShaderGen: Add support for RGBA6 EFB format truncation.
2016-10-21 21:45:29 +00:00
JosJuice 2fc2baf376 Merge pull request #4369 from lioncash/config
DolphinWX: Minor include changes to config panes/dialogs
2016-10-21 22:04:09 +02:00
JosJuice a2644cd102 Merge pull request #4363 from lioncash/wx-menu
DolphinWX: Move main menu creation into a wxMenuBar subclass
2016-10-21 21:44:56 +02:00
Lioncash 855061682e GameCubeConfigPane: Add forward declaration for TEXIDevices 2016-10-20 10:42:32 -04:00
Lioncash 934b32acfb GeneralConfigPane: Add <vector> include
Ensures the class member is always resolved correctly.
2016-10-20 10:16:49 -04:00
Lioncash 2bd7f7f0d8 AdvancedConfigPane: Add necessary includes to header
time_t is defined in ctime, and u32 is defined in CommonTypes.
2016-10-20 10:14:26 -04:00
Lioncash 24cf46aa5a GCAdapterConfigDiag: Cull includes in header file
Prevents dragging in unnecessary headers into other including files.
2016-10-20 10:09:19 -04:00
Lioncash 42e1dafd6d Frame: Rename GetCmdForHotkey to GetMenuIDFromHotkey
This more accurately describes what it's actually doing. This can also be
a local function, since it's not needed anywhere else.
2016-10-20 09:54:39 -04:00
Lioncash f871b2177e DolphinWX: Move main menu creation into a wxMenuBar subclass
Keeps the actual GUI elements separate from the frame code.
2016-10-20 09:54:29 -04:00
JosJuice c170f0b460 Movie: Add missing calls to UpdateWantDeterminism
Fixes https://bugs.dolphin-emu.org/issues/9681
2016-10-20 14:47:45 +02:00
JosJuice ae2cf370e1 Movie: Add missing includes 2016-10-20 14:22:42 +02:00
shuffle2 43169d897f Merge pull request #4354 from sepalani/bp_rmtmp_it
BreakPoints: ClearAllTemporary uses valid iterators
2016-10-17 14:14:10 -07:00
JosJuice 7876430a71 Merge pull request #4120 from JosJuice/dvdthread-queue
DVDThread queue
2016-10-16 14:48:06 +02:00
Vincent Duvert 8bb459aae5 VideoCommon: Fix GetInterpolationQualifier calls
Commit 4969415 modified calls to GetInterpolationQualifier, but mistakenly changed the order of some boolean parameters: GetInterpolationQualifier(true, false) was changed to GetInterpolationQualifier(…, false, true).

Should fix #9783.
2016-10-16 12:48:32 +02:00
shuffle2 ad956559d5 Merge pull request #4336 from ligfx/smarteraudioconfigpane
AudioConfigPane/AudioCommon: various GUI cleanups
2016-10-15 22:56:05 -07:00
shuffle2 e30d31aa66 Merge pull request #4334 from ligfx/fixcontrollerdialog
InputConfigDialog: use SelectObjectAsSource in UpdateBitmaps
2016-10-15 22:45:27 -07:00
shuffle2 472d5078e6 Merge pull request #4351 from leoetlino/no-idea-device
IPC_HLE: Remove unused _Unimplemented_Device_ device
2016-10-15 22:35:10 -07:00
shuffle2 1e9f052ea5 Merge pull request #4357 from ligfx/notresponsibleforhw
HW: Don't be responsible for g_controller_interface
2016-10-15 22:18:20 -07:00
shuffle2 ce5c8c28b2 Merge pull request #4302 from leoetlino/graceful-fixes
Minor fixes to graceful shutdown
2016-10-15 21:47:07 -07:00
shuffle2 d2d4edf964 Merge pull request #4352 from lioncash/fwd
NANDContentLoader: Add IOFile forward declaration
2016-10-15 16:38:58 -07:00
Michael Maltese a082e9324f HW: Don't be responsible for g_controller_interface
Currently, `g_controller_interface` is initialized and shut down by each
of `GCKeyboard`, `GCPad`, `Wiimote`, and `HotkeyManager`.

This 1) is weird conceptually, because it necessitates passing a pointer
to the native window to each of those classes, which don't need it, and
2) can cause issues when controller backends are initialized or shutdown
multiple times in succession.
2016-10-15 16:37:39 -07:00
Léo Lam a0a246bf3e Only attempt a graceful shutdown when there's a STM hook
For Wii graceful shutdown to work, the emulated software has to open
the STM event hook and install a hook. Without this, there is no way
to inform them about the shutdown, so trying to do a graceful shutdown
and requiring the use of the shutdown fallback (exiting a second time
to force) is pointless.
2016-10-15 22:28:07 +02:00
Léo Lam 48ff76d495 DolphinWX: Update GUI properly after unpausing
If an unpause was forced by the graceful shutdown code, the UI was
previously not updated.
2016-10-15 21:58:55 +02:00
Léo Lam fa009ab6f6 DolphinWX: Exit after closing main window or on signal
Previously Dolphin would only exit if the main window is closed,
and Confirm on Stop is enabled.

This makes Dolphin's behaviour more consistent by always exiting
if the main window is closed or on shutdown signal.
2016-10-15 21:58:55 +02:00
Sepalani 771fa943dc BreakPoints: ClearAllTemporary uses valid iterators 2016-10-15 19:21:41 +01:00
JosJuice a6bb1b642a DVDInterface: Better memory locality for DTK byteswapping 2016-10-15 15:28:23 +02:00
JosJuice e1f6ab5592 DVDThread: Remove s_dvd_thread_done_working and fix race condition
s_dvd_thread_done_working makes the logic more complicated,
and degasus pointed out a race condition that can happen if
the CPU thread calls WaitForIdle right in between the DVD
thread executing done_working.Set() and done_working.Reset()
while there is work left to do. To avoid this, let's just get
rid of s_dvd_thread_done_working. It's a relic from the old
DVDThread design. Thanks to the last few commits, WaitUntilIdle
only gets called rarely (disc change and savestate), so it's
not a problem if WaitUntilIdle ends up being slower.
2016-10-15 15:28:15 +02:00
JosJuice f1879cc356 DVDInterface: Reorder variables
Might as well do this while I'm already breaking
savestate compatibility.
2016-10-15 15:28:11 +02:00
JosJuice 98fb037dee DVDInterface: Handle DTK beyond 4 GiB
Might as well do this while I'm already breaking
savestate compatibility.
2016-10-15 15:28:06 +02:00
JosJuice a450e33fb3 DVDInterface: Read DTK data in DVDThread 2016-10-15 15:28:02 +02:00
JosJuice 28bfd52d3a DVDInterface: Prepare for reading DTK data in DVDThread 2016-10-15 15:27:54 +02:00
JosJuice aabb17b7c9 DVDThread: Use queues
This makes it possible to submit a read without waiting for
the previous read to finish.
2016-10-15 15:27:16 +02:00
degasus 1cc1876002 Revert "Merge pull request #4286 from shuffle2/Aestek-clean-osd"
This reverts commit 5c0fa4db4f, reversing
changes made to b8731eb818.
2016-10-15 12:44:37 +02:00
degasus b8a1611f4a Revert "Merge pull request #4287 from shuffle2/typo-fix"
This reverts commit 6bff97ea30, reversing
changes made to 5c0fa4db4f.
2016-10-15 12:33:27 +02:00
JosJuice a2f352c422 DVDThread: Use structs for requests and results
This is a preparation for adding a queue to DVDThread.
Currently, s_read_request and s_read_result act somewhat like
queues that only can contain one object.
2016-10-15 11:32:11 +02:00
Lioncash d9eb7c4e80 NANDContentLoader: Add IOFile forward declaration
This would previously fail to compile when included in files that do not
include FileUtil.h due to lack of a type declaration.

This moves the constructor and destructor into the cpp file in order to
satisfy the requirements of unique_ptr construction and deletion. That is,
unique_ptr requires a concrete type at the point of construction and
destruction. If the constructor or destructor is left in the header, then
at the point of construction or destruction, IOFile will still be
considered an incomplete type, as unique_ptr's deleter will still only be
able to see the forward declaration, which it can't use.
2016-10-14 20:27:22 -04:00
Léo Lam 8e78477631 IPC_HLE: Remove unused _Unimplemented_Device_ device
Unless I'm misreading the code, it doesn't look like this serves any
purpose, and is only polluting the logs.

_Unimplemented_Device_ looked like a device name that was picked to
be used somewhere else in Dolphin, but this doesn't seem to be the case
since 2012 (d95e31a removed the only other usage of this fake device).
2016-10-14 23:27:55 +02:00
Markus Wick 183f3c3759 Merge pull request #4332 from leoetlino/sync-sysconf-on-exit
ConfigManager: Sync Dolphin settings to SYSCONF on exit
2016-10-14 09:57:10 +02:00
shuffle2 3a52885e7a Merge pull request #4349 from container1234/bba
EXI: Fix incorrect byte order when writing 3-byte data to BBA_WRTXFIFOD
2016-10-13 15:59:31 -07:00
Mat M 14facbc438 Merge pull request #4339 from lioncash/wx-menu
DolphinWX: Move debugger menu item creation to CFrame
2016-10-13 15:45:20 -04:00
container1234 5716d2bc0e Fix incorrect byte order when writing 3byte data to BBA_WRTXFIFOD 2016-10-13 23:33:17 +09:00
Markus Wick 5541237b74 Merge pull request #4346 from degasus/framedump_sw
VideoSW: Use VideoCommon frame dumping.
2016-10-13 16:05:08 +02:00
Mat M b15bcc6aa0 Merge pull request #4341 from degasus/syncgpufix
SyncGPU: Fix savestate.
2016-10-12 07:23:38 -04:00
degasus df5eff9ab7 VideoSW: Use VideoCommon frame dumping. 2016-10-11 22:32:06 +02:00
Markus Wick 7d5363ffa8 Merge pull request #4337 from degasus/framedump
AVIDump: Move CoreTiming into caller.
2016-10-11 22:25:28 +02:00
Rohit Nirmal dc1b35fa4b Fix building with PCH disabled. 2016-10-11 14:25:14 -05:00
degasus 22681ad975 SyncGPU: Fix savestate. 2016-10-11 18:29:53 +02:00
Lioncash 6a67b571cc DolphinWX: Move creation of debugger menu items into CFrame
Unifies the creation of all the menus into the main frame class.
Now it isn't spread out across the main frame and the code window.

This doesn't alter the placement of the handling functions, as this would
involve unrelated changes, since it would require modifying where
window-related variables are placed. This will be amended in a follow up
changeset.
2016-10-10 19:53:33 -04:00
Lioncash 6420a1c715 Frame: Separate menu creation into individual functions
Keeps related menu items together based on top level menu. This will be
more convenient in the future when debugger menu bar item handling is
moved to CFrame, as it won't be a huge amount of code in one function.

This also makes it easier to locate menu bar code whenever it needs to be
changed.
2016-10-10 16:45:31 -04:00
Jules Blok ab5054c34e VideoBackends: Always enable dual-source blending if supported. 2016-10-10 17:32:51 +02:00
Jules Blok 93109df654 PixelShaderGen: Use dual source blending to do 8-bit blending. 2016-10-10 15:34:55 +02:00
Jules Blok d61ae5a88a PixelShaderGen: Only set dither uid bit if actually used. 2016-10-10 14:32:21 +02:00
Jules Blok 23d9d91411 VideoConfigDiag: True color means 24-bit, not hw color. 2016-10-10 14:32:21 +02:00
Jules Blok e8cddae132 VideoConfig: Turn on ForceTrueColor by default. 2016-10-10 14:31:53 +02:00
Jules Blok 365e88e311 VideoConfig: Add an option to force RGB8 EFB format. 2016-10-10 14:31:53 +02:00
Jules Blok 31a4ee7bfc PixelShaderGen: Always truncate the alpha channel to 6-bit. 2016-10-10 14:30:14 +02:00
Jules Blok 9bc466a443 PixelShaderGen: Add support for dithering. 2016-10-10 14:30:14 +02:00
Jules Blok b958457e51 PixelShaderGen: Add support for RGBA6 EFB format truncation. 2016-10-10 14:27:30 +02:00
degasus 9f264c0872 AVIDump: Move CoreTiming into caller. 2016-10-10 12:03:18 +02:00
Markus Wick a583d36c7f Merge pull request #4326 from degasus/framedump
Framedump: Merge screenshot code with framedumping.
2016-10-10 11:48:57 +02:00
Michael Maltese c253076564 AudioConfigPane: clang-format 2016-10-09 19:34:11 -07:00
Michael Maltese 78655e5fed AudioConfigPane: gray-out extra text for disabled controls 2016-10-09 19:33:50 -07:00
Michael Maltese a0ebafe9a9 AudioConfigPane: move DPL2 decoding into 'Backend Settings' 2016-10-09 19:22:18 -07:00
Michael Maltese 45903b7b4d AudioCommon: SupportsDPL2Decoder, SupportsLatencyControl, SupportsVolumeChanges 2016-10-09 19:18:16 -07:00
Michael Maltese 4834a90e63 AudioConfigPane: dedupe code into ToggleBackendSpecificControls 2016-10-09 19:10:24 -07:00
Michael Maltese 6b2f6e3884 InputConfigDialog: use SelectObjectAsSource in UpdateBitmaps
Fixes issue [Configuring an Emulated Wiimote crashes the application on
OS X 10.12 Sierra][1]

[1]: https://bugs.dolphin-emu.org/issues/9832
2016-10-09 15:31:42 -07:00
Léo Lam 8a0b292f07 ConfigManager: Sync Dolphin settings to SYSCONF on exit
4319 made Dolphin not read/write directly to the SYSCONF and read
settings from the SYSCONF at boot, and only write Dolphin settings
to the SYSCONF at emulation startup.

However, this also made it a bit confusing, because if settings were
changed, then Dolphin was exited without starting a game in between,
the settings wouldn't actually get persisted. This is fixed by
syncing Dolphin settings with the SYSCONF when Dolphin exits.
2016-10-09 17:15:24 +02:00
shuffle2 c8cb1fa7d7 Merge pull request #4319 from leoetlino/sysconf
Don't read/store settings directly from/to SYSCONF (and fix config restore)
2016-10-09 02:34:52 -07:00
shuffle2 3ec91a4e33 Merge pull request #4330 from ligfx/no_vulkan_on_mac
Don't build Vulkan video backend on macOS
2016-10-08 20:58:18 -07:00
Helios747 7efb272629 [UI] Remove idle skipping from game properties 2016-10-08 18:16:15 -05:00
shuffle2 23b5a41e0e Merge pull request #4313 from lioncash/u8
HW: Change u8 pad specifier params to int where applicable
2016-10-08 14:10:10 -07:00
Markus Wick a86b2c15d8 Merge pull request #4322 from Helios747/I_hate_features
Remove Frameskip
2016-10-08 21:41:43 +02:00
degasus 64927a2f81 Renderer: Merge screenshot logic into VideoCommon. 2016-10-08 19:38:57 +02:00
anthony b427ead0cc Remove Frameskip 2016-10-08 11:49:51 -05:00
degasus 21e42c68c4 Renderer: Remove write-only variable.
Sorry, merge failure.
2016-10-08 18:26:43 +02:00
degasus db0509560e AVIDump: Hard code rgba. 2016-10-08 18:16:32 +02:00
degasus 0864ef4352 VideoCommon: Add custom stride for framedumping. 2016-10-08 15:44:54 +02:00
degasus 1ef5ba0c53 D3D: Skip redundant format convertions. 2016-10-08 15:40:49 +02:00
degasus b5a91e1dfa Framedumps: Add finish() function to limit memory lifetime. 2016-10-08 15:39:22 +02:00
degasus ebc617882b VideoCommon: Drop RepeatFrameDumpFrame helper.
This was needed with fixed framerate dumping. As we now synchronize the frames, the last one will just get padded.
2016-10-08 15:39:21 +02:00
Léo Lam afd2f58e29 Don't read/store settings directly from/to SYSCONF
Instead of directly reading/storing settings from/to the SYSCONF, we
now store Wii settings to Dolphin's own configuration, and apply them
on boot. This prevents issues with settings not being saved, being
overridden and lost (if the user opens a dialog that writes to the
SYSCONF while a game is running).

This also fixes restoring settings from the config cache after a
graceful shutdown; for some reason, settings were only restored
after a normal shutdown.

Fixes issue 9825 and 9826
2016-10-08 14:37:55 +02:00
Markus Wick b0acf1bf8f Merge pull request #4323 from degasus/png
ImageWriter: Don't use inplace alpha truncation.
2016-10-08 12:10:40 +02:00
degasus d078309827 ImageWriter: Don't use inplace alpha truncation.
This may lead to errors in the D3D backend, as we overwrite read-only memory.
2016-10-08 12:02:49 +02:00
Markus Wick 6e8901de17 Merge pull request #4315 from stenzek/vulkan-aspect
Vulkan: Handle forced aspect ratio changes at runtime
2016-10-08 11:53:22 +02:00
Stenzek 176b00ded7 Vulkan: Handle forced aspect ratio changes at runtime 2016-10-08 18:59:46 +10:00
Markus Wick 0e5fc56bc9 Merge pull request #4316 from lioncash/debug
DebugInterface: Make GetRawMemoryString return a std::string
2016-10-08 10:48:45 +02:00
Markus Wick 1a2d71cb58 Merge pull request #4310 from lioncash/dsptable
DSPRegisterView: Minor changes
2016-10-08 10:40:14 +02:00
Markus Wick 4ba1100f31 Merge pull request #4269 from degasus/singlecore
Fifo: Fix SyncGPU on dual core mode.
2016-10-08 01:26:34 +02:00
Léo Lam 39fd6dcd5b Fix missing includes
Aren't indirect includes great?
2016-10-07 23:46:41 +02:00
degasus 8c999f9ee8 VideoCommon: Mark framedump variables as private.
And rename them to the new naming scheme.
2016-10-07 23:17:21 +02:00
degasus e82cf46436 Vulkan: Use VideoCommon framedump helpers. 2016-10-07 23:17:16 +02:00
degasus 6b08830a95 D3D12: Use VideoCommon framedump helpers. 2016-10-07 23:15:10 +02:00
degasus 64b648f6c8 D3D: Use VideoCommon framedumping helpers. 2016-10-07 23:10:36 +02:00
degasus a530708bb1 OGL: Use VideoCommon framedump helpers. 2016-10-07 23:09:10 +02:00
degasus f45ddddf1c VideoCommon: Add shared framedumping code. 2016-10-07 23:07:40 +02:00
degasus 34d733d376 OGL/Render: Drop write-only variable. 2016-10-07 21:44:52 +02:00
Markus Wick 5e027a0817 Merge pull request #4314 from lioncash/dsp-interface
DSPEmulator: Move common variable into base class
2016-10-07 18:27:09 +02:00
Lioncash ee71d70738 DebugInterface: Make GetRawMemoryString return a std::string 2016-10-07 10:26:26 -04:00
Lioncash 8b29b09f24 DSPLLE: in-class initialize variables 2016-10-07 09:13:56 -04:00
Lioncash aaa1da5abc DSPEmulator: Move common variable into base class 2016-10-07 08:55:54 -04:00
Lioncash 9cab4e414c HW: Change u8 pad specifier params to int where applicable
Using u8 as indexers is kind of silly, since the rest of the public API
essentially uses int for this sort of thing. Changing these to int also
gets rid of quite a few implicit truncations.

This also allows for getting rid of similar silliness in the netplay API.
2016-10-07 08:14:12 -04:00
Michael Maltese f301ebf780 Don't build Vulkan video backend on macOS
There's no official implementation of the Vulkan API,
and Dolphin currently isn't set-up to work with the
single, commercially-available third-party implementation.
2016-10-06 16:53:55 -07:00
Markus Wick 3245ca236a Merge pull request #4307 from stenzek/vulkan-palette-srcformat
Vulkan: Use correct source format to determine palette size
2016-10-06 21:29:28 +02:00
Markus Wick ff1d70d708 Merge pull request #4308 from aldelaro5/memcheck-gui-relabel
Label debugger memchecks as "Memory Breakpoints" in the GUI
2016-10-06 21:29:14 +02:00
Lioncash 2ba0d6eb77 DSPRegisterView: Get rid of magic numbers 2016-10-06 13:02:49 -04:00
Lioncash 5dedd0a85b DSPRegisterView: Make DSPRegisterView's constructor explicit 2016-10-06 12:36:32 -04:00
Lioncash 2781ae5af1 DSPRegisterView: Mark classes as final
These aren't intended to be extended upon.
2016-10-06 12:35:31 -04:00
Lioncash 66fd347d2e DSPRegisterView: Move private members below public API 2016-10-06 12:29:37 -04:00
Lioncash f935485158 DSPRegisterView: Get rid of explicit memsets 2016-10-06 12:29:32 -04:00
aldelaro5 549060c5b4 Label debugger memchecks as "Memory Breakpoints" in the GUI
This is done to remove confusions among potential debugger users and to also make it more accurately tell what this feature is actually doing.  Despite being true that it is using a memcheck (and it certianly checks that memory), the idea being to break on a memory access isn't really obvious especially considering that memchecks are also used in full MMU emulation to handle exceptions.  It also doesn't help that memchecks are now supported in every builds.

It also changes the corresponding log because this log would be wanted by the user which means it should be more obvious that it was caused by the "memory breakpoint".
2016-10-06 10:51:43 -04:00
Stenzek 010514bd39 Vulkan: Use correct source format to determine palette size
Fixes blur in fortune street fifologs.
2016-10-06 21:55:27 +10:00
Markus Wick 3c822f2c55 Merge pull request #4304 from stenzek/pool-reuse
TextureCache: Don't re-use pooled textures within the same frame
2016-10-06 12:27:23 +02:00
Stenzek b6d09c61ed TextureCache: Don't re-use pooled textures within the same frame
This is an issue because a driver may have to maintain two copies of a
texture if it batches all uploads together at the start of a frame.

In the Vulkan backend, we do something similar to avoid breaking out of a
render pass to copy a texture from the streaming buffer to the destination
image.

This was causing issues in the sms-bubbles fifolog, where an EFB copy to
the same address of a previously-used texture caused the previous texture
to be re-used again for a different image later on in the frame, causing
the original contents to be discarded.
2016-10-06 20:23:37 +10:00
Markus Wick 062de51d70 Merge pull request #4305 from stenzek/vulkan-framedump-fix
Vulkan: Fix minor issues with frame dumping on Vulkan
2016-10-06 10:58:45 +02:00
Sepalani aa63253838 HLE: Logs nlPrintf calls 2016-10-05 19:15:26 +01:00
Stenzek b39ac950eb Vulkan: Don't save borders to screenshots/frame dumps
This matches the behavior on GL, making for easier comparisons.
2016-10-05 22:28:51 +10:00
Stenzek 400ba3c7e5 Vulkan: Stop dumping frames on shutdown if left enabled 2016-10-05 22:28:51 +10:00
Stenzek c422fb7e82 Vulkan: Set alpha channel of swap chain buffers to 1.0.
Copying the alpha channel from the game causes issues with frame dumping,
since we're using a buffer directly from the GPU as a source for AVIDump.
2016-10-05 22:02:04 +10:00
Stenzek abb5a64919 Merge pull request #4295 from stenzek/vulkan-dbz-bloom
Vulkan: Fix bug with palette converted EFB copies
2016-10-05 20:24:36 +10:00
Markus Wick ef1bfc26b2 Merge pull request #4291 from degasus/shader_gen
PixelShaderGen: Fix UID issues.
2016-10-05 12:20:58 +02:00
shuffle2 22d9259926 Merge pull request #4180 from LAGonauta/oal-warning-fix
Fix for false error about unqueuing buffers (OpenAL)
2016-10-04 19:41:01 -07:00
shuffle2 f7e25483e6 Merge pull request #4293 from lioncash/pcast
CommonFuncs: Get rid of pointer casting
2016-10-04 19:10:34 -07:00
LAGonauta d4759a55b6 Fix for false error about unqueuing buffers (OpenAL)
and hopefully added saner error reporting.
2016-10-04 21:57:36 -03:00
shuffle2 d1df222367 Merge pull request #4297 from sepalani/hle_patch
HLE: Remove duplicate in OSPatches
2016-10-04 17:39:50 -07:00
shuffle2 5d3853d854 Merge pull request #4288 from aldelaro5/reduce-logged-filename
Reduce the filepath of logs
2016-10-04 17:39:25 -07:00
shuffle2 71aa243333 Merge pull request #4298 from sepalani/hle_bp
HLE: Wrong array used in BP patching fixed
2016-10-04 17:38:06 -07:00
shuffle2 44323c5c23 Merge pull request #4301 from sepalani/hle_log
HLE: Another DebugPrint case added
2016-10-04 17:35:24 -07:00
shuffle2 50fef592d7 Merge pull request #4296 from RisingFog/fix_frame_dump
Fix frame dumps on file close in certain situations
2016-10-04 17:25:40 -07:00
shuffle2 9be6f38988 Merge pull request #4292 from shuffle2/fix-saving-log-settings
Restore saving logger settings to .ini
2016-10-04 17:16:51 -07:00
Sepalani 58f5cd944c HLE: Another DebugPrint case added 2016-10-04 21:40:43 +01:00
aldelaro5 6ee799ba7c Reduces the the filename of logs
Using cmake and GCC, logs would contain the full file path when logging making logs lines unnecessarily long.  This is solved by just removing anything before "/Source/Core/" (where / is whatever your OS uses to separated directory).
2016-10-04 16:34:26 -04:00
Sepalani 6e8c5040df HLE: Wrong array used in BP patching fixed 2016-10-04 16:47:06 +01:00
Sepalani 61580b0dec HLE: Remove duplicate in OSPatches 2016-10-04 16:33:47 +01:00
Chris Burgener 43c48a6f48 Fix frame dumps on file close in certain situations 2016-10-04 09:26:23 -04:00
Stenzek db09c05eec Vulkan: Fix bug with palette converted EFB copies
This happened when the source texture was an EFB copy, therefore it had
not been populated prior to the draw command buffer being executed, and
the conversion was occurring in the init command list.
2016-10-04 22:30:37 +10:00
Shawn Hoffman 55af20a439 Remove '\n' from OSD messages; they would be converted to '?' 2016-10-04 03:52:13 -07:00
Lioncash d15d99ecc2 CommonFuncs: Get rid of pointer casting 2016-10-04 05:12:23 -04:00
Shawn Hoffman 7de9ff10a8 Restore saving logger settings to .ini 2016-10-04 02:02:07 -07:00
shuffle2 ea33405feb Merge pull request #4270 from stenzek/vulkan-defer-fix
Vulkan: Miscellaneous minor fixes
2016-10-04 01:47:59 -07:00
EmptyChaos 116348a877 WxDebugger: Move branch line indent 2016-10-04 19:28:01 +11:00
EmptyChaos 94aff7e47e WxDebugger: Fix variable width fonts in Code/Memory views 2016-10-04 19:17:47 +11:00
degasus 6d2827ff6b PixelShader: Drop redundant warning.
This warning was raised both on UID generation and on shader generation.
2016-10-04 10:13:46 +02:00
degasus 083be0832f LightingShader: Drop xfmem usage.
Our shaders must only depend on the UID, not on any global state.
2016-10-04 10:13:46 +02:00
degasus 829fc8f0ad PixelShaderGen: Drop dstAlphaMode constant in shader generation.
It is already stored within the UID.
2016-10-04 10:13:46 +02:00
Shawn Hoffman fead9a05bc Fix static_assert raised by commit 789975e350 2016-10-04 00:56:02 -07:00
shuffle2 ab01dec178 Merge pull request #3806 from degasus/idle
ConfigManager: Drop SkipIdle option.
2016-10-03 23:59:38 -07:00
Markus Wick cf3513f7fc Merge pull request #4123 from hthh/improve-const-stores
Jit: FIFO optimization improvements
2016-10-04 08:32:48 +02:00
degasus 40aa54447d Jit64: Drop very outdated comment about idle skipping. 2016-10-04 08:31:43 +02:00
degasus 0c67297ea0 ConfigManager: Drop SkipIdle option.
This option is safe + deterministic, so let's always enable it.
2016-10-04 08:31:43 +02:00
Shawn Hoffman c11aba296c Follow-up for OSD cleanup:
people probably want to see decimal instead of hex...
2016-10-03 20:42:04 -07:00
shuffle2 5c0fa4db4f Merge pull request #4286 from shuffle2/Aestek-clean-osd
Clean OSD messages code
2016-10-03 20:09:35 -07:00
EmptyChaos c4f5ced37c WX: Replace SetIcon with SetIcons(wxIconBundle)
Setting a single icon at a single resolution doesn't scale well,
Windows requires a 16x16 icon for the window and a 32x32/48x48 for
the taskbar. Providing all icons produces less pixellated results at
HiDPI.
2016-10-04 13:47:22 +11:00
EmptyChaos 27d295ec7e WX: HiDPI: FrameAUI / Debugger
Changes:
  - MemoryWindow was cleaned up and gives more feedback on searches.

Some bugs were fixed as well:
  - A complex bug that allowed tearing off tabs and opening multiple
    copies of a debug panel which lead to segfaults
  - Another segfault related to right-click menus on code/memory views
    when those tools were floating in their own window.
2016-10-04 13:47:22 +11:00
EmptyChaos f39c301579 WX: HiDPI: NetPlay
Several refactors of GUI creation into separate functions where the
function was too large or intermixed different concerns making it hard
to modify.
2016-10-04 13:47:22 +11:00
EmptyChaos ef0d21299a WX: HiDPI: VideoConfigDiag
Resolved "TODO" for Texture Cache safety, added explanation message.
Resolved "TODO" for default description, no longer uses default text for sizing

Fixed a memory leak in PostProcessingConfigDiag where it was never freeing any
of the objects it allocated in its constructor.

Minor design change to PostProcessingConfigDiag to give padding around elements
consistent with the rest of Dolphin's user interface (5px).
2016-10-04 13:47:22 +11:00
EmptyChaos 2dfd04d7a5 WX: HiDPI: TASInputDlg 2016-10-04 13:47:22 +11:00
EmptyChaos ac404517a3 WX: HiDPI: InputConfigDiag
Slight redesign of Control Configuration sub-window since SL_LABELS can't be
used with DolphinSlider.
2016-10-04 13:47:22 +11:00
EmptyChaos 741dfce05e WX: HiDPI: ControllerConfigDiag
Minor appearance change to align wiimote and gamecube sections.
2016-10-04 13:47:22 +11:00
EmptyChaos a4d633de15 WX: HiDPI: Config Panes 2016-10-04 13:47:22 +11:00
EmptyChaos c893447913 WX: HiDPI: CheatsWindow
Changed the Cheat Search tab to disable the scan buttons while there is
not a game running and enable when it starts. Also added double-click to
create code to the result list.
2016-10-04 13:47:22 +11:00
EmptyChaos 8fe94c3c50 WX: HiDPI: FifoPlayerDlg 2016-10-04 13:47:22 +11:00
EmptyChaos b6fb56e978 WX: HiDPI: MemcardManager
Required a partial rewrite of the image loading code because it was working in
unscaled wxBitmaps. Needed to make it produce wxImages and scale them instead.
2016-10-04 13:47:21 +11:00
EmptyChaos 3b11581aff WX: HiDPI: ISOProperties
And related ARCodeAddEdit/PatchAddEdit.

Change ISOFile to use wxImage instead of wxBitmap since bitmaps require
a screen context and banner images have a fixed resolution.
2016-10-04 13:47:21 +11:00
EmptyChaos 42b6ea4c81 WX: HiDPI: AboutDolphin 2016-10-04 13:47:21 +11:00
EmptyChaos 107d4afb08 WX: HiDPI: Dolphin Main UI (CFrame) 2016-10-04 13:47:21 +11:00
EmptyChaos 73a20551df WX: HiDPI Support Framework
Portable flexible HiDPI image loading and other support for Windows/GTK/OSX.
2016-10-04 13:47:21 +11:00
Shawn Hoffman fa5fa8e094 Clean OSD messages code
Some OSD messages were displayed in RenderBase.cpp using global variables and some code duplicated
in OnScreeDisplay.cpp.
Now all messages are displayed using functions in the OSD namepace.

* OSDChoice and OSDTime global variables are gone
* All OSD logic is kept at the same place
* All messages are properly aligned
* Clean characters for all OSD messages

Original commit:

commit f0ec61c057
Author: Aestek <thib.gilles@gmail.com>
Date:   Sun Aug 7 16:08:41 2016 +0200
2016-10-03 19:37:18 -07:00
shuffle2 4573cc89fa Merge pull request #4285 from RisingFog/its_a_curse_to_recurse
Fix frame dump crash when resolution changes
2016-10-03 18:49:44 -07:00
Chris Burgener 55478af832 Fix frame dump crash when resolution changes 2016-10-03 19:50:35 -04:00
Shawn Hoffman 2b0f7d2669 Re-add saving position of netplay window. 2016-10-03 15:57:32 -07:00
Shawn Hoffman 41e7c43d0d NetPlay: add one click host
Add a context menu entry in main game list to host a netplay game
based on saved settings.

Original commit:
commit 91aaa958e6
Author: Aestek <thib.gilles@gmail.com>
Date:   Sun Jul 24 14:51:37 2016 +0200
2016-10-03 15:34:49 -07:00
shuffle2 46b6a32b46 Merge pull request #4281 from shuffle2/Tilka-jit_bitwise
Jit64: use domain-appropriate instructions
2016-10-03 15:05:33 -07:00
Léo Lam 6fba48cd15 MemoryView: Don't segfault if Core isn't running
There was a bug that caused MemoryView to indirectly cause a segfault;
the simplest way to reproduce it is 1) start a game; 2) stop the game;
3) click on the Refresh button and watch Dolphin segfault.

This commit fixes it by only calling PowerPC::HostIsRAMAddress when
emulation is running.
2016-10-03 23:45:02 +02:00
Léo Lam 6ff06ed41d WII_IPC_HLE: Clean up variable naming
It doesn't make much sense to prefix g_ to static variables and for
some to be completely unprefixed.

Also renames a lot of other variables for the new conventions
2016-10-03 23:13:10 +02:00
Léo Lam 8912bb3ff4 Back up part of SYSCONF when switching to emulated BT
This fixes an issue where the Bluetooth info section could be fully
filled up by syncing 5 Wiimotes in passthrough mode then switching to
emulated Bluetooth; emulated Wiimotes were then unable to be used.

The "real" SYSCONF section is now backed up before being replaced with
a blank section that the emulated BT adapter can always fill with 5
Wiimotes without issues.

This backup is restored by the passthrough code, instead of during
the Bluetooth mode switch because this should be done regardless of the
user interface, and even without UI (if the config file is edited
manually).
2016-10-03 23:13:09 +02:00
Léo Lam b91095a9fc IPC_HLE/57e_305: Fake vendor-specific command replies
Homebrew programs seem to rely on getting a reply to the vendor
specific commands, without which Bluetooth initialisation will never
complete.

This vendor-specific command is typically used to patch the Wii's
Bluetooth module, so the replies are only faked when the passed through
adapter is not a Wii Bluetooth module.
2016-10-03 23:13:09 +02:00
Léo Lam 5b50b1e1aa WII_IPC_HLE/57e_305: Store link keys
This stores the address of paired devices and associated link keys.
It is needed because some adapters forget all stored link keys when
they are reset, which breaks pairings because the Wii relies on the
Bluetooth module to remember them.

It doesn't fix adapters that can't remember any link key
at all and always return 0 for the number of stored/written link keys.
For those adapters, there is no fix.

This also improves the usability of passthrough mode for adapters that
already work, since pairings will now keep working even if the link
keys get cleared by something else (for example by the host Bluetooth
stack).
2016-10-03 23:13:09 +02:00
Léo Lam e63b07f73b ControllerConfigDiag: Improve the UI
The ControllerConfigDiag design was getting confusing, so more
significant changes needed to be done.

Firstly, the GC controller and the Wiimote section layouts have been
aligned for consistency.

The Balance Board source chooser is a checkbox.

The "general settings" that affect the SYSCONF have been moved to the
Wii pane in the Config dialog. It makes more sense because those
affect the Wii's settings in the NAND, unlike the other options.

Another reason for moving it is that the Controller Config Dialog was
getting pretty crowded, and the whole section is disabled when
emulation is running, which is wasted space.

The Wiimotes section is now organised by two radio buttons. One is for
the Passthrough Mode, with sync/reset buttons under it; the other is
the emulated Bluetooth mode, which still has the regular Wiimote source
choosers, the Continuous Scanning controls and the Enable Speaker Data
option (which only applies to the emulated BT mode).

Hopefully this should make things a bit clearer and look cleaner.

(This is a monolithic commit because separating UI changes is hard)
2016-10-03 23:13:09 +02:00
Léo Lam 419a9c55e4 WII_IPC_HLE/57e_305: Fake CommandReadBufferSize replies
Apparently, Nintendo's Bluetooth stack expects the ACL packet buffer
size to be limited to 10.

Reporting anything higher than that could cause memory corruption,
which can result in warning messages in the logs ("event mismatch"),
and more annoyingly, random disconnects.

Thanks to shuffle2 for the fix!
2016-10-03 23:06:23 +02:00
Léo Lam 4b47997cf8 Add ability to passthrough a Bluetooth adapter
This adds the ability to passthrough a whole Bluetooth adapter and skip
the majority of the Bluetooth emulation code. We use libusb to send HCI
commands, receive HCI events and transfer ACL data directly to the
first adapter that is found or to a specific adapter (if configured to)

This is possible because the Wii's Bluetooth module is actually just
a pretty standard Bluetooth adapter…

…except for two vendor-specific commands, for which replies are faked,
and also for the sync button. This adds a hotkey that works in the
exact same way as the sync button would on a Wii: it triggers an HCI
event, which emulated software interpret as a command to perform
a BT inquiry.

This commit also changes the UI code to expose passthrough mode
and WII_IPC_HLE to be a bit more thread safe (for the device map).
2016-10-03 23:06:23 +02:00
Léo Lam 59a17db6c4 Add a __LIBUSB__ define
This allows us to only check if __LIBUSB__ is defined, which is cleaner
than checking for __LIBUSB__ and _WIN32.
2016-10-03 21:07:12 +02:00
shuffle2 2c66f5bdc0 Merge pull request #4283 from leoetlino/misc-warning-fixes
Fix a few warnings
2016-10-03 12:03:52 -07:00
shuffle2 f63b767f78 Merge pull request #4280 from shuffle2/lioncash-misc
VideoCommon: Minor changes
2016-10-03 12:03:00 -07:00
Léo Lam 04c1757b49 Fix a few warnings 2016-10-03 19:29:35 +02:00
Léo Lam fad17246db InputCommon: Fix formatting issues in Quartz
This wasn't caught by the lint script because it was broken (by me) at
some point :(

If it had been rebased, it wouldn't have passed lint
2016-10-03 18:59:52 +02:00
Shawn Hoffman f000bb7590 Jit64: use domain-appropriate instructions
Original commit:
commit 62d3423ccf
Author: Tillmann Karras <tilkax@gmail.com>
Date:   Wed Nov 18 20:32:20 2015 +0100
2016-10-03 07:15:26 -07:00
Shawn Hoffman 86112c7258 VideoCommon: Minor changes
Make Renderer::GetMaxTextureSize return u32 instead of int.
2016-10-03 06:51:46 -07:00
shuffle2 cc66f0336f Merge pull request #3963 from JosJuice/banner-loaded-failure
VolumeGC: Set m_banner_loaded when banner loading fails
2016-10-03 06:33:52 -07:00
shuffle2 f121fa07c2 Merge pull request #2868 from sepalani/dolphin_ssl
Dolphin new Dump SSL features
2016-10-03 06:16:49 -07:00
shuffle2 e38ddfd787 Merge pull request #4111 from EmptyChaos/startup-perf-langs
InputCommon: Fix slow startup on some Windows systems with language packs (Issue 9744)
2016-10-03 04:02:54 -07:00
Shawn Hoffman b7dbc58c27 quick fix to prevent heap corruption by overwriting 4bytes of 1byte sysconf element 2016-10-03 03:43:01 -07:00
shuffle2 2db2e88620 Merge pull request #4010 from leoetlino/relative-input
Add relative input for the Wiimote IR
2016-10-03 03:26:04 -07:00
shuffle2 4b62d41728 Merge pull request #4090 from leoetlino/hidapi
WiimoteReal: Add a hidapi IO implementation
2016-10-03 03:20:17 -07:00
shuffle2 2747fd3a0d Merge pull request #4102 from ligfx/quartz_input
Add Quartz/CoreGraphics controller interface for default k&m events
2016-10-03 03:13:58 -07:00
Léo Lam 2511bfdb8a WiimoteReal: Make the connected Wiimote check common
This moves the unordered_map used to store connected Wiimotes IDs to
WiimoteReal, and makes the ID insert/erase logic common so we don't
have to duplicate this code in scanner backends.
2016-10-03 11:43:05 +02:00
Léo Lam 222f7e6fc3 WiimoteReal: IOWin: Remove duplicate code
The Balance board detection logic is already implemented in a simpler
way in Wiimote::IsBalanceBoard() (since hidapi also needs it).

Therefore, IOWin now only needs to check if a device is a Wiimote.
2016-10-03 11:41:23 +02:00
Léo Lam 132ca8d02c WiimoteReal: hidapi: Add support for the Balance Board
A name change isn't enough for the DolphinBar; we have to actually
query the Wiimote to know if the Wiimote is a Balance Board.
2016-10-03 11:41:23 +02:00
Léo Lam d9a9e34994 WiimoteReal: Disconnect the Wiimote if IOWrite fails
This is intended to make reconnecting Wiimotes easier with a DolphinBar.
Unfortunately, this change isn't enough as it doesn't always catch
disconnections for Wiimotes connected with a DolphinBar.

But it's better than nothing and eventually a disconnection will be
detected when something tries to write to the Wiimote, instead of never.

There is no other solution as the DolphinBar always exposes 4 HIDs even
when the associated Wiimotes are not connected.

We could try to detect this using the fake input reports sent by the
DolphinBar, but this only works for the first HID (probably because of
a bug in the firmware?), so this method is not an option.
2016-10-03 11:41:23 +02:00
Léo Lam 53d553d2b0 WiimoteReal: Fix race between shutdown and FindWiimotes
If FindWiimotes() took more time than the UI shutting down, the scanner
would try connecting a Wiimote and sending an event to the UI code
long after it has shut down, which causes a segfault.

This fixes the race by ignoring any found Wiimotes during shutdown.

Normally this would have never happened, but it is possible with hidapi
since Wiimotes can be connected before Dolphin starts.
2016-10-03 11:41:23 +02:00
Léo Lam 1ff94c5f2d DolphinWX: Prevent crash with Wiimote connected on start
wxWidgets causes a segfault if Host_ConnectWiimote is called and we try
to create an event from the Wiimote scanner thread while the GUI is
still initialising.
2016-10-03 11:41:23 +02:00
Léo Lam 843b030eda WiimoteReal: Add a hidapi IO implementation
Based on ca0c2efe7a. Credits go to flacs.
However, unlike the original commit, hidapi does not completely replace
the current implementations, so we can still connect Wiimotes with 1+2
(without pairing).

Also, it is only used on Linux and OS X for now. This removes the
advantage of having only one implementation but there is no other
choice: using hidapi on Windows is currently impossible because
hid_write() is implemented in a way that won't work with Wiimotes.

Additionally:
* We now check for the device name in addition to the PID/VID so we can
  support the Balance Board and maybe third-party Wiimotes too. This
  doesn't achieve anything with the DolphinBar but it does with hidraw.
* Added a check to not connect to the same device more than once.
2016-10-03 11:41:23 +02:00
shuffle2 5045fc869c Merge pull request #4188 from degasus/dynamic-bat
Dynamic bat: Merge failure and small cleanup
2016-10-03 02:37:33 -07:00
Stenzek 28e5fa8d26 Vulkan: Handle both destination alpha and logic ops being enabled
Same way as GL with the dual-pass fallback. Not highly accurate, but does
fix the Kirby shadow bug.
2016-10-03 19:11:50 +10:00
Stenzek f595fe080f Vulkan: Fix bug with fractional LOD bias and min/max LOD 2016-10-03 19:11:48 +10:00
Stenzek 5e29508b8f Vulkan: Fix vsync behavior when throttler is temp disabled 2016-10-03 19:11:48 +10:00
Stenzek b193282830 Vulkan: Correct logic for handling target and window size changes
Should fix a possible reference to deleted framebuffers, as well as fixing
the issues with the render area being correct if the game's source area
changes, or auto-scaling is enabled.
2016-10-03 19:11:47 +10:00
Stenzek 7d14b9b48b Vulkan: Add missing call to TextureCache::OnConfigChanged
This was preventing certain settings from being updated when changed at
runtime.
2016-10-03 19:11:47 +10:00
Stenzek 4a8766cec4 Vulkan: Fix resource leaks present at shutdown and mode changes
Infrequent, but still happened.
2016-10-03 19:11:47 +10:00
Stenzek 1286c309e3 Vulkan: Fix compilation on 32-bit targets 2016-10-03 19:11:47 +10:00
degasus 12f050bb8e Fifo: Fix SyncGPU. 2016-10-03 10:38:16 +02:00
degasus f7e07f8f3b MMU: Don't generate virtual memory area on 32bit builds.
There is no JIT, so no need for fastmem. This memory won't be used at all.
2016-10-03 10:26:23 +02:00
degasus 0de1c6c99c MMU: Sort physical access by common access pattern. 2016-10-03 10:26:23 +02:00
degasus d1488d0dc4 MMU: Drop force inline usage.
This is not needed, the compiler will do it on it's own if required.
2016-10-03 10:26:19 +02:00
degasus 4b3e388bd7 Jit64: Fix merge failure of dynamic_bat. 2016-10-03 10:15:52 +02:00
degasus ebc47a4b36 Memmap: Drop redundant global bFakeVMEM flag. 2016-10-03 10:15:52 +02:00
EmptyChaos 76558c4d87 HLE: Fix warnings 2016-10-03 18:49:08 +11:00
shuffle2 d139659ea2 Merge pull request #4276 from lioncash/code
GeckoCode: Provide operator== and operator!= overloads
2016-10-03 00:01:23 -07:00
Lioncash e8cd5a3979 GeckoCode: Provide operator== and operator!= overloads
Same thing but allows both GeckoCode and Code to be utilized directly
without predicates for equality/inequality in stardard algorithms

The size check for std::vectors is unnecessary, as this is built into std::vector's operator==
2016-10-03 02:32:43 -04:00
shuffle2 332c9b514b Merge pull request #4275 from lioncash/net
NetPlaySetupFrame: Use an anonymous namespace instead of static
2016-10-02 22:59:35 -07:00
shuffle2 09fd2fd8e2 Merge pull request #4015 from EmptyChaos/wx-misc-fixes
WX: Fix pop-under (win) / game list garbage (win) / language support (Linux)
2016-10-02 22:46:14 -07:00
shuffle2 fba6801851 Merge pull request #4216 from EmptyChaos/geckocodes-cleanup
GeckoCodes: Don't run PPC code in CoreTiming callbacks
2016-10-02 22:37:51 -07:00
EmptyChaos 09372a55da GeckoCode: Save installation state to savestates
Because of the way this works, randomly overwriting the handler
when loading a savestate will break things because of the
self-modifying nature of the handler.
2016-10-03 16:27:42 +11:00
EmptyChaos b3547870ee PatchEngine/GeckoCode: Heuristic stack checks
Try to make sure the stack is sane before calling into the
codehandler. This is intended to reduce the possibility of random
memory corruption.
2016-10-03 16:27:42 +11:00
EmptyChaos 31cf8432bf HLE: Differentiate Address hooks from Symbol hooks
GeckoCodes require address hooks which don't correspond to any
symbol in the symbol table. The hooks get deleted when repatching
the game because they did not persist across calls to
HLE::PatchFunctions.
2016-10-03 16:27:42 +11:00
EmptyChaos c3cef54910 PatchEngine: Handle MSR more cleanly
Instead of fiddling with the MSR value, just reschedule and try again
after the game fixes it itself.
2016-10-03 16:27:42 +11:00
EmptyChaos 83407263e5 HLE/GeckoCode: Add new HLE hook exit trampoline
Dolphin emulates GeckoCodes by fiddling with the CPU state when a
VI Interrupt occurs. The problem with this is that we don't know
where the PC is so it's non-deterministic and not necessarily
suitable for use with the codehandler.

There are two options: Patch the game like Gecko OS either directly
or using HLE::Patch, or use a trampoline so we can branch from any
PC even if it would otherwise not be valid. The problem with Gecko OS
patches is there are 10 of them and they have to be configured
manually (i.e. Game INIs to would need to have a [Core]GeckoHookType
property).

HLE_Misc::GeckoReturnTrampoline enables the Code Handler to be
entered from anywhere, the trampoline restores all the registers that
had to be secretly saved to the stack.
2016-10-03 16:27:42 +11:00
EmptyChaos 249d8a76e1 GeckoCode: Don't spam retry after the install fails
If the installation fails because codehandler.bin is missing or
unusable then Dolphin will try again every single frame even though
it's highly unlikely a disk file will have changed. Better to just
fail once then only try again when the active code set is changed.

Suppresses generating 60 log messages per second.
2016-10-03 16:27:42 +11:00
EmptyChaos 541a42a7e3 GeckoCode: Use named constants in ICache flush hack
Turns out one of the magic numbers was very magic. The gameid is
an ad-hoc comm protocol with HLE_Misc to control the number of times
the ICache is reset.
2016-10-03 16:27:18 +11:00
EmptyChaos 4fef9d8d64 GeckoCode: Don't truncate codes that won't fit
The code table builder cuts off the end of codes that won't fit
after already writing part of it. That seems quite unlikely to
work the way anyone would find useful since the codes can contain
actual PPC instructions.
2016-10-03 16:27:18 +11:00
EmptyChaos e91c0222b4 GeckoCode: Cleanup
The active codes vector cannot safely be used outside the mutex,
move the lock out into RunCodeHandler. s_code_handler_installed was
also racing against SetActiveCodes since it's being written both
inside and outside the lock.

General cleanup. Add s_ prefixes, use constexpr, remove C casts.
2016-10-03 16:27:18 +11:00
EmptyChaos cf8ac5c09c GeckoCode: Don't run PPC code in a CoreTiming callback
Executing PPC code inside an external events callback is a bad idea.
CoreTiming::Advance does not support recursion properly which will
cause timing glitches. The interpreter has a slice length hack that
counters this but without it this would cause a 20000 cycles time
skip. It isn't clear what this was supposed to accomplish that just
changing the current PC would not. Changing the PC works fine.
2016-10-03 16:26:30 +11:00
shuffle2 bd1218a3c4 Merge pull request #4250 from leoetlino/hle-patch-fix
HLE_OS: Minor fixes (function patching, output encoding)
2016-10-02 22:13:15 -07:00
shuffle2 8107a19ddc Merge pull request #4048 from EmptyChaos/wx-cheat-notice
WX: ISOProperties: Add notice when cheats are disabled (Issue 9690)
2016-10-02 22:06:26 -07:00
shuffle2 39f75d64d6 Merge pull request #4119 from mbc07/drop-4.0-ini-hack
Drop some INI hacks from 4.0-era
2016-10-02 21:23:50 -07:00
shuffle2 0082fa527b Merge pull request #4117 from JosJuice/wx-language-code
Save GUI language as string instead of wxLanguage enum
2016-10-02 21:23:36 -07:00
Lioncash 99afd9e9d5 NetPlaySetupFrame: Use an anonymous namespace instead of static
const at file scope links internally by default, so static wasn't necessary.
The namespace gets rid of the other statics
2016-10-03 00:20:33 -04:00
shuffle2 f71966866b Merge pull request #4230 from ligfx/build_vendored_libusb
Build vendored libusb with CMake if on Apple or not available system-wide
2016-10-02 21:17:01 -07:00
shuffle2 5a8abb4f93 Merge pull request #4127 from jloehr/FixDialogClosingButtons
Fix dialog closing buttons
2016-10-02 21:16:24 -07:00
Anthony 3ec6c9cbc0 Merge pull request #4273 from JosJuice/traversal-server-label
DolphinWX: Less duplication in code related to traversal server label
2016-10-02 23:13:55 -05:00
shuffle2 0e3f91d88b Merge pull request #4148 from RisingFog/frame_dump_fixes
Fix frame dump issues where frame dumping stops before next drawn frame
2016-10-02 21:10:35 -07:00
shuffle2 7f4106646e Merge pull request #4271 from ligfx/audiofix
OpenAL: Don't request samples if buffers are full
2016-10-02 21:00:10 -07:00
shuffle2 25f983cb21 Merge pull request #4176 from phire/fix_wii_input_display_string
Movie: Fix null pointer dereference.
2016-10-02 20:59:30 -07:00
shuffle2 07f672f81b Merge pull request #4187 from sepalani/debug_ascii_symbol
MemoryView: Symbols shown in ASCII view
2016-10-02 20:57:59 -07:00
shuffle2 a61c6c6e2f Merge pull request #4274 from lioncash/log
LogWindow: Minor changes
2016-10-02 20:43:31 -07:00
shuffle2 2c917da5cd Merge pull request #4254 from ligfx/check_errors_postprocessing
Check for errors when postprocessing macOS app bundle
2016-10-02 20:42:39 -07:00
Lioncash d8f72e9cda LogWindow: Use emplace instead of push for the message queue
Same thing.
2016-10-02 23:42:38 -04:00
shuffle2 456d869791 Merge pull request #4200 from EmptyChaos/jit64-dispatch-bug
Jit64: Fix Dispatcher ABI error
2016-10-02 20:41:39 -07:00
shuffle2 53cb04f07e Merge pull request #4260 from lioncash/debugger
RegisterView: Minor changes
2016-10-02 20:34:10 -07:00
shuffle2 17aef319e8 Merge pull request #4240 from lioncash/include
Software: Clean out unnecessary includes/fwd decls
2016-10-02 20:31:35 -07:00
shuffle2 5e8bc4aa1d Merge pull request #4244 from leoetlino/stm-shutdown
Shut down Wii software gracefully
2016-10-02 20:25:13 -07:00
shuffle2 8fcc3b04e0 Merge pull request #4227 from ligfx/clean_objc
Don't force compile everything as Objective-C++ on macOS
2016-10-02 19:42:04 -07:00
Lioncash a7b19e23b3 LogWindow: Convert #define macros into typed constants 2016-10-02 18:13:08 -04:00
Mat M ccfc081697 Merge pull request #4245 from aldelaro5/logs-levels-changes
Lots of Logs levels changes (also enable INFO level in every build)
2016-10-02 16:51:44 -04:00
Mat M 10cccd9228 Merge pull request #4231 from ligfx/fix_sigabrt_when_quitting_from_dock
Move LogWindow/LogConfigWindow destructor logic -> OnClose
2016-10-02 16:33:18 -04:00
Mat M f292df2331 Merge pull request #4217 from EmptyChaos/toggle-memcheck
PPCDebugInterface: Let ToggleMemCheck create the first memcheck
2016-10-02 16:31:44 -04:00
Mat M ffcd69eaac Merge pull request #4272 from leoetlino/sysconf
SysConf: Add support for the LongLong type
2016-10-02 16:25:17 -04:00
JosJuice 6ff2bd3243 DolphinWX: Delete traversal settings when pressing Reset
Deleting instead of overwriting makes the INI cleaner.
Also, in case we change defaults in the future, users will
get the new default when using a new version even if
they have pressed the Reset button in an older version.
2016-10-02 17:04:03 +02:00
JosJuice 337f573484 DolphinWX: Less duplication for setting traversal server label 2016-10-02 16:43:43 +02:00
JosJuice abc39f6c6f DolphinWX: Use constants for default traversal server 2016-10-02 16:36:12 +02:00
JosJuice 7a165db94f DolphinWX: Less duplication between GetTraversalPort/Server
They now also return their results the regular way.
2016-10-02 16:33:59 +02:00
Léo Lam 25b93419d0 SysConf: Add support for the LongLong type
This should fix the "unknown entry type" panic alerts when an existing
SYSCONF from a real Wii NAND is used.
2016-10-02 11:52:57 +02:00
Michael Maltese 8fa79f3897 fix indendentation 2016-10-01 21:36:51 -07:00
Michael Maltese 567dffc1ee OpenAL: Don't request samples if buffers are full
Makes the buffering code a bit more explicit (circular buffer, but
blocks until individual buffers get unqueued by OpenAL), and fixes a
bug in the startup of Super Mario Sunshine:
https://bugs.dolphin-emu.org/issues/9811
2016-10-01 21:36:46 -07:00
aldelaro5 f0aa9b3751 Reorganise a ton of logs level
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
Léo Lam 453c4a4915 MainNoGUI: Shut down Wii software gracefully 2016-10-01 21:35:29 +02:00
Léo Lam 5d8d696185 Force disable WC24 standby mode
When standby mode is enabled, this causes games to ES_Launch the system
menu instead of directly asking IOS (the STM more precisely) to shut
down, which prevents graceful shutdown from working
(it'll appear to hang).

Dolphin never supported WC24 standby mode anyway, so this shouldn't
cause any issues. (This should be reverted if and when WC24 standby is
implemented…)
2016-10-01 13:06:04 +02:00
Léo Lam 9b72b5f144 Shut down Wii software gracefully
This adds support for triggering the power event (in the STM), so that
stopping emulation first triggers a shutdown event, which notably gives
emulated software time to save game data (issue 8979) and clean up
SYSCONF (to disconnect Wiimotes and update their state in the SYSCONF).

On the first press, the stop button/hotkey/whatever will trigger a STM
power event. On a second try, we will forcefully stop emulation, just
like how it was working before.
2016-10-01 13:06:04 +02:00
Léo Lam ae723f5251 IPC_HLE/stm: Implement STM_UnregisterStateEvent 2016-10-01 13:06:04 +02:00
Léo Lam fcd08be34a IPC_HLE/stm: const correctness for ResetButton 2016-10-01 13:06:04 +02:00
Léo Lam 5fb17a9014 IPC_HLE/stm: Clean up naming
Switches to the new naming conventions.
2016-10-01 13:06:04 +02:00
Léo Lam faf202f0f6 IPC_HLE/stm: Separate header and implementation
There was as far as I know no reason to put everything in the header.

Separating the declaration from the implementation reduces build
times in case the implementation is updated without changing
any declaration.
2016-10-01 13:06:04 +02:00
Lioncash 361c7c9c09 VertexManagerBase: Make class constants constexpr 2016-10-01 03:37:17 -04:00
Lioncash e61eb34ae6 VertexManagerBase: Get rid of a u16 cast
Just using the direct value is more straightforward
2016-10-01 01:05:43 -04:00
Lioncash 9395b8efa9 Vulkan: Amend header includes
Adds headers where necessary to eliminate indirect includes.
Also adds headers to ensure certain standard constructs always
resolve correctly
2016-09-30 23:26:03 -04:00
Stenzek a8194cff3c VideoNull: Set all fields in backend_info
A few of these were missing, which could cause the adapter list to remain
visible after switching to null, for example.
2016-10-01 02:40:03 +10:00
Stenzek 5f66cf5ed7 Vulkan: Only submit init/upload command buffer when it has commands
This way we're not submitting empty buffers when it's unnecessary.
2016-10-01 02:40:03 +10:00
Stenzek bac8c2d441 Vulkan: Work around indexed fragment output bug on AMD drivers 2016-10-01 02:40:02 +10:00
Stenzek f6cdc38c8b Vulkan: Use render-pass based clears where possible 2016-10-01 02:40:02 +10:00
Stenzek c290398320 Vulkan: Ensure fast path is used for non-RGBA formats when clearing 2016-10-01 02:40:02 +10:00
Stenzek f4944f006d Vulkan: Support frame dumping/screenshots 2016-10-01 02:40:02 +10:00
Stenzek 77a128ab87 Implement experimental Vulkan backend 2016-10-01 02:40:01 +10:00
Stenzek fdd954e7e7 Common: Add a Semaphore wrapper class 2016-10-01 01:09:12 +10:00
Stenzek 828aac7890 VideoBackends: Make TextureCache::CompileShaders return a bool 2016-10-01 01:09:12 +10:00
Stenzek 6a99cbd9fc VideoCommon: Call Renderer::SurfaceChanged on render parent resize
This is needed because for some reason the WSI for NV Vulkan drivers
doesn't return VK_ERROR_OUT_OF_DATE_KHR, so there is no other way to know
that a resize has occured apart from polling, which is a poor solution for
X11 (since it is blocking).
2016-10-01 01:09:12 +10:00
Stenzek 5346078791 VideoCommon: Add config fields for multithreading and validation layers 2016-10-01 01:09:12 +10:00
Stenzek 09638e714e VideoCommon: Extend DriverDetails to support both OpenGL and Vulkan 2016-10-01 01:09:12 +10:00
Stenzek a71381e80a VideoCommon: Add APIType entry for Vulkan 2016-10-01 01:09:11 +10:00
Stenzek 75e4e42e56 ShaderGen: Work around issue with glslang and dynamic vector subscripts
Seems that vec[eye] will select vec.x no matter what the value of eye is.
2016-10-01 01:09:11 +10:00
Stenzek 7f3a876aae ShaderGen: posmtx should be a 4-component unsigned byte
This is a global change across backends, so should be tested for
regressions.
2016-10-01 01:09:11 +10:00
Stenzek d9c034e8cc ShaderGen: Specify attribute/output locations/bindings explicitly
This also shifts the SSBO index from index 3 to index 0.
2016-10-01 01:09:11 +10:00
Stenzek 9f541e490d OGL: Handle case where both constant alpha and logic op is enabled 2016-09-30 23:18:14 +10:00
Lioncash 91bbe56f59 SystemRegisters: Get rid of pointer casting 2016-09-30 08:28:07 -04:00
Markus Wick 025dce86d5 Merge pull request #4261 from lioncash/gamelist
GameListCtrl: Use unique_ptr for underlying GameListItems
2016-09-30 13:23:43 +02:00
Lioncash d8e4d5f035 GameListCtrl: eliminate redundant elses
These aren't necessary considering the above condition returns
2016-09-30 07:13:14 -04:00
Lioncash 6e0e4646bd GameListCtrl: use unique_ptr for underlying game list items 2016-09-30 07:13:09 -04:00
Lioncash 6b58ebfadc MMU: Remove useless casts 2016-09-30 06:48:13 -04:00
Markus Wick c33710a320 Merge pull request #4262 from lioncash/mmu
MMU: Get rid of type punning in FP read/write functions
2016-09-30 10:11:06 +02:00
Lioncash e8b5e38d98 MMU: Get rid of type punning in FP read/write functions
The previous code is actually considered undefined behavior.
2016-09-30 03:50:08 -04:00
Lioncash 567d0204dd RegisterView: Get rid of explicit memsets in CRegTable's constructor
Also gets rid of an unnecessary fill.

This is done by just default initializing the arrays
2016-09-30 01:28:54 -04:00
Lioncash 212cf4c791 RegisterView: Convert #define into a static constant in CRegTable 2016-09-30 01:28:53 -04:00
Lioncash d080b0e8a5 RegisterView: Move CRegTable implementation details into the cpp file 2016-09-30 01:28:47 -04:00
Lioncash 3ef6b51848 RegisterView: Move FormatSpecifier enum into CRegTable
Considering there's a public method in the class using it, leaving the
definition in the cpp file can cause a linker error if any method outside
that cpp file calls it for one reason or another.
2016-09-30 00:16:16 -04:00
Anthony ad1d45d4e2 Merge pull request #4218 from aldelaro5/debugger-stepping-fixes
Fix a bunch of debugger stepping issues.
2016-09-29 22:41:27 -05:00
Lioncash e1705ba6c5 PPCAnalyst: Get rid of two casts
HostRead_Instruction does the same thing behind the scenes without casts.
2016-09-29 18:17:56 -04:00
aldelaro5 cd0116ccde Fix a bunch of debugger stepping issues.
Single step: Fix an oddity when a breakpoint is hit at the beginning of a block, then after, a single step is performed and finally, hitting play, the breakpoint will be skipped even in the case when it would be hit again.  This was done by using the interpreter version of single step.  Also, remove some redundant update request.

Step over: fix some GUI lags.

Step out: Add consideration for conditional branching by checking the condition as the interpreter does.  Now, every bclr instructions except those that changes the LR (because it would not be the end of the function) will cause the end of the step out and not just blr instructions.  Also now stops if a bp is detected and finally, remove redundant GUI updates calls.

This also removes a superfluous draw call on the GUI as the codeView was refreshing twice per event to do so.
2016-09-29 17:32:52 -04:00
Lioncash ba628b3cab PPCAnalyst: Compress loop into std::any_of 2016-09-28 17:12:21 -04:00
Michael Maltese a403e37901 always build an implementation of GCAdapter (either libusb or android) 2016-09-28 13:32:13 -04:00
Michael Maltese 3864723e4d Check for errors when postprocessing macOS app bundle 2016-09-28 13:22:36 -04:00
EmptyChaos f9a88adddc PowerPC: Fix Dynamic BAT savestates 2016-09-28 14:26:26 +10:00
Scott Mansell ed95115c17 Merge pull request #4220 from aldelaro5/memcheck-interface-improvements
Redo the MemCheck add dialog
2016-09-28 13:46:25 +13:00
Markus Wick 3696c2b022 Merge pull request #4210 from degasus/arm
JitArm64: Small cleanup + speedups.
2016-09-27 18:45:14 +02:00
JosJuice d44b2de01d DVDInterface: Try to enforce disc inside status on savestate load 2016-09-27 16:51:14 +02:00
JosJuice 75dd4d0aee DVDInterface: Make changing discs savestate-safe 2016-09-27 16:51:14 +02:00
Markus Wick cb759528e0 Merge pull request #3893 from hthh/perf-query-bug
Improve PerfQuery accuracy
2016-09-27 13:07:35 +02:00
Markus Wick 3de4dc2186 Merge pull request #4247 from lioncash/wad
WiiWad: Minor changes
2016-09-27 12:37:02 +02:00
Markus Wick f701724ee7 Merge pull request #4251 from lioncash/define
PPCAnalyst: Convert #define into a constant
2016-09-27 12:19:18 +02:00
Markus Wick 9525a9e048 Merge pull request #3490 from degasus/singlecore
Fifo: Use SyncGPU timings for single core.
2016-09-27 10:33:47 +02:00
Markus Wick 8afba30603 Merge pull request #3822 from degasus/warning
VertexLoaderJit: Fix out-of-bounds access for zfreeze.
2016-09-27 10:31:48 +02:00
aldelaro5 5e8fc4ebd9 Add consideration for the break flag of memChecks
It was never used, even when the code tried to make sure it was initialised and passed correctly.  This is a supplementary fix for the memCheck dialog as this option will now work correctly.
2016-09-27 01:22:23 -04:00
aldelaro5 efb7b1ceca Redo the MemCheck add dialog
The old one wasn't very optimal because not only the user would likely want to enter an address instead of a range, but it also made entering just one address confusing (you had to have the same value on both start and end).  Also, you should only chose one option between read, write or both, there is no point to not have any.

This is why I made more clear how to add an address and it is the default option using radio buttons and I also made the action flags and the flags to be radio buttons.
2016-09-27 01:22:23 -04:00
Lioncash 082275d785 PPCAnalyst: Convert #define into a constant 2016-09-26 20:04:17 -04:00
Lioncash a947391556 PPCAnalyst: Make local constants constexpr 2016-09-26 19:51:48 -04:00
Léo Lam cb73bcc72e PPCSymbolDB: Drop useless const qualifier 2016-09-26 22:57:40 +02:00
Léo Lam e1cecbb233 HLE_OS: Convert debug messages from SJIS to UTF-8
It looks like the debug output is also output as SJIS (similar to
OSReport text), so we need to convert it to UTF-8 to prevent it from
all showing up as �.

This doesn't fix all display issues, but fixes all SJIS/UTF-8 related
ones.
2016-09-26 22:56:42 +02:00
Léo Lam 303325768b SymbolDB: Only match against the function name
This changes GetSymbolFromName to not require the passed name to
completely match with the symbol name. Instead, we now match
against the stripped symbol name (i.e. only the function name).

This fixes a regression introduced by #4160, which prevented
HLE::PatchFunctions() from working properly.
2016-09-26 22:56:42 +02:00
degasus 732e0ff03a VertexLoaderArm64: Mark register allocation as static const. 2016-09-26 22:19:07 +02:00
degasus 7c9bba2213 Arm64Emitter: Fix std::array initializer. 2016-09-26 22:17:25 +02:00
degasus 11bfc7fe77 JitArm64: Move memcheck check into fallback code.
So now each implemented slowmem instruction should check for DSI on each own.
2016-09-26 22:17:25 +02:00
degasus 39c08694a0 JitArm64: Optimize addic.
If simm < 0, it's faster to call MOVI2R(-simm) as only the lower bits are set.
2016-09-26 22:17:25 +02:00
degasus 1f94abea18 JitArm64: Optimize logic immediate instructions.
Try to use also the immediate instruction on ARM.
2016-09-26 22:17:25 +02:00
Markus Wick e7aad130e9 Merge pull request #4243 from leoetlino/signal-headless
MainNoGUI: Shut down cleanly on SIGINT/SIGTERM
2016-09-26 13:23:39 +02:00
Léo Lam 3cbf3bae97 MainNoGUI: Shut down cleanly on shutdown signal
This is the same as PR #3991, but for MainNoGUI.

nogui/headless will shut down cleanly on SIGINT and SIGTERM, just like
it would when closing the render window.

The default signal handler will be restored after a first shutdown
signal so a second signal will exit Dolphin forcefully.
2016-09-26 11:11:20 +02:00
Lioncash 61b977c914 WiiWad: Make WiiWAD constructor explicit 2016-09-25 18:04:11 -04:00
Lioncash 7de0d51345 WiiWad: Move static implementation details to cpp file
These functions don't actually depend on any state from the class
instance, so they don't really belong in the header, and are just
an implementation detail.
2016-09-25 18:04:04 -04:00
Michael Maltese d1475dfb9c Move LogWindow/LogConfigWindow destructor logic -> OnClose
Fixes the issue on macOS where quitting Dolphin from the Dock causes a
crash report (https://bugs.dolphin-emu.org/issues/9794). I'm not
exactly sure why this works, but it feels right and it turns out to fix
the problem.
2016-09-25 17:06:46 -04:00
Léo Lam 349b27199b IPC_HLE/es: In-class initialise member variables 2016-09-25 22:36:26 +02:00
Léo Lam bf0ab79439 ConfigManager: In-class initialise member variables 2016-09-25 22:36:26 +02:00
Léo Lam e716a738dc SysConf: In-class initialise member variables 2016-09-25 19:22:11 +02:00
Léo Lam a9ad83cec0 Frame: In-class initialise member variables 2016-09-25 19:22:10 +02:00
aldelaro5 08f28b5351 Enable the log level LINFO in every builds
It didn't really made sense to disable 2 logs levels in releases builds while the level LDEBUG should really be where logs that would impact performance be.  Info should be logs that report potentially usefull information and debug should report info that would only be usefull in debug context as they are called very often.  To make this work, a lot of info log would have to be made debug log.

It also avoid inaccurate logs level done due to not using debug builds.  While searching through the code, I saw a ton of logs that should have been info log, likely done to avoid using a debug build (which shouldn't happen considering the level debug exists anyway).

The whole idea is to have more meaningful logs in release builds while maintaining minimal performance loss from choosing the highest level.  This could potentially help to diagnose issues or to know more about what the emulator is actually doing.

The next commit aims to sort the log levels for this purpose.
2016-09-25 01:41:12 -04:00
Léo Lam 5d00915d37 MemoryUtil: Fix formatting
clang-format really *wants* the two empty lines to be removed;
otherwise, it will always flag MemoryUtil as needing formatting changes
which is an annoyance when it is used as a git filter driver.
2016-09-24 22:41:53 +02:00
Léo Lam c59b7050d9 MemoryUtil: Fix formatting
clang-format really *wants* the two empty lines to be removed;
otherwise, it will always flag MemoryUtil as needing formatting changes
which is an annoyance when it is used as a git filter driver.
2016-09-24 21:09:31 +02:00
Léo Lam 149654df5a Add a recenter control for Wiimote IR relative input
This adds a recenter control binding which allows recentering the
cursor when relative input is enabled.

(EnableSettingControl is renamed to avoid confusions.)
2016-09-24 15:57:47 +02:00
Léo Lam 1ad19f9371 InputConfigDiag: Update GUI when config is reloaded
This makes the GUI show the settings that are loaded when the config
gets reloaded, instead of showing potentially outdated settings that
are not applied.
2016-09-24 15:57:47 +02:00
Léo Lam 2472db4355 Disable IR/deadzone when relative input is disabled
This changes InputConfigDiag to disable the Dead Zone field in the IR
group when relative input is disabled.
2016-09-24 15:57:46 +02:00
Léo Lam 5cf07fdfbf Add relative input for the Wiimote IR
This adds an option to enable relative input for the Wiimote IR
as described in issue 9014.

Enabling it will result in the pointer not going back to the centre
and the inputs will control the direction, not the absolute position.

Also adds a Dead Zone setting which is really needed when relative
input is enabled to prevent the cursor from slowly drifting on
most controllers. (Note: the Deadzone setting has no effect when
relative input is disabled)
2016-09-24 15:57:46 +02:00
Lioncash c9ef042b2d Software: Clean out unnecessary includes/fwd decls 2016-09-24 05:28:00 -04:00
Lioncash ab28ef5cff FramebufferManager: Add missing header guard 2016-09-23 13:55:51 -04:00
Lioncash 330944eef8 DebugUtils: const correctness 2016-09-22 21:05:17 -04:00
Lioncash 5ac161c132 TextureEncoder: const correctness 2016-09-22 21:01:56 -04:00
Lioncash eb574e7bac NativeVertexFormat: const correctness 2016-09-22 21:01:55 -04:00
Lioncash 5f1e444c28 Clipper: const correctness 2016-09-22 21:01:49 -04:00
Lioncash d79d5d49f4 Rasterizer: const correctness 2016-09-22 20:39:28 -04:00
Markus Wick 2d0e857cb3 Merge pull request #4225 from lioncash/soft
SWVertexLoader: Value initialize SetupUnit instance
2016-09-22 16:05:32 +02:00
Lioncash a8c8dd0c53 SWVertexLoader: Value initialize SetupUnit instance 2016-09-22 09:58:44 -04:00
Markus Wick 5890565575 Merge pull request #4233 from lioncash/efb
EfbInterface: Change out parameters on getters to return by value
2016-09-22 10:49:33 +02:00
Lioncash 33288c4569 EfbInterface: Change out parameters on getters to return by value 2016-09-21 20:56:44 -04:00
Lioncash fc41e982e9 SWOGLWindow: Utilize the move constructor in PrintText
The previous code would always do a copy
2016-09-21 13:11:34 -04:00
Lioncash 99baa3268f SWOGLWindow: const correctness for ShowImage 2016-09-21 12:54:22 -04:00
Markus Wick 26bb012178 Merge pull request #4226 from lioncash/fs
Filesystem: Return strings from GetFileName without the const qualifier
2016-09-19 22:11:54 +02:00
Mat M 04e6aaf419 Merge pull request #4138 from JosJuice/40-limit-out-of-di
Move code into Movie::SignalDiscChange
2016-09-18 22:54:48 -04:00
Mat M 9e1cfbee0e Merge pull request #4160 from sepalani/symbolmap
Map: Prevents symbols from being stripped
2016-09-18 22:52:12 -04:00
Mat M e47defc419 Merge pull request #4196 from clinchergt/typoooo
Keep tag consistent on traversal settings reset
2016-09-18 22:44:10 -04:00
Michael Maltese cd19c9fa22 Don't force compile everything as Objective-C++ on macOS 2016-09-18 17:33:51 -07:00
Lioncash 144c23dead Filesystem: Return strings from GetFileName without the const qualifier
This is mostly pointless and can inhibit move construction
2016-09-18 12:56:25 -04:00
Mat M 331b112816 Merge pull request #4214 from lioncash/nandcontent
NANDContentLoader: Minor changes
2016-09-17 16:44:25 -04:00
degasus 258f48572d VertexLoaderJit: Fix out-of-bounds access for zfreeze.
This fixes a GCC6.1 warning.
2016-09-17 16:47:12 +02:00
degasus 735da0ed69 Fifo: Use SyncGPU timings for single core. 2016-09-17 16:25:13 +02:00
JosJuice 22b5d89bf1 Merge pull request #4056 from Pringo/master
Update Menu Ellipses Usage
2016-09-16 20:28:51 +02:00
Anthony 533ee4ccbe Merge pull request #3275 from JosJuice/wiimote-message
DolphinWX: Don't translate OSD messages
2016-09-16 12:39:11 -05:00
EmptyChaos 39edc1d91e PPCDebugInterface: Fix ToggleMemcheck
ToggleMemCheck fails to create a memcheck if one doesn't already
exist.
2016-09-15 13:08:48 +10:00
Lioncash 5aeedcd27c NANDContentLoader: Remove unnecessary trailing semicolons 2016-09-14 20:12:25 -04:00
Lioncash b43a26b90c NANDContentLoader: Remove virtual specifier from CNANDContentLoader destructor
This class is marked final, so there's no need to declare it as virtual.
2016-09-14 19:45:52 -04:00
Lioncash 3196bf5392 NANDContentLoader: Specify constructors as explicit where applicable
Prevents implicit conversion.
2016-09-14 19:44:44 -04:00
Lioncash 89c65be703 NANDContentLoader: Delay vector construction until needed in Get()
No need to construct the vector right off the bat.
2016-09-14 19:41:41 -04:00
Lioncash b1ffa74043 NANDContentLoader: Make CNANDContentData's Get function return by non-const value
const specifiers like this are practically pointless and can inhibit move construction.
2016-09-14 19:15:31 -04:00
Scott Mansell 4c004b6dc9 Merge pull request #4131 from aldelaro5/memoryViewer-memChecks-improvements
Add the configuration of how a memory check is added via the memory window
2016-09-15 10:46:07 +12:00
Scott Mansell 514ce3c6ed Merge pull request #4201 from EmptyChaos/interpreter-coretiming
Interpreter/CachedInterpreter/JitArm64: Fix CoreTiming::Advance usage
2016-09-15 09:57:00 +12:00
Sepalani 78d50c9a31 PPCSymbolDB: Rename unknown variable 2016-09-14 20:00:15 +02:00
Mat M 564d04cdd3 Merge pull request #4212 from EmptyChaos/nand-leak
DiscIO: Fix NAND Memory Leak
2016-09-14 11:30:02 -04:00
Sepalani 13048afd08 MemoryView: Symbols shown in ASCII view 2016-09-14 15:28:13 +02:00
Scott Mansell ea7e734496 Merge pull request #4186 from aldelaro5/registerView-update-fix
Fix registerView updates issues when stepping over or stepping out
2016-09-14 18:10:41 +12:00
Scott Mansell 4e595ca25f Merge pull request #4208 from aldelaro5/more-debugger-font-fix
Fix the debugger font not appearing on the captions of panes (DSP)
2016-09-14 18:09:28 +12:00
Scott Mansell d5c25a8990 Merge pull request #4207 from aldelaro5/debugger-floating-window-fix
Debugger: Fix some floating window issues
2016-09-14 18:08:23 +12:00
EmptyChaos eccec3c6d3 DiscIO: Fix NAND Memory Leak
CNANDContentData is a base class with a non-virtual destructor so
derived classes don't get destroyed causing them to leak resources.
2016-09-14 15:54:05 +10:00
EmptyChaos 070fe7f499 Jit64: Fix Dispatcher ABI (downcount) violation
The dispatcher requires that the flags contain the downcount state.
2016-09-14 15:46:54 +10:00
EmptyChaos 55a7f576aa JitArm64: Fix CoreTiming contract
Call Advance at the start of each timing slice instead of the end.

Possibly fixed a bug where a slice would randomly branch straight
back to Advance() because the flags were not set to the right
values before branching to the dispatcher entrypoint.
2016-09-14 15:44:51 +10:00
EmptyChaos f5bfce657c CachedInterpreter: Fix CoreTiming contract
Call CoreTiming::Advance() before executing the slice, not after.
2016-09-14 15:44:51 +10:00
EmptyChaos 1bcd129683 Interpreter: Fix CoreTiming contract
The interpreter does not use CoreTiming correctly. Calls to Advance
must be made in advance of executing the associated slice, not
afterwards.
2016-09-14 15:44:51 +10:00
Lioncash 00ddbee786 SymbolDB: Change Symbol's 'analyzed' member into a boolean
It's only ever used as one
2016-09-13 21:23:28 -04:00
Lioncash 0ac77b0288 SymbolDB: Use an enum class for representing symbol type 2016-09-13 21:21:03 -04:00
Lioncash d8d127df25 SymbolDB: In-class initialize Symbol class variables 2016-09-13 20:47:00 -04:00
Mat M add5de2d08 Merge pull request #4178 from aldelaro5/registerView-formated-display
Add formatting options for the GPR and FPR registers
2016-09-13 09:18:50 -04:00
Markus Wick bdcee1c585 Merge pull request #4205 from degasus/arm
JitArm64: Cleanup + small fix.
2016-09-12 11:47:51 +02:00
Scott Mansell 65c1df34f4 Merge pull request #4198 from aldelaro5/memory-breakpoint-fix
Fix the memChecks breaking a second time after hitting one and unpausing
2016-09-12 14:51:47 +12:00
aldelaro5 f689b1e6b5 Switch the CPU state to CPU_STEPPING before single stepping after unpausing
This fix a double break bug when hitting a memcheck and hitting play on the same instruction it broke to earlier.  The state is put back to CPU_RUNNING after.
2016-09-11 22:46:12 -04:00
aldelaro5 6b6cce823b Fix the debugger font not appearing on the captions of panes (DSP)
Forgot to fix that since the last font fix.
2016-09-11 20:13:20 -04:00
aldelaro5 6029c946f5 Manually select the coresponding tab before floating a panel
Doing this forces the window to be drawn before reparenting it. It fixes the possibility of creating an empty floating window if the selected tab wasn't corespoinding to the window.
2016-09-11 18:52:48 -04:00
aldelaro5 b3d49c7335 Add missing IDs for the Watch window
Fix the code window not floating when asked to do so via the popout menu.
2016-09-11 12:51:50 -04:00
aldelaro5 72f1d99634 Implement the configuration of how a breakpoint is added in the memory window
There might be a better way to highlight the options when adding the memory check, but for now, this works and the breakpoint list reports the right settings anyway.
2016-09-11 11:29:20 -04:00
aldelaro5 da55d2a381 Add options read, write and log when toggling a breakpoint
These are needed for the next commit. I had to modify the implementation of the DSP one too, but since it basically isn`t used, I don`t think it matters much.  These options only matters when adding one.
2016-09-10 22:38:57 -04:00
Markus Wick cbdda17507 Merge pull request #4124 from mimimi085181/wiimote-netplay-check-reporting-mode
Wiimote netplay: Check the reporting mode instead of the size
2016-09-10 23:28:57 +02:00
Markus Wick a15b3fda6e Merge pull request #4203 from aldelaro5/free-memChecks-debug-builds
Move Memchecks support out of debug only builds
2016-09-10 23:24:24 +02:00
degasus a0dcebba37 JitArm64: replace MOVI2R with MOVP2R when possible.
This skips the (u64) cast.
2016-09-10 11:01:18 +02:00
degasus 789e776a47 JitArm64: Fix block linking.
Double negation fail, sorry.
2016-09-10 11:01:18 +02:00
degasus be763949bc JitArm64: Drop 32bit alignment restriction of the memarea.
ADD() is almost as fast as MOVK(), and we already have a register for the memory location. Let's just use it.
2016-09-10 11:01:18 +02:00
Bernhard Urban 976da3707a arm64: add comment about data cache flushing 2016-09-10 08:05:16 +02:00
Bernhard Urban fff8221b63 arm64: fixes around icache flushing 2016-09-10 02:31:07 +02:00
aldelaro5 09df343247 Move Memchecks support out of debug only builds
It wouldn't impact performance until at least one memcheck is enabled.  Because of this, it can be used in release builds without much impact, the only thing that woudl change is the use of HasAny method instead of preprocessor conditionals.  Since the perforamnce decrease comes right when the first memcheck is added and restored when the last is removed, it basically is all beneficial and works the same way.
2016-09-09 15:05:54 -04:00
Markus Wick 6e488e65e3 Merge pull request #4013 from leoetlino/wx-assert-fix
Drop Dolphin patch to wxWidgets (and fix issues)
2016-09-09 17:27:07 +02:00
Lioncash 5b3c74a31a OGL: Remove unnecessary c_str calls 2016-09-09 06:30:34 -04:00
Mat M 1eacb8fd59 Merge pull request #4115 from aldelaro5/memorycheck-memorywindow-update-fix
Fix the breakpoint list not updating after adding a memory check via the memory view
2016-09-09 02:41:06 -04:00
Anthony 145ebd34e2 Merge pull request #4126 from aldelaro5/debugger-pause-button-fix
Fix the pause/play toolbar button not updating when reaching a breakp…
2016-09-08 20:10:19 -05:00
aldelaro5 ea2effcc7d Add formatting options for viewing registers
All formatting are individual per registers and they all have one option to go back to their original hexadecimal form.

- GPR: signed integer, unsigned integer, float
- FPR: double

Also happened to come accross an issue where editing the PFR would ignore the higher 32 bits of the new value, this had to be fixed for the format to work.
2016-09-08 10:50:04 -04:00
EmptyChaos 2e14920e16 CoreTiming: Guarantee FIFO processing of timed events
The min-heap provides no ordering when the key is the same on 2
nodes. Disambiguate identical times by tracking the order items
were added into the queue.
2016-09-08 19:46:42 +10:00
JDV 26068c6cb9 Fix focus bug when using render to main window feature 2016-09-07 17:26:17 -06:00
Jules Blok da43f9a156 PixelShaderGen: Always divide the texture coordinates by q.
Some games will set q to a different value than 1.0 through
texture matrix manipulations. It seems the console will still
do the division in that case.
2016-09-07 21:13:16 +02:00
JDV d486fdfdb7 Keep tag consistent on traversal settings reset 2016-09-07 10:50:53 -06:00
JosJuice d0a323cce7 Merge pull request #4192 from TylerAldrich/typo_fix
Boot: Fix minor comment typo
2016-09-07 17:35:35 +02:00
Léo Lam e8cb4119b8 Drop Dolphin-specific patch to wxWindows
This removes a Dolphin-specific patch to the wxWidgets3 code
for the following reasons:

* Calling wxWindowGTK::DoSetSize on a top-level window can end up
  calling wxTopLevelWindowGTK::DoMoveWindow, which triggers an assert
  because it is not supposed to be called for a top-level wxWindow.

* We should not be patching the wxWidgets code because that means the
  toolbars will still be broken if someone builds without using the
  WX that is in our Externals.

Instead, we now use a derived class for wxAuiToolBar and override
DoSetSize() to remove the problematic behaviour to get the same effect
(fixing toolbars) but without changing Externals code and without
causing asserts and other issues.
2016-09-07 15:15:09 +02:00
Léo Lam 4e402379e3 IPC_HLE: Fix warnings about missing override 2016-09-07 15:09:45 +02:00
Tyler Aldrich 08c72abf0f fix minor typo, 0x20 != 20 bytes 2016-09-07 08:01:00 -04:00
Scott Mansell fe41dff228 Fix the master build. 2016-09-07 20:10:03 +12:00
Scott Mansell d951f9e765 Merge pull request #3771 from phire/pr3771
Remove instant ARAM DMA hack (Fixes Sarge's War)
2016-09-07 19:09:39 +12:00
Scott Mansell 42e91dd815 Merge pull request #4189 from phire/efb_linear_downsampling
EFB2RAM: Downsample higher resolutions with linear filtering.
2016-09-07 17:44:16 +12:00
Chris Burgener 69eed56256 Fix recursive code 2016-09-06 22:45:50 -04:00
Scott Mansell 62d7a698da Merge pull request #4145 from tenthmile/WiiOrientationModifier
Emulated Wiimote Orientation Modifier
2016-09-07 14:20:02 +12:00
Scott Mansell 7311cd8b6e Merge pull request #4137 from aldelaro5/memCheck-crash-fix
Fix a crash when adding the first memory check while the game is running
2016-09-07 14:19:19 +12:00
Chris Burgener 23b2601133 Fix advanced config panel staying disabled after TAS recording 2016-09-06 22:12:13 -04:00
Scott Mansell f5e870bbe5 Merge pull request #4135 from RisingFog/remove_wii_limits_rtc
Fix issues with Custom RTC when set past the year 2038
2016-09-07 14:05:58 +12:00
Scott Mansell 366a38a917 Merge pull request #4142 from mbc07/IPC_HLE_usb_ven
[IPC HLE] Implement /dev/usb/ven with very basic functionality
2016-09-07 13:51:55 +12:00
Scott Mansell dbface94ea And remove the feature from the Arm64 jit too. 2016-09-07 12:53:14 +12:00
Scott Mansell c354dfcd2f Remove instant ARAM DMA mode.
Now that our timings are much more accurate it doesn't look like we
need it anymore. And the instant ARAM DMA mode + scheduling fixes
ctually breaks ATV: Quad Power Racing 2 (causing all sorts of werid
bugs).
2016-09-07 12:53:14 +12:00
Scott Mansell f5c70a4b27 EFB2RAM: Downsample higher resolutions with linear filtering. 2016-09-07 11:17:32 +12:00
Markus Wick 18030ebfb4 Merge pull request #4179 from magcius/xinput2-default
Remove the old Xlib backend
2016-09-06 10:26:26 +02:00
degasus a4d72ac6e3 MMU: Add small BAT comment. 2016-09-06 08:43:31 +02:00
degasus ce5dac11a2 Boot: Update BAT lookup table on booting ELF. 2016-09-06 08:43:31 +02:00
degasus 6493ea1eb9 MMU: Coding style fixes. 2016-09-06 08:43:31 +02:00
degasus ae1421b606 JitArm64: Rebase failure. 2016-09-06 08:43:31 +02:00
degasus 2925a5b219 Jit64: Simplify dcbz. 2016-09-06 08:43:31 +02:00
degasus ef0dcfe558 MMU: Small fixes. 2016-09-06 08:43:31 +02:00
magumagu d557310371 Support for dynamic BAT modification (dynamic-bat).
Fundamentally, all this does is enforce the invariant that we always
translate effective addresses based on the current BAT registers and
page table before we do anything else with them.

This change can be logically divided into three parts.  The first part is
creating a table to represent the current BAT state, and keeping it up to
date (PowerPC::IBATUpdated, PowerPC::DBATUpdated, etc.).  This does
nothing by itself, but it's necessary for the other parts.

The second part (mostly in MMU.cpp) is simply removing all the hardcoded
checks for specific untranslated addresses, and consistently translating
addresses using the current BAT configuration. Very straightforward, but a
lot of code changes because we hardcoded assumptions all over the place.

The third part (mostly in Memmap.cpp) is making the fastmem arena reflect
the current BAT configuration.  We do this by redoing the mapping (calling
memmap()) based on the BAT table whenever it changes.

One additional minor change is that translation can fail in two ways:
either the segment is a direct store segment, or page table lookup failed.
The difference doesn't usually matter, but the difference affects cache
instructions, like dcbz.
2016-09-06 08:43:22 +02:00
aldelaro5 6f54c3207c Fix registerView updates issues when stepping over or stepping out
For step over, it was updating twice which actually made the red display on the register view (when a register changes since) malfunction.  Since it doesn't seem to be usefull to update before AND after the run, the one before the run was removed.

For step out, well, because there was no chances given for the thread to run as it is single stepping all the time, I only added a call to update after it was done.
2016-09-05 23:45:24 -04:00
EmptyChaos 014714d515 WII_IPC_HLE: Fix Reinit
Init cannot be called more than once because it registers the
CoreTiming callbacks, that trips the assertions and will cause
anyone with PanicAlerts disabled to crash.
2016-09-06 12:59:22 +10:00
Scott Mansell 5932ded806 Merge pull request #4183 from aldelaro5/if-simplification-slowmem
Simplify an if condition after PR #4078
2016-09-06 13:20:58 +12:00
aldelaro5 173bdc766d Simplify an if condition after PR #4078 2016-09-05 13:01:02 -04:00
Scott Mansell d29dae207a Merge pull request #4078 from comex/alwaysUseMemFuncs-for-write
Don't use the fast path when there are watchpoints enabled, for writes too
2016-09-06 04:55:17 +12:00
Scott Mansell 0119f1302f Merge pull request #4177 from phire/useless_cases
BPStructs: remove case statements which never match.
2016-09-06 00:56:09 +12:00
Scott Mansell a665743b70 BPStructs: remove case statments which never match.
Visual Studio's code analyzer complains about these.
2016-09-06 00:40:49 +12:00
Jasper St. Pierre 928d05ec47 InputCommon: Remove the Xlib backend
The XInput2 backend is more performant, so let's default to it and
remove the old, core-only backend.
2016-09-04 10:44:22 -07:00
Jasper St. Pierre 2b640a4f7d XInput2: Only do a round trip when the mouse has moved
This should cut down on round trips and blocking calls dramatically
during gameplay.
2016-09-04 10:44:22 -07:00
Jasper St. Pierre 980ecfba7f IPC_HLE_net_ssl: Include mbedtls/platform.h
My version of mbedtls seems to require this -- otherwise, it doesn't compile.
2016-09-04 10:44:22 -07:00
Scott Mansell f5fa5a7d32 Merge pull request #4168 from EmptyChaos/coretiming-cleanup
Core: CoreTiming Cleanup (Add UnitTests)
2016-09-04 11:48:54 +12:00
Mat M 0f359000c5 Merge pull request #4166 from lioncash/emitter-func
x64Emitter: Generify ABI_CallFunction variants
2016-09-03 07:26:34 -04:00
EmptyChaos 9d8f373016 VideoSoftware: Don't Init the PixelEngine twice
PixelEngine is initialized by InitializeShared()
2016-09-03 15:12:41 +10:00
EmptyChaos 3a85aa9817 EXI_DeviceMemoryCard: Use CoreTiming/DoState correctly
CoreTiming gets restored before ExpansionInterface so CoreTiming
events need to already be registered before the save state loading
begins. This means that the callbacks must be registered
unconditionally instead of on-demand.
2016-09-03 14:55:45 +10:00
EmptyChaos fb5537213a CoreTiming: Document initial startup behavior
Events don't update the downcount until after the first Advance(),
thus Advance() must be called once before scheduling works normally.
2016-09-03 14:55:45 +10:00
EmptyChaos 59465911d7 CoreTiming: Fix scheduling into the past
ForceExceptionCheck messes up the downcount and slice length if the
callback is scheduled into the past (g_slice_length becomes negative)
2016-09-03 14:55:44 +10:00
EmptyChaos aa16282516 Core: Change CoreTiming event key from int to EventType*
Replace 'int' keys with something that carries type information.
Performance is neutral.
2016-09-03 14:55:44 +10:00
EmptyChaos f15e4fb35e WII_IPC: Fix reregistering CoreTiming callback multiple times.
Separate state reset from Init().
2016-09-03 14:55:43 +10:00
Scott Mansell a32bb8f1b9 Movie: Fix null pointer derefrence.
Part of the acceleration data is packed in with the buttons. We
always have button data when we have acceleration data.
2016-09-03 16:46:48 +12:00
EmptyChaos 17c34ae0b1 CoreTiming: Data structure cleanup
Replace adhoc linked list with a priority heap. Performance
characteristics are mostly the same, but is more cache friendly.

[Priority Queues have O(log n) push/pop compared to the linked
list's O(n) push/O(1) pop but the queue is not big enough for
that to matter, so linear is faster over linked. Very slight gains
when framelimit is unlimited (Wind Waker), 1900% -> 1950%]
2016-09-03 12:46:14 +10:00
EmptyChaos b88b188819 CoreTiming: Cleanup naming conventions 2016-09-03 12:46:14 +10:00
Markus Wick da82389347 Merge pull request #4172 from phire/software_fog_error
VideoSoftware: Fix unsigned overflow bug in fog
2016-09-02 09:53:44 +02:00
Scott Mansell 0e7424b359 VideoSoftware: Fix unsigned overflow bug in fog
Was causing fog errors on the left half of the screen.

Only appeared to affect visual studio builds, GCC did the correct
thing.
2016-09-02 10:12:44 +12:00
Jules Blok d072d6d336 Merge pull request #4170 from Armada651/float-abs
VertexShaderManager: Explicitly use floating-point variant of abs.
2016-09-01 19:03:03 +02:00
Jules Blok 9fb6f93ca1 PixelEngine: Add missing static specifier for `s_token_finish_mutex`. 2016-09-01 17:28:48 +02:00
Jules Blok 376cadb862 VertexShaderManager: Explicitly use floating-point variant of abs.
Some compilers don't have an automatic abs() overload for floats.
Doesn't really matter if they use the integer variant here, but
it's better to be explicit about the fact that we're using floats.
2016-09-01 17:23:07 +02:00
Jules Blok 73b05b339b DVDInterface: Remove unused Triforce buffer. 2016-09-01 17:15:43 +02:00
Jules Blok 50984d85b0 Merge pull request #4164 from Armada651/sonic-clipping
VertexShaderGen: Move the sonic epsilon hack to the vertex shader.
2016-09-01 15:28:09 +02:00
EmptyChaos e0d4dc6fed VertexShaderGen: Fix D3D X3014 compile error
float2 requires 2 parameters in HLSL apparently.
2016-09-01 14:43:19 +10:00
Lioncash 13506d3c12 x64Emitter: Generify ABI_CallFunction variants
Gets rid of the need to cast to void* just to use the functions.
2016-08-31 22:54:47 -04:00
Jules Blok 15a009706d Merge pull request #4143 from Pringo/capitalize
Fix Graphics Settings Capitalization
2016-09-01 03:21:24 +02:00
Jules Blok 2ab9e5e610 Merge pull request #4165 from lioncash/global
Backends: Remove unnecessary references to the renderer global
2016-09-01 03:20:31 +02:00
Jules Blok debaf63fe8 VertexShaderGen: Move the sonic epsilon hack to the vertex shader.
In the vertex shader we have control over the depth clipping planes,
so we don't have to offset every floating point value and lose accuracy.
2016-09-01 01:14:14 +02:00
Lioncash ec7114a658 OGL: Remove unnecessary renderer global references 2016-08-31 14:19:56 -04:00
Lioncash 168e145fae D3D: Remove unnecessary renderer global references 2016-08-31 14:17:22 -04:00
Lioncash 9e26ef4aa8 D3D12: Remove unnecessary renderer global references 2016-08-31 14:14:51 -04:00
Preston Smith 94cbe0c12a Comments 2016-08-31 06:40:50 -05:00
Preston Smith e6ccd0729f Revert postMat movement 2016-08-31 02:14:51 -05:00
EmptyChaos 9842cef13f GameListCtrl: Reimplement Custom Paint to remove column lines.
This leaves system themes enabled and instead just repaints the
list view background to eliminate the column ruler lines.
2016-08-31 14:32:39 +10:00
EmptyChaos 50756d69c0 WX: Various fixes.
Dolphin no longer lowers itself below the top window when opening.
Dolphin no longer draws garbage lines all over the game list.

Use the correct platform macros so Dolphin can actually find the
translation catalogs on Unix.
2016-08-31 14:32:39 +10:00
EmptyChaos cf0b4c9387 ISOProperties: Add notification when Cheats are disabled.
If the user enables a cheat while cheats are globally disabled then
display a notice about it. Issue 9690.
2016-08-31 14:32:12 +10:00
EmptyChaos 00a4404045 CheatManager/ISOProperties: Refactor ActionReplay tabs as a class
Refactor Action Replay code into its own class like Gecko Codes.
2016-08-31 14:32:12 +10:00
Preston Smith 89b1d613cc Remove else in software renderer 2016-08-30 18:33:27 -05:00
Preston Smith e0a1ab9027 lint fix 2016-08-30 18:33:26 -05:00
Preston Smith 8f69de51ca inputform ABC1's q value is defaulting to 0
This is causing the 0 divide case to run when source row is using tex0-7 and inputform is ABC1.
2016-08-30 18:33:25 -05:00
Preston Smith 767f56d7c8 Software renderer fix 2016-08-30 18:33:24 -05:00
Preston Smith 5a6b876dbd Hardware renderer fix 2016-08-30 18:33:23 -05:00
Jules Blok 92920c4005 TextureCacheBase: Address 0x0 is valid, don't you dare ignore it. 2016-08-30 16:45:49 +02:00
Sepalani 53b64435ae Map: Prevents symbols from being stripped 2016-08-30 17:59:49 +04:00
Scott Mansell efac0cf8fe Merge pull request #4156 from phire/interlaced_panic
VideoInterface: Fix panic alert on interlaced fields.
2016-08-29 23:10:55 +12:00
Scott Mansell c4786ad70e Merge pull request #4151 from phire/fix_lswx
Fix bug in interpreter's lswx. Was overwriting extra register.
2016-08-29 23:10:23 +12:00
Scott Mansell 17e64b75a5 VideoInterface: Fix panic alert on interlaced fields.
For some reason this was only showing up in video software.

Not sure why.
2016-08-29 23:08:23 +12:00
Scott Mansell fc2b0e0f45 Simplify lswx loop. 2016-08-29 22:57:37 +12:00
Scott Mansell fc969388f0 Merge pull request #4152 from aldelaro5/debugger-font-fix
Fix the Debugger font not appearing on the captions of panes
2016-08-29 11:17:59 +12:00
Tim Maile 3266bf052a Toggle and Switches for upward/sideway WiimoteEmu 2016-08-28 12:47:24 +02:00
aldelaro5 cd515911c0 Fix the user font not appearing on the captions of panes
Both those in the code window and the ones that appears when the user select edit perpective.  The one that isn't fixed by this is in edit perspective mode, when the user drags a panel out and it becomes a floating window.
2016-08-27 21:29:03 -04:00
Scott Mansell 967c371d7a Zero case behaviour confirmed by hardware test
Modify comments to reflect this
2016-08-28 09:48:29 +12:00
Scott Mansell ab3eedcc33 While I'm here, stswx should wrap too. 2016-08-27 14:15:43 +12:00
Scott Mansell 5b47635b3f Fix bug in interpreter's lswx. Was overwriting extra register.
When n was a multiple of 4, the old implementation would overwrite
the following register with 0.

This was causing Not64 to crash.

Thanks to Extrems for spotting this.
2016-08-27 14:15:42 +12:00
Chris Burgener df0f7657d0 Fix frame dump issues where frame dumping stops before next drawn frame 2016-08-24 13:00:25 -04:00
Jules Blok 35a270d2a8 TextureConversionShader: Don't use the float specifier in shader code. 2016-08-24 17:42:32 +02:00
Scott Mansell 0fbf72cbf1 Merge pull request #4140 from Armada651/ww-depth
D3D: Correctly invert the viewport depth range.
2016-08-24 02:28:53 +12:00
Jules Blok f7987017a0 PixelShaderManager: Use signed integers for the depth range parameters. 2016-08-23 15:54:05 +02:00
Jules Blok a8a9348913 OGL: Handle cases where reversed depth is already used. 2016-08-23 15:54:04 +02:00
Scott Mansell 92f165d756 Merge pull request #4144 from aldelaro5/debugger-insertInstruction-fix
Invalidate the icache when inserting a nop or a BLR
2016-08-24 00:22:24 +12:00
aldelaro5 cc7aa73081 Invalidate the icache when inserting a nop or BLR
Also schedule an event to invalidate it if the emu thread is running.
2016-08-23 07:37:54 -04:00
aldelaro5 47d1b07abb Add a thread safe variant of invalidating the icache
This is used by the next commit.
2016-08-23 07:37:41 -04:00
Jules Blok 65472260d8 D3D: Correctly invert the viewport depth range. 2016-08-23 09:57:11 +02:00
Markus Wick 52af0770c3 Merge pull request #4141 from lioncash/vtx
VertexManagerBase: Get rid of static state
2016-08-23 07:33:25 +02:00
Pringo 9446a2550b Fix Graphics Settings Capitalization 2016-08-22 21:25:54 -07:00