--- uae/src/svga.c 2018/04/24 16:43:30 1.1.1.5 +++ uae/src/svga.c 2018/04/24 16:47:27 1.1.1.8 @@ -21,12 +21,13 @@ #include "threaddep/penguin.h" #include "uae.h" #include "memory.h" -#include "custom.h" -#include "readcpu.h" -#include "newcpu.h" #include "keyboard.h" #include "xwin.h" +#include "custom.h" +#include "drawing.h" #include "keybuf.h" +#include "readcpu.h" +#include "newcpu.h" #include "tui.h" #include "gui.h" #include "picasso96.h" @@ -438,7 +439,7 @@ static void my_kbd_handler (int scancode record_key ((akey << 1) | 1); /* "Affengriff" */ - if(keystate[AK_CTRL] && keystate[AK_LAMI] && keystate[AK_RAMI]) + if ((keystate[AK_CTRL] || keystate[AK_RCTRL]) && keystate[AK_LAMI] && keystate[AK_RAMI]) uae_reset (); } @@ -473,16 +474,17 @@ static int post_enter_graphics (void) static int enter_graphics_mode (int which) { int oldmode = current_vgamode; + vga_setmode (TEXT); if (vga_setmode (which) < 0) { sleep(1); vga_setmode (TEXT); - fprintf (stderr, "SVGAlib doesn't like my video mode. Giving up.\n"); + fprintf (stderr, "SVGAlib doesn't like my video mode (%d). Giving up.\n", which); return 0; } current_vgamode = which; linear_mem = 0; - if ((modeinfo.flags & CAPABLE_LINEAR) && !currprefs.no_xhair) { + if ((modeinfo.flags & CAPABLE_LINEAR) && ! currprefs.svga_no_linear) { int val = vga_setlinearaddressing (); int new_ul = val != -1 ? !need_dither : 0; if (using_linear == -1) @@ -508,16 +510,17 @@ static int enter_graphics_mode_picasso ( if (which == oldmode) return 1; + vga_setmode (TEXT); if (vga_setmode (which) < 0) { sleep (1); vga_setmode (TEXT); - fprintf (stderr, "SVGAlib doesn't like my video mode. Giving up.\n"); + fprintf (stderr, "SVGAlib doesn't like my video mode (%d). Giving up.\n", which); exit (1); } current_vgamode = which; linear_mem = 0; - if ((modeinfo.flags & CAPABLE_LINEAR) && !currprefs.no_xhair) { + if ((modeinfo.flags & CAPABLE_LINEAR) && ! currprefs.svga_no_linear) { int val = vga_setlinearaddressing (); if (val != -1) { linear_mem = (char *)vga_getgraphmem (); @@ -697,7 +700,7 @@ int graphics_init (void) #endif gfxvidinfo.emergmem = 0; } - + printf ("rowbytes %d\n", gfxvidinfo.rowbytes); init_colors (); buttonstate[0] = buttonstate[1] = buttonstate[2] = 0; for(i = 0; i < 256; i++) @@ -927,3 +930,13 @@ int lockscr (void) void unlockscr (void) { } + +void target_save_options (FILE *f, struct uae_prefs *p) +{ + fprintf (f, "svga.no_linear=%s\n", p->svga_no_linear ? "true" : "false"); +} + +int target_parse_option (struct uae_prefs *p, char *option, char *value) +{ + return (cfgfile_yesno (option, value, "no_linear", &p->svga_no_linear)); +}