# RetroArch and Gamepad



## VaderShark (Dec 18, 2020)

Hi everyone, I have installed retroarch via ports and am trying to use both my DS4 and F310. I have noticed, recently, that my F310 will not work out of the box anywhere and is incorrectly mapped, so antimicro is not even an option.

With my DS4, I have luck using mednafen and mupen64plus configured directly, but when using retroarch I can't seem to be able to map anything. I have tried antimicro, but even when "mapped" it fails to work properly in menus and games.


```
Dec 18 15:33:56 bdesk kernel: ugen0.4: <Sony Computer Entertainment Wireless Controller> at usbus0
Dec 18 15:33:56 bdesk kernel: uhid0 on uhub2
Dec 18 15:33:56 bdesk kernel: uhid0: <Sony Computer Entertainment Wireless Controller, class 0/0, rev 2.00/1.00, addr 6> on usbus0
```

I am not sure how to proceed so looking for help from anyone who has done this before or can recommend a controller that surely works out of the box, which I expected at least the F310 to be able to do so.

If this is not enough information, please let me know what else I need to do to get the logs you need to see, thanks!

*edit*:

I am waiting on a response from the sdl20 package maintainer, but I think my sdl is missing hidapi and udev support. So I enabled it in ports, but the compilation is failing for me because it looks like I am missing a library/c files.


When I try to compile sdl20 with HIDAPI enabled I run into a bad C++ code
error as logged by poudriere:

`/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:101:2:
error: Need a hid.c for this platform!
#error Need a hid.c for this platform!
^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:305:5:
error: type name requires a specifier or qualifier
    F(hid_write);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:305:7:
error: a parameter list without types is only allowed in a function
definition
    F(hid_write);
      ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:305:5:
error: expected ';' at end of declaration list
    F(hid_write);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:24:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
                       ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:306:5:
error: type name requires a specifier or qualifier
    F(hid_read_timeout);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:306:7:
error: a parameter list without types is only allowed in a function
definition
    F(hid_read_timeout);
      ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:306:5:
error:
duplicate member 'typeof'
    F(hid_read_timeout);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:305:5:
note: previous declaration is here
    F(hid_write);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:306:5:
error: expected ';' at end of declaration list
    F(hid_read_timeout);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:24:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
                       ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:307:5:
error: type name requires a specifier or qualifier
    F(hid_read);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:307:7:
error: a parameter list without types is only allowed in a function
definition
    F(hid_read);
      ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:307:5:
error: duplicate member 'typeof'
    F(hid_read);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:305:5:
note: previous declaration is here
    F(hid_write);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:307:5:
error: expected ';' at end of declaration list
    F(hid_read);
    ^

/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:24:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
                       ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:308:5:
error: type name requires a specifier or qualifier
    F(hid_set_nonblocking);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:308:7:
error: a parameter list without types is only allowed in a function
definition
    F(hid_set_nonblocking);
      ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:308:5:
error: duplicate member 'typeof'
    F(hid_set_nonblocking);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:305:5:
note: previous declaration is here
    F(hid_write);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:308:5:
error: expected ';' at end of declaration list
    F(hid_set_nonblocking);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:24:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
                       ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:309:5:
error: type name requires a specifier or qualifier
    F(hid_send_feature_report);
    ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
             ^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:309:7:
error: a parameter list without types is only allowed in a function

definition
F(hid_send_feature_report);
^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:309:5:
error: duplicate member 'typeof'
F(hid_send_feature_report);
^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:305:5:
note: previous declaration is here
F(hid_write);
^
/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12/src/hidapi/SDL_hidapi.c:304:14:
note: expanded from macro 'F'
#define F(x) typeof(x) *x
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
gmake[1]: *** [Makefile:722: build/SDL_hidapi.lo] Error 1
gmake[1]: Leaving directory '/wrkdirs/usr/ports/devel/sdl20/work/SDL2-2.0.12'
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/sdl20
=>> Cleaning up wrkdir
===> Cleaning for sdl2-2.0.12_3
build of devel/sdl20 | sdl2-2.0.12_3 ended at Sat Dec 19 19:00:09 EST 2020
build time: 00:00:43
!!! build failure encountered !!!`


----------

