-
-
Notifications
You must be signed in to change notification settings - Fork 12
Description
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 feature: MiniScript package manager #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:
- During app launch: hold down prescribed modifier keys (I think control + shift should work on all platforms)
- 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).