Refactoring of the menu system to reduce flickering and improve code reuse.
"Fix Region Brick" option. This option compares productArea and gameRegion against installed Wii U Menus. If a Wii U Menu that matches productArea can't be found, then others are searched for. If one is found, the user will have the opportunity to change the productArea and gameRegion values to match the installed Wii U Menu.
Here's my CAT-DEV with productArea = KOR and gameRegion = TWN:
The system has a USA Wii U Menu installed, so let's fix it by setting the region to USA:
And verify by re-opening the "Fix Region Brick" menu afterwards:
Some notes:
If no Wii U Menu is installed, it won't allow any region changes. This normally only happens on devkits using PCFS or freshly formatted with a DDI flash.
gameRegion doesn't have to match the Wii U Menu exactly. For example, on a USA system, if gameRegion is set to JPN/USA/EUR, and platformArea is USA, this will be considered valid. The repair option always resets gameRegion to just productArea, though.
This PR has two major changes:
Here's my CAT-DEV with productArea = KOR and gameRegion = TWN:![LG_Smart_TV 2022-08-17 20-50-03](https://user-images.githubusercontent.com/6764716/185268806-222d73e5-e6eb-4b6b-9765-c2ab9c1127ed.jpg)
The system has a USA Wii U Menu installed, so let's fix it by setting the region to USA:![LG_Smart_TV 2022-08-17 20-50-09](https://user-images.githubusercontent.com/6764716/185268869-956a3df0-9f39-4c38-b652-4342b6ab2b6f.jpg)
And verify by re-opening the "Fix Region Brick" menu afterwards:![LG_Smart_TV 2022-08-17 20-50-13](https://user-images.githubusercontent.com/6764716/185268839-ed921bce-3274-4093-a266-6627339dc727.jpg)
Some notes: