When using Hyperspin as frontend to launch Mame you can use this small application to configure your UltraSticks differently depending on the selected game. After you exit the game HyperMap wil set the UltraSticks to a specific mapping to correctly control HyperSpin again.

Extract the zip file to a folder. It contains the application, an initial configuration file and a folder with some default mapping configurations (2-way, 4-way, 4-way diagonal and 8-way). You should change your Hyperspin configuration in HyperHQ to call HyperMap.exe instead of your Mame executable. Set execution to 'normal'. Leave the rest as is. HyperMap will use the game parameter to determine which map to download to your UltraSticks and then launch Mame with the parameters configured in HyperHQ.

As of V0.09 you can also use HyperLaunch. For this you need to copy the HyperMap files to the HyperSpin folder, select HyperLaunch mode both in HyperHQ and in HyperMap. HyperMap will rename HyperLaunch.exe to HyperLaunch2.exe, rename itself to HyperLaunch.exe so HyperSpin thinks it calls HyperLaunch but in fact first calls HyperMap which does it's magic before calling HyperLaunch. Do you still follow?

If you launch the application without parameters (by double clicking in explorer) you get a dialog where you can configure the paths. You can also configure the default configuration (used for games not specified in the configuration file) and the configuration you want to be applied after the game ends just before returning to HyperSpin:

With this version you can also launch as many custom (non-MAME) games as you want. I like these games like Fix It Felix Jr, Space Commander and Flappy Bird (Arcade version) to appear in my MAME wheel although they are not running in MAME. Just Add an entry in HyperSpin's MAME.xml with a fake romname. I use 'fixitfelixjr', 'spacecommander' and 'flappybird'. That will trigger HyperMap to launch the configured version of the games.

You can let MAME create a list of all supported games with their original joystick directions. Use the command line parameter -listxml to generate this 130MB file. HyperMap can parse this file to populate the games in the configuration file. Only the non-8-way games are added to the configuration file. I added a full MAME V150 config in the zip.

You can even parse the games configured in HyperSpin afterwards to only have the games you are running in the configuration file!

You can let HyperMap show instruction cards before launching the games. You can specify the time the card is shown or set it to infinitive. You can use any button to stop showing the button and launch the game. You can use the MAME pause button (the P key) to keep showing the instruction cards until you press a button / key.

You should create Instruction Cards using the MAME game name and save as *.jpg. I added 2 example Instruction cards:

You can also configure your game settings manually in HyperMap.cfg. By default 8-way mapping is used for all games. You should list the ones you want to use another mapping for. I already put some examples in the default configuration file. Use the MAME game names to specify them.

I added a modified 4-way diagonal mapping to better control Q-bert. The one which comes along with the UltraMap application is in fact a 8-way mapping which does not work if you use your UltraSticks digitally, e.g. use the harness to connect the UltraStick to an iPAC. You actually need this '4-way rotated 45 degrees clockwise' mapping. I think Andy should bundle this one with the UltraMap application...

I added my Hyperspin themes for the homebrew games as attachments. Space Commander and Flappy Bird are pretty straightforward ones I created myself, the one for Fix It Felix Jr is quite nice. I found it somewhere floating on the interweb. The also contain the wheel images.

Games. I'm sure someone on this forum can round-up a list of game direction-mappings. All we need is the name of the game and it's number of directions (4-way, 8-way, 2-way, etc). If someone can procure that, I can drop the list into Excel, use text-to-columns, concatenate the "=" sign, add a couple quotations, and, BAM! we can probably configure a good 80% of the games (thousands of them). Perhaps this has already been done?

« Last Edit: August 23, 2013, 09:51:11 pm by EddieArcadian »

Logged

I applaud you, Leroy. That was a great finish. Not quite the ending I had in mind, but it was a great finish. You see a .45 will put an end to all this kung fu crap. All it takes is one little bullet. So take your final bow, scum sucker. ~Eddie Arcadian - Self-proclaimed Video Game King & Bruce Leroy's Arch-Rival as seen in Berry Gordy's hit movie The Last Dragon

I am still working on mine but what I did to find the directions was go here and type in the name of the game I needed. This would result in a generalized information including controller directions and how many buttons. If you could come up with an excel sheet that was a template I'm sure everyone could fill in their own games.

Also, I wonder if there is any sort of a list like this on the back end of Clrmamepro. I'm pretty sure Clrmame has the joystick directional info in it. I don't have it installed, but I wonder if it's a simple text file. If someone can put it on DropBox, I can put it in the template I made.

~Eddie A

Logged

I applaud you, Leroy. That was a great finish. Not quite the ending I had in mind, but it was a great finish. You see a .45 will put an end to all this kung fu crap. All it takes is one little bullet. So take your final bow, scum sucker. ~Eddie Arcadian - Self-proclaimed Video Game King & Bruce Leroy's Arch-Rival as seen in Berry Gordy's hit movie The Last Dragon

Also, I wonder if there is any sort of a list like this on the back end of Clrmamepro. I'm pretty sure Clrmame has the joystick directional info in it. I don't have it installed, but I wonder if it's a simple text file. If someone can put it on DropBox, I can put it in the template I made.

~Eddie A

maybe host on google docs and give write access to with anyone interested in contributing?

I asked Andy with Ultimarc the exact same question, and here was his reply...

"Mame will automatically map an analog stick to the game and this applies to the U360. But its more accurate to send maps to the stick. I should really know what, if any, front ends support auto-sending of maps. I do know that Game-Ex requested the info on this and also Mala but I have lost track of what software actually implemented it."

« Last Edit: August 30, 2013, 08:30:12 pm by EddieArcadian »

Logged

I applaud you, Leroy. That was a great finish. Not quite the ending I had in mind, but it was a great finish. You see a .45 will put an end to all this kung fu crap. All it takes is one little bullet. So take your final bow, scum sucker. ~Eddie Arcadian - Self-proclaimed Video Game King & Bruce Leroy's Arch-Rival as seen in Berry Gordy's hit movie The Last Dragon

I asked Andy with Ultimarc the exact same question, and here was his reply...

"Mame will automatically map an analog stick to the game and this applies to the U360. But its more accurate to send maps to the stick. I should really know what, if any, front ends support auto-sending of maps. I do know that Game-Ex requested the info on this and also Mala but I have lost track of what software actually implemented it."

So I guess UltraMap4Mame may become handy afterall It works fine on my Desktop PC Hyperspin setup. Once I will build my Arcade Machine back up after some final painting I will install and test it for real...

I applaud you, Leroy. That was a great finish. Not quite the ending I had in mind, but it was a great finish. You see a .45 will put an end to all this kung fu crap. All it takes is one little bullet. So take your final bow, scum sucker. ~Eddie Arcadian - Self-proclaimed Video Game King & Bruce Leroy's Arch-Rival as seen in Berry Gordy's hit movie The Last Dragon

I applaud you, Leroy. That was a great finish. Not quite the ending I had in mind, but it was a great finish. You see a .45 will put an end to all this kung fu crap. All it takes is one little bullet. So take your final bow, scum sucker. ~Eddie Arcadian - Self-proclaimed Video Game King & Bruce Leroy's Arch-Rival as seen in Berry Gordy's hit movie The Last Dragon

Thanks. I used this list to complete my UltraMap4Mame configuration file for the about 150 games I currently have configured in Hyperspin. I only added the 2/4-ways as all other will default to 8-way anyway. I attached the file for reference.

I wasn't even aware of the -listxml parameter. I tried it on my 0.148 build and it generated a 130MB XML file. Way too big to parse every time. I think I will add an option to UltraMap4Mame to extract the required directions per game from the xml file and store it in UltraMap4Mame.ini.

What should be the benifit from Controls.dat as it seems quite outdated?

I compiled my MAME 0.149 with hi-scores, no-nags and support for dkongpe (thanks for the MAME compiler HeadKaze ) and created a new listxml.

Reading and parsing this 133MB text file took my application just over 13 minutes. I ended up with over 1000 games with 2 or 4-way directions. Because my Hyperspin setup only holds about 200 games it would be nice to only list the ones actually used. So I added a parser for the MAME database from Hyperspin too which removes all non used games from the configuration. I ended up with 23 2 and 4-way games.

I finally mounted an U360 in my cabinet in progress so I could try UltraMap4Mame myself. It works just fine but...

If you launch a 2-way game the U360 is set to 2-way before MAME is launched. Seems fine. Playing the game is fine but after exiting MAME and returning to HyperSpin the U360 is still in 2 way mode which makes ik kinda hard to select another game

I created a new version which waits for MAME to finish and sets the stick to 8-way before exiting and returning to HyperSpin.

Version 0.04 released. Added support to launch your favorite Fix It Felix Jr emulator from within the MAME wheel. Added a full MAME V150 joystick directions for all games configuration. Some small improvements and cosmetic changes.

Would it be possible to add filtering of the mame XML for games that require analog stick? At least 0.03 did not support that. I even hand tweaked the config file to map to analog for light gun games, although that may not be generally desired.

Second, I'm not sure if UltraMap itself supports this, but is there any mapping that can map it to keys rather than acting as a joystick? I've been having a ton of issues with getting the Ultrastik to behave with the Hyperspin wheel and not just either not respond or spin indefinitely. Also, for some one off games using up, down, left, right rather than joystick can be convenient.

Would it be possible to add filtering of the mame XML for games that require analog stick? At least 0.03 did not support that. I even hand tweaked the config file to map to analog for light gun games, although that may not be generally desired.

Second, I'm not sure if UltraMap itself supports this, but is there any mapping that can map it to keys rather than acting as a joystick? I've been having a ton of issues with getting the Ultrastik to behave with the Hyperspin wheel and not just either not respond or spin indefinitely. Also, for some one off games using up, down, left, right rather than joystick can be convenient.

Analog sticks are not supported. Regarding the mapping: This is what I do: use the digital mode of the sticks: connect the 5 wires of the harness to the digital inputs of your iPAC. The sticks than work digitally (like any micro switch controlled stick) This way it will trigger key presses which work in every emu / frontend...

Ah, I see. One of the primary reasons I got the Ultrastik was for the analog support, so that approach won't work for me. Your program still seems to work fine in that mode -- I just added the analog mapping and manually pulled all games that had "stick" or "lightgun" as their control. Just doesn't solve the Hyperspin issue.

Sure LEDBlinky can do this as additional option but HyperMap is free, light-weighted, very easy to configure and it can add Fix It Felix Jr to the HyperSpin MAME wheel. And features will grow in time...

How is programming the UltraStik's more accurate than using Mame's built in control mapping and the Mame Joystick Map Editor? Has anyone done any actual tests to prove this theory?

I use my UltraStik digital (wired to an iPAC). I just want my sticks to "auto" switch 2-4-8 way. For digital sticks the MAME internal mapping is useless. The decision which switches are hit is already made by the stick...

I also added my Hyperspin themes for the homebrew games to the start post. Space Commander and Flappy Bird are simple ones I created myself, the one for Fix It Felix Jr is quite nice. I found it on the web.

Some people enjoy re-inventing the wheel, so there isn't any talking to them. Most of the "new" and "innovative" hyper-spin centric apps you see were first done by me over a decade ago only I made them generic so they would work with any fe, but people can't be bothered to use google I guess. (Not this particular device, but the point still stands)

I'm not knocking any of the stuff btw... it all works, and works well. I just don't understand why programmers in our hobby waste their precious time fixing problems that have already been fixed when there are so many other annoying problems they could tackle.

Advanced filtering system that can put any game from any emulator together on a single list and filter off anything based on any category. Yup DK's external listgen did that and I made it external so anyone could use it. The ability to launch problem games... yup had wrappers for that. The ability to run web-based games.... check. Pinball launchers, hacks to launch particular pc games. It's all pretty much been there, done that at this point.

Why didn't a make one to remap the U360? Because LEDBlinky beat me to it (along with a command line app) and I take my own advice.

I'm not trying to be harsh, it's just after hearing the same questions over and over for 15 years or so you'd think people would wise up. Unless it's a brand new emulator or game, your problem has already surfaced and it's been dealt with by somebody. I don't even direct people to my apps anymore, because when I do they ask me specifically how to set them up for their particular application even though they are well-documented and self-explanatory.

I just worry about you man. You are trying to make things so turn key that you've went down the "I'll support individual games automatically" rabbit-hole. That's a way to burn yourself out.

Can LEDBlinky run Fix It Felix Jr (a non MAME game) from the MAME wheel of Hyperspin?

Yes, LEDBlinky can set a map for any game you run out of Hyperspin, it keeps a custom list.

I agree with Howard that it can be frustrating to see time an effort go into something that's already been done, often times better. My bigger concern though was that it can muddy the waters for new users. When I saw this offered up as a solution in another thread with no mention of LEDBlinky I wanted to comment.

Can LEDBlinky run Fix It Felix Jr (a non MAME game) from the MAME wheel of Hyperspin?

Yes, LEDBlinky can set a map for any game you run out of Hyperspin, it keeps a custom list.

I agree with Howard that it can be frustrating to see time an effort go into something that's already been done, often times better. My bigger concern though was that it can muddy the waters for new users. When I saw this offered up as a solution in another thread with no mention of LEDBlinky I wanted to comment.

You CANT launch different executables from a single Wheel in HyperSpin using LEDBlinky. Therefore I created this. Depending on the selected game it launches mame.exe or fifjr.exe (or flappybird.exe or spacecommander.exe). I made it for myself. As I thought it would be handy for others too (as it is really easy to set up) I wanted to share it. I don't want to compete with LEDBlinky.

I really don't understand what is wrong with creating your own tool even if the functionality would already be available. It's my time. I feel I'm wasting it with defending the existence of the tool more than creating it.

Therefore I will stop this useless discussion. Use it if you want. Use LEDBlinky if you like that better. But stop wasting my time

I have to say I use this program and it's great. It's very easy to use and only tries to do one thing. I looked at LED Blinky, but there is so much to it that I didn't need, and a setup that was relatively complex.

Probably would have gone there if this didn't exist, but I'm a fan of tools that only try to accomplish one thing, and do that thing simply and well. So I think this did fill a hole. Just commenting as a grateful user.

You CANT launch different executables from a single Wheel in HyperSpin using LEDBlinky. Therefore I created this. Depending on the selected game it launches mame.exe or fifjr.exe (or flappybird.exe or spacecommander.exe). I made it for myself. As I thought it would be handy for others too (as it is really easy to set up) I wanted to share it. I don't want to compete with LEDBlinky.

Sure you can, just set it up as a separate emulator. You can run multiple emulators from a single wheel.

I really don't understand what is wrong with creating your own tool even if the functionality would already be available. It's my time. I feel I'm wasting it with defending the existence of the tool more than creating it.

Not asking you to defend anything, spend all the time you want. My initial question was simply 'why not just use LEDBlinky' a tool that already works very well for this.

I'm sorry if I offended you man, you seem to have taken our comments the wrong way.

This hobby is a massive time sink, it's a pain in the butt that way. Especially when you start getting into the programming aspect of it, you have to learn to pick and choose your battles or it'll drive you crazy. I used to write everything and anything myself... I dunno maybe I was trying to prove something? Now I just work on these obscure projects/problems that absolutely nobody would touch with a 10 foot pole but me. I've found that in the long run that's more rewarding.

I'm sure that it's great and works well. That wasn't what I meant.

I guess what I'm saying is I think you are better than somebody stuck doing grunt work. Save that stuff for someone new to programming that needs a good "first project".