Skip to content

Windows sdl input : replace uuid crc part with 0000 #1524

Open
@Tartifless

Description

@Tartifless

Your suggestion

Hello,
With every new sdl version and/or every new windows update, the name of xbox controllers or other controllers in case of sdl update can change, thus making bytes 2 and 3 of the joystick guid change.
This makes it very hard to keep controller profiles working correctly when anything updates.

Most emulators are now using the sdl guid but replacing the bytes 2 and 3 with 0000 to avoid this from happening, eg 0300fa675e040000130b000015057801 becomes 030000005e040000130b000015057801 when saved in controller profile xml file.

This would efficiently avoid having to re-create profiles everytime sdl changes the way to compute their crc.

This is what other emulators do:

Common::UUID GetGUID(SDL_Joystick* joystick) {
    const SDL_JoystickGUID guid = SDL_JoystickGetGUID(joystick);
    std::array<u8, 16> data{};
    std::memcpy(data.data(), guid.data, sizeof(data));
    // Clear controller name crc
    std::memset(data.data() + 2, 0, sizeof(u16));
    return Common::UUID{data};
}

Could Cemu implement a similar change in the way the uuid is used and stored ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions