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: Comtrol Response Carry-Over(Arcade & MAME)  (Read 1625 times)

0 Members and 1 Guest are viewing this topic.

Searcher7

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 177
  • Last login:June 21, 2009, 10:45:22 pm
  • I want to Build My Own Arcade Controls!!
Comtrol Response Carry-Over(Arcade & MAME)
« on: September 10, 2006, 06:48:37 pm »
I have original Millipede and Missile Command trackballs from the arcade games, as well as some spinners from Arkanoid.

I attempted to resolve an issue some years ago on this board to no avail, and thought I'd try again.

It involves "control response" and "carry-over".

I looking for the *exact* same control response in MAME that I'd get on the original arcade game.

Is this possible?

I'm not referring to changing control sensitivity in and of itself.

We need the option of practicing certain games in MAME. Then the timing/coordination of the player would have to carry over 100% when playing the arcade game, which means the control response would have to be *exactly* the same.

To accomplish this there would have to be a known value for arcade control sensitivity, and corresponding settings for that in MAME.

Does this exist?

This project involves world record attempts on arcade games, so everything has to be as close to perfect as possible.

Thanks a lot.

Darren

ahofle

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4544
  • Last login:August 30, 2023, 05:10:22 pm
    • Arcade Ambience Project
Re: Comtrol Response Carry-Over(Arcade & MAME)
« Reply #1 on: September 11, 2006, 12:05:33 pm »
There was a thread here a while back where someone compared the analog controls of several real arcade games and adjusted the analog sensitivities in MAME so they matched.  Then he posted the results here (I can't find the post though).  What he did was, for example, roll the trackball starting with your finger on the far left and go until your finger stops on the right edge and see how 'far' your crosshair moves in missile command for instance.  Then he would set the MAME sensitivity until it was identical.  Not sure if that would be accurate enough for world record attempts, but it should be close.

EDIT: found the thread (look for telegard's post):
http://forum.arcadecontrols.com/index.php?topic=23967.0

Of course there might be some differences with the version of MAME he used for those measurements, so you should probably do the comparisons yourself on the version of MAME you plan on using (assuming you have the original arcade machines).
« Last Edit: September 11, 2006, 12:11:02 pm by ahofle »

Searcher7

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 177
  • Last login:June 21, 2009, 10:45:22 pm
  • I want to Build My Own Arcade Controls!!
Re: Comtrol Response Carry-Over(Arcade & MAME)
« Reply #2 on: September 17, 2006, 10:20:28 pm »
There was a thread here a while back where someone compared the analog controls of several real arcade games and adjusted the analog sensitivities in MAME so they matched.  Then he posted the results here (I can't find the post though).  What he did was, for example, roll the trackball starting with your finger on the far left and go until your finger stops on the right edge and see how 'far' your crosshair moves in missile command for instance.  Then he would set the MAME sensitivity until it was identical.  Not sure if that would be accurate enough for world record attempts, but it should be close.

EDIT: found the thread (look for telegard's post):
http://forum.arcadecontrols.com/index.php?topic=23967.0

Of course there might be some differences with the version of MAME he used for those measurements, so you should probably do the comparisons yourself on the version of MAME you plan on using (assuming you have the original arcade machines).

Ok.

I was told that when you spin a trackball or spinner there is a voltage output of +5V to -5V(or +3V to -3V) depending on speed and direction(up/down/left/right), and the game PCB interprets the voltage to determine your direction and speed.

This was a surprise to me, because I thought that the process was digital from the encoder wheel onward.

Anyway, unlike in the actual arcade games, the MAME developers failed to put a magnitude ceiling on the max. voltage, so as a result, if the input voltage from your controller goes above what the game code can interpret you get jerky movements or a reversal of direction.

Can anyone confirm that this is what happens?

And in the interest of accuracy, shouldn't correcting this be on the MAME developer's priority list?  ;)

Darren

u_rebelscum

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3633
  • Last login:April 21, 2010, 03:06:26 pm
  • You rebel scum
    • Mame:Analog+
Re: Comtrol Response Carry-Over(Arcade & MAME)
« Reply #3 on: September 18, 2006, 02:40:47 am »
I was told that when you spin a trackball or spinner there is a voltage output of +5V to -5V(or +3V to -3V) depending on speed and direction(up/down/left/right), and the game PCB interprets the voltage to determine your direction and speed.

This was a surprise to me, because I thought that the process was digital from the encoder wheel onward.

It is "digital".  It either sends full voltage or zero voltage (two of these per axis).  The speed of the changes happen shows the speed of the spin, and the order the two signals per axis changes shows the direction.  Some can argue the signals are analog, especially on the older hardware, since the phototransistors weren't instant on/off, but they were read as if digital.  For more info, google "quadrature mouse".  AFAICT, about 95% of the arcade trackballs & spinners were/are quadrature.  The rest (mostly spinners) sent "speed and direction" signals, which just means the raw quadrature signal from the encoder sensors is translated on the sensor board.

Quote
Anyway, unlike in the actual arcade games, the MAME developers failed to put a magnitude ceiling on the max. voltage, so as a result, if the input voltage from your controller goes above what the game code can interpret you get jerky movements or a reversal of direction.

What you're talking about is "backspin", and there are many casues of it.  But not "voltage" as you were told.

Possible causes:
too fast for sensors
sensors or encoder wheel too dirty
the digital signal not "square" enough to allow for up then down
buffer overflow in computer hardware
buffer overflow in OS mouse driver

buffer overflow in OS
buffer overflow in directX / rawinput
buffer overflow in mame core
buffer overflow in game due to higher change in what mame sends the game than what the game expects.

That last one is usually thought to be the only cause, and the reason why it's too high could be many reasons, too.  However, all the italicized reasons are likely casues too.


I'm just guessing why you were mistakenly told about voltages, but... mame core stores trackball in the same variable structure location as analog joystick values but treats the two differently.  The analog joysticks are analog voltages (or resistances, same thing).  So maybe mistaken read of mame's source?

Another possiblity is warlords: it originally came with standard encoder spinners (mouse like), but later came with 360 POTs.  Someone could have (mistakenly) thought that since they could switch, then they are the same.
Robin
Knowledge is Power

Searcher7

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 177
  • Last login:June 21, 2009, 10:45:22 pm
  • I want to Build My Own Arcade Controls!!
Re: Comtrol Response Carry-Over(Arcade & MAME)
« Reply #4 on: September 20, 2006, 11:04:16 pm »
I was told that when you spin a trackball or spinner there is a voltage output of +5V to -5V(or +3V to -3V) depending on speed and direction(up/down/left/right), and the game PCB interprets the voltage to determine your direction and speed.

This was a surprise to me, because I thought that the process was digital from the encoder wheel onward.

It is "digital".  It either sends full voltage or zero voltage (two of these per axis).  The speed of the changes happen shows the speed of the spin, and the order the two signals per axis changes shows the direction.  Some can argue the signals are analog, especially on the older hardware, since the phototransistors weren't instant on/off, but they were read as if digital.  For more info, google "quadrature mouse".  AFAICT, about 95% of the arcade trackballs & spinners were/are quadrature.  The rest (mostly spinners) sent "speed and direction" signals, which just means the raw quadrature signal from the encoder sensors is translated on the sensor board.

Quote
Anyway, unlike in the actual arcade games, the MAME developers failed to put a magnitude ceiling on the max. voltage, so as a result, if the input voltage from your controller goes above what the game code can interpret you get jerky movements or a reversal of direction.

What you're talking about is "backspin", and there are many casues of it.  But not "voltage" as you were told.

Possible causes:
too fast for sensors
sensors or encoder wheel too dirty
the digital signal not "square" enough to allow for up then down
buffer overflow in computer hardware
buffer overflow in OS mouse driver

buffer overflow in OS
buffer overflow in directX / rawinput
buffer overflow in mame core
buffer overflow in game due to higher change in what mame sends the game than what the game expects.

That last one is usually thought to be the only cause, and the reason why it's too high could be many reasons, too.  However, all the italicized reasons are likely casues too.


I'm just guessing why you were mistakenly told about voltages, but... mame core stores trackball in the same variable structure location as analog joystick values but treats the two differently.  The analog joysticks are analog voltages (or resistances, same thing).  So maybe mistaken read of mame's source?

Another possiblity is warlords: it originally came with standard encoder spinners (mouse like), but later came with 360 POTs.  Someone could have (mistakenly) thought that since they could switch, then they are the same.

Since there is no way to get this problem corrected in MAME, how about modifying the USB signals? Is there a way to correct the problem before the input reaches MAME?

I'd appreciate any ideas.

Thanks.

Darren Harris
Staten Island, New York.

u_rebelscum

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3633
  • Last login:April 21, 2010, 03:06:26 pm
  • You rebel scum
    • Mame:Analog+
Re: Comtrol Response Carry-Over(Arcade & MAME)
« Reply #5 on: September 21, 2006, 02:48:23 am »
Possible causes:
too fast for sensors
sensors or encoder wheel too dirty
the digital signal not "square" enough to allow for up then down
buffer overflow in computer hardware
buffer overflow in OS mouse driver

buffer overflow in OS
buffer overflow in directX / rawinput
buffer overflow in mame core
buffer overflow in game due to higher change in what mame sends the game than what the game expects.
That last one is usually thought to be the only cause, and the reason why it's too high could be many reasons, too.  However, all the italicized reasons are likely casues too.

Since there is no way to get this problem corrected in MAME, how about modifying the USB signals? Is there a way to correct the problem before the input reaches MAME?

I didn't say you can't correct it in mame.  I said there are many possible causes, none due to voltage levels.  Each user's backspin might be one or a combination of them.

Now, only one of the causes (the last one) can be adjusted in mame.  Start mame, tab, analog controls, and adjust sensitivity down.

To find if your problem is in mame, check if you have backspin in windows.  If you do, all the changing in mame won't help.  Try reducing the windows pointer speed and disabling enhanced pointer precision and see if that fixes it.  If not, the problem is totally outside of 'fixable' by mame.  However, if you're perfect in windows, try adjusting mame's sensitivity as mentioned earlier.


BTW, mame can and does "cap" the max speed on the game driver level if the dev thinks the original hardware capped it.  Also, some games might be incorrectly emulated (in cap level or elsewhere), which might cause problems with backspin.  This is very hard to test and fix with all the steps between the moving of the trackball/spinner and mame seeing it, even before mame begins emulating the inputs.  To truely know, you'd have to look at the original hardware and see it's max speed.  Usually it's not an emulation bug, though, but differences between the original hardware and technology and what's being used on today's computers.
Robin
Knowledge is Power

Searcher7

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 177
  • Last login:June 21, 2009, 10:45:22 pm
  • I want to Build My Own Arcade Controls!!
Re: Comtrol Response Carry-Over(Arcade & MAME)
« Reply #6 on: September 30, 2006, 09:12:16 pm »
Possible causes:
too fast for sensors
sensors or encoder wheel too dirty
the digital signal not "square" enough to allow for up then down
buffer overflow in computer hardware
buffer overflow in OS mouse driver

buffer overflow in OS
buffer overflow in directX / rawinput
buffer overflow in mame core
buffer overflow in game due to higher change in what mame sends the game than what the game expects.
That last one is usually thought to be the only cause, and the reason why it's too high could be many reasons, too.  However, all the italicized reasons are likely casues too.

Since there is no way to get this problem corrected in MAME, how about modifying the USB signals? Is there a way to correct the problem before the input reaches MAME?

I didn't say you can't correct it in mame.  I said there are many possible causes, none due to voltage levels.  Each user's backspin might be one or a combination of them.

Now, only one of the causes (the last one) can be adjusted in mame.  Start mame, tab, analog controls, and adjust sensitivity down.

To find if your problem is in mame, check if you have backspin in windows.  If you do, all the changing in mame won't help.  Try reducing the windows pointer speed and disabling enhanced pointer precision and see if that fixes it.  If not, the problem is totally outside of 'fixable' by mame.  However, if you're perfect in windows, try adjusting mame's sensitivity as mentioned earlier.


BTW, mame can and does "cap" the max speed on the game driver level if the dev thinks the original hardware capped it.  Also, some games might be incorrectly emulated (in cap level or elsewhere), which might cause problems with backspin.  This is very hard to test and fix with all the steps between the moving of the trackball/spinner and mame seeing it, even before mame begins emulating the inputs.  To truely know, you'd have to look at the original hardware and see it's max speed.  Usually it's not an emulation bug, though, but differences between the original hardware and technology and what's being used on today's computers.

Ok. When I said that there is no way to get this problem corrected in MAME, I was trying to convey that the developers wouldn't bother to correct it, so therefore I'd have to look elsewhere.

Perhaps one can design a sensor board that "cleans" the signals where needed so that what MAME cannot deal with wouldn't be an issue in the first place.

In other words, if 1 to 10 represent the speed parameter, then anything over 10 would register as 10. MAME would not have to make any adjustments because it would not see anything above 10.

Thanks.

Darren Harris
Staten Island, New York.

Searcher7

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 177
  • Last login:June 21, 2009, 10:45:22 pm
  • I want to Build My Own Arcade Controls!!
Re: Comtrol Response Carry-Over(Arcade & MAME)
« Reply #7 on: October 07, 2006, 01:57:43 pm »
OK.

So the bottom line is that there are signals that MAME is supposed to be able to interpret but cannot, and unless the MAME deve team fixes it this is a lost cause, correct?

Thanks.

Darren