Icarus
(Servono più voti)
So you want to play Icarus on your Steam Deck?
Di [T.H.D.R]Blue Phoenix e altri 1 collaboratori
This is going to be a somewhat in depth guide on how to fix Steam Deck/Icarus compatibility.
   
Premio
Aggiungi ai preferiti
Preferito
Rimuovi dai preferiti
Overview
Icarus is unsupported by valve for the Steam Deck and the devs for Icarus do not support Linux platforms or the Steam Deck in general. So the end product may be a tad janky but overall you'll make the game playable while keeping some of the graphical fidelity on the go. I will walk you through every step on achieving total game compatibility and game optimization specifically for the Deck. In my opinion it would be best if you were a "Power User" because we're going to be modifying the firmware through a pre-written script that you'll run through the Deck's "Konsole" and optionally i'll also walk you through installing and using certain plugins to help game performance and optimization in lue of battery life. With that in mind compatibility and good performance is not promised as it may potentially vary from Deck to Deck. It should also be noted that not every map or mission has been tested so results may vary.

I would also like state that I did not figure this out on my own. I had help from a YouTuber/Developer CryoByte33 and I can not stress how much you need to check out his videos. I will be referencing him, his videos and the guidance he has given me quite often throughout this guide. His videos could potentially help you get better overall performance and overall game compatibility with your Deck.

DISCLAIMER
Neither Me or CryoByte33 are responsible for you, your deck, your game or anything you do while following this guide and or his videos. You do everything at your own risk.


Also before we get started i must say that this is not a hitch free experience, you are likely to get infrequent game or even Deck crashing, FPS will drop near or below 10fps while loading saves or while loading major areas. However for the most part this will be a very playable experience at roughly an average 45fps low-medium settings. While sometimes dipping down to 30 or shooting up to 60.

P.S I am sorry in advance for any spelling or grammar errors I will do my absolute best in trying to make this as readable and easily follow-able as possible. Please feel free to post corrections down in the comments along with your findings as a Deck user while tinkering with the game and other various settings while setting up the game and optimizing the game.
What is a swap file?, Why you need it and how it works
In order to understand what a swap file is you need to understand the basics of computer memory types. First we have your storage device, for the steam deck this refers to your Internal SSD/eMMC or your MicroSD card. For all intents and purposes of this guide we'll mainly be focusing on your SSD/eMMC or Solid State Drive/embedded MultiMediaCard which is flash based memory. With the Steam Deck they vary in size depending on which model of the Steam Deck you purchased. The three models include 64gb (eMMC), 256&512 (NVME SSD). Besides the amount of storage there shouldn't be much of a difference between the eMMC model and the NVME SSD models however eMMC can be slightly slower and cause more latency. Your internal storage is basically long term storage for you to store your games and other various data. With computers there are also HDD or Hard Drive Disks which is basically a spinning physical disk that also stores data just a lot slower compared to flash memory. The benefit to SSDs/eMMC/HDDs is that you can store a lot more data compares to short term memory it is just comparatively slower.

Secondly we have your RAM or you random access memory which is also known as your short term memory. RAM is very fast but loses it's data when it loses power so it's only temporary storage which is why we also have long term memory. The reason we have RAM is so that the CPU or the GPU in cases of VRAM (Video Random Access Memory) can have a super fast memory bank to access data a lot quicker than it could with a long term storage device. Without RAM everything has to come from long term storage which can just be too slow for many use cases including gaming, if we tried to use long term storage instead of RAM it could potentially be too slow however in cases of SSDs or eMMC, it can be fast enough that it is actually more efficient to access our data directly from there. Modern consoles such as the PS5 or the Xbox Series X use this technology so that the GPU doesn't have to wait for the CPU to process data eliminating that as a potential bottleneck.

That ended up getting slightly off topic but don't get the wrong idea, Today we are not going to be doing this because the CPU within the Steam Deck's APU is too slow. Instead because of the lack of short term storage inside the Steam Deck. Within the Steam Deck's APU there is only 16 gigabytes of LPDDR5 to be shared between the CPU and the GPU for both RAM and VRAM. 16GB just is not enough to run Icarus at least not shared like it is. The minimum RAM specification listed for Icarus is 16GB, that's just what's needed for the CPU alone. Trying to run the game with less than this causes it to crash but not at first. You can easily get through the menu but you'll start to experience crashing when you start to load a save/prospect. To solve this issue we'll basically be taking what is known as a swap file. A swap file basically works by reserving a given amount of space off of the SSD and essentially adding it onto the RAM. Although the actual RAM on the APU takes priority, so you'll use the faster storage first.

Another issue relating to memory is that the CPU has priority over the GPU in terms of which one gets memory first. Although by default there is 1GB of RAM dedicated to the GPU so the Steam Deck has a 1GB swapfile by default to give the CPU a full 16GB of memory to use. All we're really going to be doing is extending that swap file. I also suggest that you go into the BIOS settings and change the GPU's VRAM allocation to be 4GB instead of 1GB. I will show how to do that in a later step of this guide. however the GPU can use up to 8GB (although I've had the Deck's overlay say that it's used up to 10GB personally) as long as the CPU isn't using all of the memory available. Which means that by extending the amount of total memory for the APU via a swap file, you actually allow for more memory to be allocated to both the GPU and CPU given that that CPU doesn't use up all of that memory.
Swap file installation
If you prefer video formats instead then i highly recommend you watch CryoByte33's video on this subject which can be found here: https://www.youtube.com/watch?v=3iivwka513Y

First things first you need to get into desktop mode, to do this you'll need to press and hold the power button on the deck after you've unlocked/turned the deck on. This should bring up a menu in which you can choose "switch to desktop". Next you'll need to navigate to the bottom left corner of the deck, open up the start menu equivalent of the desktop. Look through "all applications" and find "Konsole". Keep in mind that the shortcut to open a keyboard is "STEAM" + "X". Next you'll need to set a password for the terminal of your Deck. I must stress the importance of this password, DO NOT LOSE IT OR FORGET IT, write it down if you have to. this password is just used to access the command terminal but it is important to do these kinds of changes. To actually set the pass word you'll need to run the "passwd" command into Konsole and then proceed to type in your password of choice. What you type will not show up on screen when setting the password. This is done for privacy reason. It should be noted that this process can only be used to set the password for the first time and not to reset it down the line. In the event you do lose your password you can only reset it by doing a factory reset on the deck, which would wipe all of your data. You may also be able to contact Steam Support although i'm not sure that even they'd be able to do anything about it.

Next you'll need to download CryoByte33's Deck Swap Resizer Program which can be found in this GitHub repository: https://github.com/CryoByte33/steam-deck-swap-resizer

Once you've navigated to that webpage on your steam deck you'll need to scroll down to the "Direct / Simple" section of the page. Next you'll right click (L2) on "this link" and select "Save Link As...". Then you'll need to save that file to your downloads folder. Once downloaded you should see a file called "InstallSwapResizer.desktop" double click the file and it'll give you a warning about it being untrusted. if you don't trust me or CryoByte33 then there's not much we can do and you can't continue with the steps of this guide, that being said feel free to read the code in the repo before running the file if you're nervous about it. Next click that you trust the file author when satisfied and it'll be installed. When the terminal window closes go to the desktop and you should see two new icons. They should be the same as the "Return to Gaming Mode" icon that's on the Deck's desktop by default. Next double click on the icon named "Swap Resizer" and a new window will appear. Here is where you will need to type the password you've set in the terminal. After entering your password a disclaimer from CryoByte33 will appear. Please read the disclaimer and if you accept the terms then click yes. Next you'll get to the actual program itself. It'll show you the total amount of free space you have available to use and give you a list of swap file size options to choose from. 16GB is typically the best option assuming you have the space for it. Going less than that may be too little in some scenarios and there hasn't been any proven performance benefits from using a larger amount for the swap file. However if you have a 64GB Deck or if you have a limited amount of storage left over then i recommend that you use the largest size you can get away with while leaving at least a few gigabytes free on the Deck. it should be noted that 16GB is the only amount that's been currently tested and proven to work with Icarus as of the writing of this guide. This doesn't mean that a smaller or larger size won't work, we simply haven't even tested it yet. Although 16GB has been what's given the most performance uplift in other games. After you've selected your preferred size click "OK" to begin. If you set the swap file size to more space than what you have available the program will exit and not preform any changes. The swap file creation process should take anywhere between 1-40 seconds and a 16GB swap file takes roughly 18-20 seconds to create for me. When the process is complete the program will list a few commands you can use to test to confirm that the swap file has actually been created otherwise just click "OK". Which should close the program and that's it, you've just created a swap file. If you ever want to revert the swap file size and reset it back to the default, then just rerun the program and leave it at the default 1GB option. You may also uninstall the Swap Resizer program using the new red trash can icon on the desktop named "Uninstall Swap Resizer". It should be noted that uninstalling this program does not revert the changes that the program has made.
Allocating more VRAM
Here you'll be walked through how to allocate more than 1GB of memory to the GPU, instead we'll be setting it to the maximum of 4GB quadrupling the minimum amount of memory the GPU will have available. Keep in mind that the GPU can use more than 4GB and up to 8GB of memory as long as it's not being used by the CPU and with the swap file of 16GB you should've installed by this step. There should almost always be more than enough memory for the GPU.

First you'll need to power off your device by holding the power button and selecting "Shutdown", Wait for the console to power down and for the screen to shut off completely. Next you'll hold the volume up button and then press the power button. If this worked then you should see the Steam Deck boot up into it's bios. Which should have 4 different options of which you'll select the bottom right option called "Setup Utility". On the next screen you'll need to go down an entry on the left side of the screen called "Advanced". Next you'll need to change the "UMA Frame buffer Size" to 4G. Finally after the frame buffer has been set you'll press the button between the left joystick and the dpad which has an icon that looks like two boxes with the corners clipping (Select button). This should save the settings and the Deck should boot, You should be all done with this step but you can always check the bios again to confirm that it actually saved. You can also run this command "glxinfo | grep "Dedicated video memory"" in Konsole on the desktop and check that it responds with "4096 MB"
ProtonGE
First you'll need to head on back to the Deck's Desktop and navigate to "Discover" aka the store which has a shopping bag item towards the bottom left on the taskbar. Make sure you're in the featured section after launching the app, you should be there by default. Next you'll want to go to the search bar and search for "ProtonUp-Qt". Once found in the store you'll click on the app to see more of it's details and then install it from there. After it is installed you'll click on the "Launch" button towards the top right of the Discover program, which should launch the ProtonGE software. Next you'll click on "Add version" and everything should fill in. Under "Compatibility tool:" it should say "Proton-GE" if it doesn't then click on the drop down menu and select that option. Next you'll choose the latest version under "Version:". Finally you'll click the "Install" button and ProtonGE should be installed.
Setting the game up
First pull up the game in the Steam operating system, do not launch the game yet. Instead click on the gear towards the right and then choose properties. You'll need to go to the general tab and input these commands into launch options "AMD_VULKAN_ICD=RADV PROTON_NO_ESYNC=1 RADV_PERFTEST=nggc mesa_glthread=true PROTON_ENABLE_NVAPI=1 PROTON_HIDE_NVIDIA_GPU=1 DXVK_ASYNC=1 gamemoderun %command%". remember to remove the "".

Next you'll move onto the "Compatibility" tab instead of the "General" tab under settings and properties. Next you'll check the box that says "Force the use of a specific Steam Play compatibility tool". Finally you'll select GE-Proton7-37 in the drop down menu as that's the latest version of ProtonGE as of the time of writing.

Next you'll have to go back into the Deck's Desktop and make your way to the "Dolphin" file explorer. Now you'll use this file path "/home/deck/.local/share/Steam/steamapps/compatdata/1149460/pfx/drive_c/users/steamuser/AppData/Local/Icarus/Saved/Config/WindowsNoEditor"
Next find the GameUserSettings.ini file, right click and use "Kwrite" to edit the file. Next you'll find DLSSMode=Performance within the file, change Performance to Off instead so it looks like this DLSSMode=Off
Trying to disable DLSS through the settings menu in game does not work as it doesn't actually apply that setting and every time you go back into the settings menu, DLSS will always be set to Performance. Doing it manually this way forces the setting to be off which allows you to use FSR within the game settings. For some reason manually disabling DLSS through the file like this gets us an fps increase of 5-10 fps even without FSR enabled.

Personally I recommend that you start at the lowest settings possible and try to move up from there starting with vram and texture streaming settings, you can also set the resolution to be slightly lower and use FSR to upscale to get some more performance. tinker and optimize to your hearts content and feel free to post your findings in the comments below.

This is important so i'll highlight this section but the default controller layout is bugged and for some reason, moving the camera around with the joystick or the touchpad causes the GPU and CPU utilization to heavily drop causing the FPS to drop below 5 which can crash your game and even your Deck. In order to fix this either manually set your controls or set your community layout to "kashleywilson" 's community layout. Also YOU NEED TO RUN YOUR GAME IN DX12. you can technically run the game in DX11 but it just doesn't perform as well for some reason at least in my testing.


LASTLY A BIG THANKS TO CryoByte33, I COULD NOT HAVE DONE THIS WITHOUT HIM, BE SURE TO CHECK OUT HIS CONTENT AND IF YOU COULD PLEASE SUBSCRIBE.
(Optional) Decky Plugin Loader
Keep in mind that this is entirely optional however i highly recommend that you use this plugin loader along with the plugins i'll be talking about. They will give you a new wide range of control, customization, features and abilities with your deck, not just with Icarus but all around. The two plugins that will help us the most with game performance are two plugins that allow you to set custom fan curves and manually set GPU and CPU clock speeds. There is also a third plugin that i highly recommend. This third plugin allows you to control the saturation and other color controls of your deck, per game with profiles if you so choose and it will give you a much more vibrant Deck experience.

First of all you need to press the steam button and then head into system settings. Next you'll enable something called "Enable Developer Mode". This will give you a new system menu at the very bottom left with the rest of the settings tabs. Next you'll need to navigate to the new tab and turn on a feature called "CEF Remote Debugging" Next you'll switch on over to the Deck's desktop mode and open the Konsole app. Next you'll need to grab this command "curl -L https://github.com/SteamDeckHomebrew/decky-loader/raw/main/dist/install_release.sh | sh" from this GitHub webpage https://github.com/SteamDeckHomebrew/decky-loader. After you've ran that command, put in your password and let the program install, you may now return to gaming mode.

Next you'll use your quick access menu which is used via the three dot button towards the bottom right of the face of your Deck. There should now be a new option that looks like an american power plug. It should be noted that I tested the Decky Plugin Loader on the Deck's Beta and it would not work at all, you may also need to restart your Deck to get the Decky loader to reappear if it ever randomly goes away or to get it to appear after the first installation. if Decky Loader is still not appearing in the quick access menu then it did not install properly and you should run the uninstaller command which is "curl -L https://github.com/SteamDeckHomebrew/decky-loader/raw/main/dist/uninstall.sh | sh" and then try again. Repeat the process until the install works correctly, possibly consider a factory reset if it doesn't install or give up on using plugins. If it did work then congratulations you now have a plugin loader.

Next i recommend three different plugins, "PowerTools" for manually controlling clock speeds, "Fantastic" for manually setting fan curves, and finally "VibrantDeck" for manually setting color and saturation controls for the deck. These plugins can be found and installed from within the Decky Plugin Loader itself, just open Decky and go to the top right area where there should be an icon that looks like a mail box. Click on that Icon and it should bring you to a short list of plugins that'll have the three listed plugins here. Find which plugins you want to install and click install. Personally I recommend setting the GPU clocks to 1600, CPU clocks to 3500 (set the min and max value to the same). you may find that these settings do not apply right away or may reset after loading/exiting a game, just turn them on and off and give them a second to apply. I would also set the fan curve to be at max all the time. Because i'm in a room with a lot of fans and I personally do not mind the comparatively small amount of added fan noise. Lastly I would set saturation within "VibrantDeck" to 150 but you may find that you like other values better. you can set most of these profile per game so just experiment and have fun.

P.S maxing out clock speeds and fan speeds will kill battery life in lue of performance but if you play with your Deck plugged in all the time anyways then it's not a bad idea to get the best performance.
14 commenti
ciel 9 ott 2024, ore 17:00 
really help my game from crashing to playable even with weather event:steamhappy:
RFxorcist 26 mag 2024, ore 8:42 
Not sure if you still play this, but I'm wondering if theres an updated guide for this. I followed it to the letter, but the game crashes on loading a prospect. Added you on Discord. Thanks.
cooper19902004 23 lug 2023, ore 13:27 
For those stuck on dolphin go to settings and unlock hidden files
Pebbles 16 giu 2023, ore 10:53 
Just added you in discord I’m fruity pebbles# 0072
Pebbles 16 giu 2023, ore 10:49 
Dolphin
Pebbles 16 giu 2023, ore 10:48 
I can’t find the file in doplhjn
shoguevara 31 gen 2023, ore 9:25 
Thanks for the tutorial! The game launched, but text is very small and hard to read. Also graphics settings need a bit of tinkering, but that's all manageable. Info about tackling the hardest part was provided within the article. Kudos!
a86me 23 gen 2023, ore 5:13 
During the setup in the swap file resize portion, a box popped up asking if I wanted to change swappiness, didn't see that in your post or comments. Does it need to be changed?
[T.H.D.R]Blue Phoenix  [autore] 13 gen 2023, ore 14:44 
@vigilence just add me on steam or discord @ Blue Phoenix1260 and I’ll do my best to walk you through it
Vigilence 13 gen 2023, ore 0:35 
Sadly, after following this guide to a t, it didn’t work.