diff options
| author | 2021-06-18 16:32:46 +0200 | |
|---|---|---|
| committer | 2021-09-18 23:22:20 +0200 | |
| commit | 4297d2fea2228ff4afe2a7c244fb8b3f1a97491a (patch) | |
| tree | 25a1ce3a2d41bf9e066c7a57a441be65e282f16f /src/common/fs | |
| parent | main: TAS Playback state label (diff) | |
| download | yuzu-4297d2fea2228ff4afe2a7c244fb8b3f1a97491a.tar.gz yuzu-4297d2fea2228ff4afe2a7c244fb8b3f1a97491a.tar.xz yuzu-4297d2fea2228ff4afe2a7c244fb8b3f1a97491a.zip | |
core: Hacky TAS syncing & load pausing
To keep the TAS inputs synced to the game speed even through lag spikes and loading zones, deeper access is required.
First, the `TAS::UpdateThread` has to be executed exactly once per frame. This is done by connecting it to the service method the game calls to pass parameters to the GPU: `Service::VI::QueueBuffer`.
Second, the loading time of new subareas and/or kingdoms (SMO) can vary. To counteract that, the `CPU_BOOST_MODE` can be detected: In the `APM`-interface, the call to enabling/disabling the boost mode can be caught and forwarded to the TASing system, which can pause the script execution if neccessary and enabled in the settings.
Diffstat (limited to 'src/common/fs')
| -rw-r--r-- | src/common/fs/fs_paths.h | 1 | ||||
| -rw-r--r-- | src/common/fs/path_util.cpp | 3 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/common/fs/fs_paths.h b/src/common/fs/fs_paths.h index b32614797..84968b8e0 100644 --- a/src/common/fs/fs_paths.h +++ b/src/common/fs/fs_paths.h | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #define SCREENSHOTS_DIR "screenshots" | 21 | #define SCREENSHOTS_DIR "screenshots" |
| 22 | #define SDMC_DIR "sdmc" | 22 | #define SDMC_DIR "sdmc" |
| 23 | #define SHADER_DIR "shader" | 23 | #define SHADER_DIR "shader" |
| 24 | #define TAS_DIR "scripts" | ||
| 24 | 25 | ||
| 25 | // yuzu-specific files | 26 | // yuzu-specific files |
| 26 | 27 | ||
diff --git a/src/common/fs/path_util.cpp b/src/common/fs/path_util.cpp index 5f76adedb..97d026eb8 100644 --- a/src/common/fs/path_util.cpp +++ b/src/common/fs/path_util.cpp | |||
| @@ -116,8 +116,7 @@ private: | |||
| 116 | GenerateYuzuPath(YuzuPath::ScreenshotsDir, yuzu_path / SCREENSHOTS_DIR); | 116 | GenerateYuzuPath(YuzuPath::ScreenshotsDir, yuzu_path / SCREENSHOTS_DIR); |
| 117 | GenerateYuzuPath(YuzuPath::SDMCDir, yuzu_path / SDMC_DIR); | 117 | GenerateYuzuPath(YuzuPath::SDMCDir, yuzu_path / SDMC_DIR); |
| 118 | GenerateYuzuPath(YuzuPath::ShaderDir, yuzu_path / SHADER_DIR); | 118 | GenerateYuzuPath(YuzuPath::ShaderDir, yuzu_path / SHADER_DIR); |
| 119 | 119 | GenerateYuzuPath(YuzuPath::TASFile, yuzu_path / TAS_DIR); | |
| 120 | GenerateYuzuPath(YuzuPath::TASFile, fs::path{""}); | ||
| 121 | } | 120 | } |
| 122 | 121 | ||
| 123 | ~PathManagerImpl() = default; | 122 | ~PathManagerImpl() = default; |