--- uae/src/svga.c 2018/04/24 16:42:10 1.1.1.4 +++ uae/src/svga.c 2018/04/24 17:02:02 1.1.1.10 @@ -18,15 +18,15 @@ #include "config.h" #include "options.h" -#include "threaddep/penguin.h" +#include "threaddep/thread.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 "newcpu.h" #include "tui.h" #include "gui.h" #include "picasso96.h" @@ -438,7 +438,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 +473,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 +509,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 +699,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++) @@ -861,7 +863,7 @@ static void set_window_for_amiga (void) restore_vga_colors (); } -void gfx_set_picasso_modeinfo (int w, int h, int depth) +void gfx_set_picasso_modeinfo (int w, int h, int depth, int rgbfmt) { vga_modeinfo *info; int i, mode; @@ -910,14 +912,6 @@ void gfx_set_picasso_state (int on) set_window_for_amiga (); } -void begindrawing (void) -{ -} - -void enddrawing (void) -{ -} - uae_u8 *gfx_lock_picasso (void) { return linear_mem; @@ -935,3 +929,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)); +}