To give Hyperspinners more flexibility, here is Event Dispatcher System (EDS) that allows HS to launch as many external applications on HS events that you like. This should be beneficial for the community where basically, this is a tool to extend Hyperspin possibilities and let users manage multiple applications on HS events.
EDS NEWS UPDATE - 2016/12/30 - EDS (Beta Release version 0.8.1) is now ready for download. ** Need advanced testers / testing **
Bug reported by Scoodidabop for system & rom parameters when it have embedded space(s). EDS was not working properly in this situation within 0.8.0 . Problem now fixed.
Please do a backup of your previous EDS files.
Provide edit rights to your new EDS folder.
Rename "EDS_LaunchModule (Rename me!).exe" to "LedBlinky.exe"
Configuration Process:- Pipe does not launch [application].exe anymore, only CLI and Pipe (CLI) mode does. To continue using pipes within Hyper Marquee (recommended option) simply check "Launch Application on Front-End start" checkbox within EDS GUI configuration module, put '1' in the Open filter and '2' in the Close filter
EDS NEWS UPDATE - 2016/12/26 - EDS (Beta Release version 0.8.0) is now ready for download. ** Need advanced testers / testing **
What's New; (a short video for 'dummies' should come soon!!)
EDS has change his business logic (major change approach). EDS is now persistently open (look in tray) during your gaming Front End session. This will prevent EDS to open and close (load/save & reload itself) at each HyperSpin/EDS event. It should also prevent EDS settings file to get corrupted sometimes. It should be faster to respond, but taking a little more memory and CPU during gaming (less than 1% more).
Add Key Commander embedded application to launch & close applications on dedicated key stroke. Useful to custom/ad-hoc speech, High Score and control panel display!
Add a check box to decide if the mouse pointer will be sent to screen Top Left corner at EDS start up or not.
Installation & Instructions (quick one from Sevenseal)
NB: key requirement; install .Net framework 4.5.1 or higher
1. Make sure that system users have read, write & execute access of the EDS folder and the content (Windows setup 10 behavior). (right click on folder go to properties/security)
1.1.: Within your EDS folder, rename "EDS_LaunchModule (Remane me!).exe" application to "Ledblinky.exe" (mostly for HS users)
1.2.: Configure and enable EDS within your favorite Front End. Within HyperHQ.exe goto the "Tools" tabs, set the path for EventDispatchSystem root folder and enable LEDBlinky checkbox.
2.: Run "HyperSpinEventIntegrator.exe" (EDS GUI) to configure your external apps that you would like to use. (see posted video at thread #308 for more instructions)
2.1: Application (first table column): Specifying application .exe directory location
2.1.1: Example path for Application
- LEDBlinky - C:\Hyperspin\LEDBlinky\LEDBlinky.exe (reference to the real ledblinky if you have the hardware)
- HyperMarquee - C:\Hyperspin\HyperMarquee\Hyper Marquee.ex
- HS FileWatcher - C:\Hyperspin\EDS\HSfileWatcher\HSFileWatcher.exe (not needed in HS 1.4 or higher)
2.2: IPC Methods (3) - CLI, Pipe & Pipe (CLI) - See application guide for more explanations.
2.3: CBR: Close Before Rerun, avoid using with IPC Methods: Pipe or Pipe (cli). But it must be checked for CLI applications.(Excepted for Leblinky.exe)
2.4: Parameters: Inputs are place in this order [event], "[system]", "[game]" or [ledblinky] or blank for no parameters used.
2.4.1: Event ID (Ledblinky compatible)
Front-End Start (1)
Front-End Stop (2)
Game Launch (3)
Game Stop (4)
Screensaver Start (5)
Screensaver Stop (6)
System Select (7)
List Change (8)
Game Select (9)
Animation Stop (11)
Load MAME Controller File (12)
Reset Ultrastik 360 (13)
2.5: Pipe ID : For HyperMarquee, this is the name title of the named Pipe to send the message between EDS and the remote application (HyperMarquee).
2.6: Event Filter : The specified events list accepted parameters to launch the application. input table refer to 2.4.1
2.7: Close Filter : This feature allows closing the application using its Process ID (PID) for application that does not manage closing by themselves. input table refer to 2.4.1
2.8: System Filter : This feature allows restricting the remote application from being launched by all System (emulator) but the defined ones.
the remaining setting are self-explain
3.: Configure and enable EDS within your favorite Front End. Within HyperHQ goto the "Tools" tabs, set the path for EventDispatchSystem root folder and enable LEDBlinky.
~Settings: HyperMarquee in conjonction with EDS can be launched different ways according to what you are trying to achieve. As you know, there are 3 IPC methods - CLI, Pipe and Pipe (CLI) - that you can used. Out of those 3, 2 are workings without issues, but could present some minor limitations depending on what you are trying to do. For myself, I am always using 'Pipe' for HyperMarquee and not using CLI or Pipe (CLI) methods. I strongly recommend using 'Pipe' when calling HyperMaquee as your first pick, than CLI. Finally Pipe (CLI) may offer more flexibility with certain risks/complexity. For 'Pipe' option, make sure to check the check box called 'Launch Application on F.E start'. This checkbox will launch applications on F.E. start that has event 1 set in the Event Filter column. The 'Pipe' advantages; The fastest to launch, fastest inter-communication, and best interactivity. For all other applications that are not compatible with pipe IPC, use CLI and make sure to check the checkbox 'CBR'.
~(this is a beta evaluation version for testers only)
Please send me your comments and first impressions. (it is recommended to read the user guide first - then try, ask & comment)
Debugging and support: Thanks for your comments and involvement to make this application bug free and stable. The final release V.1.0 is coming soon, getting there. As soon as the application is fully stable (close but not 100% there yet). !!!!! If you report bugs or problems, (sometimes due to miss understand on IPC methods), please make sure that you help sevenseal and I to understand by providing very explicit information. That will save you time and save us even more time. Explicit information are; your settings file, the EDS error log file, what you are trying to achieve, and if you can (ideally), a simple video.
Special thanks to:
- Sevenseal, Brolly, Gooch, djvj for advises, support and graciously volunteer for beta testing.
- Bad Boy Billy for great inspiration and Hyperspin Frontend.
- Users! (To report bugs or improvement ideas)
- My Girlfriend France, who always supports me
Useful video from mamefan
Quick EDS video (very technical): Ok, producing videos is not my cup of tea, but I feel this short video might be useful to understand EDS core functionalities and general approach.
This is a humble video providing the basic concept of the HyperSpin Event Dispatch System (EDS). The frame rate is low and may not give you the real response time difference between CLI and NamedPipe. Volume is also a little low, my apologies.
Also, please see post #188 from Event Dispatch System threads for a quick step by step trouble shooting.
This is free and it will always be. To encourage development, you can send a donation of your choice. You can proceed with Paypal to;
- Antos (conception and development - Status: Active member)
- Sevenseal (newly added member - user support, documentation, testing, research - Status: Active Member)
EDS GUI Front-End screenshot