A tilemap rendering engine written in assembly language for the MISA architecture (Mnemonimov Assembly).
This project demonstrates a simple tile-based rendering system implemented entirely in assembly. The renderer reads map data stored as raw byte arrays and converts tile values into drawable objects.
- Written entirely in MISA assembly
- Tilemap-based rendering system
- Supports custom map data stored in memory
- Configurable map dimensions
- Simple binary tile format (
0= empty,1= solid tile)
Create a new directory inside Mnemonimov's user_projects folder and clone this repository into it.
Maps are stored as arrays of u8 values:
1,1,1,1
1,0,0,1
1,0,1,1
1,1,1,1
Each value represents a tile:
| Value | Meaning |
|---|---|
0 |
Empty space |
1 |
Rendered tile |
Map size and tile size can be configured:
def WIDTH 32
def HEIGHT 24
def TILESIZE 10The renderer calculates the total amount of tiles automatically:
def TOTAL_TILES WIDTH*HEIGHTThe renderer:
- Initializes a pointer to the map data.
- Iterates through every tile.
- Checks the tile value.
- Converts the tile index into an X/Y position.
- Draws the tile using the MISA graphics system call.
Example:
mod s2, s0, WIDTH # X coordinate
div s2, s0, WIDTH # Y coordinateThe project includes multiple test maps:
sq- Simple square patternsq2- Circle-like patternsq3- Filled shape testlettera/letterb- Character rendering testsfullsizetesting- Full 32x24 map testmaze- Maze rendering test