I have a quick idea for homebrew battle resolution. Before I mention it to
my players, I thought I`d post it here:

Morale
Each army starts the game with a morale score. The starting morale score of
the army could be based on total size, composition of units, presence of
magic and/or heroes, the military strength of the realm, or any other
factors that have yet to be determined. For testing purposes, I`m assuming
each player involved in a battle will have an army starting with 20 points
of Morale.

When a player`s Morale drops to 0 or less, their army is Routed. If retreat
it possible, the army retreats to a nearby province. If not, the army may
surrender. If the battle is going in the army`s obvious favor despite the
reduced Morale and it would be absurd to rule an automatic retreat, the DM
may rule the army as suppressed. It will stop fighting, but will
continue fighting in future domain turns. The enemy army has the option to
retreat or start a new battle (giving each army their full allotment of
Morale points).

Once per battle turn, each player may make a Rally check. Each player
rolls a d20, with a +2 bonus per champion or a +5 bonus if the champion is
one of the greater awnsheigh. If the player iniating the Rally check
succeeds in the opposed roll, there is no change in Morale. Otherwise, if
he loses or is tied in the check, his army automatically loses one point of
Morale.

Hence, eventually, constantly fighting, all armies Morale will eventually
wither down and the army will cease to fight. By seeing to the Morale of
your troops, you can win against even a superior force not through numbers,
but simply because your men will fight longer without routing.

-Lord Rahvin