Set Game State
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.
Notes
- This opcode currently has no name due to its nature and lack of research and must be used with its hexadecimal.