The programs I used to rate my music with (Media Monkey, WMP and Banshee) all use POPM as such :
255 as the max value. So rating=5 in banshee and WMP. And 252 for 5.0 in media monkey. And for rating=1 it's 23 in MM and WMP while 1 in banshee.
All seem to use 64 for 2 stars, 128 for 3, 196 for 4 and 0 or "no POPM tag" if rating=0
And since Media Monkey also uses the x.5 (half-stars) ratings, it subtracts 10 from the original upper x.0 rating. So 1.5 is 64-10=54 and 0.5 is 23-10=13.
So in general the following mapping should be able to :
1. Read (POPM => gMB FMPS_Rating) correctly all values from all mentioned players :0 (or no tag) => 0 (or no tag)
13 => 10%
[1-12]|[14-31] => 20%
54 => 30%
[32-53]|[55-95] => 40%
118 => 50%
[96-117]|[119-159] => 60%
186 => 70%
[160-185]|[187-223] => 80%
242 => 90%
[224-241]|[243-255] => 100%
2. Write (gMB FMPS_Rating => POPM) tags to be correctly read by all mentioned players (and also windows explorer's "ratings column") :0% => 0
10% => 13
20% => 23
30% => 54
40% => 64
50% => 118
60% => 128
70% => 186
80% => 196
90% => 242
100% => 255
Media Monkey being the only player to use half-stars with POPM that I know of, to me it defines the standard for half-stars with the odd mechanic of a full-star minus ten (64-10=54 for 30% or 1.5 stars).
And in the case of 90% since MM uses 252 as 100%, I chose 242 as the 90% to write to be properly read by MM.
The ranges [1-31]... I used are defined by the windows explorer standard for reading POPM.
This is obviously too lousy/irregular a standard to be mathematically mapped from 255 to 100. So it might take a lot more time in testing with other players alone. Which is why I'd like to offer my help in that regard. I don't know a thing about Perl (I code in Java and now Python) but if pointed in the right direction I might end up being useful

If not I could at least test the binaries with other players, the ones I know plus other popular ones using POPM in both Linux and Windows.
PS: the forum suggested me to make a new post seeing how old this one is. Should I ?