Effects are easy to edit. You just have to start playing. You're not going to break anything. The absolute worst thing that can happen is that you need to reboot your computer or re-download an effect.
Effect files are just text files. You can open them in any text editor, including good old Notepad. I use Notepad++ because it has line numbers.
You'll see a few different names in folders: .FX, .FXSUB, .FXH. None of these much matter, they all work the same. .FX files tend to be primary files intended for loading directly in MME. .FXSUB files tend to effects loaded for render targets (those extra tabs in MME effect application dialog). FXH files tend to be like header files, including information used by a lot of different files.
Whenever you load a model into MMD, MME checks for any .FX files with the same name as the model, and if they exist, it loads them onto the model. (It also checks from an explicitly savable file format whose extension I forget.) So when you load ES.x into a scene, MME is smart enough to load ES.fx onto it. ES.fx then specifies some additional effects to load onto models in its own render targets.
Before you start editing, load your effect into a scene and make sure that MME is set to auto-reload. Now, every time you save an effect file being *directly* used by MME, it will reload the effect. You want this so you can see your changes. You also want this to be able to hear about your typos and bugs and whatnot.
Many effects have information intended to be be user-editable up near the top of their files. You're looking for "magic numbers." The standard here is to use #define statements near the top of the file to set magic numbers that could be other than they are. Look for something like,
#define PMD_SHADOWPOWER 1.1f
#define is a macro, or pre-processor directive. In English, what happens is a simple search and replace at load time. Every time (after the #define) that the effect sees "PMD_SHADOWPOWER" it instead plugs in "1.1f". This is important to understand because if you get an error, it may show up in the wrong place.
Say line 10 reads,
#define HUESHIFT 0.5f;
and line 216 reads,
HSV.x += HUESHIFT * scale;
What's going to happen is that line 216 turns into "HSV.x += 0.5f; * scale;" and the wrong syntax makes the compiler bug out. The error is on line 10, but the compiler sees the error as existing at line 216. (There shouldn't be the semi-colon on the #define.)
Okay, so to start out with, you just want to edit numbers (or perhaps filename strings) near the top of the files. Just ignore the language if it doesn't make sense. (This is HLSL, which is similar to C, and if you've programmed before, it should be easy to understand. If you haven't, well, everybody who programs learned how to do so somehow, and most of them by doing exactly this-- opening a file and messing with it.)
Just remember that programming is very specific. The compiler is smart, but it doesn't know what you mean to say. Capitalization matters. Proper punctuation matters. ")" is not the same as "}". ";" is not the same as ":". That's why you keep the effect open and autoloading, because you will make mistakes like this. I make them all the time. I make a hundred mistakes for every effect I write.
Still, to edit magic numbers, you're going to need to understand a few things.
"1.0f" is not the same thing as "1". Well, sometimes it is. Sometimes it isn't.
What's "3.6/2"? It's 2 of course! "2" is an integer. When the compiler reads that expression, it figures you're putting an integer in, so you want an integer out, and it rounds to the nearest one.
Most of the time you don't want an integer. You want a rational number, with decimal places. In programming these are called floating point values. "2.0f" is a way of specifying that, yes, you want the number to be 2, but you want it to be read as a floating point value. And so "3.6/2.0f" = 1.8, like you'd expect.
Effects use arrays of numbers all the time. For example, colors are a collection of 3 or 4 values: red, green, blue, and maybe alpha. So you're going to see lines like, "#define BLACK float4(0,0,0,1)". That's saying that BLACK is a collection of 4 floating point numbers. Red, green, and blue are all 0, and alpha is 1. Or "#define GREEN float3(0,1,0)" These are then accessed later in the program with lines like "Color.g = GREEN.g" or "Color.g = GREEN.y" (equivalent statements). You can read the elements of these with .xyzw or with .rgba notation, HLSL doesn't care, and there are times when you want a vector to be read as a color or a color as a vector.
You also may want to change image names (although it may be easier to rename your images to fit the effect.) Files are referenced by strings. String are surrounded by quotes. Directory structure assumes the main effect file as the starting point. So if ES.fx is in effects/ES, and noise.png is in effects/ES/tex, then if you want ES.fx to read noise, you'd probably use a line like
#define NOISETEX "tex/noise.png"
Forward slash, not back slash.
I can go into tons more detail if anybody is more interested. I write my own effects from scratch now. I'm not a HLSL expert yet but I can do a lot. Won't answer questions about specific effects, though, it usually means that I dig through uninteresting code for a long time to figure out the answer.