From eb59470ed89384c6f4e1f1e8f80911b71003725b Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 2 Aug 2015 12:02:55 -0500 Subject: [PATCH] psx - some finetuning to previous commit to fix most PAL games and bios screens --- output/dll/octoshock.dll | Bin 927744 -> 927744 bytes psx/octoshock/psx/gpu.cpp | 16 +++++++++++++--- psx/octoshock/psx/psx.cpp | 5 ++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/output/dll/octoshock.dll b/output/dll/octoshock.dll index 9cba343fba2043abdbba98aac1d83f25a37e6b83..f263f6ee1f21ed9fb52850f2d588baaf6322e981 100644 GIT binary patch delta 33482 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 delta 33351 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 diff --git a/psx/octoshock/psx/gpu.cpp b/psx/octoshock/psx/gpu.cpp index 0708823169..30a76a5516 100644 --- a/psx/octoshock/psx/gpu.cpp +++ b/psx/octoshock/psx/gpu.cpp @@ -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; + } } { diff --git a/psx/octoshock/psx/psx.cpp b/psx/octoshock/psx/psx.cpp index ae4708e16f..550bfe0a4f 100644 --- a/psx/octoshock/psx/psx.cpp +++ b/psx/octoshock/psx/psx.cpp @@ -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;