Hi arc11,
Last year while I was searching for a workaround, I found odd in the lines :
// determine the scale factor
- float scale_factor = target_font_height() * scale / one_to_one_line_height;
+ float scale_factor = std::min(target_pixel_height / float(raw_font_pixel_height) / options().font_rows(),
+ target_pixel_width / float(raw_font_pixel_height) / options().font_rows());
that a division is made between
target_pixel_width
and raw_font_pixel_height
if I understand correctly this expression the second line should be
target_pixel_width / float(raw_font_pixel_width) / options().font_collumns()
I don't know if raw_font_pixel_width and font_collumns exist, i just put meaningful names
just an idea....
Yes I understand why the code looks wrong. But it is right. There's no such thing as font pixel width (neither font columns). The only property that's defined for fonts is their pixel height.
The problem is this code in GroovyMAME is meant for integer scaling of
bitmap fonts (.bdf fonts). Currently MAME defaults to a true type font that doesn't work so well when integer scaled, specially at extreme pixel aspects as the one you're using for the menu (768x240).
So probably I should make uismall.bdf the default in the provided mame.ini to avoid this problem in the future.
I took some time to replicate (sort of) your setup here, this is how GroovyMAME looks when
-uifont uismall.bdf is used. The mode on screen is 768x240 (portrait / rotated).