A PGO'd binary can be built as follows:
1. Build with `-DDEVILUTIONX_PROFILE_GENERATE=ON`.
3. Run the timedemo.
4. Build with `-DDEVILUTIONX_PROFILE_USE=ON`.
By default, the profile directory is at `${HOME}/devilutionx-profile`
Example for the RG99:
```bash
# Build the OPK for profiling data collection:
TOOLCHAIN=/opt/rs90-toolchain Packaging/OpenDingux/build.sh rg99 --profile-generate
# Copy the OPK to RG99:
scp -O build-rg99/devilutionx-rg99.opk rg99:/media/sdcard/apps
# Now, run the OPK. It will run the timedemo instead of the actual game and will take a couple of hours.
# ☕☕☕
# Copy the profiling data from RG99
scp -r -O rg99:/media/data/local/home/devilutionx-profile /tmp/devilutionx-profile
# Build the OPK use the collected profiling data:
TOOLCHAIN=/opt/rs90-toolchain Packaging/OpenDingux/build.sh rg99 --profile-use --profile-dir /tmp/devilutionx-profile
# Copy the resulting binary back to RG99
scp -O build-rg99/devilutionx-rg99.opk rg99:/media/sdcard/apps
```
1. Now that all the buildroots we need are open-source,
use defconfigs that ship with them instead of rolling our own.
2. New script: Packagaging/OpenDingux/build-all.sh
3. To avoid polluting top-level home directory, buildroot location
changed to `~/devilutionx-buildroot/$BUILDROOT_TARGET`.
4. Move OPK packaging script to its own file. This is to be able
to make a package for devilutionX in the buildroot itself.
Start and Select are swapped in this version because Start + D-Pad controls backlight on the GKD350h.
There is nothing to map mouse emulation to in this version because of this but it isn't necessary to play the game.
This version looks uglier than on RG350 because it uses software scaling beacuse the IPU on the GKD350h doesn't work.
1. Use RetroFW buildroot directly as it is now open-source.
2. Build in separate build directories.
This lets us build them in parallel and preserves cmake cache across build.