Add runtime_profile#131
Open
herzmx wants to merge 7 commits into
Open
Conversation
7781ba2 to
b7e05f1
Compare
Support runtime mapping and auto-fire
add missing info about input latency scale images
To works with wireless controller using hold START to ON/OFF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a runtime profile service (
runtime_profile) that lets users remapbuttons and configure auto-fire on the fly without reflashing the firmware.
Changes
New
runtime_profileservice (src/core/services/profiles/)Runtime button-mapping service with three trigger modes, all operating with profile-switch combo:
Available auto-fire frequencies: 30 Hz, 20 Hz, 15 Hz, 12 Hz, 10 Hz, 7.5 Hz
(tap sequence timeout: 800 ms).
Auto-fire support in the profile system (
src/core/services/profiles/profile.h/c)autofire_period_msfield inbutton_map_entry_tautofire_start_ms[22]array inprofile_output_t— preserved across calls(excluded from the
memsetreset)MAP_AUTOFIRE(in, out, period_ms)macro andAUTOFIRE_*HZconstantsprofile_apply()drives auto-fire via time-based oscillation: button ON duringthe first half of each period, OFF during the second half
(elapsed % period) < (period / 2)usb2neogeointegration (src/apps/usb2neogeo/)mask
app.ccallsruntime_profile_init()at startupgpio_device.crefactorgpio_apply_output()helper that transparently selects the runtime profileor falls back to the active normal profile
re-application
gpio_device_task()so auto-fire oscillates even when thecontroller stops sending USB reports while a button is held
clears the runtime map