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

Pages: [1] 2
General / Filter out drivers
« on: December 10, 2017, 01:24:47 PM »
Is there a way to filter in attractmode drivers from mame? It is not the same as Manufacturer. For instance, the driver for neogeo has many manufacturers that made games for it. I would like to use attract mode to pool all roms for that driver (system) instead of separating them manually.

Similar to mame built in function:
Code: [Select]
mame -listsoftware drivername

Scripting / rom_index
« on: November 23, 2017, 05:03:01 AM »

Code: [Select]
case 5: // "ListEntry"
rep = as_str( rom_index + 1 );

Is there any way to pull a rom_index in squirrel? I created a module Shuffle to navigate through slots. It would be nice to add the feature of having a list not loop. To do so, I would need to know the where a rom is in reference to the whole list.

Or am I overthinking features, just forget it and release the module?

Scripting / Modules and Plugin Gallery
« on: September 06, 2017, 01:35:33 AM »
We have a Themes Gallery, but lets start a Modules and Plugin Gallery for items you have created but is not included with attract mode by default. Important for theme users as well as developers. I am hoping that this thread helps with teamwork on projects to improve them, and inspire new ideas.

Include a title, link and description to your project. Keep images a minimum of 300x300 px just like the themes gallery.


* [Flavors](
* [mvscomplete](


* [FadeToGame](
* [Leap](


* [Helpers](
* [Shader](
* [Shuffle](

#### OTHER

* [Launch App](

I created a github issue here about the subject. I would like to have a responsive theme, but can not do so without a way of getting the attract mode window size instead of the screen size. I could possibly read and parse, but the file is not updated when switching to fill screen mode. I could parse attract.cfg and get the window_mode attribute to solve this. Is there an easier way that I am missing?

Scripting / Rounded corners via glsl shader?
« on: April 03, 2017, 05:08:03 PM »
Is it possible to pass an image to a shader and create rounded (smooth) corners with transparency? Similar to how border-radius with css works. I have no knowledge at all about how shaders work.

Code: [Select]
class MVS {
artwork_label = "";
num_slots = 0;
opacity = 0;
artwork_parent = null;
slot_artwork = [];
selected_slot = 0;

constructor(a="marquee", n=4, o=25, ap=::fe) {
artwork_label = a;
num_slots = n;
opacity = o;
artwork_parent = ap;

for (local i=0; i<num_slots; i++) {
slot_artwork.push(artwork_parent.add_artwork(artwork_label, -1, -1, 1, 1));


function set_slots() {
for (local i=0; i<num_slots; i++) {
slot_artwork[i].index_offset = -(selected_slot - i);

Code: [Select]
// --------------------
// Load Modules
// --------------------
if (fe.load_module("Debug")) log <- Log();

// --------------------
// Layout User Options
// --------------------
class UserConfig {
local config = fe.get_config();

// --------------------
// Layout Constants
// --------------------
local flw = fe.layout.width;
local flh = fe.layout.height;

// --------------------
// Colors
// --------------------
local colors = {
black = { r = 0, g = 0, b = 0 },
white = { r = 255, g = 255, b = 255 },
grey = { r = 120, g = 120, b = 120 },

// --------------------
// Settings
// --------------------
local settings = {
snap = {
x = 0,
y = 0,
width = flw,
height = flh,

// --------------------
// Magic Functions
// --------------------

// --------------------
// Layout
// --------------------
local snap = FadeArt("snap", -1, -1, 1, 1);
setProperties(snap, settings.snap);

local mvs = MVS();
try { log.send(mvs.slot_artwork[0].file_name + " " + mvs.slot_artwork[0].index_offset); } catch(e) {}
try { log.send(mvs.slot_artwork[1].file_name + " " + mvs.slot_artwork[1].index_offset); } catch(e) {}
try { log.send(mvs.slot_artwork[2].file_name + " " + mvs.slot_artwork[2].index_offset); } catch(e) {}
try { log.send(mvs.slot_artwork[3].file_name + " " + mvs.slot_artwork[3].index_offset); } catch(e) {}

// --------------------
// Enable Shaders
// --------------------

Code: [Select]
Keils-iMac:MacOS keiljr$ /Applications/
Starting Attract-Mode v2.2.0-3 (OSX)
Config: /Users/keiljr/.attract/attract.cfg

*** Initializing display: 'Neo Geo'
 - Loaded master romlist 'mame' in 1 ms (147 entries kept, 10 discarded)
 - Constructed 10 filters in 0 ms (1470 comparisons)
Fontconfig error: Cannot load default config file
 - Debug message:  0
 - Debug message: /Applications/mame0182b_macOS/marquees/roboarmy.png 1
 - Debug message: /Applications/mame0182b_macOS/marquees/svc.png 2
 - Debug message: /Applications/mame0182b_macOS/marquees/samsho.png 3
 - Loaded layout: /Users/keiljr/.attract/layouts/mvscomplete/ (layout.nut)

Scripting / Layout fonts look different on crt
« on: March 20, 2017, 12:37:24 AM »
Developed my flavors layout on my Mac. I have the window set to 640x480. When I installed the theme on my neo geo running windows 10 at 640x480, the font is much larger. Any idea? It doesn't make sense to me. I set sizes of everything based on a percentage of the layout width and height. It should be the same.

General / Adding attract mode to lakka
« on: March 16, 2017, 05:11:20 PM »
here on the lakka forums.

Here was the suggestion:

Quote from: shanti
Don't have a Pi but this might work for you.

use a USB drive or use samba share and put the Attract mode binary and its needed libs inside a writable folder (like /storage/attract or something) you can find what libs are needed by running "ldd attract"

SSH to your Lakka PI and test that is works by running

systemctl stop retroarch
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/storage/attract/lib ./storage/attract/attract

if it loads then edit/create an file inside /storage/.config:

nano /storage/.config/

put something like this inside:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/storage/attract/lib
) &

Now reboot and if everything is correct, attract should start at boot.

Themes / Vertical compatibility help
« on: March 01, 2017, 03:39:58 PM »
The Best Portrait / Vertical / Cocktail Themes? had me thinking about making my flavors theme more compatible with vertical orientation.

I am having a few issues and have some concerns.

  • When I rotate a layout, it seems as if the layout was rendered horizontally, rotated, and then squeezed. This is most notable with text. It looks squished.
  • Scan lines applied to the shader remain in the same direction. Thank god. I just have to adjust my texture sizes for the new orientation. Already added a function for that to my helpers module.

General / Rpi can now possibly do 240p over composite!
« on: March 01, 2017, 04:25:26 AM »
Big news I'd like to share. Doesn't really fit in any particular category here. But it might influence the amount of rpi users here.

I have a raspberry pi 2  that I quit working on once I learned that it couldn't do 240p over composite. There is a limitation put in place by the firmware. Some one yesterday came out with a test firmware allowing 240p and another user tested it and said it worked! This is huge for the retro community! I might order a pi3 and the composite dongle to try it out.

I have a test firmware here:
Can you set (in config.txt):
and report back.
We have a progressive scan bit in the VEC (composite) register set.
We've tested that before and it wasn't sufficient. I've also tried disabling the interlaced signal that gets set. I'm not sure if it does the right thing (my composite TV's quality is a bit too low to tell).

You're amazing! I just bought an old SOny Trinitron CRT that I'm planning on RGB modding and putting into an arcade cabinet. I'm still waiting on a Gert's VGA adapter though, so until then I've been playing around with composite 480i... which looks like a total flickering mess! I happened to check the thread today and saw your new firmware, so I just briefly tested it out.

It's such a huge improvement running this monitor over 240p. No more flickering, just beautiful stable scanlines. Everything seemed to be solid for the few minutes I played around with it. The only thing I noticed was that my picture was noticeably warped and slightly titled near the edges of the screen. It could just be my TV, since it's opened up right now, but I didn't notice it when I was running 480i. Could be an issue with the sync over composite... not sure. I'll have to do a better comparison with 240p vs. 480i on the set tomorrow. (There was also a high-pitched whine from the speakers, but I'm guess that's just because the TV's guts are exposed right now)

Scripting / Making plugins and modules
« on: February 23, 2017, 11:10:31 AM »

Thanks goes to luke nukem for the base on the shader module. Maybe we can collaborate to get other shaders working with this module. Adding a shader to a layout using the class I made is as easy as pie.

General / config_directory issue with attract mode
« on: February 14, 2017, 06:54:26 PM »
Code: [Select]
Keils-iMac:~ keiljr$ /Applications/
Starting Attract-Mode v2.2.0-3 (OSX)
Warning: Attract-Mode was compiled to look for its default configuration files in: ../config/, which is not available.
Config: /Users/keiljr/.attract/attract.cfg

*** Initializing display: 'mame'
 - Loaded master romlist 'mame' in 1 ms (147 entries kept, 10 discarded)
 - Constructed 10 filters in 0 ms (1470 comparisons)
Error loading language resource file: en
Fontconfig error: Cannot load default config file
Plugin file not found: History.dat
 - Loaded layout: /Users/keiljr/.attract/layouts/flavors/ (layout.nut)

Attract mode stores config files under two directories on Mac Os X.
  • /Applications/
  • ~/.attract/

Using the method to launch previously provided, the app config directory is ignored while the home directory config directory is loaded. Default plugins, modules, etc will not be loaded.

So this leads us to checking the command line params:

Code: [Select]
Keils-iMac:~ keiljr$ /Applications/ -h
Attract-Mode v2.2.0-3 Copyright (c) 2013-2016 Andrew Mickelson
Usage: /Applications/ [option...]

  -b, --build-romlist <emu> [emu(s)...]
     Builds a romlist using the configuration for the specified emulator(s)
  -i, --import-romlist <file> [emu]
     Import romlist from the specified file. Supported formats:
        *.lst (Mamewah/Wahcade!)
        *.txt (Attract-Mode)
        *.xml (Mame listxml format or HyperSpin)
     The emulator to use for list entries can be specified as well
  -F, --filter <rule>
     Apply the specified filter rule when creating romlist
  -E, --exception <exception>
     Apply the specified filter rules exception when creating romlist
     Use with --build-romlist to include all possible roms [MAME only]
  -o, --output <romlist>
     Specify the name of the romlist to create, overwriting any existing

  -s, --scrape-art <emu> [emu(s)...]
     Scrape missing artwork for the specified emulator(s)

  -c, --config <config_directory>
     Specify the configuration to use
  -f, --font <font_name>
     Specify the default font to use
  -h, --help: Show this message
  -v, --version: Show version information

So we can use -c to explicitly declare a config directory. This resolves issues launching attract in Windows as a shell, as the Windows version only has one config directory. Mac os x has two however. I do not believe this param allows more than one option. I have tried the following without success. This is important to resolve for debugging, and is getting rather annoying.

Code: [Select]
Keils-iMac:~ keiljr$ /Applications/ -c /Users/keiljr/.attract
Code: [Select]
Keils-iMac:~ keiljr$ /Applications/ -c /Applications/ /Users/keiljr/.attract
Code: [Select]
Keils-iMac:~ keiljr$ /Applications/ -c /Applications/;/Users/keiljr/.attract

General / Help launching attract mode on boot (windows 10)
« on: February 09, 2017, 05:36:10 PM »
Code: [Select]
@echo off
start C:\Arcade\attract\attract.exe

Stumped. Whats going on here?

Scripting / Debug plugin and module
« on: January 29, 2017, 04:24:03 PM »
Debug is a plugin for the AttractMode front end. It can reload the layout with a user definable key press.

I added a module!

Pages: [1] 2