Skip to content

Casio Loopy Output Interface

Emulates a Casio Loopy controller. Supports up to 4 players. This output interface is experimental -- the protocol is partially implemented with limited hardware testing.

Protocol

  • Wire protocol: Custom serial protocol using row/bit matrix scanning
  • PIO program: loopy.pio
  • Core: Runs on Core 1 (timing-critical)

The Loopy uses a matrix scanning approach with 6 row lines (active-low from console) and 8 bit lines (active-low output from controller). The PIO monitors row lines and presents the appropriate bit pattern for each row.

GPIO Pins

KB2040 (default):

Signal GPIO Notes
ROW0 GP26 Row scan input (consecutive group)
ROW1 GP27
ROW2 GP28
ROW3 GP29 GP20 on Pico W (GP29 used by CYW43)
ROW4 GP18
ROW5 GP19
BIT0-BIT7 GP2-GP9 Data output (consecutive 8-bit group)

Player Support

  • Max players: 4

Button Mapping

JP_BUTTON_* Loopy Button
JP_BUTTON_B1 B
JP_BUTTON_B2 A
JP_BUTTON_B3 C
JP_BUTTON_B4 D
JP_BUTTON_S1 Select
JP_BUTTON_S2 Start
JP_BUTTON_DU/DD/DL/DR D-pad

Analog Mapping

Loopy controllers are fully digital. No analog axes.

Feedback

Casio Loopy provides no feedback channel.

Profiles

No console-specific profiles are defined. Buttons pass through unchanged.

Development Status

  • Basic protocol implemented via PIO
  • Limited testing with actual Casio Loopy hardware
  • Some timing issues may exist
  • Community contributions welcome

The Casio Loopy (1995) was a Japan-only console with approximately 10 game titles. Documentation of the controller protocol is sparse.

Apps Using This Output

App Description
usb2loopy USB/BT controllers to Casio Loopy