Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Logging: Impl refactor
|
|
This implementation is based on and is a subset of the proposed implementation of std::expected
https://github.com/TartanLlama/expected/blob/master/include/tl/expected.hpp
|
|
Loop on stop_token and remove final_entry in Entry.
Move Backend thread out of Impl Constructor to its own function.
Add Start function for backend thread.
Use stop token in PopWait and check if entry filename is nullptr before logging.
|
|
VS2022 seems to introduce an optimization when moving vectors to check for equality of the element values. AlignmentAllocator needed to overload the equality operator to fix compilation of its usage in vector moving.
|
|
Alleviates the dependency on chrono for all files that include settings.h
|
|
Makes use of std::string_view in StringFromFixedZeroTerminatedBuffer and add bounds checking
|
|
|
|
This moves all GenerateYuzuPath calls outside of the platofrm-specific #ifdefs, replacing them with assignments to paths.
|
|
common/logging: Reduce dependent header include overhead
|
|
Remove Boxcat BCAT backend
|
|
|
|
This reduces the load of requiring to include std::chrono in all files which include log.h
|
|
|
|
|
|
|
|
Given we have a function to invalidate, we should also have ones to
query the validity. Also makes the code more straightforward to read.
|
|
videocore: Use std::jthread for worker threads
|
|
|
|
|
|
|
|
|
|
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.
|
|
First of all, TASing requires a script to play back. The user can select the parent directory at `System -> Filesystem`, next to an option to pause TAS during loads: This requires a "hacky" setup deeper in the code and will be added in the last commit.
Also, Hotkeys are being introduced: CTRL+F5 for playback start/stop, CTRL+F6 for re-reading the script and CTRL+F7 for recording a new script.
|
|
The base playback system supports up to 8 controllers (specified by `PLAYER_NUMBER` in `tas_input.h`), which all change their inputs simulataneously when `TAS::UpdateThread` is called.
The recording system uses the controller debugger to read the state of the first controller and forwards that data to the TASing system for recording. Currently, this process sadly is not frame-perfect and pixel-accurate.
Co-authored-by: Naii-the-Baf <sfabian200@gmail.com>
Co-authored-by: Narr-the-Reg <juangerman-13@hotmail.com>
|
|
Remove audio stretching
|
|
input_common: Add advanced setting for 8 player support
|
|
|
|
|
|
Useful for jthreads which make use of the threadsafe queues.
|
|
This adds bitwise shift operator overloads (<<, >>, <<=, >>=) in the macro DECLARE_ENUM_FLAG_OPERATORS(type)
|
|
|
|
This allows us to avoid implicitly including <string> every time common_funcs.h is included.
|
|
nvdec: Add GPU video decoding for all capable drivers and platforms
|
|
|
|
|
|
Project <tentative title>: Rework Garbage Collection.
|
|
|
|
ngct: Stub NGCT:U service
|
|
|
|
|
|
|
|
|
|
logging: Display backtrace on crash
|
|
The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value.
This fixes that oversight, along with using descriptive exceptions instead of abort() calls.
|
|
logging: Simplify and make thread-safe
|
|
The maximum is now 17 with the addition of Brazilian Portuguese
|