libretro/docs

Create documentation for Turbo Fire (suggested documentation added)

MisterDozer opened this issue · 2 comments

Documents

Do not currently exist

Proposed changes

Documentation for usage of Turbo Fire function should be created. RetroArch>Settings>Input>Turbo Fire. I can't seem to get the Turbo Fire to work, but I'm not sure I'm using it correctly or understand it's intended function due to the lack of documentation. Description of the general intended function of the Turbo Fire, Turbo Modes, and Turbo Default Button would be much appreciated. There seems to be a lot of confusion in the community about how Turbo Fire is intended to work.

The most info I was able to find are some comments in the source code (see below).

if (turbo_mode > INPUT_TURBO_MODE_CLASSIC)
{
/* Pressing turbo button toggles turbo mode on or off.
* Holding the button will
* pass through, else the pressed state will be modulated by a
* periodic pulse defined by the configured duty cycle.

else if (turbo_mode == INPUT_TURBO_MODE_SINGLEBUTTON_HOLD &&
/* If turbo button is held, all buttons pressed except
* for D-pad will go into a turbo mode. Until the button is
* released again, the input state will be modulated by a
* periodic pulse defined by the configured duty cycle.

I finally figured it out! My suggestion for documentation.

Turbo Fire Guide by nebdoza

Turbo Fire can add "turbo" (rapid continuous button press activation) functionality for any button with the exception of the d-pad. This can be used regardless of if turbo buttons can be mapped by the core itself. The intended functionality is for the user to "activate" Turbo Fire by pressing, or holding, the Turbo button. Depending on the Turbo Mode selected the way Turbo Fire functions will be slightly different.

NOTE: In order for Turbo Fire to function the Turbo key mapping must be set for Port 1 Controls, or whatever Port # Control is desired.

Turbo fire settings are located: RetroArch>Settings>Input>Turbo Fire or RetroArch>Quick Menu>Controls>Turbo Fire

Turbo Period:
The period (in frames) when turbo-enabled buttons are pressed.

Turbo Duty Cycle:
The number of frames from the Turbo Period the buttons are held down for. If this number is equal to or greater than the Turbo Period, the buttons will never release.

Turbo Modes:
Selects the general behavior of Turbo Fire.

Classic: When the Turbo button (mapped in Port Controls) is pressed along with any other button (except the d-pad), that button will be continuously activated according to the defined Turbo Period and Turbo Duty Cycle. The button will continue to be activated until released. The Turbo button does not need to be held, a brief press will activate Turbo Fire as long as the other button is being pressed.

Single Button (Toggle): When the Turbo button (mapped in Port Controls) is pressed the button defined by Turbo Default Button will be begin to activate, regardless of whether the button is currently being pressed. It will continue to fire until the Turbo button is pressed again.

Single Button (Hold): When the Turbo button (mapped in Port Controls) is pressed and held the button defined by Turbo Default Button will begin to activate, regardless of whether the button is currently being pressed. It will continue to be activated as long as the Turbo button is held, and will stop activating with the Turbo button is released.

Turbo Default Button:
Default active button for Turbo Mode 'Single Button' modes. This is the button that will be continuously activated when used in conjunction with the Turbo button. See the Single Button mode descriptions for more details.

I do see there are steps provided here: https://docs.libretro.com/meta/how-to-contribute/ for how to add this to the documentation. I will go through those steps.

I will leave this open until I am able to get it added.