Jump to content
SpesoftPinballXConvert-It
headkaze

Oqqalz UltraStik Plugin

Recommended Posts

I thought I would post this here in the main forum in case you missed this great plugin by Oqqalz. Thanks alot mate we appreciate it :)

---------------------------

Since I generally do not have an original thought of my own, I decided to improve upon someone else's (Cupid's).

I have been using Cupid's UltraStik Plugin for quite some time but have not been fully satisfied with it. The configuration is cumbersome. Programs have to reside within specific directories. Plus, I did not quite have full rein over my UltraStiks within the awesome GameEx front-end. Therefore, I started coding one myself.

I now bestow upon all of you the New and Improved UltraStik Plugin which is Plug-in-Play.

Features:

  • Top 8 used joystick maps are built-in without need of external UltraMap (.um) files.
    • joy2way - 2-way horizontal joystick
    • vjoy2way - 2-way vertical joystick
    • joy4way - 4-way joystick
    • djoy4way - 4-way diagonal joystick
    • joy8way - 8-way joystick
    • joy8wayeasy - 8-way joystick with easy diagonals
    • analog - analog joystick (used for 49-way as well)
    • mouse - acts like a PC mouse

    [*]For MAME users, it automatically selects the appropriate joystick map.

    [*]Any rom's chosen joystick map can be overridden through use of accompanied INI file.

    [*]Works not just with MAME, but all configured emulators, allowing a default joystick map for each one.

    [*]Supports external UltraMap (.um) files.

    [*]Allows customization of joystick map chosen upon exit of GameEx as well as a game.

    [*]Does not require MAME to be installed at a specific location.

    [*]Does not require UltraMap unless you want to create your own specific joystick maps.

Installation:

Download and extract the PlugInUltraSkip.zip to your GameEx\PLUGINS directory. Open up GameEx's Plugin Manager and enable this plugin. For most users, this is all you need to do. For those who are picky, move on to the next section.

Configuration:

If you want to start overriding or customizing the plugin's settings, open up the PlugInUltraStik.ini file within your GameEX\PLUGINS directory and start editing with a text editor. All instructions on how to customize your settings reside within that file; so, check it out.

Any problems or questions, just let me know. B)

http://www.gameex.info/forums/index.php?sh...ost&p=28018

Share this post


Link to post
Share on other sites

Cool this sounds superb... I've been thinking of investing in a couple of these for a while now but I wasn't sure how easy they'd be to setup

Just wondering, I have a emulator set up for PC games which launches individual batch files for each game, I assume this pluggin will load the same profile for every batch file but will I be able to override the loaded profile by calling a command at the top of my batch file?

Stu

Share this post


Link to post
Share on other sites

By the way, there was some bugs in my initial release. They have been fixed and the zip file was replaced in the original post.

Share this post


Link to post
Share on other sites

You can setup different joystick mapping for each individual bat file using the PlugInUltraStik.ini file.

I am not sure what emulator you are using, but for instance, let's say it's DOSBOX and you have configured a GameEx emulator group for DOSBOX, set it's Title Text to DosBox, also set it to search for .BAT files within some directory.

Lets also say you have the following .BAT files within that directory:

Leisure Suit Larry.bat

Quake 3.bat

Star Wars Alliance.bat

Now, within your PlugInUltraStik.ini you could add the following:

[DosBox]

default=analog

Quake=mouse

Leisure Suit Larry=joy8way

Quake would get a mouse. Leisure Suit Larry would get an 8-way joystick. Lastly, Star Wars Alliance would get an analog stick because there was nothing explicitly set for it and the default for DosBox is analog.

Hope this answers your question.

PS. Please note, I found some bugs in the initial release and updated the original post.

Share this post


Link to post
Share on other sites

Thanks a whole lot for the contribution :)

I dunno I go away for a couple of weeks, and we have new cpwizard, mame compiler, new plugins. Do you guys really need me around here! :) More seems to happen when I take a back seat!

Share this post


Link to post
Share on other sites
Thanks a whole lot for the contribution :)

I dunno I go away for a couple of weeks, and we have new cpwizard, mame compiler, new plugins. Do you guys really need me around here! :) More seems to happen when I take a back seat!

I don't know, it hasn't felt a whole lot more busy than usual around here. I guess there have been a few releases of random stuff and Brian has been spring cleaning the pinned topics, guys have been working on the databases and everythings been running smooth as usual. There is always something interesting happening on this forum ;)

Share this post


Link to post
Share on other sites

Here is a question for oqqalz from FCAL:

Your plugin was recommended to me since I was trying to use the pre-execution and post-execution scripts to run ultramap and dynamically send maps to my UltraStiks.

I have ran into an issue.

When I manually used "ultramap.exe [CONTROL]-ultramap.ugc /flash /logerrors um-errorlog.txt" Control would be set to "5" which is a 4-Way Diagonal map.

This worked GREAT with Q-Bert and Congo Bongo (2 favorites). I was able to go into the game and set the controls in that game with my joystick (in a normal mount position) to NW, NE, SW and SE and everything worked fine.

When I use your plugin, all other games so far appear to work properly, except my 4-way diagonal games. No matter if I use your built in diagonal map or if I put my own .um in the GameEx Plugin Dir, the joystick map alwyas needs to be N, S, E, W and the joystick has to be physically rotated 45 deg. to the left.

I tried debug mode and everything I could, but I cannot get a true diagonal map.

I am using GameEx 8.88 and MAME .116 command line.

Please advise.

Thank you.

-Alan Y.

Share this post


Link to post
Share on other sites

Should I and is it ok to - include this with the GameEx install? I dont have the hardware to check it out, but it sounds right on the mark.

Oqqalz if you want a free gameex license/s or refund etc please do drop me a mail. Anyone who contributes like this should not have to pay for GameEx.

Cheers.

Tom.

Share this post


Link to post
Share on other sites
Should I and is it ok to - include this with the GameEx install? I dont have the hardware to check it out, but it sounds right on the mark.

Oqqalz if you want a free gameex license/s or refund etc please do drop me a mail. Anyone who contributes like this should not have to pay for GameEx.

Cheers.

Tom.

Tom,

I would vote to include this as an included plugin. I am sure Oqqalz can get this issue worked out, but this would save everyone with the Ultimarc UltraStik 360 a LOT of work. This means that 2 UltraStik joysticks can now take the place of 6+ joysticks by dynamically loading the appropriate map for each game before they start, and then resetting the joystick to a proper 4-way for GameEx navigation.

This is VERY nice!

-Al Y

Share this post


Link to post
Share on other sites

This looks great, I have been looking for a plug-in for this. I actually wrote a small script to create the 6,000 some odd ugc files so as to be able to map using a shell command from Gameex. This actually works great and now that I have the files, adding them isn't a problem but an automated plug-in is by far the way to go. Thanks for this!

One note to the prior poster, I recently upgraded to mame 119 and am not able to send multiple joystick directions to a 4-way diagonal game. Whether my sticks are in analog,8-way or 4-way diagonal, the game only sees one of the directions. This is only the case with all of the q-berts ( I just upgraded and discovered this last night) So I am not sure this is the plug-in, it could be Mame. Does anyone know if the Mame devs did something to these 4-way diagonal games? I could see that all 4-way input games may not even accept the multiple signals now. Which would only really be a problem for the diagonal games that commonly get mapped to two directions being input at once. Since they really are only 4 way games with the joystick rotated, I could foresee this being a problem when trying to use a diagonal only map.

Can someone tell me how this plug-in maps for q-bert? And are you able to program qbert in Mame119 with this map?

Share this post


Link to post
Share on other sites

I will do some more testing tonight on Q*Bert on Congo Bongo. I will manually play with the setControls.exe and see if the bug lies in it or within my plugin.

Share this post


Link to post
Share on other sites
I will do some more testing tonight on Q*Bert on Congo Bongo. I will manually play with the setControls.exe and see if the bug lies in it or within my plugin.

Oqqalz,

There has been mention of MAME being the culprit. It might be possible to check the MAME version using the variable set in the GameEx config and have the plugin act accordingly. I am using GameEx 8.88 and MAME .116. I am available this evening if you would like me to do any validation / testing.

Thank you.

-Al Y.

Share this post


Link to post
Share on other sites

Wouldn't a Diag4way.um like the following work?

MapFileFormatVersion=1.0

MapSize=9

MapRow1=N,N,N,N,*,E,E,E,E

MapRow2=N,N,N,N,*,E,E,E,E

MapRow3=N,N,N,N,C,E,E,E,E

MapRow4=N,N,N,C,C,C,E,E,E

MapRow5=*,*,C,C,C,C,C,*,*

MapRow6=W,W,W,C,C,C,S,S,S

MapRow7=W,W,W,W,C,S,S,S,S

MapRow8=W,W,W,W,*,S,S,S,S

MapRow9=W,W,W,W,*,S,S,S,S

Share this post


Link to post
Share on other sites

I tried my rotated 4-way diagonal using just N, E, S, and W, rather than NW, NE, SE, SW. However, it did not seem to work properly in MAME. I tried it in a text editor and it worked perfectly. I was able to scroll up-down-left-right using diagonals on the U360.

I did some research, could this be related?

Share this post


Link to post
Share on other sites
I tried my rotated 4-way diagonal using just N, E, S, and W, rather than NW, NE, SE, SW. However, it did not seem to work properly in MAME. I tried it in a text editor and it worked perfectly. I was able to scroll up-down-left-right using diagonals on the U360.

I did some research, could this be related?

I will check. I know that when I used the native 4-Way-Diag, I was able to go into the controls on Qbert & Congo Bongo and set the 4 directions to something like...

Up = Joystick X + and Joystick Y -

Down = Joystick X - and Joystick Y +

Left = Joystick X - and Joystick Y -

Right = Joystick X + and Joystick Y +

I was able to get a true 4-Way-Diag with a straight mounted joystick when setting the map with the GameEx "ShellBeforeStart" function. I will try the text editor now....

Share this post


Link to post
Share on other sites
I will check. I know that when I used the native 4-Way-Diag, I was able to go into the controls on Qbert & Congo Bongo and set the 4 directions to something like...

Up = Joystick X + and Joystick Y -

Down = Joystick X - and Joystick Y +

Left = Joystick X - and Joystick Y -

Right = Joystick X + and Joystick Y +

I was able to get a true 4-Way-Diag with a straight mounted joystick when setting the map with the GameEx "ShellBeforeStart" function. I will try the text editor now....

Oqqalz,

I just tried using a new 4-way-diag map (NW, NE, SE, SW) and it did not work. I am not sure if in the PlugInUltraStik.ini file I should use only the name of the map or [mapname].um... so I tried both. In both cases, I started Qbert and went into the game controls. When I tried to set 'P1 Up', it only allows "J1 Y Axis +" (or a similar 1 axis trigger). When I had the map working with the UltraStick (not using plugin)... it let me set it to "J1 X Axis - and J1 Y Axis +" which gave me true diagonals.

NOTE... a few days ago when I was playing with the UltraStik maps (native)... I noticed that if I renamed the map, it did not work. I did not troubleshoot this any farther and just used the native filenames. Could there be an issue with sending the maps to the joystick??

-Al Y

Share this post


Link to post
Share on other sites

In the PlugInUltraStik.ini file you do have to specify the .um extension if you are using an external file.

As for this problem, I haven't solved it either. I manually ran the setcontrols.exe without using GameEx using the internal diagonal joystick map and a the rotated N-E-S-W version. Both reacted as they should within a text editor for controlling the cursor. I assume the programming of the joystick is working just fine as it works for all other joystick maps, including mouse.

I ran out of time tonight (because I was watching Dallas Cowboys) and did not get to the root cause. I will try some more attempts tomorrow working with manually setting the joystick, debug mode, and testing within MAME again.

Share this post


Link to post
Share on other sites
In the PlugInUltraStik.ini file you do have to specify the .um extension if you are using an external file.

As for this problem, I haven't solved it either. I manually ran the setcontrols.exe without using GameEx using the internal diagonal joystick map and a the rotated N-E-S-W version. Both reacted as they should within a text editor for controlling the cursor. I assume the programming of the joystick is working just fine as it works for all other joystick maps, including mouse.

I ran out of time tonight (because I was watching Dallas Cowboys) and did not get to the root cause. I will try some more attempts tomorrow working with manually setting the joystick, debug mode, and testing within MAME again.

Thank you for clarifying about the .um file... the comments in the .ini are not very clear on this.

Another point to note is that when I have debug mode running, I highlight Qbert in GameEx so the dialog box pops up in the lower right, but it shows joy4way. I select Qbert, the map is not loaded (normal from your documentation). When I exit Qbert and GameEx appears, for a split second, I see the dialog in the lower right show djoy4way... or the other map I created.

Is it possible to set the personality of the dialog box so one does not have to hit a key to make it go away?? Can you maintain the controls for the GameEx screen and any game you have highlighted, the dialog just shows the map, but does not require or use any interaction??

Share this post


Link to post
Share on other sites
Thank you for clarifying about the .um file... the comments in the .ini are not very clear on this.

Another point to note is that when I have debug mode running, I highlight Qbert in GameEx so the dialog box pops up in the lower right, but it shows joy4way. I select Qbert, the map is not loaded (normal from your documentation). When I exit Qbert and GameEx appears, for a split second, I see the dialog in the lower right show djoy4way... or the other map I created.

Is it possible to set the personality of the dialog box so one does not have to hit a key to make it go away?? Can you maintain the controls for the GameEx screen and any game you have highlighted, the dialog just shows the map, but does not require or use any interaction??

Yoy will have to buzz Tom about a MsgBox that will timeout without requiring a keypress. I can only use what is available to me, and I do not believe that feature is.

Share this post


Link to post
Share on other sites
Yoy will have to buzz Tom about a MsgBox that will timeout without requiring a keypress. I can only use what is available to me, and I do not believe that feature is.

Done. Asked for 3 functions

1. Pop-Up require contol (current)

2. Pop-Up time based no control

3. Pop-Up allow menu to have control and refresh (the best one for this)

Link to Feature Request:

http://www.gameex.info/forums/index.php?s=...ost&p=28518

Share this post


Link to post
Share on other sites

Indeed the Mame devs changed qberts inputs in 118 so as to only allow a single directional input in the default map.

By creating an ultramap with the diagonals mapped to ordinals (essentially a copy of the 4-way diagonal but replacing the upper right with UP the lower right with RIGHT, Lower Left with DOWN and upper left with LEFT) I was able to program and play the qbert games correctly. Hopefully this saves any time and hopefully is an easy addition to the plug-in.

Share this post


Link to post
Share on other sites
Indeed the Mame devs changed qberts inputs in 118 so as to only allow a single directional input in the default map.

By creating an ultramap with the diagonals mapped to ordinals (essentially a copy of the 4-way diagonal but replacing the upper right with UP the lower right with RIGHT, Lower Left with DOWN and upper left with LEFT) I was able to program and play the qbert games correctly. Hopefully this saves any time and hopefully is an easy addition to the plug-in.

Oqqalz is updating his plugin for the UltraStik. He created a new map using the method you mentioned. I tested the new beta which adds this other diagonal map. I validated this using MAME .116 with Qbert and Congo Bongo. This worked just fine. I would anticipate that he is going to post the updated plugin soon (I don't have the ETA). I went into each games controls and used Up=J1upper right, Down=J1 lower left, Left=J1 upper left, Right=J1 lower right. Works great!

Share this post


Link to post
Share on other sites

does anyone know (short of making a wrapper setControl.exe) how to disable mouse mode in this plugin?

i find that this plugin creates problems with golden tee, etc (trackball games) .. the joystick mouse emulation ends up making Joy button 1 & 2 map to button 1 & 3 (since they end up being the 3 mouse buttons, joy1/2 = mouse 1(left)/3(right)) .. and as a side effect .. makes it so its impossible to hit left/right to get past the 'Type OK or move your joystick left/right' screen that comes up before some games.

Share this post


Link to post
Share on other sites
does anyone know (short of making a wrapper setControl.exe) how to disable mouse mode in this plugin?

i find that this plugin creates problems with golden tee, etc (trackball games) .. the joystick mouse emulation ends up making Joy button 1 & 2 map to button 1 & 3 (since they end up being the 3 mouse buttons, joy1/2 = mouse 1(left)/3(right)) .. and as a side effect .. makes it so its impossible to hit left/right to get past the 'Type OK or move your joystick left/right' screen that comes up before some games.

Oqqalz seems like a hard man to get a hold of unfortunately. The only thing I can suggest is get yourself a copy of "Mame Compiler" and apply one of the .diff files that removes the need to skip the disclaimers.

Share this post


Link to post
Share on other sites
Oqqalz seems like a hard man to get a hold of unfortunately. The only thing I can suggest is get yourself a copy of "Mame Compiler" and apply one of the .diff files that removes the need to skip the disclaimers.

yeah that would probably help with the whole "OK" situation. i'll have to check that out....i could get a nice Pentium M optimized EXE as a by-product of the process as well.... =)

but really, the thing i'm most buggered about tho is the mouse key remapping...since i use your LED plug-in the btn 1&2 light up but its actually 1&3 you have to hit....people get very confused playing bowling & golf =)

i think his plugin is calling setcontrol.exe to load the mouse map .. i think i will just have to write a wrapper for that exe using some of the tricks i have seen watching you guys (this AHK stuff is quite interesting i must say... and i thought i'd missing my shell scripts going from my linux desktops to win-xp on this cab), i can probably safely remap all calls to that w/ the mouse map to invoke it w/ the analog map with good results ... i would imagine mame wouldnt mind too much.. and that way i'd have my regular 7 gamepad buttons showing up instead of the 3 mouse buttons ...

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...