You mainly need to convert pixels and lines into timings, for example:
modeline "384x256_55 15.85kHz 55.02Hz" 8.7469 384 416 448 552 256 258 261 288 -hsync -vsync
Dclock(8.7469)
Hfp(416-384=32) Hpl(448-416=32) Hbp(552-448=104)
Vfp(258-256=2) Vpl(261-258=3) Vbp(288-261=27)
divide Hfp by Dclock -> 32/8.7469=3.658
divide Hpl by Dclock -> 32/8.7469=3.658
divide Hbp by Dclock -> 104/8.7469=11.890
divide Vfp by Hfreq -> 2/15.85=0.126
divide Vpl by Hfreq -> 3/15.85=0.189
divide Vbp by Hfreq -> 27/15.85=1.704
So you get something like:
crt_range0 15840-15850,54.92-55.12,3.658,3.658,11.89,0.126,0.189,1.704,0,0,256,256,0,0