Main > Main Forum
MAME - 4-way emulation
RandyT:
--- Quote from: degenatrons on October 15, 2012, 09:42:47 am ---To get accurate 4-way restriction in firmware was not as easy as I had first expected.
--- End quote ---
In all actuality, you still haven't.
--- Quote ---To do it. I take the current position and work out the most probable indended direction based on the movement.
--- End quote ---
Without knowing what is happening in the game, and analyzing it, or having more information available from the stick itself (i.e. more than 4 pieces of information), there is no way to make a determination of what is the "probable intended" direction with an accuracy level higher than a "coin toss". As this is pretty much the accuracy one gets by default, the actual net gain is zero.
--- Quote ---e.g.
If you have stick in "up" position.
If joystick move to down/right: It is most likely that you intended to move down. The stick has travelled further than the mid-point.
--- End quote ---
This sounds good in theory, but in practice, it doesn't deliver. Picture a common situation where the player intends to move directly from the vertical to right, and goes too far, thus hitting the down-right diagonal. Your assumption with the above logic will be that he intended to move down, which will screw the player up royally.
--- Quote ---If joystick move to up/right: It is most likely that you intend to move right because you are already "up" and a direction change was made.
--- End quote ---
Again, this really doesn't deliver. Another common issue with an 8-way stick is "user drift". In the heat of the action, they may be vertical, but very close to actuating either the right or left switch. A slight horizontal movement from their current position to either one of the horizontals, thereby making the diagonal, will then throw them to the horizontal cardinal of that diagonal, which is not the "probable intention" of the player when this scenario occurs.
Another issue is "extended roll through". If the user rolls from the vertical to right, and goes a little too far, the logic above will assume the desire to then go down, when in fact this isn't the case.
One more issue with this type of approach is that when you get it wrong, the following assumption tends to fall apart as well.
--- Quote ---I have this working in my arcade cabinet and it plays really really well on 4-way games. It gives a significant improvement to my play on Rally-X and Ms Pacman and definitely has a better feel.
Feedback has been good from our beta-testers.
--- End quote ---
The same has been claimed from at least one other individual who basically was doing the same thing, but it proves in use to be not much better, if any at all, from the default condition. I've experimented with the same algorithms in the past and the result was not a "significant improvement". There is a bit of a placebo effect when testing something like this, which makes the player more aware of what they are doing when they know they are testing the hardware, and it sometimes results in a somewhat better performance. However, once this wears off, and the player actually focuses on playing the games, they become less concerned about the controls and run into the same old problems. The proper way to test the efficacy of something like this is a dual-blind test, with a number of different individuals, and comparing performance. I think you will find, based on my experience, that you are simply trading one set of problems for a different, but equal set. Without physical restriction, or more information available from the control itself, there is no reliable way to determine the player's probable intentions.
RandyT
CheffoJeffo:
--- Quote from: paigeoliver on October 15, 2012, 11:01:57 am ---Of course the other problem is that a lot of 4-way games are difficult to play even with a 4-way stick if they don't have a diamond shaped restriction pattern.
--- End quote ---
And let's not forget Donkey Kong, which is best with a clover-leaf restrictor. Fortunately for me, I'm not a huge DK fan, so I don't care.
--- Quote from: RandyT on October 15, 2012, 01:22:36 pm ---Again, this really doesn't deliver. Another common issue with an 8-way stick is "user drift". In the heat of the action, they may be vertical, but very close to actuating either the right or left switch. A slight horizontal movement from their current position to either one of the horizontals, thereby making the diagonal, will then throw them to the horizontal cardinal of that diagonal, which is not the "probable intention" of the player when this scenario occurs.
Another issue is "extended roll through". If the user rolls from the vertical to right, and goes a little too far, the logic above will assume the desire to then go down, when in fact this isn't the case.
One more issue with this type of approach is that when you get it wrong, the following assumption tends to fall apart as well.
--- End quote ---
Was thinking the same thing when I read his description.
Finally, for the OP, there are a sizable number of folks who don't mind just using an 8-way (I am not one of them, but they do exist).
LeedsFan:
I think people try too hard with this issue. It's like they are trying to reinvent the wheel. For simple games that used 4-way or 8-way digital sticks the best way is to implement the correct restrictor. Whether it's done manually (as the OP says it can be a pain) or mechanically (like with Ultimarc's Versa stick) is up to you. I actually built a panel with 2x sticks one in permanent 8-way and the other in 4-way. You just flicked a switch to select the one you wanted to use depending on the game. Not ideal and looks a little clunky, but it does work for those straight forward digital joystick games. I wouldn't go down this route now, I'd use something like the Versa Stik. No matter what software or firmware you're running if you play a classic 4-way game with an 8-way stick it's just not gonna feel right.
degenatrons:
--- Quote from: RandyT on October 15, 2012, 01:22:36 pm ---
--- Quote from: degenatrons on October 15, 2012, 09:42:47 am ---To get accurate 4-way restriction in firmware was not as easy as I had first expected.
--- End quote ---
In all actuality, you still haven't.
--- Quote ---To do it. I take the current position and work out the most probable indended direction based on the movement.
--- End quote ---
Without knowing what is happening in the game, and analyzing it, or having more information available from the stick itself (i.e. more than 4 pieces of information), there is no way to make a determination of what is the "probable intended" direction with an accuracy level higher than a "coin toss". As this is pretty much the accuracy one gets by default, the actual net gain is zero.
--- Quote ---e.g.
If you have stick in "up" position.
If joystick move to down/right: It is most likely that you intended to move down. The stick has travelled further than the mid-point.
--- End quote ---
This sounds good in theory, but in practice, it doesn't deliver. Picture a common situation where the player intends to move directly from the vertical to right, and goes too far, thus hitting the down-right diagonal. Your assumption with the above logic will be that he intended to move down, which will screw the player up royally.
--- Quote ---If joystick move to up/right: It is most likely that you intend to move right because you are already "up" and a direction change was made.
--- End quote ---
Again, this really doesn't deliver. Another common issue with an 8-way stick is "user drift". In the heat of the action, they may be vertical, but very close to actuating either the right or left switch. A slight horizontal movement from their current position to either one of the horizontals, thereby making the diagonal, will then throw them to the horizontal cardinal of that diagonal, which is not the "probable intention" of the player when this scenario occurs.
Another issue is "extended roll through". If the user rolls from the vertical to right, and goes a little too far, the logic above will assume the desire to then go down, when in fact this isn't the case.
One more issue with this type of approach is that when you get it wrong, the following assumption tends to fall apart as well.
--- Quote ---I have this working in my arcade cabinet and it plays really really well on 4-way games. It gives a significant improvement to my play on Rally-X and Ms Pacman and definitely has a better feel.
Feedback has been good from our beta-testers.
--- End quote ---
The same has been claimed from at least one other individual who basically was doing the same thing, but it proves in use to be not much better, if any at all, from the default condition. I've experimented with the same algorithms in the past and the result was not a "significant improvement". There is a bit of a placebo effect when testing something like this, which makes the player more aware of what they are doing when they know they are testing the hardware, and it sometimes results in a somewhat better performance. However, once this wears off, and the player actually focuses on playing the games, they become less concerned about the controls and run into the same old problems. The proper way to test the efficacy of something like this is a dual-blind test, with a number of different individuals, and comparing performance. I think you will find, based on my experience, that you are simply trading one set of problems for a different, but equal set. Without physical restriction, or more information available from the control itself, there is no reliable way to determine the player's probable intentions.
RandyT
--- End quote ---
This is all good feedback thanks.
This is simulated 4-way restriction so I do have to make assumptions on the intended movement to make this feature possible in software.
I think it works well, and hopefully not because of placebo effect. I am quite thorough in my testing and reasoning.
I do agree that there is no substitute for physical restriction.
This will be an optional feature when the KADE encoder is released. The device is being developed for the community, so it is important that we get these features right and hence why I am being open about the internal workings of virtual 4-way.
Looking forward to getting feedback from gamers on this one. I am sure that the results will be more than slight improvement. I don't want you to write this off just yet.
RandyT:
--- Quote from: degenatrons on October 15, 2012, 02:31:21 pm ---This is simulated 4-way restriction so I do have to make assumptions on the intended movement to make this feature possible in software.
--- End quote ---
And, this is the root of the problem in this scenario. The very first time you make any assumption, i.e. not a decision based on very high probability, which is impossible given the data set, you are "flipping a coin". Sometimes you will get it right, and sometimes you won't. The times you don't, you simply create problems for the player that may not have existed prior.
The input handling in MAME has to make decisions about how to handle diagonals in games where 4-ways are expected, and it does. If it didn't, when a diagonal is sent, the player movement simply would not register. The unfortunate reality when using a 4-switch joystick is that there simply is not enough data present to make reliable assumptions, and whether you just use the default method in the app, or trade that for different set of problems, the end result will be the same.
Players who want to use an 8-way for 4-way games will fare much better with an 8-way stick which uses bladed micros, or leaf switches, which can be adjusted so that the diagonals are more difficult to hit, but can be if they are really intended to be. This approach isn't perfect either, but a "one-size-fits-all" solution rarely is.
RandyT