Integration

Bliss-Box API (Application programming interface)

 

The 4-play and the Gamer-Pro products have both a software and hardware Interface that can be used to communicate with the controller at both high and low levels. USB is a great solution but it does have limitations. Also the HID USB driver is even more limited in the sense of features vs a driver based USB implementation. Bliss-Box products use HID for convenience as dealing with drivers was never any fun but also has an API for advanced features.  The mechanism for the API is in two parts (Software and hardware).

 

The Software interface uses USB control transfers. This does still rely on the USB HID driver but allows data to be transferred that HID does not allow. For example but not limited to; Pressure buttons, LCD and memory pack data exchange, faster poll rates, and direct native talk to the controller. Bliss-Box has developed a software application that shows how this works. The application is an open source application that demos most all the API has to offer.  The source can be found here. And the application can be downloaded  here.

For the documented API see the following link.

List of projects using the API (If you would like to be added contact us)
https://www.retroarch.com/
http://lusspace.free.fr/ 

 

Low Level API

The source code is available for this interface and is released under GPL v2 found here.

( Only available on 3.0)
The LLAPI  uses the already available USB lines. To invoke the API you simply bring both d- and d+ high with external or internal pull ups.  This condition will not cause any abnormal condition to existing USB hardware so it’s safe to use in both cases. When the Gamer-Pro or 4-Play detects the condition, it will go in to bridge mode. So this can be asserted via software or hardware in your connecting  device.

Once in bridge mode other devices using this protocol can send and receive data.

Timing Chart

 

List of projects using the LLAPI (If you would like to be added contact us).
Mister LLAPI –  A core specific driver that communicates with Bliss-Box products.
BlisSTer – Bliss-B0x’s very own MiSter add-on.

 

Current support offered in the Bliss-Box adapters.

Command function notes
0x01 GET_CONTROLLER_STATUS
0x00 CONTROLLER_POLL
0x02 GET_PRESSURE_STATUS
0x11 RUBMLE_CONST_START_FROM_PARMS Must set parms first
0x12 RUBMLE_CONST_END
0x14 RUBMLE_SINE_START_FROM_PARMS Must set parms first
0x18 RUBMLE_SINE_END
0x1A RUBMLE_CONST_JOLT
0x1B RUBMLE_SINE_JOLT
0x20 SET_MODES Bitmask of modes link.
0x21 GET_MODES Bitmask of modes link.
0x22 SET_MAPPER Followed by 24 bytes each a button
0x23 SET_PLAYER sets player ID

 

CONTROLLER_POLL byte 0 return info.

type notes
0x00 ERROR_NODATA
0x01-254 NO_ERROR Type of controller returned
0x03 ERROR_AP_NO_REPORT Auto pause returned

 

ERRORS type notes
0xFF ERROR_NO_COMMAND  No command was read
0xF0 ERROR_NO_ERROR  No error
0xF1 ERROR_UNKNOWN_COMMAND  Command not understood
0xF2 reserved
0xF3 reserved
0xF4 reserved
0xF5 reserved
0xF6 reserved
0xF7 reserved
0xF8 reserved
0xF9 reserved

 

Send / Set function parms (parms follow command)
0x1C BRIDGE_RUBMLE_PARMS (rumbleLevel, rumbleLoop