Commit Graph

9206 Commits

Author SHA1 Message Date
Johel Ernesto Guerrero Peña f8eb4b7edc fix(net): prevent gibberish padding on linux 2021-03-30 08:55:58 -04:00
Pengfei Zhu 8e3c7674d8
Merge pull request #5644 from liushuyu/master
bootmanager: fix memory leaks when loading save states
2021-03-06 16:23:24 +08:00
xperia64 c2d36cde9f
Fix destructor order in rasterizer cache (#5725) 2021-02-21 18:05:27 -05:00
Marshall Mohror e6c479f497
Merge pull request #5710 from BreadFish64/bonk_textures
gl_rasterizer_cache: Remove all fully invalid surfaces from the cache
2021-02-11 19:06:03 -06:00
Marshall Mohror 5c58620618
Merge pull request #5717 from FearlessTobi/port-5895
Port yuzu-emu/yuzu#5895: "string_util: Remove MSVC workaround for converting between UTF8/UTF16"
2021-02-10 23:04:35 -06:00
Morph 7806206e90 string_util: Remove MSVC workaround for converting between UTF8/UTF16
This has been fixed as of Visual Studio 2019 Version 16.2
2021-02-11 00:16:33 +01:00
xperia64 2ddecf35d2
Avoid leaking fences during re-presentation (#5713)
* Avoid leaking fences during re-presentation
2021-02-09 11:32:48 -05:00
Marshall Mohror 5776bdda82
Merge pull request #5546 from FearlessTobi/port-5524
Port yuzu-emu/yuzu#4086 and yuzu-emu/yuzu#4611: Xbyak cleanups
2021-02-08 16:00:18 -06:00
BreadFish64 ff56fdf37d fix recycling custom textures 2021-02-08 15:53:06 -06:00
Pengfei Zhu e770fd6e95
Merge pull request #5707 from vitor-k/mod-scale
configure_input: fix modifier scale saving
2021-02-08 13:14:19 +08:00
zhupengfei 996ca25a2e
core_timing: Lock CoreTiming event queue while deserializing
To handle those classic asymmetric constructor/destructor side effects
2021-02-08 11:25:39 +08:00
zhupengfei b2531310b4
Minor improvements to the UX
1. Game will now be paused on movie finish
2. Added 'Save without Closing'
2021-02-08 11:25:38 +08:00
zhupengfei f8eb9a541d
citra_qt: Fix potential indeterminstism caused by starting record/playback
Previously the movie was started *after* core starts running, causing potential indeterminism.

Some desyncs are still not fixed; they may be caused by core timing. More investigation is required.
2021-02-08 11:25:38 +08:00
zhupengfei e60e20666e
citra_qt: Allow enabling frame advance before emulation start
Effectively allows starting emulation as paused.
2021-02-08 11:25:37 +08:00
zhupengfei d6b64f6b09
citra_qt: Simplify movie recording code
The behavior shouldn't be changed.
2021-02-08 11:25:36 +08:00
zhupengfei 1780f8b5b8
core/movie: Add MovieFinished mode
Also mentioned in Laws of TAS.
2021-02-08 11:25:35 +08:00
zhupengfei e188f86582
core/movie: Add future event and timeline check
As specified in TASVideos [Laws of TAS](http://tasvideos.org/LawsOfTAS/OnSavestates.html)
2021-02-08 11:25:34 +08:00
zhupengfei b6f8cc884f
citra: Update SDL frontend 2021-02-08 11:25:33 +08:00
zhupengfei fb14bd956a
citra_qt: Add indicator in status bar
Since we do not have an overlay yet, it can be confusing whether movie is being recorded or played. This makes it clear.

Status messages (e.g. system archive missing) will be overriden, but that shouldn't be too important when recording movies.

Doubled the status bar updating frequency to provide a better experience. It now updates every second.
2021-02-08 11:25:32 +08:00
zhupengfei 113e0c7331
citra_qt: Rebuilt movie frontend
This is completely rebuilt, in order to allow setting author, displaying movie metadata, and toggling read-only mode.

The UX is changed to more closely match other emulators' behaviour. Now you can only record/play from start/reset (In the future, we might want to introduce 'record from savestate')

Also fixed a critical bug where movie file can be corrupted when ending the recording while game is still running.
2021-02-08 11:25:31 +08:00
zhupengfei 5a42a80f40
core/movie: Allow setting a playback completion callback
Instead of specifying it when starting playback. This is necessary as
you can end up playing the movie even if you started as Recording
(for example, loading a state in R/O mode will switch to Playing mode)
2021-02-08 11:25:30 +08:00
zhupengfei 06bc37a67d
core/movie: Remove program ID checks
Most other emulators handle this automatically in the frontend,
booting/restarting the corresponding game instead of reporting an error.
Therefore, remove these checks and errors from the module.
2021-02-08 11:25:29 +08:00
zhupengfei bd88667247
core/movie: Add a few fields
These fields are included in most emulators and required by TASVideos.

`input_count` is implemented by counting the number of 'PadAndCircle' states, as this is always polled regularly and can act as a time/length indicator.
TASVideos also require the input count/frame count to be verified by the emulator before playback, which is also implemented in this commit.
2021-02-08 11:25:28 +08:00
zhupengfei ebaa225bcb
core: Add read-only mode and separate savestate slots for movies
The read-only mode switch affects how movies interact with savestates after you start a movie playback and load a savestate. When you are in read-only mode, the movie will resume playing from the loaded savestate. When you are in read+write mode however, your input will be recorded over the original movie ('rerecording'). If you wish to start rerecording immediately, you should switch to R+W mode, save a state and then load it.

To make this more user-friendly, I also added a unique ID to the movies, which allows each movie to have an individual set of savestate slots (plus another set for when not doing any movies). This is as recommended by staff at TASVideos.
2021-02-08 11:25:27 +08:00
liushuyu 8290423d16
bootmanager: fix memory leaks when loading save states 2021-02-07 15:18:57 -07:00
Vitor K 2e3834f880
Fix macos build (#5703)
* Update deps.sh

GitHub's virtual environment provides 7zip and llvm by default, so brew may fail to install them as another version is already installed

* Use || true to ignore brew installation errors
2021-02-07 03:40:10 -05:00
Marshall Mohror 00c798991c
remove semicolon 2021-02-05 08:25:02 -06:00
Vitor Kiguchi 611b186a97 configure_input: set modifier_scale undonditionally when restoring default 2021-02-04 14:19:41 -03:00
Marshall Mohror 6b2e7b77cc
Merge pull request #5657 from FearlessTobi/port-5158
Port yuzu-emu/yuzu#5158: "video_core: Remove unnecessary enum class casting in logging messages"
2021-02-04 10:51:29 -06:00
Marshall Mohror e2adb51494
Merge pull request #5693 from FearlessTobi/port-5342
Port yuzu-emu/yuzu#5342: "yuzu: Migrate off of setMargin() to setContentsMargins()"
2021-02-04 10:50:32 -06:00
Marshall Mohror a1d6396a90
Merge pull request #5695 from FearlessTobi/port-4942
Port yuzu-emu/yuzu#4942: "core: Make use of [[nodiscard]] with the System class"
2021-02-04 10:50:00 -06:00
BreadFish64 a131f9eb74 gl_rasterizer_cache: don't place null textures in the recycler 2021-02-03 13:29:03 -06:00
Marshall Mohror 2461f67a98
Merge pull request #5671 from FearlessTobi/port-5217
Port yuzu-emu/yuzu#5217: "citra_qt/main: Save settings when starting guest"
2021-02-03 10:22:38 -06:00
Marshall Mohror fa67789dcd
Merge pull request #5667 from zhaobot/tx-update-20210101011718
Update translations (2021-01-01)
2021-02-03 10:20:36 -06:00
Marshall Mohror 2539215f18
Merge pull request #5660 from FearlessTobi/port-5166
Port yuzu-emu/yuzu#5166: "core: Remove unnecessary enum casts in log calls"
2021-02-03 10:19:38 -06:00
BreadFish64 85e9ba897d gl_rasterizer_cache: Recycle host textures
Allocating new textures has fairly high driver overhead.
We can avoid some of this by reusing the textures from destroyed surfaces since the game will probably create more textures with the same dimensions and format.
2021-02-02 20:46:25 -06:00
BreadFish64 935e88a580 gl_rasterizer_cache: Remove all fully invalid surfaces from the cache
Some games (e.g. Pilotwings Resort) create many surfaces that are invalidated quickly but were never removed.
This occasionally lead to large lag spikes due to high lookup times and other data structure management overhead.
2021-02-02 20:43:41 -06:00
Vitor Kiguchi 75f9c2cc13 configure_input: fix modifier scale saving 2021-01-31 00:15:00 -03:00
xperia64 8df502a688
Implement APT command 0x0103 (#5478)
* WIP implement apt 0x0103

* Update src/core/hle/service/apt/apt.cpp

Co-authored-by: Pengfei Zhu <zhupf321@gmail.com>

* Names

Co-authored-by: Pengfei Zhu <zhupf321@gmail.com>
2021-01-26 15:27:52 -05:00
FearlessTobi 8d2e28cf76 core: Make use of [[nodiscard]] with the System class
Given this is a central class, we should flag cases where the return
value of some functions not being used is likely a bug.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2021-01-17 19:05:43 +01:00
FearlessTobi aeba818634 citra_qt: Migrate off of setMargin() to setContentsMargins()
setMargin() has been deprecated since Qt 5, and replaced with
setContentsMargins(). We can move over to setContentsMargins() to stay
forward-compatible with Qt 6.0.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2021-01-17 02:48:52 +01:00
Pengfei Zhu 7c6d7905a4
Merge pull request #5670 from FearlessTobi/port-5277
Port yuzu-emu/yuzu#5277: "general: Fix various spelling errors"
2021-01-09 22:10:27 +08:00
xperia64 e33677b021
Add 3D slider value to the HID shared page (#5676)
* Add 3D slider value to the HID shared page; Fixes MSet

* Use f32
2021-01-05 22:01:01 +01:00
Lioncash 10f440cb59 common/telemetry: Migrate namespace into the Common namespace
Migrates the Telemetry namespace into the Common namespace to make the
code consistent with the rest of our common code.
2021-01-04 05:17:13 +01:00
Lioncash 9c08409e0e externals: Update Xbyak to 5.96
I made a request on the Xbyak issue tracker to allow some constructors
to be constexpr in order to avoid static constructors from needing to
execute for some of our register constants.

This request was implemented, so this updates Xbyak so that we can make
use of it.
2021-01-04 05:11:18 +01:00
FearlessTobi ddb4135dea main/common: Log/append AVX/FMA to the Host CPU string if available and add AVX512 detection
Co-Authored-By: Morph <morph1984@users.noreply.github.com>
2021-01-04 04:25:03 +01:00
Lioncash 52fe6daa53 common/telemetry: Migrate core-independent info gathering to common
Previously core itself was the library containing the code to gather
common information (build info, CPU info, and OS info), however all of
this isn't core-dependent and can be moved to the common code and use
the common interfaces. We can then just call those functions from the
core instead.

This will allow replacing our CPU detection with Xbyak's which has
better detection facilities than ours. It also keeps more
architecture-dependent code in common instead of core.
2021-01-04 04:25:03 +01:00
MerryMage 045d20e076 xbyak_abi: Prefer returning a struct to using out parameters in ABI_CalculateFrameSize 2021-01-04 04:07:11 +01:00
MerryMage a841ce6451 xbyak_abi: Register indexes should be unsigned 2021-01-04 04:07:10 +01:00
Tobias 50eb634583
Merge pull request #5536 from FearlessTobi/port-4440
Port yuzu-emu/yuzu#4440: "CMakeLists: Update several libraries"
2021-01-04 04:03:34 +01:00