Fixes a regression from #4862, which caused the NCCH title ID checking
heuristic to be skipped whenever the exheader is replaced.
I was thinking the heuristic wouldn't be needed in that case, but it
turns out that many users still have pathological NCCHs that indicate
they are encrypted but are actually decrypted...
Now the original exheader is always read and used for the heuristic
to determine whether the NCCH is actually encrypted; only then do we
load a replacement exheader (if it exists) to avoid affecting the
heuristic.
Separate options are now provided for FFmpeg AAC audio decoder and FFmpeg video dumper. This allows users to configure Citra with greater freedom.
Also, previously for Linux builds, AAC decoder is accidentally enabled along with the dumper, which could potentially cause patent issues (?). This commit fixes it by only enabling video dumper.
Previously, telemetry results couldn't give a good estimate for
performance over time, because it didn't include any fields related to
performance. With this, devs should be able to query metabase for mean
frametime to check for performance regressions after a change is made.
For better tracking of performance regressions on incoming changes, this
change adds a way to dump frametime to file by changing an ini config
option. This is intentionally hidden as its only useful to a small
number of individuals, and not really applicable to the general
userbase.
Cyclical dependencies will result in errors. Redirecting err to null
doesn't help. I removed the redirection so that errors and warnings
would show up (they might be useful for us).
As FFmpeg is added, even more cyclical dependencies are present now. I
do not want to figure out what to install first to fix such things, so I
just decided to ignore all of them with a `0` at the end.
The original purpose of freezing CMake is to use a **higher** version than supplied in order to fix a certain issue. Now that a very long time has passed and mingw's CMake has been updated, there's really no reason to still freeze it any more. What's more, trying to use a certain version is unreliable by pacman's design and will probably cause issues for using older versions of dependencies. The current (and previous) mingw errors may come from this...
Two PBOs are used to speed up pixel copying process. To avoid getting the wrong speed/FPS, a new parameter is added to DrawScreens about whether to increase the frame count.