Show Posts

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.


Messages - dukpoki

Pages: [1] 2 3 ... 5
1
General / Re: new BlendMode...
« on: July 28, 2018, 10:06:37 AM »
most of my videosnaps start with a fade from black, therefore I can’t just use the first frame to show as a fixed thumb. Although it would be great to be able to tell AM from what timw to start the video, there is still the issue that a theme like Arcadeflow preloads around 25 thumbs. preloading video snaps and updatimg them is not as fast as fixed images, that’s why my theme has a precise timing for video loading that hides the moment so that it doesnt make the scrolling stutter (this doesn’t happen on my workstation ssd which costs around 600 euros, but on most drives it does, on my macbook it does stutter when the video is loaded).

Yeah the preloading/updating speed makes sense especially for Arcadeflow even with a beefy rig.  All my videos have fade in from black as well.

Besides, my whole mame thumbs archive takes up less than 1Gb, I rescaled all to 320x240 as it’s faster and looks equally good on screen.

True.  It's not really a big deal, but to be fair, it does scale with more systems you have.  Plus it's time consuming to make which again scales.  Again though, not really a big deal.  It's mostly because i'm ocd about keeping files that are important/useful and deleting files that are erroneous and redundant.  xD

If there was a way to chose the fixed thumb to show when a videomis not playing I would put it as an option but afaik it doesn’t

No worries.   I'm not saying you guys should do this or that.  I'm simply stating that currently, there is a high pre-requisite for running the theme, which is true when compared to other themes, that's all.  Not saying necessarily that's a bad thing (though some users may be daunted by it).  For the gains in speed, it's well worth it.

2
General / Re: new BlendMode...
« on: July 27, 2018, 08:34:05 PM »
I had complete picture snap sets for Mame and Snes in the past.  Then I decided to delete them because there is no point in keeping those snaps (being unused) if i'm going to use videosnaps instead.  I've since collected purely videosnaps.  I have zero need for picture snaps because I have a videosnap for every rom.  (any missing vsnaps I simply create myself with fraps+avidemux)  I have a massive and completely thorough collection of videosnaps, flyers/boxart, wheels, etc spanning 17 systems.  Keeping a set of image snap sets is not really a problem except  I just figured it wasn't necessary to waste space on unused assets and thus deleted them. I was really hoping there was a way to read a single key frame from a videosnap and display that.  Kind of how Windows Explorer creates thumbs.  But if that's not possible then I understand.  And judging from Oomek's post, i'm going to assume his Ambience theme will also require screenshot snaps.  In that case, then there's really nothing to it except I need to keep dual sets or miss out on certain themes.

I thought having snaps and videos is a standard, a lot of layouts/themes rely on it.

I honestly have not run into a theme thus far that required a dual set.  The only one so far is zpaolo11x's and I assume your WIP.

3
General / Re: new BlendMode...
« on: July 27, 2018, 11:02:43 AM »
What do you mean with video snaps? It should work ok if you have your thumbs and videos in the same folder...

I mean you need jpg/png screenshots of the videosnap along with the video file itself.  At least i think that's how it works?  So in essence, you would need for all your roms.. 1) a full set of "video" snaps 2) a full set of screenshotted "picture" snaps and 3) a full set of "blurred picture" snaps of the screenshot.

4
General / Re: new BlendMode...
« on: July 26, 2018, 08:33:39 PM »
I'd really like some hints on how to use the blur shader too, this would fit my Arcadeflow theme without having to generate blurred thumbnails in a separate art category :)

I was thinking the same thing when I originally saw this thread.  I thought of your theme and Oomek's current WIP.  Btw.  I really think your theme is amazing and I would like to use it but that separate blur thumbnails part is what kills it for me (not to mention the requirement of thumbnails on top of videosnaps).  Basically/i.e. steep requirements.  If you can implement a blur shader, perhaps the one Oomek is working on, then I think more and more people will be able to use your theme.  It's really a shame though, because I think (purely my speculation) a lot of people are daunted in using your theme when it's actually an amazing coded work of art.

ok here is a blur layout for everyone to play with.

Cool.  Just checked it out.  I think the blur needs to be waaaay more aggressive though to achieve the effect we are looking for.  I think we all better wait for Oomek's future shader.

You have to wait until I finish moving to a new house, then I'll wrap it into some neat module so it's easy to use, because now it's entangled with the rest of the files.

Can't freaking wait for Ambience!  Thanks for all your hard work my friend!  And congrats on the new house!

5
Themes / Re: SNES Classic Theme
« on: July 26, 2018, 08:07:17 PM »
I said this somewhere else but a pi is more like a novelty item.  If you are serious about emulation then get a real pc.  IMO pi's are more like a gimmick.  It is so underpowered and limited.  It's only caught on and got popularized because people like shortcuts and/or cheap things.

Ehh I wouldn't go that far. Just because a platform is or isn't the absolute best for emulation doesn't drive why people write emulators for it, make themes, etc.
The PSP-1000 wasn't the best emulation platform in the world but that didn't stop people from authoring emulators for it, nor did it stop people from playing retro games on it.

I know PCs are the best platform for emulation - I own a gaming PC myself! - but I wouldn't assume OP is working on this to be "serious about emulation," sounds like they're more serious about making their art work within the limitations of the Pi's hardware, because making the Pi do things that are cool is a ton of fun. It's not a popular device because "people like shortcuts;" quite the opposite. It's popular because people love a project and installing Higan on your laptop to play ROMs with cycle accuracy isn't a project.

I have SEGA's Genesis/MegaDrive Classics on Steam and it comes with uncompressed ROMs in the game folder, loadable on any emulator. I could easily play them on my gaming PC or Linux machine with zero issues but making a lil purpose-built box just for Genesis games that can sit somewhere and instantly load up Sonic 3 & Knuckles is a fun project for me. (I also don't mind the input lag too much because input lag for most Genesis emulation in general is a lot less egregious than most SNES emulation.)

All those reasons you mentioned about "doing it for a project...is a ton of fun" is exactly why i said it's a novelty item and nothing more than that.

6
General / Re: new BlendMode...
« on: July 25, 2018, 07:23:42 PM »
I didn't know you could do this!  What a game changer!  More info on the blur shader and where it's located please!

7
Themes / Re: SNES Classic Theme
« on: July 22, 2018, 09:29:43 AM »
I said this somewhere else but a pi is more like a novelty item.  If you are serious about emulation then get a real pc.  IMO pi's are more like a gimmick.  It is so underpowered and limited.  It's only caught on and got popularized because people like shortcuts and/or cheap things. 

Tl;dr Do not base your theme (or anything emulation related) around the pi.  The PC is the main meat and potatoes of emulation.   It should be based on the PC first and foremost, then anything else is secondary and optional (like the pi).

8
Thanks progets.  This is a very helpful guide.

9
Themes / Re: Ambience HD theme [WIP]
« on: June 07, 2018, 10:56:13 AM »
That’s not going to happen. I extensively use filters and mainly use Mame.
I can add systems menu later activated with a button.

No worries.  It looks fantastic the way it is!  :)

10
Themes / Re: Ambience HD theme [WIP]
« on: May 30, 2018, 10:45:12 AM »
Amazing job Oomek!  But I think it would be well worth swapping out the vertical filter list to a system list instead!

Here's a theme i'm working on (based on Verion's Magnus) where it has a horizontal system menu on the top left corner and you can change between the systems with left and right and then change between the games with up and down:  https://www.youtube.com/watch?v=h07ZgaUeLA8

If you can swap between systems it would eliminate the need for a separate System Menu!

11
Scripting / Re: System List possible?
« on: May 18, 2018, 09:21:33 AM »
@dukpoki Is gaving me an error , "the index -2 does not exist"

Here's a full sample code that should work if you follow the template.  You have to of course, adjust/add more systems accordingly to the total amount on your setup as this code only for a total of 5 systems.  To do that, you simply add/insert more "case" systems along with the "break".  A good rule of thumb is to alphabetize it as AM automatically assigns display numbers that way.  Also make sure your systems listed in your attract.cfg are in alphabetical order as well.  And finally make sure the first 2 and last 2 systems on the list have the same +/- displaytotal in the corresponding lines.  So if you are adding more systems then delete the +displaytotal's I have in Atomiswave & Dreamcast and also the -displaytotal's in Genesis & Mame.  Then once you've added all your systems apply those +/- exactly in the same order/way.

Code: [Select]

local displaytotal = fe.displays.len();  //the total system number

 ::OBJECTS <- {

system1= fe.add_text("",47,48,300,40)
system2= fe.add_text("",47,90,300,40)
system3= fe.add_text("",47,132,300,40)
system4= fe.add_text("",47,174,300,40)
system5= fe.add_text("",47,216,300,40)

}


function transition_callback(ttype, var, ttime)
{
    switch ( ttype )
    {
        case Transition.ToNewList:
case Transition.StartLayout:
case Transition.ToNewSelection:
case Transition.FromOldSelection:
            switch ( fe.list.name )
            {             
case "Atomiswave":
local display1 = fe.displays[fe.list.display_index - 2 + displaytotal].name;
local display2 = fe.displays[fe.list.display_index - 1 + displaytotal].name;
                local display3 = fe.displays[fe.list.display_index].name;
                local display4 = fe.displays[fe.list.display_index + 1].name;
local display5 = fe.displays[fe.list.display_index + 2].name;
OBJECTS.system1.msg = display1;
OBJECTS.system2.msg = display2;
OBJECTS.system3.msg = display3;
OBJECTS.system4.msg = display4;
OBJECTS.system5.msg = display5;
break;

        case "Dreamcast":
local display1 = fe.displays[fe.list.display_index -2 + displaytotal].name;
local display2 = fe.displays[fe.list.display_index - 1].name;
                local display3 = fe.displays[fe.list.display_index].name;
                local display4 = fe.displays[fe.list.display_index + 1].name;
local display5 = fe.displays[fe.list.display_index + 2].name;
OBJECTS.system1.msg = display1;
OBJECTS.system2.msg = display2;
OBJECTS.system3.msg = display3;
OBJECTS.system4.msg = display4;
OBJECTS.system5.msg = display5;
    break;

case "Gamecube":
local display1 = fe.displays[fe.list.display_index - 2].name;
local display2 = fe.displays[fe.list.display_index - 1].name;
                local display3 = fe.displays[fe.list.display_index].name;
                local display4 = fe.displays[fe.list.display_index + 1].name;
local display5 = fe.displays[fe.list.display_index + 2].name;
OBJECTS.system1.msg = display1;
OBJECTS.system2.msg = display2;
OBJECTS.system3.msg = display3;
OBJECTS.system4.msg = display4;
OBJECTS.system5.msg = display5;
break;

        case "Genesis":
local display1 = fe.displays[fe.list.display_index - 2].name;
local display2 = fe.displays[fe.list.display_index - 1].name;
                local display3 = fe.displays[fe.list.display_index].name;
                local display4 = fe.displays[fe.list.display_index + 1].name;
local display5 = fe.displays[fe.list.display_index + 2 - displaytotal].name;
OBJECTS.system1.msg = display1;
OBJECTS.system2.msg = display2;
OBJECTS.system3.msg = display3;
OBJECTS.system4.msg = display4;
OBJECTS.system5.msg = display5;
break;           

        case "Mame":
local display1 = fe.displays[fe.list.display_index - 2].name;
local display2 = fe.displays[fe.list.display_index - 1].name;
                local display3 = fe.displays[fe.list.display_index].name;
                local display4 = fe.displays[fe.list.display_index + 1 - displaytotal].name;
local display5 = fe.displays[fe.list.display_index + 2 - displaytotal].name;
OBJECTS.system1.msg = display1;
OBJECTS.system2.msg = display2;
OBJECTS.system3.msg = display3;
OBJECTS.system4.msg = display4;
OBJECTS.system5.msg = display5;
break;

            }
break;
    }

}

fe.add_transition_callback("transition_callback" );


12
Scripting / Re: System List possible?
« on: May 17, 2018, 01:25:18 PM »
Got it working.

Code: [Select]

 ::OBJECTS <- {

system1= fe.add_text("",47,48,300,40)
system2= fe.add_text("",47,90,300,40)
system3= fe.add_text("",47,132,300,40)
system4= fe.add_text("",47,174,300,40)
system5= fe.add_text("",47,222,300,40)

}

function transition_callback(ttype, var, ttime)
{
    switch ( ttype )
    {
        case Transition.ToNewList:
case Transition.StartLayout:
case Transition.ToNewSelection:
case Transition.FromOldSelection:
            switch ( fe.list.name )
            {             
case "Atomiswave":
local display1 = fe.displays[fe.list.display_index - 2].name;
local display2 = fe.displays[fe.list.display_index - 1].name; //previous display
        local display3 = fe.displays[fe.list.display_index].name; //current display
        local display4 = fe.displays[fe.list.display_index + 1].name; //next display
local display5 = fe.displays[fe.list.display_index + 2].name;
OBJECTS.system1.msg = display1;
OBJECTS.system2.msg = display2;
OBJECTS.system3.msg = display3;
OBJECTS.system4.msg = display4;
OBJECTS.system5.msg = display5;
OBJECTS.frame.file_name = "images/frames/Default_frame.png";
break;

        case "Dreamcast":
local display1 = fe.displays[fe.list.display_index - 2].name;
local display2 = fe.displays[fe.list.display_index - 1].name; //previous display
        local display3 = fe.displays[fe.list.display_index].name; //current display
        local display4 = fe.displays[fe.list.display_index + 1].name; //next display
local display5 = fe.displays[fe.list.display_index + 2].name;
OBJECTS.system1.msg = display1;
OBJECTS.system2.msg = display2;
OBJECTS.system3.msg = display3;
OBJECTS.system4.msg = display4;
OBJECTS.system5.msg = display5;
        OBJECTS.frame.file_name = "images/frames/Default_frame.png";

        break;
            }
break;
    }

}

fe.add_transition_callback("transition_callback" );


Make sure to add all your systems/displays by adding more "cases".

EDIT:  Has problems with the beginning and the end of the list.  I'm not sure how to make it loop.  Will research.

EDIT 2:  Found a very rough workaround.  You have to subtract or add the total index number which you can use fe.displays.len() to find.
So for example if you have a list of 10 systems then for the first system you need to -2, -1, 0, +1, +2 but make sure the first two formulas you are adding 10 to it.  So the formula will be (-2 + 10) and (-1 + 10).  That way the end result is the number that is at the end of the list 8 and 9 respectively and not negative numbers.  Because you the display index will never be a negative number.

For example i am doing this:
Code: [Select]
                local displaytotal = fe.displays.len();

//excerpt code below
case "Atomiswave":
local display1 = fe.displays[fe.list.display_index - 2 + displaytotal].name;
local display2 = fe.displays[fe.list.display_index - 1 + displaytotal].name;
                local display3 = fe.displays[fe.list.display_index].name;
                local display4 = fe.displays[fe.list.display_index + 1].name;
local display5 = fe.displays[fe.list.display_index + 2].name;
break;

13
Scripting / Re: System List possible?
« on: May 15, 2018, 10:56:45 PM »
You may refer my theme. It is similar you want  :)
http://forum.attractmode.org/index.php?topic=2211.0

Hey man, thank you so much!  Btw, that's a very nice theme.  So I've been messing with it for the past hour and I can't seem to isolate the list to a certain number of systems (instead of showing them all).  You're code is too advanced for me. :P

I've done some more digging with much trial and error and i've come up with something like this (example):

Code: [Select]
function on_transition( ttype, var, ttime )
{

local display1 = fe.displays[fe.list.display_index - 1].name; //previous display
local display2 = fe.displays[fe.list.display_index].name; //current display
local display3 = fe.displays[fe.list.display_index + 1].name; //next display

local sys_text1 = fe.add_text (display1, 100, 200, 600, 100); //note: can use sys_text#'s to fe.add_image if I wanted images instead of text
local sys_text2 = fe.add_text (display2, 500, 200, 600, 100);
local sys_text3 = fe.add_text (display3, 1000, 200, 600, 100);

}
fe.add_transition_callback( this, "on_transition" );

The only problem i'm facing with this is the transition callback isn't working properly.  Every time I switch back and forth between displays, the previous text does not disappear and instead overlaps each other.  Any ideas on this?

14
Scripting / System List possible?
« on: May 15, 2018, 10:02:37 AM »
Quick question.

I know you can add a game list with fe.add_listbox() but is there a way to add a system list?  Alternatively request the name of a previous system or next system with an offset value?   I'm trying to create a theme where you use up and down to swap between games and then left and right to swap between systems i.e. a dual list.

here's an example of what i'm trying to do:



So in the pic, it will show the 2 prev systems and the 2 next systems on screen.  Pressing right would shift "Saturn" to the center arrow cursor and the list will refresh with an updated 2 prev and 2 next systems.

15
Themes / Re: Capcom Diamondplate Horizontal Layout
« on: March 20, 2018, 06:54:35 PM »
Yeah just include it in your package or alternatively link the helper module and list it as a requirement.  It really doesn't matter either way because all the modules here are free to use for everyone and they are created in mind for helping people develop better themes.

Pages: [1] 2 3 ... 5