Skip to content

Commit

Permalink
Merge pull request #940 from zoltanvb/remote_retropad_update
Browse files Browse the repository at this point in the history
Updates for Remote Retropad: controller and keyboard test functions
  • Loading branch information
fpscan authored May 13, 2024
2 parents 3dd0b13 + 1238cac commit e9262bf
Showing 1 changed file with 35 additions and 40 deletions.
75 changes: 35 additions & 40 deletions docs/library/remote_retropad.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,20 @@

## Background

RetroPad is controller method for RetroArch over the network.
Remote RetroPad is a built-in core for 2 purposes: controlling another instance of RetroArch over the network, and testing input methods (retropad and keyboard).

#### How to start the Remote RetroPad core:
#### How to use the Remote RetroPad core:

- To start the Remote RetroPad core, go to RetroArch's main menu screen. Select 'Load Core', then 'Remote RetroPad'.
This core is present in all RetroArch builds that have networking enabled. To start the Remote RetroPad core, go to RetroArch's main menu screen. Select 'Load Core', then 'Remote RetroPad'.

The content should now start running!
The screen should now display a RetroPad, and buttons will react to controller activity. Digital inputs will be highlighted in one shade of red, analog inputs will be highlighted in a gradual manner. Any input that has been activated at least once, will turn green.

To switch to the keyboard test screen, pass keyboard focus to the core (default hotkey Scroll Lock), and press keyboard keys A and B simultaneously. This screen includes a standard 102-key PC keyboard + extra blocks for all RETROK_ values present in the code. Screen adapted from DOSBox-Pure onscreen keyboard with permission. Keyboard test screen shows pressed keys, including special and multimedia keys, however some keys may be capture by the operating system and cannot be detected by RetroArch. Keyboard inputs are not set up for remote transmission, only for local test.


#### Setting up the RetroArch instance to be controlled

To allow a RetroArch instance to be controlled by Remote RetroPad, enable "Network retropad" under Settings / Network, and enable the remote control for the desired user(s).

### Author/License

Expand Down Expand Up @@ -54,45 +61,46 @@ Frontend-level settings or features that the Remote RetroPad core respects.
| Crop Overscan ||
| LEDs ||

### Directories

The Remote RetroPad core's internal core name is 'RetroPad Remote'

### Geometry and timing

- The Remote RetroPad core's core provided FPS is 60.0
- The Remote RetroPad core's resolution is 320x240
- The Remote RetroPad core's core provided sample rate is 30000.0 Hz
- The Remote RetroPad core's core provided aspect ratio is 4.0 / 3.0

## Usage

Awaiting description.

## Core options

The Remote RetroPad core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.

Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.

- **Port** [net_retropad_port] (55400 to 55420 in increments of 1. **55400 is default.**)
- **Port** (55400 to 55420 in increments of 1, default **55400**.)

UDP port for the connection on the target machine. One port is for one user only, if you wish to control e.g. user 2, add one to the base port.

- **IP address part 1** (0 to 255 in increments of 1, default **0**.)

First octet of the target machine's IP address (e.g. **192**.168.0.33)

Awaiting description.
- **IP address part 2** (0 to 255 in increments of 1, default **0**.)

- **IP address part 1** [net_retropad_ip_octet1] (0 to 255 in increments of 1. **0 is default.**)
Second octet of the target machine's IP address (e.g. 192.**168**.0.33)

Awaiting description.
- **IP address part 3** (0 to 255 in increments of 1, default **0**.)

- **IP address part 2** [net_retropad_ip_octet2] (0 to 255 in increments of 1. **0 is default.**)
Third octet of the target machine's IP address (e.g. 192.168.**0**.33)

Awaiting description.
- **IP address part 4** (0 to 255 in increments of 1, default **0**.)

- **IP address part 3** [net_retropad_ip_octet3] (0 to 255 in increments of 1. **0 is default.**)
Fourth octet of the target machine's IP address (e.g. 192.168.0.**33**)

Awaiting description.
- **Start screen** (**Retropad** / Keyboard tester)

- **IP address part 4** [net_retropad_ip_octet4] (0 to 255 in increments of 1. **0 is default.**)
Initial screen when starting Remote Retropad.

Awaiting description.
- **Hide mismatching analog inputs** (**Yes** / No)

Certain input methods (like using the keyboard to simulate controller buttons) do not send the analog value. Remote Retropad indicates this by leaving the center of the button white, if this option is turned off.

## Controllers

Expand All @@ -108,24 +116,11 @@ The Remote RetroPad core supports the following device type(s) in the controls m

#### Joypad

| User 1 Remap descriptors | RetroPad Inputs |
|--------------------------|------------------------------------------------|
| B | ![](../image/retropad/retro_b.png) |
| Y | ![](../image/retropad/retro_y.png) |
| Select | ![](../image/retropad/retro_select.png) |
| Start | ![](../image/retropad/retro_start.png) |
| D-Pad Up | ![](../image/retropad/retro_dpad_up.png) |
| D-Pad Down | ![](../image/retropad/retro_dpad_down.png) |
| D-Pad Left | ![](../image/retropad/retro_dpad_left.png) |
| D-Pad Right | ![](../image/retropad/retro_dpad_right.png) |
| A | ![](../image/retropad/retro_a.png) |
| X | ![](../image/retropad/retro_x.png) |
| L | ![](../image/retropad/retro_l1.png) |
| R | ![](../image/retropad/retro_r1.png) |
| L2 | ![](../image/retropad/retro_l2.png) |
| R2 | ![](../image/retropad/retro_r2.png) |
| L3 | ![](../image/retropad/retro_l3.png) |
| R3 | ![](../image/retropad/retro_r3.png) |
Remote RetroPad supports all standard RetroPad buttons. Analog values are supported for analog sticks. Analog button values are shown for L1/R1/L2/R2, A/B/X/Y buttons, but not transferred.

## Usage for automated tests

It is possible to supply an expected input file, and show instructions on which button to press. For details, see [PR #16357](https://github.com/libretro/RetroArch/pull/16357).

## External Links

Expand Down

0 comments on commit e9262bf

Please sign in to comment.