I received this controller but abstained myself of writing any reviews until I used it long enough. I tested it with several games:-Ultra Street Fighter 4 (running on Xbox One)-Tekken Tag Tournament 2 (running on Xbox One)-Karnov's Revenge (XB1)-Real Bout Fatal Fury Special (XB1)-World Heroes 2 (XB1)-Tekken 7 (XB1)-Killer Instinct (XB1)-Mortal Kombat XL (XB1)-Mortal Kombat Komplete Edition (XB360)-Street Fighter X Tekken (XB360)-Mortal Kombat Arcade Kollection (XB360)-Super Street Fighter II Turbo HD Remix (XB360)-The King Of Fighter XIII (XB360)I love fighting games but always suffered with the Xbox controllers; even though Microsoft improved the Xbox One controller over the 360's, it still wasn't the best controller around, particularly because of the D-pad. Now after some days using this controller I can definitely recommend it for fighting game enthusiasts. For other games such as shooters, sports, adventure and racing games both the original XB1 and 360's controllers work very well. But it is difficult in fighting games to pull certain moves as the D-pad is not the best.The D-Pad in the HORI FC is flawless. It is way easier to pull any moves from any of the aforementioned games and all of them play perfectly with no input lag or any other issues, regardless the console they are run on. The controller does not feel cheap at all at any time. The USB cord is long enough. The controller fits the hands perfectly, The buttons are in good array and they feel very good in the fingers when they are pressed. I had also purchased the Mortal Kombat Fight Pad which is very inferior to the HFC. I won't go deep into specifications of the controller as there are many other reviews making a good work for that part, I just want to mention something about the "Assign" button.Even though it's very easy to assign buttons, I want to mention how to do it as the instruction booklet that comes in the controller is not very clear or very self-explanatory. I actually had to try several times until I finally grasped it. The layout of the front buttons is X, Y, RB and A, B, RT. This array leaves LT and LB buttons in the right shoulders which is a real issue for me, especially for Street Fighter and Mortal Kombat. In the left shoulder side we have the stick buttons for the right and left sticks. Kinda awkward positioning for these... but anyway. How do you assign buttons? Very easy. Let's suppose that I want to place the RT button where the LT button is placed in this HORI FC controller, second button on the right shoulder:1. Press the assign button for around 3 seconds until a red light in the controller starts blinking.2. During this light blinking, since you want to place the RT button where the LT button is, you have to press the LT button first. This is the final destination of the RT button, so you press LT first.3. Finally, press the RT button. When you do that, the light will stop blinking, but the red light won't turn off. This is an indication that the assignation is in use. Now, the RT button is located in the second button of the right shoulder.4. You can continue assigning other buttons to other locations following the same steps. Doesn't matter if the red light stopped blinking, once you keep the assign button pressed for other 3 seconds the light will start blinking again and you will be able to repeat the assignation process.5. Keep in mind that the names of the buttons printed in the controllers will be the key for the next assignations. For example, we already placed the RT button where the LT is located in the controller. So, suppose that now you want to assign the LT button in this controller to the button that should be the LT in the standard Xbox One/360 controller: second button on the left shoulder. In the HORI controller, this button is the RSB (right stick button). Do the same steps: press for 3 seconds the assign button, press the RSB button (because this is the destination of the LT button) and finally press the LT button. Didn't we move the RT button to the LT before? Don't worry! The RT button won't go to the RSB. The controller still acknowledges the LT button as the LT function, So if you are worried that the controller will be a mess, it won't be. AS LONG AS YOU DO IT ONE BY ONE AND IN GOOD ORDER.6. In case you get confused or assign any button incorrectly, or if you want to try different configurations for different games and start all over, then press the assign button again for three seconds and as soon as the light starts blinking again, press the guide button. This will reset the whole controller to its factory settings. Also the red light will turn off, indicating that nothing is being assigned at the moment.7. This controller keeps the button assignation even after you turn off the console and unplug the controller, so you don't have to repeat this process everytime you connect the controller. I guess the configuration is saved in the controller, because I keep switching the controller between the Xbox One and the Xbox 360, but I did not have to run the assign process in the Xbox 360, I just did it in the Xbox One and as far as I can tell, I can use the controller in either console and the configuration remains.I definitely recommend this controller, it is excellent!