The BULLET SYSTEM STICK
In August 2022, I built my greatest arcade stick, the BULLET SYSTEM STICK, and it quickly became my favorite of the sticks I’ve put together over the many years I’ve been doing this. It’s a big beast of a stick, a solid box of metal and wires and controls, and my personal homage to arcade panel design. It’s also something I’ve tinkered with since, somewhat compromising one part of the design in favor of another.
Getting Into It
First off, the basics. Current state in bold, older elements in sub-bullets:
- AllFightSticks 18” HitStick-W Shiokenstar chassis
- Seimitsu LSX-NOBI-01 Pro Edition lever
- Crown 30mm/24mm SDB-202 buttons (face), Sanwa OSBF-24 buttons (top)
- TheTrain’s RP2040 Advanced Breakout Board running GP2040-CE
- This used to be a Brook Universal Fighting Board and Brook Retro Board in a stacked layout, they were replaced with a board running the super-cool GP2040-CE project’s firmware.
- On/Off/On rocker switch for LS/DP/RS selection, On/Off rocker switch for Function key
- The On/Off rocker switch used to change SOCD cleaner mode (last input wins vs. “standard” L/R neutral, up priority) on the Brook, but that is a hotkey in GP2040-CE, so now the switch serves to enable/disable hotkeys. (More on that later.)
- Art designed by me, printed by Focus Attack
- There’s a Brook logo despite me not using their boards anymore, oops.
- Though I use their Wingman products now, so maybe it still kinda works.
How It’s Changed
The photos to the right are all from the original September 2022 build of the stick, with the Brook components listed above. In May 2023, I started contributing to the GP2040-CE project thanks to owning a different controller running it, which quickly turned into me buying a breakout board, intending to put it into a new stick. However, when assembling that new stick, I was already so enamored with the board that I decided to put it into my main stick instead.
I kept the etherCON connection point, despite the new board taking USB-C instead of RJ45 like the Retro Board, entirely because it looked cool, so I wired up a USB cable compatible with my existing cables and soldered the USB header onto the RP2040 breakout board in order to not change that. The etherCON connection is just so damn satisfying.
The wiring was more complex in the original build, as certain components had to be wired in parallel to both Brook boards in order for them to function on either. With switching to one board, that is no longer a concern; instead, I wired separate button harnesses for the directional buttons in order to assign them to the option headers on RP2040 board.
GP2040-CE
The highlight of this arcade stick, aside from the design that I am obviously proud of, is the GP2040-CE firmware that powers it. It features sub-millisecond response times, targets a number of boards based on the Raspberry Pi RP2040 microcontroller, targets many prominent consoles/devices, and is MIT-licensed. It’s pretty cool, and yes, I am a contributor.
Some of the neat features of the firmware, and other hacks I’m able to accomplish:
- The five face directional buttons (two up) are configured as “Dual Directional Inputs”, configured to the dpad and distinct from the LS/DP/RS switch, meaning that unlike on a Brook, they can register independently of the setting and value of the lever’s directions. (I had to fix some issues to make this happen.)
- Aforementioned “Function key” is a feature I haven’t been able to merge yet, but it allows for the hotkey shortcuts to not interfere with host-level shortcuts; without it e.g. the GP2040-CE’s Start + Select + Up shortcut doesn’t get sent to the Super Nt, which is looking for the same combo to reset the console.
- Runtime hotkey to change the SOCD cleaner between neutral, up priority, and last input wins means I don’t have to fiddle with the rocker switch and power cycle the stick to change modes.
So now I can target most of the consoles and devices I care about (SNES, NES, and PS5 all need adapters, no big deal) with my primary stick, and get an awesome amount of open source customization and community focus at the same time! And yes, I do not fear the CapCops — I plan on adding more hacks and interesting tricks as time goes on.
I really recommend everyone interested in the hobby check out the GP2040-CE project (linked here one last time) — they’re doing a great, and truly open, thing for the community, and soon the breakout board will also be open sourced for anyone to fabricate. First class arcade sticks for all!
The Debut and Future
This stick will be making its first appearance at COMBO BREAKER 2023, which as it turns out, I am exceptionally excited for. Beyond that, I don’t really foresee changing this stick again, though who knows what will come in the future. Maybe I’ll come up with some future GP2040-CE enhancement that will make me change the wiring or button panel or yada yada yada…