|
Post by Black_Tiger on Sept 20, 2020 22:58:11 GMT
I know it's been mentioned that one or both of the Legend of Xanadu games uses a horizontal resolution of lower than 256 pixels (LoX1 boss sections?).
And turboxray has talked about using a lower resolution to use sprites for a Sonic style parallax layer.
How far can the PC Engine drop the horizontal resolution? Can vertical resolution go higher than 240 or lower than 224?
|
|
|
Post by turboxray on Sept 21, 2020 5:37:40 GMT
Vertical resolution can go as high as 242 scanlines and as low as 1 scanline. The VDC itself can go as high as 512 vertical res for vertical display, but the VCE automatically asserts vblank, so it restarts the VDC (which has all those vertical and horizontal settings). There's a way to set the VDC to skip every other line (for both BG and sprites). In order to show all lines skipping every other one, is to set it to 480 (or 448 or whatever visible lines you want). The VDC (responsible for all the graphics) is really flexible, but it's the VCE that provides the timing frames of vsync and hsync, that limit it to NTSC resolutions. As a side note: since the PCE can display up to 242 lines, it can actually do real Closed Captioning subtitling.
Horizontal resolution is in steps of 8 pixels wide 'cells'. Those 8 pixels are relative to the pixel width mode; 5.37mhz, 7.16mhz, and 10.74mhz 'dot clocks'. On my capture card, I was able to set and see 280 pixels for 256px low res mode. That's the widest you can set it to, but you wouldn't want to do that (it dramatically cuts sprites it can fetch for the given scanline). So for 256px, any multiple of 8px.. 248,240,232..192, etc. I think you can drop is down to 8px? Some games do this to create small visible area boxes for cinemas. The prequel to Samurai Ghost sets the display to 240px so that it scroll sprites horizontally in a continuous motion without breaking up. You know, even a few SNES games set the displayable area to 240px horizontally (Final Fantasy 2 US is one of those games).
The thing about the Sonic parallax, or that idea, is to have a foreground map that is made up of 32x64 entries. These would be meta-tile entries, ideally, but to make things fast and easy you could decode 32x64 segments as direct 32x64 hardware sprites for parts of the foreground map that can use it. Once of the nice thing about all PCE sprites that are 32px wide, is that you easily set them to 16x by simply switching a bit. That's really important for clipping on the right and left sides of the map as the foreground sprite cells are partially in view (at the edges). It makes it extremely convenient for something like this, but for anytime you need to clip out a sprite cell on the edges of the screen (a lot of PCE games don't bother doing this). The 32x64 meta cell entry in the foreground map doesn't need to be a 32x64 sprite though. Since it's a meta-cell in the foreground map, it can contain multiple smaller sprite entries if needed. To keep the SAT from burning up, it's probably good to have a 192 line active area (or smaller) - this area would exclude any 'HUD' area as that wouldn't affect it. Just for comparison, if you look at Ys 3 SuperCD game, it is in mid res but minus the borders on each side.. the playable area is 256px wide in a 342px res mode. That's basically equivalent to 192px display in low res (or 216px visible area with the side bars).
It's not really that big of a deal, but it needs to be noted that if lower the visible area smaller than 256px for low res, you'll drop the total number of capable sprites but 2 entries (at the end) for every 8 pixels not shown from 256px (for low res mode). This doesn't affect the scanline limit, but just the overall limit. So a 240px setup would drop the last 2 sprites. A 192px setup would drop the last 8 sprites. Like I said not too big of a deal because the PCE has a good number of sprite sizes that only take up one SAT entry. A 32x32 or 32x16 or 16x64, etc is only one SAT entry (in 64). It doesn't really make sense why it does this, but it might be a throw back from an earlier design when it did need to fetch some parts of sprite attributes from vram (it doesn't do that currently though).
|
|