Skip to content

joypad-ai/joypad-tester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

120 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Joypad Tester

Joypad Tester

Open-Source Controller Test ROMs for Retro Game Consoles

Drop a single ROM on a flash cart and inspect every controller,
accessory, and protocol quirk the console can speak to.

Downloads License CI Status Discord


A collection of homebrew controller test ROMs across game consoles. Each console gets its own self-contained subdirectory with its own toolchain and build.

Consoles

Console Status Path License
3DO released 3do/ MIT
Game Boy Advance released gba/ MIT
GameCube released gcn/ zlib
Nintendo 64 released n64/ MIT
PC Engine released pce/ MIT
Xbox released xbox/ MIT
Dreamcast released dc/ MIT
NUON alpha nuon/ MIT
PlayStation planned
PlayStation 2 planned
NES planned
SNES planned
Xbox 360 planned
PlayStation 3 planned

Status legend: released = stable, no known issues. beta = nearly complete, may have rough edges or unreleased polish. alpha = boots but core functionality still in progress. planned = on the roadmap, not started.

Subdirs use short codenames (3do, gba, gcn, pce, dc, n64, nuon, xbox, future psx / ps2 / nes / snes / x360 / ps3) matching homebrew-community conventions. Release tags follow the same prefix: <codename>-v<semver>.

Adding a console? PORTING.md is the full port spec — the shared visual system, feature shape, and device-detection philosophy every tester follows so they feel like one set. The whole process is also driven by the /joypad-port skill.

Acknowledgements

Each console app has its own lineage. As more consoles join, this list grows.

Console Origin / inspiration
GameCube Derived from corenting/GC-Controller-Test (zlib). Multi-port layout and accessory probe flow modeled after meeq/JoypadTest-N64. GC keyboard wire format and scancode table come from the joypad-os firmware (src/lib/joybus-pio).
Game Boy Advance Joybus handshake + main loop from Doridian/Joybus-PIO (MIT). Eyes overlay ported from joypad-os's eyes_anim. Mode-4 page-flipped screensaver matches the GameCube tester's logo + color cycle. Two ROM variants from one source tree: joypad_mb.gba (eyes, for joypad-os submodule consumers) and tester_mb.gba (Doridian + on-GBA console).
PC Engine Baseline from dshadoff/PCE_Mouse_Test (MIT). Detects 2-button / 6-button pads and the PC Engine mouse, including multitap support. Built with uli/huc (HuC) pinned in a Docker image we maintain.
3DO Fresh implementation against trapexit/3do-devkit (ISC). Detects every PBUS device on the daisy chain (Pad, Mouse, Stick, LightGun, Arcade SillyPad, Keyboard) by talking directly to the Portfolio event broker. Bundles a rebuilt broker daemon from trapexit/portfolio_os with every driverlet static-linked in, plus a new SillyPadDriver.c for the 0xC0 silly-pad and a finished KeyboardDriver.c (PR open upstream). Conceptual ancestor: Charles Doty (RasterSoft)'s 3DO Controller Test Multi (2016). Pinned devkit commit lives in 3do/buildtools/Dockerfile.
Dreamcast Fresh implementation against KallistiOS (BSD-style). Reads every maple-bus device class — controllers, mice, keyboards, light guns, plus per-port slot peripherals (VMU, Purupuru, microphone). Also hosts a built-in VMU icon editor mode (v0.2+) ported from RobertDaleSmith/vmu-icon-maker (MIT). First console in the repo to ship the mode-switching scaffold (Options menu via Start+Down) that future testers can adopt. Pinned KOS commit lives in dc/buildtools/Dockerfile.
Nintendo 64 Fork of meeq/JoypadTest-N64 (public domain) on top of LibDragon trunk (also public domain). Detects N64 pads, GameCube pads (passive 3-pin adapter), the N64 Mouse, the Voice Recognition Unit, Rumble / Controller / Transfer Pak, Bio Sensor (live BPM streaming), Snap Station (protocol exerciser), and GBA-in-JOYBUS-mode via the GameCube / GBA link cable — with Kawasedo multiboot ported from gcn/ppc/gba.c so the same tester_mb.gba payload the GameCube tester boots will boot a GBA over the N64 controller port. Secondary modes (Controller Pak browser, GB Camera viewer, Snap Station) follow the dc/ Options-menu scaffold.

Originating copyrights are preserved in each console's source headers.

License

Top-level repo scaffolding (CI, build infra, this README): MIT. Each console subdir carries its own LICENSE.md matching its upstream origin — see the License column of the Consoles table above.

About

Multi-console homebrew controller test ROMs (GameCube/Wii, N64-via-adapter, more to come)

Resources

License

Stars

15 stars

Watchers

0 watching

Forks

Sponsor this project

 

Contributors