Welcome Guest [Log In] [Register]

Add Reply
TUTORIAL - How to prevent same emo crashing issue workaround
Topic Started: May 28 2013, 10:38 AM (4,386 Views)
bbb

This Tutorial will explain how to make 2 or more mods that use the same emo file work in the game without crashing

NOTE - This method is for mods of the same emo that does not involve SkelSwap. This method will still prevent crashing if SkelSwap was involved, but instead of crashing, there is a monkey face issue.


Step 1 - Building the emo

First step is to gather the emo files of all the mods you want to make compatible.

Once you have them all, decide which emo you will use as the base. (preferably the the mod with the most DDS files since it will make you have less DDS re-referencing to do later on).

Then inspect what parts are the same between them (most common are the eyes, tongue, teeth, face, etc). These parts from the other emo files will not be required.

Then check what parts of all the emo files have the same material names between the mods, but have different models. (most common would be skin)

Open the emo files that is not your base in a hex editor and rename those materials to something different (eg. Skin2, Skin3).

When that is done, start taking the emg files from those emos and append it to the base emo using EMGSWAPv3 (remember, same parts like eyes and such don't need to be transferred).

Once that is done, the emo is complete (for now).



Step 2 - Building all the emb files and re-referencing the emo

Now its time to make the emb files.

Start by extracting all the DDS files using asset explorer. (DDS files for the parts that are the same like the eyes and such, don't need duplicates)

Once you have all the DDS files, use kensous tool to build the emb file (recommended that the dds files from the base mod are first and have the same order so it will be less work re-referencing them)

Now that the emb is done, use DDSREFEDIT to re-reference the parts you appended in the emo to the right dds files.

After that, make copies of the emb file for all your mods.

For each of those emb files, extract the dds files that will not be used by that particular mod and make its alpha channel completely black in photoshop and re-inject it back to its emb.

When that is complete for all your emb files, its time to move on to the emm files.



Step 3 - Building the emm files

Now its time to make the emm files.

Open up the emm file from your base mod and begin adding the materials from the other mods.

When all the materials are made, make copies of them for each of the mods for and make the necessary adjustments of colours for each of them.

When all the emm files have all the right colours for their mods, start adding the AlphaTest parameter to all the materials that are not being used in each mod.

when that is complete, export the material count to the emo file and copy that emo for all your mods (This one emo will be used for all mods).

When that is complete, open up the pdr.emm from your base mod and add all the materials from the other mod to it.

When that is done, make copies of it for all your mods.

Now for each of those pdr files, on the skin materials (or any material that uses SpcBumpBrushEmiMaskARGB_UV1_W or RedEye_W) that is not being used by that particular mod, change the shader name to SpcBumpBrushEmiRGB_UV1_W or else unwanted parts will show up in pandora.

When that is complete, all that is left is to do is to make the minor adjustments of the lua files to be updated with the new material names you had renamed in the first step and you are done.



Reason why this works -

The reason why this workaround works, is because when you hover over a costume in the select screen, that costume's emo file gets loaded in the computers memory. So when you move the cursor to a different mod that uses the same emo, the game will think its the same costume and use the emo it had loaded in memory and since the material and dds count are different from the emo in memory, the game crashes. So with this workaround, we built one emo that has all the parts from each mod, so when we hover over a different mod with the same emo file, all the correct parts are still there and that particular mods emb and emm files hides the unwanted parts making the mods work.
Edited by bbb, Jun 3 2013, 02:46 PM.
Offline Profile Quote Post Goto Top
 
robhal
Member Avatar
Pegasus Ryu Sei Ken!

I got some questions.
1. You said that some emg common to all mods (eyes, tongue, teeth, etc) don't need appended. Then what if the eyes or teeth have different color or texture, like Evil Ryu and Morrigan (both have red eyes and fangs)?

2. Is there other way to make alpha channel completely beside using photoshop? I don't want to install it just for a single task (but I can ask for the installer from my cousin).

3. If in the emm, the unwanted material already AlphaTest property with different value, do we replace it with the one from EMMEdit?

Right now I try to make Evil Ryu compatible with Ryu. I renamed all Evil Ryu's emg (including eyes and teeth) and appended all of them to Ryu's emo. Make new emb (haven't made black alpha channel) and use ddsrefedit. Then use emmedit to include all RYX's material to Ryu's emm.
I can upload the files later.
Offline Profile Quote Post Goto Top
 
bbb

Here are some answers

1. For morrigans case, since the fangs are a different model, it is necessary to have both the fang emg, and regular teeth emg, but for eye colour, it is not necessary because both ryu and Evil ryu will have their own emb, so you can change the colour of their eyes in the texture. If you dont want to edit the texture, you can still do it using both eyes, but you will have to use matedit to do the eye fix since you will mess the eye up when you click on it in emmedit to add the alphatest.

2. You can use Paint.NET. Just erase everything with the eraser tool. All that you would see is the grey and white checker pattern.

3. In cases like those, I just added the alphatest provided by emmedit and let the material keep both of them. not sure if it was necessary, just did it to play it safe.

let me know if you have any more questions :)
Offline Profile Quote Post Goto Top
 
robhal
Member Avatar
Pegasus Ryu Sei Ken!

Thanks to the tips about eyes and Paint.NET, I able to finish the RYX C1 compatible with RYU C1.
But there are some 'catch' due to my Evil Ryu mod nature:
1. Because evil ryu use Akuma's skeleton, either ryu or evil ryu will have 'monkey face' when both are used together.
2. Although Evil Ryu use the same eyes material name (but different emg) as Ryu, their dds had difference order in emb file. Because of that, when both used together, one of them will 'blind' (don't have the eyes).
3. And for unknown reason, now Evil Ryu has transparency issue with life bar (Ryu doesn't have this issue). I am sure that I don't touch any RYX's dds in Evil Ryu's emb file (only make black alpha channel for RYU's dds).
Edited by robhal, May 31 2013, 11:51 PM.
Offline Profile Quote Post Goto Top
 
bbb

Here are some answers.

1. Not really an expert on this, but can this be resolved by using monkeyfix on their own ema files?

2. Try naming one of the eyes to eye2 and give it its own separate material.

3. Life bar transparency issue is caused by using by using black in the alpha layer on an uncustomizable material. make sure Evil Ryu's emb file has his original dds files without the blacked out alpha.

let me know if you have anymore questions :)
Offline Profile Quote Post Goto Top
 
robhal
Member Avatar
Pegasus Ryu Sei Ken!

1. That was my original plan when I first try to make Evil Ryu as new roster. But some ema files got error when monkeyfixed. In the end, I was forced to inject Akuma's skeleton to Evil Ryu's emo and can only successfully monkeyfixed two ema files (RYX.ccc.ema and RYX.sel.ema).

2. I also had done that as well (see post #2). As the result, Ryu is pretty much normal, but on Evil Ryu, he got this 'flickering eyes" issue, like two emg overlap each other. Maybe I will try it again, maybe I done something wrong.

3. Like I said in the previous post, I am pretty much sure that Evil Ryu's emb file has original dds files. I will go check it again,
Offline Profile Quote Post Goto Top
 
bbb

1. dont know any way to solve this :(

2. perhaps for evil ryu, you forgot to alpha out ryu's eyes which would make him have the overlapping eyes

3. Its the only thing I know that causes the transparency issue. If its not that reason, dont know what it could be :(
Offline Profile Quote Post Goto Top
 
Deleted User
Deleted User

If I may, here is some solutions from my side :

1. If Evil Ryu is using Akuma's moveset, inject Akmua's skeleton and adjust both Ryu and Evil Ryu face and body to Akuma's face and body and there is no need for any monkeyfixed files (that's how I corrected Cole over Lars Hitori mod)

2. Like bbb said and make sure that Ryu's dds eyes and Evil Ryu dds eyes are painted in black in each alpha layer

3. Make sure to use the iruzumi code in every non-customizable emg, don't use tongue, teeth or mouth code
Quote Post Goto Top
 
robhal
Member Avatar
Pegasus Ryu Sei Ken!

@Khaled:
Bro, can you write the iruzumi code again? I lost my note.
Offline Profile Quote Post Goto Top
 
Deleted User
Deleted User

Here you go :

SpcBumpBrush_UV1_W=24000000
MatDifR=1b2f7d3f
MatDifG=7593783f
MatDifB=cba1653f
MatDifScale=803f
MatDifR=1b2f7d3f
MatDifG=7593783f
MatDifB=cba1653f
MatDifScale=803f
MatDifR=1b2f7d3f
MatDifG=7593783f
MatDifB=cba1653f
MatDifScale=803f
MatDifR=1b2f7d3f
MatDifG=7593783f
MatDifB=cba1653f
MatDifScale=803f
MatSpcR=803f
MatSpcG=803f
MatSpcB=803f
MatAmbR=c74b773f
MatAmbG=3333733f
MatAmbB=fa7e6a3f
MatAmbScale=803f
SpcCoeff=803f
SpcPower=cdcccc3d
BrushA=40
BrushB=803f
BrushC=66662640
BrushD=c03f
EdgeR=cdcc8c3e
EdgeG=1f856b3e
EdgeB=803e
EdgeScale=3f

use matedit to place this code for every non-custom material, you cannot do that with Emmedit
Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
Go to Next Page
« Previous Topic · Tutorials and Tools · Next Topic »
Add Reply