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
We use a stack-allocated u32 to store a temporary word that gets memcpy'd from a potentially unaligned buffer, but the size of the copy could be less than 4 bytes, therefore leaving garbage in the upper bits of said word. This fixes CODEC in Corgi3DS.
It's possible to flash a TWL-enhanced ROM image to an NTR dev cart.
This cart would function properly as a Nintendo DS game, but might
have issues on a DSi or 3DS.
GodMode9 couldn't dump this type of cartridge before because the ROM
header indicates TWL, but the cartridge doesn't understand the 0x3D
TWL secure area init command, so key exchange failed.
Some development carts have an incorrect ROM header, but the cart ID
is always correct, so prefer the chip ID. If the chip ID is invalid
(unlikely), then fall back to the ROM header.