In Psycho Pinball, when vertically tilting the table,
the game switches resolution, perhaps to hide the top
of the table that appears at the bottom when you do.
This switching of resolution creates visual disruption
and releases all pressed keys, of which especially the
latter is annoying. The change in vertical resolution
(height) is from 367 to 355, in steps of 1 per frame I
believe. This is in high-resolution mode. Low-res
normally runs on 320x240, but I don't know to which
mode it switches.
A fix for this can be placed in
src/hardware/vga_draw.cpp at line 645 (in the 0.65
version), just before "vga.draw.lines_total=height;".
This is it:
if (height <= 367 && height > 354)
height = 367;
I assume this is not a usuable fix, because it may
adversely affect other games. Perhaps the sequential
change in mode by 1 pixel can be made use of for
detection. Or, some kind of signature checking of the
P.EXE executable in memory can be included in the
condition. Or perhaps you know an elegant way :)
Also, the doublewidth=false is necessary to avoid the
table appearing twice too wide. I don't know much about
doublewidth though, and how it should be handled, so I
don't know the proper place for this fix.