A modern arcade emulator frontend powered by FinalBurn Neo (libretro core).
Built with C++17 + Qt6, targeting Windows and Steam Deck.
FinalBurn Neo libretro 코어 기반의 아케이드 에뮬레이터 프론트엔드입니다.
C++17 + Qt6로 제작되었으며 Windows와 Steam Deck을 지원합니다.
| English | 한국어 | |
|---|---|---|
| ✨ NEW | Simple game-name file (names.txt) — Rename list entries with one line each: kof94 = 더 킹 오브 파이터즈 94. Takes priority over gamelist.xml, so you can override just the titles you care about. UTF-8, #/; comments, = or Tab separator. |
게임 이름 간편 변경 (names.txt) — kof94 = 더 킹 오브 파이터즈 94 처럼 한 줄로 이름 지정. gamelist.xml 보다 우선하므로 원하는 게임만 골라 덮어쓸 수 있음. UTF-8, #/; 주석, = 또는 탭 구분. |
| ✨ NEW | UI language toggle (KO / EN) — 🌐 button in the Options panel switches menu text instantly; the choice is saved. | 메뉴 한/영 전환 — 옵션 패널의 🌐 버튼으로 즉시 전환되며 설정이 저장됨. |
| ✨ NEW | Dedicated Service (TEST) key — Service input is now sent only by its own hotkey (default `), fully separated from START-hold. Games that require holding START no longer trigger the operator menu. |
서비스(TEST) 전용 키 분리 — 전용 핫키(기본 `)로만 서비스 입력 전송, START 길게 누르기와 완전 분리. START를 오래 눌러야 하는 게임에서 오작동 없음. |
| ✨ NEW | Portable folder layout — All user data (roms, previews, screenshots, saves, cheats, recordings, config.json) now lives next to the program on both Windows and Steam Deck. Old Linux XDG settings are migrated automatically. |
포터블 폴더 구조 — 모든 사용자 데이터를 Windows·Steam Deck 모두 프로그램 폴더 아래로 통일. 기존 Linux XDG 설정은 자동 이관. |
| ✨ NEW | Game list remembers your place — The last played game is restored on the next launch, and toggling a favorite no longer jumps the list back to the top. | 게임 목록 위치 기억 — 마지막 플레이 게임을 다음 실행 때 복원하고, 즐겨찾기해도 목록이 맨 위로 튀지 않음. |
| 🔧 CHANGE | Flash Reduction rebuilt — Now matches a white-flash frame to the surrounding brightness instead of inverting colors, following Xbox XAG 118 / WCAG 2.3.1 guidance (reduce contrast, don't invert). No color distortion, no trailing. | 플래시 감소 재작성 — 색반전 대신 번쩍임 프레임을 주변 밝기에 맞추는 방식(Xbox XAG 118 / WCAG 2.3.1 권고 = 대비 감소). 캐릭터 색 뒤틀림·잔상 없음. |
| 🐛 FIX | Preview video on Steam Deck — Preview playback used to crash the app. Replaced Qt Multimedia with a built-in software decoder (no VAAPI/Vulkan hardware path), with audio and audio-master A/V sync. Preview now cycles image → video → image. | 스팀덱 프리뷰 영상 — 재생 시 앱이 종료되던 문제 해결. Qt 멀티미디어 대신 자체 소프트웨어 디코더 사용(하드웨어 디코딩 경로 없음), 사운드 + 오디오 기준 싱크 적용. 이미지 → 영상 → 이미지 순환 표시. |
| 🐛 FIX | Recorded video colors (Linux) — Recordings had red and blue swapped (AV_PIX_FMT_BGR32 resolves to rgba on little-endian, but libretro XRGB8888 is bgra). Screenshots were unaffected. |
녹화 영상 색상 (Linux) — 녹화본의 R/B가 뒤바뀌던 문제 수정(리틀엔디언에서 AV_PIX_FMT_BGR32는 실제로 rgba, libretro XRGB8888은 bgra). 스크린샷은 영향 없었음. |
| 🐛 FIX | Video recording on Steam Deck — Recording was silently disabled because FFmpeg dev headers were missing from the build dependencies. | 스팀덱 녹화 기능 — FFmpeg 개발 헤더가 빌드 의존성에서 빠져 녹화가 비활성화되던 문제 수정. |
| 🐛 FIX | Stuck keys after Tab — Returning from the GUI to the game could leave every key pressed. Input state is now cleared symmetrically on entering the game screen. | 탭 전환 후 키 고착 — GUI에서 게임으로 복귀 시 모든 키가 눌린 상태로 남던 문제 수정. 게임 화면 진입 시에도 입력 상태를 초기화. |
| 🐛 FIX | Netplay disconnect — DISCONNECT left the relay polling loop alive, so re-hosting/re-joining failed until restart. | 넷플레이 디스커넥트 — 릴레이 폴링이 살아남아 재호스트·재조인이 안 되던 문제 수정. |
| 🐛 FIX | Relay address hidden — The built-in relay URL is no longer shown anywhere, including error logs. | 릴레이 주소 비노출 — 내장 릴레이 주소가 오류 로그를 포함해 어디에도 표시되지 않음. |
| 🐛 FIX | GUI box sizes fixed — Panels are sized purely by ratio (top:bottom 5:4, left:right 3:5) and no longer shift when the game list or event log fills up. Window resizing scales them proportionally. | GUI 박스 크기 고정 — 패널 크기를 비율(위:아래 5:4, 좌:우 3:5)로만 결정해 목록·로그가 채워져도 변하지 않음. 창 크기 변경 시 비례 확대·축소. |
| 🐛 FIX | Options scrolling & key mapping — The Controls page is now scrollable, so keyboard/gamepad/arcade-stick mapping tables are reachable. Combo boxes no longer swallow the mouse wheel (which blocked page scrolling and changed values by accident). | 옵션 스크롤·키 매핑 — 컨트롤 페이지 스크롤 적용으로 키보드/패드/아케이드 스틱 매핑 표 접근 가능. 콤보박스가 휠을 가로채 스크롤을 막고 값이 바뀌던 문제 수정. |
| 🐛 FIX | Cheats — Cheat files are now handed to FBNeo's own cheat engine (<system>/fbneo/cheats/), so they behave exactly as in RetroArch instead of relying on address guessing. |
치트 — 치트 파일을 FBNeo 자체 치트 엔진(<system>/fbneo/cheats/)에 전달해 RetroArch와 동일하게 동작. 주소 추측 방식 제거. |
| 🐛 FIX | Preview save — Preview shots/clips are saved as {rom}.png / {rom}.mp4, overwrite cleanly, and appear immediately without reselecting the game. |
프리뷰 저장 — {rom}.png / {rom}.mp4 로 저장·덮어쓰기되며, 게임을 다시 선택하지 않아도 즉시 반영. |
| English | 한국어 | |
|---|---|---|
| ✨ NEW | Pure GGPO Netplay — Rebuilt netcode: input-only exchange + local rollback + checksum-based desync detection (full-state resync only on mismatch). Native framerate preserved, no frame-skip. | 순수 GGPO 넷플레이 — 넷코드 재설계: 입력만 교환 + 로컬 롤백 + 체크섬 desync 감지(불일치 시에만 풀스테이트 재동기). 게임 네이티브 프레임 유지, 프레임 스킵 없음. |
| ✨ NEW | STUN + Durable Objects matchmaking — 6-char room token (no IP exposed), STUN external-address discovery, UDP hole-punching. Cloudflare Durable Objects worker (strong consistency) replaces KV. | STUN + Durable Objects 매치메이킹 — 6자리 룸 토큰(IP 비노출), STUN 외부주소 발견, UDP 홀펀칭. Cloudflare Durable Objects 워커(강한 일관성)로 KV 교체. |
| ✨ NEW | Flash Reduction (eye protection) — Detects full-screen white flashes (counter hits, muzzle flashes) and inverts them to dark. Only triggers when most of the screen flashes — never touches in-game UI. | 플래시 감소 (눈 보호) — 전체 화면 흰색 번쩍임(카운터·총구 화염)을 감지해 검게 반전. 화면 대부분이 번쩍일 때만 작동 — 인게임 UI는 건드리지 않음. |
| ✨ NEW | Per-platform / per-game settings — Controller mappings and Machine (DIP) settings can be saved globally, per-platform (NeoGeo/CPS/Irem…), or per-game. Priority: game > platform > global. | 기종별/게임별 설정 — 컨트롤러 매핑·머신세팅을 전역/기종별(NeoGeo/CPS/아이렘…)/게임별로 저장. 우선순위: 게임별 > 기종별 > 전역. |
| ✨ NEW | Configurable hotkeys — Remap all hotkeys (with modifiers), Reset-to-default and Save buttons. Save-state slots F1–F8 stay fixed for safety. | 핫키 설정 — 모든 핫키 재배정(모디파이어 포함), 기본값 복원·저장 버튼. 세이브스테이트 F1–F8은 안전을 위해 고정. |
| 🐛 FIX | Cheat system (Irem / shooters) — Fixed cheats for Irem, Cave, Toaplan, Psikyo, etc. RAM offset now derived by size-masking + endian-aware byte-swap instead of hardcoded NeoGeo/CPS bases. | 치트 수정 (아이렘/슈팅) — 아이렘·Cave·Toaplan·Psikyo 등 치트 정상 작동. RAM 오프셋을 NeoGeo/CPS 하드코딩 대신 크기 마스킹 + 엔디언별 바이트스왑으로 계산. |
| 🐛 FIX | JOIN-side crashes — Fixed dangling QJsonValueRef, Windows UDP WSAECONNRESET, and duplicate peer-handling crashes during connection. |
JOIN 측 크래시 — 연결 중 발생하던 댕글링 QJsonValueRef, Windows UDP WSAECONNRESET, 피어 이중처리 크래시 수정. |
| 🐛 FIX | GUI background — Fixed panels covering the background image (viewport auto-fill + BorderPanel drop-shadow overlay). | GUI 배경 — 패널이 배경 이미지를 가리던 문제 수정 (viewport 자동채움 + BorderPanel 드롭섀도우). |
| English | 한국어 | |
|---|---|---|
| ✨ NEW | Fightcade-style Netplay — Room Code system: host generates an 11-character code (e.g. A3F7K-9X2-M4P); guest just enters the code to connect (IP + port + delay encoded automatically). Public IP auto-detected. |
파이트케이드 스타일 넷플레이 — 룸 코드 시스템: 호스트가 11자리 코드 생성, 참가자는 코드 입력만으로 연결 (IP·포트·딜레이 자동 설정). 공개 IP 자동 조회. |
| ✨ NEW | Input Delay control — Configurable per-session delay frames (0–8f). Recommended: domestic 0–1f / Asia 2–3f / international 4–6f. RTT displayed live during play. | 입력 딜레이 조절 — 세션별 딜레이 프레임 설정 (0–8f). 국내 0–1f / 아시아 2–3f / 해외 4–6f 권장. 게임 중 RTT 실시간 표시. |
| ✨ NEW | Tate Mode — Vertical arcade shooters (1942, DonPachi, Raiden, etc.) auto-rotate on load. Manual toggle with F8 or the TATE button: AUTO → 90°CCW → 90°CW → OFF. |
Tate 모드 — 세로형 슈팅게임(1942, DonPachi, Raiden 등) 자동 회전. F8 또는 TATE 버튼으로 수동 전환: AUTO → 90°CCW → 90°CW → OFF. |
| ✨ NEW | gamelist.xml support — Automatically reads Korean game names from a community-provided gamelist.xml (라즈겜동 format). |
gamelist.xml 지원 — 라즈겜동 한글화 파일 자동 인식. 프로그램 폴더에 넣으면 한글명 자동 적용. |
| 🐛 FIX | Steam Deck audio — Eliminated "warbly" pitch oscillation and slow-sounding audio (DRC maxAdj reduced from ±0.5% to ±0.1%). VSync disabled on GameScope (prevents AFL timer jitter). | Steam Deck 오디오 수정 — 울렁거리는 음정 진동 및 느린 사운드 제거 (DRC maxAdj ±0.5%→±0.1%). GameScope에서 VSync 비활성화로 AFL 타이머 지터 방지. |
| 🐛 FIX | Cheat system (CPS1) — Cheats now correctly apply for CPS1 games. | CPS1 치트 수정 — CPS1 게임 치트 정상 적용. |
| 🐛 FIX | fbneo_libretro.dll — Rebuilt as a fully standalone DLL with no libwinpthread-1.dll dependency. |
fbneo_libretro.dll 단독 실행 — libwinpthread-1.dll 없이도 동작하는 단일 파일로 재빌드. |
| English | 한국어 | |
|---|---|---|
| ✨ NEW | Service Mode Protection — Arcade test/service menu blocked by default; intentional access via ` key. |
서비스 모드 보호 — 기판 테스트 메뉴 기본 차단. ` 키로 5초간 허용. |
| ✨ NEW | Preview Factory — Ctrl+F9 / Ctrl+F12 to record/capture preview clips and images. |
프리뷰 팩토리 — Ctrl+F9 / Ctrl+F12로 프리뷰 영상·이미지 촬영. |
| 🐛 FIX | Audio improvements — DRC-based buffer stabilization, reduced stuttering. | 오디오 개선 — DRC 기반 버퍼 안정화, 끊김 감소. |
| 🐛 FIX | Netplay stability — Rollback sync improvements for Windows ↔ Steam Deck cross-play. | 넷플레이 안정성 — Windows ↔ Steam Deck 롤백 동기화 개선. |
- 🎮 Full libretro support — uses
fbneo_libretro.dll/.sofor accurate arcade emulation
libretro 코어 지원 —fbneo_libretro.dll/.so로 정확한 아케이드 에뮬레이션 - 🖥️ 4-panel UI — Game List / Options / Preview / Events log
4분할 UI — 게임 목록 / 옵션 / 프리뷰 / 이벤트 로그 - 🔍 Game list — ROM scan, search filter, favorites (★)
게임 목록 — ROM 자동 검색, 필터, 즐겨찾기 (★) - 🌏 Korean game names — Supports
gamelist.xml(라즈겜동 format), or editnames.txtone line at a time (kof94 = 더 킹 오브 파이터즈 94)
한글 게임명 —gamelist.xml(라즈겜동 형식) 자동 인식, 또는names.txt에 한 줄씩 직접 지정 (kof94 = 더 킹 오브 파이터즈 94) - 🌐 UI language toggle — switch menus between Korean and English instantly (saved)
메뉴 한/영 전환 — 옵션 패널의 🌐 버튼으로 즉시 전환, 설정 저장 - 🖼️ Preview — preview image → video → image, cycling automatically (with sound)
프리뷰 — 이미지 → 영상 → 이미지 자동 순환 표시 (사운드 포함) - 💾 Save States — 8 slots (F1–F8 load / Shift+F1–F8 save)
세이브스테이트 — 8슬롯 (F1–F8 로드 / Shift+F1–F8 저장) - ⏩ Fast Forward — uncapped speed (F11)
패스트포워드 — 속도 제한 해제 (F11) - 📹 Recording — MP4 capture (F9), preview clip (Ctrl+F9)
녹화 — MP4 캡처 (F9), 프리뷰 영상 (Ctrl+F9) - 📸 Screenshots — F12 / Ctrl+F12 (preview image)
스크린샷 — F12 / Ctrl+F12 (프리뷰 이미지) - 🔄 1P↔2P Swap — practice mode (F10)
1P↔2P 스왑 — 혼자 연습 모드 (F10) - 📺 Tate Mode — Auto-rotate vertical shooters; manual toggle F8 (AUTO / 90°CCW / 90°CW / OFF)
Tate 모드 — 세로형 슈팅게임 자동 회전, F8 수동 전환 (AUTO / 90°CCW / 90°CW / OFF) - 🎛️ DIP Switches — per-game Machine Settings
DIP 스위치 — 게임별 기판 설정 (지역, 난이도, 목숨 수, NeoGeo 모드 등) - 🃏 Cheat system — INI-based cheat parser
치트 시스템 — INI 형식 치트 파일 자동 로드 - 🌐 Pure GGPO Netplay — 6-char room token, STUN + Cloudflare Durable Objects matchmaking, UDP hole-punching, input-only rollback with checksum desync detection
순수 GGPO 넷플레이 — 6자리 룸 토큰, STUN + Cloudflare Durable Objects 매치메이킹, UDP 홀펀칭, 입력 기반 롤백 + 체크섬 desync 감지 - 🎮 Controller support — XInput / WinMM (arcade sticks) / keyboard, savable global / per-platform / per-game
컨트롤러 지원 — XInput / WinMM (아케이드 스틱) / 키보드, 전역/기종별/게임별 저장 - ⌨️ Configurable hotkeys — remap with modifiers, reset-to-default & save
핫키 설정 — 모디파이어 포함 재배정, 기본값 복원·저장 - 👁️ Flash reduction — matches full-screen white flashes to the surrounding brightness (eye protection, no color distortion)
플래시 감소 — 전체 화면 흰 번쩍임을 주변 밝기에 맞춰 억제 (눈 보호, 색 왜곡 없음) - 🕹️ Turbo buttons — per-button toggle
터보 버튼 — 버튼별 독립 터보 설정 - 📺 CRT shader — scanlines, RGB mask, vignette, bloom
CRT 쉐이더 — 스캔라인, RGB 마스크, 비네트, 블룸 - 🎛️ Machine settings — DIP switches, savable per-platform / per-game
머신 세팅 — DIP 스위치, 기종별/게임별 저장 - 🔒 Service mode protection — arcade test menu blocked by default; sent only by a dedicated hotkey (separate from START-hold)
서비스 모드 보호 — 아케이드 테스트 메뉴 기본 차단, 전용 핫키로만 진입 (START 길게 누르기와 분리) - 📁 Portable layout — all data (roms / previews / saves / cheats / recordings / config) sits next to the program
포터블 구조 — 모든 데이터(roms / previews / saves / cheats / recordings / config)가 프로그램 폴더 아래에 모임
| Component / 항목 | Requirement / 요구사항 |
|---|---|
| OS | Windows 10 / 11 (64-bit) |
| Core / 코어 | fbneo_libretro.dll (place next to .exe / .exe 옆에 배치) |
| ROMs | FinalBurn Neo compatible ROM set |
| Component / 항목 | Requirement / 요구사항 |
|---|---|
| OS | SteamOS 3.x / Ubuntu 22.04+ |
| Core / 코어 | fbneo_libretro.so (place in ~/FBNeoRageX/bin/) |
| ROMs | FinalBurn Neo compatible ROM set |
- Download the latest release ZIP from the Releases page.
Releases 페이지에서 최신 ZIP을 다운로드합니다. - Extract to any folder (e.g.
C:\FBNeoRageX\).
원하는 폴더에 압축을 풉니다. - Obtain
fbneo_libretro.dlland place it in the same folder asFBNeoRageX.exe.
fbneo_libretro.dll을FBNeoRageX.exe와 같은 폴더에 넣습니다. - Launch
FBNeoRageX.exe.
FBNeoRageX.exe를 실행합니다. - Go to Options → Directories and set your ROMs folder.
Options → Directories에서 ROM 폴더를 설정합니다. - (Optional) Place
gamelist.xmlnext toFBNeoRageX.exefor Korean game names.
(선택) 한글 게임명을 사용하려면gamelist.xml을FBNeoRageX.exe옆에 넣습니다.
- Download
FBNeoRageX-linux-x86_64.tar.gzfrom the Releases page.
Releases 페이지에서FBNeoRageX-linux-x86_64.tar.gz를 다운로드합니다. - Copy the archive to your Steam Deck (USB drive or network share).
Steam Deck으로 파일을 복사합니다 (USB 또는 네트워크). - Open Konsole (Desktop Mode) and run:
Konsole (데스크톱 모드)에서 실행:tar -xzf FBNeoRageX-linux-x86_64.tar.gz -C ~/ ~/FBNeoRageX/FBNeoRageX.sh
- Obtain
fbneo_libretro.soand copy it to~/FBNeoRageX/bin/.
fbneo_libretro.so를~/FBNeoRageX/bin/에 복사합니다. - Add to Steam (optional — enables Gaming Mode):
Steam에 추가 (선택 — 게이밍 모드 실행):- Steam → Add a Game → Add a Non-Steam Game
- Browse and select
~/FBNeoRageX/FBNeoRageX.sh
- (Optional) Place
gamelist.xmlin~/FBNeoRageX/for Korean game names.
(선택) 한글 게임명을 사용하려면gamelist.xml을~/FBNeoRageX/폴더에 넣습니다.
gamelist.xml — Korean game name database in 라즈겜동 (ES-DE) format.
Not included with this app. Obtain from the community and place in the app folder.
한글 게임명 데이터베이스 (라즈겜동 ES-DE 형식). 앱에 포함되지 않으며 직접 구해서 프로그램 폴더에 넣으시면 됩니다.
| Keyboard Key | Libretro Button | NeoGeo |
|---|---|---|
Z |
B (JOYPAD_B) | A Button / A 버튼 |
X |
A (JOYPAD_A) | B Button / B 버튼 |
A |
Y (JOYPAD_Y) | C Button / C 버튼 |
S |
X (JOYPAD_X) | D Button / D 버튼 |
D |
L (JOYPAD_L) | — |
C |
R (JOYPAD_R) | — |
Enter |
START | START |
Space |
SELECT | SELECT |
↑ ↓ ← → |
D-Pad / 방향키 | D-Pad |
All mappings can be changed in Options → Controls → KEYBOARD.
모든 키는 Options → Controls → KEYBOARD에서 변경 가능합니다.
| Gamepad Button | Libretro Button | NeoGeo |
|---|---|---|
| A | B (JOYPAD_B) | A Button |
| B | A (JOYPAD_A) | B Button |
| X | Y (JOYPAD_Y) | C Button |
| Y | X (JOYPAD_X) | D Button |
| LB | L (JOYPAD_L) | — |
| RB | R (JOYPAD_R) | — |
| LT | L2 | — |
| RT | R2 | — |
| L3 (stick click) | L3 | — |
| R3 (stick click) | R3 | — |
| Back / Select | SELECT | SELECT |
| Start / Menu | START | START |
| D-Pad / 방향패드 | D-Pad | D-Pad |
| Button # / 버튼 번호 | Libretro Button | NeoGeo |
|---|---|---|
| Button 1 / 버튼 1 | B (JOYPAD_B) | A Button |
| Button 2 / 버튼 2 | A (JOYPAD_A) | B Button |
| Button 3 / 버튼 3 | Y (JOYPAD_Y) | C Button |
| Button 4 / 버튼 4 | X (JOYPAD_X) | D Button |
| Button 5 / 버튼 5 | L | — |
| Button 6 / 버튼 6 | R | — |
| Button 7 / 버튼 7 | L2 | — |
| Button 8 / 버튼 8 | R2 | — |
| Button 9 / 버튼 9 | SELECT | SELECT |
| Button 10 / 버튼 10 | START | START |
| Stick / 스틱 | D-Pad / 방향 | D-Pad |
Mappings can be changed in Options → Controls → ARCADE STICK.
Options → Controls → ARCADE STICK에서 변경 가능합니다.
| Key / 키 | Action / 기능 |
|---|---|
Tab |
Pause / Resume / 일시정지·재개 |
ESC |
Stop game → main screen / 게임 종료 → 메인 화면 |
Alt + Enter |
Toggle fullscreen / 전체화면 토글 |
` (backtick) |
Toggle Service Mode 5 sec / 서비스 모드 5초 허용 |
| Key / 키 | Action / 기능 |
|---|---|
F1 – F8 |
Load save state (slot 1–8) / 세이브스테이트 로드 |
Shift + F1 – Shift + F8 |
Save save state (slot 1–8) / 세이브스테이트 저장 |
| Key / 키 | Action / 기능 |
|---|---|
F8 |
Tate rotation cycle: AUTO → 90°CCW → 90°CW → OFF / Tate 회전 순환: AUTO → 90°CCW → 90°CW → OFF |
F9 |
Start/stop recording / 녹화 시작·중지 → recordings/{rom}_{timestamp}.mp4 |
Ctrl + F9 |
Record preview clip / 프리뷰 영상 녹화 → previews/{rom}.mp4 |
F10 |
1P↔2P port swap / 1P↔2P 포트 스왑 |
F11 |
Fast Forward / 패스트포워드 |
F12 |
Screenshot / 스크린샷 → screenshots/{rom}_{timestamp}.png |
Ctrl + F12 |
Save preview image / 프리뷰 이미지 저장 → previews/{rom}.png |
| Combo / 조합 | Action / 기능 |
|---|---|
SELECT + START (hold 2 sec / 2초 유지) |
Pause / return to GUI / 일시정지·GUI 복귀 |
Steam Deck has no F-keys — map them via Steam Input.
Steam Deck에는 F키가 없으므로 Steam Input으로 매핑합니다.
| Button / 버튼 | Map to / 매핑 키 | Function / 기능 |
|---|---|---|
| R4 | F10 |
1P↔2P swap / 포트 스왑 |
| R5 | F11 |
Fast Forward / 패스트포워드 |
| L4 | F8 |
Tate rotation / Tate 회전 |
| L5 | Tab |
Pause / 일시정지 |
- Gaming Mode: Steam button → Controller icon → Edit Layout → Back Buttons
게이밍 모드: Steam 버튼 → 컨트롤러 아이콘 → Edit Layout → Back Buttons - Desktop Mode: Steam → Library → right-click FBNeoRageX → Properties → Controller → Edit Custom Configuration
데스크톱 모드: Steam → 라이브러리 → FBNeoRageX 우클릭 → 속성 → 컨트롤러 → 커스텀 설정 편집 - Assign each button → Keyboard Key → select the key.
각 버튼 → Keyboard Key → 해당 키 선택.
| Tab / 탭 | Description / 설명 |
|---|---|
| Controls | Remap keyboard, XInput, arcade stick / 키보드·XInput·아케이드 스틱 키 재설정 |
| Directories | Set ROM, save, screenshot, recording paths / ROM·저장·스크린샷·녹화 경로 설정 |
| Video | Scale mode, CRT shader, frameskip, V-Sync / 화면 배율, CRT 쉐이더, 프레임스킵, V싱크 |
| Audio | Volume, sample rate, buffer / 볼륨, 샘플레이트, 버퍼 |
| Machine | DIP switches — region, difficulty, lives, Neo-Geo mode / 기판 설정 — 지역·난이도·목숨·NeoGeo 모드 |
| Shots | Preview image/video factory / 프리뷰 이미지·영상 촬영 (Ctrl+F12 / Ctrl+F9) |
| Cheats | Enable/disable per-game cheats / 게임별 치트 ON/OFF |
| Netplay | Host or join rollback netplay / 넷플레이 호스트·참가 |
Arcade boards have an internal service/test menu.
아케이드 기판에는 내부 서비스 메뉴가 있습니다.
v2.1 — Dedicated service key / 서비스 전용 키
The service (TEST) input is now sent only by its own hotkey, and is blocked at all other times. It is completely separated from the gamepad L2 button and from holding START, so games that need a long START press no longer open the operator menu by accident.
서비스(TEST) 입력은 이제 전용 핫키로만 전송되며, 그 외에는 항상 차단됩니다. 게임패드 L2 버튼이나 START 길게 누르기와 완전히 분리되어, START를 오래 눌러야 하는 게임에서 오퍼레이터 메뉴가 실수로 열리지 않습니다.
| English | 한국어 | |
|---|---|---|
| Key / 키 | ` (default, remappable in Options → Controls → Hotkeys) |
` (기본값, 옵션 → 컨트롤 → 핫키 설정에서 변경 가능) |
| Behaviour / 동작 | One press = one service input sent to the board | 한 번 누르면 서비스 입력 1회 전송 |
| Otherwise / 평소 | Service input is always blocked | 서비스 입력은 항상 차단 |
NeoGeo MVS note / NeoGeo 참고:
The MVS BIOS itself watches for a long START press, which a frontend cannot intercept.
If it still bothers you: Options → Machine → Neo-Geo Mode → aes — AES has no operator test
menu, and boss-select commands keep working.
MVS BIOS 자체가 START 길게 누르기를 감지하므로 프론트엔드에서 가로챌 수 없습니다.
그래도 불편하면 옵션 → 머신 → Neo-Geo Mode → aes 로 바꾸세요. AES는 오퍼레이터 테스트
메뉴가 없고 보스 선택 커맨드는 정상 동작합니다.
FBNeoRageX uses a Fightcade-style Room Code system combined with rollback netcode (up to 30 frames).
FBNeoRageX는 파이트케이드 스타일 룸 코드 시스템과 롤백 넷코드 (최대 30프레임)를 결합해 사용합니다.
Prerequisites / 사전 조건
Both players must have the same ROM file and the same version offbneo_libretro.
양쪽 모두 동일한 ROM 파일과 동일한 버전의fbneo_libretro가 필요합니다.
| Step | English | 한국어 |
|---|---|---|
| 1 | Go to Options → Netplay tab | Options → Netplay 탭 이동 |
| 2 | Set Port (default: 7845). Change only if the default is blocked. |
Port 설정 (기본값: 7845). 막혀 있을 때만 변경. |
| 3 | Set Delay frames based on distance (see table below) | 거리 기준으로 Delay 프레임 설정 (아래 표 참고) |
| 4 | Click 📡 HOST GAME | 📡 HOST GAME 클릭 |
| 5 | A Room Code appears (e.g. A3F7K-9X2-M4P). Share it with your opponent. |
룸 코드가 생성됩니다 (예: A3F7K-9X2-M4P). 상대방에게 공유하세요. |
| 6 | Go back to the main screen and select a game from the list | 메인 화면으로 돌아가 게임 목록에서 게임 선택 |
| 7 | Click ▶ START GAME (HOST) | ▶ START GAME (HOST) 클릭 |
| 8 | Wait for both sides to load — game starts automatically when both are ready | 양쪽 로딩 완료 시 자동으로 게임 시작 |
| Step | English | 한국어 |
|---|---|---|
| 1 | Go to Options → Netplay tab | Options → Netplay 탭 이동 |
| 2 | Enter the Room Code received from the host (e.g. A3F7K-9X2-M4P) |
호스트에게 받은 룸 코드 입력 (예: A3F7K-9X2-M4P) |
| 3 | Click 🔌 JOIN GAME | 🔌 JOIN GAME 클릭 |
| 4 | The game downloads automatically, loading begins | 게임이 자동으로 선택되고 로딩 시작 |
| 5 | Wait — game starts simultaneously when host sends START | 대기 — 호스트가 START를 보내면 동시에 시작 |
No Room Code? Enter the host's IP address directly in the
or IP:field and click JOIN GAME.
룸 코드가 없다면?or IP:칸에 호스트 IP를 직접 입력하고 JOIN GAME을 클릭하세요.
The host sets the delay — it applies to both players.
딜레이는 호스트가 설정하며 양쪽 모두에 동일하게 적용됩니다.
| Connection / 연결 지역 | RTT estimate / RTT 예상 | Recommended Delay / 권장 딜레이 |
|---|---|---|
| Same city / 같은 도시 (LAN) | < 10 ms | 0–1f |
| Domestic (Korea) / 국내 | 10–40 ms | 1–2f |
| Asia region / 아시아권 | 40–80 ms | 2–3f |
| Cross-continent / 대륙 간 | 80–150 ms | 4–5f |
| Intercontinental / 해외 원거리 | 150 ms+ | 5–6f |
Formula / 계산식: Delay(f) ≥ RTT(ms) ÷ 33
Example: RTT 100 ms → 100 ÷ 33 ≈ 3f minimum / 예시: RTT 100 ms → 최소 3f
RTT is shown live on the status bar after connection / RTT는 연결 후 상태 표시줄에 실시간 표시됩니다.
The Room Code encodes IP address + Port + Input Delay into an 11-character base-36 string.
룸 코드는 IP 주소 + 포트 + 입력 딜레이를 11자리 base-36 문자열로 인코딩합니다.
Example: A3F7K-9X2-M4P
└──── encodes: IP 123.45.67.89 Port 7845 Delay 2f ────┘
- Host's public IP is auto-detected from
api.ipify.org
호스트의 공개 IP는api.ipify.org에서 자동으로 조회됩니다. - Guest just enters the code — no manual IP/port/delay entry needed
참가자는 코드만 입력하면 됩니다 — IP·포트·딜레이를 따로 입력할 필요 없음 - Copy button (⎘ COPY) copies the code to clipboard
복사 버튼(⎘ COPY)으로 클립보드에 복사 가능
Internet play requires the host to open port 7845 (UDP) on their router.
인터넷 대전을 위해 호스트 측 공유기에서 7845번 포트(UDP)를 열어야 합니다.
| Step | English | 한국어 |
|---|---|---|
| 1 | Find your router's admin page (usually 192.168.0.1 or 192.168.1.1) |
공유기 관리 페이지 접속 (보통 192.168.0.1 또는 192.168.1.1) |
| 2 | Go to Port Forwarding (or NAT) section | 포트 포워딩 (또는 NAT) 메뉴 이동 |
| 3 | Add rule: External port 7845 → Internal IP (your PC's local IP) → Internal port 7845 → Protocol UDP |
규칙 추가: 외부 포트 7845 → 내부 IP (PC 로컬 IP) → 내부 포트 7845 → 프로토콜 UDP |
| 4 | Save and restart router if needed | 저장 후 공유기 재시작 (필요 시) |
Your PC's local IP: Run
ipconfigin Command Prompt → look forIPv4 Address
PC 로컬 IP 확인: 명령 프롬프트에서ipconfig실행 →IPv4 주소확인
Tip: If port forwarding is difficult, try a VPN tunnel service like ZeroTier or Hamachi — both players join the same virtual LAN, no port forwarding needed.
팁: 포트 포워딩이 어렵다면 ZeroTier 또는 Hamachi 같은 VPN 터널 서비스를 사용하세요 — 같은 가상 LAN에 접속하면 포트 포워딩 없이 가능합니다.
| Feature / 항목 | Detail / 내용 |
|---|---|
| Netcode type / 넷코드 방식 | Rollback + Delay-based hybrid / 롤백 + 딜레이 하이브리드 |
| Max rollback window / 최대 롤백 창 | 30 frames / 30프레임 |
| Input redundancy / 입력 중복 전송 | 8 packets per input / 입력당 8패킷 |
| Sync interval / 동기화 주기 | Every 4 frames (host → guest snapshot) / 4프레임마다 스냅샷 전송 |
| Protocol / 프로토콜 | UDP |
| Default port / 기본 포트 | 7845 |
| Cross-platform / 크로스플랫폼 | Windows ↔ Steam Deck ✔ |
| Player roles / 플레이어 역할 | Host = P1, Guest = P2 |
| Problem / 문제 | Solution / 해결 방법 |
|---|---|
| Cannot connect / 연결 안 됨 | Check port forwarding on host router. Try ZeroTier/Hamachi. / 호스트 공유기 포트 포워딩 확인. ZeroTier/Hamachi 시도. |
| Game desyncs / 게임 동기화 오류 | Both players must use identical ROM and same core version. / 동일한 ROM 파일과 동일한 코어 버전 필수. |
| Heavy input lag / 입력 지연 과다 | Reduce Delay setting. Check actual RTT value shown in status. / Delay 값 줄이기. 상태 표시줄의 RTT 값 확인. |
| Stuttering / 끊김 현상 | Increase Delay by 1f. High packet loss on unstable connections. / Delay를 1f 증가. 불안정한 연결에서의 패킷 손실. |
| "ROM not found" on guest / 참가자 ROM 없음 | Guest must have the same ROM file in their ROMs folder. / 참가자 ROM 폴더에 동일한 ROM 파일 필요. |
| Room Code invalid / 룸 코드 오류 | Make sure to copy the full 11-character code (format: XXXXX-XXX-XXX). / 11자리 전체 복사 확인 (형식: XXXXX-XXX-XXX). |
- CMake 3.20+
- Qt6 (Core, Widgets, OpenGL, OpenGLWidgets, Multimedia, Network)
- C++17 compiler — MSVC 2022 or GCC/Clang
build_windows.batOutput / 출력: build_win\FBNeoRageX.exe
cmake -S . -B build -DCMAKE_PREFIX_PATH="C:\Qt\6.x.x\msvc2022_64" -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallelbuild_steamdeck_wsl.batOutput / 출력: build_linux/FBNeoRageX-linux-x86_64.tar.gz
chmod +x build_steamdeck.sh
./build_steamdeck.shFBNeoRageX/
├── FBNeoRageX.exe ← Main executable (Windows) / 실행 파일
├── fbneo_libretro.dll ← FBNeo libretro core (required) / 코어 (필수, 미포함)
├── gamelist.xml ← Korean game names (optional) / 한글 게임명 (선택, 미포함)
├── names.txt ← Simple name overrides / 게임 이름 간편 변경 (gamelist.xml 보다 우선)
├── config.json ← Settings (auto-created) / 설정 파일
├── assets/ ← UI assets (fonts, shaders) / UI 에셋
├── roms/ ← Place your ROM ZIPs here / ROM 파일 폴더
├── saves/ ← Save states (auto-created) / 세이브스테이트
├── screenshots/ ← Screenshots (auto-created) / 스크린샷
├── recordings/ ← Video recordings (auto-created) / 녹화 영상
├── previews/ ← Preview images/videos / 프리뷰 이미지·영상
└── cheats/ ← Cheat files (.ini format) / 치트 파일
Steam Deck:
~/FBNeoRageX/
├── FBNeoRageX.sh ← Launcher / 런처
├── gamelist.xml ← Korean game names (optional) / 한글 게임명 (선택)
├── names.txt ← Simple name overrides / 게임 이름 간편 변경
├── config.json ← Settings / 설정 파일
├── roms/ ← ROM ZIPs / ROM 파일
├── previews/ ← Preview images/videos / 프리뷰 이미지·영상
├── screenshots/ ← Screenshots / 스크린샷
├── recordings/ ← Video recordings / 녹화 영상
├── saves/ ← Save states / 세이브스테이트
├── cheats/ ← Cheat files (.ini) / 치트 파일
├── bin/
│ ├── FBNeoRageX ← Binary / 바이너리
│ └── fbneo_libretro.so ← Core / 코어
├── lib/ ← Qt libraries / Qt 라이브러리
└── plugins/ ← Qt plugins / Qt 플러그인
v2.1 — All user data now lives next to the program (portable). Settings from older Linux builds (
~/.local/share/FBNeoRageX/…) are migrated automatically; move your existingpreviews,savesandcheatsfolders here if you want to keep them.v2.1 — 모든 사용자 데이터가 프로그램 폴더 아래로 모입니다(포터블). 이전 Linux 빌드의 설정 (
~/.local/share/FBNeoRageX/…)은 자동 이관되며, 기존previews·saves·cheats폴더는 직접 이 위치로 옮기시면 그대로 사용됩니다.
Rename entries in the game list with one line each — no XML editing required.
게임 목록에 표시될 이름을 한 줄씩 지정합니다. XML을 편집할 필요가 없습니다.
# names.txt (UTF-8)
kof94 = 더 킹 오브 파이터즈 94
mslug3 = 메탈슬러그 3
sfa3 = 스트리트 파이터 제로 3| Rule | English | 한국어 |
|---|---|---|
| Location / 위치 | Next to FBNeoRageX.exe (Steam Deck: next to FBNeoRageX.sh) |
FBNeoRageX.exe 와 같은 폴더 (스팀덱은 FBNeoRageX.sh 옆) |
| Encoding / 인코딩 | Must be saved as UTF-8 | 반드시 UTF-8 로 저장 |
| Separator / 구분자 | = or Tab; surrounding spaces ignored |
= 또는 탭, 앞뒤 공백 무시 |
| Comments / 주석 | Lines starting with # or ; |
# 또는 ; 로 시작하는 줄 |
| Priority / 우선순위 | names.txt → gamelist.xml → built-in DB → ROM name |
names.txt → gamelist.xml → 내장 DB → 롬 이름 |
| Apply / 적용 | Restart the program | 프로그램 재시작 후 반영 |
.zip may be included in the ROM name (kof94.zip = …). Games not listed here keep their existing names.
롬 이름에 .zip 을 붙여도 됩니다. 여기 없는 게임은 기존 이름을 그대로 씁니다.
Q: Where do I get fbneo_libretro.dll / fbneo_libretro.so?
A: Build from the FinalBurn Neo source or download from Libretro Buildbot.
Q:
fbneo_libretro.dll/.so는 어디서 구하나요?
A: FinalBurn Neo 소스에서 직접 빌드하거나 Libretro Buildbot에서 다운로드하세요.
Q: My game is not in the list.
A: Make sure your ROM ZIPs are compatible with the FinalBurn Neo ROM set (not MAME).
Q: 게임 목록에 게임이 없어요.
A: ROM이 FinalBurn Neo 형식인지 확인하세요 (MAME ROM과 다를 수 있습니다).
Q: The NeoGeo test menu keeps appearing.
A: Go to Options → Machine → Neo-Geo Mode and set it to aes.
Q: NeoGeo 테스트 메뉴가 계속 떠요.
A: Options → Machine → Neo-Geo Mode를 **aes**로 변경하세요.
Q: Audio is stuttering.
A: Try increasing Options → Audio → Buffer (recommended: 80–120 ms).
Q: 오디오가 끊겨요.
A: Options → Audio → Buffer를 늘려보세요 (권장: 80–120 ms). 블루투스 헤드셋은 150+ ms.
Q: How do I use cheats?
A: Place .ini cheat files in the cheats/ folder. Enable them in Options → Cheats.
Q: 치트는 어떻게 사용하나요?
A:.ini치트 파일을cheats/폴더에 넣고 Options → Cheats에서 활성화하세요.
Q: How do I use Korean game names?
A: Place gamelist.xml (라즈겜동 ES-DE format) next to FBNeoRageX.exe (Windows) or in ~/FBNeoRageX/ (Steam Deck). The app loads it automatically.
Q: 한글 게임명은 어떻게 사용하나요?
A:gamelist.xml(라즈겜동 ES-DE 형식)을 Windows는FBNeoRageX.exe옆에, Steam Deck은~/FBNeoRageX/에 넣으면 자동으로 적용됩니다.
Q: How do I host a netplay game? / 넷플레이 방장은 어떻게 하나요?
A: Options → Netplay → set Port & Delay → HOST GAME → share the Room Code → select a game → START GAME (HOST).
Options → Netplay → 포트와 딜레이 설정 → HOST GAME → 생성된 룸 코드를 상대방에게 공유 → 게임 선택 → START GAME (HOST).
Q: How do I join a netplay game? / 넷플레이 참가는 어떻게 하나요?
A: Options → Netplay → enter the Room Code in the "Room Code" field → JOIN GAME. The game loads automatically.
Options → Netplay → "Room Code" 칸에 룸 코드 입력 → JOIN GAME. 게임이 자동으로 로드됩니다.
Q: I can't connect to the host. / 호스트에 연결이 안 돼요.
A: The host must forward port 7845 (UDP) on their router. Alternatively, use ZeroTier or Hamachi to create a virtual LAN — no port forwarding needed.
호스트 공유기에서
7845번 포트(UDP)를 포트 포워딩해야 합니다. 어렵다면 ZeroTier 또는 Hamachi를 이용해 가상 LAN을 구성하면 포트 포워딩 없이 가능합니다.
Q: What Delay value should I use? / 딜레이 값은 얼마로 설정해야 하나요?
A: Set Delay(f) ≥ RTT(ms) ÷ 33. For domestic Korea: 1–2f. Asia: 2–3f. International: 4–6f. RTT is shown in the status bar after connecting.
Delay(f) ≥ RTT(ms) ÷ 33으로 설정하세요. 국내: 1–2f, 아시아: 2–3f, 해외: 4–6f. RTT는 연결 후 상태 표시줄에서 확인 가능합니다.
Q: The vertical shooter screen is sideways. / 세로형 슈팅게임 화면이 옆으로 나와요.
A: Press F8 to cycle Tate rotation (AUTO → 90°CCW → 90°CW → OFF). Most vertical games rotate automatically on load.
F8을 눌러 Tate 회전을 순환하세요 (AUTO → 90°CCW → 90°CW → OFF). 대부분의 세로형 게임은 자동으로 회전됩니다.
This project is released under the MIT License.
FinalBurn Neo core is subject to its own license — see FBNeo License.
이 프로젝트는 MIT 라이선스로 배포됩니다.
FinalBurn Neo 코어는 별도의 라이선스를 따릅니다.
- FinalBurn Neo — arcade emulation core / 아케이드 에뮬레이션 코어
- libretro — core/frontend interface standard / 코어·프론트엔드 인터페이스 표준
- Qt6 — UI framework / UI 프레임워크
- 라즈겜동 — Korean game name database / 한글 게임명 데이터베이스