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 Try the site in https mode Site News

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

  

Author Topic: Software setup and moduler CPs  (Read 1040 times)

0 Members and 1 Guest are viewing this topic.

Lilwolf

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4945
  • Last login:July 31, 2022, 10:26:34 pm
Software setup and moduler CPs
« on: January 31, 2005, 08:25:27 am »
Ok, I love to see all the moduler control panels people are showing.  the are pretty sweet!

but for my question.  How do you setup mame and other emulators to work with each orientation?

How do you setup your cabling and encoders to work with all possiblities? 

I currently have hotswap (actually... I did... but I'm rewiring and playing with a tacswitch no-plugings and haven't converted all my control panels over yet... so only 2 control panels at the moment... but I degress)... 

So for my software, I wrote my frontend to have each emulator with each game seperate for a given control panel (so only trackball games and dial games show up when playing with my trackball). 

But with a moduler control panel.  Wouldn't this be completely impossible to really setup?

It just seems like a configuration nightmare. 

I'm curious because I'm getting closer and closer to building a new mame machine... and now considering going with moduler control panels instead of full control panels. 

Samstag

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1378
  • Last login:December 16, 2016, 01:41:19 am
  • That's not a llama!
Re: Software setup and moduler CPs
« Reply #1 on: January 31, 2005, 10:53:03 am »
Are you seeing any potential problems other than how to handle the combinations in the FE?  Most of the emulators I can think of would use the same 8-way and button controls.  When you add spinners and trackballs it's more of a mame issue as I see it.  Maybe my perspective is a bit narrow since I'll probably only emulate NES in addition to mame.

As for hardware switching, I'm going with the ethernet port idea several other people have had success with.  I went a little overboard, though, since I'm using a 24-port jack panel.  I get a little crazy when it comes to designing flexibility.  For example, not only did I wire two player 1 button jacks (so I can have a single stick with righty-lefty buttons), but I also used the 3 spare conductors in my joystick ports to allow buttons 1, 2, and 3 to be part of the joystick connector.

If you want a user-friendly FE for modular panels, I can think of a couple of ideas that might be worth doing:

1) Put a tamper switch on the hinge or panel that locks the modulars in place (if any).  When the FE sees the panel open then close again, trigger a question and answer session to determine the current config.  Then present the new list of playable games.

2) Separate your available game list into "currently playable" and "playable with a swap".  Then when they select a game from the "swappable" list, show the recommended panel configuration.

I was thinking about putting together a color binder filled with the best and most popular games.  It would have a screenshot, a short blurb explaining the game, and a diagram showing the optimum control configuration.  To make it even more user-friendly I was thinking I'd color-code each of the different panels so all a casual visitor would need to do is match the colors with the diagram.

tetsujin

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • Last login:April 10, 2007, 05:51:25 pm
  • My controls will have programmable button labels.
    • My Homepage
Re: Software setup and moduler CPs
« Reply #2 on: January 31, 2005, 01:21:09 pm »
If you want your front-end to automatically switch your game list according to what controls are installed, here are a couple ways you might approach the problem.

First, there's the basic problem of letting your computer know what controls are installed.  You could do this if each control were a separate USB device with its own encoder, but that gets expensive.  A simpler way would be to use a few of your encoder's inputs to flag what controls are being connected.

One way to do that would be to give each individual control you might connect its own set of inputs on the encoder, along with one extra one to signal that the control is attached.  Another way would be to separate the available inputs into banks, and use three or four of the inputs in each bank to signal what type of control is attached to the bank (joystick, buttons, etc.)  I would probably go for the second approach, and have the banks correspond to "left-to-right" positions on the console.

I think it'd also be possible to do this with a single, specialized USB joystick encoder - set up such that any time a set of controls is attached or removed, it would signal to the computer that the USB joystick was removed, then re-connected with a new configuration.  But that's a complicated solution, since (as far as I know) there is no such pre-made encoder for modular controls available.

The front-end would then have to check the available controls, determine whether there's a reasonable mapping from the connected control configuration to the games on the list, and if so, create the mapping.  It would have to look at each game, trying to fit: like if it had two joysticks with six buttons each, it could trivially map out controls for Neo Geo games and Street Fighter variants - and it would have a few options for dual-stick games like Smash TV (either use both sticks for a single player, or use the buttons as the "second stick" for each player) One of the reasons I suggested having the banks go left-to-right is so the front-end would have an easier time mapping the controls, determining how many players can be supported, etc.

Of course, the next problem is letting the user know what the control mapping is.  A simple way to do that would be to pop up a screen when loading a game.  Ideally the screen would provide a very good representation of the control panel configuration (another reason for having the input banks be positional) with each control labeled.

Personally, if I were building a modular panel I would want it to be easy for me to change the configuration (including the control mappings for games), but I wouldn't want it to be something that the front-end would prompt the player to do.  If I had people over who weren't familiar with my system (pretty much anybody who doesn't help build it) there are two factors:

1: I wouldn't want them fiddling with my machine's innards.
2: I wouldn't want to complicate the game-playing experience for them by having a dialogue pop up saying "Open the storage door and replace this module with that module..."

For those reasons, I'd treat control swapping as strictly an administrative task.  Maybe I'd even key-lock the controls in place.  (If you approach the problem from this angle, you can use a much simpler solution: something like what Samstag suggested.  :)  But I'd make the non-playable games completely invisible from the front-end.)
« Last Edit: January 31, 2005, 01:53:42 pm by tetsujin »
---GEC

Lilwolf

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4945
  • Last login:July 31, 2022, 10:26:34 pm
Re: Software setup and moduler CPs
« Reply #3 on: January 31, 2005, 02:16:57 pm »
I was really talking in game also.  But I have my frontend handle a items (like makesure that joysticks are turned off when I'm not using them... Even though there is a joystick plugged in... this allows my aki to be plugged in without any joysticks... )

I guess here is the question... Lets say you have an 8way tron flight stick and a trackball.... You want to plug the tron stick on the right for tron... But the left side for most other flight games.   Don't you have to change the configuration of each game for that?

Or, lets say you want your 8way + 6 buttons centered when playing 1 player... But you want to move it off to the left to give room on the right for 2 player games... Or you want it far far left for 4 player games.  But in each case.. you want it to be player 1 without touching mame.

The frontend references was basically stating that I've solved the problem for hotswap in my frontend... but I don't see a good solution for moduler control panels.

Samstag

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1378
  • Last login:December 16, 2016, 01:41:19 am
  • That's not a llama!
Re: Software setup and moduler CPs
« Reply #4 on: January 31, 2005, 02:28:08 pm »

tetsujin

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 222
  • Last login:April 10, 2007, 05:51:25 pm
  • My controls will have programmable button labels.
    • My Homepage
Re: Software setup and moduler CPs
« Reply #5 on: January 31, 2005, 02:40:40 pm »
The frontend references was basically stating that I've solved the problem for hotswap in my frontend... but I don't see a good solution for modular control panels.

It's not a trivial solution because it's not a simple problem - but I believe my suggestion would do the job.

1: Provide hardware that allows software to determine how the CP is set up.
2: Provide software in the front-end that knows the requirements of each game and can determine if a particular game can be supported by the current controls, and generate control configurations.
3: Given the configurations established by the front-end, either reconfigure the game's input to match what'll be delivered by the encoder, or re-map the encoder to match the inputs expected by the game.

(2) is the hardest as far as I'm concerned.  You want the dynamic control mapping to work intelligently, but there are a lot of subtleties.  What about 4-player layouts used for 2-player games?  For a 4-player game P1 should be on the far left, but for a 2-player game P1 should be close to center.

(3) says that, yes, you essentially do have to change the config for each game - but for MAME that's easy to automate, and if you're using a programmable encoder (like most keyboard encoders, I expect) you should be able to reprogram the encoder if you need to support a game with non-remappable controls.

You might be able to avoid some of the dynamic configuration problems if you have an encoder with a sufficient number of inputs and you assert that each "bank" can only be used for a certain controller, and never change the mapping of each bank.  Then you can control how the controls are mapped by controlling where you plug them in internally.  (The plug-in ports inside needn't correspond exactly to where the control is located - though I think it's preferable to maintain that relationship.)

Personally, though, I think complication like this is best attacked with software.  It's a hell of a lot easier to implement sophisticated behavior in software than hardware.
---GEC

Paul Olson

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1235
  • Last login:June 20, 2024, 08:23:41 am
    • Paul's Arcade
Re: Software setup and moduler CPs
« Reply #6 on: January 31, 2005, 06:08:34 pm »
I haven't even started to think about this part yet.  ::)
What front end is everyone planning on using?  I'm using Ultrastyle, but I don't know if it will work for something like this.

Paul

telengard

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 784
  • Last login:August 22, 2025, 04:51:38 pm
  • Yeah, it's a classic! 21+ on BYOAC and still goin
    • S T U R C A D E
Re: Software setup and moduler CPs
« Reply #7 on: February 01, 2005, 01:22:19 pm »
I haven't even started to think about this part yet.  ::)
What front end is everyone planning on using?  I'm using Ultrastyle, but I don't know if it will work for something like this.

Paul

I use AdvanceMenu.  Works great w/ my modular setup and rotating monitor.   I have games grouped by Horizontal/Vertical and then had groups for different control configurations (single 4 way, dual 8 way, etc).
S T U R C A D E     M.A.M.E. Cabinet
http://www.briansturk.com/mame.html

Doc-

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 178
  • Last login:April 09, 2007, 01:04:51 am
  • Carpe Arcadium!
    • Doc's Modular MAME
Re: Software setup and moduler CPs
« Reply #8 on: February 01, 2005, 05:33:26 pm »
I recommend MAMEWAH along with Noname MAME (Analog mame also works fine) which provides the ability to support multiple emulators and also multiple analog devices like trackballs, lightguns, etc...

The wiring is pretty straightforward - I have jacks for joystick 1, joystick 2, buttons 1, buttons 2, one for control buttons,  plus a USB hub for analog devices.  In addition several of the ports are duplicated so I can (if needed) have more than one joystick on the same joystick port (say a 4 way and 8 way).  Detailed wiring pictures, table, color scheme is here:
    http://www.beersmith.com/mame/wiring.htm

All emulators and the IPAQ are mapped to the same MAME keyset.  When I need to change the defaults for a particular MAME game it can be easily done from the tab menu (settings for this game).  This is very straightforward to accomplish and works well since you usually use a given panel configuration for a given game.

The only hitch I have found is the "-joystick" option used when running some analog controls in MAME.  It can cause conflicts in certain situations - for example I might want it off when I run with the extra USB gamepads in 4 player mode (using joy2key).  However, MAMEWAH allows for alternate command line switches, so I just set up a separate button to run games with the "-joystick" button on.  This lets me include that option only when needed.

  I also recommend looking at http://www.screenshotarchive.com/ if you are using non-MAME emulators.  These include emulators that are (largely) remapped to support the MAME defaults (notably quit=escape!), and in most cases you can remap the remaining keys from the in-game menus to match your MAME defaults.

Doc-