Hand rolling memcpy like this is always frowned upon because the compiler has more insight on whats going on (plus the code resolves to a worse version of itself on assembly). This removes some branches that are just straight up redundant. May save stuff especially for systems without fastmem enabled.
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2639
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
This should fix the issue with, for example, ToTK running at 60 FPS when overlay applet is running.
This also should always run the overlay as actual overlay and not in the back.
Stubs RequestListSummaryOverlayNotifications in friends
Syncs Language of the Emulator, when setting language, this is used in Starter Applet
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3123
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Co-committed-by: Maufeat <sahyno1996@gmail.com>
Setting `HIDE_OVERLAY_ON_CONTROLLER_INPUT` in *Advanced settings → Input Overlay*
**Behavior:**
- First controller input -> hides overlay
- Controller disconnect → shows overlay again
- Subsequent controller inputs → ignored (already hidden, so no retrigger needed)
- Touch screen → does **not** show overlay (so you can use a controller and touchscreen to interact with games)
- Sidebar "Show/Hide controller" button → still works as master toggle
**State reset: The "first input" detection resets when:**
1. Controller disconnects
2. Overlay is shown via sidebar button
3. Controller reconnects
**Interaction with other settings:**
- Requires `SHOW_INPUT_OVERLAY` to be enabled (basicaly a master switch)
- Independent from `ENABLE_INPUT_OVERLAY_AUTO_HIDE` (timer-based hide, was already implemented)
- When both are enabled, touch-to-show is disabled (controller-hide takes precedence)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3127
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: Producdevity <y.gherbi.dev@gmail.com>
Co-committed-by: Producdevity <y.gherbi.dev@gmail.com>
## Overview
Adds guides relating to the multiplayer components of Eden, which will serve as a quick reference for users to get started.
### Guides added
- Multiplayer FAQ
- Hosting a Multiplayer Room
- Joining a Multiplayer Room
- Access Your Multiplayer Room Externally
- Finding Multiplayer Server Info
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3167
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: Evilperson1337 <Evilperson1337@proton.me>
Co-committed-by: Evilperson1337 <Evilperson1337@proton.me>
The GPU Accuracy level is now divided into Performance, Balanced and Accurate.
1. Performance prioritizes speed at all costs. It's faster, but it can be unstable and may have some bugs (which is expected).
2. Balanced maintains excellent performance and is safer against bugs and shader corruption.
3. Accurate is the most precise and the most expensive in terms of hardware. Only a few games still need this level to work properly.
The Release Early Fences toggle has also been removed by @PavelBARABANOV, as it's not needed anymore.
Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3129
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
From my tests this decreases JIT latency twofold, may be placebo.
saving reg_alloc while having it readily available is certainly a very interesting choice... afterall saving it onto %rdi is way more cheap isn't it? :)
Please test any performance rgressions, I got +20 FPS on Rain World (unlocked) off this change alone
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3150
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
## Overview
Adding Markdown, simplified versions of the docs hosted on [External Site](https://evilperson1337.notion.site/Eden-Guides-2b057c2edaf680149310edee3024565d).
### Guides Added
- Adding Games into Steam with Steam ROM Manager and Eden
- Adding Eden as an emulator into Steam ROM Manager
- How to modify the Date/Time in Eden
- How to configure controller profiles
- How to set controller profiles per game
- Eden fails to launch but does not leave a log (Windows)
- How to configure motion/gyro controls on steam deck
- How to access logs
- How to import saves into Eden (windows)
- How to install Atmosphere mods
- How to install Updates/DLC
- Quick Start Guide (Steam Deck)
- Quick Start Guide (Windows)
- Allowing Eden to Run on MacOS (MacOS)
- Sync Game Saves with Syncthing (General)
- Sync Game Saves with Syncthing (Windows)
- Sync Game Saves with Syncthing (Linux)
- Using Amiibo with Eden (Windows)
- Using Cheats with Eden (Windows)
- Using Cheats with Eden (Android)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3139
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: Evilperson1337 <Evilperson1337@proton.me>
Co-committed-by: Evilperson1337 <Evilperson1337@proton.me>
Successor to that old MoltenVK PR. Does a lot of cleanups within root CMakeLists.txt, hands over MoltenVK and VulkanValidationLayers to CPMUtil, and separates out common operations into my modules.
Hopefully reduces the monstrosity that is root CMakeLists.txt. Please test:
- builds on all platforms
- VulkanValidationLayers
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3126
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Updates all of our bundled CI deps to support android x86_64, adds a
build flavor thereof (`chromeOS`), and also adds sirit mingw support.
The new FFmpeg package is built in a much better way that actually makes
it identically built to the other CI packages, meaning we now have real
8.0.0 support, no need for libvpx/cpu_features/all that other crap.
PLUS, we can now statically link it! Hooray! It's also built with
MediaCodec support so in the future we can work on that.
Rewrote the android build script too, plus added a copyFlavorTypeOutput
target that assembles and copies the APK. The code behind it sucks
because I'm not great with Gradle but hey, it works.
Testers: please test everything related to video decoding. VP9 and h264, games that normally suck with their prerendered stuff, make sure I didn't nuke it to oblivion, etc.
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3086
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>