RaiseAfloppaFan's Stupid Idea 0

From Esolang
(Redirected from RSI0)
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future.

RaiseAfloppaFan's Stupid Idea 0 or RSI0 (not to be confused with the x86-64 register rsi) is an esolang by User:raiseAfloppaFan3925 and User:Esolangist where anyone here can add any command that they want, as long as they follow the rules. It's turing complete, as proven by User:Esolangist in Talk:RaiseAfloppaFan's Stupid Idea 0#Turing-complete?

User:Esolangist's little chat corner

Please make more base commands :) Esolangist (talk) 18:08, 1 November 2025 (UTC)

Sure, just give me one moment (talk)(User:RaiseAfloppaFan3925)---- 18:13, 1 November 2025 (UTC)

Yeah they have gotten pretty uninspired since I used all of my ideas on the original base set (talk)(User:RaiseAfloppaFan3925)---- 18:43, 1 November 2025 (UTC)

Base set is pretty much finished, it's now up to the extensions unless I get really lucky and get an idea (talk)(User:RaiseAfloppaFan3925)---- 19:10, 1 November 2025 (UTC)

Ideas: Variables. Use Greek letters for their commands maybe? Esolangist (talk) 19:11, 1 November 2025 (UTC)

Guess I'm doing variables. Esolangist (talk) 19:18, 1 November 2025 (UTC)

I'm adding commands in RSI0/Esolangist now. Esolangist (talk) 19:30, 1 November 2025 (UTC)

Alright back to the article

Feel free to add any commands, as long as they meet the following criteria.

Requirements

1. Command must be computable/executable (ex: cannot make a command like "if stack top is 42 then solve the halting problem")

2. Commands must be able to be written forwards and upwards. Left and down are required, while right and up are optional. Example:

horizontal (left/right)
ミク

vertical (up/down)
ミ
ク

3. Group all of your commands into your own section marked with your username Example (wikipage source code, replace the information here with stuff):


= [[User:you]] =

[list your commands here]

If you want (idk if its allowed tho) then make sub-pages (like RaiseAfloppaFan's Stupid Idea 0/you)

Base Specification

You cannot edit this.

All programs in RSI0 are stored in an N-dimensional space. The space is constructed out of blocks, which constitute a single dimension. Blocks can be placed inside of blocks, which creates a multi-dimensional space.

Sanity

Sanity is an important stat in the program that starts out as 100% but decreases by 0.3% per instruction. If the sanity is lower than 75%, then the instruction pointer will have a 5% chance of turning left per instruction. If the sanity is lower than 50%, then it will decrease by 5% per instruction, making it unrecoverable. At less than 25%, the instruction pointer will start "hallucinating" and running a completely random instruction instead of the one that it's on. During this, the instruction pointer may also change direction randomly. Below 10%, the pointer will print "Hello, World", run a cat program, do a truth-machine or something else seemingly randomly, because it is hallucinating the commands needed. At 0%, the program halts and prints this: The pointer hallucinated a halt command, even though there isn't even a halt command in this esolang.


Memory

The base memory for the language is a tape consisting of 2,763 memory cells 32 bits in size. Along with the tape are three registers, A, B, and C, which store 32-bit unsigned integers.

Instruction pointer

The instruction pointer in RSI moves to the right by default, but its direction can be changed with the ^, v, <, and > instructions. Empty spaces (no instructions) halt the program.

Base Commands

Command Action Creator
みく or ミク or D Decrements sanity by 3.9% User:raiseAfloppaFan3925
てと or テト or I Increments sanity by 4.1% User:raiseAfloppaFan3925
| Reflects the IP horizontally, not affected by insanity User:raiseAfloppaFan3925
- Reflects the IP vertically, not affected by insanity User:raiseAfloppaFan3925
< Makes the IP move left User:raiseAfloppaFan3925
> Makes the IP move right User:raiseAfloppaFan3925
^ Makes the IP move up User:raiseAfloppaFan3925
v Makes the IP move down User:raiseAfloppaFan3925
o Makes the IP move forward along the Z-axis User:raiseAfloppaFan3925
O Makes the IP move backward along the Z-axis User:raiseAfloppaFan3925
. Outputs a UTF-32 string starting at the cursor with the A register containing the amount of characters to output. User:raiseAfloppaFan3925
, Asks the user for a string and lays it out in the memory tape, with the A register containing the length. User:raiseAfloppaFan3925
X No-op. User:raiseAfloppaFan3925
A Swaps the values of A and B User:raiseAfloppaFan3925
B Swaps the values of B and C User:raiseAfloppaFan3925
w Writes the value in the A register to the current memory cell User:raiseAfloppaFan3925
r Reads the value from the current memory cell to the A register User:raiseAfloppaFan3925
+ Increments the current cell User:raiseAfloppaFan3925
x Decrements the current cell User:raiseAfloppaFan3925
$ Copies the command 2 steps forward in the IP's direction to the cell at the cursor. Decreases sanity by 0.45%. User:raiseAfloppaFan3925
# Jumps 2 steps forward in the IP's direction. Decreases sanity by 0.6%. User:raiseAfloppaFan3925
/ If the IP is coming from above then redirects it to the left and vice versa. If the IP is coming from the right then redirects it downwards and vice versa. (Immune to insanity as it is a physical barrier) User:raiseAfloppaFan3925
\ If the IP is coming from above then redirects it to the right and vice versa. If the IP is coming from the left then redirects it downwards and vice versa. (Immune to insanity as it is a physical barrier) User:raiseAfloppaFan3925
すし Replenishes 5% hunger. User:raiseAfloppaFan3925
𰻞𰻞麵 Reads from the current memory cell and replaces the instruction 2 spaces ahead with it. Consumes 1.05 sanity and replenishes 10% hunger. User:raiseAfloppaFan3925
𰻝𰻝面 Reads the instruction 2 spaces ahead of it and writes it to the current memory cell. Consumes 1.05 sanity and replenishes 10% hunger. User:raiseAfloppaFan3925
` If the current memory cell is zero, then it behaves like # but consumes 0.65% sanity. Otherwise, behaves like a NOP and consumes 0.4% sanity. User:raiseAfloppaFan3925
🔝 See #User:Esolangist User:Esolangist
🔙 See #User:Esolangist User:Esolangist
and See #User:Esolangist User:Esolangist
¶(lib)
See #User:Esolangist User:Esolangist

Examples

Hello, world!

{
  {v>v>v>v>v>v>v }
  {+テvテvテvテvテvテv }
  {rト$ト$ト$ト$ト$ト$ }
  {v.#.#.#.#.#.#.}
  {vHello, world!}
  {v#.#.#.#.#.#.#}
  {v$テ$テ$テ$テ$テ$テ$}
  {v^ト^ト^ト^ト^ト^ト^}
  {>^>^>^>^>^>^>^}
}

Slightly smaller one (WARNING: UNTESTED)

{
  {v            }
  {+            }
  {r            }
  {#  >v  >v    }
  { >vテX>vテX>v>v}
  {$X$ト$X$ト$X$X$}
  {#.#.#.#.#.#.#}
  {Hello, world!}
  {.#.#.#.#.#.#.}
  {X$X$X$X$X$X$ }
  {>^>^>^>^>^>^ }
}

Infinite loop

{ >テト< }

Vertical version

{
  { v }
  { テ }
  { ト }
  { ^ }
}

Square version

{
  {}
}

Cat program

{ ,. }

Vertical version

{
    { v }
    { , }
    { . }
}

Truth machine

WARNING: This is just a translation from BF.

{
  {v               >>XテトXv}
  {+++++++++→→,←←`#^>x→+vX}
  {v←←x→<<          `   +X}
  {テ v+→<^#`+++++<  X   テX}
  {ト +  `        →  テ   トX}
  {テ +  テ        →  ト   +テ}
  {ト +  ト       >^  ^←++<ト}
  {テ +  x  vx←x→<^#`X+++→<}
  {ト +  ←  テ    `         }
  {テ +  +  ト    X         }
  {ト >++^  >テトテト^         }
  {X  >>→→x               }
  {>`#^>→→.←←v            }
  {    `     X            }
  {    ^テトテト<             }
}

Alternated

>™

(kinda cheating though.)

XKCD Random Number

WARNING: This is a translation from BF

{
  {XKCD>XXXXXXXv   >XXXXXXXv   }
  {++++>x→+++←v>→+`>x→++++←v>→.}
  {TRUE`RANDOMX    `NUMBER X   }
  {    ^XXXXXX<    ^XXXXXXX<   }
}

Here is a translation table that translates RSI0 to BF.

Nondeterministic Multi-tool

This program simply loops until the sanity level reaches zero. Because of the effects of a low sanity level, this program can do any of these.

{
  { >v }
  { ^< }
}

One with borders

{
  {>v  }
  { #  }
  {/--\}
  {|>v|}
  {|^<|}
  {\--/}
}

BF to RSI0

Here is a translation table that translates BF to RSI0.

Even though RSI0 has already been proven Turing-complete before this table, you could say that this reinforces RSI0's Turing-completeness.

BF RSI0 Notes
+ +
- x
<
>
[code]

Base specification


      >>exit
entry`#^>codev
      `      X
      ^XXXXXX<

With User:Esolangist extensions

 •code`
Can be any shape, this is just a simple example. Depending on how long the loop will take to run an iteration or how long it runs in general, you may have to insert some テト and すし instructions.
, ,
. .

User:Esolangist

Yay, first command creator! Note: you are allowed to edit my commands if the icons are duplicates of others.

My commands!
Command What Does It Do? Pseudocode
Moves the pointer forward in the 4th dimension (this is 4d now. implementations are probably possible with multiple command cubes) Esolangist.4d.moveForward()
Opposite of ↓. Esolangist.4d.moveBackward()
Truth Machine. Esolangist.other.TruthMachine()
Adds 1 to N. Esolangist.Accumulator.add(1)
🔝 Goes forward in Nd. Esolangist.Dimensions.Forward(N)
🔙 Opposite of 🔝. Esolangist.Dimensions.Backward(N)
➖, ➗, ✖ Subtract 1 and multiply and divide by 2 respectively to N. Depends on which one you use.
C If N is even, run ➗. Otherwise, multiply by 3 and do ➕. Esolangist.Accumulator.CollatzConjecture()
F Toggles "Float Mode". When it is off, programs behave normally. If it is on, empty spaces are NOPs. Esolangist.other.Float()
Sets N to 0. Esolangist.Accumulator.Reset()
Skips over the next instruction, like Funge-98 #. Esolangist.other.Skip()
¶(name) Imports a library (the available libraries are every user's additions). Example: ¶Esolangist imports all of my commands. ;BASE is the standard library. Esolangist.libraries.import(name)
∆(name) Removes a library. WARNING: You can use this to DISABLE ALL BASE COMMANDS. This is highly unrecommended! Esolangist.libraries.remove(name)
% Takes input and pushes it to the stack. Esolangist.stack.push(Input)
0-9, abcdef Pushes themselves to the stack. Esolangist.stack.push(Depends)
© Turns the top entry on the stack into its ASCII equivalent. Esolangist.stack.pop()

Esolangist.stack.push(ascii(Esolangist.stack.poppedValue()))

🎸🎹🎺🎻🎷 Do addition, subtraction, multiplication, division and modulo respectively to the top two values on the stack. Depends
£ Pops the top value on the stack and outputs it. Esolangist.stack.pop()

print(Esolangist.stack.poppedValue())

& Pops the top value on the stack and discards it. Esolangist.stack.pop()
←→ Same as brain**** < and > Esolangist.BFCompatibility.[Left/Right]
•` •: If current memory pointer value is 0, skip to the next ` in this X axis. `: If current memory pointer is not 0, go back to the last • in this X axis. Esolangist.BFCompatibility.Bracket { / }
¢¥ Vertical variant of •` Same as above
g Gets the (x,y,z,w,...) coordinate, and checks if it is empty. If it is empty, move to the next instruction. Otherwise, push what the command is to the stack. x,y,z,w... are values on the stack. I give up now.
j Similar to g, but jumps to the command instead of pushing it.
🔪 "Kill" the program. What I mean is halt and output:

🔪 X_X __ Why would you kill your program!?

🗑 Pops the whole stack and discards it.
📤📥 Go to the next and previous stacks, respectively. If there isn't a "next/previous stack", create one and go there.
E Edits the command at (Current stack) to the command at (Next stack). If there isn't a "next stack", use the starting point.

NOTE: NEW COMMANDS WILL BE PLACED IN RaiseAfloppaFan's Stupid Idea 0/Esolangist

I'm sorry if I deleted some stuff, RaiseAfloppaFan. Your edit came before mine... :(

No worries, it happens to the best of us.

Notice: It happened again with MULTIPLE EDITS this time. It's worth it though, because I added a stack. Esolangist (talk) 17:47, 1 November 2025 (UTC)

Hey here's some examples!

Cat Program v2

>%£

A+B problem

>%%🎸£

XKCD random number

Converted from brain****

>x•→+←xxxxx`→+.

alternated

This one uses the stack, and is much shorter.

>4£

alternated again

This one uses the Brain**** method (ASCII characters) but combines it with stack power. It is the longest XKCD random number program.

>5a🎺2🎸©£