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.

Topics - rand0m

Pages: 1 [2]
Scripting / Transition with Input State not workign as expected
« on: January 24, 2019, 09:40:25 AM »
Hi, I am using the following code:

Code: [Select]
local image_up = fe.add_image ("images/up.png", 430, 44, 0, 0);
local image_down = fe.add_image ("images/down.png", 430, 1014, 0, 0);
image_up.visible = false;
image_down.visible = false;

function blink_transition( ttype, var, transition_time )
{ switch ( ttype )
case Transition.ToNewSelection:
   if (fe.get_input_state("Up")==true)
image_up.visible = true;
   else if (fe.get_input_state("Down")==true)
image_down.visible = true;
      return true;

   return false;

What I am trying to do is to show images of up-arrow and down-arrow when I press up and down. I used the code in layout directly because using a plugin applies the effect on all layouts in use (not isolated). Can anyone please tell me why it isn't working? Does transition require further instructions?

Scripting / Exporting Game Info on Signal Questions!
« on: January 23, 2019, 03:24:13 AM »
Hi, I am working on a plugin which exports/ pastes gameinfo to a text file on signal (button press). I found lots of help from this thread > (#4, raygun).

The code from raygun is:
fe.add_transition_callback( "gamename_transition" );
function gamename_transition( ttype, var, ttime )
        if (( ttype == Transition.EndNavigation )
                || ( ttype == Transition.StartLayout ))
                system( "echo '" + fe.game_info( Info.Name ) + "' > ~/.attract/current_name.txt" );
                system( "echo '" + fe.game_info( Info.Title ) + "' > ~/.attract/current_title.txt" );
                system( "echo '" + fe.game_info( Info.System ) + "' > ~/.attract/current_system.txt" );
        return false;

Since I wanted the export to text on signal, I've tweaked raygun's code a bit. My code:

fe.add_signal_handler(this, "on_signal");
function on_signal( sig1 )
   if ( sig1 == "custom3" )
        system( "echo '" + fe.game_info( Info.Name ) + "' > ~/.attract/current_name.txt" );
     return true;
    return false;

I am facing following issues with the code and can use some help from more experienced members.

1) Whenever I press the signal button, cmd flashes for a second. Is it possible to do this in background with cmd completely hidden?

2) What I am aiming for is:
  a) on signal press
  b) search if "selected" exists in text file or not
  c) if "selected" exists, do nothing.
  d) if "selected" doesn't exist add it to the end of the list.

After searching thoroughly I can't figure out if the above mentioned code is even possible in AM. In the examples I've seen search functions are being called outside AM in batch or script, while the data (game info) is from AM and can't be accessed directly via batch/ script. So I am in a quandary how to select data from within AM and use batch/ script on it - or whether the above mentioned can be done from within AM directly. Can any one please guide me in this regard?

Hi, I am tinkering with a layout and reached a dead-end. Some help from experienced members will be much appreciated in following.

1- Creating effects on signal: Is there anyway to execute certain effects/ images when a specific key is pressed? I have found excellent options in this thread >  but the examples given require the use of plugin "Pop up" which has some additional problems. For one, we have to create a different instance (plugin) for every image/ effect on different key press. Secondly and more importantly activating the plugin means that those effects (AM based) will be showing in all layouts/ themes throughout Attract-Mode, there is no way to isolate the effects to certain layout. I would much rather that image on key-press is present within the layout (not ported to plugin) and a way to bind multiple actions with multiple key-presses.

2- Lets say I have a list consoles which list all consoles I've configured, is there anyway to tell the total number of roms within a Single console when I select it on consoles menu? i.e. from outside without entering the actual console in question. Lets say the consoles menu has an item Sega Genesis, is it possible to show the total number of items in Sega Genesis when I select that in consoles menu? Wiki lists two items of interest fe.list.size and fe.filter.size but I dont know how to create the instructions for "[selected item] find [list.size] [print] on screen".

3- Like text is there anyway to force a centered position for images? Right now the default position for any images seems to be topleft (because it seems the flow to the right), anyway to position them to a central location, say (700, 500, 0, 0) where (700, 500) is the point right in middle and image occupies area around it (for lack of a better example, like a dot in middle of circle).


Themes / RetroMode Theme
« on: January 19, 2019, 06:42:02 AM »
Here is a brief video of a theme I am working on, its still a work in progress and needs a lot of polishing. The main idea was to follow a file manager like hierarchy too organize the roms. The backgrounds are from viking's excellent Nostalgia platform set, though I am using snaps (original are videos) with some heavy filters! the aim being to create a contrast between platform background and other items not there right now.


Scripting / Global/ Layout-wide mipmap application
« on: January 17, 2019, 03:20:48 AM »
Is there anyway to pass a global/ layout-wide mipmap command so every snap/ video has mipmap applied to it? Currently i'm using

Code: [Select]
local flyer = fe.add_artwork( "flyer", #, #, #, # );
flyer.mipmap = true;

local snap = fe.add_artwork( "snap", #, #, #, # );
snap.mipmap = true;

local video = fe.add_artwork( "video", #, #, #, # );
video.mipmap = true;

I am hoping that I won't have to reuse the same statement time and again and can give a single instruction to apply mipmap to all artwork assets.

Reicast core has been going places recently and is finally shaping up to become The emulator of choice for dc and dc based arcade systems. A few changes recently

1- Started supporting .chd v5 (so would work with .chds created by latest MAME)
2- Started supporting Sega Naomi and Sammy Atomiswave (MAME roms will work directly without any tweaking)
3- Per-Pixel accuracy (OIT) available, it will require a good rig though.

DC emulation has been lagging for a few years now and only viable emulator (for dc and dc arcades) was Demul. Demul is still the best when it comes to compatibility percentage but Reicast is fast becoming a serious alternative. At this stage Reicast doesn't support Windows CE games. Those of you looking for an emulator for dc games should give reicast a try, being on retroarch provides many benefits like shaders, easy control setup etc.

Official Reicast page on Retroarch:

Some articles of recent changes:

Emulators / Autoit: Start program in background shift focus after x seconds
« on: September 18, 2018, 11:24:44 AM »
Demul is a special case in emulators where (afaik) pure command-line is not possible because Demul only accepts commands once its GUI is activated, bad for immersion because you don't go to game directly from AM and DEMUL GUI pops up. I'm using following for Gaelco via Demul:

#include <Misc.au3>
#include <_IsPressed360.au3>
$dll = DllOpen("xinput9_1_0.dll")
ShellExecute(@ScriptDir & "\demul.exe", ' -run=gaelco -rom="' & $CmdLine[1] & '"')
WinWaitActive("gpuDX11oldhw", "")
MouseMove(1920, 540, 0)
While 1
    If _IsPressed360("65536", $dll) And _IsPressed360("-32768", $dll) Then

This script (made into an exe) works Ok. It opens demul, auto maximizes and hides the cursor but doesn't hide DEMUL GUI. Is it possible in this setup through additional commands that autoit opens demul in background and only shifts focus to Demul after 5 seconds when game starts so I don't see the Demul GUI?

Scripting / Error (index "0") while using Leap Plugin
« on: September 14, 2018, 01:37:58 AM »
Leap plugin is working as intended (skips empty filters except "All") but an error regarding index "0" is registered in the console window whenever AM is run. I am pasting the error log (on win 8.1):

AN ERROR HAS OCCURED [the index '0' does not exist]

*FUNCTION [logic()] D:\Attract-Mode\Attract-Mode v2.4.0 (x64)\plugins/Leap/plugin.nut line [26]
*FUNCTION [transitions()] D:\Attract-Mode\Attract-Mode v2.4.0 (x64)\plugins/Leap/plugin.nut line [22]

[direction] 2
[ttime] 0
[var] 2
[ttype] 0
Script Error in transition function: transitions - the index '0' does not exist


This error message is repeated with different [ttype] and [direction] repeatedly while using AM. Lines pointed out in error in Leap/plugin.nut are:

Line22:    if ((ttype == Transition.StartLayout) || (ttype == Transition.ToNewSelection) || (ttype == Transition.ToNewList)) logic(var);
Line26:    if ((fe.filters[fe.list.filter_index].name != exception) && (fe.list.size == 0)) {

I am using Platform Categories (arcades, consoles etc) could that be the reason for this error? Can anyone please help in this regard or guide me toward a solution.

General / Adding Overviews For Emulated Systems (e.g. NES, Genesis)
« on: September 10, 2018, 02:16:17 AM »
While experimenting with overviews today I (accidentally) found a solution for adding overviews for emulated systems. I am pretty sure someone was asking about that but can't find the thread right now. In latest version of Attract-Mode overviews for roms are stored in:

AM\scraper\[Emulated System]\overview\[rom-name].txt

(Note: In prior versions overviews were stored in AM\romlists\[Emulated System]\[rom-name].cfg)

IF you are using sub-menus e.g. "Start>Consoles>NES" (You don't need Platforms plugin in latest version) you can add overviews for emulated systems by creating a folder "@" in AM\scraper. Result should be like this:

AM\scraper\@\overview\[Emulated System].txt

An Example:
Lets say there is system "NES (Retroarch)", The file should be placed as:

AM\scarper\@\overview\NES (Retroarch).txt

You can add and tweak overviews presentation in layouts via following variables:

//Overview //Heading in comment
local soverview = fe.add_text("[Overview]", 680, 10, 600, 1070); // Add overview (I'm calling it soverview for systemoverview you can name it anything not in use) + Dimensions
soverview.font="BebasNeue Book.ttf"; //Font utilized - In windows either placed with other fonts in "\Windows\Fonts" or placed in layout folder
soverview.align = Align.TopLeft; // Alignment of text - in recent versions AM supports Top/ Bottom alignment
soverview.word_wrap = true; // Word Wrap true or false
soverview.charsize = 24; // Text size = Style.Bold; // Style Bold, Normal or Italic
soverview.set_rgb(180,180,180); //Text color

PS: funny thing, I thought it'll work by adding actual platform categories like arcades or consoles no idea why "@" would work in this case - secondly please move overviews from /scraper to /overviews. Scraper is like a temporary folder before you move scraped data to relevant places. I'm afraid of overwriting data :(

Scripting / Static List & Dynamic Selection Bar
« on: November 07, 2017, 03:52:40 AM »
Hi, can someone please guide me on how to get a static gamelist (listbox entries)? The way it works right now is that list is dynamic (moves up or down) while selection bar remains static. I want to move the selection bar while keeping the items in listbox static. Is it possible on default setup? or with help of conveyor plugin? Thanks.

Scripting / Modifying Gameinfo structure
« on: February 06, 2017, 10:39:48 PM »
Is it possible to modify gameinfo structure and add some more categories like region, language and series info in it? or perhaps gather this info from another text file through "additional import files"? (simple catver.ini structure doesn't work I have already tried that)

I have also tried to add that information in tags (which seems like the best place of adding such info) but don't know anyway of limiting the return to one value. E.g. lets say a game Pang has the tags "Japan;Japanese;Pang series" (Region/Language/Series). I don't know how to call one tag (maybe there is a find in string function or "contains" expression) in this string. Listing tags via (info.Tags) simply lists all Tags which beats the purpose.

Pages: 1 [2]