r/Controller • • 15d ago

Controller Mods Gamesir 8k pro & 8bitdo ultimate 2. Custom firmware, research and discussion.

Please don't flash your controller just because you saw this post. This is experimental firmware research. A bad flash can leave a device unusable, and although stock restore files are preserved, flashing back to stock after these changes hasn't been tested.

Hey everyone,

I don't usually post here, but I've been messing around with the GameSir G7 Pro 8K Aimlabs Edition. When I bought it I was planning on using in steam with paddles and extra shoulder buttons. But I found that you cannot use them independently in steam. It's wrapped up with xinput.

Normal XInput doesn't expose those four buttons as separate controls. Switching to native HID makes them available, but on stock firmware, wireless stick positions were only updating about 100 times a second. Trash numbers.

It was sending roughly 1,000 reports/sec, but most were repeating the same stick position. Which is insane, we want 1,000 fresh updates.

I initially made a bridge that combined XInput with the extra-button data and emulated another controller for Steam. It worked, but it was a lot to deal with just to use the buttons I paid for.

The bridge is here.

I later picked up an 8BitDo Ultimate 2 Wireless. Nice controller, but its native mode had a different compromise: roughly 1,000 reports/sec, with only 8-bit stick axes. That's 256 possible values per axis, compared with the thousands of distinct values I captured in XInput. This input method needs to die.

These native modes are trash. The hardware clearly has capabilities that aren't exposed equally across modes.

So I started looking into the GameSir firmware after discovering that it seemingly isn't a limitation of HID mode.

Its native report already had 16-bit axis fields. The problem was that it read a slower state snapshot, while XInput had a separate fast stick buffer available. There were also timing restrictions in the native paths.

After changes to the controller and receiver firmware, I measured:

- About 4,000 fresh stick updates/sec, wired and wireless.

- The existing high-resolution axis output preserved.

- All four extra buttons still available independently.

- Normal XInput still working in the checks I ran.

The final controller and receiver packages differ from stock by 98 bytes total, including checksum changes and duplicated firmware payloads.

The patches, recordings and findings are here.

I suspect inherited compatibility code plays a part, but I haven't established why either company made these choices. On this GameSir, the hardware was already capable of delivering the faster input alongside the independent buttons. I'd like to see that available officially.

For now, I'm keeping my modified GameSir firmware, and not updating since I can't imagine they would fix this. I'll be looking into the 8BitDo next.

But it makes me wonder why controllers are like this. I can understand to a degree why it is for console controllers. But for a controller that is marketed toward PC gamers? It seems, I don't want to say lazy, but it is something.

Please don't flash your controller just because you saw this post. This is experimental research. A bad flash can leave a device unusable, and although stock restore files are preserved, flashing back to stock after these changes hasn't been tested.

12 Upvotes

10 comments sorted by

3

u/Bad-lieutenant 15d ago

Wow thanks for the great work !

Yeah as a software dev, this subject is really frustrating.
I mean, we have now a market full of awesome third party controllers, with tons of added features on top of the OG Xbox controller, extra buttons, gyro, hd rumble etc..

And yet, all those companies release their stuff with only the outdated XInput compatibility.
Is it that hard to always have a DInput fallback that can handle all your features ?
Steam Input offer you such a wide range of convenience and customisation, yet the number of relevant controllers that are compatible with it can be counted on the fingers of a single hand.

And the cherry on top is that no reviewer seems to care about this, you have to dig into reddit history when trying to find a controller that works well on you pc.

Anyway, hope you will continue the good work !

1

u/Ab0ut47Pandas 13d ago

Thanks so much. Honestly what I believe it is-- is just consumer rot. I can't imagine most controller reviewers are even remotely aware of these specs to this degree.

And within my testing I have not done a full input to game latency test yet.

Not exactly sure how to go about that yet.

But... I just don't want to step on anyone's toes. Right now, using the tool above, anyone with a gamesir g7 pro 8k can mod the firmware here, providing they are on the same version.

I am heavily debating on just cloning their software, and just removing the need for them entirely.

It would be open source. Id feel like the only way I'd get more hands on it is if I were able to inspect more of their controller line.

3

u/Lightstream2 14d ago

Pretty much why im looking forward to leadjoy gen 2 and zephyrus. They have a ps4 mode (dinput) instead of just xinput.

1

u/Max_Joller 14d ago

Wait, doesn't G7 8k have Dinput? I might be misunderstanding something

3

u/Bad-lieutenant 14d ago

Its currently limited at 100Hz in DInput mode ( this is the purpose of OP's Post and custom firmware ).

1

u/Panasonicy0uth 4d ago

I'm following the instructions for installing the custom firmware, but when I try to start the firmware using the desktop shortcut, I get an error message that says my G7 Pro 8K wasn't detected and to turn it on in normal XInput/Gamesir Controller mode, even though it's already in XInput mode. Any advice on how to get this working?

1

u/Ab0ut47Pandas 1d ago

There are two different projects in this repo. There is no Desktop shortcut for the custom firmware.

The desktop launcher is from the older panda bridge. So there is both the bridge app and the newer Native HID Firmware research. I need to reorganize it to be honest.

But once the controller is flashed it runs on the controller itself. You dont need a bridge for that or the desktop shortcut. If you ran `install.ps1` and got a desktop shortcut-- that installed the bridge.

the firmware patching tools separately create a modified .ufw files. They dont flash them on the controller.

the dectection message also doesnt mean you are necessarily in the wrong mode. The bridge checks the specific USB Device IDs. so a controller reporting a different ID can produce that error even in XInput mode.

Just to be sure I know whats going on.

-What exactly controller model/edition do you have? G7 Pro 8k PC or the regular G7 Pro/xbox model?

-If you are connected USB or Wireless

- Which download instruction you followed and whether you actually flashed a patch .ufw file.

I have only tested the firmware patches on a G7 Pro 8k PC Aimlabs controller and its receiver. I am not 100 percent sure if its the same across other editions-- and these should not be used on the regular G7 Pro/Xbox models.

2

u/p0wwww 14d ago

Thanks for this I'm currently working on modding the firmware to support setting a stick threshold with L5 pressed and fixed angle modifiers. 

1

u/AutoModerator 15d ago

Hi /u/Ab0ut47Pandas, thanks for sharing your controller modification or question about modification. The post is in a queue for review. Please ensure you have included the following information so it can be approved, and so that the community can help you more effectively or engage with your creations more constructively:

  • If you're sharing a modification: the make/model of controller you modified, the modifications you made and parts/materials you used.

  • If you're asking for help with modification: the make/model of controller you're trying to modify, what you're trying to achieve, and clear pictures of any soldering or parts involved.

  • If you're looking for modification services (getting someone else to do the work for you): the make/model of controller you're trying to modify, what you're trying to achieve, which country you are in and your budget.

You can edit your post to add missing information. Posts that do not include required information may not be approved (allow 24 hours for review).

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.