Hello! Welcome to the forums!
You’re right! It’s something that you’ll change in the kernel.
You’ll first need to know how to convert a raw image to an ascii format. Have a look here:
https://developer.toradex.com/knowledge-base/splash-screen-linux
Make sure you’re in 8 bit mode and have a resolution of 320x240 when editing your image.
From there, you’ll need to download a copy of the kernel you want to build from somewhere like kernel.org.
There are scripts to patch the kernel files to include the new startup image, but you can just be lazy and copy the file to /drivers/video/logo.
From here, you will need to have a config file downloaded from somewhere catered to what the gameshell needs. That could be from some of the users here, or even one you’ve built up yourself.
Since the standard tux boot splash screen has been replaced by the custom one you made, it will be built into the kernel.
Here’s an example of a kernel, and excellent instructions on how to create a u-boot image.
(you’ll also need to sudo apt-get install flex
as well)
That’s all for the second boot screen that stays for longer.
The first boot screen is to do with the header of the SD card.
This could be useful to find out which sector the image, also converted to ascii is located.
https://linux-sunxi.org/Bootable_SD_card
I used DD to dump the header like this
dd if=gameshell.img of=dump.bin bs=1M count=1
Then I opened it up with a hex editor, found out where the image was located, then overwrote the sectors with the ascii code of the image I wanted to inject.
Afterwards, I reapplied the header, like this
dd conv=notrunc if=dump.bin of=gameshell.img bs=1M count=1
(If you’re doing this on MacOS, you’ll need to refer to 1M as 1m)
It’s not hard to do, but at the same time, it’s quite a pain to do for something so small. I did it in my custom DEOT theme, and honestly; I think it was worth it! (It’s dark - you might like it!)
Hopefully some of this made sense, or at least can point you in the right direction to try it yourself.
Good luck! Stay healthy!