-
-
Notifications
You must be signed in to change notification settings - Fork 116
BlueRetro BLE Web Config User Manual
- 1 - Introduction
- 2 - Advance config page
- 3 - Presets page
- 4 - System manager page
- 5 - OTA FW update page
- 6 - Files Manager page
- 7 - Memory card manager pages
- 8 - Misc examples
BlueRetro configuration is all done via various small web pages that use the Web Bluetooth API to connect localy to your BlueRetro device over Bluetooth Low Energy (BLE). Nothing need to be installed beside having a Google Chrome based browser.
- Advance config: The main configuration page were you can configure what type of accessories BlueRetro will emulate and define custom axes/buttons mapping for each player.
- Presets config: This page allow to load predefined controller axes/buttons mapping.
- System manager: This page let you reboot, put to sleep or factory reset your BlueRetro device.
- OTA FW update: This page let you update your BlueRetro device firmware wirelessly.
- Files Manager: This page let you delete files from the BlueRetro file system.
- N64 controller pak manager: This page let you manage N64 controller pak data.
Config selection allow you to have different active config base on the GameID sent by a supported game loader.
First BlueRetro got a limit of 16 files on it's file system. This isn't related to space on the partition but rather due to the heavy usage of RAM the filesystem consume when the maximum files count is high.
BlueRetro got 4 system files to begin with so this leave space for a maximum of 12 extra configs for GameID.
- Using a loader that support GameId (Xstation, EverDrive, Swiss-GC) start the game than disconnect every bluetooth device from BlueRetro.
- Connect to either the Advance config or Presets page at https://blueretro.io/
- Once connected the current active Game name will be displayed:
- Click on Switch to GameID button
- Now every times this game is active this config will be loaded automatically and any change
will be saved in that file.
For the universal version of BlueRetro the GameID framework can be reused to save different default config for different system. Simply boot BlueRetro on the system you want to set a new default and follow the same instruction as above.
The game name will be undefined but the GameID will be the console name.
Change to the Global config require to reboot the BlueRetro device to take effect.
- System: (Default: Auto) This option let you override the system type BlueRetro emulate controller for.
-
Multitap: (Default: None) This let you select the multitap configuration.
See System Specific Web Config User Manual detail about options supported for each system. - Inquiry mode: (Default: Auto) This let you set if BlueRetro goes automatically into pairing mode if no controller are present. If manual is selected you need to enable pairing mode via the BOOT (IO0) button.
- Memory Card Bank: (Default: Bank 1) This only for N64, it let you select which bank is used for player 1. Player 2-3 banks selection cascade base on this selection.
The Select ouput dropbox let you select the active wired output for which the setting will be saved to. You need to save for each modified output setting.
See System Specific Web Config User Manual detail about options supported for each system.
- Mode: (Default: GamePad) This let you choose which type of peripheral is emulated by BlueRetro.
- Accessories: (Default: None) This let you select which type of controller slot accessories is emulated by BlueRetro.
Up to 128 mapping can be added. Simply click on +/- buttons to add or remove a mapping. The label used by default are quite generic. You can use the Src label and Dst label to select the actual controller type you are currently mapping from and to. The labels selection is only to help you and has no effect on the config at all. You can also consult the mapping reference chart.
The Select Bluetooth device dropbox let you select the active Bluetooth input for which the setting will be saved to. You need to save for each modified device mapping setting.
For each mapping you can configure various options which might or not be used base on what the source and destination end up to be a button or an axis and vice versa.
If all you want to do is a simple button remapping, all you need to touch is the src and dest colums, leave everything else to default value.
- Src: This is the source button/axis on the Bluetooth controller
- Dest: This is the destination button/axis on the wired interface.
- Dest ID: This is the ID of the wired interface.
-
Max: If source & destination is an axis then this is the scaling factor base on the
destination maximum.
If source is a button & destination is an axis then this is the value base on destination maximum that the axis will be set. - Threshold: If source is an axis and destination is a button, this is the threshold requires on the source axis before the button is pressed.
- Deadzone: This is the axis dead zone around reset value.
- Turbo: Turbo function base on the system frame rate.
- Scaling: Various response curve for scaling. (Only Passthrough and Linear available, others not yet implemented)
-
Diagonal: (Not yet implemented)
Diagonal scaling options between joystick type.
BlueRetro turbo feature is probably one of the most over-engineered one around. You got 50 possible options. Not only you can choose the rate but you can also select the duty cycle.
The rate is base on the console controller polling rate which is most of the time 60hz. Using for example "1/2 frames" give a button pulsing at 30Hz, one frame it's pressed and it's unpressed for 1. "2/4 frames" give a button pulsing at 15Hz, 2 frames on, 2 frames off. etc..
As I said you can select the duty cycle. "1/4 frames" still give a button pulsing at 15Hz but it's 1 frames on and 3 frames off. This allow to tweak your turbo to work well in any game.
A lot of games filter out buttons press that are only 1 frames long, so often the "1/X frames" look like they do nothing.
For example on PC-Engine/TG16 original controller the slow turbo is the equivalent of "4/8 frames" and the fast one is "2/4 frames".
You can also set the turbo on a axis, in that case the axis will toggle between it's neutral value (off) and it's current position (on).
You can map the same buttons multiple time with different turbo settings aswell.
In this example the button X & B from an Xbox One controller are remapped to their name equivalent on a GameCube controller. (The default mapping is base on equivalent positioning)
In this example the player 1 rumble is enabled.
Presets are predefined button mapping for a specific game or game type.
See 2.1 - Config Selection for detail on how to use GameID base config feature.
The first dropbox let you select which Bluetooth device the preset is going to be applied to.
The third dropbox let you select a preset.
The second dropbox is optinal and let you filter the preset list by system.
Once you selected you preset click save to update the mapping on BlueRetro. You need to repeat the processor for each additional device you want to configure and save each separately.
- Put in Deep Sleep: This will put the BlueRetro device in deep sleep, essentialy disabling it until power is cycled.
- Reset: Reboot BlueRetro device.
- Factory Reset: Factory reset device to original BlueRetro firmware the device shipped with & reset configuration.
This page let you update the firmware on your BlueRetro device wirelessly. The process is quite long and take around 10 minutes with a laptop and much more with a phone.
You simply need to choose the BlueRetro_*.bin file found at the root of the BlueRetro firmware zip archive (you need to unzip it first to get the files!) Take the file that match the type of BlueRetro device you got.
Finaly simply click Update Firmware to start the process. Once the update reach 100% wait for the BlueRetro device to disconnect from the page itself. This indicate the update is complete.
By default their is only 4 default files. Those files are re-created automatically at boot if missing. The file named config.bin is the default config.
Once you got a few GameID config saved it will look like this:
The file name will be base on the RAW GameId value, place the cursor over the filename to make an info box appear with the actual Game name.
BlueRetro provide a way to emulate memory card through a generic interface internaly. This means all console share the same 128KB of flash memory and that the adapter itself do not provide any facility to format specific format.
The memory card format need to be done either through the web interface or via the target system.
** FOR UNIVERSAL BLUERETRO USER ** Since all systems share the same memory on the adapter for memory card emulation, if you format this area for system X, and then use your BlueRetro on system Y and format the memory card again, you have lost your data for system X. Backup the data with this interface before switching systems.
BlueRetro do not initialise controller pak by itself. You need to first format them using this interface or by using a game that support doing so. Since the BlueRetro memory card module support up to 128KB it's possible to emulated a total of 4 controller pak banks simultaneously.
Select one of the 4 controller pak bank via the dropbox. By default Bank 1 is selected.
- Read: This let you download a dump of the currently selected controller pak bank.
- Format: This let you initialize the currently selected controller pak bank.
- Write: This will write the selected MPK file into the currently selected controller pak bank.
To manage the notes contained inside the MPK file I suggest using bryc's mempak tool.
BlueRetro do not initialise the VMU by itself. Use the Dreamcast BIOS VMU manager to format the emulated VMU memory.
Only one VMU can me emulated on a BlueRetro adapter. You may assign it to any controller via the advance config output config section 2.3.
It's possible to assign that single VMU to all controllers but that is likely to create data corruption. DO SO AT YOUR OWN RISK.
- Read: This let you download a dump of the adapter VMU.
- Write: This will write the selected BIN file into the adapter VMU.
This example show how to configure a mouse output on port 1.
This example show how to configure a keyboard output on port 2.
-
RE notes
- ESP32 RTOS + Bare Metal: Best of Both Worlds?
- Learning Bluetooth Classic (BR/EDR) with HCI traces
- Xbox One Adaptive controller
- Evolution of SEGA's IO Interface from SG-1000 to Saturn
- Famicom & NES controller shift register: Parallel-in, Serial-out
- SNES 2P & Super Multitap
- PlayStation & PlayStation 2 SPI interface
- 3DO interface
- PC-FX interface
- CD-i interface
- PCE & TG16 interface
- Jaguar Interface
-
Deprecated content