summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinNoGUI/MainNoGUI.cpp
AgeCommit message (Collapse)Author
2022-08-06Add Discord presence ioctlv to /dev/dolphinInvoxiPlayGames
2022-07-17Require frontend to initialize controllersJosJuice
We currently have two different code paths for initializing controllers: Either the frontend (DolphinQt) can do it, or if the frontend doesn't do it, the core will do it automatically when booting. Having these two paths has caused problems in the past due to only one frontend being tested (see de7ef47548). I would like to get rid of the latter path to avoid further problems like this.
2022-03-10GCAdapter: Defer initialization until MainWindow::InitControllersPokechu22
If libusb fails to initialize, an assertion fails, but if that happens before the main window is created, then Dolphin just dies. Now, the panic alert is properly shown and the user can ignore it.
2022-03-07windows: wrap all main funcs with utf8 conversionsShawn Hoffman
fixes 12858
2021-11-22Core/Boot: Refactor storage of boot-to-savestate data into a separate class.Admiral H. Curtiss
2021-07-13Core: Add GBA host interfaceBonta
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-05-27Implement Cursor Locking and new input focus checks for itFiloppi
2021-05-07Merge pull request #9417 from Filoppi/input-1Léo Lam
Fix FPS counter and Game Window speed % breaking on pause/unpause
2021-05-06Fix FPS counter and Game Window speed % breaking on pause/unpauseFiloppi
-Add pause state to FPSCounter. -Add ability to have more than one "OnStateChanged" callback in core. -Add GetActualEmulationSpeed() to Core. Returns 1 by default. It's used by my input PRs.
2021-03-27Set console's default language/country/region based on computer settingsJosJuice
2021-01-27rename Core/Analytics to Core/DolphinAnalyticsShawn Hoffman
2020-05-06Core: Add support for specifying a command line option to boot the game into ↵iwubcode
a save-state
2020-04-03Remove unused function Host_UpdateProgressDialogJosJuice
2019-12-28Add a Win32 NoGUI platform and projectStenzek
2019-11-11Merge pull request #8456 from jordan-woyak/input-gate-race-fixConnor McLaughlin
InputCommon: Make the "input gate" not racy.
2019-11-06InputCommon: Make the "input gate" not racey.Jordan Woyak
2019-09-01DolphinNoGUI: Add a FBDev platformStenzek
And the associated GLContext bits
2019-06-23Make DolphinAnalytics a true singleton - static local variables are ↵Silent
initialized in a thread safe manner since C++11 Also works around a Visual Studio 2017 bug where static inline class fields are destructed multiple times
2019-05-24Update Discord rich presence when the title changesDavid Korth
This allows us to update the rich presence description if a channel is launched from the Wii Menu. It also handles other PPC title launches, e.g. Smash Bros. Masterpieces. Host.h: Added Host_TitleChanged(). DolphinNoGUI/MainNoGUI.cpp: Implemented Host_TitleChanged(). DolphinQt/Host.cpp: Implemented Host_TitleChanged(). Android/jni/MainAndroid.cpp: Stubbed Host_TitleChanged(). DSPTool/StubHost.cpp: Stubbed Host_TitleChanged(). UnitTests/StubHost.cpp: Stubbed Host_TitleChanged().
2019-03-21Core/Host: Allow frontends to block inputsspycrab
2019-02-15DolphinNoGUI: Runtime selection of platformStenzek
2019-01-04Automatic disc change for 2-disc gamesJosJuice
2018-10-20VideoBackends: Pass window system info from host on creationStenzek
2018-10-20Renderer: Pull dimensions from GLInterface/SwapchainStenzek
2018-10-20Drop Host_GetRenderSurface and pass display to backendStenzek
2018-09-28Remove unused Host_ShowVideoConfigStenzek
2018-06-25Merge pull request #6983 from yourWaifu/add-discord-rpc-supportPierre Bourdon
Add Discord Rich Presence support
2018-06-19Discord Rich Presence CMake integrationyourWaifu
I have no idea if this works or not. Hopefully the build bot will tell me.
2018-05-28Common: Move host communication enum to Host.hLioncash
Given this is actually a part of the Host interface, this should be placed with it. While we're at it, turn it into an enum class so that we don't dump its contained values into the surrounding scope. We can also make Host_Message take the enum type itself directly instead of taking a general int value. After this, it'll be trivial to divide out the rest of Common.h and remove the header from the repository entirely
2018-04-14UICommon: Avoid including Xrandr.hLéo Lam
Xlib has really terrible headers that declare non-namespaced macros and typedefs for common words. Just wasted 10 minutes trying to figure out why a unit test failed to build before I remembered it was Xrandr.h conflicting with our enum class members again. To fix the issue, this removes the Display* parameter from the EnableScreensaver function (which was unused) so we don't have to include Xrandr.h anymore.
2018-02-20Renderer: Handle resize events on-demand instead of pollingStenzek
We now differentiate between a resize event and surface change/destroyed event, reducing the overhead for resizes in the Vulkan backend. It is also now now safe to change the surface multiple times if the video thread is lagging behind.
2018-02-07Merge pull request #6334 from stenzek/startupAnthony
Video Backend Initialization/Core Boot Improvements
2018-02-03dolphin-emu-nogui: Conform to the _NET_WM_PID protocolcbdev
2018-01-27Core: Improve ordering of bootStenzek
- Smplification of graphics backend startup/shutdown. - Don't send complete message until CPU is ready to execute. - Remove redundant stop message. - Remove OSD message with backend name.
2017-11-11Exit on Esc, pause on F10Rael Gugelmin Cunha
2017-10-24UI: Implement a command line option to boot NAND titleLéo Lam
2017-09-13Core: SetOnStoppedCallback -> SetOnStateChangedCallbackMichael M
2017-07-30DolphinWX: Add a progress dialog host commandStenzek
Allows feedback from backends to be communicated to the user when long-running operation are performed (e.g. shader compilation).
2017-07-23Move the Wiimote connect code out of HostLéo Lam
I don't know who thought it would be a good idea to put the Wiimote connect code as part of the Host interface, and have that called from both the UI code and the core. And then hack around it by having "force connect" events whenever Host_ConnectWiimote is called from the core...
2017-07-22Merge pull request #5791 from leoetlino/wiimote-indicatorLeo Lam
Remove Wii Remote connection status from status bar
2017-07-21Replace balanced Core::PauseAndLock calls with RunAsCPUThreadLéo Lam
Core::PauseAndLock requires all calls to it to be balanced, like this: const bool was_unpaused = Core::PauseAndLock(true); // do stuff on the CPU thread Core::PauseAndLock(false, was_unpaused); Aside from being a bit cumbersome, it turns out all callers really don't need to know about was_unpaused at all. They just need to do something on the CPU thread safely, including locking/unlocking. So this commit replaces Core::PauseAndLock with a function that makes both the purpose and the scope of what is being run on the CPU thread visually clear. This makes it harder to accidentally run something on the wrong thread, or forget the second call to PauseAndLock to unpause, or forget that it needs to be passed was_unpaused at the end. We also don't need comments to indicate code X is being run on the CPU thread anymore, as the function name makes it obvious.
2017-07-15Remove Wii Remote connection status from status barLéo Lam
Showing the Wii remote connection status leads to inconsistent UX, because we don't do anything like that for GameCube controllers or with Bluetooth passthrough. It's also questionable how useful it is given that: * it doesn't print the number of connected remotes, just that one remote is connected, connecting or not connected, so the only info it provides is actually wrong when using multiple remotes; * this user-facing feature is actually broken in master and no one has complained AFAIK, which means people don't really rely on it; * the status bar isn't visible most of the time unless the user is using render to main or deliberately keeping the main window's status bar visible by moving the render window and they're not too far away from their screen; * emulated Wii remotes now reconnect on input, which means that there is less of a need to actually know at all times whether a remote is connected, since pressing any button will reconnect it and provide immediate, visible feedback via OSD messages and the Wii remote pointer appearing.
2017-07-12DolphinWX: fix input bitmaps not working when background input is offMichael Maltese
2017-06-13NoGUI: Fix a missing include for XlibLéo Lam
2017-06-06Boot: Clean up the boot codeLéo Lam
* Move out boot parameters to a separate struct, which is not part of SConfig/ConfigManager because there is no reason for it to be there. * Move out file name parsing and constructing the appropriate params from paths to a separate function that does that, and only that. * For every different boot type we support, add a proper struct with only the required parameters, with descriptive names and use std::variant to only store what we need. * Clean up the bHLE_BS2 stuff which made no sense sometimes. Now instead of using bHLE_BS2 for two different things, both for storing the user config setting and as a runtime boot parameter, we simply replace the Disc boot params with BootParameters::IPL. * Const correctness so it's clear what can or cannot update the config. * Drop unused parameters and unneeded checks. * Make a few checks a lot more concise. (Looking at you, extension checks for disc images.) * Remove a mildly terrible workaround where we needed to pass an empty string in order to boot the GC IPL without any game inserted. (Not required anymore thanks to std::variant and std::optional.) The motivation for this are multiple: cleaning up and being able to add support for booting an installed NAND title. Without this change, it'd be pretty much impossible to implement that. Also, using std::visit with std::variant makes the compiler do additional type checks: now we're guaranteed that the boot code will handle all boot types and no invalid boot type will be possible.
2017-06-05Merge pull request #5276 from ligfx/macosheadlessshuffle2
Add headless support on macOS
2017-05-22Tools: Load GameCube BIOS addedSepalani
2017-05-14Host: Get rid of Host_SetStartupDebuggingParameters()Lioncash
This is something that should be the responsibility of the frontend booting the game. Making this part of the host 'interface' inherently requires frontends to leak internal details (much like the other UI-related functions in the interface). This also decouples more behavior from the debugger and the initialization process in the wx frontend. This also eliminates several usages of the parent menubar in the debugger code window.
2017-04-30IOS: Convert the IOS kernel HLE code to a classLéo Lam
This changes the main IOS code (roughly the equivalent of the kernel) to a class instead of being a set of free functions + tons of static variables. The reason for this change is that keeping tons of static variables like that prevents us from making an IOS instance and reusing IOS code easily. Converting the IOS code to a class also allows us to mostly decouple IOS from the PPC emulation. The more interesting changes are in Core/IOS/IOS. Everything else is mostly just boring stuff required by this change... * Because the devices themselves call back to the main IOS code for various things (getting the current version, replying to a request, and other syscall-like functions), just like processes in IOS call kernel syscalls, we have to pass a reference to the kernel to anything that uses IOS syscalls. * Change DoState to save device names instead of device IDs to simplify AddDevice() and get rid of an ugly static count. * Change ES_Launch's ack to be sent at IOS boot, now that we can do this properly.