mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
macfb: implement mode sense to allow display type to be detected
The MacOS toolbox ROM uses the monitor sense to detect the display type and then offer a fixed set of resolutions and colour depths accordingly. Implement the monitor sense using information found in Apple Technical Note HW26: "Macintosh Quadra Built-In Video" along with some local experiments. Since the default configuration is 640 x 480 with 8-bit colour then hardcode the sense register to return MACFB_DISPLAY_VGA for now. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20211007221253.29024-8-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
4ec27073fd
commit
e6108b9636
3 changed files with 137 additions and 2 deletions
|
@ -17,6 +17,24 @@
|
|||
#include "ui/console.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
typedef enum {
|
||||
MACFB_DISPLAY_APPLE_21_COLOR = 0,
|
||||
MACFB_DISPLAY_APPLE_PORTRAIT = 1,
|
||||
MACFB_DISPLAY_APPLE_12_RGB = 2,
|
||||
MACFB_DISPLAY_APPLE_2PAGE_MONO = 3,
|
||||
MACFB_DISPLAY_NTSC_UNDERSCAN = 4,
|
||||
MACFB_DISPLAY_NTSC_OVERSCAN = 5,
|
||||
MACFB_DISPLAY_APPLE_12_MONO = 6,
|
||||
MACFB_DISPLAY_APPLE_13_RGB = 7,
|
||||
MACFB_DISPLAY_16_COLOR = 8,
|
||||
MACFB_DISPLAY_PAL1_UNDERSCAN = 9,
|
||||
MACFB_DISPLAY_PAL1_OVERSCAN = 10,
|
||||
MACFB_DISPLAY_PAL2_UNDERSCAN = 11,
|
||||
MACFB_DISPLAY_PAL2_OVERSCAN = 12,
|
||||
MACFB_DISPLAY_VGA = 13,
|
||||
MACFB_DISPLAY_SVGA = 14,
|
||||
} MacfbDisplayType;
|
||||
|
||||
typedef struct MacfbState {
|
||||
MemoryRegion mem_vram;
|
||||
MemoryRegion mem_ctrl;
|
||||
|
@ -28,6 +46,8 @@ typedef struct MacfbState {
|
|||
uint8_t color_palette[256 * 3];
|
||||
uint32_t width, height; /* in pixels */
|
||||
uint8_t depth;
|
||||
|
||||
uint32_t sense;
|
||||
} MacfbState;
|
||||
|
||||
#define TYPE_MACFB "sysbus-macfb"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue