2017-07-23

Dolphin Git 5.0-4772

EmuCR: DolphinDolphin Git 5.0-4772 is compiled. This is the trunk of Dolphin Project. Dolphin is the first Gamecube emulator able to run commercial games! Dolphin is a Gamecube, Wii and Triforce (the arcade machine based on the Gamecube) emulator which supports many extra features and abilities not present on the original consoles. It has a partial Wii support and plays most Gamecube games.

Dolphin Git changelog:
* Merge pull request #5815 from leoetlino/about
Qt/AboutDialog: Fix the copyright string
* Qt/AboutDialog: Fix the copyright string
* Merge pull request #5814 from ligfx/macremovecfbundlelocalizations
Remove CFBundleLocalizations from Info.plist
* Remove CFBundleLocalizations from Info.plist
It's only needed for apps that don't use .lproj folders.
* Merge pull request #5787 from ligfx/wxsortfallbacktotitle
Wx: make GameListCtrl fallback to sorting by title
* Wx: make GameListCtrl fallback to sorting by title
Fixes an issue with game items moving around randomly when resorted.
* Merge pull request #5739 from leoetlino/correct-key
IOS/ES: Use the correct import/export key (fix DLC)
* 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.
* IOSC: Load the backup/PRNG key
* EcWii: Add function to get the backup key
* ESFormats: Add entry for unknown title flag
* IOSC: Add support for importing decrypted keys directly
* Merge pull request #5797 from ligfx/qtoptionsmenu
Qt: implement remainder of 'Options' menu
* Qt: implement remainder of 'Options' menu
* ListTabWidget: disallow deselecting items
* Qt: extract ListTabWidget from SettingsWindow
* Merge pull request #5812 from ligfx/gettexttizeqt
gettextize: extract arguments to Qt's `tr`
* Qt/AboutDialog: remove literal UTF-8 characters
* gettextize: extract arguments to Qt's `tr`
* Merge pull request #5806 from Starsam80/qt-movable-headers
Qt: Allow the game list headers to be rearranged
* Qt: Allow the game list headers to be rearranged
* Merge pull request #5808 from leoetlino/hci-array
BT: Use a std::array for all Bluetooth addresses
* 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) for all BT addresses.
* Merge pull request #5811 from lioncash/leak
TraversalClient: Fix memory leaks in ReleaseTraversalClient()
* TraversalClient: Fix memory leaks in ReleaseTraversalClient()
release() relinquishes ownership of a pointer, it doesn't actually free
it.
* Merge pull request #5791 from leoetlino/wiimote-indicator
Remove Wii Remote connection status from status bar
* 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.
* Merge pull request #5803 from leoetlino/pause-and-lock
Replace balanced Core::PauseAndLock calls with RunAsCPUThread
* Core: Replace recursive locking from PauseAndLock
PauseAndLock cannot be called recursively anymore.
* 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.

Download: Dolphin Git 5.0-4772 x64
Download: Dolphin Git 5.0-4772 Android
Source: HereDolphin Git 5.0-2877

0 Comments

Post a Comment