Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Autodetect the current controller input and select the appropriate community/custom prompt texture #172

Open
Zoukambada opened this issue Nov 1, 2024 · 0 comments

Comments

@Zoukambada
Copy link

Zoukambada commented Nov 1, 2024

Autodetect the current controller input and select / swap to the appropriate community/custom prompt texture if found in textures folder

  • How it the detection would work?

For example, if the DualShocks4 is detected (through driver or by the hardware vendor, etc) it would load the texture button prompts with corresponding to the its suffix.

  1. For dualshock 4, if detected, it would look for suffix: SONY_DS4
    First attempt: ACF61D7C_1024x512_SONY_DS4.DDS... (and other button prompt files)
    Second attempt - If not found: ACF61D7C_1024x512_SONY*.dds
    Third Attempt: If it finds PlayStation
    Fouth Attempt: If it finds PS
    Last attempt - If still not found: ACF61D7C_1024x512.dds (regular / default custom dds or the default texture would be loaded)

  2. If DualSense it is detected it would look for texture files with suffix: SONY_DS5
    First attempt: ACF61D7C_1024x512_SONY_DS5.DDS
    Second attempt: If it finds SONY_DS4 instead, as it has SONY in its filename, it would be loaded instead.
    ...

  3. If X360 pad is detected:
    First attempt: ACF61D7C_1024x512_MICROSOFT_XBX.DDS... (and other button prompt files)
    Second attempt - ACF61D7C_1024x512_MICROSOFT_XBOX_MODERN.DDS
    Third Attempt: If it finds MODERN
    Third Attempt: If it finds X360
    Fouth Attempt: If it finds XB*
    Fifth Attempt: If it finds Microsoft*

  4. If Nintendo pad is detected:
    First attempt: ACF61D7C_1024x512_NINTENDO*
    ...

  5. If driving wheel is detected:
    First attempt: ACF61D7C_1024x512_WHEEL*

  6. If no controller is detected the keyboard prompt would be loaded:
    First attempt: ACF61D7C_1024x512_KEYBOARD* (regular / default custom dds or the default texture would be loaded)
    ...

  • Options in .INI to be set

In OutRun2006Tweaks.ini it would be added some related options to the texture prompts / Autodetect controller feature.
AutodetectControllerPrompts=True

ForceControllerPromptsSuffix=False*
*If filled with "Nintendo", "Sony" or "Microsoft" (or any other) is set, it would only search for filenames containing this suffix.

If the last option is set to anything that is not "False", add another complementary option:

ForceControllerPromptsSuffixOverride=False
If False, any kind of controller or wheel is detected but keyboard, the suffix texture from the last option will be loaded. When the controller is disconnected, the keyboard prompt texture is always loaded by default.
If True, the Forced Prompt Suffix will always be loaded, no matter if there is a controller connected or not.

ForceControllerPromptsColorScheme=False**
**When "False", it would be try to load the one with suffix that has Color, if not found it would load respecting the alphabetic/numeric order of the suffix. When "Light" its the monochromatic Light scheme (light suffix), when "Dark" its forced to the monochromatic Dark scheme.

  • Textures to be detected

If I'm not mistaken, these are the button prompt texture files to be checked:
textures/load/spr_sprani_congrats_cvt_Exst/
455717B2_512x512.dds

textures/load/spr_sprani_etc_cvt_Exst/
1F77CB88_128x128.dds

textures/load/spr_sprani_game_cvt_Exst/
39229D64_1024x1024.dds

textures/load/spr_sprani_sumo_fe_cvt_Exst/
ACF61D7C_1024x512.dds
313DB8CB_512x256.dds

  • Why?

This way the community could share one multi-prompt package containing all updated textures, the user would download this package and place in the textures/load/FOLDER/ and it would automagically adapt to the current controller that the player is using. It would feel natural as a modern Windows / Console Game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant