Staredit Network > Forums > General StarCraft > Topic: CHK file format specification
CHK file format specification
Jul 9 2010, 1:32 pm
By: infamis  

Jul 9 2010, 1:32 pm infamis Post #1



Hello i'm starting work on Starcraft clone ( yep another one ) and i'm seeking information about the chk file format.
I found some here - http://quantam.devklog.net/CHKFormat.htm but they lack a bit of info. During searches on this websites i found
that on the old wiki exists/existed some infos about that subject under these links:

http://www.staredit.net/wiki/scenario.chk_format
http://www.staredit.net/wiki/Terrain_Format

And here comes my question, does anyone has backed up this data or knows how to get to it?



None.

Jul 9 2010, 4:59 pm poison_us Post #2

Master has given Dobby a doctorate! Dobby is free!

http://www.staredit.net/wiki.php?article=scenario.chk_format.
We're currently moving all the stuff from this old wiki to a new one, and the direct links like the one you have is broken. You gotta search through the old wiki without searching, if you catch my drift.




Jul 9 2010, 7:50 pm infamis Post #3



Thank You.



None.

Jul 9 2010, 9:07 pm Cinolt Post #4



Potentially useful info on VCOD compression and/or figuring out how StarCraft uses it:

Quote from Heinermann
VCOD can be read like this:

DWORD vcod[256];
for each of 12 players, you keep:
vcod[0]
vcod[owner]
vcod[race]
vcod[force]

Code
#define MAX_PLAYER_SLOTS 12
#define MAX_PLAYER_NAME 25

struct PlayerData
{
  DWORD dwPlayerID;
  DWORD dwStormID;
  BYTE  nType;
  BYTE  nRace;
  BYTE  nTeam;
  char  szName[MAX_PLAYER_NAME];
} gPlayerData[MAX_PLAYER_SLOTS];   // loaded with nType (Owner), nRace, and nTeam (Force)
// Note: This is Starcraft's structure and you don't need to use it unless you actually want to verify the VCOD section.

// -- above this line are official names given by Blizzard Entertainment --

DWORD vcod[256]; // loaded with default VCOD
bool vcodUsed[256]; // uninitialized

// SOME FUNCTION
{
// initialize to false
for (int i = 0; i < 256; i++)
  vcodUsed[i] = false;

// always use index 0
vcodUsed[0] = true;

// use index at Type, Race, and Force
for (int i = 0; i < MAX_PLAYER_SLOTS; i++)
{
  vcodUsed[gPlayerData[i].nType] = true;
  vcodUsed[gPlayerData[i].nRace] = true;
  vcodUsed[gPlayerData[i].nTeam] = true;
}

// Set unused sections of VCOD to 0
for (int i = 0; i < 256; i++)
{
  if ( !vcodUsed[i] )
    vcod[i] = 0;
}

// continue doing whatever it is you want (write finished VCOD to file, etc)
}

http://code.google.com/p/vgce/source/browse/trunk/docs/Blizzard/Starcraft/vcod.cpp
http://code.google.com/p/vgce/source/browse/trunk/docs/Blizzard/Starcraft/chkFormat.txt
http://code.google.com/p/vgce/source/browse/trunk/docs/Blizzard/Starcraft/chkCompression.txt

Any self discoveries with ISOM that you document would be appreciated.

Post has been edited 2 time(s), last time on Jul 9 2010, 9:17 pm by yoonkwun.



None.

Jul 10 2010, 8:34 am O)FaRTy1billion[MM] Post #5

👻 👾 👽 💪

This might be helpful ... I've listed all the sections SC uses and when they are loaded (note that I just guessed what my notes meant ... I had breakpoints on the list and found which lists did what that way).
This way you don't have to bother with sections that SC doesn't use normally.

Collapsable Box




TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[02:36 am]
Oh_Man -- it can pick the weakest mutalisk off from a stack of mutas - pretty OP
[02:30 am]
Oh_Man -- against zerg: https://youtu.be/PK5WD1EAnpU
[02:22 am]
Oh_Man -- another match here, way more wraiths
[02:04 am]
Oh_Man -- and templars psi storm as arty said is a strong counter to the marine med the bot was going, so the wraith was actually the correct play there
[02:04 am]
Oh_Man -- and the wraith was cloaking and going around sniping templars (which wuld be too hard to perfectly micro in a normal human game and the wraith wuld die or distract u too much trying to micro it vs doing other things)
[02:03 am]
Oh_Man -- they usually require too much micro so it's 'dumb' for a human to use them. but in the hands of the AI they become god tier, ghosts locking down goons and helping get them picked
[02:03 am]
Oh_Man -- artosis also didnt understand a couple of its plays, coz they make no sense for a human, but they did for the AI. The wraith and the ghost for example
[02:01 am]
Oh_Man -- it's issuing orders to each unit individually, so the number sounds more hype than it actually is, it's just an artifact of it not being able to use control groups
[02:01 am]
Oh_Man -- also the 6000 APM is kind of a fake/incorrect number, which is xplained by the AI maker in the comments. it's not using control groups, it doesnt have that functionality
Please log in to shout.


Members Online: Oh_Man, pridesour5, Rawflesh0615