Converting from d100 to d20
Just divide by five. That's all it takes.
OK, let me unpack that a little. First, of course, 5 × 20 = 100. So take a d20 and multiply all the numbers on its sides by five. You'll get a 20-sided die with the sides numbered 5, 10, 15, 20, 25, etc. all the way up 90, 95, and 100.
You could use that die in your "roll target % or less on d100"* mechanic just fine. Well, mostly just fine. Of course if your mechanic had e.g. a "critical failure" on a natural 1, it would never happen with this die because the lowest it can roll is 5, while a natural 100 would be five times more likely than with a real d100. And of course if your success percentage for a roll wasn't a multiple of 5%, then using the relabeled d20 would skew the probability a little bit (effectively rounding it down to the nearest multiple of 5%). But other than such details, in general it would work fine. And being off by 5% isn't really a big deal most of the time.
And of course, instead of multiplying the numbers on the die by five, you can just use a normal d20 but divide the target numbers by five instead.** So, for example, "roll 80 or less on d100" becomes "roll 16 or less on d20", giving an 80% success probability either way.
Converting from roll-under to roll-over
Just replace "1 or lower" with "20 or higher", and "2 or lower" with "19 or higher", and so on. Mathematically, that means replacing "X or lower" with "21−X or higher".
That's assuming that you want to always count hitting the target exactly as a success. If you're using a literal "roll under" or "roll over" mechanic, where hitting the target exactly is a failure, then you'll have to adjust the target (or the die roll) up or down by one.
Here's a summary of all these equivalent rolling mechanics in a convenient table, because I know RPG players love tables. :D
Success |
d100 ≤ 5×X |
z100 < 5×X |
d20 ≤ X |
d20 < X+1 |
d20 ≥ 21−X |
d20 > 20−X |
0% |
d100 ≤ 0 |
z100 < 0 |
d20 ≤ 0 |
d20 < 1 |
d20 ≥ 21 |
d20 > 20 |
5% |
d100 ≤ 5 |
z100 < 5 |
d20 ≤ 1 |
d20 < 2 |
d20 ≥ 20 |
d20 > 19 |
10% |
d100 ≤ 10 |
z100 < 10 |
d20 ≤ 2 |
d20 < 3 |
d20 ≥ 19 |
d20 > 18 |
15% |
d100 ≤ 15 |
z100 < 15 |
d20 ≤ 3 |
d20 < 4 |
d20 ≥ 18 |
d20 > 17 |
20% |
d100 ≤ 20 |
z100 < 20 |
d20 ≤ 4 |
d20 < 5 |
d20 ≥ 17 |
d20 > 16 |
25% |
d100 ≤ 25 |
z100 < 25 |
d20 ≤ 5 |
d20 < 6 |
d20 ≥ 16 |
d20 > 15 |
30% |
d100 ≤ 30 |
z100 < 30 |
d20 ≤ 6 |
d20 < 7 |
d20 ≥ 15 |
d20 > 14 |
35% |
d100 ≤ 35 |
z100 < 35 |
d20 ≤ 7 |
d20 < 8 |
d20 ≥ 14 |
d20 > 13 |
40% |
d100 ≤ 40 |
z100 < 40 |
d20 ≤ 8 |
d20 < 9 |
d20 ≥ 13 |
d20 > 12 |
45% |
d100 ≤ 45 |
z100 < 45 |
d20 ≤ 9 |
d20 < 10 |
d20 ≥ 12 |
d20 > 11 |
50% |
d100 ≤ 50 |
z100 < 50 |
d20 ≤ 10 |
d20 < 11 |
d20 ≥ 11 |
d20 > 10 |
55% |
d100 ≤ 55 |
z100 < 55 |
d20 ≤ 11 |
d20 < 12 |
d20 ≥ 10 |
d20 > 9 |
60% |
d100 ≤ 60 |
z100 < 60 |
d20 ≤ 12 |
d20 < 13 |
d20 ≥ 9 |
d20 > 8 |
65% |
d100 ≤ 65 |
z100 < 65 |
d20 ≤ 13 |
d20 < 14 |
d20 ≥ 8 |
d20 > 7 |
70% |
d100 ≤ 70 |
z100 < 70 |
d20 ≤ 14 |
d20 < 15 |
d20 ≥ 7 |
d20 > 6 |
75% |
d100 ≤ 75 |
z100 < 75 |
d20 ≤ 15 |
d20 < 16 |
d20 ≥ 6 |
d20 > 5 |
80% |
d100 ≤ 80 |
z100 < 80 |
d20 ≤ 16 |
d20 < 17 |
d20 ≥ 5 |
d20 > 4 |
85% |
d100 ≤ 85 |
z100 < 85 |
d20 ≤ 17 |
d20 < 18 |
d20 ≥ 4 |
d20 > 3 |
90% |
d100 ≤ 90 |
z100 < 90 |
d20 ≤ 18 |
d20 < 19 |
d20 ≥ 3 |
d20 > 2 |
95% |
d100 ≤ 95 |
z100 < 95 |
d20 ≤ 19 |
d20 < 20 |
d20 ≥ 2 |
d20 > 1 |
100% |
d100 ≤ 100 |
z100 < 100 |
d20 ≤ 20 |
d20 < 21 |
d20 ≥ 1 |
d20 > 0 |
But what about those < 5% criticals etc.?
Each side on a d20 has a 5% chance of being rolled, so all probabilities in any mechanic based on a single d20 roll necessarily come in increments of 5%. If you want to have something happen with a probability of less than 5%, you're going to need to use multiple rolls.
For example, a naïve way to get a 1% critical failure chance would be something like this:
On a natural 1, roll another d20. If it rolls less than 5 (i.e. from 1 to 4), you suffer a critical failure.
Of course, that feels like a rather arbitrary and boring mechanic. You might be able to "spice it up" e.g. by giving the player some ways to affect the second "confirmation" roll (or the target number for it) at some cost (either expending limited resources or risking future consequences).
In general, for these kinds of "special" outcomes, a straightforward mathematical conversion isn't likely to be the best approach. Rather, you should (also) think about what the mechanic is trying to accomplish in the broader context of the gameplay and how to best achieve a similar sense of (e.g.) danger and excitement in your new system.
*) There are two common ways to roll a d100 using two d10, one giving results from 1 to 100 and the other (sometimes called "z100") from 0 to 99, and two associated ways to do a percentage roll. Basically, both "roll X or less on d100" and "roll less than X on z100" give an X% chance of success. I'm assuming the former convention (i.e. rolls range from 1 to 100 and you roll equal or under to succeed), but of course they're mathematically equivalent.
**) Simple but handy mental math trick: to divide by 5, first divide by 10 and then multiply by 2.