RCT2 TUTORIAL FILE FORMAT

Updated: Sep 6, 2014


Back to RCT TID home

There are 3 tutorials in RCT2: Beginner, Custom Rides and RollerCoaster Building. There are two screen sizes available for tutorials: 640x480 and 800x600. If your game is configued for a higher screen size, it will drop down to 800x600 for the tutorial. Each tutorial starts a game in the same park and follows a sequence of previously recorded mouse movements. (Hey! You're getting to watch Chris Sawyer at work!) At the end of the tutorial, the game will be closed. You can interrupt the playing of the recording with keyboard input. If you move the mouse, it will simply be repositioned according to the recorded sequence which will continue.

There are six tutorial files:

File name

resolution

Lesson

Initial step value

tut640a.dat

640x480

Beginner

025EH

tut640b.dat

640x480

Custom Rides

01B6H

tut640c.dat

640x480

RollerCoaster Building

0216H

tut800a.dat

800x600

Beginner

025EH

tut800c.dat

800x600

Custom Rides

00F6H

tut800c.dat

800x600

RollerCoaster Building

02A6H



There are also six files starting with tutc... and six files starting with tutk... In my case, each of the six are identical and they are in a different format than the standard tut's. I presume they are for chinese, korean or something along those line. They are not discussed further here.

As mentioned, the tut files are a recorded sequence of mouse movements. The movements are based on time slices. There is an eight byte sequence used for movement and mouse clicks. There is a fourteen byte sequence used for mouse dragging. Mouse clicks use a flag which follows a strange algorithm, the purpose of which is unknown. The text messages for each tutorial are predetermined; they will show according to a fixed sequence when invoked.

The sequence for each entry is:
Flag word, MouseCommand word, X(2 bytes), Y(2 bytes) [, optional: dummy word, X word, Y word]

Start reading a file by preloading the value 0000 for the Flag word (for some reason, it is not included at the beginning of the files) and then start reading the file at the MouseCommand word. After the first entry, all remaining entries are complete.

If Flag word is:
00 : X & Y will be absolute screen coordinates
01 : X & Y will be signed offset values
xxxx : flag indicating a mouse button action

If Flag indicates a mouse button action, then MouseCommand word indicates:
0001 : left mouse button down
0002 : left mouse button up
0003 : right mouse button down
0004 : right mouse button up

If Flag does not indicate a mouse button action and MouseCommand is:
0000 : this indicates a simple mouse position instruction
0004 : Invoke a text message for this tutorial
0800H : after X, Y, read another (dummy) word and then read X, Y as absolute positions. {the dummy word is always zero – it can be thought of a another instance of Flag indicating that X & Y are absolute screen positions.}

The values of Flag used for mouse button actions follow a strange sequence. Use a StepValue intialized with the value indicated in the table above. To determine the value used for Flag, follow these steps:
1) add twelve to StepValue
2) TempWord = StepValue mod 0300H
3) if TempWord > 01BCH, then Flag = 8B40H OR (StepValue AND 00FFH) {perform logical OR and AND operations}
4) otherwise, Flag = 8D40H OR (StepValue AND 00FFH)

Maintain StepValue to use for next instance of a mouse button action.