I suppose you could position yourself and use math to get the most out of an attack. RNG determines where the rocks will land. Maybe I'll look into that.
The hard part is the fact that you can't really control all 10 attacks because the seed changes at least 3 times after every hit, so the best you can do is make as many rocks hit as possible.
I was wrong about PJ64 effecting the RNG. It's the video plugin I was using that broke it, not the emulator itself.
I can post the element bonus here, the other stuff I'm writing in my faq right now, so it should be updated by tomorrow at least.
The way the element bonus works is, it checks the element levels of your other spells. So say you're using a fire spell. Your element bonus would be water /16 rounded down + earth / 8 RD + wind / 8 RD . So basically the opposite element is /16 while the neutral elements are 8. The reason it seems confusing is because the higher your total element count is, the more you hit through defense. That's the reason the damage is buggy when you change your elements during a battle, because that total element variable is only written at the start of a battle, so it won't update since the game assumes your elements never change in battle.
RNG is interesting, it determines the exact spot your avalanche will fall. When i froze the RNG seed, the rocks stacked in 1 spot. It's very hard to manipulate avalanche since it's a multi hitting attack though, without cheating of course. Fortunately for single hitting attacks, it is very easy to manipulate with emulator. I have the formula and know the sequence of the seeding.
With escape, i gave the enemy 65535 agility, and I was still able to escape. I will have to download mupen to see if the RNG is broken on it, like it is with certain video plugins. With the Jabo's Direct 3D6, the seed advances a little more than once per second, but with RiceVideo, it only advances when you do certain things like opening doors, doing attacks, getting attacked, etc.
I'll admit, theres a small chance I could be wrong about item drops, but when I look at the RNG routine, it always appears to be 1/4 chance from what I've seen. I will need to fight more types of enemies to confirm. The confusing part is that it goes through the RNG process twice. I'm guessing the 2nd time decides which item, if you fight multiple monsters that drop different items. I'll go ahead and do some testing right now, since you asked a good question that I forgot to look into. I guess I'll add the rest of the formulas in my next update.
Edit:
I would have posted my damage formula already, but the formula is ridiculously long and I still don't fully understand the rounding. I understand everything about damage, except for the slight difference in rounding, which I'd like to say is negligible, but in some random case where you hack the game to do extra damage, there's a very small chance you could be off by one.
What I'll do is just make a formula's section I guess.
You are right about my methodology being unexplained, mostly due to the fact I submitted the faq kinda early and I'm not done with my testing. I'll add more to my faq once I understand the mechanics behind it.
For accuracy, there are multiple factors. 100 accuracy in a spell does not mean it will always hit because your agility and your enemy's agility also factor in whether an attack hits or misses. RNG seems to affect it too. The numbers I give are the actual values given to the spells. I didn't make anything up. The only spells that seem to go purely by the accuracy of the spell are spells that effect yourself, like healing which has 100 accuracy by default.
If you want to take a look at the spell variables, I can give you the N64 addresses to them. Keep in mind I'm using NTSC, if you're PAL, i can go search it for you.
The addresses of the spells go in order from Fire to Earth to Water to Wind. Within the elements, the order goes by the level requirement. So the beggining of the addresses for spells is 800C06A0 . Which is Fire Ball Level 1. Since I use cheat engine to keep a list of addresses, I will be using the Little Endian format, so if you are using Big Endian, you will have the swap the last byte of the address. For example 8007BAA4 in little endian = 8007BAA7 in big endian.
Also I don't fully know what each variable does so I will just skip them.
800C06A0 is the address that determines Area of Effect for the spell as well as when you are able to cast the spell (inside of battle, outside of battle, or both). I'm not sure what 800C06A1 does, but 800C06A2 determines the Level Requirement of the spell. 800C06A4 - 800C06A7 seems to effect menu. 800C06A8 - 800C06A9 effect the number of frames the attack lasts. This is the main variable that affects range aside from whether or not it's a projectile. 800C06AC - 800C06AD is Accuracy. 800C06AE - 800C06AF is damage.
If you want to write down or look at the addresses for the spell variables, here's the order in Little Endian.
Byte 1 determines AOE and when you can cast spell
Byte 2 Something to do with hit stun
Byte 3-4 Determines Level Requirement
Byte 5-8 Menu stuff
Byte 9-10 Range (seems to just be the number of frames it lasts)
Byte 11 Unknown
Byte 12 Something to do with menu
Byte 13-14 Accuracy
Byte 15-16 Damage
Byte 17-18 Projectile (whether moves or not)
Byte 19-20 Determines whether you do damage, MP drain, healing, Invalidity, etc
Byte 21-22 Target (whether auto hits or not)
Byte 23-24 Unknown
Byte 25-26 Unknown
Byte 27-28 Unknown
Byte 29-30 Unknown
Byte 31-32 Size
Byte 33-34 Number of (frames delayed / 2) between hits
Byte 35-36 Number of Hits
Byte 37-38 Starting point and direction of the spell
Byte 39-40 Number of (frames delayed / 2) after animation
Byte 41-42 Unknown
Byte 43-44 Homing
Byte 45-46 Something to do with the velocity of the spell
Byte 47-48 Unknown
Byte 49 Vamps Touch (crashes game when used with dmg spells)
Byte 50 Compression
Byte 51-52 Direction of attack??
Byte 53 Agility (1 = Evade lv.1, 2 = Evade lv.2, 3 = Slow Enemy)
Byte 54 Movement (1 = Lower movement, 2 = Higher Movement)
Byte 55 Restriction
Byte 56 Attack (1 = power staff lv 1 , 2 = pow staff lv. 2)
Byte 57 Confusion
Byte 58 Magic Barrier
Byte 59 Soul Search
Byte 60 Silence
Byte 61 Unknown
Byte 62 Gives 2048 to status effect
Byte 63-64 Unknown
Byte 65-66 Unknown
Byte 67-68 Unknown
I'll give you the starting address of the spells you mentioned.
Confusion starts at 800C0D00 so accuracy will be at 800C0D0C - 800C0D0D
Escape starts at 800C10B8 . Accuracy is at 800C10C4 - 800C10C5
Magic Barrier starts at 800C0DCC . Accuracy is at 800C0DD8 - 800C0DD9
Earth Spikes starts at 800C16D4 . Accuracy is at 800C16E0 - 800C16E1
Maybe soon, I can take a look at the accuracy formula, if I'm fortunate enough to find it.
When you take a look at the mechanics of the game, it will look funny to you because it just seems so arbitrary, the way they decided things.
Edit: I did some testing on accuracy, item drops, movement, RNG, damage, etc, so I updated my faq. It now fully explains the accuracy formula as well as the movement range formula.
I wrote a decent faq that has a good amount of info on spells, stats, and enemy list.
http://www.gamefaqs.com/n64/198386-quest-64/faqs/66316
I have been doing some testing to figure out more stuff. I recently found out some interesting info while debugging the game.
Is anyone interested in helping me understand the RNG? So far I found the subroutine for the damage, and the address that determines the randomness of the damage.