Commit graph

19603 commits

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Symbols from all sections are loaded.

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

This adds the information based on the games' MakerID.
2017-10-01 14:53:01 -04:00
JosJuice
db77549502 Show event name when scheduling from wrong thread 2017-09-30 16:14:59 +02:00
Mush Man
0e7e7f6fc6 Change Wii Save Import alerts
Bracketed plurals in dialogue boxes and removed a prompt by moving a
backup message to another warning.
2017-09-29 20:13:14 +10:00
PEmu1
93e1235a54 More Capitalization Changes 2017-09-27 21:37:44 +02:00
Michael M
806a8a7f32 MappingWindow: store profile filename in QComboBox userdata 2017-09-27 21:04:34 +02:00
Leo Lam
743568f9d4 Merge pull request #5984 from spycrab/qt_gecko
Qt/GameList: Implement "Gecko codes" Tab
2017-09-27 20:50:28 +02:00
Leo Lam
1501ff7f8e Merge pull request #5714 from ligfx/qtadvancedconfig
Qt: Advanced config pane
2017-09-27 20:24:48 +02:00
Léo Lam
c0c1cb3010 IOS: Assume ticket is unpersonalised for WAD imports
The newer title dumpers don't clobber tickets anymore (that's good!),
which means personalised tickets still have the console specific data
used to decrypt the title key in them. Dolphin should ignore that data
when importing WADs, because the title key has already been decrypted,
and we must not try to decrypt it *again*.
2017-09-27 10:48:52 +02:00
Léo Lam
5c2e03380f Qt: Always show the stop button in the toolbar
Reverts a previous Qt change that was likely not intended to match WX.
2017-09-26 17:44:18 +02:00
Léo Lam
8dcd5cdd1d Qt: Reduce spacing between toolbar actions 2017-09-26 17:43:51 +02:00
Léo Lam
b05207325d Qt: Fix render to main
The render widget was not hidden at the right moment.
2017-09-26 17:43:50 +02:00
Léo Lam
f28839acf9 Qt: Make toolbar buttons wider
Makes the toolbar look more comfortable instead of all squished
together, and more similar to our current look.

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

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

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

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

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

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

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

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

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

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

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

This works quite well for registers, since the accelerator can do
whatever it wants internally. For example, the start/end/current
addresses are masked -- having a getter/setter makes it easier to
enforce the mask.
2017-09-24 20:48:28 +02:00
Léo Lam
017bfcda2b DSP: Fix gdsp_ifx_write to take a u16 value
And change the JIT to clear the upper 16 bits when calling the write
function to work around bugs in some compilers like clang.
2017-09-24 20:48:28 +02:00
Leo Lam
969a72faed Merge pull request #6079 from spycrab/qt_fix_log
Qt: Fix log / log config window not being marked as hidden when closing
2017-09-21 17:29:24 +02:00
Anthony
56d0cb8d61 Cleanup var naming in ISOProperties 2017-09-20 16:46:46 -07:00
Anthony
47a2a16b77 [Qt] Fix bolding of GraphicsChoice.cpp 2017-09-20 09:13:23 -07:00
spycrab
0b43e1bcf4 Qt: Fix log / log config window not being marked as hidden when closing 2017-09-20 15:12:26 +02:00
spycrab
6c7e392f0c Qt/GraphicsSettings: Fix overriden settings not being bolded 2017-09-20 15:12:05 +02:00
Markus Wick
d1abd71ccb Merge pull request #6070 from lioncash/ogl-tcache
OGL/TextureCache: Move file statics to the TextureCache class
2017-09-20 10:19:39 +02:00
Leo Lam
c9f790dca4 Merge pull request #6072 from JosJuice/eject-disc
Add an option to eject the disc
2017-09-18 12:47:47 +02:00
Pierre Bourdon
43f067c6e1 StringUtil: support TryParse(u16*) 2017-09-18 05:04:11 +02:00
Pierre Bourdon
3f481a70be Fix sample wrapping with new DSP ADPCM decoding
Fixes possible regression from #6069.
2017-09-18 02:54:58 +02:00
Pierre Bourdon
755253948b Merge pull request #6069 from leoetlino/common-accelerator
DSP: Deduplicate the accelerator code
2017-09-17 23:20:37 +02:00
JosJuice
e4faabb763 Add an option to eject the disc 2017-09-17 11:44:48 +02:00
JosJuice
3c770693a2 DVDInterface: Remove a (mostly) outdated comment 2017-09-17 11:44:32 +02:00
JosJuice
b6bc3bc7c9 Remove DVDInterface::ChangeDiscAsHost
There isn't much point in keeping this utility function around
now that RunAsCPUThread provides a simple way of running things
on the CPU thread.
2017-09-17 11:44:27 +02:00
Lioncash
6c326e7215 InputConfigDiag: Fix building DolphinWX on the latest MSVC
const char[1] and wxString() can both be converted to multiple common
types, so this results in an ambiguous conditional expression
compilation error (C2445)
2017-09-17 02:38:12 -04:00
Lioncash
dbd9aeb210 OGL/TextureCache: use std::array for the palette shader array 2017-09-17 02:34:02 -04:00
Lioncash
6d9ed9dc32 OGL/TextureCache: Move file statics to the TextureCache class
These rely on instance state, or are used within instance-based class
member functions, so they should belong to the instance itself instead
of being file statics.
2017-09-17 02:33:56 -04:00
Léo Lam
7022a18e9a IOS/SSL: Show built-in cert error once per session
See: https://bugs.dolphin-emu.org/issues/10546
2017-09-16 20:43:49 +02:00
Léo Lam
38a7196ec6 DSP: Deduplicate the accelerator code
The logic is entirely the same; only the inputs and outputs are
different, so deduplicating makes sense.

This will make fixing accelerator issues easier.
2017-09-16 16:47:43 +02:00
Leo Lam
764e058865 Merge pull request #6063 from ligfx/queuemethodonobject
Qt QueueOnObject/RunOnObject: accept pointers to member functions
2017-09-16 16:46:44 +02:00
Leo Lam
68baf7d8fc Merge pull request #6062 from ligfx/fixqtcorestate
Settings: register the Core::State type with Qt
2017-09-15 22:38:42 +02:00
Leo Lam
93574bf016 Merge pull request #6064 from JosJuice/filesystemwidget-nullptr
DolphinQt2: Check for file systems being nullptr
2017-09-15 20:58:52 +02:00
Léo Lam
6f1b156020 VolumeGC: Add a default constructor for ConvertedGCBanner
Without this, it fails to build with the following error in g++ 7.2.0:

> constructor required before non-static data member has been parsed
2017-09-15 20:47:49 +02:00
spycrab
f90e81b9db Qt/Properties: Implement "Gecko codes" tab 2017-09-15 19:45:46 +02:00
JosJuice
a0cddc579f DolphinQt2: Check for file systems being nullptr
nullptr gets returned for file systems that are deemed invalid.
2017-09-15 19:44:23 +02:00
Michael M
7f812a7a03 RunOnObject: accept pointers to member functions 2017-09-15 10:36:33 -07:00
Michael M
1e27e87d93 QueueOnObject: accept pointers to member functions 2017-09-15 10:36:32 -07:00
Michael M
6191f04524 Settings: register the Core::State type with Qt 2017-09-15 10:35:38 -07:00
Michael M
4ea8166b93 Qt: Advanced config pane 2017-09-15 10:35:01 -07:00
Leo Lam
7cb8d6612c Merge pull request #5870 from JosJuice/lazy-filesystem
DiscIO: Use Common::Lazy more
2017-09-15 19:30:05 +02:00
JosJuice
f294599e73 DiscIO: Use Common::Lazy for loading GC banners 2017-09-15 19:21:50 +02:00
Arthur Carlsson
79a646a67d Prevent multiple HID elements of same usage type on OSX
On OSX, iterate the HID device's elements and only store the last of
each type to accommodate for flaky hardware
2017-09-15 19:19:46 +02:00
Leo Lam
2b4bf8662a Merge pull request #5577 from ligfx/separateexpressionparsingandbinding
ControlReference/ExpressionParser: separate parsing from binding
2017-09-15 19:11:57 +02:00
spycrab
5aecd61ede Qt/Settings: Implement cheat settings 2017-09-15 19:01:23 +02:00
spycrab
8687f6aae7 Qt: Implement CheatWarningWidget 2017-09-15 19:01:23 +02:00
spycrab
8580e159fe Qt/SettingsWindow: Add SelectGeneralPane method 2017-09-15 19:01:22 +02:00
JosJuice
ca36c977d9 DiscIO: Remove m_partition and m_volume from FileSystem
The last commit made m_partition unnecessary, and m_volume
has been unnecessary ever since the PR that added DiscExtractor.
2017-09-15 18:57:05 +02:00
JosJuice
38304da947 DiscIO: Use Common::Lazy for loading filesystems
This simplifies FileMonitor a lot and also lets us
clean up FilesystemPanel.
2017-09-15 18:57:05 +02:00
Leo Lam
0d07821935 Merge pull request #6024 from ligfx/coreonstatechangedcallback
Qt: use Settings::EmulationStateChanged
2017-09-15 18:45:17 +02:00
Leo Lam
30dd544931 Merge pull request #5990 from spycrab/qt_logger_cleanup
Qt: Make Log and Log Configuration widget separate from dock
2017-09-15 18:30:45 +02:00
Michael M
738acb6c07 FifoRecorder: move function definitions out of header 2017-09-14 17:28:39 -07:00
Michael M
a47ce0d625 FifoRecorder: remove use of volatile 2017-09-14 17:28:39 -07:00
Michael M
60cba5722c Qt: use translations 2017-09-14 17:15:21 -07:00
Michael M
bdcd6df459 InterfaceConfigPane: remove unneeded comment
It notes that using "no" for Norwegian is not allowed by wxWidgets, but
"nb" is the correct code for Norwegian Bokmål anyways.
2017-09-14 17:15:21 -07:00
Michael M
b22ed9683d InterfacePane: add all interface languages 2017-09-14 17:15:21 -07:00
Michael M
294b1895ef ExpressionParser: std::move() tokens vector to parser 2017-09-14 12:53:36 -07:00
Michael M
31f1c06226 ControlReference: don't reparse expression when references are updated 2017-09-14 12:53:35 -07:00
Michael M
c332580b83 ControlReference/ExpressionParser: separate parsing from binding 2017-09-14 12:53:35 -07:00
Michael M
ba87a50338 ExpressionParser: add FallbackExpression node type 2017-09-14 12:53:35 -07:00
Michael M
7e74961eb1 ExpressionParser: expose ExpressionNode directly 2017-09-14 12:53:35 -07:00
Michael M
85301e2bae ParseStatus: replace NoDevice with EmptyExpression 2017-09-14 12:53:35 -07:00
Michael M
754efd75c5 ExpressionParser: remove DummyExpression 2017-09-14 12:53:35 -07:00
Michael M
f1ff1e3d08 ExpressionParser: clean up ControlExpression 2017-09-14 12:53:35 -07:00
Michael M
3df945f8d0 ExpressionParser: replace bare pointers with unique_ptrs 2017-09-14 12:53:35 -07:00
Michael M
c33e391d26 InputConfigDiag: don't use entire ExpressionParse namespace 2017-09-14 12:53:35 -07:00
Michael M
bbb7c17235 ExpressionParser: use internal ParseResult struct instead of out-params 2017-09-14 12:53:35 -07:00
Michael M
d2821e14fa ParseExpression: return a std::pair 2017-09-14 12:53:34 -07:00
spycrab
48d57f223d Qt: Make Log and Log Configuration widget separate 2017-09-14 20:56:48 +02:00
Michael M
3e1072b24d Qt: use Settings::EmulationStateChanged 2017-09-13 17:30:18 -07:00
Michael M
8e805dcbf4 Core: SetOnStoppedCallback -> SetOnStateChangedCallback 2017-09-13 17:30:18 -07:00
Michael M
22a9a08b24 Add Core::State::Starting 2017-09-13 17:30:18 -07:00
Michael M
d217e797f2 move Movie::DoFrameStep to Core::DoFrameStep 2017-09-13 17:30:18 -07:00
Leo Lam
5a89d13655 Merge pull request #6059 from spycrab/qt_columns
Qt: Bring column selection up to par with Wx
2017-09-13 22:13:27 +02:00
spycrab
e7318fda34 Qt: Bring column selection up to par with Wx 2017-09-13 22:05:45 +02:00
Lioncash
343bde2712 Software/TextureSampler: const correctness 2017-09-11 20:13:47 -04:00
gamemasterplc
4908d79a71 Remove Function Address Symbol Mask
The upper 4 bits were masked out of function addresses prior when generating symbols.
2017-09-11 15:39:22 -05:00
Markus Wick
b0f93f2acc Merge pull request #6053 from spycrab/qt_action
Qt/FilesystemWidget: Use AddAction helper
2017-09-11 15:18:09 +02:00
spycrab
2a7ad0b721 Qt/FilesystemWidget: Use AddAction helper 2017-09-11 14:25:30 +02:00
Stenzek
24ddea04ce VideoBackends: Move SamplerState to common 2017-09-11 20:01:54 +10:00
Stenzek
340aabbb06 VideoCommon: Add helpers for generating common render states 2017-09-11 20:01:52 +10:00
Stenzek
b7a099814a Vulkan: Clear contents of EFB convert framebuffer at create time
Fixes a validation layer warning when converting pixel formats.
2017-09-11 20:01:50 +10:00
Stenzek
e584090822 Vulkan: Fix interface mismatch in RGB->YUYV shader 2017-09-11 20:01:48 +10:00
Stenzek
836b9b9acb Renderer: Move cull mode to a rasterization state object
Also moves logic for primitive handling to VideoCommon.
2017-09-11 20:01:45 +10:00
Stenzek
2869c570f1 Renderer: Move depth state to VideoCommon and seperate from bpmem 2017-09-11 19:40:26 +10:00
Stenzek
4d36f0cc87 Bitfield: Cast value to storage type in assignment operator
This allows us to use enum classes in bitfields.
2017-09-11 19:40:25 +10:00
Ryan Meredith
f8b89b7b1a Update -d argument help message 2017-09-10 12:28:53 +02:00
Léo Lam
cc40931d64 PPCSymbolDB: Optimise symbol lookups 2017-09-10 11:42:12 +02:00
Léo Lam
8cd8e9d905 JIT: Don't always look up symbols for blocks
With tons of symbols, this results in noticeable stuttering, so
skip lookups if the perf dir option isn't set anyway.
2017-09-10 11:42:12 +02:00
Markus Wick
432117047b Merge pull request #6045 from lioncash/sw-vertloader
SWVertexLoader: Minor cleanup
2017-09-10 11:23:25 +02:00
Markus Wick
88624f638f Merge pull request #6041 from stenzek/streambuffer-fence
StreamBuffer: Don't wait on fences twice when reserve > commit
2017-09-10 11:20:01 +02:00
Mat M
a9b339fb65 Merge pull request #6048 from spycrab/qt_fix_tools
Qt: Fix "Load Wii System Menu" being in the wrong place
2017-09-10 02:18:13 -04:00
Stenzek
7141e6d57e Merge pull request #6032 from stenzek/postprocess-save
VideoConfigDiag: Fix bug where postprocessing shader wasn't saved to INI
2017-09-10 16:05:03 +10:00
spycrab
c3a08f8653 Qt: Fix "Load Wii System Menu" being in the wrong place 2017-09-10 06:43:29 +02:00
Lioncash
696e1b40b5 Common: Move version strings to their own header
Ideally Common.h wouldn't be a header in the Common library, and instead be renamed to something else, like PlatformCompatibility.h or something, but even then, there's still some things in the header that don't really fall under that label

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

This also places them into the Common namespace, as opposed to letting them sit in the global namespace.
2017-09-09 19:28:10 -04:00
Lioncash
46579fe41c SWVertexLoader: Make SWVertexLoader a final class
It doesn't make sense to allow extending this class based off the way
the VertexLoader API is set up.
2017-09-09 15:33:30 -04:00
Lioncash
dd8b41326c SWVertexLoader: Make SetFormat() and ResetBuffer() private
SetFormat() is only ever used internally. ResetBuffer() is only
used to implement the VertexManagerBase class interface, so
there's no need to make it protected.
2017-09-09 15:33:30 -04:00