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
1
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.


Debug Plugin
https://github.com/keilmillerjr/debug-plugin
Debug plugin is for the AttractMode front end. It can reload the layout with a user definable key press.

Debug Module
https://github.com/keilmillerjr/debug-module
Debug module is for the AttractMode front end. It can assist you in sending messages to the terminal.

Shader Module
https://github.com/keilmillerjr/shader-module
Shader module is for the AttractMode front end. It can assist you in easily using shaders for layout design.

Helpers Module
https://github.com/keilmillerjr/helpers-module
Helpers module is for the AttractMode front end. It consists of a few common functions to supplement the default squirrel functions and aid in the creation of an AttractMode layout.

Leap Plugin
https://github.com/keilmillerjr/leap-plugin
Leap plugin is for the AttractMode front end. It helps to leap over empty filters. This is important for filters like favorites that might be empty at times, and cause issues with your layout.

MVS Module
https://github.com/keilmillerjr/mvs-module
MVS module is for the AttractMode front end. It will aid in the use of selectable marquee slots like on a real neo geo mvs.

FadeToGame Plugin
https://github.com/keilmillerjr/fadetogame-plugin
FadeToGame plugin is for the AttractMode front end. It will fade the screen when transitioning to and from a game.

Launch App
https://github.com/keilmillerjr/launch-app
Launch is an app for the AttractMode front end. It will launch AttractMode while hiding the console window, intended to be used in a home production setting. For development, attract.exe may still be run directly to show the console window.

2
Scripting / crt_lottes horizontal scan lines?
« on: July 11, 2017, 09:02:47 PM »
How can I get the crt_lottes shader to create horizontal scan lines instead of vertical? I’m stumped. I don’t understand shaders well enough.

https://github.com/keilmillerjr/shader-module
https://github.com/Luke-Nukem/attract-extra/tree/master/layouts/lottes-crt

3
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 window.am, 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?

4
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.

5
I am finally getting around to creating an mvs module. Usage will be to have artwork like a neo geo multislot, and navigate all slots. When user is on the last slot, or first slot, and continues in that direction, all slots will shift over.

Example: Numbers are list entry. O is a selected game.

1 2 3 4
O x x x

->

1 2 3 4
x O x x

->

1 2 3 4
x x O x

->

1 2 3 4
x x x O

->

2 3 4 5
x x x O

<-

2 3 4 5
x x O x

The issue I am having thus far is that when I send mvs.slot_artwork[0].file_name in the log it yields nothing, yet all other slots yield a correct file name. It doesn’t make any sense to me. Can anyone spot the issue?

Here’s my code so far.

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));
}

set_slots();
}

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();
fe.load_module("shader");
fe.load_module("helpers");
fe.load_module("fade");
fe.load_module("mvs");


// --------------------
// 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/Attract.app/Contents/MacOS/attract
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)

6
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.

7
General / Adding attract mode to lakka
« on: March 16, 2017, 05:11:20 PM »
Attract mode has been added to retropie. Well, I am currently using lakka outputting 240p to my wonderful family room crt via component. ;D

I’d like to continue to use lakka as its the official libretro/retroarch dirstro. Setting it up was easy as pie (no pun intended), and a bug I found was even resolved in like two days. But how can I add attract mode? I started a thread 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 autostart.sh file inside /storage/.config:

nano /storage/.config/autostart.sh

put something like this inside:

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

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

Attract mode has a .deb and can compile from source. I don’t even know what to do. Can some one here point me in the right direction? I am able to ssh to the unit from my mac. Side note, I am getting 240p, but I still have tearing.

8
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.
  • Rotation can be changed on the fly. My shader needs to be updated with the new texture size. There is no „transition" to new orientation. Right now the only way I can do it is if the layout is reloaded via restarting the app or using my Debug plugin and doing it with a keypress. Am I missing something?

9
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.

https://github.com/raspberrypi/firmware/issues/683#issuecomment-283179792

Quote
I have a test firmware here:
https://drive.google.com/uc?id=0B-6zmEDJwxZEME9lSEFZRmQ5RGs&export=download
Can you set (in config.txt):
sdtv_progressive_scan=1
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).

Quote
popcornmix:
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)

10
Scripting / Making plugins and modules
« on: February 23, 2017, 11:10:31 AM »
I’ve been doing a bit of coding with my time off. Thought I’d share and possibly have some feedback. All available on github, so I can always accept push requests.

https://github.com/keilmillerjr/debug-plugin
https://github.com/keilmillerjr/debug-module
https://github.com/keilmillerjr/shader-module
https://github.com/keilmillerjr/leap-plugin
https://github.com/keilmillerjr/helpers-module

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.

11
General / config_directory issue with attract mode
« on: February 14, 2017, 06:54:26 PM »
I’m getting tired of this. I figured that I would try posting on the forum first because no one seems to read the bug reports on github. I’ve only had this issue posted on there for ever. My main computer used for programing is running mac os x, but I have also experienced an issue with this on windoze as well. Regardless…

Attract mode launches the attract.app package as expected, without any issues. The issues arise when you try to launch it via console from the following line in the terminal, and it’s yielded print:
Code: [Select]
Keils-iMac:~ keiljr$ /Applications/Attract.app/Contents/MacOS/attract
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.app/Contents/MacOS/attract
  • ~/.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/Attract.app/Contents/MacOS/attract -h
Attract-Mode v2.2.0-3 Copyright (c) 2013-2016 Andrew Mickelson
Usage: /Applications/Attract.app/Contents/MacOS/attract [option...]

ROMLIST IMPORT/BUILD OPTIONS:
  -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
  --full
     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

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

OTHER OPTIONS:
  -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/Attract.app/Contents/MacOS/attract -c /Users/keiljr/.attract
Code: [Select]
Keils-iMac:~ keiljr$ /Applications/Attract.app/Contents/MacOS/attract -c /Applications/Attract.app/Contents/MacOS/attract /Users/keiljr/.attract
Code: [Select]
Keils-iMac:~ keiljr$ /Applications/Attract.app/Contents/MacOS/attract -c /Applications/Attract.app/Contents/MacOS/attract;/Users/keiljr/.attract

12
General / Help launching attract mode on boot (windows 10)
« on: February 09, 2017, 05:36:10 PM »
I used the following steps to launch apps on boot:

* Open "mmc".
* Select File -> Add/Remove Snap-in.
* Select "Group Policy Object Editor" and then click "Add".
* Click the "Browse" button in the wizard window.
* Click the "Users" tab in the new window that popped up.
* Select the current user you set up to automatically log in and use for your MAME arcade machine.
* Make sure the checkbox in the wizard is unchecked.
* Click "Finish".
* Click "Ok" in the "Add or Remove Snap-ins" window.
* In the User Configuration -> Administrative Templates -> System folder, open "Custom User Interface".
* Select the "Enabled" radio button in the "Custom User Interface" window.
* Under "Options" it says "Interface File Name".
* Enter the path of your front end executable in the field below it.
* Click "Ok".
* Exit the Policy Editor and reboot.

It works. However, it does not work correctly with attract mode. Attract mode loads, but it goes directly to the tab menu with non of your settings loaded. If I run explorer as a new task, and click on the attract.exe it loads fine. So I figured I’d boot to a batch file that starts attract mode. Same result of being launched with no config. I copy and paste my batch file into a cmd window (with explorer launched) and confirm the same result of not loading configs.

Code: [Select]
@echo off
start C:\Arcade\attract\attract.exe

Stumped. Whats going on here?

13
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.

https://github.com/keilmillerjr/debug-plugin

It would be cool if I could have calls in the layout to the plugin class. I could then do on screen debug printing. Mac build has an issue with paths when running from terminal (when calling for a module from a layout within the ~/.attract location, it doesn’t look within the app package location), which means I have to run the package with no terminal.

Any ideas of what else to include in the debug plugin?

UPDATE:

I added a module!

https://github.com/keilmillerjr/debug-module

14
Scripting / Move game selection like a menu
« on: January 28, 2017, 06:27:39 PM »
I’m looking to have some objects on screen operate as such in my x’s and o’s. Numbers are list entry. O is a selected game. Any insight?

1 2 3 4
O x x x

->

1 2 3 4
x O x x

->

1 2 3 4
x x O x

->

1 2 3 4
x x x O

->

2 3 4 5
x x x O

<-

2 3 4 5
x x O x

15
Scripting / using mame shaders in attractmode
« on: November 13, 2016, 06:51:59 AM »
Using mame shaders in attractmode could create uniformity.

https://github.com/mamedev/mame/tree/master/bgfx

It looks like when you use a chain, mame passes corresponding json variables to a precompiled binary.

http://www.sfml-dev.org/tutorials/2.0/graphics-shader.php

It looks like smfl only supporrs vert and frag glsl shader files. Where is mame have uncompiled files? Do we have to decompile?

Pages: [1] 2