Main > Main Forum

8/12Pos Rotary Game List?

<< < (2/5) > >>

mc-escher:
nope, no wrapper... In fact different drivers had the analog -> digital
conversion implemented in different ways.

The most *correct* way to do it would be to set it up where 8 or 12
button bit inputs were monitored

Then the SNK joys could be connected directly to mame without the
use of a conversion circuit at all...

The drawbacks of this method are:

1) It would eat up inputs like crazy on the encoder: 24 for 2 players
rotation only add movements and the MAX 3 buttons that are needed
for any rotary (non-dial) game and you have 38.. that would make it
unfeasible to use IPAC or any of low end KE-24 style encoders.

2) 8 way games couldn't  be played with a 12 way joy as the
joy position would now exactly correspond to a specific angle

3) unplayable via keyboard, mouse, other  in this mode

4) I already constructed Druin's circuit from scratch =P

So this is a good compromise.. Since MAME originally interpreted
those inputs wrong (as analog) and then converted them to the
appropriate angle based on analog input... it wasn't such a stretch to
change it a bit so that digital input triggers a cycle through the 8 or 12
positions that  the game expects in that memory location.

One note: In the game Guerilla War there is a protection scheme
that somehow gets invoked if the joy input goes from position 5
to position 6 like 8 times or something... This was fixed in the driver
by adding a bogus direction into the cycle... this caused a slight
hesitation  in all  the games in the snk.c driver (including ikari)
but kept guerilla war from breaking.

This can be seen by firing up ikari and holding the ROTATE button
down you'll see a skip every 12 iterations or so.  In my patch,
I took this out for all games except guerilla war, because quite
frankly it was annoying for the games I liked =P.   It would be
interesting to know  exactly how they implemented the
hardware encoding/check in guerilla war though, so this skip
could be avoided there as well.

I'm almost finished. Working on Cal.50 and DownTown now.
I will need to port them to mame 0.60 as soon as the Linux
version arrives,  at which point I'll at least post it to my webpage
for all to use.

Escher

Tiger-Heli:
To Mc-Escher:

Thanks for developing this.  I am looking forward to testing it out.

To LilWolf:

There is also another advantage in MC-escher implementation of this over using 12 button inputs as you suggest.  The original hardware did use 12 button inputs, but the LS-30 joysticks restricted your movement.  For example, let's say that Button 1 corresponded to Player 1 pointing at 1 o'clock and Button 9 corresponded to Player 1 pointing at 9 o'clock.  Using your set-up, it would be possible for the character to move from 1 o'clock to 9 o'clock without rotating through the intermediate positions.  The current MAME and MC-Escher's implementation prevent this.

To All:

This is a summary of how things stand:

Official MAME build:  supports mice, optical rotary joysticks, spinners, and keyboard keys/arcade buttons very well for rotation.  Will support SNK LS-30's using Druin's interface, but requires tweaking of the analog settings and speed settings, and provides imperfect results (some missed clicks and double clicks).  Does NOT directly support LS-30 joysticks.

Mc-Escher's build:  Does NOT support opto-rotary devices, Provides much better support for LS-30's using Druin's interface, Provides limited keyboard/button support but requires multiple keypresses for rotation.  Should support a custom joystick design that I may be reviving  :D.  Does not directly support LS-30 joysticks.

LilWolf's proposed build:  Does NOT support opto-rotary devices.  Does NOT support LS-30's using Druin's interface.  Does not easily support keyboard/buttons (if you had twelve buttons arranged in a circle, maybe . . .), Does directly support LS-30 joysticks.  No one has done this yet, AFAIK, however, I would like to see it available for 3 reasons:  1)  It would be possible to support this using LS-30's on a removable control panel using an IPAC-4, MK64, or KE-72 encoder.  2)  It would allow owners of original rotary game cabinets to play the game with original hardware, (if say the original board was fried), without having to use Druin's interface.  3) Most importantly, this is how the original hardware was set up, thus, in keeping with MAME's stated purpose of preserving the original arcade games, it should be emulated this way at least somewhere.

Questions to All:

Once Mc-Escher's build is availble, I would like to see about submitting it to the dev team and getting it added to the official build, but I have the following questions:

Ideally, it would be great if MAME were set up to handle opto-rotary devices using the current code, Druin's interface using MC-Escher's build, and straight LS-30's using LilWolf's proposed build, all in the same driver.  I have no idea how to do this! Anyone???

Another idea would be to set up MC-Escher's build and Lil-Wolf's proposed build as new drivers.  Thus for IKARI, you would have games named "Ikari Warriors (US) (opto-rotary)", "Ikari Warriors (US) (mechanical rotary with interface)", and "Ikari Warriors (US) (orignal hardware).  The problems with this is you are adding two new games per version and clone, and it would be confusing to the casual user.  This is similar to what MAME has done on Combat School, for example.

Any other ideas on how to implement this???


Lilwolf:
quick notes.  I though MC-Escher was planning on a mame build for SNK users. (right??).  

It also seemed like you where trying to get rid of the analog controls to the drivers that use the SNK drivers and change them to use L and R directly.

What I was saying is the original hardware doesn't use L and R, but 12 different directions.  So you will probably find the analog -> 12 directions in the driver.  What you want to do is change it to L->12directions and R->12 directions instead.    But remember when looking at the driver, the original hardware had 12 inputs, so you will probably find it in the driver.

and what I was hoping, is if you get that far, that you open up the original connections.  This way you can hack the SNKs without any new hardware.

As for the 24 connections for 2 player... I'm the prowd owner of MK64   ;D.  I believe in excess!

Tiger-Heli:

--- Quote ---quick notes.
--- End quote ---

u_rebelscum:
I've been following this subject.  Great ideas, and I want in on the source changes people are proposing.  But let me throw my view on the subject into the fire, even though I don't have an LS-30. (yet ;D )


--- Quote ---There is also another advantage in MC-escher implementation of this over using 12 button inputs as you suggest.  The original hardware did use 12 button inputs, but the LS-30 joysticks restricted your movement.  For example, let's say that Button 1 corresponded to Player 1 pointing at 1 o'clock and Button 9 corresponded to Player 1 pointing at 9 o'clock.  Using your set-up, it would be possible for the character to move from 1 o'clock to 9 o'clock without rotating through the intermediate positions.  The current MAME and MC-Escher's implementation prevent this.
--- End quote ---
And, like you said, the hardware prevents this, too.  

Because of the hardware limit, IMO, the LS-30 rotory should be seen as one input with 12 possible values.  In other words, a 12 value analog input device.  (Not 12 digital input devices.)  I was looking at the drivers trying to see if the original arcade software treats it this way, but haven't found (figured out) much yet.

I think this was why mame treats it (semi-correctly) as an analog input.  The problems then would lie in: mame's (not very good) analog input handling, PC's (non-arcade) input devices, and mame's incorrect use of relative analog (mouse-like) instead of absolute analog input (LS-30 like). This is all nice and good in theory, but what about in practice?  I don't know (besides needing to improve mame's analog input ;P ).

But one way of merging two or more of the ideas mentioned here is to have a "psuedo-input port":  mame sometimes has had two ways to input to the same thing, a semi-working "true" emulation way and a working hack way.  (a few pedals come to mind ;) )  You could leave the official mame way in, but add a second (and third) way to input to the same game memory location.  This way more than one way can be used (as long as they don't use the same keys) without disabling another.

Anyways, as soon as I get Mame:Analog+ v.60 and mamePedal out, I'll get more into the nitty-gritty of everyone's proposals and see if I can help.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version