Forum archive
Buld Engine file formats
- Hello.
I'm looking for the description of all file formats used by Build. I've found detailed description of ART, KVX, VOX, MAP and some data tables but I can't find the description of the group file format. I think I read a TXT file with a complete description but I can't find it anywere. I know I can try to read the sources from the KGROUP program but there are some parts that I can't understand and a textual description should help.
Thanks. Re: Buld Engine file formats
Sounds very straightforward, even for me ;D- NEW FILE GROUPING SYSTEM!!!
My system will first search for the stand-alone file in the
directory. If it doesn't find it, then it will search for it
in the group file. If it still doesn't find it then -1 city.
Use KGROUP.EXE to create a grouped file from a lot of other
files. Type KGROUP [grouped filename][filespec][filespec][...]
For example this line will create the new grouped file,
stuff.dat, including all the following files specified:
kgroup stuff.dat *.art *.map tables.dat palette.dat
Feel free to make your own batch files. If there is demand,
I can make kgroup support appending, replacing, and extraction.
Here is the file format of a grouped file:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ 12 bytes - File grouping ID ³
³ 4 bytes - Number of files ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³For each file: (16 bytes per file) ³
³ 12 bytes - Filename with extension (13th byte would be a 0) ³
³ 4 bytes - Length of file ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Pure, raw file data, ordered just like you think it would be ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
There just couldn't be a simpler format. This format is so
hacker happy that when you view it in a hex editor, all the
filenames line up perfectly since they're multiples of 16.
Anybody who can't figure this out, of course, not only rots,
but is probably one of those really stupid people who would
actually "pay" to get the full version of a game.
The engine currently supports grouping for:
*.ART, *.MAP, TABLES.DAT and PALETTE.DAT. If you want
to group your own files, you will have to use my loading
routines rather than the standard ones for those files. My
file routines are basically an extra layer around the standard
lo-level functions. Look at these 5 routines I currently
support:
Welcome to the K-routines!
open -> kopen4load(char *filename)
read -> kread(long handle, void *buffer, long leng)
lseek -> klseek(long handle, long offset, long whence)
filelength -> kfilelength(long handle)
close -> kclose(long handle)
Note that you only pass the filename to my kopen4load function.
Here are 2 other routines that you MUST use, whether you like
my file grouping system or not:
initgroupfile(char *groupfilename)
Call this with the name of your grouped file before
any possible file loading will the k-routines. Note that
tables.dat uses the k-routines and it is in initengine().
Please don't give your grouped filename an extension that
starts with W, ends with D, and has a vowel in between.
And don't even bother to write your own file grouping
system because even if you do, people still have to write
their own new utilities to read the ART and MAP files.
uninitgroupfile()
Call before quitting to DOS.
------------------------------------------------------
- ATTENTION PROGRAMMERS! Changed kopen4load from:
kopen4load(char *filename)
to:
kopen4load(char *filename, char searchfirst)
where:
if searchfirst = 0 then search stand alone first then group file
if searchfirst = 1 then search group file onlyThere just couldn't be a simpler format. This format is so hacker happy that when you view it in a hex editor, all the filenames line up perfectly since they're multiples of 16. Anybody who can't figure this out, of course, not only rots, but is probably one of those really stupid people who would actually "pay" to get the full version of a game.
Lol. Looks like you've just been insulted by 1995 Ken! :P
(FYI: my comment about paying was a result of frustration over piracy)There just couldn't be a simpler format.
This is embarrasing :-[ So simple and I couldn't see it! I thought I was good at this job... :-[
Thanks men.