Post

But most commercial games did it differently. They keep the sprite using the same tiles, and copy frames into that tile location over time to accomplish the animation. This uses fewer tiles, but the game needs to copy the tile data into vram fast enough to get smooth animation without any tearing.

Loading every frame into VRAM works, but it can be memory‑heavy. Have you tried using a tile‑map with a small buffer and swapping only the tiles that change each frame to save space?