A way this could be done that is not memory intensive is to only update the CHARS that need updating. Many of the areas of the screen in bad apple are all black or all white, so they will not need to be changed on a per-frame basis. So we need to write a code-generating script that takes in a video, converts the frame to virtual boy’s 384×224 2bit format, checks each 8×8 segment to see if it is different from the previous, and if it is different, generate a line of code that writes that char to the world.
This article says that they were able to compress it down to 3.5 Megabytes for the Sega Genesis. So if similar compression tools were used, it would fit on a cartridge.
Thanks, I got VBDE up and running on windows for now, but eventually I’ll try to get the native mac compilation to work. I like libgccvb, it has a lot of features, and good examples that come with it.