Skip to content
/ BlueRetro Public template
forked from netham45/BlueRetro

BROGX : mix of BlueRetro https://github.com/darthcloud/BlueRetro by DarthCloud and OGX360 https://github.com/Ryzee119/OGX360 by Ryzee119 Based on code and concept by netham45 https://github.com/netham45/BlueRetro This is a modified version of BlueRetro with support for sending commands to an OGX360 over I2C.

License

Notifications You must be signed in to change notification settings

konwektor/BlueRetro

 
 

Repository files navigation

BROGX

BROGX allows playing on Xbox completely wirelessly with all Bluetooth gamepads supported by BlueRetro.

Build from 2 parts

  • one ESP-WROOM-32 chip/ESP32-WROOM32d DevkitC V4. module
  • max.4 ATMEGA32U4 / Arduino pro micro/leonardo

This project combines BlueRetro by DarthCloud and OGX360 by Ryzee119.
Based on code and concept by netham45: https://github.com/netham45/BlueRetro.
An ESP32 allows connecting Bluetooth gamepads, and with modified BlueRetro software, data is sent over I2C to an Arduino.
The Arduino communicates with the Xbox over USB. A modification to the OGX360 software removes the master device and sets all as slaves.

Main Features

  • Bluetooth gamepads supported by BlueRetro
  • Web Config (https://konwektor.github.io/BlueRetroWebCfg/)
    Added OGX360 to the game system list to unlock more functions (key bindings, combo shortcuts, etc.) - works same way as orginal webcfg for BlueRetro
  • Port detection via Current Trigger
  • Port detection via isolated port Shield
    Detects when a physical controller is connected and disconnects the Bluetooth controller on this port to make room for a wired one.
  • Xbox Power ON/OFF with Bluetooth Controller
    Allows turning the console on and off with the controller (only in HW2 internal builds under specific conditions).
  • Port Status LED
    Indicates the current status of each controller port.
    • Solid - BT controller connected,
    • Pulsing - Bluetooth inquiry mode enable (new pairing).
    • Off - no controller or port occupied by wired gamepad
  • Global Status LED
    Indicates the overall status of the ESP.
    • Solid: An error occured, try power cycle, check serial logs for detail.
    • Pulsing: Bluetooth inquiry mode enable (new pairing).
    • Off: No error and Bluetooth inquiry mode disabled.

READ THIS FIRST

User manual — Information about the adapter, programming, and hardware build details.

Update to Blueretro 25.04

quick info:

Based on BlueRetro v25.04

Tweak hw2 internal support
Tweak behavie of port detection in hw2 
hw2 power on/off using gamepad combo
hw2 DVD tray eject using gamepad combo
hw2 DVD tray button : 
push = tray eject
1sec < hold = BT pairing if no controller connected,or disconnect all connected already BT devices alreaady connected
3sec < hold = start BT pairing , 
6sec < hold = esp32 firmware reset 

Added "virtual menu" with rumble feedback for simple debug i2c bus - 
push Xbox button and gamepad will rumble shortly,- enters in V-menu
Then Dpad-L/R/U/D do :  
ping(legacy driver) / disconnect(legacy driver)/ping (low level i2c driver) / disconnect(low level i2c driver)
Start is for double rumble,
A - initialize legacy i2c driver, B,X,Y - sending  1byte to output(xbox).
During staying inside V-menu only A,B,X,Y are sending bytes to adapter, all other buttons are invisible for console.
Back button - quit V-menu, and bring back support for all buttons. 
This function is  for checkin in i2c communication how arduinos modules react for connect/disconnect overflow and how xbox see it.  

This version need also updating arduino firmware in case of use hw2, use mine fork at https://github.com/konwektor/ogx360. If You already got software for BlueRetro support in arduino, and staying by hw1 - no update is needed.

This can be compiled the same as BlueRetro.
Copy /configs/hw1/ogx360 to Your /Blueretro/sdkconfig start esp-idf (v5.1.2) and rund "esp.py build".

Or just go to Releases, and download already compiled files.

Need help? Found Bug? Any Ideas?


  • All Xbox one x/s series x/s controllers working with rumble, no delay no stuck.

  • Wiiu pro rumble tested and working

  • Ps4 , ps5 rumble tested and working

  • All other bluetooth gamepads supported by Blueretro should work - not tested - got any???? Give me feedback.


BlueRetro


BlueRetro is a multiplayer Bluetooth controllers adapter for various retro game consoles & computers. Lost or broken controllers? Reproduction too expensive? Need those rare and obscure accessories? Just use the Bluetooth devices you already got! The project is open source hardware & software under the CERN-OHL-P-2.0 & Apache-2.0 licenses respectively. It's built for the popular ESP32 chip. Wii, Switch, PS3, PS4, PS5, Xbox One, Xbox Series X|S & generic HID Bluetooth (BR/EDR & LE) devices are supported. Parallel 1P (Computers, NeoGeo, Supergun, JAMMA, Handheld, etc), Parallel 2P (Atari 2600/7800, Master System, Computers, etc), NES, PCE / TG16, Mega Drive / Genesis, SNES, CD-i, 3DO, Jaguar, Saturn, PSX, PC-FX, JVS (Arcade), Virtual Boy, N64, Dreamcast, PS2, GameCube & Wii extension are supported with simultaneous 4+ players using a single adapter.

READ THIS FIRST

Need help?

Makers sponsoring BlueRetro

Buying BlueRetro adapters from these makers helps support the continued development of the BlueRetro firmware!
Thanks to all sponsors!

Community Contribution


About

BROGX : mix of BlueRetro https://github.com/darthcloud/BlueRetro by DarthCloud and OGX360 https://github.com/Ryzee119/OGX360 by Ryzee119 Based on code and concept by netham45 https://github.com/netham45/BlueRetro This is a modified version of BlueRetro with support for sending commands to an OGX360 over I2C.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 82.5%
  • Python 16.5%
  • Other 1.0%