Browse Source

[*, docs] remove UTF8 and make docs ASCII only (#4166)

except for the AI policy doc which uses output for demonstrative purposes

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4166
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
lizzie/maxwell-use-params-instead-of-template
lizzie 4 days ago
committed by crueter
parent
commit
f423471cc0
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 2
      docs/user/AlterDateTime.md
  2. 2
      docs/user/Controllers.md
  3. 14
      docs/user/GyroControls.md
  4. 2
      docs/user/InstallingUpdatesDLC.md
  5. 18
      docs/user/Multiplayer.md
  6. 10
      docs/user/QuickStart.md
  7. 2
      docs/user/RunOnMacOS.md
  8. 18
      docs/user/SteamROM.md
  9. 20
      docs/user/SyncthingGuide.md
  10. 2
      docs/user/Troubleshoot.md
  11. 6
      docs/user/UsingAmiibo.md
  12. 20
      docs/user/UsingCheats.md
  13. 2
      src/audio_core/sink/sink_stream.cpp
  14. 4
      src/common/settings.h
  15. 2
      src/core/hle/kernel/physical_core.cpp
  16. 2
      src/video_core/vulkan_common/vulkan_device.cpp

2
docs/user/AlterDateTime.md

@ -14,7 +14,7 @@ Use this guide whenever you want to modify the Date or Time that Eden reports to
## Steps ## Steps
1. Navigate to *Emulation Configure*.
1. Navigate to *Emulation > Configure*.
2. Click on the **System** item on the left-hand side navigation, then check the *Custom RTC Date* box. 2. Click on the **System** item on the left-hand side navigation, then check the *Custom RTC Date* box.
3. The Date/Time option now becomes editable. Set it to the value you want and hit **OK**. 3. The Date/Time option now becomes editable. Set it to the value you want and hit **OK**.
4. GREAT SCOTT! We have time traveled! You can of course go forward or backward in time (as long as it is not before the year 1970) and your game should update accordingly (e.g. certain *Super Mario Odyssey* moons that take time for flowers to grow will now be fully grown.). 4. GREAT SCOTT! We have time traveled! You can of course go forward or backward in time (as long as it is not before the year 1970) and your game should update accordingly (e.g. certain *Super Mario Odyssey* moons that take time for flowers to grow will now be fully grown.).

2
docs/user/Controllers.md

@ -30,7 +30,7 @@ Use this guide for when you want to configure specific controller settings to be
#### Steps #### Steps
1. Launch Eden and wait for it to load. 1. Launch Eden and wait for it to load.
2. Navigate to *Emulation > Configure*
2. Navigate to *Emulation > Configure...*
3. Select **Controls** from the left-hand menu and configure your controller for the way you want it to be in game. 3. Select **Controls** from the left-hand menu and configure your controller for the way you want it to be in game.
4. Select **New** and enter a name for the profile in the box that appears. Press **OK** to save the profile settings. 4. Select **New** and enter a name for the profile in the box that appears. Press **OK** to save the profile settings.
5. Select **OK** to close the settings menu. 5. Select **OK** to close the settings menu.

14
docs/user/GyroControls.md

@ -16,14 +16,14 @@ Use this guide when you want to use the Steam Deck's native gyro functionality f
### Steps ### Steps
1. Go into Steam Deck's Desktop Mode, and use the shortcut to launch EmuDeck. 1. Go into Steam Deck's Desktop Mode, and use the shortcut to launch EmuDeck.
2. Install [SteamDeckGyroDSU](https://github.com/kmicki/SteamDeckGyroDSU/releases) by going to *3rd Party Tools > Gyroscope* and clicking **Install.**
2. Install [SteamDeckGyroDSU](https://github.com/kmicki/SteamDeckGyroDSU/releases) by going to *3rd Party Tools > Gyroscope* and clicking **Install.**
a. Alternatively you can install [SteamDeckGyroDSU](https://github.com/kmicki/SteamDeckGyroDSU/releases) manually following the GitHub page instructions. a. Alternatively you can install [SteamDeckGyroDSU](https://github.com/kmicki/SteamDeckGyroDSU/releases) manually following the GitHub page instructions.
3. Upon completion of the installation. You will need to reboot your Steam Deck. Do so before continuing on. 3. Upon completion of the installation. You will need to reboot your Steam Deck. Do so before continuing on.
4. Go back into the Steam Deck Desktop Mode and open the Dolphin File Explorer. 4. Go back into the Steam Deck Desktop Mode and open the Dolphin File Explorer.
5. Navigate to the following directory to see you controller configuration: `/home/deck/.config/Eden`
6. *Right-Click* the **qt-config.ini** file and open it with ***Kate***
7. Look for the following line: `player_0_motionleft=[empty]`.
8. Change the line to now say: `player_0_motionleft="motion:0,pad:0,port:26760,guid:0000000000000000000000007f000001,engine:cemuhookudp"`
5. Navigate to the following directory to see you controller configuration: `/home/deck/.config/Eden`
6. *Right-Click* the **qt-config.ini** file and open it with ***Kate***
7. Look for the following line: `player_0_motionleft=[empty]`.
8. Change the line to now say: `player_0_motionleft="motion:0,pad:0,port:26760,guid:0000000000000000000000007f000001,engine:cemuhookudp"`
9. Save the file and open Eden. 9. Save the file and open Eden.
10. Launch a compatible title, like *The Legend of Zelda: Breath of the Wild*.
11. Test the gyro capabilities, for the above mentioned title, it is accessed by holding down the **R Trigger** and moving the Steam Deck around.
10. Launch a compatible title, like *The Legend of Zelda: Breath of the Wild*.
11. Test the gyro capabilities, for the above mentioned title, it is accessed by holding down the **R Trigger** and moving the Steam Deck around.

2
docs/user/InstallingUpdatesDLC.md

@ -4,7 +4,7 @@ Use this guide when you want to install Updates or DLC for your games in Eden.
<aside> <aside>
***NOTE***: This applies to separate Update/DLC files, not “merged” NSP/XCI’s which include the base game and Updates/DLC applied on top of them in a single file. These files work in Eden, but would not require the following steps.
***NOTE***: This applies to separate Update/DLC files, not "merged" NSP/XCI's which include the base game and Updates/DLC applied on top of them in a single file. These files work in Eden, but would not require the following steps.
</aside> </aside>

18
docs/user/Multiplayer.md

@ -10,7 +10,7 @@ This FAQ will serve as a general quick question and answer simple questions.
No - The only emulator that has this kind of functionality is *Ryujinx* and it's forks. This solution requires loading a custom module on a modded switch console to work. No - The only emulator that has this kind of functionality is *Ryujinx* and it's forks. This solution requires loading a custom module on a modded switch console to work.
### Can I Play Online Games? ### Can I Play Online Games?
No - This would require hijacking requests to Nintendo's official servers to a custom server infrastructure built to emulate that functionality. This is how services like [*Pretendo*](https://pretendo.network/) operate. As such, you would not be able to play “Online”, you can however play multiplayer games.
No - This would require hijacking requests to Nintendo's official servers to a custom server infrastructure built to emulate that functionality. This is how services like [*Pretendo*](https://pretendo.network/) operate. As such, you would not be able to play "Online", you can however play multiplayer games.
### What's the Difference Between Online and Multiplayer? ### What's the Difference Between Online and Multiplayer?
I have chosen the wording carefully here for a reason. I have chosen the wording carefully here for a reason.
@ -21,7 +21,7 @@ I have chosen the wording carefully here for a reason.
The rule of thumb here is simple: If a game supports the ability to communicate without a server (Local Wireless, LAN, etc.) you will be able to play with other users. If it requires a server to function - it will not. You will need to look up if your title support Local Wireless/LAN play as an option. The rule of thumb here is simple: If a game supports the ability to communicate without a server (Local Wireless, LAN, etc.) you will be able to play with other users. If it requires a server to function - it will not. You will need to look up if your title support Local Wireless/LAN play as an option.
### How Does Multiplayer Work on Eden Exactly? ### How Does Multiplayer Work on Eden Exactly?
Eden's multiplayer works by emulating the Switch's local wireless (LDN) system, then tunneling that traffic over the internet through “rooms” that act like lobbies. Each player runs their own instance of the emulator, and as long as everyone joins the same room and the game supports local wireless multiplayer, the emulated consoles see each other as if they were on the same local network. This design avoids typical one-save netplay issues because every user keeps an independent save and console state while only the in-game wireless packets are forwarded through the room server. In practice, you pick or host a room, configure your network interface/port forwarding if needed, then launch any LDN-capable game; from the game's perspective it is just doing standard local wireless, while the emulator handles discovery and communication over the internet or LAN.
Eden's multiplayer works by emulating the Switch's local wireless (LDN) system, then tunneling that traffic over the internet through "rooms" that act like lobbies. Each player runs their own instance of the emulator, and as long as everyone joins the same room and the game supports local wireless multiplayer, the emulated consoles see each other as if they were on the same local network. This design avoids typical one-save netplay issues because every user keeps an independent save and console state while only the in-game wireless packets are forwarded through the room server. In practice, you pick or host a room, configure your network interface/port forwarding if needed, then launch any LDN-capable game; from the game's perspective it is just doing standard local wireless, while the emulator handles discovery and communication over the internet or LAN.
### What Do I Need to Do? ### What Do I Need to Do?
That depends entirely on what your goal is and your level of technical ability, you have a 2 options on how to proceed. That depends entirely on what your goal is and your level of technical ability, you have a 2 options on how to proceed.
@ -71,7 +71,7 @@ There are 2 primary methods that you can use to connect to an existing room, dep
</aside> </aside>
## Joining a Public Lobby ## Joining a Public Lobby
1. Open Eden and navigate to *Multiplayer Browse Public Game Lobby*.
1. Open Eden and navigate to *Multiplayer > Browse Public Game Lobby*.
2. The **Public Room Browser** will now open and display a list of publicly accessible rooms. Find one you want to connect to and double click it. 2. The **Public Room Browser** will now open and display a list of publicly accessible rooms. Find one you want to connect to and double click it.
<aside> <aside>
@ -84,7 +84,7 @@ There are 2 primary methods that you can use to connect to an existing room, dep
### Direct Connecting to a Room ### Direct Connecting to a Room
If the hoster has not made the lobby public, or you don't want to find it in the public game browser - use this option to connect. If the hoster has not made the lobby public, or you don't want to find it in the public game browser - use this option to connect.
1. Open Eden and navigate to *Multiplayer Direct Connect*.
1. Open Eden and navigate to *Multiplayer > Direct Connect*.
2. Enter the *Server Address, Port*, *Nickname* (what your user will be called in the room), and a *Password* (if the hoster set one, otherwise leave it blank) and hit **Connect.** 2. Enter the *Server Address, Port*, *Nickname* (what your user will be called in the room), and a *Password* (if the hoster set one, otherwise leave it blank) and hit **Connect.**
3. You will now see a window showing everyone on the lobby, or an error message. 3. You will now see a window showing everyone on the lobby, or an error message.
@ -101,7 +101,7 @@ Use this guide for when you want to host a multiplayer lobby to play with others
- Ability to allow programs through the firewall on your device. - Ability to allow programs through the firewall on your device.
### Steps ### Steps
1. Open Eden and navigate to *Emulation → Multiplayer → Create Room.*
1. Open Eden and navigate to *Emulation > Multiplayer > Create Room.*
2. Fill out the following information in the popup dialog box. 2. Fill out the following information in the popup dialog box.
@ -144,7 +144,7 @@ Quite often the person with whom you want to play is located off of your interna
Port forwarding is a networking technique that directs incoming traffic arriving at a specific port on a router or firewall to a designated device and port inside a private local network. When an external client contacts the public IP address of the router on that port, the router rewrites the packet's destination information (IP address and sometimes port number) and forwards it to the internal host that is listening on the corresponding service. This allows services such as web servers, game servers, or remote desktop sessions hosted behind NAT (Network Address Translation) to be reachable from the wider Internet despite the devices themselves having non-routable private addresses. Port forwarding is a networking technique that directs incoming traffic arriving at a specific port on a router or firewall to a designated device and port inside a private local network. When an external client contacts the public IP address of the router on that port, the router rewrites the packet's destination information (IP address and sometimes port number) and forwards it to the internal host that is listening on the corresponding service. This allows services such as web servers, game servers, or remote desktop sessions hosted behind NAT (Network Address Translation) to be reachable from the wider Internet despite the devices themselves having non-routable private addresses.
The process works by creating a static mapping—often called a “port-forward rule”—in the router's configuration. The rule specifies three pieces of data: the external (public) port, the internal (private) IP address of the target machine, and the internal port on which that machine expects the traffic. When a packet arrives, the router checks its NAT table, matches the external port to a rule, and then translates the packet's destination to the internal address before sending it onward. Responses from the internal host are similarly rewritten so they appear to come from the router's public IP, completing the bidirectional communication loop. This mechanism enables seamless access to services inside a protected LAN without exposing the entire network.
The process works by creating a static mapping-often called a "port-forward rule"-in the router's configuration. The rule specifies three pieces of data: the external (public) port, the internal (private) IP address of the target machine, and the internal port on which that machine expects the traffic. When a packet arrives, the router checks its NAT table, matches the external port to a rule, and then translates the packet's destination to the internal address before sending it onward. Responses from the internal host are similarly rewritten so they appear to come from the router's public IP, completing the bidirectional communication loop. This mechanism enables seamless access to services inside a protected LAN without exposing the entire network.
For our purposes we would pick the port we want to expose (*e.g. 24872*) and we would access our router's configuration and create a port-forward rule to send the traffic from an external connection to your local machine over our specified port (*24872)*. The exact way to do so, varies greatly by router manufacturer - and sometimes require contacting your ISP to do so depending on your agreement. You can look up your router on [*portforward.com*](https://portforward.com/router.htm) which may have instructions on how to do so for your specific equipment. If it is not there, you will have to use Google/ChatGPT to determine the steps for your equipment. For our purposes we would pick the port we want to expose (*e.g. 24872*) and we would access our router's configuration and create a port-forward rule to send the traffic from an external connection to your local machine over our specified port (*24872)*. The exact way to do so, varies greatly by router manufacturer - and sometimes require contacting your ISP to do so depending on your agreement. You can look up your router on [*portforward.com*](https://portforward.com/router.htm) which may have instructions on how to do so for your specific equipment. If it is not there, you will have to use Google/ChatGPT to determine the steps for your equipment.
@ -160,7 +160,7 @@ Remember you can't have one port open for multiple devices at the same time - yo
</aside> </aside>
Using a Tunnelling service may be the solution to avoid port forward, but also avoid worrying about your users setup. A tunnelling service works by having a lightweight client run on the machine that hosts the game server. That client immediately opens an **outbound** encrypted connection (typically over TLS/QUIC) to a relay node operated by the tunnel provider's cloud infrastructure. Because outbound traffic is almost always allowed through NAT routers and ISP firewalls, the tunnel can be established even when the host sits behind carrier-grade NAT or a strict firewall. The tunnel provider then assigns a public address (e.g.,`mygame.playit.gg:12345`). When a remote player connects to that address, the traffic reaches the the tunnel provider relay, which forwards it through the already-established tunnel back to the client on the private network, and finally onto the local game server's port. In effect, the server appears to the Internet as if it were listening on the public address, while the host never needs to configure port-forwarding rules or expose its own IP directly.
Using a Tunnelling service may be the solution to avoid port forward, but also avoid worrying about your users setup. A tunnelling service works by having a lightweight client run on the machine that hosts the game server. That client immediately opens an **outbound** encrypted connection (typically over TLS/QUIC) to a relay node operated by the tunnel provider's cloud infrastructure. Because outbound traffic is almost always allowed through NAT routers and ISP firewalls, the tunnel can be established even when the host sits behind carrier-grade NAT or a strict firewall. The tunnel provider then assigns a public address (e.g., `mygame.playit.gg:12345`). When a remote player connects to that address, the traffic reaches the the tunnel provider relay, which forwards it through the already-established tunnel back to the client on the private network, and finally onto the local game server's port. In effect, the server appears to the Internet as if it were listening on the public address, while the host never needs to configure port-forwarding rules or expose its own IP directly.
For our purposes we would spawn the listener for the port that way chose when hosting our room. The user would connect to our assigned public address/port combination, and it would be routed to our machine. The tunnel must remain active for as long as you want the connection to remain open. Closing the terminal will kill the tunnel and disconnect the users. For our purposes we would spawn the listener for the port that way chose when hosting our room. The user would connect to our assigned public address/port combination, and it would be routed to our machine. The tunnel must remain active for as long as you want the connection to remain open. Closing the terminal will kill the tunnel and disconnect the users.
@ -204,7 +204,7 @@ Use this guide when you need to determine the connection information for the Pub
### Method 1: Grabbing the Address from the Log File ### Method 1: Grabbing the Address from the Log File
1. Open Eden and Connect to the room you want to identify. 1. Open Eden and Connect to the room you want to identify.
1. See the *Joining a Multiplayer Room* section for instructions on how to do so if you need them. 1. See the *Joining a Multiplayer Room* section for instructions on how to do so if you need them.
2. Go to *File Open Eden Folder*, then open the **config** folder.
2. Go to *File > Open Eden Folder*, then open the **config** folder.
3. Open the the **qt-config.ini** file in a text editor. 3. Open the the **qt-config.ini** file in a text editor.
4. Search for the following keys: 4. Search for the following keys:
1. `Multiplayer\ip=` 1. `Multiplayer\ip=`
@ -286,7 +286,7 @@ This guide will assume you are the one hosting the game and go over things *Pars
2. If you are joining a game, you will have to send a connection request the host will have to accept. 2. If you are joining a game, you will have to send a connection request the host will have to accept.
3. Verify that the remote player can see the screen and that there is no issues with the connection. 3. Verify that the remote player can see the screen and that there is no issues with the connection.
4. Launch Eden. 4. Launch Eden.
5. Navigate to *Emulation Configure*.
5. Navigate to *Emulation > Configure*.
6. Select the **Controls** tab. 6. Select the **Controls** tab.
7. Set up your controller, if necessary. 7. Set up your controller, if necessary.
8. Select the **Player 2** tab and select the **Connect Controller** checkbox. This enables inputs from another device to be seen as a second controller. 8. Select the **Player 2** tab and select the **Connect Controller** checkbox. This enables inputs from another device to be seen as a second controller.

10
docs/user/QuickStart.md

@ -33,12 +33,12 @@ Use this guide to get starting using the Eden emulator.
<aside> <aside>
***INFO***: You may get a “*Windows protected your PC”* SmartScreen message that appears. This is just Windows Defender saying it did not recognize the application and did not run it - Eden is completely safe. Click **More info** and then **Run anyway** to dismiss this message.
***INFO***: You may get a "*Windows protected your PC"* SmartScreen message that appears. This is just Windows Defender saying it did not recognize the application and did not run it - Eden is completely safe. Click **More info** and then **Run anyway** to dismiss this message.
</aside> </aside>
4. Eden will now launch and notify you about missing Decryption keys. Close the dialog box by hitting **OK**. 4. Eden will now launch and notify you about missing Decryption keys. Close the dialog box by hitting **OK**.
5. Navigate to **Tools Install Decryption Keys**, navigate to the folder containing your key files and select the file, you should only be able to select one.
6. Navigate to **Tools Install Firmware**, *Select **From Folder*** or ***From ZIP*** - depending on how your firmware is stored, navigate to where it is stored and select it.
5. Navigate to **Tools > Install Decryption Keys**, navigate to the folder containing your key files and select the file, you should only be able to select one.
6. Navigate to **Tools > Install Firmware**, *Select **From Folder*** or ***From ZIP*** - depending on how your firmware is stored, navigate to where it is stored and select it.
7. Double-Click the main window to add the folder containing your games. 7. Double-Click the main window to add the folder containing your games.
8. Go to *Emulation > Configure > Input* and set up your controller of choice. Click **OK** to close the dialog window. 8. Go to *Emulation > Configure > Input* and set up your controller of choice. Click **OK** to close the dialog window.
9. Double-Click a game to run it. 9. Double-Click a game to run it.
@ -72,8 +72,8 @@ Use this guide to get starting using the Eden emulator.
4. If you have had a different Switch emulator installed, it will detect and ask if you want to import those settings. Make your selection to close the screen. 4. If you have had a different Switch emulator installed, it will detect and ask if you want to import those settings. Make your selection to close the screen.
5. Eden will now launch and notify you about missing Encryption keys. Close the dialog box by hitting **OK**. 5. Eden will now launch and notify you about missing Encryption keys. Close the dialog box by hitting **OK**.
6. Navigate to **Tools Install Decryption Keys**, navigate to the folder containing your ***prod.keys*** file and select the file and hit **Open**.
7. Navigate to **Tools → Install Firmware →** *Select **From Folder*** or ***From ZIP*** - depending on how your firmware is stored, navigate to where it is stored and select it.
6. Navigate to **Tools > Install Decryption Keys**, navigate to the folder containing your ***prod.keys*** file and select the file and hit **Open**.
7. Navigate to **Tools > Install Firmware >** *Select **From Folder*** or ***From ZIP*** - depending on how your firmware is stored, navigate to where it is stored and select it.
8. Double-Click the main window to add the folder containing your games. 8. Double-Click the main window to add the folder containing your games.
9. Go to *Emulation > Configure > Input* and set up your controller. Click **OK** to close the dialog window. 9. Go to *Emulation > Configure > Input* and set up your controller. Click **OK** to close the dialog window.
10. Double-Click a game to run it. 10. Double-Click a game to run it.

2
docs/user/RunOnMacOS.md

@ -22,7 +22,7 @@ Use this guide when you need to allow Eden to run on a Mac system, but are being
### Why am I Seeing This? ### Why am I Seeing This?
Recent versions of MacOS (Catalina & newer) introduced the **Gatekeeper** security functionality, requiring software to be signed by Apple or a trusted (aka - paying) developer. If the signature isnt on the list of trusted ones, it will stop the program from executing and display the message above.
Recent versions of MacOS (Catalina & newer) introduced the **Gatekeeper** security functionality, requiring software to be signed by Apple or a trusted (aka - paying) developer. If the signature isn't on the list of trusted ones, it will stop the program from executing and display the message above.
--- ---

18
docs/user/SteamROM.md

@ -20,7 +20,7 @@ Use this when you want to import the Eden AppImage into your Steam Library along
#### Initial Setup #### Initial Setup
1. Press the **STEAM** button and then go to *Power → Switch to Desktop* to enter the Desktop mode.
1. Press the **STEAM** button and then go to *Power > Switch to Desktop* to enter the Desktop mode.
2. Install ***Steam ROM Manager*** (if needed), there are 2 ways you can accomplish this, either manually or through [*EmuDeck*](https://www.emudeck.com/#downloads). 2. Install ***Steam ROM Manager*** (if needed), there are 2 ways you can accomplish this, either manually or through [*EmuDeck*](https://www.emudeck.com/#downloads).
@ -53,8 +53,8 @@ Use this when you want to import the Eden AppImage into your Steam Library along
EmuDeck will automatically create an *Emulators - Emulators* parser for ***Steam ROM Manager*** that uses shell scripts to launch them. We will follow this convention. EmuDeck will automatically create an *Emulators - Emulators* parser for ***Steam ROM Manager*** that uses shell scripts to launch them. We will follow this convention.
1. In the file explorer go to your **EmuDeck installation folder → tools → launchers**
2. Right-Click some empty space and hit **Create New Text File,** call this new file ***eden.sh*** instead of ***Text File.txt***
1. In the file explorer go to your **EmuDeck installation folder > tools > launchers**
2. Right-Click some empty space and hit **Create New > Text File,** call this new file ***eden.sh*** instead of ***Text File.txt***
3. Right-Click the ***eden.sh*** file you created and hit ***Open with Kate***. 3. Right-Click the ***eden.sh*** file you created and hit ***Open with Kate***.
4. Paste the following code into the contents of the file, save and close the file. 4. Paste the following code into the contents of the file, save and close the file.
@ -103,7 +103,7 @@ We will need to create a new parser for the Emulators. Unlike with the EmuDeck
<aside> <aside>
***TIP***: You may need to go to **Settings Theme** and set it to *Classic* to view this option.
***TIP***: You may need to go to **Settings > Theme** and set it to *Classic* to view this option.
</aside> </aside>
@ -119,7 +119,7 @@ We will need to create a new parser for the Emulators. Unlike with the EmuDeck
2. Parser Specific Configuration 2. Parser Specific Configuration
1. **Search Glob**: *${title}@(.AppImage|.APPIMAGE|.appimage)* 1. **Search Glob**: *${title}@(.AppImage|.APPIMAGE|.appimage)*
3. Executable Configuration 3. Executable Configuration
1. **Executable Modifier**: *"${exePath}*
1. **Executable Modifier**: *"${exePath}"*
4. Title Modification Configuration 4. Title Modification Configuration
1. **Title Modifier**: *${fuzzyTitle}* 1. **Title Modifier**: *${fuzzyTitle}*
@ -181,7 +181,7 @@ Use this when you want to import your games inside Eden into Steam to launch wit
### Steps ### Steps
1. Press the **STEAM** button and then go to *Power → Switch to Desktop* to enter the Desktop mode.
1. Press the **STEAM** button and then go to *Power > Switch to Desktop* to enter the Desktop mode.
1. Install ***Steam ROM Manager***, there are 2 ways you can accomplish this, either manually or through [*EmuDeck*](https://www.emudeck.com/#downloads). 1. Install ***Steam ROM Manager***, there are 2 ways you can accomplish this, either manually or through [*EmuDeck*](https://www.emudeck.com/#downloads).
@ -215,7 +215,7 @@ Use this when you want to import your games inside Eden into Steam to launch wit
<aside> <aside>
***TIP***: Your layout may look different depending on how you installed *Steam ROM Manager*. You may need to go to **Settings Theme** and change it to *Classic* to follow along.
***TIP***: Your layout may look different depending on how you installed *Steam ROM Manager*. You may need to go to **Settings > Theme** and change it to *Classic* to follow along.
</aside> </aside>
@ -229,13 +229,13 @@ Use this when you want to import your games inside Eden into Steam to launch wit
2. Change the **Parser title** from *Nintendo Switch - Yuzu* to *Nintendo Switch - Eden.* 2. Change the **Parser title** from *Nintendo Switch - Yuzu* to *Nintendo Switch - Eden.*
3. Hit the **Browse** option under the *ROMs directory* section. Select the directory containing your Switch ROMs. 3. Hit the **Browse** option under the *ROMs directory* section. Select the directory containing your Switch ROMs.
4. Under *Steam collections*, you can add a Steam category name. This just organizes the games under a common category in your Steam Library, this is optional but recommended. 4. Under *Steam collections*, you can add a Steam category name. This just organizes the games under a common category in your Steam Library, this is optional but recommended.
5. Scroll down slightly to the **Executable Configuration Executable**, select **Browse** and select the Eden AppImage.
5. Scroll down slightly to the **Executable Configuration > Executable**, select **Browse** and select the Eden AppImage.
6. Leave everything else the same and hit **Save** to save the parser. 6. Leave everything else the same and hit **Save** to save the parser.
--- ---
4. Click the Eden parser to view the options on the right, select **Test** at the bottom of the screen to ensure that *Steam ROM Manager* detects your games correctly. 4. Click the Eden parser to view the options on the right, select **Test** at the bottom of the screen to ensure that *Steam ROM Manager* detects your games correctly.
1. *Steam ROM Manager* will start to scan the specified ROMs directory and match them to games. Look over the results to ensure they are accurate. If you do not see any entries - check your parsers ROMs directory field. 1. *Steam ROM Manager* will start to scan the specified ROMs directory and match them to games. Look over the results to ensure they are accurate. If you do not see any entries - check your parsers ROMs directory field.
1. When you are happy with the results, click the **Add Games** **Parse** to start the actual Parsing.
1. When you are happy with the results, click the **Add Games** > **Parse** to start the actual Parsing.
1. The program will now identify the games and pull artwork from [*SteamGridDB*](https://www.steamgriddb.com/). 1. The program will now identify the games and pull artwork from [*SteamGridDB*](https://www.steamgriddb.com/).
2. Review the game matches and ensure everything is there. 2. Review the game matches and ensure everything is there.

20
docs/user/SyncthingGuide.md

@ -30,15 +30,15 @@ Use this guide for when you want to configure automated backup/syncing of your E
## Overview ## Overview
Rather than giving a breakdown of all the platforms and configurations, those will be in the platforms specific guides - this will serve as a general overview of Syncthing.
Rather than giving a breakdown of all the platforms and configurations, those will be in the platform's specific guides - this will serve as a general overview of Syncthing.
### What is Syncthing Anyway? ### What is Syncthing Anyway?
Syncthing is a continuous file synchronization program (in the laymans - make sure 2 or more systems with the same files are always up to date). This is perfect for game saves where we would want to play on 1 device, save our game, and then continue playing it on another device. This technology is what Epic/Steam/etc. use to allow you to do this on games run through their respective services. Syncthing is an open source implementation of this technology that you control, rather than relying on a 3rd party. This has a few key benefits, most notably - better security, privacy, and speed (when on your LAN).
Syncthing is a continuous file synchronization program (in the layman's - make sure 2 or more systems with the same files are always up to date). This is perfect for game saves where we would want to play on 1 device, save our game, and then continue playing it on another device. This technology is what Epic/Steam/etc. use to allow you to do this on games run through their respective services. Syncthing is an open source implementation of this technology that you control, rather than relying on a 3rd party. This has a few key benefits, most notably - better security, privacy, and speed (when on your LAN).
### What are some common issues? ### What are some common issues?
Syncthing is fairly robust and doesnt have many issues luckily, but there are some things you should watch out for (almost all of them a user issue).
Syncthing is fairly robust and doesn't have many issues luckily, but there are some things you should watch out for (almost all of them a user issue).
- Sync conflicts - Sync conflicts
- If for whatever reason you update the same file on 2 different machines, the system does not know which updated file is considered the one to sync across. This results in a ***sync conflict*** where it may not sync the files as you would expect. Worst case scenario, this can result in your save progress being lost if you are not careful. When one of these occurs, it will create a copy of the file and store it with a specific name, like this example, *Paper Mario.sync-conflict-20251102-072925-TZBBN6S.srm.* To resolve this, you must remove the other files and remove the *.sync-conflict-<TIMESTAMP>-<Syncthing Device ID>* from the file name of the file you want to keep. - If for whatever reason you update the same file on 2 different machines, the system does not know which updated file is considered the one to sync across. This results in a ***sync conflict*** where it may not sync the files as you would expect. Worst case scenario, this can result in your save progress being lost if you are not careful. When one of these occurs, it will create a copy of the file and store it with a specific name, like this example, *Paper Mario.sync-conflict-20251102-072925-TZBBN6S.srm.* To resolve this, you must remove the other files and remove the *.sync-conflict-<TIMESTAMP>-<Syncthing Device ID>* from the file name of the file you want to keep.
@ -86,7 +86,7 @@ Use this when you want to set this machine as the initial source of truth (push
1. Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing.** 1. Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing.**
2. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them. 2. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them.
3. Well start by adding the folder with our save files that we want to sync by Pressing **+ Add Folder**.
3. We'll start by adding the folder with our save files that we want to sync by Pressing **+ Add Folder**.
4. A pop-up window will appear, fill in the Folder label field with whatever you want to call it, like Switch Saves. 4. A pop-up window will appear, fill in the Folder label field with whatever you want to call it, like Switch Saves.
5. Enter the Full folder path to where your save files are stored on this machine. 5. Enter the Full folder path to where your save files are stored on this machine.
@ -105,7 +105,7 @@ Use this when you want to set this machine as the initial source of truth (push
Use this when you want to set this machine up as a child (pull files from the other devices). Afterwards they will all be equal partners, not a parent/child relationship, this just helps with initial setup. Use this when you want to set this machine up as a child (pull files from the other devices). Afterwards they will all be equal partners, not a parent/child relationship, this just helps with initial setup.
1. Install Syncthing Tray on the client device following the section above. Copy the childs ID and store it so it is accessible to the Parent.
1. Install Syncthing Tray on the client device following the section above. Copy the child's ID and store it so it is accessible to the Parent.
2. ***ON THE PARENT***: Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing** if it is not open already**.** 2. ***ON THE PARENT***: Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing** if it is not open already**.**
3. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them. 3. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them.
4. Navigate down to **+ Add Remote Device**, we are going to add our Child device, so I hope you have its ID handy. If not, go back and get it. 4. Navigate down to **+ Add Remote Device**, we are going to add our Child device, so I hope you have its ID handy. If not, go back and get it.
@ -126,7 +126,7 @@ Use this when you want to set this machine up as a child (pull files from the ot
</aside> </aside>
13. *Syncthing* will now pull all the files from the Parent and store them in your local save directory. At this point the files are in sync and alterations to one will affect the other and both can be considered “*Parents*” for other devices you want to add. Repeat these steps for as many devices you want.
13. *Syncthing* will now pull all the files from the Parent and store them in your local save directory. At this point the files are in sync and alterations to one will affect the other and both can be considered "*Parents*" for other devices you want to add. Repeat these steps for as many devices you want.
## Linux ## Linux
@ -166,9 +166,9 @@ Use this when you want to set this machine up as a child (pull files from the ot
Use this when you want to set this machine as the initial source of truth (push files out to all the other devices). Afterwards they will all be equal partners, not a parent/child relationship, this just helps with initial setup. Use this when you want to set this machine as the initial source of truth (push files out to all the other devices). Afterwards they will all be equal partners, not a parent/child relationship, this just helps with initial setup.
1. Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing.** 1. Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing.**
1. If you dont have a taskbar in your distro, you can also reach it directly by opening a web browser to: *http://127.0.0.1:8384/.*
1. If you don't have a taskbar in your distro, you can also reach it directly by opening a web browser to: *http://127.0.0.1:8384/.*
2. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them. 2. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them.
3. Well start by adding the folder with our save files that we want to sync by Pressing **+ Add Folder**.
3. We'll start by adding the folder with our save files that we want to sync by Pressing **+ Add Folder**.
4. A pop-up window will appear, fill in the Folder label field with whatever you want to call it, like Switch Saves. 4. A pop-up window will appear, fill in the Folder label field with whatever you want to call it, like Switch Saves.
5. Enter the Full folder path to where your save files are stored on this machine. 5. Enter the Full folder path to where your save files are stored on this machine.
@ -187,7 +187,7 @@ Use this when you want to set this machine as the initial source of truth (push
Use this when you want to set this machine up as a child (pull files from the other devices). Afterwards they will all be equal partners, not a parent/child relationship, this just helps with initial setup. Use this when you want to set this machine up as a child (pull files from the other devices). Afterwards they will all be equal partners, not a parent/child relationship, this just helps with initial setup.
1. Install Syncthing Tray on the client device following the section above. Copy the childs ID and store it so it is accessible to the Parent.
1. Install Syncthing Tray on the client device following the section above. Copy the child's ID and store it so it is accessible to the Parent.
2. ***ON THE PARENT***: Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing** if it is not open already**.** 2. ***ON THE PARENT***: Right-Click the *Syncthing* Tray icon in your taskbar and select **Open Syncthing** if it is not open already**.**
3. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them. 3. You will now have a browser window open up to a web GUI to configure *Syncthing*. You will get a pop up about allowing anonymous usage and setting a password, make your selections to close them.
4. Navigate down to **+ Add Remote Device**, we are going to add our Child device, so I hope you have its ID handy. If not, go back and get it. 4. Navigate down to **+ Add Remote Device**, we are going to add our Child device, so I hope you have its ID handy. If not, go back and get it.
@ -208,4 +208,4 @@ Use this when you want to set this machine up as a child (pull files from the ot
</aside> </aside>
13. *Syncthing* will now pull all the files from the Parent and store them in your local save directory. At this point the files are in sync and alterations to one will affect the other and both can be considered “*Parents*” for other devices you want to add. Repeat these steps for as many devices you want.
13. *Syncthing* will now pull all the files from the Parent and store them in your local save directory. At this point the files are in sync and alterations to one will affect the other and both can be considered "*Parents*" for other devices you want to add. Repeat these steps for as many devices you want.

2
docs/user/Troubleshoot.md

@ -68,7 +68,7 @@ Faulting package-relative application ID:
2. Confirm there are no logs created in the log directory. 2. Confirm there are no logs created in the log directory.
1. See the [How to Access Logs](./HowToAccessLogs.md) page for the log location if you need it. 1. See the [How to Access Logs](./HowToAccessLogs.md) page for the log location if you need it.
2. If there are any entries in here since you tried step 1, this is likely not your issue. 2. If there are any entries in here since you tried step 1, this is likely not your issue.
3. Navigate to your *Windows Event Viewer* (Start Menu **eventvwr.msc)**.
3. Navigate to your *Windows Event Viewer* (Start Menu > **eventvwr.msc)**.
4. Expand **Windows Logs** and select **Application.** 4. Expand **Windows Logs** and select **Application.**
5. Look for an entry with the Level of Error, and look for a message similar to the following 5. Look for an entry with the Level of Error, and look for a message similar to the following

6
docs/user/UsingAmiibo.md

@ -30,14 +30,14 @@ TBD
</aside> </aside>
1. Navigate to the Amiibo section of the game. The method for initiating the scanning varies from game to game, for *Captain Toads Treasure Tracker*, you need to go to the press the **+** button when on the level select. You will need to look up how to do so with your specific game.
1. Navigate to the Amiibo section of the game. The method for initiating the scanning varies from game to game, for *Captain Toad's Treasure Tracker*, you need to go to the press the **+** button when on the level select. You will need to look up how to do so with your specific game.
2. Upon activating the Amiibo scan functionality, you should get a Scan page. Eden is now looking for an Amiibo file to be loaded, which emulates scanning an Amiibo on actual hardware. 2. Upon activating the Amiibo scan functionality, you should get a Scan page. Eden is now looking for an Amiibo file to be loaded, which emulates scanning an Amiibo on actual hardware.
3. Navigate to **File > Load/Remove Amiibo**, or press the hotkey to do the same (**F2** on keyboard by default).
3. Navigate to **File > Load/Remove Amiibo...**, or press the hotkey to do the same (**F2** on keyboard by default).
4. In the file explorer that opens, navigate to the amiibo file you want to use. 4. In the file explorer that opens, navigate to the amiibo file you want to use.
<aside> <aside>
***NOTE***: It seems the scanning functionality is spotty and will sometimes throw a "*The current game is not looking for amiibos* message, even though it is. Usually you just need to try loading it again or restarting the scanning from the game. In some situations it was only resolved by restarting the game.
***NOTE***: It seems the scanning functionality is spotty and will sometimes throw a "*The current game is not looking for amiibos*" message, even though it is. Usually you just need to try loading it again or restarting the scanning from the game. In some situations it was only resolved by restarting the game.
</aside> </aside>

20
docs/user/UsingCheats.md

@ -58,24 +58,24 @@ Community Member [Ninjistix](https://github.com/Ninjistix) created a utility (Wi
``` ```
[Super Mario Bros. Wonder - Various] <- Optional [Super Mario Bros. Wonder - Various] <- Optional
[ 1. Always Star Power]
[# 1. Always Star Power]
040E0000 00880580 52800035 040E0000 00880580 52800035
[ 2. Star Power + Bubble Mode (Invincible)]
[# 2. Star Power + Bubble Mode (Invincible)]
040E0000 00880580 52800075 040E0000 00880580 52800075
[ 3. Can Fast Travel to Any Course and World]
[# 3. Can Fast Travel to Any Course and World]
040E0000 00935E10 52800036 040E0000 00935E10 52800036
040E0000 0048A528 52800028 040E0000 0048A528 52800028
040E0000 005D9F58 52800028 040E0000 005D9F58 52800028
[ 4. Got All Top of Flag Poles]
[# 4. Got All Top of Flag Poles]
040E0000 0048A818 52800028 040E0000 0048A818 52800028
``` ```
### Step 3: Enabling/Disabling Cheats ### Step 3: Enabling/Disabling Cheats
Cheats are enabled by default, but can be disabled so they dont affect gameplay fairly easily using the game properties.
Cheats are enabled by default, but can be disabled so they don't affect gameplay fairly easily using the game properties.
1. Open Eden and press and hold the game you want to apply the cheat to. 1. Open Eden and press and hold the game you want to apply the cheat to.
2. Scroll down on the properties until you see **Add-ons**, select this option. 2. Scroll down on the properties until you see **Add-ons**, select this option.
@ -130,24 +130,24 @@ Community Member [Ninjistix](https://github.com/Ninjistix) created a utility (Wi
``` ```
[Super Mario Bros. Wonder - Various] <- Optional [Super Mario Bros. Wonder - Various] <- Optional
[ 1. Always Star Power]
[# 1. Always Star Power]
040E0000 00880580 52800035 040E0000 00880580 52800035
[ 2. Star Power + Bubble Mode (Invincible)]
[# 2. Star Power + Bubble Mode (Invincible)]
040E0000 00880580 52800075 040E0000 00880580 52800075
[ 3. Can Fast Travel to Any Course and World]
[# 3. Can Fast Travel to Any Course and World]
040E0000 00935E10 52800036 040E0000 00935E10 52800036
040E0000 0048A528 52800028 040E0000 0048A528 52800028
040E0000 005D9F58 52800028 040E0000 005D9F58 52800028
[ 4. Got All Top of Flag Poles]
[# 4. Got All Top of Flag Poles]
040E0000 0048A818 52800028 040E0000 0048A818 52800028
``` ```
### Step 3: Enabling/Disabling Cheats ### Step 3: Enabling/Disabling Cheats
Cheats are enabled by default, but can be disabled so they dont affect gameplay fairly easily using the game properties.
Cheats are enabled by default, but can be disabled so they don't affect gameplay fairly easily using the game properties.
1. *Right-Click* the game and select *Configure Game*. 1. *Right-Click* the game and select *Configure Game*.
2. In the **Add-Ons** section, locate the cheat you wish to enable. 2. In the **Add-Ons** section, locate the cheat you wish to enable.

2
src/audio_core/sink/sink_stream.cpp

@ -155,7 +155,7 @@ void SinkStream::ProcessAudioIn(std::span<const s16> input_buffer, std::size_t n
std::memcpy(&last_frame[0], &input_buffer[(frames_written - 1) * frame_size], frame_size_bytes); std::memcpy(&last_frame[0], &input_buffer[(frames_written - 1) * frame_size], frame_size_bytes);
} }
// update sample counts für audio-ins
// update sample counts fuer audio-ins
{ {
std::scoped_lock lk{sample_count_lock}; std::scoped_lock lk{sample_count_lock};
last_sample_count_update_time = system.CoreTiming().GetGlobalTimeNs(); last_sample_count_update_time = system.CoreTiming().GetGlobalTimeNs();

4
src/common/settings.h

@ -791,8 +791,8 @@ struct Values {
"program_args", "program_args",
Category::System, Category::System,
Specialization::Default, Specialization::Default,
true, // save_ persist in config file
false}; // runtime_modifiable_ startup-only
true, // save_ - persist in config file
false}; // runtime_modifiable_ - startup-only
Setting<bool> dump_exefs{linkage, false, "dump_exefs", Category::Debugging}; Setting<bool> dump_exefs{linkage, false, "dump_exefs", Category::Debugging};
Setting<bool> dump_nso{linkage, false, "dump_nso", Category::Debugging}; Setting<bool> dump_nso{linkage, false, "dump_nso", Category::Debugging};
Setting<bool> dump_guest_shaders{ Setting<bool> dump_guest_shaders{

2
src/core/hle/kernel/physical_core.cpp

@ -106,7 +106,7 @@ void PhysicalCore::RunThread(KernelCore& kernel, Kernel::KThread* thread) {
} }
// Determine why we stopped. // Determine why we stopped.
// If a step completed successfully, skip other halt reason handlers
// If a step completed successfully, skip other halt reason handlers
// the step takes priority (e.g. step may also set InstructionBreakpoint // the step takes priority (e.g. step may also set InstructionBreakpoint
// if the next instruction happens to be a breakpoint). // if the next instruction happens to be a breakpoint).
const bool step_completed = True(hr & Core::HaltReason::StepThread) const bool step_completed = True(hr & Core::HaltReason::StepThread)

2
src/video_core/vulkan_common/vulkan_device.cpp

@ -1518,7 +1518,7 @@ std::vector<VkDeviceQueueCreateInfo> Device::GetDeviceQueueCreateInfos() const {
} }
void Device::InitializeGPULogging() { void Device::InitializeGPULogging() {
// Get log level from settings Off is the disable.
// Get log level from settings - Off is the disable.
const auto log_level = static_cast<GPU::Logging::LogLevel>( const auto log_level = static_cast<GPU::Logging::LogLevel>(
static_cast<u32>(Settings::values.gpu_log_level.GetValue())); static_cast<u32>(Settings::values.gpu_log_level.GetValue()));
if (log_level == GPU::Logging::LogLevel::Off) { if (log_level == GPU::Logging::LogLevel::Off) {

Loading…
Cancel
Save