How to Use Game Controllers

From MorphOS Library

About the Game Controller Support

MorphOS offers two different interfaces for game controllers: newer sensors.library and older lowlevel.library for the legacy support. Programs supporting sensors.library are still quite rare, but it is planned to be the only API for the controllers, and lowlevel.library would only be a wrapper for it.

MorphOS supports standard HID compatible controllers, which don't require any extra commands to be used in the communication, but also Xbox 360 wired and wireless pads (using a PC USB adapter).


Using Multiple USB Game Controllers with lowlevel.library

USB Settings

If you connect several joysticks to a MorphOS machine, they all get assigned to the port 1 of lowlevel.library and will control the same player in games. You need to change lowlevel.library emulation settings in the USB preferences in MorphOS to get the joysticks to different ports for multiplayer gaming. Unfortunately there isn't any single switch for it and you have to change the port setting in several different places.

In the USB settings, select your controller from the Devices list and click the Settings button.

Usb joystick 1.png

Controller is assigned to the port 1 by default in the "LowLevel Library Joypad emulation" section.

Usb joystick 2.png

To change it to a different port select "Don't touch" option for the port 1 and "Merge with USB" for some other port. You may also change the Rumble Port if needed. We'll use port 2 in this example.

Usb joystick 3.png

Click to the Action tab next. Here you have to define all actions of all directions and buttons to be sent to the wanted port too. Select "X axis" from the "Usage items" list, and then go through all the items in the lower list and change their port setting from the right side.

Usb joystick 4.png

Do the same for the "Y axis" too.

Usb joystick 5.png

And for the buttons too. Some controllers have the buttons on the same "Usage items" list with the axes settings, but with some controllers you may have to search them from the different item in the "Reports and collections" list.

Usb joystick 6.png

Click the Save button and you have the controller configured to a different port!


Program Settings

You can now configure games or programs to use different controllers for different players. For example the Wings Battlefield game has an "Assign Controls" option which just reads any input from any lowlevel.library port automatically, and you can use up to four separate controllers with it.

WingsBattlefield Macmini.jpg
Wings Battlefield with four joysticks connected to a Mac mini computer


UAE on the other hand is configured from a text based configuration file. You can assign any of the four lowlevel.library ports from the MorphOS side (joy<n>) to any of the emulated Amiga ports (joyport<n>).

Usb joystick 7.png


Game Controllers Reported to Work

  • Speedlink Competition Pro USB
  • Thrustmaster 360 Modena Pro Racing Wheel (needs some setup for the ranges from the Poseidon prefs)
  • Sony Dualshock 4 (PS4)
  • Xbox 360 wired and wireless pads (using a PC USB adapter)


Game Controllers Which Don't Work

  • PS3 controllers (they need some non-standard initializing command, but may get the support later)