335
edits
Changes
SOTN/RNG
,Minor edit
Symphony of the Night uses [https://en.wikipedia.org/wiki/Pseudorandom_number_generator| Pseudo-Random Number Generators] when randomness is needed in the game. There are two PRNGs that are currently known about (dubbed Nice and Evil), and each is responsible for handling the randomness of different events in the game.
Both RNGs are set to an initial value of 0 on startup (NOTE: On Saturn the initial value for the Evil RNG is actually 1 instead of 0). For the most part, the Evil RNG is advanced once every frame, even if the player isn't doing anything (hence why it has been dubbed Evil). Different functions within the games game's code will also make specific calls to the Nice and Evil RNG, and so different events will trigger one or the other. A comprehensive list of what events call which RNG is not known, but a few events have been figured out. The Nice RNG is responsible for determining the location of Dracula's teleports in the Prologue, determining [[SOTN/Flea_Man|Flea Man]] jumps, determining the rotations of the Books in the Library, etc. The Evil RNG is responsible for determining whether or not an item drop occurs after an enemy dies and whether or not an item drop will be rare, uncommon, or common. The Evil RNG is also responsible for determining which Food item will drop from a Meal Ticket.
Some events in the game are the result of calls to both, as in the case of [[SOTN/Medusa_Head|Medusa Head]] spawn behavior.