On this new day of MO5 coding, I did quite a lot of things, and especially a lot of experiments around graphics mode.

Generating sprites from images

I tackled a fairly classic problem: drawing sprites in C for the MO5 is… how can I put it… not the most fun thing 😅

At first, I went for a very “handcrafted” approach: drawing in text mode via Notepad, with a space for the background color, an X to draw the shape color, then using a PowerShell script to transform the text into a bit array.

Honestly, it worked pretty well for simple shapes.
But as soon as you want to do something a bit more detailed… it quickly becomes tedious and not very practical.

So I thought:

Why not start directly from an image?

The idea: analyze an image and convert it into a usable C structure in my program.

To do that, I once again used a PowerShell script to transform the image into a C structure. Concretely, the generated structure is a bit array, where each bit represents a pixel.

And on this one, Claude.io really helped me with the image analysis + conversion part.

I am quite proud of the result, of course the script could be improved, but honestly, it does the job well. It also takes MO5 constraints into account: 2 colors (background and shape) for 8 pixels.

Integration into my SDK

Since I wanted to avoid copying this script into all my projects, I integrated it directly into my mo5_sdk project (https://github.com/thlg057/sdk_mo5).

Then, since this SDK is used by my template (https://github.com/thlg057/mo5_template), I just needed to add a convert target in the Makefile.

Result:

  • I drop an image into the project,
  • I run make convert specifying the name,
  • it automatically generates the corresponding .h.

Pretty convenient 👌

Obviously, I also modified the SDK to add the functions required to display the generated sprite (mo5_sprit.h/.c).

And overall… it works pretty well 😉

Tests in GitHub Codespaces

Next, I wanted to test my template in a clean environment.

Off to: GitHub Codespaces.

And honestly: great experience. I had never used it before, and I was quite blown away by this environment, simple but frightfully effective.

I just had to install cmoc, python, and that was it, it worked (almost on the first try).

It mainly allowed me to:

  • validate that my template is portable,
  • debug 2–3 things in the SDK,
  • verify that onboarding is simple.

YouTube video idea

So I think I’m going to make a video to show:

  • how to configure the MO5 environment,
  • how to use the template,
  • how to make a first graphics program,
  • all directly inside a GitHub Codespace.

I think it could help quite a few people get started without struggling with local setup.

Documentation & VPS scripts

At the same time, I also worked on other topics.

Improving MO5 documentation

I kept improving the Markdown documentation:

  • clarifications,
  • examples,
  • cleaner structure.

It’s not the most fun part, but it’s essential.

VPS update script

I also wrote a PowerShell script to manage updates for my VPS hosting my RAG.

The repo contains no credentials, but I still didn’t make it public, for obvious security reasons.

I took the opportunity to:

  • add security headers,
  • aim for an A grade on securityheaders.com,
  • automate deployment.

And now the script can:

  • deploy to my VPS,
  • or locally to my NAS.

Honestly, it simplifies my life quite a bit.

Next steps

Short term:

➡️ Make a video showing how to create a first MO5 graphics program in GitHub Codespaces.

Then I think I’ll move on to something more fun:

🎮 Programming a game in vibe coding

With one idea in mind: linking Augment to my MCP server.

I’m curious to see how far I can push the workflow and vibe coding with the right context.


Another very full day.

A lot of tooling, less “visible”… but solid foundations for what comes next 🚀