@mcPickleRick
Here's the popcorn code, sorry about the delay posting it - I had to ask mrdude if I could share the audio engine code and it took him a while to reply.
I updated it to show how to use the buttons on waveshare amoled touch 1.8 v1.
Example code;
Boot button press - turns screen off (music plays in background)
Power button short press - mute/unmute audio toggle.
Power button longer press - power down esp32-s3. (sleep mode)
Power button even longer press - fully turn of chip.
Touch screen touch detection - toggle scrolling text.
Example is used to learn how to use both cores, using the buttons and debouncing without delays, custom font/music arrays.
If you find the code hard to grasp, feed it into claude or another AI and ask it to explain what each part of the code does, for example you can ask it to explain the code that deals with button presses, or how the touch screen works. Or why we need code for the io explander chip..
That code should help you understand how to implement a menu system into the board for payload selection, you should look at learning to use lvgl and squareline studio for custom interfaces though. I can't share the Amoled injector sketch as mrdude doesn't want me to, but the attached code should give you a very good grounding on how to begin doing that yourself.
Challenge 1:
Since you already have all the code for injection, and this popcorn code what you could do is this....
1: When you touch the screen instead of showing "SOME OTHER TEXT" - you could make it dispay the battery percentage.
Challenge 2:
Once you complete challenge 1, combine both code bases so that you bascically have the popcorn and injector sketches as 1 program running on your dongle. (use AI to help if you get stuck).
Once you complete these 2 challenges - then try to create your own graphics (just a basic sketch), once that works do the same thing, at this point you will become awesome like me and eveyone will think you are cool

....haha.