On the Subject of Bitwise Oblivion

Yep, that’s the noun for “forget”

At the beginning, the module shows three red question marks.

Until every non-ignored module is solved, when a stage advance condition* is met, the module will show a 2×2 grid that has some of its cells filled and 2 green circles, one next to a row and another above or below a column. The red number in the top-left corner shows which stage the module is currently on.

The grid represents a logical operation**. The 2 circles show which row and column represent the true operands and the filled cells represent the true results.

For each stage, note down which operation the grid shows and the 2 strings given by the condition* that advanced the stage.

When the module is ready to be solved, a keypad and a green number in the bottom-left corner will show up on the module and the stage counter will reset to 1.

For each stage, take the Nth character (including spaces) of both strings, N being the green number shown for the stage. Calculate the binary value of these characters given by their UTF-8*** values. Make sure that both binary numbers have the same amount of bits, add zeros to the beginning of the shorter one until its length matches the longer one. Apply the stage’s logical operation to each of their bits (digits) (0 = false, 1 = true), and input the result in its decimal form using the keypad on the module.

If the input was correct, the module will go to the next stage. Otherwise, a strike will be issued and the stage will be displayed (grid and the 2 decimal bytes). From there, you can retry the input for that stage by pressing the “>” button.

*Stage advance conditions

The module will advance a stage when (only after the lights have turned on):
  • Normal play: A non-ignored module is solved. The 2 strings are the name of the solved module and a random string displayed under the grid.
  • Twitch Plays/Discord Plays:
    • In addition to module solves, changing the notes (by !notes# or !notes#append) will also advance the stage. The 2 strings are:
      1. The full text on the note after the change
      2. The name of the user who changed it Caesar-shifted (each letter in the English alphabet shifts in the positive direction, wrapping around) by +#, where # is the index of the note that was changed (1+)
    • If there are any other boss or semi-boss modules**** (excluding other Bitwise Oblivion modules) on the bomb, instead of every solved module, every queued command will advance to the next stage. The 2 strings are:
      1. If the prefix of the queued command is an existing module ID, then the name of the module it points to, otherwise the prefix itself (without the exclamation mark). For example, “!bomb date” gives “bomb”, “!10 submit 1” gives the name of the module with the ID of 10 if there’s such a module, otherwise “10”.
      2. In the case of a named queue, the name the command was queued under, otherwise the name of the person who queued it.

**Available logical operators

Operation name True if...
And Both of the operands are true
Or At least one operand is true
Xor Exactly one operand is true
Nand At most one operand is true
Nor Neither of the operands are true
Xnor Either both or neither of the operands are true

UTF-8 byte (decimal): NA

****List of other bosses and semi-bosses