Main > Main Forum
Reading MAME as technical reference and historical document: 720 controller
abaraba:
[DELETED]
my testing was lazy and I got fooled by analog hack, I was wrong - it does not work in MAME 131.
It works as BadMouth and Xiaou have described, and that would not work with authentic controller.
MAME needs fixing.
Paul Olson:
.141 won't spin all the way around. With my modified version, you can spin around fine with one axis of the mouse. I have both encoders mapped to the same input (mouse x) as they were in the .85 driver. It still needs to be tested on a real controller, but it is playable with the mouse (I am testing it on my laptops trackpad). Certainly not as fun as with the controller...The analog hack would definitely make it more playable for those without the controller.
Here is the atarisys2.c file (rename it after download). Please test it with a real controller if you can. Thanks
abaraba:
Got it, I should know everything about it now.
I was wrong about these, this is the truth:
- it does not work properly with MAME, I was fooled by analog hack
- it never worked properly with both encoders in any version of MAME
Sorry for confusion, analog hack + laptop touchpad indeed can produce illusion that it works. I now got ball-mouse to test axes separately and precisely, and also PS2 controller to test 'analog hack' too.
Paul Olson,
This is how to make it work properly, with encoder wheel too:
--- Code: ---static READ8_HANDLER( leta_r ){
static const char *const letanames[] = { "LETA0", "LETA1", "LETA2", "LETA3" };
atarisy2_state *state = space->machine->driver_data<atarisy2_state>();
if(state->pedal_count == -1) /* 720 */
{
switch (offset & 3)
{
case 0: return input_port_read(space->machine, "LETA1") & 0xff;
case 1: return input_port_read(space->machine, "LETA0") & 0xff;
case 2: return 0xff;
case 3: return 0xff;
}
}
return input_port_read(space->machine, letanames[offset & 3]);
}
--- End code ---
You do not need to change anything down below, those are just 'labels'.
To make your version work just "open" calibration input too:
case 0: return input_port_read(space->machine, "LETA1") & 0xff; <-- calibration encoder input
case 1: return input_port_read(space->machine, "LETA0") & 0xff; <-- main encoder input
Where can I upload binary for testing?
Analog hack completely sucks, it's unplayable. It would work all right I suppose if I could mechanically restrict my stick to keep maximum angle, but as it is - it's ugly, player orientation jumps all over the place, it flickers and it looks buggy, but funny enough it works pretty good with laptop mouse touchpad, just "draw circles" with a finger.
Can support for authentic controller and analog hack exist together? Of course they can!
Malenko:
I cant wait until a good game gets this kind of attention
Hoopz:
--- Quote from: Malenko on January 13, 2011, 09:14:17 am ---I cant wait until a good game gets this kind of attention
--- End quote ---
You're gonna get deathpunched if you sass this game...
:lol