Watch the video
However, the real evolution came with games like Zelda and Super Mario Bros., which featured larger worlds and scrolling screens. The NES, despite its limited hardware capabilities, managed to create a continuous world by treating the screen as a grid and using tiles to build the display.
The Agon Light doesn’t have a built-in tilemap system, so we need to program it from scratch. This project builds on a previous one where we loaded and drew bitmap graphics. Now, we’ll extend those techniques to create a scrolling tilemap system.
First, we need a set of tile graphics. I chose assets from the Kenney website due to their appealing art style. We convert these graphics into the RGBA2222 format, similar to our bitmap process.
A tilemap is essentially an array where each element represents a tile ID. We can draw these tiles on the screen using a nested for loop.
To implement scrolling, we need to draw the tiles off-screen and slide them into view. This technique ensures that only the necessary tiles are drawn, optimizing performance for our 8-bit machine.
Our initial implementation worked but wasn’t efficient. We realized that constantly redrawing the entire screen was slowing down the performance. To optimize, we applied a technique known as “dirty rectangles,” where only the parts of the screen that change are redrawn.
Creating a scrolling tilemap system for the Agon Light using C programming was a challenging yet rewarding project. By applying techniques from the NES, we were able to optimize the performance and achieve smooth scrolling on modern hardware.