We have:
foretable * backtable =
rr * m * ccccc * backtable =
random * toggle * group * modifier =
4 * 2 * 32 * 256
As I understand it, we can use 64 groups (2 * 32).
Of those, at least(*) 33 are already taken, namely:
- toggle = 0, with 32 groups (example: 0 with 0x0A = potion)
- toggle = 1, with 1 group (just: 1 with 0x0B = stuck loose tile)
(*) The original game randomly sets the toggle to 1 all over the place. I/we would have to run a script/program to see if any groups with toggle set to 1 are truly unused. Mods can always be modified, but we should not try to work around (any version of) the original game.
Then we have the modifier (256) to come up with variations within these groups.
This leaves random (4) to specify something that impacts all things in the accompanied 'toggle * group * modifier': random * 1 * 32 * 256
So far, random is only used by MININIM with 'toggle * 1 * modifier', to create floors that become visible when touched.
Given the scarcity of available combos, and the ability of level editors to hide what's happening under the hood, as I see it, the user's standpoint should be irrelevant. Nevertheless, unless something applies to all group+modifier combos, the random bits should not be used.
By the way, there are probably some tiles that are part of the legacy format, and that are used in some mods, that are not yet included in MININIM. They are documented in
this PDF. To summarize, ignoring the weird-looking tiles:
- The wall group with modifiers 0x00 and 0x01 (included in level editors)
- The free group has the additional modifier 0x02 (included in level editors)
- The chomp group has several additional modifiers (
not included in level editors)
- The exit left group has several modifiers (
not included in level editors)
However, most of the stuff above doesn't matter.
Because all we need to do is, if someone complements the legacy format, agree on a suitable combo.
And we're already mostly there, I think.
Probably start with a wiki page, to list all legacy tiles and what we've added to it so far.
Then if we think it's complete, we'll just release it as a document.
After that, all we need to do is keep it up to date.