otavepto / gbe_fork

Fork of https://gitlab.com/Mr_Goldberg/goldberg_emulator
https://gitlab.com/Mr_Goldberg/goldberg_emulator
GNU Lesser General Public License v3.0
193 stars 56 forks source link

generate_emu_config app 1169040 error #64

Closed gameclamp closed 2 months ago

gameclamp commented 4 months ago

show:

downloading achievements images inside 'output\1169040\steam_settings\img', images count = 54
finished downloading achievements images
3021993242 controller_ps5
3022004665 controller_xboxone
Unexpected error:
'button_back_left_upper'
Vlxst commented 4 months ago

This is related to buttons/keys that are not supported by the controller scheme generator. (I could be wrong) I would really like it to improve GBE controller support

Detanup01 commented 4 months ago

Well I found such a keys that not defined/remapped: button_back_left_upper button_back_right_upper button_capture

No idea what each key means, if you find the purpouse, and what key its represent let me know. (parse_controller_vdf.py) is the file to edit.

CHESIRE721 commented 4 months ago

This is due to the game using dual configurations for keyboard actions. The issue not only lies in how these buttons were configured but also (this is an assumption) that this control scheme is being designed to accommodate the extra buttons of the Steam Deck. Therefore, since there's no record of these buttons in the Goldberg Emu code, these errors are generated. (I've seen this before in another game, CRYMACHINA, where the configuration was blocked in the same way because it didn't know how to define a variable for the buttons, causing two actions to be replicated on a single button.)

I believe this problem will persist unless the Steam Input emulation is changed to a more comprehensive system (such as SDL2, for example), or the Steam Input code is used (which I don't think will happen). Unfortunately, this will likely continue to be an issue as more developers are using Steam Input as a basis for their games.

Just in case, I'll attach the code of the buttons that are causing the problem, although I checked this on Steam, and the control interface shows hardly any configuration according to the mentioned issue. image

image image

otavepto commented 2 months ago

The error mentioned has been fixed in a somewhat hacky way long time ago. https://github.com/otavepto/gbe_fork/blob/484fc2a982c205907695d82a3bbdbc69083411c3/tools/generate_emu_config/controller_config_generator/parse_controller_vdf.py#L21-L24

These buttons have no physical meaning as far as I can tell for xbox controller, and from what I saw during testing, different games set it to different buttons to their liking. I picked a mapping for them from a random game, after the tool has generated the controller .txt files you can correct them if needed.

I'll close this one for now. If there are more problems related to the controller, please feel free to open a new issue describing in detail the new problem.

Also, you might want to check this out if you're using Steam Input: https://github.com/otavepto/gbe_fork/issues/53#issuecomment-2053683129

@Detanup01 The problem with Steam Input (why it broke in this fork) turned out to be this stupid env var https://github.com/otavepto/gbe_fork/blob/484fc2a982c205907695d82a3bbdbc69083411c3/dll/steam_client.cpp#L86 What happens is that the legit overlay will think you're playing the original game, and instead of loading the custom config for the non-Steam game, it will load the config for the actual Steam game even if you don't own it. Their legit overlay has its own mind apparently. But I'm too stubborn now to remove it or create yet another file in steam_settings to en/disable it 😅 . I added it for a more accurate behavior emulation, not sure what to do really.