SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)


THIS PAGE IS A WORK IN PROGRESS ... Please make edits to this page to improve it!


Open a joystick for use.


SDL_Joystick* SDL_JoystickOpen(int device_index);

Function Parameters


the index of the joystick to query

Return Value

Returns a joystick identifier or NULL if an error occurred; call SDL_GetError() for more information.


The device_index argument refers to the N'th joystick presently recognized by SDL on the system. It is NOT the same as the instance ID used to identify the joystick in future events. See SDL_JoystickInstanceID() for more details about instance IDs.

The joystick subsystem must be initialized before a joystick can be opened for use.


This function is available since SDL 3.0.0.

Code Examples

SDL_Joystick *joy;

// Initialize the joystick subsystem

// Check for joystick
if (SDL_NumJoysticks() > 0) {
    // Open joystick
    joy = SDL_JoystickOpen(0);

    if (joy) {
        printf("Opened Joystick 0\n");
        printf("Name: %s\n", SDL_JoystickNameForIndex(0));
        printf("Number of Axes: %d\n", SDL_JoystickNumAxes(joy));
        printf("Number of Buttons: %d\n", SDL_JoystickNumButtons(joy));
        printf("Number of Balls: %d\n", SDL_JoystickNumBalls(joy));
    } else {
        printf("Couldn't open Joystick 0\n");

    // Close if opened
    if (SDL_JoystickGetAttached(joy)) {

CategoryAPI, CategoryJoystick, CategoryDraft

[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.