Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up --- Bug Reports --- Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Introducing arcadeEIP  (Read 4640 times)

0 Members and 1 Guest are viewing this topic.

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Introducing arcadeEIP
« on: May 28, 2021, 09:01:34 am »
This post is to announce a little program called arcadeEIP.  It's an emulated game switching program that I wrote primarily to support what I guess would be best described as a live attract mode; but it adds some extended launch capabilities and a minimalistic game menu for quick game switching and favorites management too. Since its new and probably buggy, I'd love to have some folks test it out.

I posted a video here to introduce it:



Description:
arcadeEIP (arcade emulator-integration player) is a live-style game switcher designed expressly for dedicated arcade cabinets that play emulated games.  Unlike conventional front-ends or launchers, the focus is on ensuring that a live game is always running and ready-to play; and game selection is either opportunistic by playing whatever game is currently displayed on the screen, or deterministic by either pressing a hot-key or using a "quick-switch" menu. 

Underlying these features, arcadeEIP offers a launch engine capable of extended features, such as native support for multiple parallel versions of emulators such as MAME; a custom rules engine; individual game re-directs and overrides via sidecar files; system aggregation, and more. All the while supporting the ability to launch games using one simple and common command line instruction format.

arcadeEIP may be used with or without a conventional front-end depending on operator preference.

Here's are some quick-start instructions for MAME 1.72+ users (read docs in the \Docs folder for more information):

1. Unzip everythng to a folder called, say, \arcadeEIP
2. At a command line, run: eip.exe -createcfg
3. Edit the [System_mame] exe_path= setting in the resulting arcadeEIP.ini file to point to your mame exe.
4. You can also run eip.exe -createcfgexample to get a commented version of the .ini file.
5. Start by using a command line such as this, "eip.exe mame galaga"

https://1drv.ms/u/s!ArCGq1gvf0jkhckGqjeOlXs2W3u4Iw?e=PjfKtO
« Last Edit: May 31, 2021, 01:58:54 pm by gildahl »

Raktageno

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 90
  • Last login:June 07, 2021, 12:06:20 pm
  • Witty Comment!
Re: Introducing arcadeEIP
« Reply #1 on: May 28, 2021, 11:24:12 am »
This looks really well done. I'm wondering if it would work for my current project whose focus is minimalism. That is to say a small list of only MAME titles, one simple frontend, minimal buttons on control panel (joystick, trackball, three main buttons, pause/exit button, and p1 and p2 buttons), and a dynamic marquee. Without having done more research, I would assume that the dynamic marquee is part of the frontend. Would EIP support this?

Additionally, this appears to require command line entry. For an end user experience, is this necessary? I would not want players requiring keyboard access.

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #2 on: May 28, 2021, 01:11:31 pm »
It sounds like a potentially good use case for arcadeEIP, since it does take a decidedly minimalistic approach--and if it is just mame, it should be quite simple to configure.  By a dynamic marquee, I'm assuming that you mean you'll have a separate screen in the marquee area of the cabinet.  I didn't test anything like that, but I suspect you could do this using a runapps configuration.  I could certainly help you out to see how best to handle that.

Regarding command-line entry, that's just how you start it up (like any app really).  You can either start it with a specific game from a command prompt, windows shortcut, or from any other piece of software that can run a command-line; or you can launch it with no game specified in which case it will launch with a "seed" game.  From there it will run and remain resident for as long as you like, auto-switching your game list (if you have that turned on) or allowing users to switch games on-demand using either hot keys on your control panel or via the quick-switch game menu--which is essentially, a very minimalistic front-end (or perhaps "back-end" would be a better term for EIP).  There is absolutely no requirement for users to have keyboard access since all essential functions can be mapped to a control panel.
« Last Edit: May 28, 2021, 01:21:19 pm by gildahl »

Raktageno

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 90
  • Last login:June 07, 2021, 12:06:20 pm
  • Witty Comment!
Re: Introducing arcadeEIP
« Reply #3 on: May 28, 2021, 01:24:47 pm »
Now I am enticed. You are correct about the dynamic marquee. I have done no research on it, but my current project is essentially copying this one. The creator of that project notes Attract Mode, HyperSpin, or BigBox all have that ability, and I believe they ended up using BigBox. My current progress will require determining how to make that marquee happen and the dimensions of the display to allow me to complete cutting and assembly.

I would like simplicity in startup, meaning when the machine is powered, it would load directly to either frontend or the seed in attract mode, which sounds doable with your architecture. I really like your focus on attract mode.

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #4 on: May 28, 2021, 03:10:28 pm »
Yup, I see.  Cool.  So no support for dynamic marquee specifically at the moment, but would be a nice feature to add--I can think of a couple ways I could probably integrate that capability.

Raktageno

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 90
  • Last login:June 07, 2021, 12:06:20 pm
  • Witty Comment!
Re: Introducing arcadeEIP
« Reply #5 on: May 28, 2021, 04:00:51 pm »
Consider me on board. Depending on your timeline, I could find myself using your software solely. I'd be interested in helping test as well. Since my current project is waiting on software to move forward, I may go with an existing frontend with that support, but I already feel like this isn't my last.

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #6 on: May 28, 2021, 05:44:00 pm »
Try setting up the software as-is, and if you're able to get that working, let me know and we can see what to do about the dynamic marquee.  I just wrote a proof-of-concept function that can display and switch marquees, so it makes me think this will be fairly straightforward.

Phreakwars

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 566
  • Last login:Yesterday at 09:50:55 pm
  • Waka-Waka
    • forum.arcadecontrols.com/index.php/topic,146325.0.html
    • My Facebook Page
Re: Introducing arcadeEIP
« Reply #7 on: May 28, 2021, 07:04:58 pm »
This looks really nice. I can absolutely see myself using it in a countercade project I'm currently working on as I am using multiple versions of mame that I switch between. Currently doing this in attract mode which works absolutely perfect, but I like the transitioning going on here that I'm seeing. Would make easy work of v1 Pacman countercade where I'm only using 1 fire button and just the 1 and 2 player start, coin and exit. My minimalist approach that I'm taking on this project could have expanded functionality with this. Good work. One thing though, I'm using Mame 0.111, is that too old? Some significance in the versions? Could you explain that.

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #8 on: May 28, 2021, 08:00:19 pm »
MAME versions less than .172 should work fine.  The main reason for advising MAME 172+ is that it supports the -keyboardprovider dinput parameter, which permits sending the preferred exit and pause commands to MAME (and possible future enhancements).  For earlier versions, in arcadeEIP.ini, you'd need to remove the -keyboardprovider dinput switch and set map_exit={EndProc} which terminates the process to exit and map_pause={PauseProc}, which does a synthetic pause--which are slightly less elegant.

If you mix versions below .172 and above, then the recommended way to handle this is to leave the main arcadeEIP.ini folder with the default settings (i.e. with the settings for .172+), and create a partial arcadeEIP.ini file that you drop in in your (lower than .172) MAME root folder(s).  The partial .ini file will specify settings to override when running games from that rev.  An example of the contents of a partial arcadeEIP.ini file would be:

[System_mame]
param_list=[rom_name] -nowindow -joy -skip_gameinfo -autosave -nosleep -priority 1
map_exit={EndProc}
map_pause={PauseProc}

Phreakwars

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 566
  • Last login:Yesterday at 09:50:55 pm
  • Waka-Waka
    • forum.arcadecontrols.com/index.php/topic,146325.0.html
    • My Facebook Page
Re: Introducing arcadeEIP
« Reply #9 on: May 28, 2021, 09:37:42 pm »
Oddly enough, I understood exactly 100% what you are saying, and thank you. I'll play around with it sometime when I'm not busy.

EDIT: I guess I do have 1 question. How does the software differentiate between a paused game and one that is over or say.. I'm using the pacman hiding spot to take a bathroom break, will the software think the game is over?
« Last Edit: May 28, 2021, 09:42:26 pm by Phreakwars »

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #10 on: May 28, 2021, 11:16:50 pm »
If you pause a game, then the scheduler will be suspended until you un-pause, so no game switching will occur while you're paused.  However, if you want to suspend the scheduler without pausing the game, you can just do a short press of the exit key to bring-up the quick-switch overlay menu.  When you do this, the game continues to run normally behind the menu; so that's what you would do if you parked Pac-Man in his safe spot and didn't want game-switching to occur while you were taking a break.  When you return, you'd just do another short press of the exit key to dismiss the menu, then continue your game.

Phreakwars

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 566
  • Last login:Yesterday at 09:50:55 pm
  • Waka-Waka
    • forum.arcadecontrols.com/index.php/topic,146325.0.html
    • My Facebook Page
Re: Introducing arcadeEIP
« Reply #11 on: May 28, 2021, 11:22:26 pm »
Can that be set on a per game basis? Or would doing so affect the attract screen's game demo transitions? I mean if you have say just the pac man games which have this set to not go back to the demo when in the hiding spot, will the software use that game's settings during the demo and lock itself on that game rather then switch to a game that doesn't utilize this? Obscure question I'm sure, but better to ask about bugs or bring them up to be worked out before stepping to far into it, thanks.. great work BTW!!

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #12 on: May 29, 2021, 12:16:30 am »
This behavior is not game specific.  If auto-switching is turned on, then game switching will always occur unless (a) the game is currently paused, or (b) the overlay menu is displayed, or (c) controller input was detected within a specified amount of time prior to the next scheduled switch time (a period called the delay time).  You can always increase the timer/delay values to tolerate longer periods of inactivity while a game in session.

You can find a detailed description of how this works if you look at pages 9 and 10 of the Configuration Reference Guide in the \Docs folder; specifically, read how the delay= and timer= settings work. Making these settings game-specific could probably be added, but its not a feature at the moment.
« Last Edit: May 29, 2021, 07:40:37 am by gildahl »

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #13 on: May 29, 2021, 05:59:55 pm »
Consider me on board. Depending on your timeline, I could find myself using your software solely. I'd be interested in helping test as well. Since my current project is waiting on software to move forward, I may go with an existing frontend with that support, but I already feel like this isn't my last.

Well, turns out I had about 80% of the infrastructure for dynamic marquees already, so I was able to add this feature today.  It seems to work quite well.  If you would like to test, let me know and I'll do a release build that includes it.  The way it works is that you specify a path to your marquees in the [Global_Assets] section of the ini file.  Then, prior to launching eip.exe, you run a separate executable called marquee.exe that binds itself to a monitor that you choose.  From that point it just works, with marquees being automatically displayed on the marquee monitor as each game is run (if a marquee is not found for a game, it will look for one named for the system, like mame.png; and if that is not found, it will look for one called default.png).  You may also adjust certain values such as position/size on screen, interpolation mode, etc.
« Last Edit: May 30, 2021, 05:07:27 pm by gildahl »

Raktageno

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 90
  • Last login:June 07, 2021, 12:06:20 pm
  • Witty Comment!
Re: Introducing arcadeEIP
« Reply #14 on: May 29, 2021, 06:18:18 pm »
Well goodness that is amazing! I'll see about testing this weekend. I've spent the last several hours fighting media server issues.
« Last Edit: May 29, 2021, 07:04:49 pm by Raktageno »

Raktageno

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 90
  • Last login:June 07, 2021, 12:06:20 pm
  • Witty Comment!
Re: Introducing arcadeEIP
« Reply #15 on: May 31, 2021, 11:57:00 am »
I'm finally to a point of being able to start setting this up, but the GDrive link isn't cooperating. I'm getting a ToS error on my PC and a connection error on mobile.
« Last Edit: May 31, 2021, 12:49:31 pm by Raktageno »

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #16 on: May 31, 2021, 02:03:29 pm »
I just updated the link to use OnDrive.  Try that.  Let me know if it works.

https://1drv.ms/u/s!ArCGq1gvf0jkhckGqjeOlXs2W3u4Iw?e=PjfKtO

Raktageno

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 90
  • Last login:June 07, 2021, 12:06:20 pm
  • Witty Comment!
Re: Introducing arcadeEIP
« Reply #17 on: May 31, 2021, 06:55:36 pm »
Okay, three days and two machine rebuilds later, I've got arcadeEIP running. It seeds to Ms. Pacman for me since I've got room cleaning to do.

I've hit a bug. The period key doesn't move to the picker, but does exit on hold. Changing the magic key in the .ini file to something else (in my case, p) impacted pause, but I still can't get to the picker. I did notice the picker would flash as it was exiting. I'll be happy to provide any system details you like.

Edit: my fault there. Reading through the verbose ini, I see setting pause to "p" could confuse things. Still, no go on the magic key.
« Last Edit: May 31, 2021, 07:33:27 pm by Raktageno »

gildahl

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 139
  • Last login:August 01, 2021, 10:31:32 pm
Re: Introducing arcadeEIP
« Reply #18 on: May 31, 2021, 08:15:27 pm »
Just sent you a pm.

Raktageno

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 90
  • Last login:June 07, 2021, 12:06:20 pm
  • Witty Comment!
Re: Introducing arcadeEIP
« Reply #19 on: June 07, 2021, 09:50:52 am »
Note to all: I have been working directly with gildahl to troubleshoot my issues which appear to be primarily user error. I can attest that this program is simple to operate and lightweight. There is a slight learning curve, but if you can configure MAME you can do this. I recommend it.