Pokopom - KrossX/Pokopom GitHub Wiki

A XInput input plugin for PSX emulators, PCSX2, nullDC 1.0.4, Chankast 0.25 and many N64 emulators.

Getting Started

If you're on Windows, you can simply download a zip file containing pre-compiled binaries from the Downloads section. Unzip and place the DLL file it contains into the plugins folder of the emulator. Note that some emulators do not support input plugins, such as ePSXe. However, this emulator in particular can be made to support input plugins by using Shalma's Shark tool.

Building from Source

If you're using Visual Studio and don't want to bother with CMake, you can simply clone the repository and build the Visual Studio solution included in the repository root.

To build the project from source using CMake, make sure at least CMake version 3.5 is installed on your system. Then, clone the repository and create a build directory:

git clone https://github.com/KrossX/Pokopom && cd Pokopom && mkdir build

Switch to the build directory and generate the project files using CMake:

cd build && cmake ..

If you're on Windows and using Visual Studio, a Visual Studio solution file will be created in the build directory. Open this solution with Visual Studio and click Build->Build Solution. Copy the created padPokopom.dll file from the Debug folder to the plugins folder of the emulator.

If you're using Linux, simply type make and copy the libpadPokopom.so file to the plugins folder of the emulator.

Features

Playstation

Dreamcast

Nintendo 64

NAOMI

Limitations

Linux

  • Only Xbox 360 controllers are currently supported.
  • Plugin configuration is handled by a .ini file created on the first run, rather than a GUI as in Windows.

Settings

  • Prevent Screensaver: Sets the requirement to keep the system and display active, and also a bogus mouse event to actually prevent the screensaver.
  • XInput Controller: Sets which plugged X360 controller will work for that emulated controller.
  • Axis remapping and inverting: As it seems, you can remap your sticks as you want and tick the checkbox to invert it.
  • Default Mode: Might be needed for some PSX games, simply sets the default mode for startup.
  • Guitar: Makes the PCSX2 side emulate a PS2 Guitar instead of a DualShock2 controller. (I think it needs emu restart)
  • Green Analog: Uses the green analog (dual analog) instead of the normal red analog.
  • Multitap: Enables multitap. Mode1: port1-pad1/2/3/4 port2-disabled, mode2: port1-pad1 port2-pad1/2/3.
  • Rumble: Controls the strength for rumble. The N64 rumble however, can only be reduced since it doesn't have levels other than ON/OFF.
  • Deadzone: Sets input as neutral/centered when the movement is under the percent specified.
  • Anti Deadzone: Tries to overcome the game's deadzone. Super Idea Graph
  • Linearity: Can make small movement even smaller (positive value), or greater (negative value). For an idea, check the Linearity Graph image.

Hidden Settings

  • This options ain't on the GUI, but are on the INI file:
  • Pressure: Sets the speed (increment) at which PS2's pseudo pressure works. A value greater than 5 is required to avoid an issue with Fatal Frame.
  • ExtentionThreshold: Sets the radius of the "perfect circle". It's the small circle in the X360 Analog Data graph. Only to be used if the range extension doesn't seem to be working (corners not reached), then just reduce it little by little.

Old changelog

  • 1.12 - 2012-03-09

    • Fixed/improved the analog toggle key.
  • 1.11 - 2012-02-23

    • After gathering some analog stick data I saw the corner cases where always beyond the ideal circle, so I now extend only when that happens. This means, almost no range is lost in order to reach the corners. =D
    • Also an extra check to stop vibration on pause.
  • 1.10 - 2012-02-23

    • Some guesswork at command 0x40, and some bugfix at command 0x4F. That fixed some games not detecting the DualShock2 controller.
    • Also, fixed the deadzone which was bugged.
  • 1.9 - 2012-02-20

  • 1.8 - 2012-02-19

    • vibration effects will last at least 150ms now to compensate for motor delay. Makes some instant effects noticeable.
    • And was about time to change the version number. XD
  • 1.7d - 2012-02-18

    • Follow up on the previous change, now the Scroll Lock led will be on if either pad is with the analog mode on. If you try to switch it off but cannot, that's because the pad is on lock mode.
  • 1.7c - 2012-02-15

    • Changed the Space key for analog toggle, to the Scroll Lock key.
  • 1.7b - 2011-12-26

    • Fixed a bunch of bugs from the new "features".
    • Changed DualShock ID for the one used on DualShock2. Ape Escape, wouldn't recognize the controller as a valid DualShock otherwise. =S
    • Default to Xinput#2 device for second pad.
  • 1.7 - 2011-12-26

    • Added GUI and settings are saved to an INI file. The file is saved besides the plugin for PSX emulators and on the INI folder for PCSX2.
  • 1.6 - 2011-08-12

    • Some internal changes to DualShock. Also, now when in digital mode the analog sticks can be used as dpad and face buttons respectively.
  • 1.5 - 2011-08-11

    • Fixed a DualShock2 bug that caused Ar Tonelico to crash on startup.
  • 1.4 - 2011-08-09

    • Fixed tons of bugs on DualShock2, that solves many issues. Thus, it no longer requires the previous FF12 hack either.
    • Added "pressure" emulation, dunno if it works well though.
    • Added Hot plug/unplug, which seems to work alright.
  • 1.3 - 2011-08-09

    • Added DualShock2 support for PCSX2 and other whatnots for that emu. Also, added some vibration stuff from Harakiri's update.
    • There's also a hacky auto-analog to avoid some issue with FF12. It kept reverting back to digital mode.
    • Changed analog/digital toggle to the spacebar.
  • 1.2 - 2011-08-08

  • 1.1 - 2011-08-08

    • Minor changes to rumble, added readme on package. Now it stops the rumbling on close.
  • 1.0 - 2011-08-06

    • Initial release.