Giter Site home page Giter Site logo

mickelson / attract Goto Github PK

View Code? Open in Web Editor NEW
393.0 37.0 115.0 17.08 MB

A graphical front-end for command line emulators that hides the underlying operating system and is intended to be controlled with a joystick or gamepad.

Home Page: http://attractmode.org

License: GNU General Public License v3.0

Squirrel 8.63% GLSL 0.06% C++ 72.41% C 18.11% Makefile 0.38% Objective-C++ 0.03% Python 0.14% Shell 0.25%

attract's Introduction

Attract-Mode Frontend

Attract-Mode is a graphical frontend for command line emulators such as MAME, MESS, and Nestopia. It hides the underlying operating system and is intended to be controlled with a joystick, gamepad or spin dial, making it ideal for use in arcade cabinet setups.

Attract-Mode was originally developed for Linux. It is known to work on Linux (x86, x86-64, ARM, Raspberry Pi), Mac OS X and Windows based-systems.

Attract-Mode is licensed under the terms of the GNU General Public License, version 3 or later.

Please visit http://attractmode.org for more information.

See Compile.md if you intend to compile Attract-Mode from source.

Quick Start

  1. Run Attract-Mode. By default, Attract-Mode will look for its configuration files in the "$HOME/.attract" directory on Linux and Mac OS X, and in the current working directory on Windows. If you want to use a different location for the Attract-Mode configuration then you need to specify it at the command line as follows:

     attract --config /my/config/location
    

In the (hopefully unlikely) event that Attract-Mode has difficulty finding a display font to use on your system, you can specify one at the command line as follows:

	attract --font <font_name>
  1. If you are running Attract-Mode for the first time, you will be prompted to select the language to use and then the frontend will load directly to its configuration mode. If you do not start in config mode, pressing the "TAB" key will get you there. By default, config mode can be navigated using the up/ down arrows, enter to select an option, and escape to go back.

  2. Select the "Emulators" option, where you will be presented with the option of editting the configuration for the emulators Attract-Mode auto-detected (if any). Edit an existing emulator or select 'Add' to add a new emulator configuration. Default configuration templates are provided for various popular emulators to help you get started, however some settings will likely have to be customized for your system (file locations etc).

  3. Once you have an emulator configured correctly for your system, select the "Generate Collection/Rom List" option from the emulator's configuration menu. Attract-Mode will use the configured emulator settings to generate a list of available games for the emulator. Next select the "Scrape Artwork" option if you want to have Attract-Mode go and automatically download artwork images for the emulator from the web.

  4. Exit config mode by selecting the "Back" option a few times. You should now have a usable front-end!

Basic Organization

At its most basic level, Attract-Mode is organized into "Displays", of which you can configure one or more. Each "Display" is a grouping of the following:

  • a Collection/Rom List (the listing of available games/roms to show). Romlists are text files located in the "romlists" directory. They are created by Attract-Mode using the "Generate Collection/Rom List" option available when configuring an emulator, or by using the "--build-romlist" or "--import-romlist" command line options.
  • a Layout (the visual theme/skin to use for the Display). Layouts are located in the "layouts" directory, with each layout either in its own subdirectory or contained in a .zip file in the "layouts" directory.
  • a Global Filter. The global filter is a set of filter rules that always get applied to a Collection/Rom List. This filter can be used to remove entries you will never want to see
  • zero or more available filters. Filters are a set of rules for which games to display and how to sort them. Filters can be created to categorize games based attributes such as their orientation, category, manufacturer, year, times played, favourite status, file availability, etc. Filters can be cycled through using the "Previous Filter" and "Next Filter" controls, and can also be selected from the "Filters Menu".

Further Customization

CONTROLS: The inputs used to control Attract-Mode can be configured from from the "Controls" menu in config mode. Attract-Mode actions can be mapped to most keyboard, mouse and joystick inputs, including combinations. Here is a list of the default control mappings:

Keyboard Joystick Action
Up Up Previous Entry
Down Down Next Entry
Left Left Previous Display
Right Right Next Display
Enter or LControl Button A Select
Escape Button B Back/Exit
LControl+Up Button A+Up Jump to Previous Letter
LControl+Down Button A+Down Jump to Next Letter
LControl+Left Button A+Left Show Filters Menu
LControl+Right Button A+Right Next Filter
LControl+Escape Button A+Button B Toggle Favourite
Tab or Escape+Up Button B+Up Configure
Escape+Down Button B+Down Edit Game

FILTERS: Filters can be added to a Display in config mode. Filters are a list of "rules" and "exceptions" that the frontend steps through, in order, to determine whether or not to list a game. If a game does not match a "rule", then it is not shown. If a game matches to an "exception", then it gets listed no matter what (ignoring the rest of the rules in the filter). In other words, in order to be listed, a game has to match all the rules or just one of the exceptions configured for the filter.

For example, you might want to have a filter that only shows 1980's multiplayer sports games. This would be achieved by creating a filter with three rules: (1) that the year be in the 1980s (Year equals "198."), (2) that the number of players in not 1 (Players not_equals "1"), and (3) that the category contains "Sports" (Category contains "Sports"). Filters use regular expressions, which allow for powerful text matching capabilities. From the example above, the "198." will match any four letter word that starts with "198".

Filters also allow you to do some other stuff as well, such as controlling how the gamelist gets sorted, and how many entries are listed.

SOUND: To configure sounds, place the sound file in the "sounds" subdirectory of your Attract-Mode config directory. The sound file can then be selected from the "Sound" menu when in config mode and mapped to an action or event. Attract-Mode should support any sound format supported by FFmpeg (MP3, etc).

ARTWORK: Attract-Mode supports PNG, JPEG, GIF, BMP and TGA image formats. For video formats, Attract-Mode should support any video format supported by FFmpeg (MP4, FLV, AVI, etc). When deciding what file to use for a particular artwork type, Attract-Mode will use the artwork selection order set out below.

The location of artwork resources is configured on a per-emulator basis in the "Emulators" configuration menu. Attract-Mode's default artworks are: "marquee" (for cabinet marquee images), "snap" (for attract-mode videos and game screen shots), "flyer" (for game flyer/box art) and "wheel" (for Hyperspin wheel art). You can add others as needed in the "Emulators" configuration menu. Multiple paths can be specified for each artwork, in which case Attract-Mode will check each path in the order they are specified before moving to the next check in the selection order.

ARTWORK SELECTION ORDER:

  • From the artwork paths configured for the emulator (if any) and the previously scraped artworks (if any):

    • [Name].* (video, i.e. "pacman.mp4")
    • [CloneOf].* (video, i.e. "puckman.mp4")
    • [Name].* (image, i.e. "pacman.jpg")
    • [CloneOf].* (image, i.e. "puckman.png")
    • [Emulator].* (video, i.e. "mame.avi")
    • [Emulator].* (image, i.e. "mame.gif")
  • From the layout path for the current layout (layouts are located in the "layouts" subdirectory):

    • [Emulator]-[ArtLabel].* (video, i.e. "mame-marquee.mp4")
    • [Emulator]-[ArtLabel].* (image, i.e. "mame-marquee.png")
    • [ArtLabel].* (video, i.e. "marquee.avi")
    • [ArtLabel].* (image, i.e. "marquee.png")
  • When looking for artwork for the 'Displays Menu', artwork is loaded from the "menu-art" subdirectory. Artwork matching the Display's name or the Display's romlist name are matched from the corresponding artwork directories located there.

  • If no files are found matching the above rules, then the artwork is not drawn.

If no file match is found, Attract-Mode will check for a subdirectory that meets the match criteria. If a subdirectory is found (for example a "pacman" directory in the configured artwork path) then Attract-Mode will then pick a random video or image from that directory.

LAYOUTS: Attract-Mode's layouts are located in the "layouts" directory. Each layout has to be in its own subdirectory or contained in a .zip file. Attract-Mode's native layouts are made up of a squirrel script (a .nut file) and related resources. See Layouts.md for more information on Attract-Mode layouts.

Attract-Mode can also display layouts made for other frontends, including MaLa and Hyperspin. This feature is experimental, and certain features from these other frontends might not be fully implemented.

For MaLa layouts, just copy the layout and related resources into a new subdirectory of the "layouts" directory, or place a zip, 7z or rar file containing these things into the "layouts" directory. After doing this, you hould be able to select the layout when configuring a Display in Attract-Mode, just as you would for a native Attract- Mode layout.

For Hyperspin, copy the Hyperspin "Media" directory into its own directory in the Attract-Mode layouts directory. Create a Display in Attract-Mode and configure the layout to be the directory you copied "Media" into. The Display's name needs to match the name of one of the system subdirectories in the Hyperspin "Media" directory. This will allow Attract-Mode to find the Hyperspin themes and graphics to use. So for example, naming the Display "MAME" will cause it to match Hyperspin's MAME/Themes/* for themes, MAME/Images/Artwork1/* for artwork1, etc. Note that the wheel images are located using Attract-Mode's built-in wheel artwork. Wheel images located in the Hyperspin directories are ignored.

PLUG-INS: Plug-ins are squirrel scripts that need to be placed in the "plugins" subdirectory of your Attract-Mode config directory. Available plugins can be enabled/disabled and configured from the "Plug-Ins" menu when in config mode. See Layouts.md for a description of Attract-Mode's Plug-in API.

ROMLISTS: Collection/Rom lists are saved in the "romlist" subdirectory of your Attract-Mode config directory. Each list is a semi-colon delimited text file that can be edited by most common spreadsheet programs (be sure to load it as "Text CSV"). The file has one game entry per line, with the very first line of the file specifying what each column represents.

In addition to the romlist generation function available in config mode, Attract-Mode can generate a single romlist containing roms for multiple emulators from the command line using the following command:

	attract --build-romlist <emulator names...>

You can also import romlists from mame listxml files as well as gamelists for other frontends. Supported source files include: *.lst (MameWah lists), *.txt (Attract-Mode lists) and *.xml (Mame listxml, listsoftware and HyperSpin lists):

	attract --import-romlist <source_file> [emulator name]

The --build-romlist and --import-romlist options can be chained together in all sorts of strange and wonderful ways to generate combined Attract-Mode romlists. So:

attract --import-romlist mame.lst --import-romlist nintendo.lst nestopia

will combine the entries from the mame.lst and nintendo.lst files (located in the current directory) into a single Attract-Mode romlist. The "mame" emulator will be used for the mame.lst games, while the "nestopia" emulator will be used for the nintendo.lst games.

One or more filter rules can also be applied when importing or building a romlist from the command line using the "--filter " option. So for example the following command line:

attract --build-romlist mame --filter "Rotation equals 90|270"

will build a romlist that contains only the vertical games in your collection. The can be specified in exactly the same format as how filter rules are specified in Attract-Mode's attract.cfg file.

If you wish to specify the name of the created romlist at the command line, you can do so with the --output <name> option. Beware that this will overwrite any existing Attract-Mode romlist with the specified name.

For a full description of the command lines options available, run:

attract --help

Attract-Mode by default will print log messages to the console window (stdout). To suppress these messages, run with the following command line:

attract --loglevel silent

Alternatively, more verbose debug log messages can be enabled by running:

attract --loglevel debug

attract's People

Contributors

akufox avatar arzoo1 avatar banemon avatar benetnath avatar cmitu avatar cosmicdan avatar curioustorvald avatar davide125 avatar djrobx avatar eclairevoyant avatar eclipseo avatar enverex avatar flodef avatar h0tw1r3 avatar joyrider3774 avatar keilmillerjr avatar kenluotw avatar mbalfour avatar mbarnes avatar michaelem avatar mickelson avatar oomek avatar ozfalcon avatar philenotfound avatar progets avatar robloach avatar spilinek avatar susnux avatar urbanechimp avatar xinxinxinxinxin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

attract's Issues

Request: filter/display/sort bookkeeping info

There's a feature in Mala I love where it creates an automatic list of the most launched games.

It'd be nice if I could do similar with Attract-Mode. Filter as normal > sort by asc/desc (any field) > top/last (10,25,50,100)

Would need to capture launches somehow though - perhaps by abusing the tagging system a bit?

MAME itself captures coin inserts in the .cfg files for each game. Maybe when generating the MAME romlist AM could pull in this metadata as well?

Shutting down Windows causes crash

If I alt-tab out of the front end to Windows, then tell Windows to shut down - attract mode crashes and prevents the shutting down.

The same occurs if pressing the power button to do a soft poweroff.

Request for windowed mode

I'd like the option of whether to run fullscreen or windowed. I'm not sure of the logistics of if you can do a "windowed, fullscreen windowed, or exclusive fullscreen" option, but that would be ideal.

Extra filters

Would be handy to be able to filter by number of displays (see multiscreen games), and by whether raster or vector.

Unable to build on OS X: missing file

OS X 10.9.0, Xcode 5.0.2, Attract Mode 1.0.2. Using the tar.gz sources.

Trying to run make gives the following:

herpaderp:attract-1.0.2 casm$ make
mkdir obj
g++ -c -o obj/fe_base.o src/fe_base.cpp -O2 -Iextlibs/expat -Iextlibs/squirrel/include -Iextlibs/sqrat/include -DNO_FONTCONFIG
In file included from src/fe_base.cpp:24:
src/fe_util.hpp:28:10: fatal error: 'SFML/Graphics/Color.hpp' file not found

include <SFML/Graphics/Color.hpp>

     ^

1 error generated.
make: *** [obj/fe_base.o] Error 1
herpaderp:attract-1.0.2 casm$

Checked the source tree, and, sure enough, the file is not there.

Launching mame : Unable to create the Direct3D device

Mame launches fine from the command line, no issues. Many different versions of Mame work fine. However, when launching via the frontend, I get a black screen. If I alt-tab, the Mame window becomes active and runs fine. If I alt tab through the active windows while Mame is running, there is also a DOS window with the message 'Unable to create the Direct 3D device, repeated many times. If I alt-tab back to the Mame window and escape back to the frontend the DOS window disappears. Strange thing is, after a reboot, the frontend works as intended and launches Mame just fine but only once, then the above problem occurs until I reboot. I've used all the available layouts, including a very basic one with no fancy transitions and the problem still persists.

Brilliant work BTW :)

Nearest matching artwork

An option to disable this (or permanently disabling it) would be nice.

MAME example - game name is pass. No matching flyer exists, but one for Passing Shot (passsht) does. Frontend displays the flyer for Passing Shot.

roms in multiple directories support

request:

About my own feature request, in my setup the main "roms" directory
contains 70 subdirs - one for each system - and MAME sees them via the
mame.ini config file.
Sadly in Attract-Mode pointing the rom path to the main directory
"roms" doesn't work, so I made 70 "MAME (%system%)" emulators - each
pointing to its own subdir.
It works, but it's also a very tedious task and not so elegant indeed...

Naming convention for Mac OS X

Minor thing, but fairly prevalent: references to OS X appear stylised as OS-X throughout the documentation and source. There's no hyphen in its name - it should appear as 'OS X'.

Request wrap in Option menu

When you reach the end of the option menus and press down, it doesn't wrap back to the top, you have to scroll all the way back up. Vice versa for top to bottom.

CHD-only games are not listed

CHDs are typically store uncompressed alongside the rom zip.

MAME\roms\sfiii3.zip
MAME\roms\sfiii3\cap-33s-1.chd
MAME\roms\sfiii3\cap-33s-2.chd

The zip file is detected within the emulator path (MAME\roms), so the "sfiii3" entry gets populated in the romlist.

However, some games only consist of a CHD file (and 3 three G-Net files in this particular case):

<game name="xiistag" sourcefile="taitogn.c" romof="taitogn">
    <description>XII Stag (V2.01J)</description>
    <year>2002</year>
    <manufacturer>Triangle Service</manufacturer>
    <biosset name="v1" description="G-NET Bios v1" default="yes"/>
    <biosset name="v2" description="G-NET Bios v2"/>
    <rom name="flash.u30" merge="flash.u30" bios="v1" size="2097152" crc="c48c8236" sha1="c6dad60266ce2ff635696bc0d91903c543273559" region="biosflash" offset="0"/>
    <rom name="flashv2.u30" merge="flashv2.u30" bios="v2" size="2097152" crc="cae462d3" sha1="f1b10846a8423d9fe021191c5876190857c3d2a4" region="biosflash" offset="0"/>
    <rom name="coh-3002t.353" merge="coh-3002t.353" size="524288" crc="03967fa7" sha1="0e17fec2286e4e25deb23d40e41ce0986f373d49" region="maincpu:rom" offset="0"/>
    <disk name="xiistag" sha1="586e37c8d926293b2bd928e5f0d693910cfb05a2" region="pccard:ataflash:image" index="0" writable="yes"/>

No MAME\roms\xiistag.zip exists, so "XII Stag (V2.01J)" will not be listed.
Adding .chd to the romext does not solve the issue because sub folders are not parsed.

attract.exe crashes with DEP on

If Microsoft data execution prevention is turned on, Attract.exe will crash on a consistent basis. I was able to determine this by reading through event logs and crash dumps. The fix is to exclude attract.exe or turn DEP off completely. The former solved the issue for me and now no more crashes. This raises a question though about how the app handles memory management. That is if I understand DEP correctly. I am not a programmer but I do have a lot of IT experience. I know squirrel supposedly handles memory allocation and garbage collection better than lua for example. Curious to read what your take on this is, At least there is a work around for people who have DEP turned on. So, I just wanted to spread the word. Thanks for creating an amazing front-end for us arcade lovers. I am now using attract instead of hyperspin because of its simplicity and flexibility. Looking forward to your future updates and enhancements.

Snap OR video

May be just me, but I'm not a fan of how a snap gets suddenly replaced by a video if movie_enabled is true.

My preference would be to check whether a snap and/or video exists, and only display the snap if the video doesn't. Give priority to the video.

Allow sorting rom lists by game name instead of rom name

It appears that at least the mame rom list is sorted by the rom name, instead of the game name. It would be nice if, for example Donkey Kong (dkong) was before Double Dragon (ddragon). I could sort the list using the unix "sort" command selecting the correct field to sort on, but it would be nice if it were created sorted.

Extra joystick inputs

I've a stick that maps in Windows as the POV Hat - the frontend cannot see this input.

It also has 13 buttons and I'm unable to see the 13th.

Tagging / Custom list creation (extension of favourites)

From discussion on issue #14:

Another thought - instead of a specific favourites list, would it not be
more flexible to have a menu on screen that upon pushing the add to
favourites button allows you to select from any user generated (rather than
system generated) list to add the game into? This way multiple favourites
lists could be maintained.


Favourites as currently implemented are per romlist, so you could maintain multiple favourites lists by duplicating your romlists. I like your idea, it could be a custom tagging type thing. I'll add it as a issue for a future version.

Filters requiring program restart?

I've noticed when creating filters a good 50% of the time they won't be applied correctly until I've restarted the program. Not a huge problem, but does make experimenting with them a bit tedious. Ones on "Rotation" are usually an issue.

Squirrel: How to detect null objects?

I made a tick callback that switches between art on my layout every 10 seconds, but I want to ignore art that didn't resolve (like if there's no cabinet image). Right now, if it doesn't resolve, it shows a blank image for 10 seconds. How can I detect when fe.add_artwork() returns an empty image?

Filter CHD-based games

It would be useful to be able to filter game lists depending on whether a game is CHD-based.
I guess this information could be gathered from the -listxml / -listsoftware output.

Aspect ratio wrong when rotated

Surprised no-one has mentioned this yet! When a layout is rotated the aspect ratio goes screwy throughout. You can see this even with the built in "empty" layout and configuration menu - the font rendering is stretched vertically

It's not so bad on a VGA or higher resolution, it's stretched but usable. On a 15KHz 320x240 (or lower) the font rendering becomes so bad as to make it illegible.

Z rotation for objects

Love your work here :) I find I'm missing a few things though: font attribute for text objects, z rotation for objects, autostart last game on launch , and the ability to hide bracketed information in game titles. I know the latter can be done by editing the list files but it'd be nice to have it built in.

Import rom lists from other frontend formats

A couple of requests for this.

From lettuce @ byoac forum:

Any chance of the program using xml file in the future for romlists so it works with programs like romlister?

Email from v8motorhead:

G'day mate.
Loving your Attractmode FE. Quick, easy to use, powerful.
I do have a request though. The ability to read or export rom and emulator lists to XML in the same format which HyperSpin uses.
The reason I ask this, is to be able to use HyperlaunchHQ with ease.

It's either that or write a plugin for HLHQ, except I'm no good with C#, and although I kind of know C/C++ enough to read code and understand it. I'm not a good programmer.

Are you able to do this for us?
What would be even better is if Attractmode could read/save XML in the Hyperspin format rather than in CSV style.

Cheers mate! Keep up the great work.

attract.exe crashes with DEP on

If Microsoft data execution prevention is turned on, Attract.exe will crash on a consistent basis. I was able to determine this by reading through event logs and crash dumps. The fix is to exclude attract.exe or turn DEP off completely. The former solved the issue for me and now no more crashes. This raises a question though about how the app handles memory management. That is if I understand DEP correctly. I am not a programmer but I do have a lot of IT experience. I know squirrel supposedly handles memory allocation and garbage collection better than lua for example. Curious to read what your take on this is, At least there is a work around for people who have DEP turned on. So, I just wanted to spread the word. Thanks for creating an amazing front-end for us arcade lovers. I am now using attract instead of hyperspin because of its simplicity and flexibility. Looking forward to your future updates and enhancements.

Screen is not redrawn after refocusing window (Windows)

If you switch to another window in Windows (alt-tab), when you try to switch back to attract mode (alt-tab or click the taskbar button to focus), it does not redraw the screen until a key is pressed.

This happens for me on both Windows XP (ATI Radeon 2600) and Windows 8 (Intel HD 3000).

Name filter

I'm trying to filter out Darius and Darius 2, but keep G-Darius.

This filter doesn't work:
Name not_equals darius|darius2

It keeps Darius 2...

better filter/list documentation

probably just needs a wiki page. request:

The improvement request is for a page on Filters on your website,
because I find it difficult to understand the logic behind them and
Lists

When returning to attract after playing a game, the screen saver is shown

After playing a game for more than 10 minutes, when I exited back to attract, the screen saver was active. It would make more sens to me to come back to the selection screen. It also seems that only controls that are mapped to an action in attract will exit the screen saver. To test this I set the timeout to 10 seconds, and tried hitting keys on the keyboard that aren't mapped to actions in attract (I tried p,o, and i) and the screen saver didn't exit. I pressed 1 and it exited right away.

The CloneOf field of the MESS romlists is incorrectly populated

The CloneOf field of the MESS romlists is incorrectly populated with the name attribute instead of cloneof.

-listsoftware XML output:

<software name="aokidenp" cloneof="aokiden">
        <description>Aoki Densetsu Shoot! (Jpn, Prototype)</description>
        <year>1994</year>
        <publisher>KSS</publisher>

And the result in the romlist is the following:

#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType
aokidenp;Aoki Densetsu Shoot! (Jpn, Prototype);mess-snes;aokidenp;1994;KSS;;;;;;;

You can see that both Name and CloneOf are populated with "aokidenp".
This means that we can't filter out clones for MESS romlists, because this field is populated even for games that are not marked as clones in the XML output:

<software name="shooterp">
        <description>Shooter (USA, Prototype)</description>
        <year>199?</year>
        <publisher>Punk Development</publisher>

Result:

#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType
shooterp;Shooter (USA, Prototype);mess-snes;shooterp;199?;Punk Development;;;;;;;

XP64 glitches

At least - they're common to the two XP64 Ati 4350 machines I have but don't occur on Win7 or Linux.

  1. I get graphical corruption when starting the front end. See https://plus.google.com/106019571274193779309/posts/bqdj74ctxxd
  2. The recently added Exit command can't execute anything except the most basic of commands known by cmd.exe - it won't execute any external programs, even if they're included in a batch file.

Cosmetic suggestion: change "screen" to "snap"

By default MAME/MESS creates screenshots in the "snap" folder.

Using "artwork snap" and "$HOME/.mame/snap" rather than "artwork screen" would be more coherent with standard pathing.

Default tayouts would also need to be switched.

No big deal if not - screen/screens just seems a bit arbitrary.

Filter rule regex implementation

The following rule is not working as expected:

rule    Title contains \(.*(USA|World).*\)

It should match titles such as "Captain Silver (USA)" but it does not, because .* (any char zero or more times) is treated as .+ (any char one or more times).

 \(.*(USA|World).*\)

gives the exact same result as

 \(.+(USA|World).+\)

Is the regex implementation not posix compliant?
Am I missing something?

History.dat

some discussion over on Arcade Otaku has led to the idea that being able to have a filter based on history.DAT contents would allow for some really fancy lists to be generated automatically - games made by a certain programmer, military games, the kind of info not found in carver.ini

Request: Resolve Windows shortcuts

Sort of a "would be nice" request :) Not sure if this is something you can correct based on the libraries or build tools you are using:

This is pretty common with other programs where "soft" links (Windows shortcuts) don't resolve but "hard" links do. Right now, you can create hard links in Windows to resolve correctly:

mklink /D C:\attract-mode\layouts\mylayout C:\dev\attract-mode\layouts\mylayout

If it resolved "soft" links, a user could have layouts, plugins, etc in a different folder and just create a Windows shortcut to the folder in layouts\ or plugins.

Issue with mame seems stuck behind..

I set up one rom and mame emulator. Upon opening the rom from the list, nothing happens, however if I swap over to a new tty and back mame shows up fine.

Slow loading images

Text lists and the "orbit" layout are extremely quick to use, but as soon as I enable images there's about half a second lag when scrolling between games.

Windows 7 64bit

Artwork Perspective

Not a hundred percent sure where or how to categorize this...
We have the ability to rotate and shear artwork, but no way in particular to add/modify some form of perspective to artwork.
How I mean this is, for example, the left edge need to be shorter than the right edge of a screenshot to fit it into a photo of a cabinet, perhaps taken at a 3rd angle or similar.

It occurs to me it would be similar to rendering on a polygonal surface with the dimensions needed. No idea how feasible this is.

Attract mode (Cycle through user collection)

Appreciate your great work!

I suggest that adding 'attract mode' feature to the program, that is,

  1. Randomly pick a game
  2. Play the corresponding video, if any. Then return to 1, if the playback is finished
  3. If there are no corresponding video, wait for N seconds (this may be adjusted through option), then return to 1.

So basically, it is the 'attract mode' for the 'attract-mode' frontend :)

Possible options would be :
(1) Start / End random-cycling : In the control key setup
(2) Display time for non-videos(sec) :
(3) Jump to next game if video ends : Yes/No
If No, then use (2) (jump to next game, regardless of video status)
(4) Jump to another list : Yes/No
(5) Jump to another filter : Yes/No

Again, thanks for your effort! This is one of the best software I have used so far.

get_input_state and input_map

It seems as though get_input_state only allows you to specify static button names. Is it possible to read or incorporate the attract.cfg 'input_map' settings so you can know if the user pressed the "select" key (whatever they have it set to), etc..

Launching .lnk for PC Games

Hi,

great frontend, and i would be glad to use it once i'll find how to launch .lnk for my PC games on the cab.

I was able to generate a list of .lnk, but did not find how to lanch it.
I've tried various option, with working command in cmd, like "blabla.lnk", but was not successful.
Can someone indicate me the good parameters in the cfg ?

Thanks :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.