Main > Main Forum

Reading MAME as technical reference and historical document: 720 controller

(1/17) > >>

abaraba:
Quote from: CheffoJeffo
Interesting ... I just had a look at the plans for the 720 controller to see if there was a reason for this particular change and couldn't see a reason why it wouldn't be handled as a spinner.

So, do I understand that it can be handled via "-mouse", so that any of the optical interfaces should work and no changes to MAME are required ?
----------

aba: I tried about dozen binaries from mame60 to mame131 and mouse would be automatically mapped to controls if mouse was enabled, which I believe directly means authentic controller can be used, and so that this functionality was there all along, no changes required. -- Yes, this is completely absurd considering there is 8 years worth of threads on this forum with people arguing about it, so I am too kind of waiting someone will explain what in the world is going on.

Objection still stands that *as a historical document* MAME should be clear actual 720 PCB used spinner.

BadMouth:
Not really a response to your post, but an interesting read nonetheless:

http://jstookey.com/arcade/720/720-arcadejoy.php
(How to use your original 720 controls with MAME, a bit outdated, but still useful.  Custom compiled mame .110 link still works)

The change to analogue joystick was at this version:
"0.85u1: Aaron Giles changed 720' controls to use an analog joystick instead of a dial so that the original controller motion can be replicated"

The technical section of the history.dat file has:
"The main control is also unique. This joystick moves in a circular fashion, instead of in compass directions like standard joysticks."

I find that a bit misleading as it doesn't mention that the joystick was actually rotating optical encoder discs.
It's not important enough to me to write up a better description, but if you're passionate about preserving the details of the controls,
you can write up a better description and submit it here: http://www.arcade-history.com/index.php?page=status&action=update

EDIT: Direct link to 720 Degrees page on arcade-history: http://www.arcade-history.com/?n=720degree&page=detail&id=23
Click on the "Edit this page" tab to submit your revisions.

abaraba:
Thank you. I support initiative to turn 'all the talk' into some results and solutions, otherwise it would mean we are just talking about nothing that actually matters, with no good, or particular reason.



Anyhow, there actually is statement on MAME website about it:

http://mamedev.org/devwiki/index.php/FAQ:Games#720_Degrees

"720 Degrees

This game uses a spinner control, right?

The original controller for 720 Degrees was a joystick that was hardware-limited to only travel along the outermost edges in a circle. The internal mechanism for reading this control was similar to a spinner except that it had the additional benefit of knowing which direction the joystick was pointing. Because this knowledge is an important aspect of the game, the current emulation of the controller maps an analog joystick to the underlying controls instead of a spinner."


I read it like this:
- Original game uses spinner, this is important knowledge so we map it to analog stick instead. Whaaaaat!?

The word "instead" automatically makes that sentence logical impossibility, in relation to accuracy. Never can "B" be a better "A" than "A" itself, or as Xiaou2 would say, "Substituting Hotdog for Beef in Beef stew is no longer Beef Stew."

MonMotha:
Anyone who honestly believes MAME is about "historical documentation" is nuts, in my opinion.  MAME is about working emulation of popular games.  I've attempted to read MAME source code to replicate custom hardware devices before, and you're lucky if there's a single damn comment next to the write-only spaghetti nonsense code.  There are places where one could spend literally hours poring over weird bitmasks, shifts, oddball state machines, etc. all to deduce what a simple, one or two line comment could have conveyed to someone wishing to understand how things actually work (rather than simply emulating it) in about 5 seconds.

That said, this is probably being done because the original controls don't map neatly into MAME's concept of "controls".  The original device appears to be an incremental encoder (aka "spinner") with another output that serves as an index output (but could also be used to count turns, I guess).  I doubt MAME's "spinner" support correctly handles indexes (as most arcade controls don't have one), so that's probably why it was mapped to an analog input, instead - analog inputs are always absolute in MAME's limited view of "arcade controls" whereas encoder/"spinner" inputs are likely always considered relative.

Paul Olson:
From reading about this, it looks like the analog control scheme is the only way to simulate the feel of the original controller. You can spin the analog joystick around the edges, and the code in the atarisys2 driver will respond to that input in a similar fashion to the original dial controller. It is not possible to simulate that with a mouse. There is no x and y axis to make that work. It uses a dial, which is only one axis. The second encoder takes care of the positional direction of the player. The analog code is great if you have an analog joystick.

If you want to use the real controller, the code in the driver needs to be changed back to what was there before .85u1. The logic needs to be changed, and the LETA0 and LETA1 need to be changed back to dial instead of analog. I think I have this done right, but I don't have a controller to test it. I am going to try to pick one up soon to test it out. Just hacking the driver back isn't what is really needed though. What is needed is a flag that can be set in mame.ini to enable the original controls. I still have a lot to learn before I can make that work, but I think that is what should be done.

Navigation

[0] Message Index

[#] Next page

Go to full version