All right! After hours of testing, switching numbers, compiling Android builds and some good guessing, I managed to repair the flixel/input/gamepad/id/OUYAID.hx
And it turns out that it was impossible for that file to work from the very start (May 21, 2015).

Here's the current code:

class OUYAID { public static inline var O:Int = 0; public static inline var U:Int = 3; public static inline var Y:Int = 4; public static inline var A:Int = 1; public static inline var LB:Int = 6; public static inline var RB:Int = 7; public static inline var LEFT_STICK_CLICK:Int = 10; public static inline var RIGHT_STICK_CLICK:Int = 11; public static inline var HOME:Int = 2; public static inline var LEFT_TRIGGER:Int = 8; public static inline var RIGHT_TRIGGER:Int = 9; // "fake" IDs, we manually watch for hat axis changes and then send events using these otherwise unused joystick button codes public static inline var DPAD_LEFT:Int = 13; public static inline var DPAD_RIGHT:Int = 14; public static inline var DPAD_DOWN:Int = 15; public static inline var DPAD_UP:Int = 16; // If TRIGGER axis returns value > 0 then LT is being pressed, and if it's < 0 then RT is being pressed public static var LEFT_ANALOG_STICK(default, null) = new FlxGamepadAnalogStick(0, 1, { up: 23, down: 24, left: 25, right: 26 }); public static var RIGHT_ANALOG_STICK(default, null) = new FlxGamepadAnalogStick(11, 14, { up: 27, down: 28, left: 29, right: 30 }); public static inline var LEFT_TRIGGER_ANALOG:Int = 17; public static inline var RIGHT_TRIGGER_ANALOG:Int = 18; }

In fact, those numbers are coming from openfl-ouya/tv/ouya/console/api/OuyaController.hx

static inline public var BUTTON_O:Int = 0; // 96; static inline public var BUTTON_U:Int = 3; // 99; static inline public var BUTTON_Y:Int = 4; // 100; static inline public var BUTTON_A:Int = 1; // 97; static inline public var BUTTON_L1:Int = 6; // 102; static inline public var BUTTON_L2:Int = 8; // 104; static inline public var BUTTON_R1:Int = 7; // 103; static inline public var BUTTON_R2:Int = 9; // 105; static inline public var BUTTON_MENU:Int = 0x01000012; // 82; static inline public var AXIS_LS_X:Int = 0; static inline public var AXIS_LS_Y:Int = 1; static inline public var AXIS_RS_X:Int = 11; static inline public var AXIS_RS_Y:Int = 14; static inline public var AXIS_L2:Int = 17; static inline public var AXIS_R2:Int = 18; static inline public var BUTTON_DPAD_UP:Int = 19; static inline public var BUTTON_DPAD_RIGHT:Int = 22; static inline public var BUTTON_DPAD_DOWN:Int = 20; static inline public var BUTTON_DPAD_LEFT:Int = 21; static inline public var BUTTON_R3:Int = 11; // 107; static inline public var BUTTON_L3:Int = 10; // 106;

And it is entirely possible that it was never tested back in 2015. After a brief search through the forum, maybe I was the only one making games for the OUYA using HaxeFlixel? Anyway, here are the correct numbers:

class OUYAID { public static inline var O:Int = 6; public static inline var U:Int = 8; public static inline var Y:Int = 9; public static inline var A:Int = 7; public static inline var LB:Int = 15; public static inline var RB:Int = 16; public static inline var LEFT_STICK_CLICK:Int = 13; public static inline var RIGHT_STICK_CLICK:Int = 14; public static inline var HOME:Int = 0x01000012; // Not sure if press HOME is taken in account on OUYA public static inline var LEFT_TRIGGER:Int = 4; public static inline var RIGHT_TRIGGER:Int = 5; // "fake" IDs, we manually watch for hat axis changes and then send events using these otherwise unused joystick button codes public static inline var DPAD_LEFT:Int = 19; public static inline var DPAD_RIGHT:Int = 20; public static inline var DPAD_DOWN:Int = 18; public static inline var DPAD_UP:Int = 17; // If TRIGGER axis returns value > 0 then LT is being pressed, and if it's < 0 then RT is being pressed public static var LEFT_ANALOG_STICK(default, null) = new FlxGamepadAnalogStick(0, 1, { up: 23, down: 24, left: 25, right: 26 }); public static var RIGHT_ANALOG_STICK(default, null) = new FlxGamepadAnalogStick(2, 3, { up: 27, down: 28, left: 29, right: 30 }); }

By the way, I removed those two lines because those vars are never used elsewhere:
public static inline var LEFT_TRIGGER_ANALOG:Int = 17;
public static inline var RIGHT_TRIGGER_ANALOG:Int = 18;

One last note, I didn't manage to find the correct number for HOME. I believe this button does not work like the others on the OUYA and it needs the official OUYA lib or something.

After four years, I'll finally be able to update my old game on this dead system. Yeah!