gametechmods

Robot Arena => Modifications => Topic started by: Serge on October 25, 2008, 08:35:23 AM

Title: New beta GMF compiler!
Post 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
Title: New beta GMF compiler!
Post by: ACAMS on October 25, 2008, 10:06:11 AM
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.
Title: New beta GMF compiler!
Post by: Madiaba on October 25, 2008, 01:25:45 PM
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...
 
...
Title: New beta GMF compiler!
Post by: Urjak on October 25, 2008, 01:43:03 PM
Nice Serge, I was thinking of trying to mod some arena and or components. This would definatly be a big help.
Title: New beta GMF compiler!
Post by: R1885 on October 25, 2008, 01:51:59 PM
I too want to mod parts and arenas. This should prove highly useful.
Title: New beta GMF compiler!
Post by: somestrangeguy on October 25, 2008, 02:02:06 PM
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.
Title: New beta GMF compiler!
Post by: Scrap Daddy on October 25, 2008, 02:09:25 PM
I'm DEFINATLY interested. Please finish Serge.
Title: New beta GMF compiler!
Post by: Sage on October 25, 2008, 02:10:35 PM
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.
Title: New beta GMF compiler!
Post by: Serge on October 25, 2008, 02:10:45 PM
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
Title: New beta GMF compiler!
Post by: Resetti's Replicas on October 25, 2008, 02:35:58 PM
Nice!  Can't wait to see it.
Title: New beta GMF compiler!
Post by: infiniteinertia on October 25, 2008, 02:45:59 PM
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!
Title: New beta GMF compiler!
Post by: Naryar on October 25, 2008, 03:18:42 PM
If it's better than Dummee's then I'll get it gladly.
 
****
Title: New beta GMF compiler!
Post by: man manu on October 25, 2008, 03:36:57 PM
woo for the thing that the guy is making to do wuith the game i sometimes play for a bit!!!!
Title: New beta GMF compiler!
Post by: DuckRA2 on October 25, 2008, 03:41:56 PM
can it compile wheels?
Title: New beta GMF compiler!
Post by: andrewm0304 on October 25, 2008, 07:38:52 PM
I never really got into modding the game... but I would like too. It should be quite useful, looking forward to using it! :)
Title: New beta GMF compiler!
Post by: Dragonfire on October 26, 2008, 07:19:35 AM
this looks promising, looking forward to it :)
Title: New beta GMF compiler!
Post by: Clickbeetle on October 26, 2008, 02:48:04 PM
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.

Code: [Select]

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


Code: [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:
Title: New beta GMF compiler!
Post by: System32 on October 26, 2008, 03:06:46 PM
Like a camera attached to an axe? Cool!
Title: New beta GMF compiler!
Post by: Somebody on October 26, 2008, 03:16:52 PM
That would be AWESOME!!!!!!!!!
Title: New beta GMF compiler!
Post by: Gigafrost on October 26, 2008, 03:45:45 PM
Yeah that would rock. Or maybe do a similar cam to the "House robot LIVEcam".
Title: New beta GMF compiler!
Post by: Serge on October 26, 2008, 04:14:03 PM
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.
Title: New beta GMF compiler!
Post by: Somebody on October 26, 2008, 04:38:59 PM
The slam cam would need to be invincible, because other wise it would get knocked off.
Title: New beta GMF compiler!
Post by: Serge on October 27, 2008, 04:53:46 PM
Update.

The mysterious constraint is a pivot constraint. Thanks PyRA2!
Title: New beta GMF compiler!
Post by: Naryar on October 27, 2008, 05:00:36 PM
What's with the powered steering unit anyway?

I think I never built a bot with that.
Title: New beta GMF compiler!
Post by: ACAMS on October 27, 2008, 05:13:47 PM
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.
Title: New beta GMF compiler!
Post by: Madiaba on October 27, 2008, 09:20:19 PM
Quote from: Clickbeetle;18805

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.)
 
 
Quote from: Clickbeetle;18805
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]...
Title: New beta GMF compiler!
Post by: Serge on October 29, 2008, 04:40:23 PM
http://www.q3k.org/ra2.php
Title: New beta GMF compiler!
Post by: Serge on November 04, 2008, 01:27:54 PM
(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.
Title: New beta GMF compiler!
Post by: Serge on November 04, 2008, 02:55:47 PM
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.
Title: New beta GMF compiler!
Post by: Naryar on November 04, 2008, 03:12:10 PM
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?.
Title: New beta GMF compiler!
Post by: Serge on November 04, 2008, 03:26:24 PM
It was unpossible to decompile and recompile before.
Title: New beta GMF compiler!
Post by: Madiaba on November 04, 2008, 03:43:46 PM
Hey, cool, Serge.  I'll try it out ASAP...
Thanks allot... Millions of them....
Title: New beta GMF compiler!
Post by: ACAMS on November 04, 2008, 03:56:56 PM
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
Title: New beta GMF compiler!
Post by: Clickbeetle on November 05, 2008, 09:56:15 PM
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.
Title: New beta GMF compiler!
Post by: Madiaba on November 05, 2008, 10:04:24 PM
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)<<<
 
 
....
Title: New beta GMF compiler!
Post by: Clickbeetle on November 05, 2008, 10:08:46 PM
Nice.  Those bouncy Monster Wheels really work well on that!
Title: New beta GMF compiler!
Post by: Madiaba on November 06, 2008, 01:00:31 AM
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.
 
..
Title: New beta GMF compiler!
Post by: Serge on November 06, 2008, 04:29:26 PM
http://www.youtube.com/watch?v=dTQ0-N7vh-c
Title: New beta GMF compiler!
Post by: Madiaba on November 06, 2008, 06:54:50 PM
Looks nice, Serge.  PTP could come in handy....
Cool work... again.
Title: New beta GMF compiler!
Post by: Madiaba on November 06, 2008, 11:18:49 PM
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]
Title: New beta GMF compiler!
Post by: H@zm47 on November 07, 2008, 02:28:23 AM
How did you get that test garage? It looks pretty sweet.
Title: New beta GMF compiler!
Post by: Serge on November 07, 2008, 04:18:59 PM
The errors have been fixed and the download is on googlecode.
Title: New beta GMF compiler!
Post by: Serge on November 08, 2008, 03:26:23 AM
The compiler now supports mapping channels (it can recompile arenas!).
As ususal, get it form googlecode (http://code.google.com/p/gmftoolkit/).
Title: New beta GMF compiler!
Post by: Madiaba on November 08, 2008, 09:09:12 AM
:(>:ermm:>:|>:approve:>:)>:-D>:grin:>? (yea, all that....)
Title: New beta GMF compiler!
Post by: Trovaner on November 09, 2008, 04:00:32 PM
Wow, this thing works really well...
Title: New beta GMF compiler!
Post by: Somebody on November 09, 2008, 05:32:56 PM
Heyyyyyyy. Welcome back Trovaner. I never got to thank you that much for teaching me how to take pics in RA2, so Thanks! :biggrin:
Title: New beta GMF compiler!
Post by: Serge on November 10, 2008, 01:42:01 AM
Quote from: Trovaner;20803
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.
Title: New beta GMF compiler!
Post by: Serge on November 10, 2008, 01:50:18 AM
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.
Title: New beta GMF compiler!
Post by: Serge on November 10, 2008, 02:05:17 AM
Here's how the WHEEL_CONSTRAINT looks like:

Code: [Select]
*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
}
Title: New beta GMF compiler!
Post by: Serge on November 10, 2008, 02:13:32 AM
SVN & archives on googlecode (http://code.google.com/p/gmftoolkit/downloads/list) updated! Download v. 0.13 now.
Title: New beta GMF compiler!
Post by: Serge on November 10, 2008, 02:35:34 AM
BONUS! Random statistics about the project (thanks eFFee for that awesome script):

Code: [Select]
     +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
Title: New beta GMF compiler!
Post by: Gigafrost on November 10, 2008, 12:29:20 PM
Excellent work: 100/10
 
You should put your software in the download section of gametechmods.
Title: New beta GMF compiler!
Post by: Serge on November 11, 2008, 06:48:10 AM
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.
Title: New beta GMF compiler!
Post by: Gigafrost on November 11, 2008, 11:45:01 AM
ditto...
Title: New beta GMF compiler!
Post by: Clickbeetle on November 15, 2008, 05:55:00 PM
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:
Code: [Select]
*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.
Title: New beta GMF compiler!
Post by: 70 CUDA on November 15, 2008, 05:58:42 PM
mad and i had that hing problem last night when we were working on the GUMBA arena.
Title: New beta GMF compiler!
Post by: Serge on November 16, 2008, 04:09:27 AM
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.
Title: New beta GMF compiler!
Post by: infiniteinertia on November 16, 2008, 09:53:23 AM
SERGE.



<3
Title: New beta GMF compiler!
Post by: Madiaba on November 20, 2008, 09:12:21 AM
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).
 
..
Title: New beta GMF compiler!
Post by: WhamettNuht on November 20, 2008, 01:10:11 PM
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?
Title: New beta GMF compiler!
Post by: ACAMS on November 20, 2008, 01:13:50 PM
Edit this map-----
 
(https://gametechmods.com/Pics/wheel_slim.bmp)
Title: New beta GMF compiler!
Post by: WhamettNuht on November 20, 2008, 01:23:04 PM
Ok, i have, heres my new one:
https://gametechmods.com/uploads/images/19317wheel_slim.bmp
And now what?
Title: New beta GMF compiler!
Post by: ACAMS on November 20, 2008, 01:29:39 PM
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.
Title: New beta GMF compiler!
Post by: somestrangeguy on November 20, 2008, 01:38:27 PM
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.
Title: New beta GMF compiler!
Post by: Serge on November 20, 2008, 01:49:24 PM
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.
Title: New beta GMF compiler!
Post by: Sage on November 20, 2008, 04:17:02 PM
making a new one isn't hard... just takes  while to understand it. much easier just to edit the .bmp.