Wiznet makers

Sunny_

Published August 12, 2026 ©

156 UCC

3 WCC

0 VAR

0 Contests

0 Followers

0 Following

Original Link

GP2040-CE NOBD

NOBD keeps your inputs honest and your intent intact. Execution is back. No more fighting a broken pipeline between your hands and the game.

COMPONENTS
PROJECT DESCRIPTION

GP2040-CE NOBD: 격투게임의 동시 버튼 입력을 개선하는 컨트롤러 펌웨어

프로젝트 소개

GP2040-CE NOBD는 오픈소스 게임 컨트롤러 펌웨어인 GP2040-CE를 기반으로 개발된 프로젝트입니다.

이 프로젝트는 특히 Marvel vs. Capcom 2(MvC2)와 같은 격투게임에서 발생할 수 있는 동시 버튼 입력 문제를 해결하기 위해 만들어졌습니다.

최근의 USB 게임 컨트롤러는 일반적으로 1000Hz 수준의 높은 Polling Rate를 사용합니다. 1000Hz Polling에서는 컨트롤러 상태가 약 1ms마다 PC나 게임기로 전달됩니다.

문제는 사람이 두 개의 버튼을 동시에 누르려고 해도 실제 물리적인 버튼 입력 시점에는 몇 ms 정도의 차이가 발생할 수 있다는 점입니다.

예를 들어 플레이어는 두 개의 버튼을 동시에 눌렀다고 생각하지만 실제 입력은 다음과 같이 발생할 수 있습니다.

0 ms : Button A 입력

3 ms : Button B 입력

1000Hz USB Polling 환경에서는 이 두 입력이 서로 다른 USB Report에 포함될 수 있습니다.

즉, 게임에서는 의도했던

[A + B]

가 아니라

[A] → [A + B]

형태로 입력을 받을 수 있습니다.

MvC2처럼 두 개의 버튼이 동시에 입력되어야 특정 기술이 동작하는 게임에서는 이러한 몇 ms의 차이로 인해 의도하지 않은 단일 공격이 먼저 실행될 수 있습니다.

GP2040-CE NOBD는 이러한 문제를 해결하기 위해 NOBD Sync Window 기능을 제공합니다.


NOBD Sync Window란?

NOBD의 핵심 기능은 두 개의 버튼이 매우 짧은 시간 차이로 입력되었을 때 이를 하나의 동시 입력으로 처리할 수 있도록 입력 타이밍을 조정하는 것입니다.

예를 들어 Sync Window가 기본값인 5ms로 설정되어 있다고 가정해 보겠습니다.

Button A 입력

최대 5ms 동안 추가 입력 확인

Button B 입력

A + B를 함께 전송

즉 첫 번째 버튼이 눌렸을 때 바로 입력을 전달하지 않고 아주 짧은 시간 동안 추가 버튼 입력이 발생하는지 확인합니다.

설정된 시간 안에 두 번째 버튼이 입력되면 두 버튼을 같은 출력 프레임에 포함시켜 전달합니다.

중요한 점은 NOBD가 새로운 입력을 생성하거나 하나의 버튼을 여러 버튼 입력으로 변환하는 기능은 아니라는 것입니다.

사용자가 실제로 입력한 두 버튼의 전송 시점을 조정해 동시 입력으로 인식될 가능성을 높이는 방식입니다.

기본 Sync Window는 5ms이며 GP2040-CE Web Configurator를 통해 값을 변경할 수 있습니다.


왜 격투게임에서 중요한가?

이 프로젝트는 특히 Marvel vs. Capcom 2를 중심으로 개발되었습니다.

MvC2에서는 Dash와 같은 동작을 수행할 때 두 개의 Punch 버튼 또는 두 개의 Kick 버튼을 동시에 입력해야 합니다.

하지만 실제 두 버튼 입력 사이에 몇 ms의 차이가 생기면 게임에서 첫 번째 버튼을 단일 공격으로 먼저 처리하는 상황이 발생할 수 있습니다.

예를 들어 플레이어는

LP + MP

를 동시에 눌러 Dash를 실행하려 했지만 실제로는

LP

가 먼저 입력되고 이후에

LP + MP

가 입력되는 형태가 될 수 있습니다.

결과적으로 Dash 대신 일반 공격이 발생할 수 있습니다.

NOBD는 이러한 물리적인 손가락 입력 차이를 보정해 플레이어가 의도한 동시 입력이 게임에 보다 안정적으로 전달될 수 있도록 합니다.

현재 프로젝트는 MvC2를 중심으로 테스트되었지만, 비슷한 방식의 동시 버튼 입력을 사용하는 다른 격투게임에서도 활용 가능성이 있습니다.

예를 들면 다음과 같은 게임들이 있습니다.

Marvel vs. Capcom 시리즈

Capcom vs. SNK 2

The King of Fighters 시리즈

기타 2개 이상의 버튼 동시 입력을 사용하는 격투게임


주요 기능

기능설명
Base FirmwareGP2040-CE v0.7.12 기반
주요 기능NOBD 동시 입력 Synchronization
기본 Sync Window5ms
설정 방법GP2040-CE Web UI
MCU 플랫폼RP2040 / Raspberry Pi Pico 계열
Pico 2 지원지원
Dreamcast 지원Native Maple Bus Controller Output
VMU 지원VMU Save Import / Export 및 관리
WIZnet 지원W6100-EVB-Pico2 Build Configuration 포함
라이선스Open Source

Dreamcast Native 지원

GP2040-CE NOBD의 또 다른 특징은 Sega Dreamcast의 Maple Bus를 직접 지원한다는 점입니다.

일반적으로 USB 기반 Fight Stick을 Dreamcast에 연결하려면 별도의 USB-to-Dreamcast 어댑터가 필요합니다.

하지만 GP2040-CE NOBD는 Maple Bus를 직접 구현하여 Dreamcast Controller로 동작할 수 있도록 개발되고 있습니다.

현재 프로젝트에서는 다음과 같은 기능을 지원합니다.

버튼 입력

D-Pad

Trigger

VMU Save / Load

Web UI 기반 VMU 파일 관리

이를 통해 프로젝트는 단순한 USB 입력 타이밍 개선 펌웨어를 넘어, 현대적인 USB 환경과 레트로 게임 콘솔을 동시에 지원하는 Fight Stick Firmware로 확장되고 있습니다.


WIZnet W6100과의 연결

WIZnet 관점에서 흥미로운 부분은 프로젝트 저장소에 W6100-EVB-Pico2를 위한 별도의 Build Configuration이 포함되어 있다는 점입니다.

프로젝트에서는 다음과 같은 설정으로 W6100-EVB-Pico2용 Firmware를 빌드할 수 있습니다.

GP2040_BOARDCONFIG=W6100EVBPico2

PICO_BOARD=pico2

즉, RP2350 기반의 Pico 2 환경과 WIZnet W6100 Ethernet Controller를 결합한 Hardware Platform에서 GP2040-CE NOBD를 사용할 수 있도록 구성되어 있습니다.

다만 현재 프로젝트에서 NOBD 기능 자체가 Ethernet을 이용해 동작하는 것은 아닙니다.

현재 NOBD의 핵심 기능은 Controller 내부에서 버튼 입력 타이밍을 처리한 뒤 USB 또는 Dreamcast Maple Bus를 통해 입력을 전달하는 것입니다.

따라서 현재 W6100 지원은 NOBD의 핵심 기능이라기보다는 향후 Ethernet 기반 Controller 기능을 개발하거나 실험하기 위한 Hardware Development Platform의 성격에 가깝습니다.


왜 이 프로젝트에서 Ethernet이 흥미로운가?

일반적인 Game Controller는 대부분 USB를 사용합니다.

하지만 이 프로젝트 개발자는 향후 Fight Stick Architecture에서 LAN 기반 Controller Mode도 실험하고 있습니다.

이 경우 Controller 구조는 다음과 같은 형태로 확장될 수 있습니다.

Button Input

MCU

Ethernet

PC Application / Input Processing System

이 구조에서는 Ethernet이 단순한 네트워크 연결 수단이 아니라 게임 컨트롤러의 실시간 입력을 전달하는 새로운 Interface로 사용될 수 있습니다.

이러한 환경은 기존의 IoT, Sensor, Industrial Networking 중심의 Ethernet Application과는 상당히 다른 사용 사례입니다.

특히 Game Controller에서는 단순한 평균 Latency뿐 아니라 다음과 같은 요소가 중요합니다.

  • Input Latency
  • Jitter
  • Packet Processing Time
  • Input Timing Consistency
  • Polling Interval
  • MCU Processing Load

따라서 Ethernet Controller를 게임 입력 장치에 적용하는 것은 WIZnet의 Hardware Ethernet 기술을 새로운 영역에서 실험할 수 있는 흥미로운 사례가 될 수 있습니다.


W6100-EVB-Pico2를 활용한 개발 가능성

현재 프로젝트에 W6100-EVB-Pico2 Build Configuration이 존재하기 때문에 다음과 같은 개발 및 테스트 환경을 구성할 수 있습니다.

RP2350 / Pico 2

+

W6100

+

GP2040-CE NOBD

이를 기반으로 다음과 같은 실험을 진행할 수 있습니다.

  • Low-Latency Controller Input
  • Ethernet 기반 Controller Communication
  • USB와 Ethernet의 Latency 비교
  • Input Jitter 측정
  • High-Frequency Button Input 처리
  • PC와의 실시간 Ethernet Communication
  • LAN 기반 Game Controller Prototype

즉 완전히 새로운 Firmware를 처음부터 개발하지 않고도 기존 GP2040-CE 생태계를 기반으로 Ethernet Controller 관련 실험을 확장할 수 있다는 장점이 있습니다.


현재 구현된 기능과 향후 개발 방향

이 프로젝트에서는 현재 사용할 수 있는 기능과 향후 개발 목표를 구분해서 볼 필요가 있습니다.

현재 구현된 기능

GP2040-CE 기반 NOBD Firmware

Configurable NOBD Sync Window

RP2040 / Pico 계열 Hardware 지원

Pico 2 지원

Dreamcast Native Maple Bus Output

VMU 관리 기능

W6100-EVB-Pico2용 Build Configuration

향후 개발 방향

Higher Speed Controller Hardware

Higher USB Polling Rate

Ethernet 기반 LAN Input Mode

추가 Native Console Interface

Controller Latency 및 Jitter 최적화

특히 Ethernet 기반 Controller 기능은 현재 NOBD의 핵심 동작이라기보다는 프로젝트가 앞으로 확장하려는 방향 중 하나로 보는 것이 적절합니다.


프로젝트의 의미

GP2040-CE NOBD는 단순히 Controller의 Latency를 낮추는 프로젝트와는 조금 다른 접근을 하고 있습니다.

이 프로젝트에서 중요하게 보는 것은 최소 Latency뿐 아니라 Input Timing Consistency입니다.

사람이 두 개의 버튼을 동시에 누르려고 해도 실제 입력에는 몇 ms 정도의 차이가 생길 수 있습니다.

고속 Polling 환경에서는 오히려 이러한 작은 차이가 각각 다른 Input Frame으로 분리되면서 플레이어가 의도하지 않은 결과를 만들 수 있습니다.

NOBD는 이러한 문제를 Sync Window를 통해 보정합니다.

즉,

“얼마나 빠르게 입력을 전달할 것인가?”

뿐만 아니라

“플레이어가 의도한 입력을 얼마나 정확하게 전달할 것인가?”

라는 문제를 함께 다루는 프로젝트라고 볼 수 있습니다.


결론

GP2040-CE NOBD는 격투게임에서 발생할 수 있는 동시 버튼 입력 문제를 해결하기 위해 시작된 오픈소스 Controller Firmware 프로젝트입니다.

NOBD Sync Window를 이용해 몇 ms 차이로 발생한 버튼 입력을 보다 안정적으로 동시에 전달하며, 특히 Marvel vs. Capcom 2와 같은 게임에서 발생할 수 있는 입력 오류를 줄이는 것을 목표로 합니다.

또한 프로젝트는 현재 NOBD 기능을 넘어 Dreamcast Native Maple Bus, VMU 관리, RP2040/RP2350 기반 Hardware 지원 등으로 확장되고 있습니다.

WIZnet 관점에서는 W6100-EVB-Pico2를 위한 Build Configuration이 이미 포함되어 있다는 점이 특히 흥미롭습니다.

현재 Ethernet이 NOBD의 핵심 기능으로 사용되고 있는 것은 아니지만, 향후 LAN 기반 Game Controller와 Low-Latency Ethernet Input Interface를 실험할 수 있는 기반이 마련되어 있습니다.

따라서 이 프로젝트는 WIZnet Ethernet Controller의 활용 범위를 기존 IoT나 산업용 네트워크를 넘어,

“Real-Time Human Input Interface”

라는 새로운 영역으로 확장해 볼 수 있는 흥미로운 Open Source Project라고 볼 수 있습니다.

Documents
Comments Write