To render fullscreen ”images” and still keep the size of the binary down I’ve implemented tiled rendering in TAGE. (I probably shouldn’t use the word ”image” here because I don’t mean image as in the data format in TAGE) If you are unfamiliar with tiled rendering you can read about it here, https://en.wikipedia.org/wiki/Tile_engine
Just like with images and sprites I’ve split up static and runtime data. So static data in this context is tile maps and tile banks, and the runtime data is TileRenderer.
So I can have multiple TileRenderers rendering at the same time, using the same tile map and tile bank. (Not that I know when I’d use the same tile map AND tile bank, more common is that I use the same tile bank but different tile maps, to do like parallax effects of a scrolling background, for example)
So a tile bank is describing the pixel data of the tiles, the tile map describe which tile to be rendered where, and the tile renderer will describe where in the screen to render which tile map combined with which tile bank.