Skip to content

CD-i: Interlace Mode Required for "High Quality" images #13231

@Vincent-Halver

Description

@Vincent-Halver

MAME version

0.272 (mame0272-397-ge2e6629e89b)

Emulated system/software

CD-i

Incorrect behaviour

High Res patterns missing all odd-numbered lines.

  1. Use the Validation Disc (Europe)
  2. Phillips Tests > 1st option > Drawing > Clut 4 High Res
  3. Click through the examples. Take special notice of the "Outline" (Example 3)
    image
  4. Compare to how the outline is supposed to look (e.g. one of the other draw modes). Notice how many horizontal 1 pixel tall features are missing.

If you look at cdi.cpp

	screen.set_raw(14976000, 960, 0, 768, 312, 32, 312);

Then you will see the vertical height is only 312, with a 32 line vblank. Though this is to spec, the screen needs 625 lines to support High Res.

Expected behaviour

All CD-i players are expected to support the "Base Case". Clut4 High Res mode is in the base case.

High Res mode renders interlaced. According to the Green Book Spec, page V-38:

The video decoder scan timing is such as to drive a standard 525 line (typically 60Hz)
or 625 line (typically 50Hz) television display, with two fields per frame.

In the extended case, High Resolution images may be displayed with two interlaced
fields per frame, or line sequentially.

Given there is only 312 lines of output, it's not obvious where to draw the additional lines. So the screen must be adjusted.

screen.set_raw(14976000, 960, 0, 768, 625, 64, 625);

This was my attempt, however I'm looking for guidance on whether this is a correct setup of the Screen object.

Additional details

The minimal patch to fix this issue will be to increase the screen resolution, and then update the screen_update to

  1. Skip all processing after line 312
  2. Preferably have each line draw two output lines (2N and 2N+1) to avoid regression of the visuals.

Only after the resolution is corrected can support for High Res image decoding be added.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions