Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement "outputs" support including LED, scoreboards, motion #239

Open
UDb23 opened this issue May 26, 2018 · 10 comments
Open

implement "outputs" support including LED, scoreboards, motion #239

UDb23 opened this issue May 26, 2018 · 10 comments

Comments

@UDb23
Copy link
Contributor

UDb23 commented May 26, 2018

Is it possible to backport this function ?
Aaron Giles added new layout element component type "led7seg", which constructs a 7-segment LED in an element in a layout. This is commonly used for external score and timer displays.
See maxaflex.c for an example.
http://wiki.mamedev.org/index.php/MAME_0.107u4

It may require implementation of the .LAY overlay system (that would be fantastic!)
http://wiki.mamedev.org/index.php/Layouts_and_Rendering_for_MAME_Artwork_System

@ghost

This comment was marked as spam.

@markwkidd
Copy link
Collaborator

@grant2258 by the way twinaphex mentioned that a lot of the code in the new Cannonball core is taken from MAME and maybe there are some clues about video for us there. I haven't had time yet, been looking at input a lot. (And I don't know much about video!)

@markwkidd
Copy link
Collaborator

I do have a dream that we'll be able to draw in coder from another core or from RetroArch to help with the video code. That would be a lot easier than any of us trying to learn the video parts of the libretro API from a system that isn't working right at the moment. :|

@UDb23
Copy link
Contributor Author

UDb23 commented May 26, 2018

Understand and agree.

@ghost

This comment was marked as spam.

@markwkidd markwkidd changed the title implement "LED" support? implement "outputs" support including LED, scoreboards, motion Jan 2, 2019
@markwkidd
Copy link
Collaborator

AdvanceMAME's feature list includes "Scripts capabilities to drive external hardware devices like LCDs and lights" which provides some hope that this could be added to mame2003-plus.

The word "scripts" is a bit of a warning light because we don't have access to any scripting languages here, but that that word may be meant in different ways!

I'll also mention that there is a part of the libretro API I've never worked with for LED interfaces:

#define RETRO_ENVIRONMENT_GET_LED_INTERFACE (46 | RETRO_ENVIRONMENT_EXPERIMENTAL)
                                           /* struct retro_led_interface * --
                                            * Gets an interface which is used by a libretro core to set
                                            * state of LEDs.
                                            */

@markwkidd
Copy link
Collaborator

Hi @nayslayer I thought I'd flag this as the kind of issue you might be interested in. Happy New Year!

@janderclander14
Copy link

Hi,

I include here some information from the Mame2003-plus retropie's thread that can be of interest to support Mame outputs.

It seems the standard (non-RA) Mame v0.78 doesn't implement the output system, just lights keyboard leds via hack. According to the outputs' author, Aaron Giles, the output system was introduced in version 0.107u4 (August 2006). When specific game events occur (such as inserting a credit or receiving an impact), Mame sends a predefined signal, and the softwares that have hooked the Mame outputs (such as Mamehooker or Ledblinky in Windows or RGBCommander in Linux) redirect the signal to the physical leds. The following link explains how the output communication system works.

https://aarongiles.com/old/?p=181

It seems this ouput system seamlessly redirects keyboard leds and backdrop lights, which have been supported in much earlier versions of Mame, as outputs. For these, even "old" game drivers (prior 0.107u4) should have outputs.

More complex outputs (like force feedback effects in racing games) are only available in versions after 2006 and newer drivers that were written with the output system in place. The following posts by the developer of Mamehooker provide some info on this:

http://forum.arcadecontrols.com/index.php/topic,100880.msg1066814.html#msg1066814

forum.arcadecontrols.com/index.php/topic,101789.0/all.html

This output system remained unchanged up to version 0.169. From v0.170 to v0.187 the output system broke and was replaced by a new communication system in v0.188 til now. More information can be found in the Mame section at the homepage of the RGBCommander app:

http://users.telenet.be/rgbcommander/

Some example of games using Mame outputs and that may be used for testing are:

Many classic games, such as Galaxian, Dig Dug, Galaga or Asteroids, for which the start button blinks after inserting credits and until pushing start.

Terminator 2: leds blick when guns are fired or received impacts.

ChaseHQ: police lights blick when chase starts.

Outrun: start, brake lights and forcefeedback effects.

Ajax: bomb button lights when available

Spyhunter: backdrop lights up based on game events.

@ghost

This comment was marked as spam.

@markwkidd
Copy link
Collaborator

If there is a specific project -- which can be done with our codebase -- that includes a certain game/romset and hardware to target that would be the be way to proceed with this discussion I think.

If things aren't to that point I'm glad to leave this issue open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants