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
v1->v2: redone patch 1 [inspired by Zoltan]
cosmetic changes to patches 3 and 8
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