I might be able to explain why both motors go in reverse. I know if I just turn on my controller and don't press the analog button, it goes full reverse. This is because your telling the code to look at the analog stick, get a value and map it for the motors. If the analog button is not pressed, then the sticks output 0 and that in turn is mapped to full reverse.
This could also be done if the controller suddenly cuts off so maybe your adapter is not getting enough current or a stable 3.3 voltage. If you want, you can debug and use some serial prints to see what values are being sent to the robot.