This is my second attempt to resolve#553
Props to @wwylele for pointing out that the last byte of the JEDEC ID is
just the exponent of the size (base 2)
Change image to ubuntu-latest.
Remove redundant :latest from container.
Make python3 pip install into one less line.
Add -j to make to speed it up.
Replace cd with working-directory and remove unneeded cd.
Add if-no-files-found: error to upload-artifact.
Unless the SD card happens to both be accessible and contain a
`gm9/scripts` directory, a system booted with a NTR cartridge isn't going
to have access to the stock scripts and will just show an error upon
going to the menu and selecting `Scripts...`. This patch adds scripts
to the vram tarball only for ntr builds so they can be available even
on completely untouched systems. It shouldn't be necessary when we've
booted from something else because in those cases we've already written
GodMode9.firm to flash using some other means and could have copied all
the scripts then.
One might argue this is sub-optimal because the menu will point there
even if a scripts directory happens to exist on the SD card. One might
instead argue that that behavior is preferable because there's no telling
what gm9 version the scripts on the SD card were intended for.
refactors all the ugly "pendingX" atomic operations into a single "Event" subsystem/interface thing with two operations
moves all existing code to use this instead
also changes the "bkpt" macro to also indicate unreachable code
- completely moved MCU interrupt handling outside of the critical section
- refactored a bit of the PXI code and command names
- merge the I2C read and write cmds to be one
- remove SET_VMODE cmd, now it's always initialized to BGR565 on boot and to RGB565 on firmlaunch
- atomic-ize more stuff
- backlight power control is reinstated but currently buggy, for some reason the __builtin_trap is tripped on GFX_powerOnBacklights and GFX_powerOffBacklights
- also refactored a bunch of other code pertaining to mcu and other hw init, moved the gpu init to a later point since lcd init now depends on mcu events