Windows 98 High-DPI Font Settings Explained

Microsoft Windows 98 handled high-resolution displays primarily through system-wide dots-per-inch (DPI) adjustments that scaled the logical size of typography and user interface elements. Rather than using modern, dynamic application scaling, the operating system relied on fixed GDI (Graphics Device Interface) font metrics, predefined font presets, a manual onscreen ruler for custom calibration, and mandatory system restarts to resize system fonts.

Display Properties and Font Presets

Users configured font scaling in Windows 98 via the Display Properties control panel by navigating to Settings > Advanced > General. Under the "Display" section, Windows offered a "Font Size" dropdown with two standard presets:

  • Small Fonts (Normal size): Defined as standard 96 DPI (100% scale), which was the default baseline for standard CRT resolutions like 800x600 and 1024x768.
  • Large Fonts: Defined as 120 DPI (125% scale), intended for higher resolutions like 1280x1024 or 1600x1200 where default 96 DPI text became illegible on smaller monitors.

The Custom Font Size Calibration Tool

In addition to the presets, Windows 98 allowed users to select "Other..." to open the Custom Font Size utility. This dialog featured an onscreen physical ruler calibrated in inches or centimeters.

Users could hold an actual physical ruler up to their CRT display and drag the onscreen ruler until an inch on the screen matched an exact inch in the physical world. The dialog also provided a percentage scale (from 100% to 200%) to calculate a non-standard DPI value, allowing users to precisely set custom values such as 110 DPI or 144 DPI.

GDI Metrics and Font Calculation

Behind the scenes, Windows 98 managed font scaling through the GDI subsystem using two primary values: LOGPIXELSX and LOGPIXELSY.

When software requested a font using standard typographical point sizes (where 1 point = 1/72 of an inch), GDI converted points to physical pixels using the configured system DPI:

\[\text{Pixel Height} = \frac{\text{Point Size} \times \text{LOGPIXELSY}}{72}\]

At 96 DPI, an 8-point MS Sans Serif system font rendered at approximately 11 pixels high. When set to 120 DPI, the same 8-point specification scaled upward to approximately 13 pixels high. Windows also substituted certain bitmap screen fonts (.FON files) with larger-resolution variants designed specifically for 120 DPI to maintain legibility.

Appearance Settings and Global UI Metrics

To adjust individual shell elements, Windows 98 exposed the Appearance tab within Display Properties. Changing the global DPI automatically recalculated the pixel values for core interface metrics:

  • Title bar height and caption text
  • Menu text and menu bar height
  • Desktop icon spacing and icon label text
  • Message box text, tooltip fonts, and scroll bar widths

Users could also manually override the font sizes and families for these elements individually, adjusting point sizes directly for elements like active title bars or palette titles.

System Reboots and Software Limitations

Unlike modern operating systems that handle per-monitor DPI scaling dynamically, Windows 98 applied DPI changes globally:

  • Mandatory Reboots: Changing font DPI usually required inserting the Windows 98 installation CD to extract alternative font sets and always required restarting the computer to reload the display drivers and GDI subsystem.
  • UI Clipping: Because legacy software typically hardcoded dialog box sizes in raw pixels instead of dialog units (DLUs) or scalable layouts, enabling Large Fonts frequently led to visual artifacts. Text often overflowed buttons, clipped inside labels, or pushed interactive elements outside the visible boundaries of dialog boxes.