Minty Ramblings
The ramblings and ravings of a madman
Contents
Cutscenes
Despite CIN files requiring an Animation Manager to be loaded alongside an Animation Bundle, they are not actually used.
Cutscenes will always load the first DCA or DCK file in an Animation Bundle. They use the File Content Indicator to tell what type of animation is being loaded. An improper File Content Indicator results in a crash. This is the only observed usage of the File Content Indicator.
Models can load without animations and animation managers in a CIN file.
DSK files are pretty easy to understand
There are "ANM" sections, and "TABLE" sections
"ANM" sections contain really finnicky float declarations that often don't cooperate when added to or removed from.
"TABLE" sections point specific parameters to indexes of the ANM section
- The first value has an unknown purpose
- The second value is the index value
- The third value has an unknown purpose
cam_pos_y 4 1 0
In the <SCENE_KEY_ANM_INFO> section, I've onlt observed the numcameras argument actually functioning at all. Removing everything else is fine.
pb_wait1.dsk
<SCENE_KEY_ANM_INFO>
{
version 1.00
filename d:/data/デモシーン/demo9/p_wait1
toolname soft3D
source 'SOFTIMAGE3D_SDKv1.93.0 / 3Dv3.93.0'
date 2001/08/28
time 13:52:00
host MAKITAS-ZPRO
magnify 1.000000
numframes 210
numcameras 1
numAmbLights 0
numDifLights 0
numfogs 0
numLayerFogs 0
playmode loop
si_key nouse
}
<KEY_CAMERA_ANM>
{
size 42
float 0.020000 0.000000 32.000000 -1.431141 181.000000 22.114449 -0.329876 209.000000
float 22.000000 0.000000 210.000000 32.000000 0.000000 0.000000 170.464081 -9.969177
float 170.000000 102.745132 -3.994102 209.000000 100.807358 0.000000 210.000000 170.464081
float 0.000000 0.000000 8.000000 -1.660000 0.000000 21.340012 0.742654 161.000000
float 26.721846 0.592940 209.000000 27.139997 0.012388 210.000000 27.139997 0.000000
float 0.100000 32768.000000
}
<KEY_CAMERA_TABLE>
{
index 0
name cam_int1
cam_pos_x 1 0 0
cam_pos_y 4 1 0
cam_pos_z 4 13 0
cam_lat_x 1 25 0
cam_lat_y 1 26 0
cam_lat_z 1 27 0
cam_twist 1 25 0
cam_fovy 4 28 0
cam_near 1 40 0
cam_far 1 41 0
}
<EX_SI_KEY_CAMERA_ANM>
{
size 0
}
<EX_SI_KEY_CAMERA_TABLE>
{
index 0
name cam_int1
si_cam_aspect_ratio 1.333300
si_cam_auto_fovy false
si_cam_dof_type off
} |
---|
Cutscene Translation Index
There's a table inside the game somewhere that controls how cutscenes are loaded based on a few factors. The debugger, specifically JPN v1.01, details it a bunch. Notable examples include how every landing cutscene has the same "cutscene ID", but the Cutscene Translation Index takes that ID and the current stage ID, then loads a files form a specific demo folder in the cinemas folder.
record.gst and test.card
I have no bloody clue what this thing does. It is loaded from the filesystem every time you land in a stage. I think it has something to do with cutscenes, but it's beyond me. I've tried deleting it. I've tried filling it with garbage data. Nothing. It does bloody nothing every time. WHAT ARE YOU??? -Note by Ambrosia- The first 6 bytes spell out pikmin. If you jump 26 bytes ahead it then says `A game by EAD (c) 2001`
Everything I just said for record.gst mostly applies to test.card. The only difference being I've literally never seen test.card used. I can't find any strings to load it in the DOL, so it's probably unused. The weird thing is, I thought it would look similar to the savedata for Pikmin 1. However, I've looked at it and they're just about nothing alike. Could this be an old version of the save data?? :thinking:
Parameters
The function of parameters is to replace default values. As such, there are default values stored somewhere in the primordial soup of values stored in the DOL. It's much easier to find them in RAM during gameplay. If a parameter file is loaded, it's filepath is found near its values in RAM. If not, the filepath is gone. :thinking:
prefs.bin
and wave.bin
are more than likely unused parameter files.
I think prefs.bin might be an early version of either key.bin
or aiconst.bin
wave.bin I have no clue.
Courses vs Stages
A COURSE is a 3D model with routes and collision.
A STAGE is a combination of a course, GEN Files, and a Stage INI file which contains dynamic GEN definitions, lighting, and navi start positions.
STAGES are defined in the stages.ini
file in the stages folder.
PCR files
Ask the Luigi's Mansion dudes I dunno about these yet. Apparently they're parameters for particle effects.
H4M Files
Hudson Soft made this. Frick you Hudson Soft.
"Yet Another Gamecube Documentation" has this to say about it
"a proprietary Movie Format found on some Gamecube Game DVDs. Probably related to the HVQ (Hirarchical Vector Quantization) format developed by Hudson. "
I looked at H4M files once and regretted it. Here's my guess at the header
H4M Header
0x10 Data File Magic (HVQM4 1.3 )
0x04 Int ?
0x04 String ?
0x04 Int Video length in seconds
0x04 Int ?
0x04 Int One less than Video Length?
</div>
There's a tool online that can apparently decode the audio of H4M files.
Cool Animations
All Pikmin and Olimar use the same animation bundle called bluModel.anm.anm
.H files
There are a few .H files left around the disc. All of them are leftovers from development. Half of them are plaintext BTI files, while the other half are enumerated bone joints for MOD files.
Finding things in RAM
If you ever need to find a file opened in RAM, just search for the filename. It's usually right next to the data. When parameter files are not opened to replace parameter values, the memory address with the parameters stays roughly the same, minus the string with the filepath. This is how I determined the DOL embedded parameter values.