aboutsummaryrefslogtreecommitdiff
path: root/src/frontend_common/config.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [settings] move program_args and debug_knobs back to debugging category and ↵xbzk2026-09-081-11/+21
| | | | | | | | | | | | | | | | | | make them pergameable (#4378) - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- I have moved debug_knobs and program_args to System category, to make them pergameable without hassle. But the hassle came: They were automatically readded to Qt's System tab, doubling them. If it were to face hassle either way, the right thing is to move them back to Debugging category, then make them exceptionally pergameable. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4378 Reviewed-by: lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [qt] fix various crashes due to invalid/corrupted/outdated settings (#4070)lizzie2026-06-141-33/+17
| | | | | | | | | | lots of "out of index" errors :) Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4070 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [*] basic in-house cpp linting (#4039)lizzie2026-06-041-1/+1
| | | | | | | | | | | | - add `#pragma once` to remainder files - "correcter" defines (ANDROID), see https://groups.google.com/g/android-ndk/c/cf9_f1SLXls - extra miscelly fixups Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4039 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev>
* [common/logging] Simplify logging logic and fix issues when logging before ↵lizzie2026-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | system is created (#3688) - our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [Configuration] Add Applets Tab to Per-Game Configurations (#3623)John2026-02-241-2/+2
| | | | | | | | | | | | | | | | | | | | Some games need specific applets to work. For example for local multiplayer to function the Controller Applet must be set as: - MK8D -> Custom Applet - Absolum -> Real Applet Web/Offline Applet: Assasin Creed and some bundled games might need real applet. Overlay Toggle added for Horizon's ingame menu. Thanks PavelBARABANOV for the help with the PR. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3623 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: John <john@eden-emu.dev> Co-committed-by: John <john@eden-emu.dev>
* [android, frontend_common] Remove network/logging sections and fix airplane ↵PavelBARABANOV2026-01-251-3/+3
| | | | | | | | | | | | mode in per-game (#3384) Fixed an issue with airplane settings Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3384 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com> Co-committed-by: PavelBARABANOV <pavelbarabanov94@gmail.com>
* [desktop, settings] new RendererHacks category, move to Extensions -> ↵crueter2025-12-311-0/+2
| | | | | | | | | | | | | Extras, fix GPU accuracy naming (#3245) added a new RendererHacks category, moved them to the Extensions tab and renamed that tab Extras. Should fit in smaller screens now also Performance -> Fast, GPU Accuracy -> GPU Mode Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3245 Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [qt, android] Implement custom save path setting and migration + Implement ↵kleidis2025-12-311-0/+17
| | | | | | | | | | | | custom path settings for Android (#3154) Needs careful review and especially testing Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3154 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: kleidis <kleidis1@protonmail.com> Co-committed-by: kleidis <kleidis1@protonmail.com>
* [gamemode] Make available on other platforms (#353)lizzie2025-12-071-26/+0
| | | | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/353 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [desktop] fix audio output engine not saving (#3083)crueter2025-11-251-52/+60
| | | | | | | | | | | | | | | | | | | | | | | This issue has like 15 different causes, and I'm surprised it took this long to pop up. 1. LoadString had a hack *specific* to the AudioEngine enum. Why? Solving this was easy, just use the explicit type ctor. -_- 2. The LoadString hack was abused in configure_audio.cpp to get around the canonicalization infrastructure that was explicitly put in to make this exact operation easier. Why? 3. ToString was also broken because of LoadString's garbage output. Technically it might work now, but it's better to just use the canonicalization infrastructure that was made specifically for this purpose. Also did a few tiny optimizations in config/settings cuz wynaut. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3083 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* User Data Migration from Citron, Sudachi, and Yuzu (#91)swurl2025-05-081-19/+19
| | | | | | | | | | | | Includes citron, sudachi, yuzu currently broken, because the eden dir is always made early? Signed-off-by: swurl <swurl@swurl.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/91 Co-authored-by: swurl <swurl@swurl.xyz> Co-committed-by: swurl <swurl@swurl.xyz>
* Add dynamic state extension configsswurl2025-04-231-0/+2
| | | | Signed-off-by: swurl <swurl@swurl.xyz>
* config: Reset per-game profile name on load if emptyt8952024-02-161-0/+1
|
* Merge pull request #12756 from liamwhite/applet-multiprocess-hwcNarr the Reg2024-02-111-0/+18
|\ | | | | general: applet multiprocess
| * general: add default configurations for applet modeLiam2024-02-091-0/+18
| |
* | config: Always delete control settings in ClearControlPlayerValuest8952024-02-111-8/+2
|/
* service: hid: Fully implement touch resourceNarr the Reg2024-01-281-4/+4
|
* Merge pull request #12555 from flodavid/fix-gamemode-settingliamwhite2024-01-281-0/+26
|\ | | | | Save gamemode configuration and add per-game config
| * fix linux config values not savedflodavid2024-01-021-0/+26
| |
* | Save profile name usedflodavid2024-01-081-6/+28
| | | | | | | | | | - Save the profile name in global config - Read the profile name when reading the global config
* | hid_core: Move hid to it's own subprojectNarr the Reg2024-01-051-1/+1
| |
* | Merge pull request #12575 from t895/inconsistent-settings-applicationliamwhite2024-01-041-2/+3
|\ \ | | | | | | frontend_common: config: Only write setting related to opened config file
| * | frontend_common: config: Only write setting related to opened config filet8952024-01-031-2/+3
| |/ | | | | | | If we tried to write a switchable setting to config that was not using global in the global config instance, we could write the per-game setting accidentally. This ensures that we always use the global setting for global config and the currently applied setting for custom config.
* / frontend_common: config: Move WriteIntegerSetting definition to headert8952024-01-031-11/+0
|/ | | | Fixes a compiler error where the compiler could not see the definition of the method in qt_config and others.
* frontend_common: config: Refactor WriteSetting to stricter typest8952023-12-301-82/+112
| | | | Previously this could cause problems if a version of the template generated for WriteSetting didn't use the type you needed (e.g. floating point values). Now these are all ready without having to be used within frontend_common first.
* frontend_common: Fix settings reload bugt8952023-12-121-0/+1
| | | | This clears the touch_from_button_maps array before we read new data into it because this read duplicate data on a reload otherwise.
* android: Multi directory UIt8952023-11-271-0/+2
|
* frontend_common: Don't specify default value for screenshot_patht8952023-11-231-2/+1
|
* frontend_common: Don't load config files that we fail to opent8952023-11-231-0/+10
|
* frontend_common: Add option to read unsigned integerst8952023-11-211-1/+28
|
* frontend_common: Set config array size to 0 if the array is ended without ↵t8952023-11-211-4/+8
| | | | changing its index
* frontend_common: Manually handle opening config filet8952023-11-211-2/+31
| | | | SimpleIni only has the ability to use ANSI strings for config paths so this breaks opening configs on paths with special characters. This ensures that we open the right path on each platform.
* frontend_common: Add special config case for unmapped windows network drivest8952023-11-211-1/+9
| | | | Normally we save paths with '/' as the delimiter for each segment but when you manually select a network drive instead of using a mapped location, this would break. This ensures that if the read filesystem location starts with '//', we keep that pattern.
* frontend_common: Disable UTF-8 BOM in configt8952023-11-211-1/+1
|
* config: Unify config handling under frontend_commont8952023-11-211-0/+931
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings. As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.