Rayman Designer hacking: Difference between revisions

Integrated event command data from https://github.com/BinarySerializer/BinarySerializer.Ray1/blob/main/src/BinarySerializer.Ray1/DataTypes/Common/CMD/CommandType.cs
RayCarrot (talk | contribs)
No edit summary
Line 67: Line 67:
'''Event commands'''
'''Event commands'''


The event commands will repeat themselves when they come to the end. The complete list is as follows:
The event commands will repeat themselves when they come to the end. Ones marked as self-handled will have different behavior depending on the object type and current state. The command names come from leftover debug information in the GameBoy Advance version. The complete list is as follows:


{| class="wikitable"
{| class="wikitable"
Line 77: Line 77:
| 0, {arg1}
| 0, {arg1}
| GO_LEFT
| GO_LEFT
| Sprite moves left ({arg1} = time in milliseconds, max. 254)
| (Self-handled) Object moves left
|-
|-
| 1, {arg1}
| 1, {arg1}
| GO_RIGHT
| GO_RIGHT
| Sprite moves right ({arg1} = time in milliseconds, max. 254)
| (Self-handled) Object moves right
|-
|-
| 2
| 2
| GO_WAIT
| GO_WAIT
| ?
| (Self-handled) Object stops moving
|-
|-
| 3, {arg1}
| 3, {arg1}
| GO_UP
| GO_UP
| Sprite moves up ({arg1} = time in milliseconds, max. 254)
| (Self-handled) Sprite moves up
|-
|-
| 4, {arg1}
| 4, {arg1}
| GO_DOWN
| GO_DOWN
| Sprite moves down ({arg1} = time in milliseconds, max. 254)
| (Self-handled) Sprite moves down
|-
|-
| 5, {arg1}
| 5, {arg1}
| GO_SUBSTATE
| GO_SUBSTATE
| Set SubEtat (sprite coord. b) to {arg1}
| Set object SubEtat (secondary state) to {arg1}
|-
|-
| 6, {arg1}
| 6, {arg1}
| GO_SKIP
| GO_SKIP
| Skips {arg1} arguments
| Skips {arg1} commands
|-
|-
| 7
| 7
| GO_ADD
| GO_ADD
| ?
| (Self-handled) ?
|-
|-
| 8, {arg1}
| 8, {arg1}
| GO_STATE
| GO_STATE
| Set Etat (sprite coord. a) to {arg1}
| Set object Etat (primary state) to {arg1}
|-
|-
| 9, {arg1}
| 9, {arg1}
Line 137: Line 137:
| 15, {arg1}
| 15, {arg1}
| GO_BRANCHTRUE
| GO_BRANCHTRUE
| Skips to label {arg1} if true
| Skips to label {arg1} if TEST is true
|-
|-
| 16, {arg1}
| 16, {arg1}
| GO_BRANCHFALSE
| GO_BRANCHFALSE
| Skips to label {arg1} if false
| Skips to label {arg1} if TEST is false
|-
|-
| 17, {arg1}[, {arg2}]
| 17, {arg1}[, {arg2}]
Line 153: Line 153:
| 19, {arg1}
| 19, {arg1}
| GO_WAITSTATE
| GO_WAITSTATE
| Waits {arg1} seconds
| Waits {arg1}
|-
|-
| 20, {arg1}, {arg2}, {arg3}
| 20, {arg1}, {arg2}, {arg3}
| GO_SPEED
| GO_SPEED
| Moves for {arg1} seconds (max. 254) with speed X {arg2} and Y {arg3}
| (Self-handled) Moves {arg1} with speed X {arg2} and Y {arg3}
|-
|-
| 21, {arg1}, {arg2}
| 21, {arg1}, {arg2}
Line 181: Line 181:
| 26, {arg1}
| 26, {arg1}
| RESERVED_GO_GOTOT
| RESERVED_GO_GOTOT
| Skips to LabelOffsets[{arg1}] if true
| Skips to LabelOffsets[{arg1}] if TEST is true
|-
|-
| 27, {arg1}
| 27, {arg1}
| RESERVED_GO_GOTOF
| RESERVED_GO_GOTOF
| Skips to LabelOffsets[{arg1}] if false
| Skips to LabelOffsets[{arg1}] if TEST is false
|-
|-
| 28, {arg1}
| 28, {arg1}
Line 197: Line 197:
| 30
| 30
| GO_NOP
| GO_NOP
| ?
| (Self-handled) ?
|-
|-
| 31, {arg1}
| 31, {arg1}
| GO_SKIPTRUE
| GO_SKIPTRUE
| Skips {arg1} commands if true
| Skips {arg1} commands if TEST is true
|-
|-
| 32, {arg1}
| 32, {arg1}
| GO_SKIPFALSE
| GO_SKIPFALSE
| Skips {arg1} commands if false
| Skips {arg1} commands if TEST is false
|-
|-
| 33, {arg1}
| 33, {arg1}
| INVALID_CMD
| INVALID_CMD
| Terminates the commands and loops back, {arg1} is always 0xFF which is used as the command array terminator
| Terminates the commands and loops back, {arg1} is always 0xFF which is used as the command buffer terminator
|-
| 66, {arg1}
| INVALID_CMD_DEMO
| Used in the PS1 demos
|}
|}