There is a relatively common issue where if the Pico/RP2040 device has been previously flashed with something other than GP2040, the area of flash used for emulated EEPROM could contain invalid values causing the firmware to misbehave (locked to certain input type, buttons might not work, etc.).
Add CRC check to the EEPROM data and perform an EEPROM reset if the CRC does not match when loaded.
There is a relatively common issue where if the Pico/RP2040 device has been previously flashed with something other than GP2040, the area of flash used for emulated EEPROM could contain invalid values causing the firmware to misbehave (locked to certain input type, buttons might not work, etc.).
Add CRC check to the EEPROM data and perform an EEPROM reset if the CRC does not match when loaded.