Titan Two Downloads

Gtuner IV

Gtuner IV is the main software for programming, updating and configuring the Titan Two device, featuring an complete IDE with integrated compiler for the GPC script language. Gtuner IV also provides user friendly interfaces for easy download, configure and use gamepacks or user made scripts. Based in a modern framework, Gtuner IV supports multi-platform, high resolution monitors and localization.

Gtuner IV for Windows
Version 1.00RC
Release Date 20 Feb 2018
File Size: 50.1 MB
Device Compatibility Titan Two Device
System Compatibility Win10, Win8.1, Win7
Gtuner IV for Mac
Version 1.00RC
Release Date 20 Feb 2018
File Size: 61.2 MB
Device Compatibility Titan Two Device
System Compatibility OS X 10.10+


2018-02-20, Ver 1.00RC-35
* Qt framework updated to 5.10.1
* Device Configuration: Enabled output protocol "Bluetooth Nintendo Switch"
* KM Capture: Fixed incorrect calculation of HID reports sent last second
* GPC Compiler: Builtin function key_get() renamed to key_check()
* GPC Compiler: New functions key_get() and mouse_get() to retrieve the values set by key_set() and mouse_set() {GitHub#197}

2018-02-02, Ver 1.00RC-31
* Input Translator: Fix background color of Controller Remapper not being reset in subsequent opening of git files

2018-01-27, Ver 1.00RC-30
* Device Configuration: Added Mouse DPI configuration to normalize the sensitivity of Input Translators
* Device Monitor: Added references for Joy-Con controllers (right and left)

2018-01-25, Ver 1.00RC-28
* Device Configuration: Added option to disable Joystick from Multi Interface HID output
* Input Translator: Removed "lock point" from the Conversion Curve Generator
* Input Translator: Added linear transformation to the Conversion Curve Generator
* Conversion Curve Generator: Added option to transform the current curve or make new from scratch
* Output Panel: Added Ctrl-C shortcut to copy to clipboard all selected items
* Device Monitor: Added references for Steam Controller (wired and wireless)
* GPC Compiler: Added reference for the new protocol: 'PROTOCOL_STEAM'

2017-12-11, Ver 1.00RC-25
* Code Editor: Ctrl+F automatically use the text from the clipboard if some conditions are met
* Device Configuration: Enable selection of "USB Multi Interface HID" output protocol
* GPC Compiler: Added functions for "Multi Interface HID" - key_set(), key_passthru(), mouse_set() and mouse_passthru()

2017-12-01, Ver 1.00RC-20
* Qt framework updated to 5.9.3
* Titan One backward compatibility (GPC Compiler): Fixed bug with data segment containing negative values {GitHub#190}
* GPC Compiler: Fixed casting operation to and from signed and unsigned integers (new opcodes UTOB, UTOW, ITOB, ITOW)
* Macro Editor: Added several keyboard shortcuts to interact with timeline and manipulate nodes properties {GitHub#180}
* GPC Code Editor: Added shortcut Ctrl+B for jump to matching brace {GitHub#179}
* Online Resources: If the title of an published work is truncated, on mouse hover a tooltip with full title is shown {GitHub#184}
* Interactive Configuration: added button to print the Interactive Configuration contents {GitHub#181}
* Toolbar: Added button to install the active work on selected memory slot {GitHub#183}
* Added HID configuration file for Logitech G25 (Button Mapping, 900°, FFB, Hi-Res Springs, Clutch, Shifter)
* Added HID configuration file for Logitech G27 (Button Mapping, 900°, FFB, Hi-Res Springs, LED Bar, Clutch, Shifter)

2017-10-31, Ver 1.00RC-18
* Qt framework updated to 5.9.2
* Code Editor: Fix crash when opening read-only files
* Device Monitor: Added context menu to manually disconnect/turn-off Bluetooth devices (controller, console)
* Device Monitor: Added references for Nintendo Wii / Wii U controllers
* GPC Quick Reference (F1): Added references for the Wii / Wii U inputs
* GPC Compiler: Added new header file <wii.gph>
* Interactive Configuration: added option to set the number of decimal digits for spinboxf
* Interactive Configuration: allow decimal numbers to be stored in 16 or 8 bits at cost of precision {GitHub#178}
* Code Editor: Fixed issue with jumping to the compiler error line when the script has folded areas {GitHub#173}

2017-09-17, Ver 1.00RC-16
* GPC Compiler: Added PROTOCOL_SWITCH on protocols definition list
* Device Monitor: Added references for Nintendo Switch Pro controller
* Device Configuration: Added Nintendo Switch as Output Protocol
* PS4 Touch-Click swapped with Share button (BUTTON_2 <> BUTTON_18) for better crossover/gaming consistency
* GPC Quick Reference (F1): Added references for the Nintendo Switch inputs
* GPC Compiler: Added new header file <switch.gph>
* Added HID configuration file for Logitech G13
* Fix issue on Mac where the update window closes itself when the device enters in programming mode {GitHub#166}

2017-08-11, Ver 1.00RC-11
* Input Translator: Fix layout alignment of the "Input Port Remapper Mask" box
* Header <titanone.gph>: Updated to comply with the new format of remapper() function

2017-08-10, Ver 1.00RC-10
* Header <titanone.gph>: Fix indexing conversion of the Xbox Elite Controller paddles
* Input Translator: Added ability to select to which input port the Button Remapper should be applied
* GPC Compiler: Added remapper_mask() to configure which input ports the Button Remapper should be applied
* GPC Compiler: New header file <remapper.gph> with definitions of port masks to be used with remapper_mask()
* Added HID configuration files for Arduino Leonardo (Joystick) and Logitech Driving Force GT (Button Mapping, 900° Wheel, FFB)
* Interactive Configuration: Script command "GCMD:InteractiveConfiguration.Refresh" now also works in preview mode {GitHub#161}

2017-07-31, Ver 1.00RC-8
* Added support for RU language (translation not yet avaliable)
* Device Monitor: Added new device identification "Xbox One Wireless Adapter"
* GPC Compiler: Added PROTOCOL_XB1_WRC on protocols definition list
* Included 'xboxacc.fw' for initialization of Xbox Wireless Adapter (command Micro-SD -> Configure)

2017-07-12, Ver 1.00RC-7
* Qt framework updated to 5.9.1
* Device Configuration: Added "Pair Controller Wirelessly" command (for Wiimote, Wii U Pro and Xbox One S controllers)
* GPC Compiler: Fixed bug on evaluating expressions containing user-defined functions with returning value {GitHub#158}
* Code Editor: Find/Replace now allows text replacing with empty string {GitHub#155}
* Code Editor: Highlight all occurrences of selected text (whole word, case sensitivity) {GitHub#156}
* Online Resources: Allow full-screen mode for embedded YouTube videos {GitHub#157}

2017-06-29, Ver 1.00RC-5
* GPC Compiler: Another fix related with array indexing, everything should be good now.

2017-06-29, Ver 1.00RC-4
* Fixed bug causing application crash when loading project files (GPJ)
* Interactive Configuration: arrow of collapsible sections is now working properly to mouse click
* GPC Compiler: Added opcodes MOD!, DIV! and SR! for correct operation with signed integers

2017-06-28, Ver 1.00RC
* Macro Explorer: Fixed bug on deleting files with exactly 8.3 characters
* Quick link to create new GIT and GMK files if no work is opened in the respective interface pane
* Mouse XY Converter: Added diagonal dampening factor {GitHub#147}
* The functions keymapping() and mousemapping() can now be called without parameter to disable the default mapping
* Input Translator: Added the ability to lock a point in the Conversion Curve Generator {GitHub#130}
* GPC Compiler: Error notification sound is now played only on the first error message for the current compilation {GitHub#144}
* Online Resources: 'Order By' and 'Sort By' are not reset when navigating to others categories {GitHub#95}
* GPC Compiler: Fixed bug causing false compiling error when an identifier is before ':' of a ternary operator
* GPC Compiler: Fixed bug when indexing an array with another array indexed by a variable
* GPC Compiler: Full backward compatibility with Titan One code by just adding #include <titanone.gph> at the beginning of the code {GitHub#94}
* GPC Compiler: Added builtin constant TRUE
* GPC Code Editor: Added shortcuts Ctrl+K and Ctrl+Shift+K to comment/uncomment a line or selected lines {GitHub#148}
* Interactive Configuration: added option to create collapsible sections, initially expanded or collapsed {GitHub#87}
* GPC Code Editor: Builtin constants NULL, FALSE and TRUE are also evaluated for block highlighting based on preprocessor directives
* GPC Code Editor: Syntax highlight for general GPC constants and user defined macro identifiers {GitHub#28}
* GPC Code Editor: Backtrack included header files for syntax highlight of defined macros
* Interactive Configuration: Fixed bug on MAC where the interactive configuration does not close if the active application changes {GitHub#149}
* Added software and firmware automatic check for newer versions. If an update is available, a message is printed in the output pane {GitHub#135}
* The current session (opened files) can be saved as project (GPJ) for later restoration or quick swap between session projects {GitHub#116}
* Memory Slots: Press and hold the Ctrl key before drop a script/gamepack into the memory slot to NOT reset the configurations {GitHub#49}
* GPC Compiler: Added inv() builtin function as alias of the '-' operation (int and fix32)
* File Explorer: Fixed bug preventing expanded directories to be restored between sessions
* Layout geometry is now preserved during resize of the main window

2017-06-14, Ver 1.00B
* Qt framework updated to 5.9
* Device Monitor: Fix occasional crash due concurrent data access while re-plotting the graph area
* GPC Script IDE: Stylesheet of Document Tabs configured to produce the same look and feel across Windows and Mac
* Finished implementation of Macro Editor. Complete interface to edit macros files, merging macro files, interpolation, conversion to GPC combo code (Combo Magick), recording and playback functionalities (GameREC).

2017-05-25, Ver 0.105B-560
* Fixed bug causing the "Test and Debug" command to get disabled (grayed out) under some circumstances

2017-05-24, Ver 0.105B
* Finished implementation of Macro Explorer on Device Memory Slots pane
* Finished implementation of Macro Recorder on Device Monitor pane
* GPC Compiler: Added macro_run(), macro_time() and macro_stop() builtin functions
* Initial implementation of Macro Editor pane (open gmk file, Test and Debug command)

2017-05-15, Ver 0.104B
* GPC Compiler: Fixed variable assignment with binary operations (&=, |=, ^=) {GitHub#142}
* Output Pane: Fix copied position of the first select item when its index is higher than the last select item
* Fix issues related with the use of art code on script title/name (Memory Slot and Device Monitor) {GitHub#143}
* Online Resources: Place top tabs (section selection) in the center of the available horizontal space
* Set menubar to have same background color as the toolbar for better look on Windows 10
* Online Resources: Added search history (last 16 search queries are maintained in the search history) {GitHub#140}
* Code Editor: Enable virtual space (space beyond the end of each line) for rectangle selections {GitHub#137}
* File Explorer: If working directory is set, expanded directories are restored between sessions

2017-05-03, Ver 0.103B
* Added sub-directory 'configsd' to store files for be copied to the device's SD-Card when executing the "Configure" command
* If an error occurred when updating a memory slot, re-try the operation couple times before abort and show error
* Mac Version: Fixed disabled menus containing sub-menus after QT framework update {GitHub#141}

2017-03-31, Ver 0.102B
* Device Monitor: Allow the items of device status area to further squeeze to avoid vertical scrollbar
* Device Monitor: CPU Load can now be dragged to plottable channel
* KM Capture: fixed chance of mutex deadlock when exiting capture mode
* Interactive Configuration: removed "Stay on Top" window flag of Gtuner IV Windows version
* GPC Compiler: Fix mxyconverter() compiler error with valid mxyconfig data structure
* Added interface to fetch HID descriptors from a device connected to the Titan Two (menu Tools)
* Updated dialog windows icon to reflect the dialog function
* Qt framework updated to 5.8.0-1

2017-03-17, Ver 0.101B
* Device Monitor: Queued plot refresh for better performance on processing of time sensible events
* KM Capture: refactored mouse input acquisition and threaded with flow control USB data reporting
* Disabled many debugging messages on public release builds

2017-03-13, Ver 0.100B
* Input Translator: return scroll page to top when opening a new file
* Input Translator: temporarily disable UI update while loading an file (avoid flickering)
* Published GPC and GIT can now be dragged directly to memory slots {GitHub#84}
* Online Resources: Show download options if the work already exists locally (Replace, Create Copy, Cancel) {GitHub#72}
* The memory slot number is now clickable for quick load a memory slot, also available via context menu {GitHub#110,#115}
* Online Resources: "Publish Date" changed to "Last Updated" in the "sort by" combobox {GitHub#98}
* GPC Compiler: Fix compiling error with nested jumping tables {GitHub#119}
* Added Cancel option for closing a not saved file (Code Editor and Input Translator) {GitHub#105}
* File Explorer: Added "Delete to Trash" and make it the default delete operation {GitHub#32}
* File Explorer: New directories are now created under the parent of the area where the context menu was called {GitHub#26}
* File Explorer: Keep the directories on top also when sorting by Modified Date {GitHub#66}
* Code Editor: Character encoding changed to UTF8 (previously Latin-1) to support ASCII Art on comments {GitHub#91}
* Publishing: If the published work is Bytecode, updates will be marked as Bytecode by default {GitHub#109}
* Input Translator: Make icon grayed if "No GIT file opened"
* Added "Save a Copy As..." to the file menu, after "save a copy" both files will be in the code editor {GitHub#121}
* File Explorer: Silent close the file, if opened, before execute a delete operation
* Output Panel: Select and copy multiple lines - selection modifiers keys: Ctrl and Shift {GitHub#106}
* Memory Slot: Fix duplicated output message when updating an memory slot configuration {GitHub#107}
* Added link to software and firmware changelog in the Help -> About window {GitHub#111}
* Publishing: The description field is now mandatory {GitHub#128}
* Added memory slot shortcuts: Ctrl+UP, Ctrl+DOWN, Ctrl+0 and Ctrl+<1 to 9> {GitHub#89}
* Fixed crashing on Mac when opening GIT files with Mouse XY configuration {GitHub#125}
* Set Interactive Configuration window to stay on top of Gtuner IV window - Mac {GitHub#101}
* The GPC Input Reference window automatically closes it-self if the active window changes {GitHub#112}
* Auto adjust the width of the Interactive Configuration window to fit its contents {GitHub#102}
* Several tweaks on GUI elements of Mac version to have similar look and feel as the Windows version
* Improvements on the GPC Input Reference: insert GPC designator and auto select combobox {GitHub#113,#100,#58}
* Added command "Sort Tabs by Name" in the Window menu {GitHub#122}
* Implementation of GCMD API to allow the Titan Two scripts to send commands to Gtuner IV {GitHub#114}
* File Explorer: Enable/disable the items from the context menu accordingly the current selection
* Code Editor: Inclusion of bookmarks margin (Ctrl+F2) and navigation (F2, Shift+F2) {GitHub#17}
* GPC Compiler: Added variants of pmem_load() and pmem_save() with argument (memory slot number) {GitHub#123}
* Windows version: increased the version number of assemblies to avoid side-by-side conflits {GitHub#82,#134}
* KM Capture: updated to use a dark theme, frameless window and non-modal
* KM Capture: limit the maximum output HID reports to 1000/s (to avoid overload of the USB data pipe)

2017-02-22, Ver 0.99B-1400
* GPC Compiler: Fix assigment with multi-parameter function on variable declaration
* Shortcut for "KM Capture" changed to F4 (F2 was confliting with file rename in file explorer pane)
* Added option to copy the Mouse XY conversion curve as GPC fix32 array from the data table (Alt modifier)
* The angular parameter of Exponential-Angular curve generator now goes up to 100.00
* Mouse XY Converter: Swaped position between deadzone and curve areas to reflect the new processing order

2017-02-20, Ver 0.99B
* GPC Compiler: the pre-processor directives (i.e. #line) is now processed by the lexer module
* Input Translator: Moved header bar outside the scrolling area
* Input Translator: The header bar now shows the GIT file size
* GPC Input Reference Dialog: Remember position and geometry during current session
* Added Mouse Mapping configuration to Input Translator pane
* Added Mouse XY Conversion configuration to Input Translator pane
* Memory Slots: Check for GIT file too big for internal memory slots
* Device Monitor/Slot Metainfo: Added flag for Mouse XY Conversion ('C')
* GPC Compiler: Added pow() build-in function (for int and fix32)
* GPC Compiler: Added mousemapping(), mousemapping_reset(), mxyconverter(), mxyconverter_reset() and mouse_status()
* GPC Compiler: Added new header file
* Added "Keyboard and Mouse Capture" interface for play using the computer's K&M (similar to MaxAim DI)

2017-01-28, Ver 0.98B
* Show warning message of Input Translator unsaved work when closing Gtuner IV
* Added Keyboard Mapping configuration to Input Translator pane
* Device Monitor/Slot Metainfo: Added flag for Keyboard ('K') and Mouse ('M') Mapping
* Fix bug preventing the "Test and Debug" command to log output messages for GIT files
* Added GPC Input Reference dialog (F1 shortcut), click the row number to insert the designator to the code
* GIT files now includes an flag for EOF
* GPC Compiler: Added keymapping(), keymapping_reset(), key_status() and key_get() build-in functions
* GPC Compiler: Added new header file with key code definitions

2017-01-21, Ver 0.97B
* Changed code for synchronous download (Online Resources) to work with Qt 5.7.1 (Mac)
* Also verify the revision number when checking for new updates (software and firmware)

2016-12-22, Ver 0.96B
* Fix calltips of some GPC build-in functions and commands
* GPC Compiler: pmem_read() with single argument now accepts literal expressions
* Interactive configuration: size policy changed to expanding on several controls
* Online Resources: Added "Release Date" option on "Order by" dropbox
* GPC Compiler: Fixed incorrect memory alignment of variables declared after combos
* Interactive Configuration: Enable links to open in external browser
* GPC Compiler: process pre-processor directives (ie. #line) inside initialization list
* Online Resources: prioritize focus on search box to easy make search queries
* Online Resources: added clear button for search query {GitHub#64}
* GPC Compiler: changed format string of Variables usage report to keep consistency {GitHub#90}
* Qt framework updated to 5.7.1

2016-11-16, Ver 0.95B
* GPC Compiler: Added display_overlay() function {GitHub#42}
* GPC Compiler: Fix rand execution order when placed as parameter
* GPC Compiler: Fix pointer parameter followed by a value parameter causing compiler error {GitHub#81}
* GPC Compiler: Added mslot_get(), mslot_load() and mslot_check() functions {GitHub#75}
* Menu: Added "Gtuner Documentation" and "GPC Language Reference" in the help menu {GitHub#74}
* Publishing: Added placeholder tip for "description", "keywords" and "doc url" input fields {GitHub#63}
* Preferences: Added links to "Register" and "Forgot Password" into ConsoleTuner pane {GitHub#62}
* Script/Gamepack Interactive Configuration window initial geometry increased to 500x560
* Added "Save Layout" (Ctrl+F11) and "Restore Layout" (F11) operations to View menu {GitHub#67}
* Online Resources: prevent embed YouTube to open external browser
* Added option to show Modified Date on File Explorer (Preferences -> Environment) {GitHub#66}
* Publishing: multi-byte characters are converted to HTML-entity when re-publishing a script {GitHub#47}
* Code Editor: Added backward search with Shift+F3 {GitHub#48}
* Code Editor: Fix Replace All not replacing all occurrences when there is a selected text
* The global property "last directory" is updated according the selected directory in the File Explorer {GitHub#25}
* GPC Compiler: List unreferenced variables, functions, combos and/or labels {GitHub#23}
* GPC Compiler: Added port_permit_ffb() function
* Device Configuration: Global enable/disable FFB on each input port {GitHub#77}
* Device Configuration: Force USB Prog Interface to full speed (12Mbps)

2016-10-29, Ver 0.94B
* First public beta release

Titan Two Firmware

The firmware is a set of instructions stored in the read-only memory (flash) of the device, which determines how the hardware should works. Firmware updates are intended to fix bugs, improvements of functionality and add new features to the device.

Version 0.98B
Release Date 23 Feb 2018
Device Compatibility Titan Two device


2018-02-23, Ver 0.98B-17
* USB Host: More improvements related with isochronous pipes (headset, audio data packets)

2018-02-21, Ver 0.98B-16
* USB Host: Fix XB1, and potentially PS4, controller disconnection when headset is plugged {GitHub#115}

2018-02-20, Ver 0.98B-15
* Switch Emu: Fixed battery level reporting
* Switch Emu: Fixed bug in the Bluetooth pairing with Nintendo Switch console
* Switch Emu: Added Bluetooth connection to Nintendo Switch console (Output Protocol: Bluetooth Nintendo Switch)
* HID Driver: Improvements in order to keep the mouse sensitivity the same independently of the polling rate
* HID Driver: Upon G25 detection, use the command suggested in the Logitech driver manual to put the G25 in native mode {GitHub#112}
* BT Stack: Bigger DMA buffer to avoid overflow on receiving data during long operations (i.e. updating/loading slots) {GitHub#114,91}
* Fixed bug where the last inputs sent by the controller remains active after controller disconnection {GitHub#113}
* HID Driver: Added support for dynamic Hat Switch values range {GitHub#110}
* PS4 Driver: Added support for Mad Catz FightPad PRO {GitHub#109}
* BT Stack: Press the Titan Two UP button for 2.5 seconds to enter in Bluetooth pairing mode for 20 seconds {GitHub#105}
* GPC VM: Added key_get() and mouse_get() builtin functions (opcode codes KSGT and MSGT); previous key_get() renamed to key_check()

2018-02-10, Ver 0.98B-12
* Mouse XY Translation: Changes to make deadzone independent of sensitivity and Y/X ratio parameters

2018-02-05, Ver 0.98B-11
* GHID Driver: KM Capture improvements related with Mouse XY Translation changes of update 0.98B-10

2018-02-02, Ver 0.98B-10
* Disabled the clock of all unused modules from the microcontroller to reduce power consumption (~10mA)
* Switch Emu: Implemented Bluetooth auto pairing with Switch console (if BT Module is present)
* The OUTPUT LED now reflects the status of the Bluetooth output connection (green == connected, red == error)
* Mouse XY Translation: Improvements on the mouse XY conversion algorithm
* Improvements on the RSA algorithm to reduce CPU load while processing the signing operation

2018-01-27, Ver 0.98B-8
* PS4 Driver: Added support for Hori MINI 4 Gamepad
* PS4 Driver: Added support for Hori Slime Controller
* PS4 Driver: Added support for ZeroPlus Emio Elite Controller
* Mouse XY Translation: Added Mouse DPI configuration to normalize the sensitivity across different mice models
* XB1 Driver (BT): Fixed overflow in the normalization of analog stick values {GitHub#102}
* Switch Driver: Added support for Joy-Cons (Left and Right) over Bluetooth {GitHub#94}

2018-01-25, Ver 0.98B-5
* USB PROG: Increased interrupt priority while in host mode (OTG) for better performance with high polling rate devices
* BT Stack: Fixed connection issue with PS3 Slim and PS3 Super Slim models (Output Protocol: Bluetooth PlayStation 3)
* PS4 Driver: Added support for Hori Real Arcade Pro (RAP) N4 {GitHub#95}
* Added support for Steam Controller (wired and wireless; fully working, including motion sensors and rumble) {GitHub#30}

2018-01-17, Ver 0.98B-2
* Added configuration to to disable Joystick from Multi Interface HID output
* Bluetooth Module: bug fix and improvements for the new revision of the module (B1-Rev2, production batch)

2017-12-12, Ver 0.98B-1
* XB360 Driver: When in Full-Passthru mode, "initialization done" is flagged when the host sends "Set Configuration" {GitHub#54}

2017-12-11, Ver 0.98B
* GPC VM: Added MREPORT_UPDATED identifier to be used with mouse_status() for check if a new mouse report was received
* Added "USB Multi Interface HID" emulator to output as Keyboard, Mouse and Gamepad/Joystick {GitHub#80}
* GPC VM: New functions to support the HID output: key_set(), key_passthru(), mouse_set(), mouse_passthru()
* Finished implementation of the built-in functions port_connect() and port_disconnect()

2017-12-07, Ver 0.97B-8
* Switch Emu: Detect console turnoff/sleep and, if applicable, flag all connected controllers to also turnoff
* USB Output: Improvements on the algorithm that generates and delivers data reports to the gaming system
* BT Output: Similar improvements as above, but for Bluetooth output
* USB Host: Fix mic audio issues by requesting isochronous data earlier than to what is specified by bInterval {GitHub#74}

2017-12-04, Ver 0.97B-7
* PS4 Driver: Added support for DualShock 4 USB Wireless Adaptor

2017-12-01, Ver 0.97B-5
* Switch Driver: Added flow control checking to respect the bInterval parameter for HD rumble packets
* GPC VM: Added type casting operations between signed and unsigned integers (opcodes UTOB, UTOW, ITOB, ITOW)
* HID Driver: Set Logitech wheels to native mode only for supported models, otherwise keep the wheel in compatibility mode {GitHub#83}

2017-11-24, Ver 0.97B-4
* Switch Emu and Driver: Added support for Nintendo Switch HD Rumble
* Switch Emu: Fix motion sensor calibration parameters (horizontal offsets) {GitHub#85}
* HID Driver: Optimizations on the pooling mechanism to better handle devices with high pooling rate
* XB1 Driver: Force 8ms polling interval to not trigger XIM4 purple lights (when using with Xbox One)

2017-11-20, Ver 0.97B-2
* PS3 Emu: Added compatibility with PlayStation TV
* PS4 Driver: Added support for Nacon Revolution Pro 2
* Reverted the changes on brown-out voltage detector (internal) plus adjustments on the brown-out 3.3V (external)
* Mouse XY Translation: Improvements on the acquiring algorithm of the mouse movement value (smooth as butter now :)

2017-11-06, Ver 0.97B-1
* Adjustments on the brown-out voltage detector to improve immunity to power transients

2017-10-31, Ver 0.97B
* Improvements and optimization on the Bluetooth Module high speed bus driver
* PS4 Driver: Added Bluetooth support for PS4 controllers, including PS4 console authentication
* PS4 Emu: Implemented partial passthru mode for PS4 controllers connected wirelessly to the Titan Two
* XB1 Driver: Added Bluetooth support for Xbox One S controllers (auth with XB1 console not possible over BT)
* Switch Driver: Added Bluetooth support for Nintendo Switch Pro controllers (first time pairing via Gtuner command required)
* Wii Driver: Added support for Wiimote, Wiimote Plus, Wii U Pro, Nunchuk, Classic Controller and Classic Controller Pro
* Note: Bluetooth support for PS3 controller, Navigator and PS3 console were already implemented for evalutation of the BT Module
* Changed accel and gyro coordinate system to the same coordinate convention adopted on the others multi dimensional inputs
* XB360 Emu: Changes on "initialization done" requirements to allow operation on a wide range of systems {GitHub#75}

2017-10-19, Ver 0.96B
* Added support for "disconnect device at port x" command from Gtuner IV (Device Monitor)
* BT Stack: Bluetooth service handlers completely refactored (SDP, L2CAP)
* DS4 Driver: Automatic pair the controller over USB to be used wirelessly with the Titan Two Bluetooth Module
* PS4 Emu: Re-written to emulate all available PS4 controller features, including audio interface
* DS4 Driver: Enhancements associate with the new PS4 Emulator and operation in "Full Passthru" mode
* DS4 Driver: Added support for PS4 third-party controller: ZEROPLUS P4 Wired Gamepad
* PS4 Emu: Fixed issue where switching account on PS4 with PS4 Pro controller makes the device unresponsive {GitHub#77}
* PS3 Emu: Added support for PlayStation 2 compatibility mode on PS3 {GitHub#75}

2017-10-04, Ver 0.95B-1
* GPC VM: Fix issue with pmem_save() not storing the persistent data at the specified memory slot {GtunerIV GitHub#175}
* PS4 Emu and Driver: Fix "leak" of rumble and LED status packets to the controller when in full pass-thru mode {GitHub#70}
* Micro-SD Card: Changed formatting parameters to check if helps with formatting Micro-SD cards presenting FS Error 1 or 15

2017-09-17, Ver 0.95B
* HID Driver: optimizations on the HID Parser data structure (fix potential crash with vendor reports)
* Added support for Nintendo Switch Pro controller (wired mode; fully working, including motion sensors and rumble*)
* USB Output: Improved detection of connected console/system (USB AUTOMATIC MODE), added Nintendo Switch
* Added support for Nintendo Switch console (wired mode; TODO: decode HD Rumble packet) {GitHub#55}
* PS4 Driver and Emulator: Touch-Click swapped with Share button (BUTTON_2 <> BUTTON_18) for better crossover/gaming consistency

2017-09-03, Ver 0.94B-2
* PS3 Driver: Send LED status report using interrupt transfers, instead of control transfers (fix E4 error) {GitHub#68}

2017-08-14, Ver 0.94B-1
* USB Host: Changed timeout for CONTROL transfers from 256ms to 512ms (USB Specification determines the device must reply within 500ms)
* HID Driver: the HID configuration files can now generate output reports to set LED status of HID devices

2017-08-10, Ver 0.94B
* Input Translator: Remappings can now be configured to apply only to specific controller(s), based on the input port {GitHub#62}
* GPC VM: Added remapper_mask() builtin function (opcode RMSK) and updated remapper() to the new Button Remapper format
* HID Driver: Re-written to support per device configuration file with init script, usage map customization, vendor reports and output reports (FFB)
* FS Engine: Better handling of concurrent file access on the Micro SD-Card
* Logitech Wheels: Device initialization to operate in native mode (Driving Force Pro, G25 Racing Wheel, G27 Racing Wheel, Driving Force GT)
* USB Host: Reset error counter for the input port when new device is connected (related with enumeration of problematic devices from 0.91B)
* Several improvements and optimizations for code re-use and reduced binary code footprint
* Added support for Venom X. Remarks: set Venom X to PS mode without controller, the auth controller -if needed- must be connected on Titan Two {GitHub#52}
* Improvement on the connectivity with XIM4 were noticed since firmware 0.92B, therefore related issues on GitHub were closed {GitHub#40,50,56}

2017-08-02, Ver 0.93B-8
* Delayed memory slot recall to ensure all subsystems are initialized and running, otherwise the bytecode may not load properly

2017-07-31, Ver 0.93B
* USB Host: Fixed bug on CONTROL transfers timeout were being triggered by BULK transfers
* Added support for Xbox Wireless Adapter: Working with all XB1 controllers (Original, C, Elite and S models) {GitHub#24}
* XB1WRC Driver: Support for wireless syncing of controllers (pressing the side button on the Xbox Wireless Adapter)
* XB1 Driver: Automatic sync the controller over USB to be used wirelessly with the Xbox One Wireless Adapter
* XB1 Emu + XB1WRC Driver: Partial passthru mode for console authentication when using the Xbox Wireless Adapter

2017-07-14, Ver 0.92B
* BT Stack: Added support for LE (Low Energy) mode, required for the Xbox One S controller and future iOS App
* BT Stack: Several optimizations and removal of unnecessary services such as rfcomm, bnep, pan, etc
* BT Stack: Put the Bluetooth module in pairing mode for 20 seconds when receiving the command "Pair Controller Wirelessly" from Gtuner IV
* BT Stack: Permanent storage of the pairing link-keys on SD-Card
* Press and hold the DOWN button before power up the Titan Two to force PROG to full-speed mode (12Mbps)

2017-07-06, Ver 0.91B
* Optimizations on the bus timing between the uC and USB controller, fixing issue with some device combinations causing unresponsiveness {GitHub#53}
* USB HOST: Retry enumerate problematic devices a limited number of times, then giveup to avoid interference on the other connected devices
* XB1 Emulator: Fix bug where the Titan Two was waking up the console right after the Xbox One is turned off by the user
* HID Driver: Dynamic configuration of HID interfaces, including multiple of same kind (before it was hard coded for single of each G, K and M) {GitHub#57,58}
* HID Driver: Full parsing of the HID descriptor and HID report of keyboards, not relying anymore on the standardized boot mode format
* HID Driver: Better normalization and mapping of Generic HID inputs (gaming devices) to the GPC standardized data input structure

2017-06-29, Ver 0.90B-2
* Press and hold the DOWN button before power up the Titan Two for NOT recall the last used memory slot

2017-06-29, Ver 0.90B-1
* GPC VM: Added opcodes MOD!, DIV! and SR! for correct operation with signed integers
* GPC VM: Fix bug on converting negative values from fix32 to integer (opcode FTOI)

2017-06-28, Ver 0.90B
* Input Translator: Support to disable the default keyboard and/or mouse mapping via script
* Mouse XY Translation: Added support for diagonal dampening correction

2017-06-14, Ver 0.89B-81
* USB HOST: Ignore the device class defined on device descriptor and check for supported classes at interface level

2017-05-24, Ver 0.89B
* Macros: Implemented of SD-Card operations for binary macro files (list, store, delete)
* Macros: Implemented binary macro playback engine with support for interpolation and time drift correction
* GPC VM: Added macro_run(), macro_time() and macro_stop() builtin functions (opcodes MRUN, MRTM and MSTP)
* USB PROG API: Back-end support for Test and Debug macro files

2017-05-17, Ver 0.88B-53
* PS4 Emulator: Fix reboot loop due access to invalid pointer when having an empty sd-card inserted.

2017-05-15, Ver 0.88B-36
* Firmware source code compilation: IDE updated to the newer Atmel Studio 7
* HID Driver: Force HID input devices of type "keyboard" to operate on the boot interface {GitHub#49}
* INPUT-D: Changed b_size for USB interrupt endpoint IN to report size, instead of MaxPacketSize

2017-05-04, Ver 0.88B-16
* Fixed E4 error due missing of deallocation of used memory in the RSASSA-PSS signing algorithm
* The status of the INPUT-D port is now reflected on the device's display (waiting animation <-> mem slot number)

2017-05-03, Ver 0.88B
* Firmware source code compilation: Changed compiler optimization to -OS
* Added support for SHA-256 hash calculation and RSASSA-PSS signing algorithm
* Fix INPUT-D, working for HID devices (keyboard, mouse, joystick, fightstick, steering wheel, etc) {GitHub#43}
* HID Driver: Added support for Keyboard/Mouse on generic HID interfaces (other than the regular Boot interface) {GitHub#48}

2017-04-07, Ver 0.87B
* USB HOST: Support for USB low-speed devices (1.5 Mbit/s), such as keyboards, mice, PS2 adapters, foot-switches, etc
* USB HOST: Fixed several communication issues with Xbox One S controller, including inconsistent FFB and headset noise {GitHub#44}
* PS4 Driver: Fixed battery charge level report of third-party wired controllers {GitHub#45}
* Fetch Device Descriptors: Retry get descriptor if the device stalls the control endpoint, or if error occurred

2017-03-31, Ver 0.86B
* Added API to provide HID descriptors of a device connected to the Titan Two

2017-03-20, Ver 0.85B-66
* Optimizations to improve the data flow of mic audio signal from controller to console
* Mouse XY Translation: Improvement of the algorithm that determines the mouse movement/speed value

2017-03-17, Ver 0.85B
* Mouse XY Translation + Normalization: Apply both axis value if any of the axis has value
* Mouse XY Translation: Calculation of mouse movement value is now based on traveled distance over time

2017-03-13, Ver 0.84B-239
* Mouse XY Translation: Fix value overflow with deadzone shape smaller than circle
* Fix32 MathLib: optimizations on pow() algorithm (used by Mouse XY Translator)
* GPC VM + HID Driver: Fix HID report ID check for key_status() and key_get() build-in functions

2017-03-13, Ver 0.84B
* Added support for "load memory slot X" command from Gtuner IV
* GPC VM: Added pmem_load() and pmem_save() with argument (opcodes PMLN and PMSN)
* Mouse XY Translation: ensure persistence of mouse wheel forward/backward events for around 64ms
* Mouse XY Translation: tweaks to improve mouse micro-movements to be registered by the console
* Mouse XY Translation: fixed indexing issue when mouse value falls outside the conversion curve range
* Keyboard Mapping: Allow single key to be mapped to multiple controller buttons, stick, sensors, etc
* HID Driver: Fix HID report ID check for keyboards and keyboard like devices (footswitch compatibility)
* USB PROG: Fix error code 2 with Gtuner IV when unplug/plug the device while still powered
* SD-CARD API: Disabled support for SDIO (not needed by the Titan Two)
* PROG Interface: Enable double-buffer for USB transfers (increase data bandwidth, required when using "KM Capture")
* PS4 Driver: Fix synchronization of lightbar color when initializing in full-passthru mode
* PS3 Emulator: Fix synchronization of Player LEDs when initializing in full-passthru mode
* USB HOST: Fixed occasional sound distortion on isochronous pipe, most noticable when using XB1 controller with stereo headsets

2017-02-22, Ver 0.83B-222
* Mouse XY Translation: Deadzone is now processed last (dM -> [Sensitivity + YXRatio] -> CC -> DZ)

2017-02-20, Ver 0.83B
* Added support for RAZER RAIJU PS4 controller
* HID Driver: Added support for HID mice
* HID Driver: Added support for user configurable mouse mapping
* Input Translator: Fix bug preventing GIT file to load in some circumstances
* HID Parser: Fix bug on HID Descriptor parsing at "Usage List" consumption for OUTPUT and FEATURE
* HID Driver: Fix issue with HID report allocation when USB device has multiple interfaces
* HID Driver: Poll only interfaces with supported HID Report
* HID Driver: Added support for user configurable mouse XY translation
* GPC VM: Added pow() function (opcodes POW and POWF)
* GPC VM: Added mousemapping() and mousemapping_reset() functions (opcodes MMAP and MRST)
* GPC VM: Added mxyconverter() and mxyconverter_reset() functions (opcodes MXYC and MXYR)
* GPC VM: Added mouse_status() function (opcode MSTS)
* Added support for "Virtual HID Devices" through PROG interface (i.e. play using computer's Keyboard and Mouse)
* Core: Eliminated chance of concurrent malloc calls -which was causing random resets- when using PROG interface

2017-01-28, Ver 0.82B
* HID Driver: Added support for Keyboard, Keypads and user configurable key mapping
* GPC VM: Added keymapping(), keymapping_reset(), key_status() and key_get() functions
* GPC VM: Clear BOTTOM_DOT, if set, after display_overlay() timeout

2017-01-21, Ver 0.81B
* Added support for Generic HID devices (Gamepads, Joysticks, Steering Wheels, Flightsticks, Fightsticks, etc)
* Added support for several PS4 controllers (HORI FIGHTING STICK 4 MINI, HORI TAC 4 PRO, HORI GRIP TAC 4, NACON REVOLUTION PRO)
* Added support for CTHULHU chip {GitHub#18}

2016-12-22, Ver 0.80B
* USB PROG: Fix Gtuner IV connection error 2 when unplug/plug the device to computer
* USB DEV: Detect PS4 turning off event to interrupt passthru mode, if any

2016-11-22, Ver 0.79B
* GPC VM: if intensity on led_set() is negative, the user defined intensity is used
* Restrict LED and FFB data reports to connected controllers to maximum of 1 per ms
* GPC VM: led_vmget() now returns 0 if led_vmset() was not previously called

2016-11-16, Ver 0.78B
* GPC VM: Added display_overlay() function {GitHub#42}
* GPC VM: Fixed combo_restart causing device reset {GitHub#78}
* GPC VM: Added mslot_get(), mslot_load() and mslot_check() functions {GitHub#75}
* GPC VM: Added port_permit_ffb() function
* Added global option to disable the FFB (vibration) of each input port {GitHub#77}
* Disable watchdog while performing potential time consuming sd-card operations {GitHub#61}
* Revert watchdog timeout back to 500ms
* Skip DS3/DS4 Bluetooth pairing if there is no BT Module present {GitHub#22}
* Added configuration to force USB Prog Interface to full speed (12Mbps)
* Fixed issue with stereo headset on Xbox One controller audio jack
* Force HID Endpoint bInterval for PS4 controllers to 4 (to simulate the PS4 console)

2016-11-06, Ver 0.77B
* First open beta release