This implements horizontal pel panning, which is used by games such as the Commander Keen series, and also reimplements word and odd/even modes so that they work in graphics modes; this mostly fixes Jazz Jackrabbit's graphics.
There are still some issues with Cirrus VGA, and also Keen expects the display parameters to be latched in ways that I don't fully understand and that seem to differ between Keen 1 (EGA) and 4 (VGA). So there is still a bit of tearing, but I have been sitting on these patches since the Christmas holidays of 2014, so let's flush this first part. Paolo Paolo Bonzini (8): vga: remove unused macros vga: introduce VGADisplayParams vga: mask addresses in non-VESA modes to 256k vga: implement horizontal pel panning in graphics modes vga: optimize horizontal pel panning in 256-color modes vga: reindent memory access code vga: use latches in odd/even mode too vga: sort-of implement word and double-word access modes hw/display/cirrus_vga.c | 28 +-- hw/display/vga-helpers.h | 121 +++++++++--- hw/display/vga.c | 418 +++++++++++++++++++++------------------ hw/display/vga_int.h | 18 +- hw/display/vga_regs.h | 4 + 5 files changed, 347 insertions(+), 242 deletions(-) -- 2.43.0