gametechmods
Robot Arena => Modifications => Topic started by: Serge on October 25, 2008, 08:35:23 AM
-
Yes, this time it's a compiler. And yes, it supports all the stuff dummee's compiler didn't. And yes, it has useful error messages.
But it is still not public, since there are some bug fixes left. Depending on how many people reply to this topic, I will either finish it completely today, or in two or three days.
The ball's in your court now - show me that you ar actually interested in what I'm doing, and get the program today.
Thanks in advance,
Serge
-
It will help modding the game and I really would like to recompile the carsteering. Thanks for your work on it. even tho there are only a handfull of people that mod components.......like always, heck even back in the good ol days there were only a handfull at a time.
-
Serge, you know I appreciate your work. I just don't have the time to help all of the time any one; but you, I've co-worked with you already on the gmfs and soon the bot files.
Soooo, thanks for your work, it and you are greatly appreciated, and I will continue to help when/where needed, no prob.:-D
Several have expressed the same to me, and perhaps need to here also...
...
-
Nice Serge, I was thinking of trying to mod some arena and or components. This would definatly be a big help.
-
I too want to mod parts and arenas. This should prove highly useful.
-
Yes. Please finish the compiler, I think many would like to have this. Even I might take look at it, even tough I dont know much of anything about gmf files.
-
I'm DEFINATLY interested. Please finish Serge.
-
I've been looking for an upgraded compiler! I would really appreciate if you finished it.
one thing i need is for it to compile hexadecimal code correctly. if you can do that, it would be awesome.
-
Alright, thank you guys, thanks to your motivation, I already finished the bare-bones compiler. The only thing left is to add the non-standard object types I discovered earlier, and it's ready for release!
Serge
-
Nice! Can't wait to see it.
-
Love the new stuff. I happen to be an avid student of modding myself. And this stuff makes work alot easier! Love the hard work, it really helps.
Keep it up!
-
If it's better than Dummee's then I'll get it gladly.
****
-
woo for the thing that the guy is making to do wuith the game i sometimes play for a bit!!!!
-
can it compile wheels?
-
I never really got into modding the game... but I would like too. It should be quite useful, looking forward to using it! :)
-
this looks promising, looking forward to it :)
-
You can bet I'm interested in the compiler. I'm still making stuff on occasion, and this will open up a lot more possibilities. FB and I were discussing how cool it would be to have a bobblehead component with a dashpot.
I did find a couple more things the decompiler can't do, however, and by extension probably the compiler as well. It can't read reflection maps (in the *MAP_DIFFUSE part) and additive transparency (in the *MATERIAL_XP_TYPE part) in the materials. (examples: the shiny hub wheel and the additive beam of light in the LumaZone).
If it helps, this is the VB code Firebeetle inserted into Dummy's decompiler to make it decompile those materials. I know it's not C++, but some of the id numbers might help.
Select Case getInteger
Case 0:
matXPType = "Other"
Case 1:
matXPType = "Filter"
Case 2:
matXPType = "Subtractive"
Case 3:
matXPType = "Additive"
Case Else:
matXPType = "Other"
End Select
Select Case getInteger
Case 0:
mapStyle = "*MAP_AMBIENT"
Case 1:
mapStyle = "*MAP_DIFFUSE"
Case 2:
mapStyle = "*MAP_SPECULAR"
Case 3:
mapStyle = "*MAP_SHINE"
Case 4:
mapStyle = "*MAP_SHINESTRENGTH"
Case 5:
mapStyle = "*MAP_SELFILLUM"
Case 6:
mapStyle = "*MAP_OPACITY"
Case 7:
mapStyle = "*MAP_FILTERCOLOR"
Case 8:
mapStyle = "*MAP_BUMP"
Case 9:
mapStyle = "*MAP_REFLECT"
Case 10:
mapStyle = "*MAP_REFRACT"
Case Else:
mapStyle = "*MAP_DIFFUSE"
End Select
Select Case getInteger
Case 0:
mapType = "Explicit"
Case 1:
mapType = "Spherical"
Case 2:
mapType = "Cylindrical"
Case 3:
mapType = "Shrinkwrap"
Case 4:
mapType = "Screen"
Case Else:
mapType = "Other"
End Select
Firebeetle also just told me that there's camera objects in the .gmf of the stock Practice Garage. I didn't know it was even possible to put cameras in the .gmf until today. Naturally, neither Dummy's nor yours can decompile it. So that's another thing to look into.
But if you COULD compile cameras... can anyone say Slam Cam component? :mrgreen:
-
Like a camera attached to an axe? Cool!
-
That would be AWESOME!!!!!!!!!
-
Yeah that would rock. Or maybe do a similar cam to the "House robot LIVEcam".
-
Alright, updates, updates!
First, thanks for support everyone. And especially clickbeetle for the charts. I will surely add that to both my compiler & decompiler.
The GMF compiler already compiled standard objects (standard components and standard arenas) just fine. It also produces much cleaner floating point numbers (compared to dummee's compiler,which sometimes produces garbage).
I am still working on getting it to compile:
- The Car Steering
- Wheels
- The Flextop Arena
I have discovered another thing, however (begin tech talk):
The Car Steering does NOT contain Hinge constraints. These are very similar to hinge constraints, but I like to call them GMID_HAVOK_UNKN_CONSTRAINTs. The only difference I can see now is that they contain 19 bytes of blank (00) padding at the end, and have a different ID (0x2E , instead of 0x2F). I will look through the default havok constraints and see if there is one close to the hinge, but a little different.
The main problem with writing a GMF compiler is that it's very hard to find where it creates errors in the binary GMF file. I cannot just compare the bytes one-by-one, since a lot of differences are in the floating point number -> bytes implementations in both the Original GMF tool by GI, dummee's compiler, and my compiler. I plan on modifying (temporarily) the compiler so that after it outputs a element (string, integer or floating point), it tests the VALUE (not output bytes!) of it against another binary GMF file, and produces an error if differences are found. This may be helpful.
See ya later, I'm going back to work.
Serge.
PS: The camera object idea seems awesome, I will look at it, too.
-
The slam cam would need to be invincible, because other wise it would get knocked off.
-
Update.
The mysterious constraint is a pivot constraint. Thanks PyRA2!
-
What's with the powered steering unit anyway?
I think I never built a bot with that.
-
So I can make a dropped front axle for my component pack
I can now, but it looks better when the wheels turn left and right.
-
Firebeetle also just told me that there's camera objects in the .gmf of the stock Practice Garage. I didn't know it was even possible to put cameras in the .gmf until today. ..... So that's another thing to look into.
But if you COULD compile cameras... can anyone say Slam Cam component? :mrgreen:
Maybe some of these notes will help:
1. When I first learned how to make the garage into a regular battle arena, I noticed the cams in there, but never tried tweaking it because it could be done in the python coding.
2. Later, I then tried adding cams to the regular practice garage (not as a battle arena) via python, but although the coding was present, while in-game the cams were not present in the garage.
3. So I turned to the gmf cam and tried playing with it to move and even 'enable' it(somehow), but I got nothing in return.
4. One other pertinent tweak I did was to change the practice garage arena to another arena when you hit the bot-lab button to 'test' your bot; (tried the 'Combat[box]' and 2 other arenas). Then, even though the test arena was different, the cameras (position+angle) stayed the same as in the regular practice arena.
Therefore, since neither the gmf nor the py seemed to control the practice garage cam, it seems evident that these cams are hard-coded and run exclusively by the exe. And my guess (though I wish not) is that a gmf cam cannot work or be tweaked without exe surgery. (And apparently, like smart-zones, the coders decided to switch some 'jurisdiction' from the gmf to the exe.)
Naturally, neither Dummy's nor yours can decompile it (gmf cam).
[/COLOR]It (Dummee's) both compiled and decompiled these gmf cams for me. If it missed or maligned info, it wasn't apparent.
[/COLOR]...
-
http://www.q3k.org/ra2.php
-
(http://img66.imageshack.us/img66/5474/carwheellj5.th.png) (http://img66.imageshack.us/my.php?image=carwheellj5.png)(http://img66.imageshack.us/images/thpix.gif) (http://g.imageshack.us/thpix.php)
Anyone notice anything strange about this screenshot?
...
Yes, I have recompiled the carsteering successfully. The geometry edit is just to prove you that it is feasible.
-
Released. Beta. Probably very buggy, and still needs a lot of work.
Get it from http://code.google.com/p/gmftoolkit/ .
Be that when compiling exotic objects (carsteering, flextop arena, etc) to use the LATEST version of the decompiler, otherwise it will throw errors right in your face.
-
Lulz?
Anyways, what's exactly with the car steering? Looks like it is very special seeing your work on it, or it's a pain to mod?.
-
It was unpossible to decompile and recompile before.
-
Hey, cool, Serge. I'll try it out ASAP...
Thanks allot... Millions of them....
-
Wouldn't you know it....I am at work on my crapassvista laptop without max and can't mod the car steering.
BUT I will as soon as I get home
Thanks BILLIONS
-
I have a few projects that will be perfect to test this on. If it works it will save me a bundle of time. Thanks Serge.
-
Here's the the first mod on the carsteering (thanks to Serge).
It's ACAMS' Jeep with His 6-71 blower and mounted on 2 giant axles to make a Monster Truck. It is 4WD, and has cool steering too.
Just rough tweaking, needs some realistic sounding bigblock wav, but looks very promising:
(http://www.madiaba.gametechmods.com/PICS/Jeep_pic_1.jpg)
VIDEO: >>>Jeep_1 (http://www.madiaba.gametechmods.com/VIDS/Jeep_1.wmv)<<<
....
-
Nice. Those bouncy Monster Wheels really work well on that!
-
Yea. I'll locate and then tweak downward the L+R axle vertices to connect to the hubs a little later.
Thanks you, Sir Serge.
..
-
http://www.youtube.com/watch?v=dTQ0-N7vh-c
-
Looks nice, Serge. PTP could come in handy....
Cool work... again.
-
Serge, It will Decompile this gmf, fine. But it will not compile it back. Dummees compiler will, so I hope this helps....
Differential (http://www.madiaba.gametechmods.com/Differential.rar)][/URL]............Differential (http://www.madiaba.gametechmods.com/Differential.rar)[/U]
-
How did you get that test garage? It looks pretty sweet.
-
The errors have been fixed and the download is on googlecode.
-
The compiler now supports mapping channels (it can recompile arenas!).
As ususal, get it form googlecode (http://code.google.com/p/gmftoolkit/).
-
:(>:ermm:>:|>:approve:>:)>:-D>:grin:>? (yea, all that....)
-
Wow, this thing works really well...
-
Heyyyyyyy. Welcome back Trovaner. I never got to thank you that much for teaching me how to take pics in RA2, so Thanks! :biggrin:
-
Wow, this thing works really well...
I'm very glad you like it as much as I do! If you ever encounter any bug / missing feature, be sure to tell me about it, and I'll get to work straight away.
-
Update! The PIVOT constraint (like I called it earlier, when I ofund it in the carsteering), is actually a WHEEL constraint. I've got the variable names, too, thanks to the official exporter. I'll update the code and downloads in a couple of minutes.
-
Here's how the WHEEL_CONSTRAINT looks like:
*GMID_HAVOK_WHEEL_CONSTRAINT
{
*NODE_NAME Carwheel01
*NODE_TM
{
*NODE_NAME Carwheel01
*TM_ROW0 -0.000000 0.000000 1.000000
*TM_ROW1 0.000000 1.000000 0.000000
*TM_ROW2 -1.000000 0.000000 -0.000000
*TM_ROW3 0.093134 0.000000 -1.051632
}
*BODY1 rbgroup
*BODY2 hub1
*POINT 0.025780 0.076939 -0.626903
*SPIN_AXIS 0.000000 0.000000 1.000000
*SUSPENSION_AXIS 0.000000 1.000000 0.000000
*SUSPENSION_LIMITS 0.000000 0.000000
*SUSPENSION_FRICTION 0.000000
*ANGULAR_SPEED 0.000000
*GAIN 0.000000
}
-
SVN & archives on googlecode (http://code.google.com/p/gmftoolkit/downloads/list) updated! Download v. 0.13 now.
-
BONUS! Random statistics about the project (thanks eFFee for that awesome script):
+GMFComp Lines:1893 Chars:42324
+GMFComp Lines:1893 Chars:42324
-asciiFunctions.cpp Lines:226 Chars:4911
-asciiFunctions.h Lines:16 Chars:517
-byteFunctions.cpp Lines:33 Chars:511
-byteFunctions.h Lines:4 Chars:116
-gmidFunctions.cpp Lines:562 Chars:12854
-gmidFunctions.h Lines:4 Chars:106
-headerFunctions.cpp Lines:38 Chars:766
-headerFunctions.h Lines:1 Chars:17
-main.cpp Lines:90 Chars:2129
-materialFunctions.cpp Lines:304 Chars:6415
-materialFunctions.h Lines:4 Chars:85
-objectFunctions.cpp Lines:554 Chars:12646
-objectFunctions.h Lines:3 Chars:70
-sceneFunctions.cpp Lines:53 Chars:1165
-sceneFunctions.h Lines:1 Chars:16
+GMFDec Lines:1613 Chars:43388
+GMFDec Lines:1613 Chars:43388
-byteFunctions.cpp Lines:79 Chars:1538
-byteFunctions.h Lines:6 Chars:122
-havokFunctions.cpp Lines:524 Chars:15210
-havokFunctions.h Lines:6 Chars:238
-helperFunctions.cpp Lines:106 Chars:2592
-helperFunctions.h Lines:5 Chars:118
-main.cpp Lines:107 Chars:2239
-materialFunctions.cpp Lines:222 Chars:6780
-materialFunctions.h Lines:4 Chars:142
-objectFunctions.cpp Lines:241 Chars:5640
-objectFunctions.h Lines:3 Chars:110
-objectGeoFunctions.cpp Lines:257 Chars:7057
-objectGeoFunctions.h Lines:2 Chars:73
-sceneFunctions.cpp Lines:50 Chars:1508
-sceneFunctions.h Lines:1 Chars:21
-
Excellent work: 100/10
You should put your software in the download section of gametechmods.
-
I hope someone else will do this - I really hate editing wiki pages about myself and what I have done, because it's kind of narcistic.
-
ditto...
-
I don't know if these have been fixed yet but I found some glitches with the older version you released. If you've fixed them in the most recent version, just ignore it.
***Decompiler***
Hinges - Node TM's are indented 2 tabs too many. Like this:
*GMID_HAVOK_CONSTRAINTSOLVER
{
*NODE_NAME CSolver01
*THRESHOLD 10.000000
*RB_COLLECTION_NAME RBCollection01
*GMID_HAVOK_CONSTRAINT_LIST
{
*COUNT 1
*GMID_HAVOK_HINGE_CONSTRAINT
{
*NODE_NAME Hinge01
*NODE_TM
{
*NODE_NAME Hinge01
*TM_ROW0 1.000000 0.000000 0.000000
*TM_ROW1 0.000000 0.000000 -1.000000
*TM_ROW2 0.000000 1.000000 0.000000
*TM_ROW3 0.000000 -0.000000 -0.000000
}
*BODY1 motor
*BODY2 axle
*POINT 0.000000 -0.000000 -0.000000
*SPIN_AXIS 0.000000 0.000000 -1.000000
*IS_LIMITED 0
*FRICTION 0.000000
*ANGLE_LIMITS -1.570796 1.570796
}
}
}
Shiny wheel - *MESH_TVERT 14 in wheel display, last number is decompiled as -1.#QNAM0 (should just be -1)
Shiny wheel - wheel traction geometry proxy is read as x< But somehow it still compiles and works. Not sure what's going on there.
Attach points - User Data, ID, and Attach are sometimes all on the same line.
***Both***
Still reads reflection maps as *MAP_DIFFUSE and *MAP_TYPE Other; Additive XP_TYPE as Filter
***Compiler***
Arena lights - won't compile *USE FAR ATTENUATION. Gives the error message: Expect *USE FAR ATTENUATION, found *USE instead. Expect close bracket, found FAR instead.
On the plus side, I did successfully compile wheels with this. I'm going to try the newest version next time I do gmf work.
-
mad and i had that hing problem last night when we were working on the GUMBA arena.
-
I have fixed the TM padding issues in the latest release, AFAIK.
Anyway, the NAN (not a number) error is bothering me. It happens when the decompiler encounters a hex value of FF FF FF 00. I don't know why it's there, but even my hex editor throws in the same error when it treeats this as a floating point number.
-
SERGE.
<3
-
Serge, while working with Cuda on his GUMBA Tourney arena I found this arena gmf seems to decompile fine, but the compiler finds a few discrepancies when putting Humpty Dumpty back together again:
https://gametechmods.com/uploads/files/arena.rar (https://gametechmods.com/uploads/files/arena.rar)
Let me know.... Mucho Gracias.
Also found some mis-spellings that look like they came from 3dsMax that way..? Like NOUSE instead of NOISE. Sorta weird. I'll get you the gmf(s).
..
-
I need a slight bit of help.
Im currently in the stage of reskinning a Slim Wheel, and im stuck with the compiler, how do i get it to decomplie, and im stuck, i open the .GMF of the slim wheel, then it says for me to save something, when i save it, some error screen comes up, can anyone help me?
-
Edit this map-----
(https://gametechmods.com/Pics/wheel_slim.bmp)
-
Ok, i have, heres my new one:
https://gametechmods.com/uploads/images/19317wheel_slim.bmp
And now what?
-
Put it in C:\Program Files\Infogrames\Robot Arena 2\Components\wheel_slim\maps...but be sure to rename the original so you will still have it.
-
But if he is making a whole new component of it and doesnt want the new skin to interrupt the origional ones skin, there are a few lines that need to be changed in the gmf file.
-
The ASCII GMF file format is quite self-explanatory - the variable names are in English.
The lines to be changed are in the material list - change the bmp file name.
I'll get back to work on the compiler this weekend. Sorry for the interruption.
-
making a new one isn't hard... just takes while to understand it. much easier just to edit the .bmp.