Windows 98 Display Scaling on CRT Monitors

During the era of Windows 98, high-resolution display scaling relied on a combination of analog CRT flexibility, system-level DPI (Dots Per Inch) font adjustments, and the Windows Graphics Device Interface (GDI). Unlike modern operating systems that utilize vector graphics and fractional scaling factors for fixed-pixel LCDs, Windows 98 handled high resolutions primarily by altering system font metrics and relying on the multi-sync capability of cathode-ray tube monitors to display arbitrary pixel resolutions without digital blurring.

The Role of CRT Hardware

Cathode-ray tube monitors were inherently resolution-independent. Unlike flat-panel LCDs, which have a fixed matrix of physical pixels (native resolution), CRTs used an analog electron beam focused across a continuous shadow mask or aperture grille.

Because CRTs did not have native resolutions, they could display resolutions from 640×480 up to 1600×1200 or higher with natural sharpness. When users wanted interface elements to appear larger or smaller, the standard procedure was simply switching the display resolution rather than scaling the software. Running at 800×600 naturally magnified the operating system interface across the physical screen, while switching to 1280×1024 expanded screen real estate and shrunk desktop icons.

Windows 98 DPI Scaling Architecture

For users operating high-end CRTs at resolutions such as 1280×1024 or 1600×1200, text could become illegibly small. To address this without changing screen resolution, Windows 98 provided a rudimentary DPI scaling system accessed through the Advanced Display Properties menu.

Windows 98 supported predefined settings and custom scaling:

  • Small Fonts (96 DPI): The default baseline scale (100%).
  • Large Fonts (120 DPI): Equivalent to 125% scaling in modern terms.
  • Custom DPI: Allowed users to drag a virtual ruler on screen to calibrate physical font sizes relative to their monitor's dimensions.

When a user changed the DPI setting, Windows 98 required a system restart to replace core system font sets and reload the GDI subsystem with the new metrics.

How GDI Processed Scaled Assets

The Graphics Device Interface handled rendering based on the selected DPI value:

  • TrueType Fonts: Vector-based TrueType fonts scaled dynamically. GDI recalculated font point sizes into equivalent pixel heights based on the active DPI equation: Pixel Height = (Point Size × DPI) / 72. This allowed text in title bars, menus, and system dialogs to render sharply at higher DPI settings.
  • System Metrics: Windows 98 updated the physical dimensions of standard user interface elements. Title bar heights, scroll bar widths, and window borders expanded dynamically based on pixel formulas tied to the system metric tables.
  • Bitmaps and Icons: Windows 98 lacked asset scaling algorithms like bilinear or bicubic filtering for UI graphics. Icons were stored in fixed sizes (typically 16×16, 32×32, and sometimes 48×48 pixels). At 120 DPI, the system either mapped to a larger static icon if available in the resource file or rendered the standard 32×32 bitmap as-is, leaving icons disproportionately small compared to the enlarged text.

Limitations and Interface Artifacts

Because Windows 98 software was written with absolute pixel coordinates rather than responsive layout containers, DPI scaling frequently caused layout bugs:

  • Text Truncation: Applications hardcoded with fixed-pixel dialog boxes could not accommodate larger TrueType text strings, leading to cropped labels and overlapping buttons.
  • Mixed-Asset Discrepancies: While fonts enlarged cleanly, interface bitmaps, custom toolbars, and third-party controls remained fixed at their standard pixel dimensions.
  • Legacy Compatibility: 16-bit Windows 3.1 applications running under Windows 98 ignored DPI settings completely, creating jarring visual inconsistencies across multi-window workflows.

Ultimately, processing high resolutions in Windows 98 was an analog-first solution. Most users avoided the DPI settings entirely, preferring instead to lower the CRT refresh resolution to achieve larger visual elements without triggering software layout bugs.