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:
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]);
}
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!