Announcing Mini Micro 1.2
Tags: miniscript, minimicro, programming, beginners
Published: 2023-07-02 20:52:09

I am delighted to announce the official release of [Mini Micro version 1.2](https://discord.gg/7s6zajx)!  After more than a year of improvements, this is a pretty huge update.

The [Release Notes](https://miniscript.org/MiniMicro/ReleaseNotes.txt) list over 50 improvements, far too much to cover in detail here.  So in this post, I'll hit the highlights, and then follow up with more detail on some of the new features in future posts.

## New Demos

Mini Micro 1.2 has several new demos, including a couple of full, playable games, like /sys/demo/asteroids:

![/sys/demo/asteroids](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9mbsjmrpn12l1ltzziyi.png)

...and /sys/demo/quadris:

![/sys/demo/quadris](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bbdqmayij1b2jjnjl74k.png)

It also adds the concept of a "shell," which is a program that is run automatically whenever the current program exits (or when you manually enter the `exit` command).  Two of the new demos can act as shells.  First, there is /sys/demo/desktop, which adds a simple but functional GUI file launcher:

![/sys/demo/desktop](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qiod0i99slmcndv9k2rd.png)

...and, for those with a more sci-fi bent, there is /sys/demo/lcars:

![/sys/demo/lcars file browser](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/857mu68npygv3iys80bh.png)

The LCARS demo includes not only a file browser, but also a fully functional clock, calculator, and MiniScript news reader!

![/sys/demo/lcars news reader](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wcwk93zgido8fbe9l371.png)

## New Commands

Version 1.2 includes a couple of new commands (defined in /sys/startup.ms).  First is the new `demos` command, which runs /sys/demo/demos, presenting a friendly menu of selected (though not all) demos.  If you press "A" in this menu, it will switch into "auto-run" mode, which cycles through a subset of the demos, even auto-playing asteroids and quadris, making a lovely screen-saver or "attract" mode.  Try it!

Another new command is `findFile`, which uses some new functions in the /sys/lib/textUtil to display a cool little file browser, right in the text display.  With this you can quickly locate that image or sound you were thinking of, and get the path to copy into your code.

![findFile command](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66t9bm2nlxgtbnhkfhks.png)

## New/Improved Libraries

The libraries in the /sys/lib folder have gotten some enhancements, plus some entirely new members.  Chief among these is the **bmfFonts** library, which draws bitmap fonts (including proportional and pre-colored fonts) into a pixel display.  All the BMF fonts at sites like [this one](https://bmf.php5.cz/) are now usable in Mini Micro, right out of the box.

![bmfFonts demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b1yjdoitqc8aoafck770.png)

There's also an **importUtil** module, which provides a standard `ensureImport` function to simplify importing of modules in a complex project.

I'll have a lot more to say about the new/improved libraries in future posts, so let's move on for now.

## New APIs

Mini Micro has a focused but powerful API for doing graphics, sounds, game input, HTTP, and more.  Version 1.2 adds a few new capabilities to this set.

In the [Image](https://miniscript.org/wiki/Image) class, we now have a new `fromScreen` method that takes a screen shot, including all the display layers exactly as the user sees them.  On an image instance, you can also now call `flip` and `rotate` to transform your image in simple ways.

Sound objects now have an `amp` method that gives you, in real-time, the amplitude of a playing sound.  This will be useful if you want to animate a character's mouth along with their dialog, or draw a waveform as a sound plays, etc.

It's always been possible to draw into a PixelDisplay using `gfx.print`, in one of several font sizes.  But we felt there was too big a gap between the "small" and "normal" sizes; we really wanted something in between.  So, in version 1.2, Mini Micro supports a "medium" font that's in between — see the top-right text in the image below.

![PixelDisplay.print demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lkzb1tvrf1r4fn38is67.png)

## Customizable Code Editor

Finally (for now), the code editor got a half-dozen improvements — including, by popular request, fully customizable colors!  Did somebody say "dark mode"?

![Code editor with dark theme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ta4m853rdsw9pi5yp7zz.png)

I'll have a full post about this coming up, too.

## Conclusion

Mini Micro 1.2 is a major upgrade that adds a whole lot of cool new functionality, while still being simple, focused, and fun to use.  It's a recommended upgrade for all Mini Micro users.

And if you're not already using Mini Micro, what are you waiting for?  It's free, ad-free, and ready for your neo-retro computing fun.  Get it at [https://miniscript.org/MiniMicro](https://miniscript.org/MiniMicro)

Please be patient with us while we get all the documentation and wiki updated for the new goodies.  Meanwhile, if you have any questions or just want to say hello, [join us on Discord](https://discord.gg/7s6zajx), where you'll find an enthusiastic, friendly community eager to share the fun.