6502 emulators

Over the years, in order to better understand how CPUs work, I’ve made two emulators for the 8-bit processor MOS 6502. This processor was widely used in the 1980s and 1990s, being employed in famous machines such as the Nintendo Entertainment System. These two projects emulate a simplified version of the 6502: one ‘clock’ for the emulators corresponds to an entire instruction, while a real 6502 would require many (and a different amount of) clocks to execute an instruction....

December 14, 2023

libcliscreen

libcliscreen is a small C library useful for drawing on the terminal window as if it were a raster screen. Its original purpose was to be used for terminal games, but it may also be used for building simple TUI applications. A key feature of the library is that the screen’s size can be fixed. For example, if a game needs a screen of exactly 60x20 characters but the terminal window is larger than that, the library will add a margin around those 60x20 characters....

November 16, 2023

Minicraft for GBA

Minicraft for GBA is a demake of the game Minicraft, made by Notch for the 22nd Ludum Dare. When I started coding, studying the source code of Minicraft helped me learn the basics of how a videogame is made. I thus decided that my first project for the Game Boy Advance would be a demake of Minicraft. Porting the game to the relatively less powerful console brought with it some technical challenges, so I had to be careful not to overuse precious resources such as CPU clocks or RAM....

November 14, 2023