248 Commits

Author SHA1 Message Date
Luke A
ed3477f7a2 Xbox 360 - No Dongle Authentication (#1426)
* Solid connection?

* Add a small wait after we reset the port

* Moving up to latest as this fixes a lot of reset logic

* Moving libraries over to jfedor's set, standard does not work for SDK 2.1.1

* Switching Pico and TinyUSB to specific versions via hid-remapper

* Working?

* Move TX to PIO0:2

Move NeoPico to PIO0:1

* Moving state machines back to 0.7.11 alignment

* And a pause/wait for core1 to be ready before running it solves my last issue

* Removing core1 reset entirely, remove i2c hangup if display is not present during web config

* Reverting / clean some code, restore tusb to our old config, update aux and remove comments for PR

* Xbox 360 authentication - Santroller + XSM3

* Adding the missing files to the make

* ANd the missing XSM3 files
2025-07-15 22:17:12 -04:00
Luke A
8c4ac5c7b5 Code Cleanups (removed SI, max profiles) (#1427)
Minor code cleanup, removed SI as we never ended up using it, added MAX_PROFILES to get rid of 4; magic number
2025-07-15 18:26:52 -04:00
Brian S. Stephan
1aae598b5e code USBHID button display w/generic numbers rather than PS buttons (#1421) 2025-07-15 17:38:09 -04:00
TheTrain
dbb9fbe2f6 Update to the FRET_A layout (#1413)
This PR updates the BANDHERO_FRET_A layout as per https://github.com/OpenStickCommunity/GP2040-CE/issues/1408
2025-07-07 20:48:46 -04:00
NickGuyver
4d133f0db7 separate all analog settings per stick (#1401)
* separate all analog settings per stick

* remove old variables

* align toggles

* merge fix
2025-06-22 21:47:05 -04:00
Brian S. Stephan
e1fd4131c6 retain the unaltered DPAD state in order to use it in display (#1392)
my build has both a lever (dpad mode) and buttons assigned to direct
digital, and a display that is intended to be input-pin-based rather
than output-based (so that the same things display in the viewer
regardless of which profile mode I am in). main works great for that,
for buttons, but the current GP_LEVER_MODEs all are looking at the
output, e.g. GP_LEVER_MODE_DIGITAL only shows the lever moving if the
dpad is set to digital output, not e.g. left analog output. meanwhile,
it would also show lever activity if I was pressing the direct digital
buttons even when I wasn't moving the lever.

this fixes that by adding a new GP_LEVER_MODE_DPAD, which is looking at
the unaltered dpad-mode input, regardless of how it is output, bringing
the display lever functionally equivalent to GPIO-based button displays.
conveniently, we already were holding onto the dpad inputs in the main
loop in order to handle the direct directionals, this just puts it in
the gamepad state object instead
2025-06-22 15:59:32 -04:00
Luke A
28377cf7ae Fix for USB host (#1404)
Fixes the USB host not working by reverting the tinyusb and pico-pio-usb libraries to jfedor's branch. There are several issues that make these libraries not work in SDK 2.1.1, but jfedor's dev branch on pico-pio-usb fixes the issues we were having.

I2C breaks on web config in this build, but I will be investigating i2c hal implementation which reverts some of the i2c functionality. If that works, we can add that as a patch as well.
2025-06-22 15:52:04 -04:00
TheTrain
41b2149c8b Add additional board defined layout slot (#1385)
This PR adds another board defined layout slot for boardconfig.h.  This also adds a layout for the Haute42|COSMOX E16 Southpaw.
2025-06-03 07:55:47 -07:00
Luke A
4569ef3115 Update conditional saves to PS4/PS5 only (#1355)
* Only do conditional saves if we're in PS4/PS5 usb dongle mode

* Adding ps4 driver functions
2025-04-10 13:23:14 -04:00
Luke A
d756adf214 Fix for toast and bounce screen saver logos (#1351) 2025-04-09 14:25:40 -04:00
Luke A
3f82c6de0a Button Layout Preview Fix for Web-Config (#1348)
Removing redundant previewDisplayOptions

Updated Screen Saver 0 for OFF (English only for now)
2025-04-08 13:40:53 -04:00
Mike Parks
20a5df7943 Fixed PS4 mode support for Gamepad Host (#1345)
Changed magic numbers for PS4 device IDs to use defines in Gamepad Host.
Added main PS4 "Console" IDs to Gamepad Host device check to allow both modes to function.
2025-04-07 17:35:39 -04:00
Mike Parks
694d2fd01e Updated Tilt addon to be profile friendly (#1342)
Added event handler to Tilt to reload inputs when profile is changed.
Fixed issue with Tilt input mapping not correctly resetting the map on event.
2025-04-07 12:37:44 -04:00
Luke A
df71beff56 Web Config Saves Fix + Removing Legacy Code (#1339)
* Moved config mode check to the DriverManager

Removed ConfigManager as this idiom never took off and we have better ones in place

Modified NetDriver to run rndis making it the controller of web

Moved Storage -> config Mode to Driver -> config Mode

Fixed no-save issue with web config calls

* Move our reboot translations back to WEB -> SYSTEM

* Added rebootMode to event trigger handling in gp2040
2025-04-06 15:14:28 -04:00
Luke A
f4a40b1518 Force-Save Fix for GP2040 Events (#1335)
Fix for forceSave on events working in gp2040.cpp
2025-04-03 11:47:01 -04:00
Luke A
994965473e Crashing Mini Menu Fix (Unregister Event Handler) (#1328)
* Adding unregister event handler, and removing during button layout screen shutdown()

* Updating cmake version

* bss pointed this out, should be 3.13 not 3.5

* Testing ubuntu roll-back

* Reverting back to 22.04

* Attempting to downgrade cmake to 3.16.x
2025-04-02 11:02:03 -04:00
Luke A
1cd95437c8 Hotkeys, Crash, Menu Fix + Tidying (#1324)
* Fix for hotkeys not allowing repeats.

Re-arrange on the main menu screen code.

Added virtual to GPEvent destructors to make sure we are calling all the way up the chain.

* Lock-up fixes, new/delete was happening while the update() function was being called by display

Some code clean-ups, moved all of the gpscreen destructors to virtual so we do not have to switch() the delete function.

Moved some init functions around so we always call init() first

* Add ability to exit menu with pin-based menu toggle. Fix rapid-press of menu toggle
2025-03-26 14:22:36 -04:00
Luke A
84cc1c131b Configurable Gamepad Inputs for Mini Menu (#1320)
* Updating for main menu ( mini menu ) gamepad button masks

* Added Mini Menu gamepad input as a web configurable option.

This means we can use a toggle on the gamepad settings page / in the board config for allowing the mini menu to be controlled by the gamepad (directional, B1/B2).

A user will still have to set Menu Toggle using the pins in web config, but this gets us much closer.

Also cleaned a little bit of code.

* Duelpad Zen does not need gamepad mini menu input as we have dedicated pins!

* Removed comment

* Missed adding the mini menu option to the webconfig

* Disable mini menu gamepad input by default

* Removed some leftover code
2025-03-24 19:16:40 -04:00
Luke A
b749e95cc4 Case RGB Linkage Mode Flicker Fix (#1318)
* Modified animation effects so they return a bool if animation was successful.

This is important to our linkage frame as we use the "pre-button press" frame to copy to our case linkage RGBs.

Minor clean-ups to code

* Adding our missing button configs to our Javascript in WWW
2025-03-23 22:35:21 -04:00
Luke A
534fd98c42 Haute M Ultra / Lite Case RGBs (#1300)
* Initial commit of a working Haute Lite / Ultra with translated comments.

Enabling/disabling the ambient light and counts will need to be moved to the web config.

* Moved AnimationStation over to our actual code base instead of a library. This allows us to use protobuf, modify the file formats a bit more, and make the code a lot more dynamic.

Also removed .hpp as we do not use that naming convention in our code.

* Renaming some lowercases

* Lowercase the folder as well

* Linux is sensitive to case while Windows doesn't care :(

* More casing

* More capitalizations

* Moved everything out of the animationstation and playerled libraries, removed as many statics as I could find. Still a few statics in Animation:: but still cleaning.

DO NOT USE: This doesn't work yet, but it is getting closer

* Removed the static case rgbs in favor of ambient / linkage now that we're fully integrated into the source.

This is very close to where we want to be

* Added COSMOX M Ultra and M Lite configs

Moved all of our ambient lighting over to boardconfig defines

Updated the OpenCore0 definitions to use our new ambient lighting

* Almost done, changed bytes over to our RGB define for colors, touched up a lot of different things. Chase effect is now properly working with wrap-around, cycling is all much better. Removed power-on animations as we have no real reason for them right now, we can add them back in later.

* Changed hotkeys for case lights a bit

* Slight code clean-ups, I'm happy with this

* Last bit of clean-up before moving to review

* Revert back to nothing

* More code cleanups. There's a known bug with linkage that will be solved in the next branch

* Deprecated some proto config settings
2025-03-21 11:18:18 -04:00
Mike Parks
4e9ba05de0 Mini Menu and Button Layout Fixes (#1304)
* Added 5 additional "alternative" layouts for board config-defined layouts.

* Added string resources for new layout definitions.

* Disable turbo functionality in the process loop and hide from display if addon is disabled or no turbo button is defined.
Fixed issue preventing status change of turbo addon in mini menu. Addon can be enabled, but will not function without a bound pin.

* Update GPButton to support turbo rings for pin-defined elements.
2025-03-17 23:33:56 -04:00
Luke A
51916de07e Return of GP2040-CE boot logo (#1303)
Returning the GP2040-CE boot logo to our restart screen
2025-03-15 20:10:49 -04:00
Mike Parks
5926b379d8 Display mini menu fixes (#1291)
* Fixed issue with SOCD mode changes not being picked up.
Menu navigation left/right actions will now act as page up/down.
Choosing an option will go back one menu level instead of staying in the current.
Menu toggle action will only open/close menu, and will not prompt for saving changes.

* Added menu "reset to home" function.
Added ability to open menu if MENU_NAVIGATION_SELECT is pressed in addition to MENU_NAVIGATION_TOGGLE.
Set previous button state on "reset to home" to prevent debouncing when launching menu via MENU_NAVIGATION_SELECT.

* Fixed increment value for menu pagination

* Changed Save & Exit options from "Yes" & "No" to "Save & Exit" and "Exit"
Fixed issue with No/Exit menu not functioning
2025-03-13 13:49:59 -04:00
Luke A
2b2e528f3c Player Num Removal + Add-on Post Process Rewrite (#1285)
* Rewrote the add-ons and drivers a bit. This is a much cleaner way to do it, and should hopefully fix the timing in Turbo as well as any other add-ons having issues with USB reporting vs. actual timing.

* Removed player num, updated post process add-on call with a boolean if the USB report was sent. Fixed up add-ons config page and config.proto appropriately

* Moved headers for add-ons from tabs to spaces (we're not enforcing this yet but this gets us closer)

* Removing bitmaps.h with our very temporary old logo

Updated toaster and bounce to use current boot screen. Toaster now does a little more randomness

Changed web config as well
2025-03-13 12:17:02 -04:00
Luke A
f01feca282 Xbox One Multiplayer Fix & Auth Bug Fix (#1264)
* Testing Xbox One randomization for serial ID

* Moving USB host start to before we run in gp2040. Added a 0.1s sleep to slowing down the CPU, fixes issues with tinyusb sync'ing

* Missed this, important to not start it twice

* Moving the order so tinyusb host boots up first?

* Reverted usb host start to core1

* This might be the issue, the variable is undefined when gp2040 input driver runs a process() and xbone has not been opened yet.

* We have to send descriptor on LED request for player 2

* Moved from enums.js to enums.ts
2025-02-16 22:05:57 -05:00
TheTrain
03fc5cc361 Update GamepadState.h with directions to use Function on custom hotkeys (#1283)
Update GamepadState.h with directions to use Fuction on custom hotkeys

Update GamepadState.h with directions to use Fuction on custom hotkeys
2025-02-15 00:10:50 -05:00
Luke A
87f23765fd Keyboard Volume Dial - Rotary Encoder Extension (#1274)
* Testing Volume Dial using GPEvents

* Missed an include

* Add volume up / down reset on usb report complete (this should be a built-in in input drivers). Also fixed a silly web config thing

* Update Rotary.tsx

* Update Rotary.jsx
2025-01-25 16:15:41 -05:00
Mike Parks
69f6d213e1 Display Updates and Mini Menu (#1254)
* Initial commit for mini config menu

* Implemented menu options and prepared methods for save functionality.

* Removed stdio init

* Added screen saver mode in addition to display timeout. Default is Display Off (original behavior).
Added "snow", "bounce", "pipes", and "toast" screen savers.
drawSprite can now scale sprite data.

* Added VLX and Sega 2P 6 button layout variants
Added button layout orientation feature to switch layouts for handedness
Updated Display config page to update enum definitions for i18n

* Added menu navigation helper function in prep for event system
Added layout and menu action locale strings

* Adjustments to Arcade, Button Angled, and Capcom layouts to make them less likely to cut off on SH110X displays.

* Improved screen autodetection and manual override

* Adjusting conflicts

* Conflicts part deux

* Conflicts with enums

* One more time with conflicts

* Button layout screen conflicts with change between profile banner and generic banner

* Remove profile variables

* Mostly implemented menu navigation, config change storage, and reboot events

* Full menu navigation implementation.
Added timer for reboot cases.

* Increased storage size to 32k

* Added options to disable different components of the status bar on ButtonLayoutScreen.
Removed & deprecated input history addon remnants and migrated to Display options proper.

* Remove deprecated input history init

* Set default Display tab to Hardware

* _Actually_ set default Display tab to Hardware

* Adjust bounce velocity
2025-01-23 20:27:09 -05:00
Pelsin
eaef4ea2a2 Add GpioAction for sustaining 4/8 way mode (#1260)
* A take on handling mapping for sustain 4/8 way mode

* Merge 4/8-way mode toggle into one action
2025-01-09 18:02:28 -05:00
Mike Parks
da0f83b2e2 Event System Implementation (#1247)
* Event System Implementation
Re-implemented event system from previous PR #971 to be up to date with current codebase.

* Moved profile change event to setProfile

* Fixed stray semicolon in adding restart event handler.

* Added semicolon to event macro to keep event handlers clean

* Removed semicolons from remaining event handler registrations
2025-01-03 15:56:34 -05:00
TheTrain
fe1328b8d5 Update to allow the SOCD none mode in the new USB HID input mode (#1249)
Very small PR to address https://github.com/OpenStickCommunity/GP2040-CE/issues/1248

This allows SOCD none in the new USB HID mode.
2024-12-28 16:09:45 -05:00
Luke A
eede7e2476 Case RGB LEDs - Bounty #22 (#1241)
* Case RGBs, Bounty #22

First attempt, going to see if this works locally but this is very similar to the turbo led code

* Update LED count for case RGBs, change default white to green

* Added configs for Open Core0 and Open Core0 WASD! Happy Holidays Train!!

* Fix for led index

* Update app.js
2024-12-27 13:29:43 -05:00
Luke A
fcca934c69 Turbo LED on RGB Stack - Bounty #4 (#1240)
* Bounty #4 - Add Turbo LED to RGB Stack

* Set the Turbo LED to RGB from the Add-On Configs Menu, and set the index value same as player LEDs

* Can be configured in the BoardConfig.h (will be for OpenCore0)
2024-12-23 19:09:07 -05:00
Luke A
e2d765acba X-Input Serial ID (Pico ID Based) (#1235)
* [ImgBot] Optimize images

*Total -- 6,536.44kb -> 6,081.92kb (6.95%)

/configs/OpenCore0/assets/Open_Core0_LED_order.png -- 81.87kb -> 34.77kb (57.53%)
/configs/OpenCore0/assets/Open_Core0_pin_mapping.png -- 79.46kb -> 34.15kb (57.02%)
/configs/OpenCore0/assets/Open_Core0_layout.png -- 80.33kb -> 34.76kb (56.73%)
/configs/OpenCore0/assets/Open_Core0_2.jpg -- 3,134.92kb -> 2,976.17kb (5.06%)
/configs/OpenCore0/assets/Open_Core0.jpg -- 3,159.87kb -> 3,002.07kb (4.99%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

* Updated X-Input serial index 3 to use Pico ID instead of static value (converted to bytes)

* Let's try the tail end of the pico ID

* Lots of tabs in this driver, moved over to spaces

* Also convert these indents to spaces

---------

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2024-12-23 10:18:02 -05:00
not-magic
3f37d77900 Added support for the Ultimarc Ultrastik 360 to the gamepad plugin (#1226) 2024-12-09 17:47:55 -05:00
Mike Parks
08bdf59843 Reimplementation of "ControllerHostAddon" (#1221)
Previous PR #1102 by @smahdink
* Updates naming to GamepadUSB instead of Controller to avoid collision with controller objects.
* Adds secondary PID for DS4 usage
* Fixes issue where GPIO-based inputs are overridden, preventing main GPIO controls from functioning
2024-11-24 22:06:32 -05:00
Mike Parks
d61073efcc Standalone Directional Input actions and Addon buttons as GpioAction (#1216)
* Initial commit of standalone directional inputs in addition to mode-specific and DDI.

* Moved directions experiment to feature branch.
Updated Tilt addon to remove pin allocation in favor of GpioAction usage.

* Removed Reverse button pin allocation in favor of GpioAction

* Deprecated Reverse button pin proto definition.

* Remove unused Reverse pin variable

* Added SUSTAIN_FOCUS_MODE definition for toggling Focus Mode state

* Removed Focus Mode pin allocation in favor of GpioAction

* Removed deprecated pins from webconfig Addon views

* Migrate previous addon pin settings to pin mappings and GpioActions

* Revert deprecated pin names for focus, tilt, and reverse to previous names

* Update tilt, focus, and reverse migrations to use fromProtoBuf

* Remove stray equals sign
2024-11-24 22:03:56 -05:00
Brian S. Stephan
f127a6bbcc Restrict runtime saves (#1178)
* only write the config to flash when it is safe to

the USB host port uses the flash, as does our config. both cores
accessing the flash at the same time is no good and will crash the host
port, so the host port core is locked when writing flash for saving the
config, but this disables interrupts on the port and may interfere with
auth, so this only saves at runtime when it is safe to (when USB host is
disabled), with an optional flag to force saving the config, which
should only be used in limited circumstances.

* always force config saves in the webconfig

it doesn't use the USB host port for anything so this should always be
fine

* add a hotkey to force a save of the config
2024-11-23 17:02:32 -05:00
Luke A
5448ff4fc5 Keyboard Host Clean-up / Unmount Bug Fix (#1177)
* Small bits of clean-up to keyboard host. Should guarantee dev addr, instance, protocol type, mount/unmounts, and update loops

* Bug!
2024-10-09 12:58:21 -04:00
Luke A
c67b880602 Player LED - Xbox One (#1166)
Add player LED support for Xbox One
2024-09-29 16:43:42 -04:00
Brian S. Stephan
2ec5fa1934 remove the JS Slider addon, move it to core (#1152)
this removes a bunch of code to support the addon, naturally, but the
idea is the same, just in core. of note, the default mode when no slider
pins are active has been folded into the core gamepad setting, so a tiny
migration copies the user's default mode into the gamepad setting in
order to not violate expectations. the user can still change this
setting there via webconfig or hotkeys.

this also updates the DDI addon to get the active mode (rather than the
settings mode) so that it doesn't do weird cleaning and/or override
things, and updates the display code to show the active mode

Co-authored-by: Luke A <arntsonl@gmail.com>
2024-09-27 12:09:46 -04:00
Luke A
7491db6499 Analog Clean-up and Center Fix for All Drivers (#1150)
* Lots of cleanups in analog, fixed center based on mid-point of driver (0x8000 or 0x7FFF)

* Tabs to spaces
2024-09-27 11:40:24 -04:00
Brian S. Stephan
20c5433ff4 Allow for the enabling and disabling of profiles (#1149)
* add a enabled flag to GpioMappings to indicate what's active

with this flag we no longer need to copy profile 1 to 2-4 by default, so
that migration goes away, but because of that we need to migrate the old
way of doing things and only enable profiles that are actually different
than the base.

in the end, new fresh boards should have profile 1 only enabled, and
profiles 2-4 blank (no copying, disabled by default), and migrated
configs should have profiles (that exist) that differ from profile 1
enabled and profiles that don't disabled

* refactor set/next/previousProfile to only set enabled profiles

* always provide a list in getProfileOptions

* Add possibility to add, disabled/enable profiles. State can now handle any amount of profiles

* Mock data with enabled flag, handle flag correctly

* Correctly handle disabled translation string

* Ignore base profile enabled label in menu

* add enabled flag to the API; not sure how I missed this

---------

Co-authored-by: ian <ian@vidales.se>
2024-09-27 11:28:31 -04:00
Brian S. Stephan
2712ecf63e Add the ability to label a profile and see it in the web UI and OLED display (#1139)
* add the ability to give a profile a name

* Add support for changing profile labels

* Letters, numbers, and spaces allowed in profile label

* actually retain the alt. profile labels

aka increment the array index *after* you're done using it, silly bss

* actually provide the alt mappings profileLabels in the proper API spot

this fixes the issues with Pelsin's UI change, which was immaculately
done and only thwarted by my bugs =)

* display the profile label on the display when a label is set

e.g. the top line splash says "SNES FG" instead of "Profile #2"

---------

Co-authored-by: ian <ian@vidales.se>
2024-09-25 10:15:31 -04:00
NickGuyver
245e15ef65 Custom analog error rate (#1136)
* initial commit

Functionally working, web is broken in the following ways:
1 - Error Rate title shows regardless of Forced Circularity being checked, but the selection box hides as expected
2 - Selecting a value saves, but when reloading the webpage there is an error and it thinks it's set to 0%

* Convert FormSelect to ts, add types for label. add support for hiding with prop

* Reorder checkboxes for better flow

* Fix key error for focus mode

* Remove logging used to check values

* fix errors and initial value

* remove web floats

---------

Co-authored-by: ian <ian@vidales.se>
2024-09-25 10:10:58 -04:00
Luke A
9a7275970b Core0/Core1 Sync USB Stall fix (#1146)
* PS5 fix for auth

* What started as a simple fix has become a complete revamp of PS4/PS5 auth

- Simplified auth down to a single 1064 buffer for nonce + signed nonce passing
- All auth console<->dongle passing now use a single GPAuthState enum
- Lots of simplifications of design for PS4 and PS4-usb-listener

Still need to test against PS4 loaded keys but it should work

* Fix for USB stalling

* Revert sensor data back to what it was before

* Update PS4Auth.h

* Update PS4Driver.cpp
2024-09-25 01:12:57 -04:00
Luke A
6a7dc59b98 Xbox 360 Pass-through Authentication (#1138)
* [ImgBot] Optimize images

*Total -- 6,536.44kb -> 6,081.92kb (6.95%)

/configs/OpenCore0/assets/Open_Core0_LED_order.png -- 81.87kb -> 34.77kb (57.53%)
/configs/OpenCore0/assets/Open_Core0_pin_mapping.png -- 79.46kb -> 34.15kb (57.02%)
/configs/OpenCore0/assets/Open_Core0_layout.png -- 80.33kb -> 34.76kb (56.73%)
/configs/OpenCore0/assets/Open_Core0_2.jpg -- 3,134.92kb -> 2,976.17kb (5.06%)
/configs/OpenCore0/assets/Open_Core0.jpg -- 3,159.87kb -> 3,002.07kb (4.99%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

* Very WIP xbox 360 auth, don't use this for any reason

* Packet size has to be 64

* Fixed a bug with descriptor strings that was causing the xbox 360 security auth to fail

* X360 Auth Working! Need to go over a lot of this code because I sync cores now, a lot of xinput changes, etc.

* Re-enabling printf to figure out what is going wrong with release

DO NOT USE THIS VERSION

* Let's revert some core dependence if that's the issue on release

* Add sync back in and move add-ons to after driver init

* Removing stdio init seems to fix haute42

* Lots of code cleaning. Core0 will always setup() before Core1() so we can remove core1 wait. Added nop to while loop just to add some CPU spice

* Updating TinyUSB to 0.17.0 release from Sept. 2024

* Getting x360 back up to working, fixing some small bugs

* One merge fix for feature data + tud auth data

* Formatting, getting ready for merge

* Last of the formatting!

---------

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2024-09-23 23:07:38 -04:00
Luke A
9e3d7a6059 Add board flash 0x9f SPI command to web config (#1075)
* [ImgBot] Optimize images

*Total -- 11,807.83kb -> 10,597.19kb (10.25%)

/configs/MavercadeRev2/assets/Rev2_config_pic.jpg -- 1,148.71kb -> 1,001.39kb (12.83%)
/configs/MavercadeRev2/assets/Rev2_thumbnail.png -- 4,501.00kb -> 3,984.05kb (11.49%)
/configs/ZeroRhythm/Assets/ZeroThythm 2.jpg -- 2,954.52kb -> 2,669.00kb (9.66%)
/configs/ZeroRhythm/Assets/ZeroRhythm 1.jpg -- 2,687.40kb -> 2,428.72kb (9.63%)
/configs/MavercadeRev1/assets/Rev1_config_pic.png -- 516.19kb -> 514.02kb (0.42%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

* Added actual board flash info to homepage

* Missing define

* Bump up the TX/RX memory space even more

* Last attempt at correctness

* Updated system flash size to be a static int32_t only called once at start of web

---------

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2024-09-16 22:08:08 -04:00
Pelsin
6c97bc02ee Add hotkey for decrementing profile number (#1130)
* Add hotkey for decrementing profile number

* Code style change
2024-09-16 21:10:49 -04:00
Mike Parks
32be2229c9 GamepadAuxState functionality (#1084)
* Started implementation of GamepadAuxState to store values that are outside of normal Gamepad button/analog functions, such as IMU (accelerometer, gyroscope) and rumble state.

* Added gyroscope values for future Wii Motion Plus implementation.

* Reduced additional PS sensor fields until necessary.
Renamed PS gyro_accel_misc to sensor_data.
Changed sensor fields to u16.

* Refactored Wii data handler & added Motion Plus support

* Implemented rumble, gyro, and accelerometer data structure usage if enabled

* Refactor how Motion Plus and standard Extensions are detected. Prioritize Motion Plus if both are available.

* Added missing report types and OUT report endpoint to PS4.

* Added UDraw Wii Tablet support to WiiExtension library

* Implemented touch counter for PS4 touchpad usage.

* Added "active" state to Aux sensors to be used when a sensor is enabled, but not actively sending data.

* Added sensor types for relative values

* Added A3 & A4 button bindings to keyboard host
Keyboard host now implements mouse bindings for left, middle, right buttons
Relative mouse movements stored in the GamepadAux mouse sensor for later usage
Added exclusion list for KeyboardMapper control to filter out unused entries

* Temporarily removed GamepadAuxState from gamepad.h to resolve conflict

* Removed blank space for resolving merge

* Reimplemented GamepadAuxState in gamepad.h

* Changed length checks on PS4 get reports to return max of request value and array size.

* Replaced GamepadRumbleState with GamepadAuxHaptics structures.
Implemented haptics control in PS4 and OGXbox modes.

* Fix indentation on PS4 descriptors. Comment out debug outputs.

* Added WiiExtension wrapper for new I2C interface
Fixed initial states for MotionPlus gyro

* Added PS4 accelerometer and gyrometer known range values

* DS3 additions

* Removed HID report repeating as this could cause incorrect report parsing to occur

* Removed old quirks mode PS3 descriptors in favor of DS3 specific ones.
This change would make PS3 mode specifically PS3, and standard HID/"DInput" should no longer use this mode. Still to do: better define and explain what each report blob is used for.

* Updated PS3/PS4 device constants to not conflict with HID defines.
Included state checking for Aux gyro and accel sensors.

* Remove USB report repeat sample code

* Added haptic enable state checks on most modes supporting it

* Clean up debug code for PS4 expansion

* Fix tabs for keyboard host mouse definitions

* Started cleaning up naming of PS3 report IDs for documentation.
Removed btaddr values for actual PS3 devices.

* Removed hard-coded data for BT device details (0xF2) in favor of a data struct.
Randomized BT addresses on start for 0xF2 and 0xF5 reports.

* Update all drivers to remove feature data parameter in process().
Added player ID & LED data to main Aux structure.
Set default values of zero on integer Aux values.
Deprecated Storage::*FeatureData methods in favor of Aux values.

* Updated DRV8833 to validate left/right motor pins and enable the Aux haptics if valid.

* Aligned forced player number to new Aux storage, but functionally still not working as expected.

* Updated XInput, PS3 & PS4 feature outputs to store LED & rumble status on processed gamepad.

* Added new speed settings and a custom blink timing mode to PlayerLEDs.
Added on/off blink timing to DS4 lightbar usage in RGB PLEDs.

* Added PS4 configuration switch between Console and Emulation modes

* Added PS4 ID mode help text and included option in PS5 mode.

* Removed XInput reference from Player LED as other modes now make use of it.

* Set active state to true when Wii gyro/accel sensors are being fed data
2024-09-16 21:01:06 -04:00