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 - rand0m

Pages: 1 ... 3 4 [5] 6 7 ... 24
General / FPS Monitor
« on: February 09, 2020, 11:31:46 PM »
Latest versions of Attract-Mode include a handy plug-in by Oomek called FPS Monitor. This monitor can be turned on through Configure > Plugin > FPS Monitor> Enabled yes. In the same page add a key for turning FPS Monitor on and off, if you have not mapped "reload" to any key then you can add a key for reload here too. I found Graph size "Large" to be best.

When FPS Monitor is turned on in settings, it will auto-run on start (I wish default was off) go through your layout and keep an eye on the FPS Monitor, at any place where you see FPS drops (Usually between 50-59) check the layout code and see whats causing the drops. You can also narrow it down by turning off artwork one by one. Thats where reload key comes handy, after any changes in layout you can press the reload key and layout will reload with new changes.

Depending on the reason you might need to convert png to jpg or 8bit png or re-compress through website like tinyPNG (thanks Enkak!). Or you might want to resize if the image res is huge, specially when you are using reduced res output of said image in layout. You might also want to use something like Transition.EndNavigation.

BTW Videos WILL cause FPS drops, best to do this with videos disabled. I don't know of anyway to minimize drops on videos right now, though in some tests I did wmv caused minimal drops then avi them mp4. But this is on Win* system might be different on *nix. 

As Keil and Zpaolo mentioned in comments further down, multiple surfaces (specially nested) and heavy shaders can also cause slowdowns/ FPS drops, you can comment out one item at a time and reload/ check.

Themes / Re: RetroDiction Theme v1.0 Released
« on: February 08, 2020, 03:56:39 AM »
Latest Update! DL from github is now down to 245mb from 1.3 gb. Browsing/ scrolling should be noticeably faster now.

Major Update, Recompressed images and improved functionality

1. Changed "sysflyer" (system flyers) from 1920x1080 to 1260x1080, converted them to 256 color 8it png. Since there was no transparency the difference is hardly noticeable. Compressed the images further through tinyPNG website. This not only reduced the size considerably but the scrolling speed improved dramatically, no fps drops after initial startup in either displays menu or platforms menu. System flyers now have a black tinted frame.

2. Since "sysflyer" size changed, modified the relevant code in layout.nut & layout_platforms.nut from (0, 0 ,0 ,0) to (660, 0 ,0 ,0).
        local sysflyers = fe.add_image("images/sysflyer/[Name].png", 660, 0, 0, 0);

3. Changed "syslogo" and re-compressed through tinyPNG website for reduced size and better scrolling. Since the images were small as it is the effect (if any) is too small to be noticeable. Since the images had transparency they are still in 24bit png.

4. Created separate custom options menu for displays menu and platforms menu.

5. Created new images for custom options menu for displays menu and platforms menu (options_menu_dm.png & options_menu_pm.png). Renamed options_menu.png to options_menu_sm.png.

6. Remapped configure keys, Tab and Joy0 Button7 (select on xbox 360 controller) now open custom options menu rather then options menu, custom options menu was earlier opened through "X" on keyboard and "X" button on xbox360 gamepad. "X" now has no function attached to it. This was done because all default options are already a part of custom options menu. Default options menu can now be started through F2 and xbox360 controller Joy0 Button6 (select), this has been mapped as fail-safe just in case custom options menu doesn't working for any reason.

7. Changed return value for empty string (missing) for most magic tokens. Before in-case of missing data "Unknown" was returned, this got trickier because some information about old systems is actually unknown so to differ between an "empty" field and an actual "unknown" all empty fields now generate "---" value. Following were changed:
a. If [Manufacturer] field is empty, now the value of "---" will be returned instead of "Unknown".
b. If [Year] field is empty, now the value of "---" will be returned instead of "Unknown".
c. If [Players] field is empty "---" will be returned instead of "Unknown".
d. If [Region] field is empty "---" will be returned instead of "Unknown".
e. If [Language] field is empty "---" will be returned instead of "Unknown".
f. If [Category] field is empty "---" will be returned instead of "Unknown".
g. If [Extra] field (used for Database) is empty "---" will be returned instead of "Unknown".
h. If [DisplayCount] field (used for media count) is empty "---" will be returned instead of "Unknown".

8. Changed time format for [PlayedCount], now played time is displayed in this format "0Day  00:00:00" (Day  hr:min:sec).

9. Removed [PlayedCount] empty message as AM now returns "0" if stat file does not exist. The code removed is:
   if(fe.game_info(Info.PlayedCount) == "")
   gpcount.msg =  "---"

10. Removed info_button.png, was not really needed. Removed the relevant portion from layout.nut & layout_platform.nut
   //Info Button
   local info_button = fe.add_image ("images/info_button.png", 1260,0,0,0);
   info_button.mipmap = true;

9. Screenshot has been mapped to "F8".

10. Changed behavior of displays menu and platforms menu info screen from "on hold" to "toggle" i.e previously info screen only appeared till the button was held down, now pressing the button once toggles the info-screen on and pressing the button again (or pressing back) toggles it off. This was done to make info panels function similar to other functions.

11. Major formatting of code (spaces, tabs) for layout.nut, layout_platforms.nut and layout_system.nut.

(Note: this is a a major update, with noticeable performance boost and better functionality)

General / Re: Sega Model 3
« on: February 08, 2020, 03:53:39 AM »
if the files are in zip then use a slash at end of rompath i.e. Q:\Roms\Sega Model 3\
there should a Supermodel.ini in /config folder of emulator, make sure that rompath is given there (its near the end of file). Might also need games.xml if its not present in /config.

Scripting / Re: Transition with Input State not workign as expected
« on: February 05, 2020, 06:41:05 AM »
@rand0m with your code as it, it will never appear solid. Your first tick satisfying the if statement will multiply the alpha value of 255 by 0.9.

Hiya Keil, long time no see! changing the value to .96-.97 is near solid at .999 the arrow snaps are permanent. One small problem is that while keeping up or down pressed the arrows disappear after a few ms. I don't think we can constantly check the status of up/ down unless we utilize tick callback which I was trying to avoid.

Themes / Re: RetroDiction Theme v1.0 Released
« on: February 05, 2020, 04:59:20 AM »
congratulations for your job.  :)

Scripting / Re: Transition with Input State not workign as expected
« on: February 05, 2020, 04:56:24 AM »
I would do it this way: add a signal_callback where you detect if "up" or "down" are pressed, if up is pressed "engage" a counter (like counterup = 255) if down is pressed engage counterdown = 255, then add just one tick callback where you check the counters and if they are !=0 apply the value of the counter to the alpha of the arrows images, then decrease the counter. In this way when the counter reaches zero tick callback doesn't hog your system changing alpha channel continuously.

Code: [Select]
local counterup = 0
local counterdown = 0
local fadespeed = 0.85

local snap = fe.add_artwork("snap",0,0,200,200)
snap.video_flags = Vid.ImagesOnly

local uparrow = fe.add_text("^",200,0,100,100)
uparrow.alpha = 0

local downarrow = fe.add_text("v",200,100,100,100)
downarrow.alpha = 0

fe.add_signal_handler( this, "on_signal" )
fe.add_ticks_callback( this, "tick" )

function on_signal( sig ){
   if (sig == "up") {
      counterup = 255
      return false
   if (sig == "down") {
      counterdown = 255
      return false

 function tick( tick_time ) {

    if (counterdown != 0){
       counterdown *= fadespeed
       if (counterdown < 1) counterdown = 0
       downarrow.alpha = counterdown
    if (counterup != 0){
       counterup *= fadespeed
       if (counterup < 1) counterup = 0
       uparrow.alpha = counterup


Hi zpaolo11x, I'm trying to use this code like this:

Code: [Select]
local arrows_counter_up = 0
local arrows_counter_down = 0
local arrows_fadespeed = 0.90

local image_up = fe.add_image ("images/arrow_up.png", 17.8, 396, 0, 0);
image_up.alpha = 0

local image_down = fe.add_image ("images/arrow_down.png", 17.8, 620, 0, 0);
image_down.alpha = 0

function signal_arrows( sig )
if (sig == "up")
arrows_counter_up = 255
return false

if (sig == "down")
arrows_counter_down = 255
return false

function tick_arrows( tick_time )
if (arrows_counter_down != 0)
arrows_counter_down *= arrows_fadespeed
if (arrows_counter_down < 1) arrows_counter_down = 0
image_down.alpha = arrows_counter_down

if (arrows_counter_up != 0)
arrows_counter_up *= arrows_fadespeed
if (arrows_counter_up < 1) arrows_counter_up = 0
image_up.alpha = arrows_counter_up


fe.add_signal_handler( "signal_arrows" )
fe.add_ticks_callback( "tick_arrows" )

The code is working (thanks) but the upward and downward arrow snap appears faded from start (doesn't look solid even for a few ms) i tried tweaking the numbers but couldn't get it to appear un-faded/ solid at start of animation. Can you please guide me in the correct direction regarding this.

Themes / Re: RetroDiction Theme v1.0 Released
« on: January 30, 2020, 11:06:09 AM »
Some further updates! Finally got a search_series plugin working. Its mapped to custom3 which is mapped to "Y" on xbox 360 controller and "y" on keyboard. If a game has its series name in [Series], a field in romlist' pressing "Y" would list all games within the current list which have the same series. e.g. in MAME pressing "Y" on any street Fighter game would list all Street Fighter games in MAME list.

This function will really shine in unified master list since many games have series which span over many systems, Sonic and Mario come to mind.

I worked on keyboard_search plugin by liquid8d and modified that. It will be added soon in Repo once I thoroughly check it :D

Scripting / Re: Shuffle v2.2.0 - Loop feature now added
« on: January 30, 2020, 10:11:47 AM »
This fixes the problem with the filter change, but not with the letter change... which is not going well either.

Tested your solution on my layout and it works :D experimented some more and if we change "reset" to true in following part (your might be different):

Code: [Select]
local list = ShuffleList({ save="retrodiction", hide=true, loop=false, reset=true, slots=list });
local pow = ShufflePow({ save="retrodiction", hide=true, loop=false, reset=true, slots=pow});

We won't need additional instructions and original code will work. IMHO "save=layout_name" and "reset=true" operates in most optimal fashion and takes care of anyother function(s) we might use like "search_results" and  "filter_menu" without adding additional instructions for them.

Kudos to Keil, shuffle is working really great now!

Themes / Re: RetroDiction Theme v1.0 Released
« on: January 29, 2020, 09:29:40 PM »
Are there anywhere the images of all those old home computers of the folder sysflyer without the background ? (So I can copy past all of theme in other background . Actually more important to move all of them in the same position and resize them to have the same transparent screen), or even better with transparent screen. ?
The idea is to create a theme you could press a button in the joystick and have another computer to see the video snap. I always wanted to do this, but haven't so large amount of images.
This collection is very good, but needs to many work to make images the way I wanted.
Just as an idea.

The sysflyers were made by taking a frameshot of viking's Nostalgia Platform video set, I then applied some filters via for the grainy effect.  I don't have an image set with transparent background but you can request viking for transparent images. The link to his original work is given in the first post, its posted on launchbox forums.

There is another platform set by viking which might suit your needs better >

Themes / Re: RetroDiction Theme v1.0 Released
« on: January 29, 2020, 09:24:45 PM »
Cool, love this theme. very clean but with plenty of info and functionality, well done


Amazing work!!


Themes / Re: RetroDiction Theme v1.0 Released
« on: January 29, 2020, 09:23:56 PM »
This is polished, and a nice addition to attractmode.

Are you able to include master rom lists for games too?

Adding a single system game isn't very smooth for me at the moment. For example I want Maze Craze for the atari 2600, but if I download the xml from the mame hash files on github it doesn't find the details to add...

Thanks. For scraping systems you can use either hyperlist ( or scrape through gamesdb (Am > Settings > Emulator (select Emulator) > Change info scraper to > generate collection romlist. It would be easier to create a unified master list when you have proper lists of all systems.

General / Re: Help Understand theme creation
« on: January 26, 2020, 10:12:35 AM »
Favorites are system specific unless you are using a unified list or you need to create a substitute function which creates favorites and stores them is some other romlist. Great job on the theme :D

General / Re: Exiting AttractMode causes Windows problems
« on: January 26, 2020, 10:07:52 AM »
You are probably using a third party app which disables the taskbar and hides the mouse pointer.

I use, it shows the location (like 500, 500) so makes it easier to pin point where to move the artwork. Also you can put one system on a different layout, entering and exiting it will reload the (testing) layout and won't need a restart or you can map reload to a key and use that.

Themes / Re: RetroDiction Theme v1.0 Released
« on: January 25, 2020, 10:55:55 AM »
Added keyboard controls for every function, updated attract.cfg and layouts to accommodate the changes. attract.cfg is so central to layouts wish their was an easier way for per layout attract.cfg.

Revitalize and get others to push this request (or a twist on it)

I'll request too, this can be very useful :D.

Pages: 1 ... 3 4 [5] 6 7 ... 24