Command line

From GIMX

Revision as of 11:35, 19 July 2014 by Matlo (talk | contribs) (Continue update for GIMX 2.xx.)

Jump to: navigation, search
Other languages:
English • ‎français

Motivation

GIMX can be run from a Linux terminal without having to run a windowing system.
This improves performances, especially on small targets like the Raspberry Pi or thin clients.
It's also useful for other stuff like automation.

Linux + bluetooth + PS3

Set the dongle address

It is highly recommended to use a CSR Bluecore4-rom dongle. Check the compatibility list.

Plug a Sixaxis previously paired with the target PS3.

Type in a terminal:

sixaddr

Result:

Current Bluetooth master: ps3_bt_address
Current Bluetooth Device Address: sixaxis_bt_address

Get the current dongle address:

bdaddr -i hciN

where N is the dongle index (type "hciconfig -a" to see all dongles).

Write it down so as to be able to restore it later.

Set the dongle address:

bdaddr -r -i hciN sixaxis_bt_address

Check the result:

bdaddr -i hciN

Run GIMX

In a terminal:

gimx --type Sixaxis --config filename --hci bt_device_index --bdaddr ps3_bt_address
  • file_name
The name of the config file, in the ~/.emuclient/config directory (ex : toto.xml).
This argument is mandatory.
Use backslashes to escape spaces.
  • bt_device_index
The bluetooth device index (ex : 0 for hci0, 1 for hci1, etc).
This argument is optional, default device index is 0.
  • ps3_bt_address
This argument is mandatory.

Linux + bluetooth + PS4

This part is to be completed!

Linux or Windows + DIY USB adapter or GPP

In a terminal:

 gimx --config file_name --port /dev/ttyUSBX
or
 gimx -c file_name -p /dev/ttyUSBX

emuclient options:

  • --config file_name
The name of the config file, in the ~/.emuclient/config directory (ex : toto.xml).
This argument is mandatory.
  • --port /dev/ttyUSB0
The serial port. Ex: /dev/ttyUSB0 in Linux, COM4 in windows.
Only mandatory for the DIY USB adapter.
  • --refresh 4
The refresh period, in ms.
Optional. Forcing the refresh period is not recommended.

General gimx options

  • --curses
curses terminal display.
Mouse calibration is available through this interface.
  • --status
Display controls in the terminal.
  • --nograb
Do not grab the mouse cursor.
  • --force-updates
Send button+axis status even if there is no change (for compatibility with games like DNF).
  • --subpos
Improve stick precision (counteract rounding issues).
  • --keygen key
Generate a key press at emuclient startup.
The main use case for this is the automation of macro's execution.
Events that are not generated by macros are ignored.
Another use case is the sending of a single command (it requires to use a macro as no key up event is generated).
  • --event "control(value)"
It's possible to send controls to the console from the command line, without having to create a configuration and macros to use with the --keygen argument.
Example:
 gimx -p /dev/ttyUSB0 --event "lstick x(127)" --event "rstick y(-128)" --event "circle(255)" --event "square(0)"
This moves the left stick right, the right stick forward, fully presses the circle button, and releases the square button.
The state of all other controls is cleared, i.e. all other buttons and axes are released (in the above command, --event "square(0)" is not necessary).
emuclient should complete in about 10ms.
Names and value ranges:
"lstick x", "lstick y", "rstick x", "rstick y": [-128,127]
"acc x", "acc y", "acc z", "gyro": [-512,511]
"select", "start", "PS", "l3", "r3": {0, 255} (only two values as these buttons are not pressure-sensitive)
"up", "right", "down", "left", "triangle", "circle", "cross", "square", "l1", "r1", "l2", "r2": [0,255]