PDA

View Full Version : Tips for exporting HCE maps to Xbox



Moses
September 7th, 2013, 08:28 PM
Arsenic does a ridiculous amount of work to get maps to convert over from PC to Xbox. Heck, it even knows for most bitmap tags to appear correctly on xbox they need a 128 flag checked that isn't visible in guerilla. But there are things that it doesn't do that we need to figure out otherwise we'll never get our custom stuff working. This is a list of things I've painstakingly deduced you need to know when using Arsenic. I'm aware modacity is mostly dead as is Halo CE modding, but I thought I might be able to spark something if I can get people exporting things to Xbox easier. I'm currently trying to port Maridia, Tallon IV, and Mirage Station from Metroid online over to the X-box will full particle fx, sfx, models, etc. Not just a bsp export. Seraphim has been kind enough to give me the most recent version of Maridia to tear apart and I've actually made a significant bit of progress. Anyway, here's what I've learned so far.

(I will add to this list when I learn more)


1: For Halo PC and CE the the channels in multipurpose maps(textures) are used as follows:
Red: Detail
Blue: Specular\Reflection
Green: Self illumination
Alpha: Color Change

For Xbox the Channels are used differently and as such the multipurpose maps will look different. Xbox channels are as follows.
Red: Specular\Reflection
Blue: Color change
Green: Self illumination
Alpha: Detail

These channels MUST be rearranged by YOU because it will not be done for you when you import the .map into arsenic. This means copy the Alpha into the Blue channel, copy the Blue into the Red channel, and copy the Red into the Alpha channel.

2: Since Xbox is (in most circumstances) locked in 480x640 resolution you cannot get a very high resolution. In the .weapon_hud_interface and .unit_hud_interface tags there are checkboxes that say "use high res scale". If these are checked on ANY of these types of tags in your map(even if you don't even touch the weapon the tag is used on) it will freeze at the countdown loading screen. It's also wise to check the "don't scale size" if you have thin reticles or sprites that might become messed up if scaled.

3: Halo CE uses uncompressed vertices for it's .gbxmodel tags whereas Halo Xbox uses compressed vertices. Open a .gbxmodel tag in guerilla and under the "PARTS" block inside the "GEOMETRIES" block you'll see both the compressed and uncompressed vertices. When a tag is loaded into arsenic it uses the compressed vertices to render and when it's exported to xbox it is rewritten as a .model tag which ONLY contains the compressed vertices.

If you can't load a map in arsenic check to see if you can narrow it down to a model tag. If a model has even one "PARTS" block that doesn't have compressed vertices it will crash and wouldn't even have any data to export to xbox anyway. Tool is what writes both compressed and uncompressed vertices and somtimes it doesn't write any compressed. I have yet to figure out why but I think it may be due to high vertex counts in the model.

4: Xbox doesn't seem to like 32bit color bitmaps and usually displays them as garbage. 32 bit bitmaps can also cause crashes depending on where they are used. I've had weapons crash because they used a 32bit color lens flare. Unless you know for a fact that your 32bit color bitmap isn't causing a crash(I think skies are able to use them correctly) you should use a different texture format.

5: Monochrome format doesn't work on PC, but it works perfectly on xbox. This is most evident in hud sprites because tons of Xbox halo's hud sprites are in monochrome.

6: Hud meter elements are done differently in Xbox. On PC the color channel is the image of what the meter will look like and the alpha is the gradient to mask the image off depending on how full the meter is. If you use monochrome Xbox flips these channels around and the alpha channel is the image and the chromenance channel is the gradient. The reason I wrote this is because it's best to use monochome for meter elements on Xbox because of their color fidelity while being half as large as 32bit bitmaps.

7: DO NOT USE LARGE TEXTURES. A map like "Church" will murder the Xbox like if you tried to play Crysis 2 on it. If you need to use large textures for detail then for the love of god use compression. Don't use 16bit color, 32bit color(doesn't work anyway), or monochrome. Use DXT 1(if you have no alpha), DXT3(if you have an alpha with lots of noise and details), or DXT5(if you have a smooth alpha like a gradient or clouds)

8: If your sky is causing the map to crash refer to tip 7.

9: YOU CANNOT JUST TAKE TAGS FROM HCE AND PUT THEM IN ARSENIC'S TAGS FOLDER. When you load a map into arsenic it not only decompiles the map into tags and writes them into it's tags folder, it actually modifies the way the tags are structured when it writes them. A bitmap you compile with tool and into a map may be 768kb, but when arsenic decompiles the map and writes it the tag may be 750kb or so. If you plan to introduce a new tag to your arsenic tagset you must import it in either a map or as a tagset(I'm not sure how to do this last one cause I haven't done it before.)

10: If your textures look like garbage ingame and are all green or rainbow-y refer to tip 9. If the texture is 32bit refer to tip 4.

11: If your map is laggy or parts of things are disappearing, or if it just won't load check to see how detailed the models are. The xbox only has 64MB of ram for the whole system, gfx card and all. The most detailed FP weapon in original halo is the sniper rifle which is 2,236 triangles. Masterchief's "Superhigh" 3rd person LOD is 2016 triangles and his FP model is 1,612.

This doesn't mean you can stop here. The xbox also makes extensive use of LOD's. LOD stands for Level of Detail and for Halo CE most of us never bothered to make LOD's because our computers could handle it. Xbox can't. You'll need to make lod's for everything except FP models(since they never get distant). Masterchief's lowest LOD goes down to 304 triangles. The sniper rifle goes from 1,380 down to 182 triangles.

12: If you tell arsenic to compile a map and it encounters an error on the way take a look at the tag it's currently reading in the bottom left corner. A lot of the time it'll have an issue with "characters/elite/bitmaps/plasma shield noise.bitmap" and "rasterizer/distance attenuation.bitmap". These are probably due to an incompatability between Halo PC and Halo Xbox's methods of using 3d textures. If it's either of these you are having a problem with just take a working xbox halo map, have arsenic decompile it, and take the tags from there. If it's some other tag you'll have to figure it out yourself or remake the tag because it might be corrupt. ALWAYS look at the bottom left corner because that's where it'll tell you which tag it was crashing at.

13: One reason I've noticed that can cause the game to freeze at the countdown screen is if your "ui\hud\cyborg body.meter" and "ui\hud\cyborg shield.meter" are messed up. The meters used in maridia were blank placeholders and if I didn't swap it with one from a working xbox map it would crash right after the countdown. An empty and BAD one is 236bytes. A working original halo one is around 3KB for the body and 10KB for the shield.


Everyone should feel free to add anything I haven't mentioned or learned yet.