1
Themes / Re: Grid script using robo skin and side wheel art. Looks pretty awesome.
« on: November 02, 2014, 04:23:08 PM »
awesome thanks, that did it!
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

I really like that starfield. this makes me wonder though if there is a way to have alternate control schemes based on the layout. for example a lot of layouts have an up/down scroll for selecting games and that makes sense to have your controls mapped up and down for that.... then you switch to a layout with a left right scroll and you still need to use up/down to cycle through games, kinda weird
(zip is attached)
//
// Attract-Mode Front-End - "mediaV" sample layout
//
fe.layout.width=800;
fe.layout.height=600;
fe.layout.font="coolvetica";
fe.add_image( "Background.jpg", 0, 0, 800, 600 );
fe.add_artwork( "snap", 470, 135, 295, 225 );
fe.add_image( "frame.png", 465, 130, 310, 235 );
fe.add_image("select.png", 18, 475, 220,9 );
fe.add_image("ps2box.png", 578, 377, 128, 212 );
// fill an entire surface with our snap at a resolution of 124x204
//
local surface = fe.add_surface( 124, 204 );
local snap = surface.add_artwork( "flyer", 0, 0, 124, 204 );
snap.preserve_aspect_ratio = false;
// position and pinch the surface
//
surface.set_pos( 588, 380, 115, 206 );
surface.pinch_y = 11;
local title = fe.add_text( "[Title]", 10, 660, 320, 20 );
title.set_rgb( 255, 255, 255 );
title.align = Align.Left;
local man = fe.add_text( " ([Category]) [Manufacturer] [Year] ", 10, 690, 320, 20 );
man.set_rgb( 255, 255, 255 );
man.align = Align.Left;
local name = fe.add_text( " [ListTitle] ", 02, 02, 320, 20 );
name.set_rgb( 255, 255, 255 );
name.align = Align.Left;
local entry = fe.add_text( "[ListEntry]/[ListSize]", 350, 610, 320, 18 );
entry.set_rgb( 255, 255, 255 );
entry.align = Align.Right;
// Create 10 artworks.
local title_p2 = fe.add_artwork( "marquee", 20, 00, 190, 75);
local title_p3 = fe.add_artwork( "marquee", 20, 80, 190, 75 );
local title_n1 = fe.add_artwork( "marquee", 20, 160, 190, 75 );
local title_n2 = fe.add_artwork( "marquee", 20, 240, 190, 75 );
local title_n3 = fe.add_artwork( "marquee", 20, 320, 190, 75 );
local title_n0 = fe.add_artwork( "marquee", 20, 400, 190, 75 );
local title_n5 = fe.add_artwork( "marquee", 20, 480, 190, 75 );
local title_n6 = fe.add_artwork( "marquee", 20, 560, 190, 75 );
local title_n7 = fe.add_artwork( "marquee", 20, 640, 190, 75 );
local title_n8 = fe.add_artwork( "marquee", 20, 720, 190, 75 );
// Set index_offset for these 5 artworks.
title_p2.index_offset = -5;
title_p3.index_offset = -4;
title_n1.index_offset = -3;
title_n2.index_offset = -2;
title_n3.index_offset = -1;
title_n0.index_offset = 0;
title_n5.index_offset = 1;
title_n6.index_offset = 2;
title_n7.index_offset = 3;
title_n8.index_offset = 4;
// Add transition callback function.
fe.add_transition_callback( "orbit_transition" );
// Fill in orbit_transition function, as below:
local SPIN_MS=160; // Duration of transition effect (in msec)
function orbit_transition( ttype, var, ttime ) {
switch ( ttype )
{
case Transition.ToNewSelection:
if ( ttime < SPIN_MS ) {
local direction = -1;
if (var < 0) direction = 1;
local increment = (ttime * direction * 80) / SPIN_MS;
title_p2.y = 00 + increment;
title_p3.y = 80 + increment;
title_n1.y = 160 + increment;
title_n2.y = 240 + increment;
title_n3.y = 320 + increment;
title_n0.y = 400 + increment;
title_n5.y = 480 + increment;
title_n6.y = 560 + increment;
title_n7.y = 640 + increment;
title_n8.y = 720 + increment;
return true;
}
else {
title_p2.y = 00;
title_p3.y = 80;
title_n1.y = 160;
title_n2.y = 240;
title_n3.y = 320;
title_n0.y = 400;
title_n5.y = 480;
title_n6.y = 560;
title_n7.y = 640;
title_n8.y = 720;
return false;
}
}
return false;
}
// Gives us a nice high random number for the RGB levels
function brightrand() {
return 255-(rand()/255);
}
local red = brightrand();
local green = brightrand();
local blue = brightrand();
// Transitions
fe.add_transition_callback( "fancy_transitions" );
function fancy_transitions( ttype, var, ttime ) {
switch ( ttype )
{
case Transition.StartLayout:
case Transition.ToNewList:
case Transition.ToNewSelection:
case Transition.EndLayout:
//gametitleshadow.msg = trimmed_title( var );
//gametitle.msg = trimmed_title( var );
//man.msg = trimmed_man ( var );
red = brightrand();
green = brightrand();
blue = brightrand();
//year.set_rgb (red,green,blue);
//copy.set_rgb (red,green,blue);
//man.set_rgb (red,green,blue);
//romlist.set_rgb (red,green,blue);
//screen.set_rgb (red,green,blue);
//frame3.set_rgb (red,green,blue);
//cat.set_rgb (red,green,blue);
//title.set_rgb (red,green,blue);
break;
case Transition.FromGame:
if ( ttime < 255 )
{
foreach (o in fe.obj)
o.alpha = ttime;
//message.alpha = 0;
return true;
}
else
{
foreach (o in fe.obj)
o.alpha = 255;
//message.alpha = 0;
}
break;
case Transition.EndLayout:
if ( ttime < 255 )
{
foreach (o in fe.obj)
o.alpha = 255 - ttime;
//message.alpha = 0;
return true;
}
else
{
foreach (o in fe.obj)
o.alpha = 255;
//message.alpha = 0;
}
break;
case Transition.ToGame:
if ( ttime < 255 )
{
foreach (o in fe.obj)
o.alpha = 255 - ttime;
message.alpha = ttime;
return true;
}
break;
}
return false;
}

//
// Attract-Mode Front-End - "mediaV" sample layout
//
fe.layout.width=800;
fe.layout.height=600;
fe.layout.font="coolvetica";
fe.add_image( "Background.jpg", 0, 0, 800, 600 );
fe.add_artwork( "snap", 470, 135, 295, 225 );
fe.add_image( "frame.jpg", 465, 130, 310, 235 );
fe.add_image("select.png", 18, 475, 220,9 );
fe.add_image("ps2box.png", 578, 377, 128, 212 );
// fill an entire surface with our snap at a resolution of 124x204
//
local surface = fe.add_surface( 124, 204 );
local snap = surface.add_artwork( "flyer", 0, 0, 124, 204 );
snap.preserve_aspect_ratio = false;
// position and pinch the surface
//
surface.set_pos( 588, 380, 115, 206 );
surface.pinch_y = 11;
local title = fe.add_text( "[Title]", 10, 660, 320, 20 );
title.set_rgb( 255, 255, 255 );
title.align = Align.Left;
local man = fe.add_text( " ([Category]) [Manufacturer] [Year] ", 10, 690, 320, 20 );
man.set_rgb( 255, 255, 255 );
man.align = Align.Left;
local name = fe.add_text( " [ListTitle] ", 02, 02, 320, 20 );
name.set_rgb( 255, 255, 255 );
name.align = Align.Left;
local entry = fe.add_text( "[ListEntry]/[ListSize]", 350, 610, 320, 18 );
entry.set_rgb( 255, 255, 255 );
entry.align = Align.Right;
// Create 10 artworks.
local title_p2 = fe.add_artwork( "marquee", 20, 00, 190, 75);
local title_p3 = fe.add_artwork( "marquee", 20, 80, 190, 75 );
local title_n1 = fe.add_artwork( "marquee", 20, 160, 190, 75 );
local title_n2 = fe.add_artwork( "marquee", 20, 240, 190, 75 );
local title_n3 = fe.add_artwork( "marquee", 20, 320, 190, 75 );
local title_n0 = fe.add_artwork( "marquee", 20, 400, 190, 75 );
local title_n5 = fe.add_artwork( "marquee", 20, 480, 190, 75 );
local title_n6 = fe.add_artwork( "marquee", 20, 560, 190, 75 );
local title_n7 = fe.add_artwork( "marquee", 20, 640, 190, 75 );
local title_n8 = fe.add_artwork( "marquee", 20, 720, 190, 75 );
// Set index_offset for these 5 artworks.
title_p2.index_offset = -5;
title_p3.index_offset = -4;
title_n1.index_offset = -3;
title_n2.index_offset = -2;
title_n3.index_offset = -1;
title_n0.index_offset = 0;
title_n5.index_offset = 1;
title_n6.index_offset = 2;
title_n7.index_offset = 3;
title_n8.index_offset = 4;
// Add transition callback function.
fe.add_transition_callback( "orbit_transition" );
// Fill in orbit_transition function, as below:
local SPIN_MS=160; // Duration of transition effect (in msec)
function orbit_transition( ttype, var, ttime ) {
switch ( ttype )
{
case Transition.ToNewSelection:
if ( ttime < SPIN_MS ) {
local direction = -1;
if (var < 0) direction = 1;
local increment = (ttime * direction * 80) / SPIN_MS;
title_p2.y = 00 + increment;
title_p3.y = 80 + increment;
title_n1.y = 160 + increment;
title_n2.y = 240 + increment;
title_n3.y = 320 + increment;
title_n0.y = 400 + increment;
title_n5.y = 480 + increment;
title_n6.y = 560 + increment;
title_n7.y = 640 + increment;
title_n8.y = 720 + increment;
return true;
}
else {
title_p2.y = 00;
title_p3.y = 80;
title_n1.y = 160;
title_n2.y = 240;
title_n3.y = 320;
title_n0.y = 400;
title_n5.y = 480;
title_n6.y = 560;
title_n7.y = 640;
title_n8.y = 720;
return false;
}
}
return false;
}
// Gives us a nice high random number for the RGB levels
function brightrand() {
return 255-(rand()/255);
}
local red = brightrand();
local green = brightrand();
local blue = brightrand();
// Transitions
fe.add_transition_callback( "fancy_transitions" );
function fancy_transitions( ttype, var, ttime ) {
switch ( ttype )
{
case Transition.StartLayout:
case Transition.ToNewList:
case Transition.ToNewSelection:
case Transition.EndLayout:
//gametitleshadow.msg = trimmed_title( var );
//gametitle.msg = trimmed_title( var );
//man.msg = trimmed_man ( var );
red = brightrand();
green = brightrand();
blue = brightrand();
//year.set_rgb (red,green,blue);
//copy.set_rgb (red,green,blue);
//man.set_rgb (red,green,blue);
//romlist.set_rgb (red,green,blue);
//screen.set_rgb (red,green,blue);
//frame3.set_rgb (red,green,blue);
//cat.set_rgb (red,green,blue);
//title.set_rgb (red,green,blue);
break;
case Transition.FromGame:
if ( ttime < 255 )
{
foreach (o in fe.obj)
o.alpha = ttime;
//message.alpha = 0;
return true;
}
else
{
foreach (o in fe.obj)
o.alpha = 255;
//message.alpha = 0;
}
break;
case Transition.EndLayout:
if ( ttime < 255 )
{
foreach (o in fe.obj)
o.alpha = 255 - ttime;
//message.alpha = 0;
return true;
}
else
{
foreach (o in fe.obj)
o.alpha = 255;
//message.alpha = 0;
}
break;
case Transition.ToGame:
if ( ttime < 255 )
{
foreach (o in fe.obj)
o.alpha = 255 - ttime;
message.alpha = ttime;
return true;
}
break;
}
return false;
}