-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
MAME version
0.272 (mame0272-397-ge2e6629e89b)
Emulated system/software
CD-i
Incorrect behaviour
High Res patterns missing all odd-numbered lines.
- Use the Validation Disc (Europe)
- Phillips Tests > 1st option > Drawing > Clut 4 High Res
- Click through the examples. Take special notice of the "Outline" (Example 3)
- 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
- Skip all processing after line 312
- 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.