maclay74 / steam-patch Goto Github PK
View Code? Open in Web Editor NEWSome Steam patches, fixing broken Steam features on Asus Rog Ally
License: MIT License
Some Steam patches, fixing broken Steam features on Asus Rog Ally
License: MIT License
just a heads up steam0patch still works on steam beta, well the buttons do but the overlay is getting over ridden by steam , hopefully someone can look into the issue and resolve it
I tested the buttons in Steam and found that there was no functional mapping between these two buttons. I tried to allocate the drive, but when the Xbox 360 controller's Xbox buttons needed to be allocated, I tried to press these two buttons without any response
My Ally has been updated to the latest bios. HOLOISO is a live image installation I built myself, with a kernel of 6.4.12-zen1-1-zen and the bios being the latest 323. After installing HOLOISO, I only installed one browser and applied this patch. The systemctl status steam-patch
shows that it is running without any errors and the patch is successful
Would it be feasible to map the separated back keys (KEY_F17 and KEY_F18) to something useful (BTN_SELECT and BTN_START, for instance) using your patching method?
TIA
The back keys on the ROG Ally show KEY_F15 in its default state (auto mode in windows). Both provide the same input and it's mean to be used as a shift key.
NeroReflex put down a kernel patch to be able to control modes[1]. In its latest incarnation, the sysfs interface can be located here[2]:
/sys/devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb1/1-3/1-3:1.2/0003:0B05:1ABE.0004/rc71l_controller /sys/devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb1/1-3/1-3:1.0/0003:0B05:1ABE.0002/rc71l_controller /sys/devices/pci0000:00/0000:00:08.1/0000:09:00.3/usb1/1-3/1-3:1.1/0003:0B05:1ABE.0003/rc71l_controller
(any of them will work to control the states).
It admits three states:
0 - default one, back keys are KEY_F15: shift key, interacts with other keys.
1 - gamepad mode, back keys are separarated ordinary keys, KEY_F17 and KEY_F18.
2- lizard mode, right stick is mouse, R1 left click, R2 right click, a enter, etc. and back keys KEY_F17 and KEY_F18.
The state is remembered after sleep, even if the keys are gone and then back every other resume. So if you set it at startup it will be respected on suspend-resume).
I am using a simple systemd service that changes the mode to 1 on startup so the back keys are separate ordinary inputs[3]. In desktop I can remap them (evremap, i.e.) and use them. In gamescope it's not possible.
[1] https://github.com/NeroReflex/linux-chimeraos/blob/v6.6/linux/0002-usb-Add-a-mode-switch-for-the-controller-embedded-on.patch
[2] After the loss of N-Key device on suspend, the id changes. But it's easily scriptable: cd $(find /sys -name rc71l_controller | head -1)
[3] Really simple ones:
`cat /usr/local/bin/gamepad.sh
#!/bin/sh
cd $(find /sys -name rc71l_controller | head -1)
if test -f switch_mode
then echo 1 > switch_mode
else exit 1
fi
exit 0
cat /etc/systemd/system/gamepad.service
[Unit]
Description=Service that puts the Ally controller in gamepad mode
[Service]
Type=oneshot
ExecStart=/usr/local/bin/gamepad.sh
[Install]
WantedBy=multi.user.target`
Hello! Great work but I am having issues on Nobara , all I need is to be able to change the wattage values from the 3-15 to 7-44 is it possible for me to do this? I just need a visual change not for it to actually change the tdp as nobara has a tdp function now.
The problem is the scale is 3-15 and the tdp changes are roughly x2 scale so 3=7 and 15 =35, if this is possible to do please point me in the right direction
With commit 1d4fd86 the steam client enters an unending update loop. You have to stop steam-patch for the loop to cease. I haven't suffered it with the desktop client.
Yesterday it worked fine and survived a couple of reboots. Today the first boot was ok too. Now every boot/change to gamescope-session is affected.
Using a binary compiled before the mentioned commit the steam client does not enter the update loop.
Attached are:
Steps to reproduce:
Check /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy (defaults to 0).
Change TDP to 30W.
Check /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy : it's still 0
This issue was present too before 0.6 version.
P.S.: I don't know if it has been changed with the new BIOS (I'm using latest, 323), but this seems to not be correct in my machine:
// Update thermal policy let thermal_policy = match tdp { val if val < 12 => 0, // silent val if (12..=25).contains(&val) => 1, // performance _ => 2, // turbo };
From my testing, 0 would be balanced, 1 would be performance and 2 would be silent. Test with a game (A plague tale innocence, high-ultra settings):
Thanks for this great repo. I'm running Nobara (dual boot with W11) on my ASUS ROG ALLY, and I was wondering if it would be possible to patch in the keybinds for the Steam button and right side menu button (Armoury Crate button on ROG ALLY). These two buttons must be sending different HEX codes on keypress from the default Steam Deck buttons, which is why they don't work natively (without intervention). These buttons work when I tried ChimeraOS, but I don't want to use their solution for this in Nobara. If the keybinds could be fixed with this patching method (until if and when Valve allows an easier way to change those keybinds), then I think my last gripe with Nobara gamescope-session
would be solved.
Service seems to be hit or miss if it applies.
One possible cause I've seen is that setting the client to Beta will often forget that it's Beta and start redownloading updates every couple or so boots.
I'm assuming it's doing the "update" whenever steam-patcher tries to run and thus can't find the files it needs.
Maybe some detection for if Steam is in the middle of an update?
× steam-patch.service - Steam Patches Loader
Loaded: loaded (/etc/systemd/system/steam-patch.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: failed (Result: core-dump) since Thu 2023-08-10 17:52:50 EDT; 6min ago
Duration: 15min 52.843s
Main PID: 1223 (code=dumped, signal=ABRT)
CPU: 651ms
Aug 10 17:51:59 nobara-pc steam-patch[1223]: Show QAM
Aug 10 17:51:59 nobara-pc steam-patch[1223]: Show Menu
Aug 10 17:51:59 nobara-pc steam-patch[1223]: Show QAM
Aug 10 17:52:10 nobara-pc steam-patch[1223]: Steam unpatched
Aug 10 17:52:12 nobara-pc steam-patch[1223]: Steam patched
Aug 10 17:52:49 nobara-pc steam-patch[1223]: Steam unpatched
Aug 10 17:52:50 nobara-pc steam-patch[1223]: thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/steam.rs:198:78
Aug 10 17:52:50 nobara-pc steam-patch[1223]: note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Aug 10 17:52:50 nobara-pc systemd[1]: steam-patch.service: Main process exited, code=dumped, status=6/ABRT
Aug 10 17:52:50 nobara-pc systemd[1]: steam-patch.service: Failed with result 'core-dump'.
ok, I found the problem. Because the "Asus Keyboard" Hid Device not always appear in /input/devices, so steam-patch not recognize it when "Asus Keyboard" not appear.
I: Bus=0003 Vendor=0b05 product=1abe Version=0110
N: Name="Asus Keyboard"
...
On my Rog Ally, suspend will disappear this, so when awake up, press the Main Button or QAM Button not responsible everytime.
I don't know why cause this.
This project is cool, but I want to modify this to achieve some features about my own needs. I can learn Rust Language to write, could you tell my more about this tutorial about hack steam client, any tutorial or blog? Thanks a lot.
The problem in the watcher that prevents Steam from patching files back.
I listens to delete file event and tries to write to the file, so does Steam. It leads to crash and corruption of the installation.
The correct way to handle it would be listening to changes and applying patches after Steam closed the file.
config file updated to show mapper = true, multiple full restarts. Tried both kernels 200 and 201.
edit spelling on mapper
After steam client update on October 25th, steam-patch does not apply icons and TDP limit in gamescope-session anymore.
ROG Ally buttons keep working as expected.
Why Rog Ally limit to 30w TDP, not 40w TDP? On windows system, turbo mode, It's limit should be 40w?
Problem:
Non-standard Xbox buttons stop working, and the issue can only be resolved by restarting a Rog Ally.
(Rog Button and guide)
How to reproduce:
Open the virtual keyboard in-game or in the configuration.
Observe that the non-standard Xbox buttons have stopped working.
Steps taken so far:
I have attempted to resolve the issue by restarting a service, which sometimes works, but not always.
I have checked the systemd service logs, but I couldn't notice any abnormalities.
Sorry if this text is confusing, English is not my first language.
Предлагаю описать, что именно твои патчи делают :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.