|The Enchantress from Dark Classics|
Now, I already have magic-users roll a saving throw when they cast a spell to see if the spell is retained. Why not roll the retention save and the monster save together? One minor problem is that the player wants to roll high on the retention save, but wants the monster to roll low on the defense save. However, this is easy to address; just subtract the monster save from 20 to get a new target number.
For example, say the target of a spell has a saving throw versus magic of 15. That means they have a 30% defense against magic. Also assume that the caster has a save versus magic of 15 (and thus a 30% chance to retain the spell). The player rolls 1d20. Above 5 and the monster is affected (30% chance preserved). 15 or higher and the spell is also retained. This is a quick and easy single roll spectrum system that uses all the default game numbers.
The one minor hack that I would add is to have the magic-user apply spell competency* as a bonus to the roll and spell level as a penalty to represent spell difficulty (at first and second class level these modifiers balance out, so no math is required until a magic-user reaches third level). This makes the all-in-one saving throw more like a direct "spell roll."
* Spell competency = the highest level of spell that the magic-user can prepare. This is usually equivalent to experience level divided by 2 (round up). For example, a fifth level magic-user has a spell competency of 3.