Mame in cab thread. Frontends, gamelists, configuration etc.

Everything Emulator related
Post Reply
User avatar
joeblade
You're looking good Tim
Posts: 798
Joined: September 13th, 2008, 6:18 pm
Location: London

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by joeblade »

cools wrote:Yup, same as CB. I force CB to run at just the ingame resolution - still stutters in the menu but doesn't switch res all over the place. Do the same for Driller etc.
Yeah that's not a bad idea actually, saves the switch! ;)
For gods sake, its a carton box - not the holy grail!
User avatar
cools
Armed Police Buttrider
Posts: 13457
Joined: August 17th, 2008, 4:49 pm
Location: Wales, United Kingdom
eBay: hordarian
Initials: CLS

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cools »

AO exclusive!

I'm not going to post this elsewhere (yet).

Attract Mode frontend "VERTICOOLS" layout.nut:

Code: Select all

// VERTICOOLS
// Layout by cools / Arcade Otaku
// For use in a 640x240 resolution
// We use this strange resolution to enhance the Attract Mode font rendering quality in 15KHz
// Recommended font: Coolvetica
//
// Layout User Options
class UserConfig {
 </ label="Background Image", help="Choose snap/video snap, title, flyer, user image (bg.jpg in layout folder) or no background", options="video,snap,title,flyer,user,none" /> bg_image = "video";
 </ label="Show Wheel Logo?", help="Enable the wheel logo?", options="Yes,No" /> wheel_logo="Yes";
 </ label="Show Category?", help="Enable the category text?", options="Yes,No" /> category_text="Yes";
}
local my_config = fe.get_config();

// Colour cycle code from LukeNukem
cycleVTable <-{
 "cnListHeight" : 0, "swListHeight" : 0, "wkListHeight" : 0,
 "cnListRed" : 0, "swListRed" : 0, "wkListRed" : 0,
 "cnListGreen" : 0, "swListGreen" : 0, "wkListGreen" : 0,
 "cnListBlue" : 0, "swListBlue" : 0, "wkListBlue" : 0,
}
function cycleValue( ttime, counter, switcher, workValue, minV, maxV, BY, speed ) {
 if (cycleVTable[counter] == 0)
  cycleVTable[counter] = ttime;
////////////// 1000 = 1 second //////////////
 if (ttime - cycleVTable[counter] > speed){
  if (cycleVTable[switcher]==0){
   cycleVTable[workValue] += BY;
   if (cycleVTable[workValue] >= maxV)
    cycleVTable[switcher] = 1;
  }
  else 
  if (cycleVTable[switcher]==1){
   cycleVTable[workValue] -= BY;
   if (cycleVTable[workValue] <= minV)
    cycleVTable[switcher] = 0;
  }    
  cycleVTable[counter] = 0;
 }
 return cycleVTable[workValue];  
}

// Gives us a nice high random number for the RGB levels
function brightrand() {
  return 255-(rand()/512);
}

// Layout Constants
fe.layout.orient = RotateScreen.Right;
fe.layout.width=fe.layout.width/2;
local flw=fe.layout.width;
local flh=fe.layout.height;
local rot=(fe.layout.base_rotation+fe.layout.toggle_rotation)%4;
switch (rot) {
 case RotateScreen.Right:
 case RotateScreen.Left:
  fe.layout.width=flh;
  fe.layout.height=flw;
  flw=fe.layout.width;
  flh=fe.layout.height;
}

// Background
if ( my_config["bg_image"] == "video") {
 local bg = fe.add_artwork("snap",0-(flw*0.1),0-(flh*0.1),flw*1.2,flh*1.2);
 bg.preserve_aspect_ratio = false;
 bg.set_rgb(128,128,128);
}
else if ( my_config["bg_image"] == "snap") {
 local bg = fe.add_artwork("snap",0-(flw*0.1),0-(flh*0.1),flw*1.2,flh*1.2);
 bg.video_flags = Vid.ImagesOnly;
 bg.preserve_aspect_ratio = false;
 bg.set_rgb(128,128,128);
}
else if ( my_config["bg_image"] == "title") {
 local bg = fe.add_artwork("title",0-(flw*0.1),0-(flh*0.1),flw*1.2,flh*1.2);
 bg.preserve_aspect_ratio = false;
 bg.set_rgb(128,128,128);
}
else if ( my_config["bg_image"] == "flyer") {
 local bg = fe.add_artwork("flyer", 0, 0, flw, flh);
 bg.preserve_aspect_ratio = false;
 bg.set_rgb(128,128,128);
}
else if ( my_config["bg_image"] == "user") {
 local bg = fe.add_image("bg.jpg",0,0,flw,flh);
 bg.preserve_aspect_ratio = false;
 bg.set_rgb(128,128,128);
}

// List
local lbx=0;                    // Listbox X position
local lby=flh*0.4;              // Listbox Y position
local itn=9;                    // Listbox entries
if ( my_config["wheel_logo"] == "No") {
 lby=flh*0.17;                  // Listbox Y position without logo
 itn=13;                        // Listbox entries without logo
} 
local lbw=flw;                  // Listbox width
local lbh=(flh-lby-(flh*0.08)); // Listbox height
local ith=lbh/itn;              // Listbox entry height
lby+=(ith*(itn/2));             // Listbox draw point - do not change
local lbr=255;                  // Listbox red
local lbg=255;                  // Listbox green
local lbb=128;                  // Listbox blue
local lbf=0.75;                 // Listbox colour fade. Lower values = less fade.

for (local i=(itn/2)*-1;i<=(itn/2);i+=1){
 if (i==0) {}
 else { 
  local unselgame=fe.add_text("[Title]",lbx,lby+(ith*i),lbw,ith);
  unselgame.index_offset=i;
  if (i<0) {unselgame.alpha=255-((i*(255/(itn/2))*-1)*lbf);}
  else {unselgame.alpha=255-(i*(255/(itn/2))*lbf);} 
 }
}

// Texts
local filtershadow=fe.add_text("<  [ListFilterName]  >",1,(flh*0.06)+1,flw,flh*0.05);
filtershadow.set_rgb(0,0,0);
local filtername=fe.add_text("<  [ListFilterName]  >",0,flh*0.06,flw,flh*0.05);
local listtitle=fe.add_text("[ListSize] [ListTitle]",0,flh*0.11,flw,flh*0.05);
local selgameshadow=fe.add_text("[Title]",lbx+2,lby+2,lbw,ith);
selgameshadow.set_rgb(0,0,0);
local selgame=fe.add_text("[Title]",lbx,lby,lbw,ith);

local freeplayleft=fe.add_text("Free Play",0,0,flw,flh*0.05);
freeplayleft.align=Align.Left;
local freeplayright=fe.add_text("Free Play",0,0,flw,flh*0.05);
freeplayright.align=Align.Right;
local instructions=fe.add_text("Instructions",0,flh*0.92,flw,flh*0.04);
local help_text=fe.add_text("Play Game [BUTTON1]  -  Random [START]  -  Quit Game [START1+2]",0,flh*0.95,flw,flh*0.04);

if ( my_config["category_text"] == "Yes") {
 local category=fe.add_text("[Category]",0-(flw*0.01),flh*0.95,flh*0.85,flh*0.05);
 category.rotation=-90;
 category.align=Align.Left;
 category.alpha=64;
}
local copyright=fe.add_text("©[Year] [Manufacturer]",flw-(flh*0.06),flh*0.95,flh*0.85,flh*0.05);
copyright.rotation=-90;
copyright.align=Align.Left;
copyright.alpha=64;

// Preview image
if ( my_config["wheel_logo"] == "Yes") {
 local wheelshadow=fe.add_artwork("wheel",(flw*0.1)+2,(flh*0.18)+2,flw*0.80,flh*0.22);
 wheelshadow.preserve_aspect_ratio = true;
 wheelshadow.set_rgb(0,0,0);
 wheelshadow.alpha = 192;
 local wheel=fe.add_clone(wheelshadow);
 wheel.set_rgb (255,255,255);
 wheel.x = wheel.x - 2;
 wheel.y = wheel.y - 2;
 wheel.alpha=255;
} 

function textTickles( ttime ) {    
 local RED = cycleValue(ttime,"cnListRed","swListRed","wkListRed",100,254,1,1);
 local GREEN = cycleValue(ttime,"cnListGreen","swListGreen","wkListGreen",100,254,1.5,1);
 local BLUE = cycleValue(ttime,"cnListBlue","swListBlue","wkListBlue",100,254,2,1);
 local grey=brightrand();
 selgame.set_rgb(RED,GREEN,BLUE);
 filtername.set_rgb(RED,GREEN,BLUE);
 instructions.set_rgb(RED,GREEN,BLUE);
 freeplayleft.set_rgb(grey,grey,grey);
 freeplayright.set_rgb(grey,grey,grey);
}

function fades( ttype, var, ttime ) {
 switch ( ttype ) {
  case Transition.FromGame:
   filtername.msg="<  [ListFilterName]  >";
   return false;
   break;
  case Transition.ToGame:
   if (ttime < 10) {
    filtername.msg="LOADING...";
    return true;
   }
   break;
  case Transition.EndLayout:
   if (ttime < 10) {
    filtername.msg="EXITING";
    return true;
   }
  return false;
 }
}

fe.add_ticks_callback( "textTickles" );
fe.add_transition_callback( "fades" );
Attract Mode filters part of attract.cfg:

Code: Select all

list	Games
	layout               verticools
	romlist              MAME
	filter               All
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
	filter               Favourite
		rule                 Favourite equals 1
	filter               Classic
		rule                 Tags contains Classic
	filter               Breakout
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Breakout
	filter               Driving
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Driving
	filter               Fighter
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Fighter
	filter               Maze
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category equals Maze
	filter               Platform
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Platform
	filter               Puzzle
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Puzzle
	filter               Shooting
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Shooter /
	filter               SHMUP
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category equals Shooter / Flying Vertical
	filter               Sports
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Sports
	filter               Miscellaneous
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop|Breakout|Driving|Fighter|Maze|Platform|Puzzle|Shooter|Sports
You'll just need to set up your "Classic" and "Unplayable/Bad/Hidden" tags, along with selecting favourites. Or delete these filters, no big deal.

The "All" list should be around 500 games, and the categories break them down nicely - there's an awful lot of SHMUPs and shooters in vertical (around 300 of that 500) so those lists are bigger.

My button config:
P1 / P2 start = random game
P1/P2 Button 1 = confirm
Up/Down = select next/previous game
left/right = select next/previous filter
P1/P2 button 4 = add/remove favourite
P1/P2 button 5 = add/remove tag
Image
User avatar
joeblade
You're looking good Tim
Posts: 798
Joined: September 13th, 2008, 6:18 pm
Location: London

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by joeblade »

You Da Man Cools...thanks, off to add now!! :awe: :awe:

Updated to 154 the other day, nice that nplayers and catver have got there too for this release. Just need to find the additional vids if anyone has bothered to do them!!

Btw you'll appreciate this, I was trawling through the hori list last week and couldn't find Gauntlet? Turns out the "clone of ." (I think that's the one was responsible).

I know you can't believe I still play that!! :shifty: :oops:
For gods sake, its a carton box - not the holy grail!
User avatar
cools
Armed Police Buttrider
Posts: 13457
Joined: August 17th, 2008, 4:49 pm
Location: Wales, United Kingdom
eBay: hordarian
Initials: CLS

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cools »

None of my filtering uses nplayers BTW, have you found a good use for it?

Yeah any clones that I want to play I just add to favourites rather than fuss about getting them into the main categories - batsugunsp, guwange blue etc. Its easy enough to create a temporary unfiltered list to find them to add.
Image
User avatar
pubjoe
Fosters Political Ambitions
Posts: 9836
Joined: August 19th, 2008, 8:58 am
Location:

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by pubjoe »

Ah yeah that was something I ended up doing. Adding to the main list clones (such as Super Turbo) and unsupported games (such as D2K Jumpman returns - at the time). Right pain in the **** it is to do.
User avatar
cools
Armed Police Buttrider
Posts: 13457
Joined: August 17th, 2008, 4:49 pm
Location: Wales, United Kingdom
eBay: hordarian
Initials: CLS

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cools »

Dead easy with attract mode either in the frontend or by editing the text file list ;)
Image
User avatar
joeblade
You're looking good Tim
Posts: 798
Joined: September 13th, 2008, 6:18 pm
Location: London

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by joeblade »

None of my filtering uses nplayers BTW, have you found a good use for it?
Not really, just for no. players info but at least it's being updated now.

So setup the verticools layout...looks nice and clean...would work well for a dedicated vert setup. I've gone back to my ol "cools magic" layout. No flyers, just video and description for now.. :awe:

Your filtering lists above proved pretty good for a couple of bits like shmups, shooters, racing but strangely fighter only turned up a handful and platform was pretty sparse missing games like bubble bobble?

So for now i've gone back to the old vert/hori/maze filters...they all work nice with the clones added now and as you say...can always setup some proper favourites lists at a later date!! ;)

Cheers for sharing this with us all cools...certainly has helped me get my head around attract and gm... 8-)
For gods sake, its a carton box - not the holy grail!
User avatar
cools
Armed Police Buttrider
Posts: 13457
Joined: August 17th, 2008, 4:49 pm
Location: Wales, United Kingdom
eBay: hordarian
Initials: CLS

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cools »

Those filters are only for vertical games! :D
Image
User avatar
joeblade
You're looking good Tim
Posts: 798
Joined: September 13th, 2008, 6:18 pm
Location: London

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by joeblade »

cools wrote:Those filters are only for vertical games! :D
Doh!!!! :palm:
For gods sake, its a carton box - not the holy grail!
User avatar
cools
Armed Police Buttrider
Posts: 13457
Joined: August 17th, 2008, 4:49 pm
Location: Wales, United Kingdom
eBay: hordarian
Initials: CLS

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cools »

Bugfixed and cleaned code "final" version of that layout:

Code: Select all

// Verticools layout by cools / Arcade Otaku
// For use in a 640x240 resolution
// We use this strange resolution to enhance the font rendering quality in 15KHz
//
// Layout User Options
class UserConfig {
 </label="Background Image",help="Choose snap/video snap, title, flyer, user image (bg.jpg in layout folder) or no background",options="video,snap,title,flyer,user,none"/>bg_image="video";
 </label="Show Wheel Logo?",help="Enable the wheel logo?",options="Yes,No"/>wheel_logo="Yes";
 </label="Show Category?",help="Enable the category text?",options="Yes,No"/>category_text="Yes";
}
local my_config=fe.get_config();

// Colour cycle code from LukeNukem
cycleVTable <-{
 "cnListHeight":0,"swListHeight":0,"wkListHeight":0,
 "cnListRed":0,"swListRed":0,"wkListRed":0,
 "cnListGreen":0,"swListGreen":0,"wkListGreen":0,
 "cnListBlue":0,"swListBlue":0,"wkListBlue":0,
}
function cycleValue(ttime,counter,switcher,workValue,minV,maxV,BY,speed){
 if (cycleVTable[counter] == 0)
  cycleVTable[counter]=ttime;
////////////// 1000=1 second //////////////
 if (ttime-cycleVTable[counter]>speed){
  if (cycleVTable[switcher]==0){
   cycleVTable[workValue]+=BY;
   if (cycleVTable[workValue]>=maxV)
    cycleVTable[switcher]=1;
  }
  else if (cycleVTable[switcher]==1){
   cycleVTable[workValue]-=BY;
   if (cycleVTable[workValue]<=minV)
    cycleVTable[switcher]=0;
  }    
 cycleVTable[counter]=0;
 }
 return cycleVTable[workValue];	
}

// Gives us a nice high random number for the RGB levels
function brightrand() {
	return 255-(rand()/512);
}

// Layout Constants
fe.layout.orient=RotateScreen.Right;
fe.layout.width=fe.layout.width/2;
local flw=fe.layout.width;
local flh=fe.layout.height;
local rot=(fe.layout.base_rotation+fe.layout.toggle_rotation)%4;
switch (rot) {
 case RotateScreen.Right:
 case RotateScreen.Left:
  fe.layout.width=flh;
  fe.layout.height=flw;
  flw=fe.layout.width;
  flh=fe.layout.height;
  break;
}

// Background
if (my_config["bg_image"]=="video") {
 local bg=fe.add_artwork("snap",0-(flw*0.1),0-(flh*0.1),flw*1.2,flh*1.2);
 bg.preserve_aspect_ratio=false;
 bg.set_rgb(128,128,128);
}
else if (my_config["bg_image"]=="snap") {
 local bg=fe.add_artwork("snap",0-(flw*0.1),0-(flh*0.1),flw*1.2,flh*1.2);
 bg.video_flags=Vid.ImagesOnly;
 bg.preserve_aspect_ratio=false;
 bg.set_rgb(128,128,128);
}
else if (my_config["bg_image"]=="title") {
 local bg=fe.add_artwork("title",0-(flw*0.1),0-(flh*0.1),flw*1.2,flh*1.2);
 bg.preserve_aspect_ratio=false;
 bg.set_rgb(128,128,128);
}
else if (my_config["bg_image"]=="flyer") {
 local bg=fe.add_artwork("flyer", 0, 0, flw, flh);
 bg.preserve_aspect_ratio=false;
 bg.set_rgb(128,128,128);
}
else if (my_config["bg_image"]=="user") {
 local bg=fe.add_image("bg.jpg",0,0,flw,flh);
 bg.preserve_aspect_ratio=false;
 bg.set_rgb(128,128,128);
}

// List
local lbx=0;                    // Listbox X position
local lby=flh*0.4;              // Listbox Y position
local itn=9;                    // Listbox entries
if (my_config["wheel_logo"]=="No"){
 lby=flh*0.17;                  // Listbox Y position without logo
 itn=13;                        // Listbox entries without logo
} 
local lbw=flw;                  // Listbox width
local lbh=(flh-lby-(flh*0.08)); // Listbox height
local ith=lbh/itn;              // Listbox entry height
lby+=(ith*(itn/2));             // Listbox draw point - do not change
local lbr=255;                  // Listbox red
local lbg=255;                  // Listbox green
local lbb=128;                  // Listbox blue
local lbf=0.75;                 // Listbox colour fade. Lower values=less fade.

for (local i=(itn/2)*-1;i<=(itn/2);i+=1){
 if (i==0){
 }
 else { 
  local unselgame=fe.add_text("[Title]",lbx,lby+(ith*i),lbw,ith);
  unselgame.index_offset=i;
  if (i<0) {unselgame.alpha=255-((i*(255/(itn/2))*-1)*lbf);}
  else {unselgame.alpha=255-(i*(255/(itn/2))*lbf);} 
 }
}

// Texts
local fltsh=fe.add_text("<  [ListFilterName]  >",1,(flh*0.06)+1,flw,flh*0.05);
fltsh.set_rgb(0,0,0);
local filtername=fe.add_text(fltsh.msg,fltsh.x-1,fltsh.y-1,fltsh.width,fltsh.height);
local listtitle=fe.add_text("[ListSize] [ListTitle]",0,flh*0.11,flw,flh*0.05);
local slgsh=fe.add_text("[Title]",lbx+1,lby+1,lbw,ith);
slgsh.set_rgb(0,0,0);
local selgame=fe.add_text(slgsh.msg,slgsh.x-1,slgsh.y-1,slgsh.width,slgsh.height);
local freeplayleft=fe.add_text("Free Play",0,0,flw,flh*0.05);
freeplayleft.align=Align.Left;
local freeplayright=fe.add_text("Free Play",0,0,flw,flh*0.05);
freeplayright.align=Align.Right;
local inssh=fe.add_text("Instructions",1,(flh*0.92)+1,flw,flh*0.04);
inssh.set_rgb(0,0,0);
local instructions=fe.add_text(inssh.msg,inssh.x-1,inssh.y-1,inssh.width,inssh.height);
local help_text=fe.add_text("Play Game [BUTTON1]  -  Random [START]  -  Quit Game [START1+2]",0,flh*0.95,flw,flh*0.04);
if (my_config["category_text"]=="Yes"){
 local category=fe.add_text("[Category]",0-(flw*0.01),flh*0.95,flh*0.85,flh*0.05);
 category.rotation=-90;
 category.align=Align.Left;
 category.alpha=64;
}
local copyright=fe.add_text("©[Year] [Manufacturer]",flw-(flh*0.06),flh*0.95,flh*0.85,flh*0.05);
copyright.rotation=-90;
copyright.align=Align.Left;
copyright.alpha=64;

// Preview image
if (my_config["wheel_logo"]=="Yes"){
 local wheelshadow=fe.add_artwork("wheel",(flw*0.1)+2,(flh*0.18)+2,flw*0.80,flh*0.22);
 wheelshadow.preserve_aspect_ratio=true;
 wheelshadow.set_rgb(0,0,0);
 wheelshadow.alpha=192;
 local wheel=fe.add_clone(wheelshadow);
 wheel.set_rgb(255,255,255);
 wheel.x-=2;
 wheel.y-=2;
 wheel.alpha=255;
} 

function textTickles(ttime){		
 local RED=cycleValue(ttime,"cnListRed","swListRed","wkListRed",100,254,1,1);
 local GREEN=cycleValue(ttime,"cnListGreen","swListGreen","wkListGreen",100,254,1.5,1);
 local BLUE=cycleValue(ttime,"cnListBlue","swListBlue","wkListBlue",100,254,2,1);
 local grey=brightrand();
 selgame.set_rgb(RED,GREEN,BLUE);
 filtername.set_rgb(RED,GREEN,BLUE);
 instructions.set_rgb(RED,GREEN,BLUE);
 freeplayleft.set_rgb(grey,grey,grey);
 freeplayright.set_rgb(grey,grey,grey);
}

function fades(ttype,var,ttime){
 switch (ttype){
  case Transition.FromGame:
   fltsh.msg="<  [ListFilterName]  >";
   filtername.msg="<  [ListFilterName]  >";
   return false;
   break;
	case Transition.ToGame:
   if (ttime<10){
    fltsh.msg="LOADING...";
    filtername.msg="LOADING...";
    return true;
   }
   break;
  case Transition.EndLayout:
   if (ttime<10){
    filtername.msg="EXITING";
    return true;
   }
   return false;
 }
}

fe.add_ticks_callback("textTickles");
fe.add_transition_callback("fades");
And while I'm at it - Cave CV1000. Step one - enable unsafe blitter delay by going into the Game Configuration submenu when pressing Tab (how on earth this has escaped me up until now I do not know). Step two - run GroovyMAME with vsync OFF and triplebuffer on (waitvsync 0 triplebuffer 1 in a game specific ini file). There is slowdown but it's inaccurate, and you get slightly more input lag due to the triplebuffering. However it makes the games at least playable on decent hardware - the i5 4690 I'm using can comfortably run everything once vsync is off, so the claims I've seen from people with 3Ghz Core 2 Duo's would appear to be accurate.
Image
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

cools wrote: Attract Mode filters part of attract.cfg:

Code: Select all

list	Games
	layout               verticools
	romlist              MAME
	filter               All
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
	filter               Favourite
		rule                 Favourite equals 1
	filter               Classic
		rule                 Tags contains Classic
	filter               Breakout
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Breakout
	filter               Driving
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Driving
	filter               Fighter
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Fighter
	filter               Maze
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category equals Maze
	filter               Platform
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Platform
	filter               Puzzle
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Puzzle
	filter               Shooting
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Shooter /
	filter               SHMUP
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category equals Shooter / Flying Vertical
	filter               Sports
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop
		rule                 Category contains Sports
	filter               Miscellaneous
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Title not_contains bootleg
		rule                 Year not_contains ?
		rule                 Category not_contains Mature|Quiz|Trivia|Rhythm|Casino|Multiplay|Tabletop|Breakout|Driving|Fighter|Maze|Platform|Puzzle|Shooter|Sports
You'll just need to set up your "Classic" and "Unplayable/Bad/Hidden" tags, along with selecting favourites. Or delete these filters, no big deal.

The "All" list should be around 500 games, and the categories break them down nicely - there's an awful lot of SHMUPs and shooters in vertical (around 300 of that 500) so those lists are bigger.

Hey cools.

So I am adding this directly to attract.cfg. The ALL filter works great (approx 500 games) but I get nothing for any of the other lists. They all appear correctly.
Any idea what the problem is?

Cheers,

Dave
Last edited by cRacKh0rN on October 19th, 2014, 7:27 pm, edited 1 time in total.
User avatar
cools
Armed Police Buttrider
Posts: 13457
Joined: August 17th, 2008, 4:49 pm
Location: Wales, United Kingdom
eBay: hordarian
Initials: CLS

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cools »

You haven't used catver.ini
Image
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

cools wrote:You haven't used catver.ini
Cheers cools.
Grabbed a catver.ini but where do I put it? Root of the mame folder does not seem to work. Do I need to add a path in attractmode?

Cheers,

Dave
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

cRacKh0rN wrote:
cools wrote:You haven't used catver.ini
Cheers cools.
Grabbed a catver.ini but where do I put it? Root of the mame folder does not seem to work. Do I need to add a path in attractmode?

Cheers,

Dave
Found the answer. Sweet. All working now :)
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

A few shooters are missing from the list. Espgaluda being one of them.
I take it this is not 100% working so far..?
User avatar
cools
Armed Police Buttrider
Posts: 13457
Joined: August 17th, 2008, 4:49 pm
Location: Wales, United Kingdom
eBay: hordarian
Initials: CLS

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cools »

Galuda should show up, the first one anyway
Image
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

cools wrote:Galuda should show up, the first one anyway
I think it must be the roms I am using or perhaps the Catver.ini
Pacman does not appear either.
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

Actually, Espg1 has incorrect dump warning. Will try another one.
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

So espgaluda has a status of imperfect. Modified the filter to account for this

Code: Select all

	filter               SHMUP
		rule                 CloneOf not_contains (.)
		rule                 Control contains joystick
		rule                 Control contains (2-way)|(4-way)|(8-way)
		rule                 DisplayCount equals 1
		rule                 DisplayType equals raster
		rule                 Manufacturer not_contains bootleg|hack
		rule                 Rotation equals 90|270
		rule                 Status equals good|imperfect
		rule                 Tags not_contains Unplayable/Bad/Hidden
		rule                 Category equals Shooter / Flying Vertical
User avatar
cRacKh0rN
Custom rank pending return
Posts: 1870
Joined: October 13th, 2008, 11:22 am
Location: London
eBay: thecrunchieone
Initials: DAB

Re: Mame in cab thread. Frontends, gamelists, configuration

Post by cRacKh0rN »

Man. Turns out I underestimated how big mame with videos would be.
The SSD I purchased was only 64gig... Windows 7 with updates has taken a massive 27gig of space!

Having spent the last few hours battling with grep and the generated romlist from attractmode on my mac, I have managed to make a bash script to copy the filtered roms and snaps over to the ssd with just enough space left for windows to run ok :S

I've had to delete all system restore points too. Hopefully the crt drivers will work without a hitch.
Post Reply