The demo was written as an alternative to the one in evo-sdk (C language) for zx-evo, but written in asme. At the same time, while writing, I understood the peculiarities of the graphics modes.
The sprite of balls has a resolution of 64 * 16 (i.e. 4 balls in a line, each ball is 16 * 16), each ball has 32 colors, i.e. the card itself with balls of 128 colors. The background picture has a resolution of 320 * 256, 128 colors. To get these files, I cut out what I needed in Photoshop, scaled it, "recolored" in 8bit per point, 128 colors. I collected the balls separately from the background image (I simply cut out the "molecules" from the original file, scaled them, assembled them into one picture and then distorted them with colors. Then I pulled out the palette through winhex for the balls and the background from their bmp files, and then cut out the whole heading, leaving only the sprite data You can safely slip your background and balloon sprites.
The demo has a procedure for re-indexing colors. The first file loads the background image and palette. The colors in the file are indexed from 0 to 7fh. The balls are loaded after. Since the palette is 256 colors, and the first 128 are already taken for the background, then after loading the sprite of balls, I reindex. Just over the entire file size if color! = 0xff then color + = 128.