mirror of
https://github.com/libretro/parallel-ps2.git
synced 2026-11-09 11:31:34 -10:00
A Python 1 game in Perfect Pool's I/O mode now gets the two USB devices the cabinet has, in place of whatever the ports are set to: a trackball on port 0 and the table camera on port 1. The trackball is the HID mouse moved as Reliquary moves it, half the pointer's motion with the half counts carried over and none while the left button is held; the first pad's left stick rolls it as well, for players without a mouse. The camera (usb-perfect-pool/ppcam.c, C89, after Reliquary's) is the Cypress EZ-USB FX the game downloads its 8051 firmware into: vendor request 0xa0 reads and writes the firmware RAM, letting the reset latch go with firmware in brings it back on the bus, and its endpoints answer with nothing seen. The camera's 64 KiB of firmware RAM rides in the USB savestate block past the port slots, only for a session with the camera, so the block of every other game keeps its size. tests/usbstate checks both devices, the trackball's scaling and the camera's RAM through a state and a bus reset.