kiwis.dev

Overview

The Shooting Range stage in Wii Play bears the identifier "RPDucScene".

ExcelBin

The scene's common archive contains the following ExcelBin (ver. 1) files:

DucBalloonParam.bin

This file contains parameters for the balloon objects. The file begins with a set of parameters common across all balloons, and is followed by parameters unique to each balloon group.

Lastly, the file contains parameters for the balloon strings.

Balloon Common Parameters
Offset Type Name Notes
0x0000 float velocityDecay Scale repeatedly applied to all balloons' velocity.
0x0004 uint32 value Point value of all balloons.
0x0008 float baseSize Base size of all balloons.
0x000C float Some string rope physics constant.
0x0010 float Some string rope physics constant.
0x0014 float stringCullLen Estimated length of the string for culling balloons which leave the top of the screen.
0x0018 float Some string rope physics constant.
0x001C float stringOffset Y offset of the string (relative to the center of the balloon).
0x0020 uint32 tiltSpeed Tilt speed of the balloons. Binary angle (0-65535).
0x0024 float tiltAngle Tilt angle of the balloons (in degrees).
0x0028 N/A Total size N/A

C++ data structure:

struct RPDucBalloonCommonParam {
    /* 0x00 */ f32 velocityDecay;
    /* 0x04 */ u32 value;
    /* 0x08 */ f32 baseSize;
    /* 0x0C */ f32 _0C;
    /* 0x10 */ f32 _10;
    /* 0x14 */ f32 stringCullLen;
    /* 0x18 */ f32 _18;
    /* 0x1C */ f32 stringOffset;
    /* 0x20 */ u32 tiltSpeed;
    /* 0x24 */ f32 tiltAngle;
};
Balloon Group Parameters
Offset Type Name Notes
0x0000 float hitboxSize Size of the balloons' hitboxes. Calculated as (hitboxSize / baseSize).
0x0004 float velocityY Vertical velocity of the balloons.
0x0008 float velocityX Horizontal velocity of the balloons.
0x000C float modelSize Visual size of the balloons. Calculated as (modelSize / baseSize).
0x0010 N/A Total size N/A

C++ data structure:

struct RPDucBalloonGroupParam {
    /* 0x00 */ f32 hitboxSize;
    /* 0x04 */ f32 velocityY;
    /* 0x08 */ f32 velocityX;
    /* 0x0C */ f32 modelSize;
};
Balloon String Parameters
Offset Type Name Notes
0x0000 float segment1Len Length of the first string segment.
0x0004 float segment2Len Length of the second string segment.
0x0008 float segment3Len Length of the third string segment.
0x000C float segment4Len Length of the fourth string segment.
0x0010 float Purpose unknown.
0x0014 N/A Total size N/A

C++ data structure:

struct RPDucBalloonStringParam {
    /* 0x00 */ f32 segment1Len;
    /* 0x04 */ f32 segment2Len;
    /* 0x08 */ f32 segment3Len;
    /* 0x0C */ f32 segment4Len;
    /* 0x10 */ f32 _10;
};
File Layout

C++ data structure:

struct RPDucBalloonParam {
    /* 0x00 */ RPDucBalloonCommonParam commonParam;
    /* 0x28 */ RPDucBalloonGroupParam groupParam[8];
    /* 0xA8 */ RPDucBalloonStringParam stringParam;
}; /* sizeof(RPDucBalloonParam) == 0xBC */ 

The file is assumed to contain exactly eight balloon groups, and therefore cannot be resized.

DucCanParam.bin

This file contains

dummy
Offset Type Name Notes
dummy N/A Total size N/A

C++ data structure:

struct RPDucCanParam {
};

DucCircleMatoParam.bin

This file contains parameters for the circular target objects. The file begins with a set of parameters common across all targets, and is followed by parameters unique to each target group.

Target Common Parameters
Offset Type Name Notes
0x0000 float Purpose unknown.
0x0004 float Purpose unknown.
0x0008 float Purpose unknown.
0x000C float Purpose unknown.
0x0010 float Purpose unknown.
0x0014 uint32 bonusValue1 Point value of the bonus targets in 1P mode.
0x0018 uint32 bonusValue2 Point value of the bonus targets in 2P mode.
0x001C uint32 regularValue1 Point value of the regular targets in 1P mode.
0x0020 uint32 regularValue2 Point value of the regular targets in 2P mode.
0x0024 uint32 faceGoodValue1 Point value of the good face targets in 1P mode.
0x0028 uint32 faceGoodValue2 Point value of the good face targets in 2P mode.
0x002C uint32 faceBadValue1 Point value of the bad face targets in 1P mode.
0x0030 uint32 faceBadValue2 Point value of the bad face targets in 2P mode.
0x0034 float baseSize Base size of all targets.
0x0038 float posXScaleWide Scale applied to target X-coordinates (16:9).
0x003C float posYScaleWide Scale applied to target Y-coordinates (16:9).
0x0040 float posZWide Z-coordinate of all targets (16:9).
0x0044 float posXBaseWide Base X-coordinate of all targets (16:9).
0x0048 float posYBaseWide Base Y-coordinate of all targets (16:9).
0x004C float posXScaleStd Scale applied to target X-coordinates (4:3).
0x0050 float posYScaleStd Scale applied to target Y-coordinates (4:3).
0x0054 float posZStd Z-coordinate of all targets (4:3).
0x0058 float posXBaseStd Base X-coordinate of all targets (4:3).
0x005C float posYBaseStd Base Y-coordinate of all targets (4:3).
0x0060 N/A Total size N/A

C++ data structure:

struct RPDucCircleMatoCommonParam {
    /* 0x00 */ f32 _00;
    /* 0x04 */ f32 _04;
    /* 0x08 */ f32 _08;
    /* 0x0C */ f32 _0C;
    /* 0x10 */ f32 _10;
    /* 0x14 */ u32 bonusValue1;
    /* 0x18 */ u32 bonusValue2;
    /* 0x1C */ u32 regularValue1;
    /* 0x20 */ u32 regularValue2;
    /* 0x24 */ u32 faceGoodValue1;
    /* 0x28 */ u32 faceGoodValue2;
    /* 0x2C */ u32 faceBadValue1;
    /* 0x30 */ u32 faceBadValue2;
    /* 0x34 */ f32 baseSize;
    /* 0x38 */ f32 posXScaleWide;
    /* 0x3C */ f32 posYScaleWide;
    /* 0x40 */ f32 posZWide;
    /* 0x44 */ f32 posXBaseWide;
    /* 0x48 */ f32 posYBaseWide;
    /* 0x4C */ f32 posXScaleStd;
    /* 0x50 */ f32 posYScaleStd;
    /* 0x54 */ f32 posZStd;
    /* 0x58 */ f32 posXBaseStd;
    /* 0x5C */ f32 posYBaseStd;
};
Target Group Parameters
Offset Type Name Notes
0x0000 float hitboxSizeWide Size of the targets' hitboxes (16:9). Calculated as (hitboxSizeWide / baseSize).
0x0004 float hitboxSizeStd Size of the targets' hitboxes (4:3). Calculated as (hitboxSizeStd / baseSize).
0x0008 float modelSizeWide Visual size of the targets (16:9). Calculated as (modelSizeWide / baseSize).
0x000C float modelSizeStd Visual size of the targets (4:3). Calculated as (modelSizeStd / baseSize).
0x0010 uint32 spinTime Duration of spinning in/out animation (in frames).
0x0014 uint32 waitTime1 Duration of waiting period in 1P mode (in frames).
0x0018 uint32 waitTime2 Duration of waiting period in 2P mode (in frames).
0x001C N/A Total size N/A

C++ data structure:

struct RPDucCircleMatoGroupParam {
    /* 0x00 */ f32 hitboxSizeWide;
    /* 0x04 */ f32 hitboxSizeStd;
    /* 0x08 */ f32 modelSizeWide;
    /* 0x0C */ f32 modelSizeStd;
    /* 0x10 */ u32 spinTime;
    /* 0x14 */ u32 waitTime1;
    /* 0x18 */ u32 waitTime2;
};
File Layout

C++ data structure:

struct RPDucCircleMatoParam {
    /* 0x00 */ RPDucCircleMatoCommonParam commonParam;
    /* 0x60 */ RPDucCircleMatoGroupParam groupParam[8];
}; /* sizeof(RPDucCircleMatoParam) == 0x140 */ 

The file is assumed to contain exactly eight target groups, and therefore cannot be resized.

DucClayParam.bin

This file contains

Clay Common Parameters
Offset Type Name Notes
0x0000 float velocityDecay Scale repeatedly applied to all clays' velocity.
0x0004 float maxSpinZ Z-coordinate where clays reach their maximum spin rate.
0x0008 float spinUpZ Z-coordinate where clays begin to spin faster.
0x000C float earlyZ Minimum Z-coordinate where clays can be shot down early.
0x0010 uint32 earlyValue Point value of clays shot down early.
0x0014 uint32 lateValue Point value of clays shot down late.
0x0018 float baseSize Base size of all clays.
0x001C float rotateDecay Scale repeatedly applied to all clays' angular velocity.
0x0020 float rotateVelocity Initial angular velocity of all clays.
0x0024 N/A Total size N/A

C++ data structure:

struct RPDucClayCommonParam {
    /* 0x00 */ f32 velocityDecay;
    /* 0x04 */ f32 maxSpinZ;
    /* 0x08 */ f32 spinUpZ;
    /* 0x0C */ f32 earlyZ;
    /* 0x10 */ u32 earlyValue;
    /* 0x14 */ u32 lateValue;
    /* 0x18 */ f32 baseSize;
    /* 0x1C */ f32 rotateDecay;
    /* 0x20 */ f32 rotateVelocity;
};
Clay Group Parameters
Offset Type Name Notes
0x0000 float wide
0x0004 float std
0x0008 float
0x000C float v1y
0x0010 float v1z
0x0014 float
0x0018 float
0x001C float
0x0020 float
0x0024 float
0x0028 float maxDropVel Maximum reachable velocity when the clay is falling down.
0x002C float dropAccel Acceleration when the clay is falling down.
0x0030 float modelSize Visual size of the clay.
0x0034 float velocity Launch velocity of the clay.
0x0038 N/A Total size N/A

C++ data structure:

struct RPDucClayGroupParam {
};
File Layout

C++ data structure:

struct RPDucClayParam {
    /* 0x00 */ RPDucClayCommonParam commonParam;
    /* 0x24 */ RPDucClayGroupParam groupParam[8];
}; /* sizeof(RPDucClayParam) == 0x1E4 */ 

The file is assumed to contain exactly eight clay groups, and therefore cannot be resized.

DucDuckParam.bin

This file contains

dummy
Offset Type Name Notes
dummy N/A Total size N/A

C++ data structure:

struct RPDucDuckParam {
};

DucUfoParam.bin

This file contains

dummy
Offset Type Name Notes
dummy N/A Total size N/A

C++ data structure:

struct RPDucUfoParam {
};