psx - some finetuning to previous commit to fix most PAL games and bios screens
This commit is contained in:
parent
8fc5acfdcd
commit
eb59470ed8
Binary file not shown.
|
@ -1437,9 +1437,19 @@ pscpu_timestamp_t PS_GPU::Update(const pscpu_timestamp_t sys_timestamp)
|
|||
//it's unclear what happens to games displaying a peculiar Y range
|
||||
if (dump_framebuffer)
|
||||
{
|
||||
dx_start = 0;
|
||||
dx_end = 2560 / DotClockRatios[dmc];
|
||||
LineWidths[dest_line] = dx_end - dx_start;
|
||||
//special hack: if the game (or the bios...) is set to display no range here, don't modify it
|
||||
//also, as you can see just above, this condition is used to represent an 'off' display
|
||||
//unfortunately, this will usually be taking effect at dest_line==0, and so the
|
||||
//fully overscanned area will get set for LineWidths[0].
|
||||
//so later on we'll have to use LineWidths[NN], say, as a heuristic to get the framebuffer size
|
||||
if (dx_start == dx_end)
|
||||
{ }
|
||||
else
|
||||
{
|
||||
dx_start = 0;
|
||||
dx_end = 2560 / DotClockRatios[dmc];
|
||||
LineWidths[dest_line] = dx_end - dx_start;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
@ -1609,7 +1609,10 @@ EW_EXPORT s32 shock_GetFramebuffer(void* psx, ShockFramebufferInfo* fb)
|
|||
int fbIndex = s_FramebufferCurrent;
|
||||
|
||||
//always fetch description
|
||||
int width = VTLineWidths[fbIndex][0]; //presently, except for contrived test programs, it is safe to assume this is the same for the entire frame (no known use by games)
|
||||
//presently, except for contrived test programs, it is safe to assume this is the same for the entire frame (no known use by games)
|
||||
//however, due to the dump_framebuffer, it may be incorrect at scanline 0. so lets use another one for the heuristic here
|
||||
//64 is enough to fix the PAL bios screen...
|
||||
int width = VTLineWidths[fbIndex][64];
|
||||
int height = espec.DisplayRect.h;
|
||||
fb->width = width;
|
||||
fb->height = height;
|
||||
|
|
Loading…
Reference in New Issue