Skip to content
Open
Show file tree
Hide file tree
Changes from 97 commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
10c92ef
added SDL
AL2009man Mar 10, 2026
fe939f1
added missing lib file
AL2009man Mar 10, 2026
f49a80f
added SDL
AL2009man Mar 10, 2026
eba13cb
Merge branch 'SDL3' of https://github.com/AL2009man/alpinefaction int…
AL2009man Mar 10, 2026
dafc0db
POC-GyroCamera
AL2009man Mar 10, 2026
6839e0d
revised Gamepad Input to be layer-based, fixed Player Movement, added…
AL2009man Mar 11, 2026
b54b5fb
Gyro Autocalibration, Gyro Orientation, Reorganization
AL2009man Mar 11, 2026
6c81e22
added Analog Movement, reorganize gyro and gamepad input
AL2009man Mar 12, 2026
81870cd
Revised Analog Movement
AL2009man Mar 13, 2026
47edfd3
adds Smoothing and Tightening slider (CMD), changed Gyro AutoCalibrat…
AL2009man Mar 13, 2026
e758220
Controller Rebind, Gamepad glyphs
AL2009man Mar 13, 2026
341729a
fix swim/climb action when using gamepad
AL2009man Mar 14, 2026
4851fec
fixed Vehicle Camera when using Gamepad
AL2009man Mar 14, 2026
b9adb74
Gyro Modifier, Reset Camera, new Stick-related settings
AL2009man Mar 14, 2026
5ae88a3
addded ui indicator for theUI bind
AL2009man Mar 14, 2026
d08a0c2
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 14, 2026
5dc5de2
added missing license info
AL2009man Mar 15, 2026
5bd11b7
add win32 target link
AL2009man Mar 15, 2026
887bc31
SDL_GameControllerDB support
AL2009man Mar 15, 2026
31d01d2
swapped SDL3-Static.lib with CMake FetchContent
AL2009man Mar 15, 2026
61aedac
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 15, 2026
ccb635e
fixed Alpine Config for Gamepad
AL2009man Mar 15, 2026
b64fba3
Consolidating SDL Polls into one
AL2009man Mar 16, 2026
4161a1b
added initial Gamepad Menu Navigation support
AL2009man Mar 16, 2026
3311ead
added support for Steam hardware prompts
AL2009man Mar 16, 2026
c8fd216
add Window Event to prevent all gamepad inputs
AL2009man Mar 16, 2026
d7dd1c2
Glyph HUD now syncs Input detection
AL2009man Mar 16, 2026
b13c7fd
fixed digtial and camera movement if gamepad button were assigned
AL2009man Mar 16, 2026
762c1e0
improve rebind handling
AL2009man Mar 17, 2026
7f26847
adds additional credit for Gyro Tightening and Smoothing filter
AL2009man Mar 17, 2026
e784442
Revised portions of glyph.cpp, move Sentinel rebind system,
AL2009man Mar 17, 2026
9067c4d
Centralized the Camera system
AL2009man Mar 18, 2026
661f43a
fix regression with weapon switch when using Gamepad
AL2009man Mar 18, 2026
96aa6e6
Reset Camera action is much more smoother
AL2009man Mar 18, 2026
e51d67d
fix remaining centralized camera scales
AL2009man Mar 18, 2026
4a7bda1
fixed "Switch to Gamepad/Keyboard" button panel animation
AL2009man Mar 18, 2026
c95c02c
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 18, 2026
e8c4ede
centralized gamepad focus windowing
AL2009man Mar 19, 2026
0ac0d8b
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 20, 2026
aba2344
minor merge fix
AL2009man Mar 20, 2026
d9b70a4
fixed remaining merge backports
AL2009man Mar 20, 2026
019fd5b
fixed invincible KB/M rebind when on Gamepad Bind View, revised Gyro …
Mar 22, 2026
e2d6b86
fixed menu joystick navigation tied to movement/camera deadzone
AL2009man Mar 23, 2026
722a481
upgraded Gyro Autocalibration systems
AL2009man Mar 22, 2026
34aa7bd
fixed Gyro Autocalibration delay
AL2009man Mar 23, 2026
bbdf132
change CMakeList game_patch to simply `SDL3::SDL3`
AL2009man Mar 23, 2026
3d81c83
Added Flick Stick camera support
AL2009man Mar 23, 2026
f0da0f9
Gyro Autocalibration system only activatese when Gyro Aiming is enabled
AL2009man Mar 24, 2026
31a6445
added Input Glyph and Gamepad Glyph to the Settings UI, under Interface
AL2009man Mar 24, 2026
0bc65f7
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 24, 2026
c2d321f
fix merge conflict after adding Mouse Scale support
AL2009man Mar 24, 2026
39a64d3
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 24, 2026
eaf9a1a
fixed regression with after merger, especially with Gamepad Bind UI
AL2009man Mar 24, 2026
d53985f
adds Center View/Reset Camera to the gamepad default list
AL2009man Mar 24, 2026
3b7c256
attempt to fix mingw build, by replacing M_PI with C++ equivalent
AL2009man Mar 24, 2026
77adb3f
fix regression where you can still aim while dying.
AL2009man Mar 24, 2026
0fc1cc2
fix regression with Camera Angle where the camera won't move for 0.2-…
AL2009man Mar 24, 2026
9d91de8
Revert "fix regression where you can still aim while dying."
AL2009man Mar 24, 2026
e11759c
Merge branch 'POC-GyroGamepad' of https://github.com/AL2009man/alpine…
AL2009man Mar 24, 2026
f8e4d5e
added missing console command for mouse scale
AL2009man Mar 24, 2026
90ca3fd
Menu navigation rework, fixed various camera angle regressions
AL2009man Mar 24, 2026
91134e5
changed default joystick movement to closely mirror the Console versi…
AL2009man Mar 25, 2026
0c0c0ae
Cleanup gamepad setup, Refactor Controls Binding UI, adds Secondary B…
AL2009man Mar 25, 2026
f2ff03e
Applied copilot-suggested fixes, fix regression with Gyro Autocalibra…
AL2009man Mar 26, 2026
1e6a77e
fix merge conflict for text
AL2009man Mar 26, 2026
31fb18e
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 26, 2026
fb4308f
move the sdl init state, and updated SDL_GameControllerDB for a bit
AL2009man Mar 26, 2026
8c5e432
Merge branch 'POC-GyroGamepad' of https://github.com/AL2009man/alpine…
AL2009man Mar 26, 2026
144ebee
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 26, 2026
4e6f9d3
fixed config import not properly assigning the Gamepad binds, re-adde…
AL2009man Mar 27, 2026
5434765
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 27, 2026
ebaca12
fixes issue where Main Menu button can pop-up after Level Transition …
AL2009man Mar 27, 2026
d048c40
fixed a issue where at the exact time: analog movement gets locked du…
AL2009man Mar 27, 2026
18027f9
Analog movement animation fix
AL2009man Mar 27, 2026
8b7b227
separated Scope/Scanner sens across Joystick and Gyro Camera
AL2009man Mar 27, 2026
e406a9e
change SDL3 `CMakeLists.txt` to include hash
AL2009man Mar 27, 2026
e369b67
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 27, 2026
c1f0993
backports Raw/Modern Mouse fixes over to Gamepad Camera
AL2009man Mar 27, 2026
613084e
fix regression with START button not functioning properly during spec…
AL2009man Mar 27, 2026
eb9c9e1
added Cotroller support to `CHANGELOG.md`
AL2009man Mar 28, 2026
1e256e5
fixed regression for respawn state
AL2009man Mar 28, 2026
1a13f60
fixed potential regression witht multiplayer gamepad input freeze
AL2009man Mar 28, 2026
d2d7aa2
fix a bug that lets action key injection go thru the console commands
AL2009man Mar 28, 2026
3f76c60
initial Rumble support
AL2009man Mar 28, 2026
caa3ba7
Adds Trigger Rumble support
AL2009man Mar 28, 2026
e6cc6b5
fixed regression with gamepad bindings not being saved after exit and…
AL2009man Mar 28, 2026
a73b44f
refactor Rumbles, adds Turrets to the Rumble list
AL2009man Mar 29, 2026
2101dd5
Change Rumble toggle into a numeric slider
AL2009man Mar 29, 2026
fb95041
Attempt to improve gamepad performance polls
AL2009man Mar 29, 2026
6db86f2
fix security camera bug where you can move around and move the camera
AL2009man Mar 29, 2026
082c1cd
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 30, 2026
5840e29
added dynamic scope sensitivity for Gamepad Camera
AL2009man Mar 30, 2026
0da5f03
Merge branch 'master' into POC-GyroGamepad
AL2009man Mar 30, 2026
92b0fb5
adds the ability to toggle Gamepad Vibration filter
AL2009man Mar 31, 2026
f9fed6d
added a Input priority system for Gamepad Rumble
AL2009man Mar 31, 2026
8d17ffd
added Controller Hotswap priority, change Gyro Processing order
AL2009man Apr 1, 2026
259a49d
Merge branch 'master' into POC-GyroGamepad
AL2009man Apr 1, 2026
28096e9
fixed typos and remove duplicates
AL2009man Apr 1, 2026
21e2014
improved Center View action
AL2009man Apr 1, 2026
e0dc2df
added support for scrollable Alpine Options menu
AL2009man Apr 1, 2026
f78e4fd
fixed joy/gyro camera scaling when using vehicles
AL2009man Apr 1, 2026
ba44b8c
fix text formatting on Input UI
AL2009man Apr 1, 2026
104d92a
fix regression where you can use the D-Pad on Alpine Options scroll, …
AL2009man Apr 1, 2026
5b1104b
Merge branch 'master' into POC-GyroGamepad
AL2009man Apr 1, 2026
fe10315
adds Gyro Hort/Vert Output
AL2009man Apr 1, 2026
d4f3cff
add Cutscene button to the default binding list
AL2009man Apr 2, 2026
a8429ac
Fix regression for Secondary Bind and Security Camera
AL2009man Apr 2, 2026
ed82e98
Flick Stick is promoted to official feature
AL2009man Apr 2, 2026
d676ce8
fixed gyro processing order, readjusted defaulted gyro tightening
AL2009man Apr 2, 2026
405746a
updated README and CHANGELOG info
AL2009man Apr 2, 2026
97db4ab
Tweaked overall Rumble Weapons system
AL2009man Apr 2, 2026
4de4fd7
update to SDL 3.4.4
AL2009man Apr 4, 2026
14fc072
Merge branch 'master' into POC-GyroGamepad
AL2009man Apr 7, 2026
7db9e40
adjusted Pistol rumble to play nicely with Vibration Filter for some …
AL2009man Apr 8, 2026
d6a950b
clean up comments
AL2009man Apr 10, 2026
0521edb
Merge branch 'master' into POC-GyroGamepad
AL2009man Apr 10, 2026
da5fc14
adds Scrollbar UI to the Alpine Settings's Input panel
AL2009man Apr 10, 2026
5ec1350
move Gyro Modifier to a dedicated setting
AL2009man Apr 10, 2026
782398d
UI Scrollbar factions now uses static globals
AL2009man Apr 10, 2026
4587872
move Controller Support addition to the next release candiate
AL2009man Apr 12, 2026
95bd9e5
move gyro modifier in between gyro scope modifier and tightening butt…
AL2009man Apr 12, 2026
7f9dafc
Merge branch 'master' into POC-GyroGamepad
AL2009man Apr 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions common/include/common/config/AlpineCoreConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class AlpineCoreConfig
public:
// Configurable fields
bool vsync = false;
bool gamepad_rawinput_enabled = false;

std::vector<std::string> orphaned_lines;
bool load(const std::string& filename = "alpine_system.ini");
Expand Down
6 changes: 6 additions & 0 deletions common/src/config/AlpineCoreConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ bool AlpineCoreConfig::load(const std::string& filename)
processed.insert("VerticalSync");
}

if (settings.count("GamepadRawInput")) {
gamepad_rawinput_enabled = string_to_bool(settings["GamepadRawInput"]);
processed.insert("GamepadRawInput");
}

for (const auto& [key, value] : settings) {
if (!processed.contains(key) && key.rfind("AFCC", 0) == std::string::npos) {
orphaned_lines.push_back(key + "=" + value);
Expand Down Expand Up @@ -85,6 +90,7 @@ void AlpineCoreConfig::save(const std::string& filename) const

file << "\n[Configuration]\n";
file << "VerticalSync=" << bool_to_string(vsync) << "\n";
file << "GamepadRawInput=" << bool_to_string(gamepad_rawinput_enabled) << "\n";

file.close();
xlog::info("Saved Alpine core config to {}", filename);
Expand Down
20 changes: 20 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,25 @@ Version 1.3.0 (Bakeapple): Not yet released
- `Corona` for configuring custom glare effects in levels
- `Note` for leaving important information in levels (editor only)

[@AL2009man](https://github.com/AL2009man) & [@nickalreadyinuse](https://github.com/nickalreadyinuse)
- Controller Support
> [!WARNING]
> When using Steam Input or Steam Hardware Inputs (Steam Deck, Steam Controller 2026, Steam Controller 2025): change the controller configuration to one of the many `Gamepad` templates to enable controller support.
- Full controller support via SDL3 Gamepad API
- Glyph support for Xbox, PlayStation, Nintendo, and Steam Hardware (Steam Controller 2015, Steam Deck, and Steam Controller 2026)
- Dual-Analog support for movement and camera controls
- Initial Rumble support
- Trigger Rumble/Impulse Triggers are also supported (requires enabling `GamepadRawInput` in `alpine_settings.ini`)
- Gyro Aiming support
- Natural Sensitivity Scale / Real World Sensitivity support
- Gyro Space orientation support for Yaw, Roll, Local Space, Player Space and World Space
- Gyro Autocalibration system
- Gyro Modifier / Gyro Ratcheting support (via Game Action remapping)
- Simultaneous Contoller+Keyboard/Mouse / Mixed Input support
- if using SteamInput's supported Input Camera styles: We recommend selecting `ms_scale`'s Modern (`2`) and change the mouse sensitivity to `2.5000`. If it's set to ``6545px`` (default slider on SteamInput): this will skip "[Input] Angles/Degrees to Mouse Pixels" slider.
- Partial controller menu navigation support (Mouse controls are handled via Right Stick Input)
- Additional Controller settings are available in `alpine_settings.ini`and/or console commands, this includes experimental Flick Stick support, resetting gyro autocalibration systems and Gyro Vehicle Camera.

### Minor features, changes, and enhancements
[@GooberRF](https://github.com/GooberRF)
- Standardize user agent string format across all use cases
Expand Down Expand Up @@ -123,6 +142,7 @@ Version 1.3.0 (Bakeapple): Not yet released

[@AL2009man](https://github.com/AL2009man)
- Add `ms_scale` toggle to use various mouse sensitivity scaling options between Classic (original scaling), Raw and Modern (id Tech/Source).
- Add `GamepadRawInput` option (via `alpine_settings.ini`) to enable RawInput driver for better handling of XInput controllers, while allowing Trigger Rumble/Impulse Trigger support.

[@natarii](https://github.com/natarii)
- Implement FFLink client functionality in launcher
Expand Down
20 changes: 20 additions & 0 deletions game_patch/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,19 @@ set(SRCS
graphics/d3d11/gr_d3d11_hooks.h
graphics/d3d11/gr_d3d11_outline.h
graphics/d3d11/gr_d3d11_outline.cpp
input/input.cpp
input/input.h
input/mouse.h
input/mouse.cpp
input/key.cpp
input/gamepad.cpp
input/gamepad.h
input/rumble.cpp
input/rumble.h
input/glyph.cpp
input/glyph.h
input/gyro.cpp
input/gyro.h
hud/hud_colors.cpp
hud/hud_scale.cpp
hud/hud_personas.cpp
Expand Down Expand Up @@ -299,6 +308,7 @@ target_include_directories(AlpineFaction PRIVATE
${CMAKE_SOURCE_DIR}/vendor/dds
${CMAKE_SOURCE_DIR}/vendor/toml++
${CMAKE_SOURCE_DIR}/vendor/nlohmann
${CMAKE_SOURCE_DIR}/vendor/gamepadmotionhelpers
)

if(NOT MSVC)
Expand Down Expand Up @@ -332,4 +342,14 @@ target_link_libraries(AlpineFaction
freetype
stb_vorbis
stb_image
SDL3::SDL3
GamepadMotionHelpers
)

if(WIN32)
target_link_libraries(AlpineFaction
setupapi
imm32
cfgmgr32
)
endif()
Loading
Loading