diff -ru base/src/artwork.c base_crop/src/artwork.c --- base/src/artwork.c Wed Nov 20 21:11:00 2002 +++ base_crop/src/artwork.c Thu Apr 10 23:22:42 2003 @@ -414,6 +414,7 @@ static UINT8 global_artwork_enable; static const struct overlay_piece *overlay_list; +int rotation = 0; @@ -626,6 +627,7 @@ min_x = min_y = 0.0; max_x = max_y = 1.0; if (!options.artwork_crop) + { for (piece = artwork_list; piece; piece = piece->next) { /* compute the outermost bounds */ @@ -634,6 +636,21 @@ if (piece->top < min_y) min_y = piece->top; if (piece->bottom > max_y) max_y = piece->bottom; } + } + else + { + //Do we want leave artwork in edge space + if (options.artwork_fb) + for (piece = artwork_list; piece; piece = piece->next) + { + if((rotation && !(Machine->gamedrv->flags & ORIENTATION_SWAP_XY)) || + (!rotation && (Machine->gamedrv->flags & ORIENTATION_SWAP_XY))) + { + if (piece->top < min_y) min_y = piece->top; + if (piece->bottom > max_y) max_y = piece->bottom; + } + } + } /* now compute the altered width/height and the new aspect ratio */ params->width = (int)((max_x - min_x) * (double)(original_width * gamescale) + 0.5); diff -ru base/src/mame.h base_crop/src/mame.h --- base/src/mame.h Thu Apr 10 09:46:14 2003 +++ base_crop/src/mame.h Thu Apr 10 10:04:28 2003 @@ -196,6 +196,7 @@ int use_artwork; /* bitfield indicating which artwork pieces to use */ int artwork_res; /* 1 for 1x game scaling, 2 for 2x */ int artwork_crop; /* 1 to crop artwork to the game screen */ + int artwork_fb; /* 1 to crop artwork to the game screen */ char savegame; /* character representing a savegame to load */ diff -ru base/src/windows/config.c base_crop/src/windows/config.c --- base/src/windows/config.c Thu Apr 10 09:46:56 2003 +++ base_crop/src/windows/config.c Thu Apr 10 22:29:30 2003 @@ -83,6 +83,7 @@ static int video_flipx = 0; static int video_ror = 0; static int video_rol = 0; +extern int rotation; static char *win_basename(char *filename); @@ -200,6 +201,7 @@ { "use_overlays", "overlay", rc_bool, &use_overlays, "1", 0, 0, NULL, "use overlay artwork" }, { "use_bezels", "bezel", rc_bool, &use_bezels, "1", 0, 0, NULL, "use bezel artwork" }, { "artwork_crop", "artcrop", rc_bool, &options.artwork_crop, "0", 0, 0, NULL, "crop artwork to game screen only" }, + { "artwork_filledges", "cropfe", rc_bool, &options.artwork_fb, "0", 0, 0, NULL, "use with artcrop, fills edges with art" }, { "artwork_resolution", "artres", rc_int, &options.artwork_res, "0", 0, 0, NULL, "artwork resolution (0 for auto)" }, { "cheat", "c", rc_bool, &options.cheat, "0", 0, 0, NULL, "enable/disable cheat subsystem" }, { "debug", "d", rc_bool, &options.mame_debug, "0", 0, 0, NULL, "enable/disable debugger (only if available)" }, @@ -650,7 +652,10 @@ /* override if no rotation requested */ if (video_norotate) + { orientation = options.ui_orientation = ROT0; + rotation = 0; + } /* rotate right */ if (video_ror) @@ -661,6 +666,7 @@ orientation ^= ROT180; orientation ^= ROT90; + rotation = 1; } /* rotate left */ @@ -671,7 +677,8 @@ (orientation & ROT180) == ORIENTATION_FLIP_Y) orientation ^= ROT180; - orientation ^= ROT270; + orientation ^= ROT270; + rotation = 1; } /* flip X/Y */