Set Game State

From Spiral Framework
Revision as of 01:26, 24 March 2018 by Ziella (talk | contribs)
Jump to navigation Jump to search
Hmmm...
To do:
Also investigate this opcode in DR2

The 0x33 opcode is a multipurpose opcode that is used several times in the game with different effects depending on the arguments. It has 4 arguments that are as follows:

  • Argument 1: Mode
  • Argument 2: Unknown
  • Argument 3: Short for argument 4 (Final result = Arg4 + (Arg3 * 255))
  • Argument 4: Variable

The article itself will be split into sections based on the mode argument, since this is what determines the effect 0x33 has on the game. Argument 4 is typically the variable of a mode and changing this changes the effect of the mode.

Mode 0 : Time of Day

Mode 0 is used to control the "Time of Day" display on the HUD. Argument 4 is the only argument which should be used in this mode as other arguments could cause unintended effects.

Argument 4 Effect
0 Daytime
1 Nighttime
2 Morning
3 Midnight
4 Time Unknown
5 Blue slash replaces the time; Normal nighttime theme
6 and onward White block covers the time; Normal daytime theme

Modes 5 and 6 : Wait

Modes 5 and 6 appear to be wait functions. Put simply, the game will wait for an amount of frames dependent on arguments 3 and 4.


Mode 8: Map Load Player Placement

Mode 8 is used to determine where the player will appear in the next map loaded. The meaning of argument 4 depends on the map being loaded. For instance, when exiting classroom 1-A, this code is run:

0x33|8, 0, 0, 2

This tells the game that when the next map loads, the player should be positioned outside room 1-A. The "position IDs" for each room are currently unknown and so must be researched and documented.


Mode 23: Text Speed

Mode 23 appears to be a text speed function. Just like the wait function, the game will wait for an amount of frames dependent on arguments 3 and 4.

Notes

  • This opcode currently has no name due to its nature and lack of research and must be used with its hexadecimal.