Under The Hood - Part I - Lilly's Saga - The stones of Evergreen


Table of Contents

Part I: Introduction

About the game

Lilly’s Saga – The Stones of Evergreen by Fabulous 8bit is an acclaimed smooth scrolling platform game for the MSX2 8-bit micro computer, released via MSXdev in October 2022 and as Premium release on cartridge in September 2023. Get the Premium at Côte Gamérs website. Main developers are Pål Frogner Hansen, Wolf (audio) and Julie Trevland (gfx).

What this is

This text describes the final implementation ideas and solutions used in the game and is different from its sibling, the 60-page Making-of story found in the book accompanying the physical box. The two texts complement each other.

While the Making-of is a human readable story, this is a low level and nerdy tech drilldown.

THE MAKING OFTHIS
  • The story of how it all happened
  • The timeline - what happened during those 2.5 years
  • The background, the inception, the PoC, the phases
  • Reasoning behind the various choices
  • About IP, gameplay, story, visual style, character design and music 
  • Lots of sketches and content material from the development
  • Promotion ideas and plan
  • The people behind it
  • A technical explanation of how the final technology and tools work
  • Hard won knowledge
  • Documentation
  • No art
  • No gameplay design
  • No story
  • No timeline

Why this is written

Making a game like this from scratch is a journey. Starting with nothing involved hours and hours of digging through all kinds of material in various odd corners of the internet. The material found was often very loosely linked and you needed to connect the dots yourself. Papers or reports like the one written here, seemed hard to find. Amongst few exceptions were blog posts by Santiago Ontañón which were perfect and exactly to my liking.

The community has helped me greatly on my travels in MSX-land and by writing this, it is a way to give back. Give back in a form I think I would have liked to find when entering the scene a few years ago.


The source code was always planned to be released as well (at some point in time), but lots of C and ASM code will likely not give a good overview. Here I’m taking one step back and showing the idea behind most important things. I believe this is of greater value than a mere code dump.

To be frank, when the source code is out, it will definitely need a huge technical disclaimer –for all the dirty code, all the shortcuts taken, all the beginner’s blunders in python, etc. But right now, we’ll save the shame for later 🙂

I hope the text can spawn aha!’s, give ideas or trigger some good conversations.

Note to the reader

This project is permeated by optimizations (good ones as well as half-ass attempts) and the reader should have the basic knowledge of how the screen is drawn. The rasterbeam, horizontal blank and vertical blank are keywords here.

Ideally, the reader has a basic idea of the component setup in an MSX2 – namely the CPU, the VDP, the PSG and the PPI. And that the built-in vblank-interrupt occurs 50 or 60 times per second. As well as where the rasterbeam is when this occurs. It is also beneficial to have some knowledge about RAM, slots, subslots and pages, as well as VRAM, pages and access.