| Main > Main Forum |
| the state of mame |
| << < (82/112) > >> |
| Vigo:
I do love how patents are written, the whole part describing the controls sounds like a giant innuendo: "Each Control unit comprises a universal operating rod and a pair of pneumatic operating devices." "Rearward pivoting of the rod causes the fighter to assume a crouching or half-sitting posture" :lol |
| Haze:
--- Quote from: pinballjim on January 14, 2011, 10:47:44 am ---From looking at photos of the SF pneumatic buttons, I really, really, really doubt that they are sending an analog input to the board. --- End quote --- They are --- Code: ---/* The world version has analog buttons */ /* We simulate them with 3 buttons the same way the other versions internally do */ static const int scale[8] = { 0x00, 0x40, 0xe0, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }; static READ16_HANDLER( button1_r ) { return (scale[input_port_read(space->machine, "IN3")] << 8) | scale[input_port_read(space->machine, "IN1")]; } static READ16_HANDLER( button2_r ) { return (scale[input_port_read(space->machine, "IN4")] << 8) | scale[input_port_read(space->machine, "IN2")]; } --- End code --- The newer sets simply expect buttons. The older sets have 2 analog ports. MAME treats them all the same via this simulation, because it's just a stupid gimmick anyway, but they really did design it like that. It's obvious from the game code, and what it expects, and the changes they made. |
| Derrick Renaud:
--- Quote from: Haze on January 14, 2011, 02:17:12 pm --- --- Quote from: pinballjim on January 14, 2011, 10:47:44 am ---From looking at photos of the SF pneumatic buttons, I really, really, really doubt that they are sending an analog input to the board. --- End quote --- They are --- Code: ---/* The world version has analog buttons */ /* We simulate them with 3 buttons the same way the other versions internally do */ static const int scale[8] = { 0x00, 0x40, 0xe0, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe }; static READ16_HANDLER( button1_r ) { return (scale[input_port_read(space->machine, "IN3")] << 8) | scale[input_port_read(space->machine, "IN1")]; } static READ16_HANDLER( button2_r ) { return (scale[input_port_read(space->machine, "IN4")] << 8) | scale[input_port_read(space->machine, "IN2")]; } --- End code --- The newer sets simply expect buttons. The older sets have 2 analog ports. MAME treats them all the same via this simulation, because it's just a stupid gimmick anyway, but they really did design it like that. It's obvious from the game code, and what it expects, and the changes they made. --- End quote --- Hack, Hack, Hack. I demand it be removed. I want to hook up my real controls. :lol On a more serious note, could you imagine the flack we would get if we removed the hacked controls and set the ports to analog? What some people don't realize is that using hacked controls in this way is also somewhat left up to the driver's author. Lacking support for selection between real/fake controls, that no one is interested in writing, this is how it is done. |
| sjbaines:
--- Quote from: Derrick Renaud on January 14, 2011, 02:25:22 pm ---What some people don't realize is that using hacked controls in this way is also somewhat left up to the driver's author. Lacking support for selection between real/fake controls, that no one is interested in writing, this is how it is done. --- End quote --- Presumeably no one is interested in writing it because not many games need custom support in the first place, only the few people with original controllers would care anyway, and in those few cases there's usually someone that has hacked MAME themselves and released a patch anyway. All seems perfectly reasonable really - you'd think that everyone would be happy... |
| ark_ader:
. |
| Navigation |
| Message Index |
| Next page |
| Previous page |