
Introducing Lu8
I’ve always been fascinated by mini consoles like PICO-8 and TIC-80. There’s something magical about these virtual machines that combine the nostalgia of retro gaming with modern development capabilities. That’s why I started working on Lu8, my own take on what a mini console could be.
Lu8 is designed with specific hardware constraints that make it both challenging and fun to develop for. With a native resolution of 128x128 pixels, 64 sprites, and a color palette inspired by PICO-8, it provides the perfect canvas for creating retro-style games while maintaining modern development comfort.
Some key features of Lu8 include:
- A powerful sprite system supporting up to 64 sprites with a maximum size of 16x16 pixels
- 8 color palettes to work with
- A robust audio system with 4 voices, 16 sounds, and 64 patterns
- Support for 2 gamepads, perfect for local multiplayer games
- A cartridge system that can hold up to 32KB of data
The technical architecture behind Lu8 has been carefully thought out. The console’s specifications strike a balance between limitations that encourage creativity and features that make development enjoyable. For example, the audio system with its 4 voices and 64 patterns provides enough flexibility for creating interesting chiptunes while maintaining that authentic retro feel.
I’m currently fine-tuning the virtual hardware specifications and working on the memory and cartridge system design. One of the most exciting developments has been the creation of LuScript - our programming language. While it started as a Lua 5.4 implementation, I’ve made significant modifications to make it more flexible and comfortable for game development. These changes have resulted in a specialized variant specifically designed for Lu8’s architecture and gaming needs.
What makes Lu8 special is its focus on being both a development platform and a learning tool. Whether you’re interested in low-level programming, game development, or just want to experiment with retro-style creation, Lu8 provides an accessible yet powerful environment to work in.
In the coming posts, I’ll be sharing more details about Lu8’s development process, including deep dives into the implementation of various subsystems, challenges faced, and interesting technical solutions. Stay tuned for tutorials, example games, and documentation that will help you get started with Lu8 development.