summaryrefslogtreecommitdiff
path: root/src/yuzu
AgeCommit message (Collapse)Author
2020-11-29Merge pull request #4939 from german77/MouseInputbunnei
InputCommon: Implement full mouse support
2020-11-29hle: kernel: thread: Remove unused "Running" state.bunnei
2020-11-27core: Eliminate remaining usages of the global system instanceLioncash
Removes all remaining usages of the global system instance. After this, migration can begin to migrate to being constructed and managed entirely by the various frontends.
2020-11-27savedata_factory: Eliminate usage of the global system instanceLioncash
Now there's only two meaningful instances left in core.
2020-11-25Implement full mouse supportgerman
2020-11-25Add multiple udp server supportgerman
2020-11-25Merge pull request #4976 from comex/poll-eventsRodrigo Locatti
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
2020-11-25Merge pull request #4959 from Morph1984/emulated-controller-stylesetbunnei
configure_input_player: Use the NpadStyleSet to limit the available controllers shown
2020-11-24frontend: yuzu (qt): Register a callback for ExecuteProgram.bunnei
2020-11-23Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off ↵comex
main thread EmuWindow::PollEvents was called from the GPU thread (or the CPU thread in sync-GPU mode) when swapping buffers. It had three implementations: - In GRenderWindow, it didn't actually poll events, just set a flag and emit a signal to indicate that a frame was displayed. - In EmuWindow_SDL2_Hide, it did nothing. - In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong because SDL_PollEvents is supposed to be called on the thread that set up video - in this case, the main thread, which was sleeping in a busyloop (regardless of whether sync-GPU was enabled). On macOS this causes a crash. To fix this: - Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a default implementation that does nothing. - In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have the main thread call SDL_WaitEvent in a loop.
2020-11-23Merge pull request #4451 from slashiee/extended-loggingbunnei
logging/settings: Increase maximum log size to 100 MB and add extended logging option
2020-11-21Merge pull request #4944 from lioncash/system-rembunnei
patch_manager: Remove usages of the global system instance
2020-11-20applets/controller: Use a pair of emulated controller index to controller typeMorph
2020-11-20configure_input_player: Use the npad style set to show the available controllersMorph
This will reduce the likelihood of an invalid controller type to be set within a game
2020-11-18patch_manager: Remove usages of the global system instanceLioncash
With this, only 19 usages of the global system instance remain within the core library. We're almost there.
2020-11-17configure_input_player: Use static qualifier for IsProfileNameValid()Lioncash
This is a static member function, so we don't need use an existing instance to call this function.
2020-11-15configure_input: Accommodate for the mouse input device engineMorph
2020-11-15configure_input: Update the input profiles for other player tabsMorph
2020-11-15general: Fix compiler warnings on linux and miscellaneous changesMorph
2020-11-15sdl_impl: Revert to the "old" method of mapping sticksMorph
Not all controllers have a SDL_GameController binding. This caused controllers not present in the SDL GameController database to have buttons mapped instead of axes. Furthermore, it was not possible to invert the axes when it could be useful such as emulating a horizontal single joycon or other potential cases. This allows us to invert the axes by reversing the order of mapping (vertical, then horizontal).
2020-11-15applets/controller: Change the input button to create input profilesMorph
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-11-15input: Disconnect a controller prior to connecting a new oneMorph
Some games do not respond to a change in controller type if 1) The controller is not disconnected prior to being reconnected and/or 2) The controller is reconnected instantly after being disconnected. Since it is not possible to change controllers instantly on hardware and requiring a disconnect prior to connecting a new one, we should emulate this as well with a small delay, fixing the aforementioned issue.
2020-11-15input_common: Add VibrationDevice and VibrationDeviceFactoryMorph
A vibration device is an input device that returns an unsigned byte as status. It represents whether the vibration device supports vibration or not. If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
2020-11-15configure_input: Add per-player vibrationMorph
Allows for enabling and modifying vibration and vibration strength per player. Also adds a toggle for enabling/disabling accurate vibrations. Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-11-15settings: Remove global vibration strength modifierMorph
This will be replaced in favor of per-player vibration strength modifiers.
2020-11-15configure_input: Hook up the vibration percentage spinboxMorph
This allows setting the vibration strength percentage anywhere from 1% to 100%. Also hooks up the remaining motion button and checkbox in the Controller Applet.
2020-11-15configure_input_player: Change "Defaults" button behaviorMorph
RestoreDefaults() now restores the selected devices' mappings using UpdateMappingWithDefaults(). This allows us to move the keyboard mapping from RestoreDefaults() to UpdateMappingWithDefaults().
2020-11-15settings: Preparation for per-game input settingsMorph
2020-11-15config: Migrate config files into config/customMorph
Co-authored-by: lat9nq <lat9nq@virginia.edu>
2020-11-15controllers/npad: Connect a controller on init if none are connectedMorph
2020-11-15applets/controller: Auto accept a valid single player configurationMorph
2020-11-15bootmanager: Allow mouse clicks only if touch is disabledMorph
Previously mouse clicks will not register when touch is disabled. This rectifies that and allows mouse clicks to be mapped to other buttons if the touchscreen is disabled.
2020-11-15input_profiles: Implement input profilesMorph
2020-11-15configure_input_player: Implement input exclusivity and persistenceMorph
With this, the "Input Devices" combobox should accurately reflect the input device being used and disallows inputs from other input devices unless the input device is set to "Any".
2020-11-15ui/themes: Cleanup UIMorph
2020-11-09bootmanager: Address review commentslat9nq
Changes QMessageBox usages to warnings, as the problems they bring to light are being safely handled by the application and do not warrant something of the "critical" level. Changes LOG_CRITICAL to LOG_ERROR for the same reason. Preferring ERROR to WARNING as yuzu is denying loading of any guest applications after checking for these conditions. Moved logging the GL_RENDERER string into GetUnsupportedGLExtensions() to make more clear that unsupported extensions were already being logged. Makes placement of the logs easier to understand later, as well.
2020-11-09bootmanager: Log and show GL_RENDERER string when GPU is insufficientlat9nq
Changes the first message to not include the OpenGL version, as the error is caused by OpenGL failing to load. Adds a new check for OpenGL version 4.3. This will display a message with a similar error as well as the GL_RENDERER string. Adds a CRITICAL log message when triggered. This prevents a crash with yuzu trying to use older OpenGL versions. Modifies the unsupported extension message to output the GL_RENDERER string in the message, as well as logging the string.
2020-11-06Merge pull request #4888 from lioncash/unicorn-removebunnei
core: Remove usage of unicorn
2020-11-04core/settings: Move configuring_global behind an APILioncash
Rather than have directly modified global state here, we can make it an implementation detail and have an interface that changes are queried through.
2020-11-03core: Remove usage of unicornLioncash
Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python.
2020-10-26yuzu: settings: Enable multicore, asynch GPU, and assembly shaders by default.bunnei
- In general, this is now the preferred settings for most games. # Conflicts: # src/yuzu/configuration/config.cpp
2020-10-26Merge pull request #4729 from ameerj/nvdec-prodbunnei
video_core: NVDEC Implementation
2020-10-26video_core: NVDEC Implementationameerj
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-10-26Merge pull request #4834 from lioncash/copy-fnbunnei
controller: Pass ControllerParameters by reference in ReconfigureControllers()
2020-10-26controller: Pass ControllerParameters by reference in ReconfigureControllers()Lioncash
Prevents unnecessary copies and heap reallocations from occurring.
2020-10-25Merge pull request #4827 from lioncash/truncRodrigo Locatti
controller: Convert led_patterns integer literals to bool literals
2020-10-25Merge pull request #4828 from lioncash/lockguardRodrigo Locatti
general: Use template deduction guides for lock_guard
2020-10-25general: Use template deduction guides for lock_guardLioncash
Same behavior, less code.
2020-10-25controller: Convert led_patterns integer literals to bool literalsLioncash
'bool' isn't always guaranteed to be the same size as an int, so this can technically cause truncation warnings if we support other platforms.
2020-10-25applets/profile_select: Resolve a warning in exec()Morph
Resolves a warning where not all control paths return a value.