You must be logged in to post messages.
Please login or register

EE Scenario Design & Modding
Moderated by Soty

Hop to:    
loginhomeregisterhelprules
Bottom
Topic Subject: HEX editing - A challenge
« Previous Page  1 2  Next Page »
posted 11-28-08 06:24 PM EDT (US)   
whos intrested in learning? i can mess around with quite some stuff and will start doing some database soon, ill just seperate each unit to diferent files and compare them so i can find more patterns and see what does what, help doing this database and finding patterns would be nice, basically i want to do for each unit what this guy did -> www.eetpy.cn/UpFile/UpAttachment/2008-6/200864222055.doc

and possibly find what the other values are

(got file from a chinese forum xD was using translator, not that much usefull stuff and lots of no sense anyways....not worth checking anything besides that file)

anyone caring to help and map the base structure?

i right now made a marine fire...lasers...yep... the marines bullet is now a laser... a lil more investigation and i can make him fire a rock too....

hehe, anyways, i would like to contribute to this modding community permantly and in a really decent way, and of course link EC to it, if i could map the whole db files, and divulgate, therefore making HEXING db files available to everyone.... do you think its worthy? or is this community dead for such thing...not worth the trouble? i mean, if i map the whole db files consumming an unmeasurable ammount of time and basically teach in the easiest possible way how to HEX, will someone actually care and make good use of such thing?

im pretty much in uncharted territory, i mean, wolfie and company did some research and usefull stuff, search "db" and "adding new units"...it will show up.... but no guides to us and these ppl are long gone, there are a few, chikoroll for example, who can HEX, but i dont see them doing tutorials either...i only got this thing from a chinese forum.....

is it worth charting? (lots of trial and error, basically use random words in a dif language that you dont speak and see how ppl react to that, so you learn that 1E in a certain place means LASER AMMO :P)

i really mean like explaining what each value does! theres a bunch of numbers, id say change this number changes this -> changing this changes that...and so on.... its about....24931200 numbers just for db.objects xD


EXAMPLE OF WHAT YOU CAN DO:

choose what texture and model i want each unit to use, no more model swap huge file sizes, i can just make spearman use slinger model via HEX editing xD

i can make slinger use a "jiehsoieh.sst" texture if i want
same for texture, model and button

have the button you click to create lets say the rock thrower create a UFO, will cost same as rock thrower and will say rock thrower, but thats editable too! (language dll)

theres button position, i mean, simple bowman appear in front of slinger for example, same button position, i can change that (its hard to find the position number :S and new position code too...)

give atack, shock armor, whatever kind of armor really and even flight timne to any unit, doesnt mean i can make them usefull, a engineer with atack wont atack anyways, if you tell him to atack he just chases the target xD will try to work on this, need to find the atack condition in the HEX maze.....

change whatever costs

change build time

say if a unit can go over water, over cliffs and over space for example

unit size (make zeus 2 bigger than zeus 1 for example)

technically you should be able to change EVERYTHING, except making new models xD

also make new civs, really usefull for races for example, just give the produce citizen faster bonuses 20 times do that civ has really really low citizen build time for example xD but that can be used for cheating if you dont overspend points...so i guess i cant post?

many of this stuff can alredy be changed with EEunit and EEunit2, not for AOC tough, and sometimes just doesnt work...

now, SAY SOMETHING, i want feedback.... i start to think theres about 3 ppl who care about this.... and in that case not worth the trouble of discussing and teaching HEX right? i myself am learning, im navigating blind but doing some major progress id say, you can start where i started, i provided the link... the thing is, im learnign HEX, im using my HEX skills in the cyborg mod, i can teach my always improving HEX skills, is it worth to lose time with you? and mapping? i mean, i can myself just search values i want to change instead of all changeable values....

HEX EDITING PROGRAMS:

XVI32 - simple easy to work with one, i like it

Hex Workshop -a bit more complex, but helps a lot, you can copy and paste segments of code for better comparation!

i personally use both...at same time...

TUTORIAL (again for those who did not read all this):



to admins:

maybe this should be linked to the mod tools or something? maybe made a sticky?

[This message has been edited by JCGF (edited 12-05-2008 @ 07:50 PM).]

Replies:
posted 12-09-08 10:02 PM EDT (US)     1 / 33  
Bump, because I think this would be a neat idea. Personally, I'd be quite interested in this info. I've never used a hex editor before but I'd be willing to check it out in my free time (what little there is left).
posted 12-10-08 07:46 AM EDT (US)     2 / 33  
i was doing this before when i was making a total conversion mod called gangs of earth... it kinda failed becuz u can't edit the way the game works, only the units

Cseira Kill
posted 12-10-08 08:37 AM EDT (US)     3 / 33  
hey cseirakill, do you have some experience in hexing? theres some stuff im having a hard time figuring out and it would be good if i could discuss with someone who actually knows a little about hex :P

im pretty much on my own
posted 12-12-08 07:56 PM EDT (US)     4 / 33  
Well, I still don't know much about hex itself, but I downloaded XVI32 and started messing around with it. I opened up the dbcliffterrain.dat, because it's a pretty short file. I noticed that most of the cells are empty, except for the ones that name the type of cliff (default, winter, rocky) and a few others. Swapping around some values in those others, I managed to achieve this :

http://i429.photobucket.com/albums/qq18/bmaczero/Keep/CoolCliffs.jpg

I think I know how this is working, I'll post some more info in a bit.


Edit:
Ok, it appears that the 11th and 15th cells in row 66 control what textures are used on the cliffs. Each texture has a hex number to identify it. Here are some I've discovered so far:

31 - Grass
32 - Default Cliffs
33 - Default Cliffs
34 - Dirt
35 - Paving Stones
36 - Smooth Stones
37 - Grass
38 - Sparse Grass
39 - Fine Sand
40 - Weeds

4A - Winter Cliffs
4B - Winter Cliffs
4C - Grass
4D - Red Cliffs
4E - Red Cliffs
4F - [Crash]

Basically, the cliffs are covered in whatever textures are in those two cells, and whatever textures appear between them in the list. So, if I put 32 in the 11th cell and 34 in the 15th, I get standard cliffs with a little dirt mixed in.

Neat stuff, JCGF!

[This message has been edited by BmacZero (edited 12-12-2008 @ 08:25 PM).]

posted 12-12-08 09:11 PM EDT (US)     5 / 33  
good find!! i never really looked into that cliff file, only opened and closed after that, i tought about tryng to chnage values 1 by 1 between winter cliff and normal cliff and test to see what happened :P

i do that with units really, thats how i find what does what.... now, range is a pain in the ass!!!!

if someone finds range tell me, also bmaczero, do you have msn? if yes add me (jekyll_72@hotmail.com) so we can talk, its really good if i can discuss stuff wth someone whos as minimal knowledge, also i got a tutorial im doing, incomplte but gives you an good idea if you want it, good to start dbobject hexing! i figured some good stuff on my own

HINT: use hex workshop!
you can copy and paste easly, so have both objects in dif tabs and compare easly, position shud be the same, but since teh ystart in dif places at dbobejcts it becomes messy, hex workshop is great, really!

but randomly crashes sometimes...idk why....seems to be my computer problem tough, isnt only that program that crashes xD

[This message has been edited by JCGF (edited 12-12-2008 @ 09:14 PM).]

posted 12-12-08 09:56 PM EDT (US)     6 / 33  
I see, it took quite long enough to find just those different textures for the cliffs, I can't imagine trying to change all the different stuff for the units. I might just look at dbobjects next, though .

And no, I don't have any IM programs. I looked at Hex Workshop, but it isn't free, and I don't know if I'm going to work on this enough to warrant that. XVI works fine for me, for now anyway.
posted 12-13-08 05:32 PM EDT (US)     7 / 33  
Hex workshop is free :S

i downlaoded from official site and it was free......

hum, if you stil lare intrested i guess i can send you by mail, it certainyl would make things much easier for you to start messing with dbobjects

EDIT:

some old posts worth of notice:

posted 03-22-02 05:12 PM EDT (US)
Buggi
I've found about 10 or so values that pretain to specific items (like sound, id's, graphic, attack, hitpoints, etc)
posted 03-22-02 10:09 PM EDT (US)
Buggi
One thing I do know, is SSSI liked using DWORD values (longs) (or 4 bytes) LOL
Enrique Orduno
posted 03-11-02 08:08 PM EDT (US)
I've succesfully edited the following files :

-dbstartingresources : By editing the signed short/long, one can easily change the standard resources, the name of the resource as seen by EE(dat files link to language.dll through bites).

-dbgamevariant : I was just able to add another option named scenarios(there was a on/off switch on it) in game variants but it's exactly like Standard.

Azn made a 5000 pop mod by editing the population byte of dbworld(search for 1200 in signed short and you'll get the byte)
posted 03-12-02 10:07 AM EDT (US)
AzN
Everything is either Signed Short or Long. If you move the little bar in HexWorkshop all the way, eventually, everything will ling up and you can see the patterns very easily. The .dat files link through the language.dll in Signed Shorts. You can find these values by using some program to open up .DLLs.

Theres so far two game variants that as left out of EE Final:
Epic (probably SimCity type long game )
Scenario (Scenario Hosting)

In the dbgamevariants, you can only have a total of 3 game types as it seems. I cant seem to add more. Maybe something is locking at 3? Anyways, the infomation in the middle with bunch of questions marks (I can tell you right now because Im at school), is the information that tells EE what settings to load. So editing this will get you different types. Im sure that if you replace the Standard part with the TOurnamnt part, your standard will play as TOurnmaent, no matter the name of the variant. So as you can see, this part controls what to load, so if you can find what this litlte code links to, you will find how to make it load what you want.
posted 05-29-02 10:26 PM EDT (US)
Enrique Orduno
Depends what attributes, lotsa stuff is in dbobjects. What we can edit(on top of my head...we know of more attributes but not all of course) : range, radius, speed(not sure), attack, armor(all the diff armors), building or no and well lot more stuff. And other stuff in dbtechtree.

To edit, you need to first copy/paste the content of 1 of the items(starts with first letter of name and ends with the byte right before the first letter of other file) to a new file to search easier(all items in file have same pattern).

Here's some info I can remember :

First 100 bytes of a item = name(so a name can be 100 bytes long).
There is stuff in Dword, Long, Short and all...use Hex Workshop to find them out. There is a lot of trial and error before you can find the right bytes so I suggest waiting for friday that I release some doc.
ok, some stuff from previosu post with some intresting stuff but that i cant really undrstand what its all aboutn :P
Hmm...here is an example(old version of dbtechtree) of how the maps work :

#pragma pack(1)

#ifndef _TECHSTRUCTURE_
#define _TECHSTRUCTURE_

struct DBTECHUNIT1 // one parent 272 bytes
{
DBTECHUNIT unit;
DWORD parent; // parent holder
};

struct DBTECHUNIT2 // two parents 276 bytes
{
DBTECHUNIT unit;
DWORD parent[2]; // parent holder
};

struct DBTECHUNIT3 // three parents 280 bytes
{
DBTECHUNIT unit;
DWORD parent[3]; // parent holder
};

struct DBTECHUNIT // no parents
{// 268 bytes
BYTE name[100]; // first 100 bytes is the name (first 5 classification?)
DWORD unk1; // unknown long values are 4 bytes
DWORD techid; // techid of unit
DWORD starte; // epoch first available
DWORD ende; // epoch last available
DWORD unk2[2]; // seems to be -1 for buildable buildings and 0 for all units
DWORD costwood; // cost in wood of unit/building
DWORD coststone; // cost in stone of unit/building
DWORD unk3; // unknown, no cost value found
DWORD costgold; // cost in gold of unit/building
DWORD unk4; // unknown, no cost value found
DWORD costiron; // cost in iron of unit/building
DWORD costfood; // cost in food of unit/building
DWORD unk5; // HUGE number, citizens match (male and female)
BYTE unk6[16]; // who knows...
DWORD id; // id of unit
DWORD button; // button for unit
BYTE ingame; // 1 yes; 0 no (mostly 1)
BYTE makesunits; // structure makes units
BYTE unk6[6]; // unknown
BYTE unk7; // investigate, its a flag for something
BYTE unk8[18]; // more unknowns
DWORD unk9; // could be a pointer?
BYTE unk10[18]; // Calamities seem to have values in here
WORD flag1; // value 803F appear here *see below
WORD junk1; // always 0
WORD flag2; // value 803F appear here
WORD junk2; // always 0
WORD flag3; // value 803F appear here
WORD junk3; // always 0
WORD flag4; // value 803F appear here
BYTE ingame2; // another value that seems to be 1 a lot
BYTE special; // this says whether the item is special or unbuildable; ex. citizen = 0, pillbox = 1
BYTE unk11[14]; // would need to investigate
DWORD lastbuilder; // seems to tell the computer the last parent in list...
DWORD numparents; // holds number of items which can build this
};

/*
FLAGS seem to work as follows (flag 4 is never on if any flag 1-3 are off)
if flag1 = it's either a building, or ground unit
if flag2 = it's a unit, ie Prophet, clubman etc
if flag3 = couldn't find an instance where 1,2,3 were only on
if flag4 = special type, citizen, bomber... not very consistant tho.
*/

struct DBTECHUNK
{
// 268 bytes
BYTE unk[268]; // starts with 00E3 1200 and ends with 0000 0000
// possible substructures within, many E3 1200 values... I looked at many, they didn't differ ????
};

struct DBTECHFILE
{ // HUGE 1190076 bytes, inconsistant layout
DWORD size; // number of items?
DBTECHUNIT2 epoch1; // paleo
DBTECHUNK unk1[4]; // four of these
DBTECHUNIT2 dog; // see spot run
DBTECHUNIT2 rockthrower; // <---
DBTECHUNK unk2;
DBTECHUNIT2 stonetower;
DBTECHUNK unk3[2];
DBTECHUNIT found3; // foundations
DBTECHUNIT found2;
DBTECHUNIT found1;
DBTECHUNIT3 firecal; // fire calamity
DBTECHUNK unk4[2];
DBTECHUNIT3 famine; // famine calamity
DBTECHUNIT3 volcano; // volcano calamity (duh?)
DBTECHUNIT3 quake; // earthquake calamity
DBTECHUNIT3 plague; // plague calamity
DBTECHUNK unk5[2];
DBTECHUNIT3 windy; // Hurricane calamity
DBTECHUNK unk6[2];
DBTECHUNIT2 tc; // town center
DBTECHUNIT2 camera; // camera object
DBTECHUNIT found6; // wonder foundation?
DBTECHUNIT2 settle; // settlement
DBTECHUNK unk7[24];
DBTECHUNIT2 capitol; // capitol?
DBTECHUNIT2 scaf3; // Scaffolding
DBTECHUNIT2 scaf2;
DBTECHUNK unk8[13];
DBTECHUNIT2 house; // a house =)
DBTECHUNK unk9;
DBTECHUNIT2 barracks; // um...
DBTECHUNK unk10;
DBTECHUNIT2 clubman; // our hero
DBTECHUNIT3 citizen; // important dude
DBTECHUNIT2 temple; // temple?
DBTECHUNIT3 priest;
DBTECHUNIT3 prophet;
DBTECHUNIT3 mysticism; // temple upgrade
DBTECHUNIT3 sandals; // temple upgrade, or footwear
DBTECHUNK unk11;
DBTECHUNIT1 testhero; // test hero
DBTECHUNIT1 xchurch; // unbuildable church
DBTECHUNIT1 xcomppan; // unbuildable computer panel
DBTECHUNIT1 xportcomp; // unbuildable portable computer
DBTECHUNK unk12[18];
DBTECHUNIT1 xstatol; // unbuildable olmec statue
DBTECHUNIT1 xtlondon; // unbuildable tower of london
DBTECHUNIT1 xarchlamp; // unbuildable arc lamp
DBTECHUNK unk13[2];
// offset 0x00732C or 29,484 .... only 1190592 more bytes to map
};

#endif
#pragma pack()

DBTechUnit is an item in the dbtechtree file.
i guess this is also helpfull followign previosu quote
same author, same thread, 06-02-02 00:01
We don't know what byte in dbojects to edit for the Laser, but here's an explanation of how to work your way around.

Let's take dbtechtree.dat since I can see the map right in front of me...

I want to modify wood cost of the object. So, I find the object(let's say it's the Barracks), I copy it(from the first letter of the name up to the byte before the next object name) then I create a new file and paste it in(to make it easier to search).

Now, using the map, I count. DWORD = 4 bytes. So, I find out that wood cost is at byte 124. I then modify it's Long value and bingo I have edited wood cost.

Searching is like that, you get used to the format and then you start modifying values, test, modify, test...you can use the Converteroutput.log too to help.
posted 06-02-02 12:33 PM EDT (US
AzN
A word is 2 block long. A dword is 4 blocks long. A byte is 1 block long, and so on.
ok, just tought these cud be helpfull, they were to me!!!

[This message has been edited by JCGF (edited 12-13-2008 @ 07:18 PM).]

posted 12-14-08 04:07 PM EDT (US)     8 / 33  
and the finding of usefull info continues!!!

by wrwr
Posted on 06/25/08 @ 05:33 AM
The multipliers for unit-families are stored (and editable) in dbfamily.dat. But that are not atack multipliers, but damage multipliers for each unit-family. They are in hex format (64 hex = 100 dec = 100% of damage will take this unit when is attacked by specific unit class).

Example: battleship attacks galley. But it will cause the galley only 25% damage (19 hex).

The structure of file dbfamily.dat in hex format is this type:

-name of family
-a lot of 00 00 00 00 hex
identification number of family (eg. F9 01 00 00 2F 00 00 00 hex for galley)
-then are the DAMAGE MULTIPICATORS ... (64 00 00 00 when taken damage will be 100% ... 00 00 00 00 hex ... when that family cannot attack to this family of units)

Another variables which influence result damage in combat are ... armor and might be ... a type of projectile (file dbwapontohit.dat). It is short simple hex file...
posted 12-14-08 05:24 PM EDT (US)     9 / 33  
Hex Workshop is available for download, but the EULA says it's a 30 day trial version. I guess I'll install it and find out.

That is a lot of info! That stuff should help a lot.
posted 12-14-08 08:43 PM EDT (US)     10 / 33  
keep an eye in downloads page, got a compilation of all written down knowledge i found till now or that i wrote myself... its quite messy but enough to get you started... ill write all be myself and ilustrate with pics, will constantly updapte it... meanwhile until i write all down you have a messy bunch of stuff that i found plus a overall extensive explanation of how to use hex and how to hex dbobjects...

easier to understand you wont find anywhere :P
posted 01-22-09 09:53 PM EDT (US)     11 / 33  
I don't understand a bit of this Hex Editing business. I want to change where the Stable button is located, but I have no idea how.

EE forever
posted 01-22-09 10:26 PM EDT (US)     12 / 33  
If your trying to do the tank/stable, space dock/dock, airport/archery thing, its easier to do with triggers, unless its not a scenario.
posted 01-23-09 02:04 PM EDT (US)     13 / 33  
Yeah I'm trying to make it so the Stable and Tank Factory can be built at the same time. It will be incorporated into EEv2, and thus is unfortunately not just a scenario.

EE forever
posted 01-23-09 06:09 PM EDT (US)     14 / 33  
i can change the place where the buttons are, havent messed with that yet but i know where the value is located

hum, tell me some unit which has its button in the place you want the butts located, it will make it really easier
posted 01-23-09 07:35 PM EDT (US)     15 / 33  
I just want the Stable anywhere that won't be overlayered by a previous button in the WW1 age. I am trying to put it where the Cyber Factory button is located but everything I try is to no avail.

EE forever
posted 01-24-09 04:38 PM EDT (US)     16 / 33  
i can do that
posted 01-24-09 07:25 PM EDT (US)     17 / 33  
Please, by all means. I would owe you my life. I also want to make it so the Stable is allowed in the WW1 Age. I hope to God that's possible.

EE forever
posted 03-03-09 05:41 PM EDT (US)     18 / 33  
Well? It's been about 5 weeks.

EE forever
posted 03-08-09 11:27 PM EDT (US)     19 / 33  
Ashrzr:

I'm doing a little looking into where this value might be located, don't get your hopes up though. Just hope JCGF comes back.
posted 03-10-09 03:42 PM EDT (US)     20 / 33  
oh, it is not hard to do, i just haven't had time sorry

Anyways, i uploaded a (incomplete) hexing guide that i believe teaches it... it has almost everything i know, its in dbtech tree, just change a specific value, trade it with some random one
posted 03-13-09 11:40 PM EDT (US)     21 / 33  
NEED HELP BADLY!
im not sure if you can but by going into the programming etc(i dont understand much of what your saying) is it possible to create a scen without and turn computer players into human players?
if thats not clear enough, i have a scen without a template and the players i want to be human controlled are human, by going into the scenarios files is it possbile to change the computers into humans?
posted 03-17-09 10:24 AM EDT (US)     22 / 33  
i didnt really understand what you said, but has nothing to do with Hexing, sorry :P

(actually i think hexing a scn cud help, but i just cant do that)
posted 03-17-09 11:56 AM EDT (US)     23 / 33  
im not sure if you can but by going into the programming etc(i dont understand much of what your saying) is it possible to create a scen without and turn computer players into human players?
if thats not clear enough, i have a scen without a template and the players i want to be human controlled are human, by going into the scenarios files is it possbile to change the computers into humans?
I tried a couple things in the hex editor, all I figured out was how to change player's colors and names.

The only way I know of to make a multiplayer scenario:

1.) Start a random map game with the player(s) you will play the scenario with.
2.) Save this game.
3.) Find the saved game in EE's files and change it to a .scn extension.
4.) Now you can open it in the scenario editor and add triggers, change the map, modify tech trees, or whatever else you need to do to make the scenario.
5.) When it's done, rename it back to the .ees extension, put it back in the Saved Games folder, and play it with your friend!
posted 03-19-09 02:50 AM EDT (US)     24 / 33  
i no that much, but i didnt use a game that was saved and reopened etc. ohwell thanks anyway, if any1 does make a breakthrough plz post me
posted 03-28-09 03:26 PM EDT (US)     25 / 33  
« Previous Page  1 2  Next Page »
Empire Earth Heaven » Forums » EE Scenario Design & Modding » HEX editing - A challenge
Top
You must be logged in to post messages.
Please login or register
Hop to:    
Empire Earth Heaven | HeavenGames