comparison blastem.c @ 195:c615061f7914

Fix 6-button controller emulation
author Mike Pavone <pavone@retrodev.com>
date Wed, 16 Jan 2013 22:50:02 -0800
parents 02e25abe2dcd
children 7c227a8ec53d
comparison
equal deleted inserted replaced
194:811163790e6c 195:c615061f7914
274 } 274 }
275 /*if (pad->input[GAMEPAD_TH0] || pad->input[GAMEPAD_TH1]) { 275 /*if (pad->input[GAMEPAD_TH0] || pad->input[GAMEPAD_TH1]) {
276 printf("io_data_read | control: %X, TH: %X, GAMEPAD_TH0: %X, GAMEPAD_TH1: %X, TH Counter: %d, Timeout: %d, Cycle: %d\n", control, th, pad->input[GAMEPAD_TH0], pad->input[GAMEPAD_TH1], pad->th_counter,pad->timeout_cycle, context->current_cycle); 276 printf("io_data_read | control: %X, TH: %X, GAMEPAD_TH0: %X, GAMEPAD_TH1: %X, TH Counter: %d, Timeout: %d, Cycle: %d\n", control, th, pad->input[GAMEPAD_TH0], pad->input[GAMEPAD_TH1], pad->th_counter,pad->timeout_cycle, context->current_cycle);
277 }*/ 277 }*/
278 if (th) { 278 if (th) {
279 if (pad->th_counter == 2) { 279 if (pad->th_counter == 3) {
280 input = pad->input[GAMEPAD_EXTRA]; 280 input = pad->input[GAMEPAD_EXTRA];
281 } else { 281 } else {
282 input = pad->input[GAMEPAD_TH1]; 282 input = pad->input[GAMEPAD_TH1];
283 } 283 }
284 } else { 284 } else {
285 if (pad->th_counter == 2) { 285 if (pad->th_counter == 3) {
286 input = pad->input[GAMEPAD_TH0] | 0xF; 286 input = pad->input[GAMEPAD_TH0] | 0xF;
287 } else if(pad->th_counter == 3) { 287 } else if(pad->th_counter == 4) {
288 input = pad->input[GAMEPAD_TH0] & 0x30; 288 input = pad->input[GAMEPAD_TH0] & 0x30;
289 } else { 289 } else {
290 input = pad->input[GAMEPAD_TH0] | 0xC; 290 input = pad->input[GAMEPAD_TH0] | 0xC;
291 } 291 }
292 } 292 }