As we have the _stage module to work with displayio, and the stage and ugame modules frozen on the pybadge, all of the µGame games should JustWork™ on it. And that is indeed how it is on the version D prototype of pybadge that I have and that I have tested it all with. It also works with itsybitsy m4 express with a display connected, and with the minitft featherwing on a feather m4 express, and even on hallowing and of course the µgame.
However, when I asked people to try those games on the final versions of pybadge, they would get a flash of the game's screen, followed by a white screen. We tried different versions of the ugame module, performing a full reset and initialization of the display (python-ugame/circuitpython-stage@7744365), manual reset with the reset pin (python-ugame/circuitpython-stage@bae3a09), etc. — but only after we decresed the SPI clock to 12, we noticed the screen now goes white not immediately, but after 2-10 seconds of working properly.
As far as I know, the only difference with the version I have is that the final version has PA00 and PA01 swapped — those are TFT_LITE and TFT_RST pins. It looks to me like the reset pin is getting pulled low at some point, resetting the display without reinitialization, resulting in it going white. I suspect this might be due to some kind of cross-talk between the data and rst pins, as it becomes less likely at lower communication speed, and doesn't happen at all when there are no constant animations, but without a board to test I can't really be sure. It could also be a result of the old RST pin still being hardcoded somewhere and getting pulled low for some reason, or even another memory corruption bug.
As we have the
_stagemodule to work with displayio, and thestageandugamemodules frozen on the pybadge, all of the µGame games should JustWork™ on it. And that is indeed how it is on the version D prototype of pybadge that I have and that I have tested it all with. It also works with itsybitsy m4 express with a display connected, and with the minitft featherwing on a feather m4 express, and even on hallowing and of course the µgame.However, when I asked people to try those games on the final versions of pybadge, they would get a flash of the game's screen, followed by a white screen. We tried different versions of the
ugamemodule, performing a full reset and initialization of the display (python-ugame/circuitpython-stage@7744365), manual reset with the reset pin (python-ugame/circuitpython-stage@bae3a09), etc. — but only after we decresed the SPI clock to 12, we noticed the screen now goes white not immediately, but after 2-10 seconds of working properly.As far as I know, the only difference with the version I have is that the final version has
PA00andPA01swapped — those areTFT_LITEandTFT_RSTpins. It looks to me like the reset pin is getting pulled low at some point, resetting the display without reinitialization, resulting in it going white. I suspect this might be due to some kind of cross-talk between the data and rst pins, as it becomes less likely at lower communication speed, and doesn't happen at all when there are no constant animations, but without a board to test I can't really be sure. It could also be a result of the old RST pin still being hardcoded somewhere and getting pulled low for some reason, or even another memory corruption bug.