Skip to content

Instantly share code, notes, and snippets.

View TheGammaSqueeze's full-sized avatar

TheGammaSqueeze

View GitHub Profile
@TheGammaSqueeze
TheGammaSqueeze / RetroidPad.c
Last active July 9, 2025 10:59
Retroid Pocket 4 - controller userspace driver
/*
* RetroidPad.c
*
* − Uses select() + ioctl(FIONREAD) to batch‐read all available bytes in one
* go (instead of VMIN) so that we only wake up once per MCU‐burst.
* − Adds an “idle skip” mechanism: if the button state remains unchanged for
* several consecutive packets, we skip the detailed per-packet parsing until
* a new packet arrives or a threshold is reached.
* − Performs a simple 50‐frame auto‐center calibration of both analog sticks
* at startup.
@TheGammaSqueeze
TheGammaSqueeze / RetroidPad.c
Created July 8, 2025 22:42
Retroid Pocket Classic - Userspace controller driver
/*
* RetroidPad.c
*
* − Uses select() + ioctl(FIONREAD) to batch‐read all available bytes in one
* go (instead of VMIN) so that we only wake up once per MCU‐burst.
* − Adds an “idle skip” mechanism: if the button state remains unchanged for
* several consecutive packets, we skip the detailed per-packet parsing until
* a new packet arrives or a threshold is reached.
*
* Compile (on AArch64):
@TheGammaSqueeze
TheGammaSqueeze / gist:81cead1c77746a83af676c1de4fde212
Created June 3, 2025 00:52
Retroid Pocket Classic - Running Device Tree - Android 14
/dts-v1/;
/ {
model = "Qualcomm Technologies, Inc. Ravelin IDP Overlay";
#size-cells = <0x02>;
qcom,msm-id = <0x28d 0x10000 0x28e 0x10000>;
#address-cells = <0x02>;
interrupt-parent = <0x01>;
compatible = "qcom,ravelin-idp\0qcom,ravelin\0qcom,idp";
qcom,board-id = <0x22 0x00>;
@TheGammaSqueeze
TheGammaSqueeze / Retroid_RPMini_v2_Android13.dts
Created April 23, 2025 22:16
Retroid Pocket Mini V2 (new panel) - Android 13 - Running Kernel Device Tree Dump
This file has been truncated, but you can view the full file.
/dts-v1/;
/ {
model = "Qualcomm Technologies, Inc. kona HDK";
#size-cells = <0x02>;
qcom,msm-id = <0x164 0x20001>;
#address-cells = <0x02>;
interrupt-parent = <0x01>;
compatible = "qcom,kona-hdk\0qcom,kona\0qcom,hdk";
qcom,board-id = <0x1001f 0x01>;
@TheGammaSqueeze
TheGammaSqueeze / Retroid_Flip2_Android13_V02.07.001.01.dts
Created April 23, 2025 15:14
Retroid Flip2 Running Kernel Device Tree - Android 13 - V02.07.001.01
This file has been truncated, but you can view the full file.
/dts-v1/;
/ {
model = "Qualcomm Technologies, Inc. kona HDK";
#size-cells = <0x02>;
qcom,msm-id = <0x164 0x20001>;
#address-cells = <0x02>;
interrupt-parent = <0x01>;
compatible = "qcom,kona-hdk\0qcom,kona\0qcom,hdk";
qcom,board-id = <0x1001f 0x01>;
@TheGammaSqueeze
TheGammaSqueeze / trimui_corrected.c
Created January 15, 2025 13:15
TrimUI smart pro android joypad userspace driver
/*******************************************************************************
* File: trimui_corrected.c
*
* Changes vs previous:
* - #define VENDOR_ID, PRODUCT_ID, VERSION_ID => 0x0000,0x0000,0x0001
* - Use ABS_Z, ABS_RZ instead of ABS_RX, ABS_RY
* - If L2 or R2 pressed => emit additional "gas" or "brake" events
* - Clamping from ±900 => ±32760
* - No repeated SYN if values are unchanged
******************************************************************************/
@TheGammaSqueeze
TheGammaSqueeze / miyoostick.c
Created January 3, 2025 11:45
Miyoo Flip userland joystick application
/*******************************************************************************
* File: miyoostick.c
*
* Example userland joystick application:
* - Sets up a virtual gamepad via /dev/uinput
* - Opens /dev/ttyS1, reads stick frames, calibrates them
* - Publishes the results as analog axes (two sticks)
* - Provides a few example buttons
*
* Build (example):
@TheGammaSqueeze
TheGammaSqueeze / RG40XX_LED_CONTROL.sh
Created January 1, 2025 12:38
RG40XX_LED_CONTROL .sh
#!/bin/bash
# Define the serial device
SERIAL_DEVICE="/dev/ttyS5"
SERIAL_OPEN_FLAG="/tmp/serial_device_opened"
# Display LED mode descriptions and usage examples if no parameters are provided
if [ $# -eq 0 ]; then
echo "Usage: $0 <led_mode> <brightness_value> [<speed_value>|<r_value> <g_value> <b_value> [<joystick_r> <joystick_g> <joystick_b>]]"
echo "LED Modes:"
@TheGammaSqueeze
TheGammaSqueeze / rp5_android13_v1.0.0.34_running_kernel.dts
Created November 19, 2024 20:34
Retroid Pocket 5 - running kernel device tree dump - Android 13 - Firmware 1.0.0.34
This file has been truncated, but you can view the full file.
/dts-v1/;
/ {
qcom,msm-id = <0x164 0x20001>;
#size-cells = <0x02>;
compatible = "qcom,kona-hdk\0qcom,kona\0qcom,hdk";
qcom,board-id = <0x1001f 0x01>;
#address-cells = <0x02>;
interrupt-parent = <0x01>;
model = "Qualcomm Technologies, Inc. kona HDK";
@TheGammaSqueeze
TheGammaSqueeze / COM3_PartitionsList.xml
Created November 5, 2024 20:45
RP 5 Partition List - QFIL
<?xml version="1.0"?>
<data>
<partition label="ssd" physical_partition_number="0" start_sector="6" num_partition_sectors="2" type="2C86E742-745E-4FDD-BFD8-B6A7AC638772" guid="8235143A-D916-CD06-D647-366CA832A178" />
<partition label="nvdata1" physical_partition_number="0" start_sector="8" num_partition_sectors="256" type="97745ABA-135A-44C3-9ADC-05616173C25C" guid="5CD39848-3F74-6BD3-DF2C-D01F19490EBF" />
<partition label="nvdata2" physical_partition_number="0" start_sector="264" num_partition_sectors="256" type="97745ABA-135A-44C3-9ADC-05616173C26A" guid="3ACD772E-6208-21C1-6546-A7138178267B" />
<partition label="odm" physical_partition_number="0" start_sector="520" num_partition_sectors="128" type="BC1998CF-4992-4FAA-907A-23295A9AD930" guid="15F5F325-7D0D-6791-9E9B-08A43B4AE696" />
<partition label="ssign" physical_partition_number="0" start_sector="648" num_partition_sectors="128" type="25F4151D-AE02-4029-A510-827587B550AC" guid="387E72D2-9B3F-84F2-26DF-D6A1445CC093" />
<partition label="persis