As we’ll cover elsewhere, the Storyboard (from 80125A58 in RAM and 0x7E098 in the z64 ROM) is the table that controls the Game Introduction. The Storyboard is a blow-by-blow account of each “Scene”, set out in chronological order, dictating:

  • The venue for the Scene;
  • The length of the Scene;
  • A signpost to the instructions for Wrestler 1;
  • A signpost to the instructions for Wrestler 2;
  • A signpost to the instructions for Wrestler 3;
  • A signpost to the instructions for Wrestler 4;
  • Which transition to use at the end of the Scene (e.g., fade to white);
  • Details of any effect to be used when displaying the Scene (e.g., blur, coloured lighting, letterbox);
  • Details of any graphical overlay to be used in the Scene; and
  • Which camera instruction set to use to “shoot” the Scene.

It’s this final item (camera instructions) that we’re focusing on in this post.

A reminder of what the Storyboard looks like (from 80125A58 in RAM and 0x7E098 in the z64 ROM) – each line represents one Scene in the Game Introduction:

As you’ll see, each Scene (each row in the table) in the Storyboard is 0x1C (28 in decimal) bytes in length:

  • 0x00 Scene Number (8 bit value)
  • 0x01 Sub-Scene Number (8 bit value)
  • 0x02 Effects (Blur, Coloured Lighting, Letterbox, etc) (8 bit value)
  • 0x03 Transition Type (8 bit value)
  • 0x04 Length of Scene (16 bit value)
  • 0x06 Camera Instruction (16 bit value)
  • 0x08 Graphical Overlays (16 bit value)
  • 0x0A Venue/Location (16 bit value)
  • 0x0C Wrestler Instructions – Wrestler 1 (32 bit value)
  • 0x10 Wrestler Instructions – Wrestler 2 (32 bit value)
  • 0x14 Wrestler Instructions – Wrestler 3 (32 bit value)
  • 0x18 Wrestler Instructions – Wrestler 4 (32 bit value)

[Quick learning point: add up all those “bit” values above: you should get 224 bits. There are 8 bits in a byte: so 224 divided by 8 is 28 bytes … as we said above]

As previously mentioned, it’s offset 0x06 (Camera Instruction) that we’re looking at today (I’ve highlighted this for the first 14 Scenes):

So for Scene 0x00 and 0x01, we’re using Camera Instruction 0x0081. For Scene 0x02, we use Camera Instruction 0x0082, for Scene 0x03 we use Camera Instruction 0x083, and so on.

Camara Instruction Dictionary

A total of 83 different Camera Instructions are used in the default Game Introduction and there’s a “dictionary” table that defines the detailed movements for each Camera Instruction.

This Dictionary is found at 8012A280 in RAM and 0x828C0 in ROM:

The format is: 32-bit pointer to the detailed camera instructions, a 16-bit value (that can be ignored for the purposes of the Game Introduction) followed by the 16-bit Camera Instruction name.

So the detailed instructions for Camera Instruction 0x0080 is at 0x80126820. The detailed instructions for Camera Instruction 0x0081 is at 0x80128C24, etc.

Detailed Camera Instructions

If you follow that pointer, this takes you to another series of (usually 6) pointers for camera location/movement:

Pointer to X Location parameters
Pointer to Height parameters
Pointer to Y Location parameters
Pointer to Pitch parameters
Pointer to Pan parameters
Pointer to Roll parameters

Let’s take Camera Instruction 0x0082 as an example. This is the scene where Misawa and Kawada are facing off in the ring as the camera swoops around them.

It starts like this – camera pointing towards the red corner (south-west corner), camera close to the ring-mat, pointing upwards at wrestlers, camera pointed at Misawa’s left elbow:

…. and ends like this (camera now behind Kawada, pointing more towards the north-western neutral corner, camera situated above wrestlers, pointing down slightly):

Here’s how it looks from above:

… and here’s a diagram showing the same thing, together with the Starting Camera Location (in red) and Ending Camera Location (in blue):

If we look at the Dictionary, we can see that the detailed instructions for 0x0082 begin at 0x801268E0:

So let’s navigate to 0x801268E0

As mentioned, you then have a series of Pointers:

Pointer to X Location parameters – 0x80126898 (the red outlined group below)
Pointer to Height parameters – 0x801268A4 (green outline)
Pointer to Y Location parameters – 0x801268B0 (dark blue outline)
Pointer to Pitch parameters – 0x801268BC (orange outline)
Pointer to Pan parameters – 0x801268C8 (yellow outline)
Pointer to Roll parameters – 0x801268D4 (light blue outline)

Each parameter group has 3 sets of 16-bit pairs:

The first 16-bit value is the Value and the 16-value is the target frame for reaching that value.

As there are 3 different pairs, we can use these to map the journey of the camera: Starting Location, Waypoint 1 and Waypoint 2. It’s by using these pairs that we get the camera to move throughout the Scene. In reality, Waypoint 2 is usually left blank (Frame 0x7FFF is the equivalent of ‘not used’).

In this example, the Starting X location (the first 16 bit value) is 0xFFA8 … that’s -88 in decimal. We know this is the Starting Location because the next 16 bit value (0x0000) tells us that this occurs on Frame 0x0000 of the Scene.

If we look at the next 16-bit pair, we have 0xFE76 and 0x007A. 0xFE76 is -394 in decimal (and 0x007A is 122 in decimal). This means that Waypoint 1 for the X camera location is -394, and the camera is to arrive there on frame 0x007A (frame 122*).

*NOTE: The game actually halves the frame value here – so in this case, we reach our destination at Frame 61 (and the Scene only lasts for 60 frames, or 2 seconds)*

In this particular example, the third 16-bit pair is essentially blank (Location 0x0000 and Frame 0x7FFF) so is ignored.

We’ve got something similar with the Y values … we start with a Y location of 0x00F2 (242 in decimal) and end (at Waypoint 1) with a Y location of 0xFFC0 (-64 in decimal) on frame 0x007A.

So what does it mean in practice to go from an X,Y location of -88,242 (on Frame 0) to an X,Y location of -394, -64 (at Frame 122)? Let’s refer back to this image:

As you’ll see, the centre of the ring has an X and Y value of zero. As we move to the right (eastwards) along the X axis, the values are NEGATIVE. The east ring ropes have an X value of -230 (decimal), and the eastern ring apron is at -280 (decimal). The eastern barricade/guardrail is at -530 (decimal).

Meanwhile, for the Y axis, as we move north (away from the ‘hard cam’), the values are positive … so the northern barricade/guardrail is at 530 (decimal).

NB: For the X axis, the fact that moving East takes us into negative values is the OPPOSITE from the Wrestler coordinate values. Here’s an example from when Vader enters from the top right (north-eastern corner) of the arena:

According to the Wrestler Instructions, Vader’s starting location is 600,600 … but if we were to place a camera directly on top of Vader, the camera coordinates would have to be -600,600 (as the X axis is reversed for camera instructions).

In reality, here’s the camera set-up for filming Vader’s entrance:

Pitch

For the pitch of the Camera (i.e., the tilt upwards or downwards), negative values will point the camera upwards, will positive values will point it downwards.

Caution: tilting the camera 90 degrees down (0x005A) will cause the X and Y axis to be inverted (I think). I’m guessing the same happens if you tilt the camera 90 degrees up.

Exceptions

There are a view exceptions to the Camera Instruction format: e.g., the rotating Camera Instructions need additional waypoints, while a couple of fixed camera angles (Vader chair shot and Misawa scene 2 in locker room) have a fixed camera angle with fewer waypoints.

Examples

NB: In the following examples, the graphics/images have the red and blue corners accidentally reversed.

Camera Instruction 0x0081 (Misawa walking down aisle) (red is starting position, blue final position):

Camera Instruction 0x0082 (Misawa and Kawada facing off):

Camera Instruction 0x0083 (Misawa Rolling Elbow to dashing Kawada):

Camera Instruction 0x0084 (Kawada jumping kick to Misawa in turnbuckle):

Camera Instruction 0x0085 (Vader enters from Top Right diagonal aisle):

Camera Instruction 0x0086 (Vader and Kobashi run into each other, staredown):

Camera Instruction 0x0087 (Vader running body splash to Kobashi in turnbuckle):

Leave a Reply

Your email address will not be published. Required fields are marked *