minimicro-sysdisk icon indicating copy to clipboard operation
minimicro-sysdisk copied to clipboard

feature: Mini Micro BIOS screen

Open JoeStrout opened this issue 6 months ago • 0 comments

Summary

Perhaps Mini Micro needs a "BIOS" (Basic Input-Output System) screen to let the user change global preferences through a UI.

This would be a custom UI that appears above all other display layers, pausing the VM while it is up. The user would interact with this UI with mouse and/or keyboard.

Note that unlike bootOpts.grfon, which is often shipped with a bundled project, most these settings are meant to be set only by the user (particularly for security reasons). In other words: bootOpts.grfon is "settings that go with this app," while BIOS gets you to "settings I (the user) prefer for my machine".

BIOS Content

Settings to consider including:

  • Mounted disk/folder for /usr, /usr2, and maybe /lib (see #35) — possibly with recents or favorites
  • Window size/display scale
  • Game controller configuration (?)

We could also consider including some features that just allow you to view the machine state, for debugging purposes. This could include the state of the 8 display layers, and perhaps what sounds are playing.

Invocation

You could bring up the BIOS screen in two ways:

  1. During app launch: hold down prescribed modifier keys (I think control + shift should work on all platforms)
  2. While running: click or right-click on the Mini Micro logo on the bezel, or press control + shift + f12.

Once the BIOS screen is up, you dismiss it by simply pressing Esc.

Disabled on WebGL, and via bootOpts.grfon

I currently see no need for the WebGL build to have a BIOS screen, and devs deploying games to the web would probably prefer not to have it. So, let's just ignore the usual invocation triggers on WebGL.

In addition, let's add a new bios true/false (defaults to true) key to bootOpts.grfon, allowing project devs to disable the bios for their shipped games. In this case, all the machine settings would revert to defaults (/usr2 and /lib unmounted for example).

JoeStrout avatar Aug 12 '25 17:08 JoeStrout