This is the Analog psx library, which grew out of the need to read analog values from a wireless PSX controller, it can also only read the digital values if necessary.
Get the newer version that has some minor updates to fix compatibility with newer tool chains as well as fixed button mappings, (I had them backwards before) https://github.com/kiram9/Arduino_PSX_Analog
A few notes for using this: Most modern PSX controllers like to run off 3.3V and communicate with 3.3V. The arduino is a 5V device so powering a PSX controller (especially wireless receiver boards) from 5V often makes them not very happy. If you power the board with 3.3V, you should put some 1K resistors between the PSX and the arduino on the data lines so that you make them play happily together. I found that this fixes some communication issues with some boards.
This current version bit bangs the IO for the PSX controller, sometimes another interrupt fires and can mess up timing for some controllers who are used to strict SPI timing. A future implementation could use SPI hardware to communicate with the controller which can improve communication reliability and increase the number of supported controllers... There is a little thing i threw together to see if the hardware spi generator works with some remotes. so far it seems to :D I should integrate this into the proper library sometime. Remember if you are going to play with this you can only use the pins attached to the hardware SPI generator. https://github.com/kiram9/Arduino_PSX_Analog
Comes with demo code