

Anyone else losing MvC2 dashes to a stray jab on PC? Found out exactly why — and how to fix it. Side-by-side video.
NOBD Zero — dual-MCU flagship fightstick PCB. 8 kHz USB target, native Dreamcast, hardware Ethernet for LAN. First prototypes in fab.
Hey all, first time posting. Cloud engineer, came back to MvC2 after 15 years, kept dropping two-button inputs. Spent the last year figuring out why and building the most over-engineered fightstick PCB I could design around the answer.
NOBD Zero — the board
- Dual-MCU · RP2040 + STM32F723. RP2040 handles deterministic input scanning + Maple Bus PIO + retro. STM32F723 (USB High-Speed) does nothing but talk to the host. 1000 Hz is the silicon ceiling of RP2040-only boards — we broke it by adding a chip that can.
- 8000 Hz USB High-Speed (target) — 0.125 ms reports, 8× standard.
- Native Dreamcast over Maple Bus — bit-banged on RP2040 PIO, no adapter. Retro jack uses the standard Brook retro-cable pinout, so your existing Brook DC/NES/SNES cables drop straight in. Dreamcast ships native; more retro arrives in firmware.
- Hardware Ethernet (W5500) — first fightstick PCB built around a real network stack, not an RJ45 reused as a console cable. Enables LAN Mode (planned): companion app, virtual controller fed over Ethernet, target ~25 µs press-to-game — equivalent of ~40 kHz polling. Deterministic, not faster on average; faster in the trades that matter.
- Brook 20-pin + screw terminals — existing stick harnesses drop in.
- Two firmware modes — Sync & Raw. Sync groups your presses on a tunable window (default 5 ms); Raw runs full speed. Fast when you want it, synced when you need it.
~50 more parts than the GP2040-CE Advanced Breakout. 4-layer, controlled impedance, 96.3 × 45.31 mm.
Full spec deep-dive -> https://zero.nobd.net
Why it exists
The classics read your held buttons once per frame (~16.67 ms) and act on whatever's in that snapshot — no input buffer, no cross-frame OR. We traced this through the community's open marvelous2 disassembly of MvC2 (mountainmanjed). If your finger gap straddles the frame, the engine commits the lone first button and locks out the two-button command on the next frame — pre-emption. Modern fighters fixed this in software (input buffers). The classics can't be patched. The only place left is between your hands and the game.
What already ships — open source, free, runs today
- NOBD Desktop — drag-in MvC2 PC fix, two files, no installer. Includes a Finger Gap Tester for measuring your own timing. → https://github.com/t3chnicallyinclined/nobd-desktop
- NOBD firmware — open GP2040-CE fork, flashes onto any GP2040 board you already own. → https://github.com/t3chnicallyinclined/GP2040-CE-NOBD
The firmware is open and stays that way. The Zero board hardware isn't open-sourced yet (on the roadmap). You don't have to buy our board to get the fix.
Status
First prototypes are in fab. The schematic and layout are done; protos are what we measure before locking v1 production. Specs above are targets until I've put them on a scope and submitted numbers to inputlag.science.
Asks
- Feedback — if you've laid out fightstick PCBs or routed USB HS / Ethernet, I'd love a second pair of eyes before v1 production.
- Try NOBD Desktop if you play MvC2 PC. Free, open source.
- Waitlist if you want to follow the build — https://zero.nobd.net. No money, no preorder.
- Discord — https://discord.gg/x3BAz6XnwZ.
Happy to answer anything in comments.
Credits: marvelous2 (mountainmanjed), GP2040-CE (OpenStickCommunity), flycast + KallistiOS, VodkaGobalsky (independent measurement). None of this happens without them.